32struct Q_LOCATION_EXPORT Frustum
35 QDoubleVector3D topLeftNear;
36 QDoubleVector3D topLeftFar;
37 QDoubleVector3D topRightNear;
38 QDoubleVector3D topRightFar;
39 QDoubleVector3D bottomLeftNear;
40 QDoubleVector3D bottomLeftFar;
41 QDoubleVector3D bottomRightNear;
42 QDoubleVector3D bottomRightFar;
50 struct ClippedFootprint
54 ClippedFootprint(
const PolygonVector &left_,
const PolygonVector &mid_,
const PolygonVector &right_)
55 : left(left_), mid(mid_), right(right_)
66 void add(
int tileX,
int tileY);
68 QMap<
int, QPair<
int,
int> > data;
71 void updateMetadata();
72 void updateGeometry();
74 Frustum createFrustum(
double viewExpansion)
const;
75 PolygonVector frustumFootprint(
const Frustum &frustum)
const;
77 QPair<PolygonVector, PolygonVector> splitPolygonAtAxisValue(
const PolygonVector &polygon,
int axis,
double value)
const;
78 ClippedFootprint clipFootprintToMap(
const PolygonVector &footprint)
const;
80 QList<QPair<
double,
int> > tileIntersections(
double p1,
int t1,
double p2,
int t2)
const;
81 QSet<QGeoTileSpec> tilesFromPolygon(
const PolygonVector &polygon)
const;
83 static QGeoCameraTilesPrivate *get(QGeoCameraTiles *o) {
84 return o->d_ptr.get();
88 QString m_pluginString;
89 QGeoMapType m_mapType;
90 int m_mapVersion = -1;
91 QGeoCameraData m_camera;
95 QSet<QGeoTileSpec> m_tiles;
97 int m_intZoomLevel = 0;
99 bool m_dirtyGeometry =
false;
100 bool m_dirtyMetadata =
false;
101 double m_viewExpansion = 1.0;
103#ifdef QT_LOCATION_DEBUG
105 ClippedFootprint m_clippedFootprint;
106 PolygonVector m_frustumFootprint;
110 mutable QDoubleVector3D m_createFrustum_center;
111 mutable QDoubleVector3D m_createFrustum_eye;