/usr/include/marble/RoutingModel.h is in libmarble-dev 4:4.13.0-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | //
// This file is part of the Marble Virtual Globe.
//
// This program is free software licensed under the GNU LGPL. You can
// find a copy of this license in LICENSE.txt in the top directory of
// the source code.
//
// Copyright 2010 Dennis Nienhüser <earthwings@gentoo.org>
//
#ifndef MARBLE_ROUTINGMODEL_H
#define MARBLE_ROUTINGMODEL_H
#include "marble_export.h"
#include "GeoDataLineString.h"
#include "Route.h"
#include <QAbstractListModel>
#include <QTime>
/**
* A QAbstractItemModel that contains a list of routing instructions.
* Each item represents a routing step in the way from source to
* destination. Steps near the source come first, steps near the target
* last.
*/
namespace Marble
{
class RoutingModelPrivate;
class RouteRequest;
class GeoDataDocument;
class MarbleModel;
class MARBLE_EXPORT RoutingModel : public QAbstractListModel
{
Q_OBJECT
Q_PROPERTY( bool deviatedFromRoute READ deviatedFromRoute NOTIFY deviatedFromRoute )
public:
enum RoutingModelRoles {
CoordinateRole = Qt::UserRole + 3,
TurnTypeIconRole,
LongitudeRole,
LatitudeRole
};
/** Constructor */
explicit RoutingModel( RouteRequest* request, MarbleModel *model, QObject *parent = 0 );
/** Destructor */
~RoutingModel();
// Model querying
/** Overload of QAbstractListModel */
int rowCount ( const QModelIndex &parent = QModelIndex() ) const;
/** Overload of QAbstractListModel */
QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const;
/** Overload of QAbstractListModel */
QVariant data ( const QModelIndex &index, int role = Qt::DisplayRole ) const;
#if QT_VERSION >= 0x050000
/** Overload of QAbstractListModel */
QHash<int, QByteArray> roleNames() const;
#endif
// Model data filling
/**
* Export waypoints and instructions in gpx format
*/
void exportGpx( QIODevice *device ) const;
/**
* Clear any data held in the model
*/
void clear();
/**
* Maps points from the provided route request to waypoints in the model
* according to their global minimal distance. Returns the right neighbor
* (next route request item along the waypoints) of the provided position.
* Provided route must not be null.
* @return -1 If the provided route is empty, the index of the right
* neighbor along the waypoints otherwise (result is a valid RouteRequest
* index in that case)
*/
int rightNeighbor( const GeoDataCoordinates &position, RouteRequest const *const route ) const;
/**
* returns whether the gps location is on route
*/
bool deviatedFromRoute() const;
const Route & route() const;
public Q_SLOTS:
/**
* Old data in the model is discarded, the parsed content of the provided document
* is used as the new model data and a model reset is done
*/
bool setCurrentRoute( GeoDataDocument* document );
void updatePosition( GeoDataCoordinates, qreal );
Q_SIGNALS:
/**
* emits a signal regarding information about total time( seconds ) and distance( metres ) remaining to reach destination
*/
void positionChanged();
void deviatedFromRoute( bool deviated );
/** A different route was loaded */
void currentRouteChanged();
private:
RoutingModelPrivate *const d;
};
} // namespace Marble
#endif
|