Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qgeocameratiles_p_p.h
Go to the documentation of this file.
1// Copyright (C) 2018 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3#ifndef QGEOCAMERATILES_P_P_H
4#define QGEOCAMERATILES_P_P_H
5
6//
7// W A R N I N G
8// -------------
9//
10// This file is not part of the Qt API. It exists purely as an
11// implementation detail. This header file may change from version to
12// version without notice, or even be removed.
13//
14// We mean it.
15//
16
17#include "qgeocameratiles_p.h"
18#include "qgeomaptype_p.h"
19#include "qgeocameradata_p.h"
20#include "qgeotilespec_p.h"
21
22#include <QtCore/qlist.h>
23#include <QtCore/qset.h>
24
25#include <QtPositioning/private/qwebmercator_p.h>
26#include <QtPositioning/private/qdoublevector2d_p.h>
27#include <QtPositioning/private/qdoublevector3d_p.h>
28
30
43
44typedef QList<QDoubleVector3D> PolygonVector;
45
46class Q_LOCATION_EXPORT QGeoCameraTilesPrivate
47{
48public:
50 {
53 ClippedFootprint(const PolygonVector &left_, const PolygonVector &mid_, const PolygonVector &right_)
54 : left(left_), mid(mid_), right(right_)
55 {}
59 };
60
61 struct TileMap
62 {
63 TileMap();
64
65 void add(int tileX, int tileY);
66
67 QMap<int, QPair<int, int> > data;
68 };
69
70 void updateMetadata();
71 void updateGeometry();
72
73 Frustum createFrustum(double viewExpansion) const;
74 PolygonVector frustumFootprint(const Frustum &frustum) const;
75
76 QPair<PolygonVector, PolygonVector> splitPolygonAtAxisValue(const PolygonVector &polygon, int axis, double value) const;
77 ClippedFootprint clipFootprintToMap(const PolygonVector &footprint) const;
78
79 QList<QPair<double, int> > tileIntersections(double p1, int t1, double p2, int t2) const;
80 QSet<QGeoTileSpec> tilesFromPolygon(const PolygonVector &polygon) const;
81
83 return o->d_ptr.get();
84 }
85
86public:
89 int m_mapVersion = -1;
93 int m_tileSize = 0;
94 QSet<QGeoTileSpec> m_tiles;
95
96 int m_intZoomLevel = 0;
97 int m_sideLength = 0;
98 bool m_dirtyGeometry = false;
99 bool m_dirtyMetadata = false;
100 double m_viewExpansion = 1.0;
101
102#ifdef QT_LOCATION_DEBUG
103 // updateGeometry
104 ClippedFootprint m_clippedFootprint;
105 PolygonVector m_frustumFootprint;
106 Frustum m_frustum;
107
108 // createFrustum
109 mutable QDoubleVector3D m_createFrustum_center;
110 mutable QDoubleVector3D m_createFrustum_eye;
111#endif
112};
113
115
116#endif // QGEOCAMERATILES_P_P_H
static QGeoCameraTilesPrivate * get(QGeoCameraTiles *o)
QSet< QGeoTileSpec > m_tiles
\inmodule QtCore\reentrant
Definition qrect.h:484
\inmodule QtCore
Definition qsize.h:25
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
QPixmap p2
QPixmap p1
[0]
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
QList< QDoubleVector3D > PolygonVector
GLdouble GLdouble right
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat t1
[4]
GLint left
static void add(QPainterPath &path, const QWingedEdge &list, int edge, QPathEdge::Traversal traversal)
#define t2
QDoubleVector3D topRightFar
QDoubleVector3D topRightNear
QDoubleVector3D bottomLeftNear
QDoubleVector3D topLeftNear
QDoubleVector3D bottomLeftFar
QDoubleVector3D bottomRightFar
QDoubleVector3D topLeftFar
QDoubleVector3D bottomRightNear
QDoubleVector3D apex
ClippedFootprint(const PolygonVector &left_, const PolygonVector &mid_, const PolygonVector &right_)
QMap< int, QPair< int, int > > data