31struct Q_LOCATION_EXPORT Frustum
34 QDoubleVector3D topLeftNear;
35 QDoubleVector3D topLeftFar;
36 QDoubleVector3D topRightNear;
37 QDoubleVector3D topRightFar;
38 QDoubleVector3D bottomLeftNear;
39 QDoubleVector3D bottomLeftFar;
40 QDoubleVector3D bottomRightNear;
41 QDoubleVector3D bottomRightFar;
49 struct ClippedFootprint
53 ClippedFootprint(
const PolygonVector &left_,
const PolygonVector &mid_,
const PolygonVector &right_)
54 : left(left_), mid(mid_), right(right_)
65 void add(
int tileX,
int tileY);
67 QMap<
int, QPair<
int,
int> > data;
70 void updateMetadata();
71 void updateGeometry();
73 Frustum createFrustum(
double viewExpansion)
const;
74 PolygonVector frustumFootprint(
const Frustum &frustum)
const;
76 QPair<PolygonVector, PolygonVector> splitPolygonAtAxisValue(
const PolygonVector &polygon,
int axis,
double value)
const;
77 ClippedFootprint clipFootprintToMap(
const PolygonVector &footprint)
const;
79 QList<QPair<
double,
int> > tileIntersections(
double p1,
int t1,
double p2,
int t2)
const;
80 QSet<QGeoTileSpec> tilesFromPolygon(
const PolygonVector &polygon)
const;
82 static QGeoCameraTilesPrivate *get(QGeoCameraTiles *o) {
83 return o->d_ptr.get();
87 QString m_pluginString;
88 QGeoMapType m_mapType;
89 int m_mapVersion = -1;
90 QGeoCameraData m_camera;
94 QSet<QGeoTileSpec> m_tiles;
96 int m_intZoomLevel = 0;
98 bool m_dirtyGeometry =
false;
99 bool m_dirtyMetadata =
false;
100 double m_viewExpansion = 1.0;
102#ifdef QT_LOCATION_DEBUG
104 ClippedFootprint m_clippedFootprint;
105 PolygonVector m_frustumFootprint;
109 mutable QDoubleVector3D m_createFrustum_center;
110 mutable QDoubleVector3D m_createFrustum_eye;