summaryrefslogtreecommitdiff
path: root/src/location/maps/qgeomap_p.h
diff options
context:
space:
mode:
authorDavid Laing <david.laing@nokia.com>2012-01-05 16:21:45 +1000
committerQt by Nokia <qt-info@nokia.com>2012-01-09 20:55:07 +0100
commit9a5bcb41a44cd9108690606b79396e424cba983d (patch)
treef90e0f66c7812de24e8cc1f2b3a03b52bc13056d /src/location/maps/qgeomap_p.h
parentf75c61a5eed56327fce5a1d798085bc950178089 (diff)
downloadqtlocation-9a5bcb41a44cd9108690606b79396e424cba983d.tar.gz
Adding private API warnings for the Maps API.
Also renamed some of the files to follow the naming conventions for private header files. Change-Id: I84a6bc0956b942861dfb63169cb4cdcc2033f2df Reviewed-by: Alex Wilson <alex.wilson@nokia.com>
Diffstat (limited to 'src/location/maps/qgeomap_p.h')
-rw-r--r--src/location/maps/qgeomap_p.h182
1 files changed, 27 insertions, 155 deletions
diff --git a/src/location/maps/qgeomap_p.h b/src/location/maps/qgeomap_p.h
index 60c1bb5e..4b077a36 100644
--- a/src/location/maps/qgeomap_p.h
+++ b/src/location/maps/qgeomap_p.h
@@ -52,98 +52,37 @@
// We mean it.
//
-#include <QList>
-#include <QSet>
-#include <QVector>
-#include <QPair>
-#include <QPolygonF>
-#include <QSizeF>
-#include <QVector3D>
-#include <QMatrix4x4>
-#include <QString>
-
-#include "qgeocameradata.h"
-#include "qgeofrustum_p.h"
+#include <QObject>
+#include "qgeocameradata_p.h"
#include "qgeomaptype.h"
-#include <QSharedPointer>
-
QT_BEGIN_NAMESPACE
+class QGeoCoordinate;
+
class QGeoMappingManager;
-class QGeoTile;
class QGeoTileCache;
-class QGeoTileSpec;
-class QGeoMap;
+class QGeoMapPrivate;
+class MapItem;
class QGeoMapController;
-class QGeoMapSphere;
-class QGeoProjection;
class QGLCamera;
-class QGLSceneNode;
class QGLPainter;
-class QGeoMapPrivate;
+class QPointF;
-struct TileMap
+class Q_LOCATION_EXPORT QGeoMap : public QObject
{
- TileMap(int minY, int maxY);
-
- int size;
- int minY;
- int maxY;
- QVector<int> minX;
- QVector<int> maxX;
-
- void adjust(int tileX, int tileY);
-};
-
-class IntersectGenerator
-{
-public:
- enum Axis {
- XAxis,
- YAxis
- };
- IntersectGenerator(const QGeoMapPrivate *mp,
- double p1,
- double p2,
- int t1,
- int t2,
- Axis axis,
- int zoomLevel);
-
- bool hasNext() const;
- QPair<double, int> value() const;
- void next();
-
-private:
- void generateValue();
-
-protected:
- const QGeoMapPrivate *mp_;
- Axis axis_;
- int zoomLevel_;
-
- bool hasNext_;
- QPair<double, int> value_;
+ Q_OBJECT
- int current_;
- int step_;
- int end_;
+ Q_PROPERTY(QGeoCameraData camera READ cameraData WRITE setCameraData NOTIFY cameraDataChanged)
+ Q_PROPERTY(QGeoMapType activeMapType READ activeMapType WRITE setActiveMapType NOTIFY activeMapTypeChanged)
- int adjust_;
- double first_;
- double denom_;
-};
-
-class QGeoMapPrivate
-{
public:
- QGeoMapPrivate(QGeoMap *parent, QGeoTileCache *cache, int maxZoom, int tileSize);
- virtual ~QGeoMapPrivate();
+ QGeoMap(QGeoTileCache *cache, QObject *parent = 0);
+ virtual ~QGeoMap();
QGeoTileCache* tileCache();
@@ -154,99 +93,32 @@ public:
QGLCamera* glCamera() const;
void paintGL(QGLPainter *painter);
- void setCameraData(const QGeoCameraData &cameraData);
- QGeoCameraData cameraData() const;
-
void resize(int width, int height);
int width() const;
int height() const;
- double aspectRatio() const;
- QGLSceneNode* createTileSpecNode(const QGeoTileSpec &tileSpec);
- QGLSceneNode* createTileNode(const QGeoTile &tile);
-
- QRect specToRect(const QGeoTileSpec &tileSpec) const;
+ void setCameraData(const QGeoCameraData &cameraData);
+ QGeoCameraData cameraData() const;
- void update();
+ QGeoCoordinate screenPositionToCoordinate(const QPointF &pos, bool clipToViewport = true) const;
+ QPointF coordinateToScreenPosition(const QGeoCoordinate &coordinate, bool clipToViewport = true) const;
- const QGeoMapType activeMapType() const;
void setActiveMapType(const QGeoMapType mapType);
+ const QGeoMapType activeMapType() const;
- QGeoCoordinate screenPositionToCoordinate(const QPointF &pos) const;
- QPointF coordinateToScreenPosition(const QGeoCoordinate &coordinate) const;
-
- QVector2D pointToTile(const QVector3D &point, int zoom, bool roundUp = false) const;
- QVector3D tileXIntersectToPoint(int zoomLevel, int x) const;
- QVector3D tileYIntersectToPoint(int zoomLevel, int y) const;
+public Q_SLOTS:
+ void update();
- void tileFetched(const QGeoTileSpec &spec);
+Q_SIGNALS:
+ void updateRequired();
+ void cameraDataChanged(const QGeoCameraData &cameraData);
+ void activeMapTypeChanged();
private:
- void updateGlCamera(QGLCamera* glCamera);
- void updateFrustum(QGeoFrustum &frustum);
- QList<QGeoTileSpec> updateVisibleTiles();
-
- int width_;
- int height_;
- double aspectRatio_;
-
- QGeoMap *map_;
- QGeoTileCache* cache_;
- QGeoMappingManager *manager_;
- QString pluginString_;
- QGeoMapController *controller_;
-
- QSharedPointer<QGeoProjection> projection_;
-
- QGLCamera *glCamera_;
-
- QGeoCameraData cameraData_;
- QGeoFrustum frustum_;
- QList<QGeoTileSpec> visibleTiles_;
-
- QGeoMapSphere *sphere_;
- QGeoMapType activeMapType_;
-
- // from map2d_p.h
-
- void tilesFromLine(const QVector3D &p1,
- const QVector3D &p2,
- const QVector2D &t1,
- const QVector2D &t2,
- int zoomLevel,
- TileMap &map) const;
-
- QList<QGeoTileSpec> tilesFromPoints(const QVector<QVector3D> &points, bool roundUp) const;
-
- QPair<QList<QVector3D>,QList<QVector3D> > clipPolygonToMap(const QList<QVector3D> &points) const;
-
- class LengthSorter {
- public:
- QVector3D base;
- bool operator()(const QVector3D &lhs, const QVector3D &rhs) {
- return (lhs - base).lengthSquared() < (rhs - base).lengthSquared();
- }
- };
-
- QList<QVector3D> pointsOnLineWithX(const QVector3D &p1, const QVector3D &p2, double x) const;
- QList<QVector3D> pointsOnLineWithY(const QVector3D &p1, const QVector3D &p2, double y) const;
- QList<QVector3D> pointsOnLineWithZ(const QVector3D &p1, const QVector3D &p2, double z) const;
-
- QPair<QList<QVector3D>,QList<QVector3D> > splitPolygonX(const QList<QVector3D> &points, double x) const;
- QPair<QList<QVector3D>,QList<QVector3D> > splitPolygonY(const QList<QVector3D> &points, double y) const;
-
- int maxZoom_;
- int tileSize_;
-
- double baseHeight_;
- double sideLength_;
- QPolygonF screenPoly_;
- QPolygonF screenPolyLeft_;
- QPolygonF screenPolyRight_;
+ QGeoMapPrivate *d_ptr;
+ Q_DECLARE_PRIVATE(QGeoMap)
- QSizeF viewSize_;
- QVector3D eye_;
- QMatrix4x4 projectionMatrix_;
+ friend class QGeoMappingManager;
};
QT_END_NAMESPACE