Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
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
// Qt-Security score:significant reason:default
4
#
ifndef
QGEOCAMERATILES_P_P_H
5
#
define
QGEOCAMERATILES_P_P_H
6
7
//
8
// W A R N I N G
9
// -------------
10
//
11
// This file is not part of the Qt API. It exists purely as an
12
// implementation detail. This header file may change from version to
13
// version without notice, or even be removed.
14
//
15
// We mean it.
16
//
17
18
#
include
"qgeocameratiles_p.h"
19
#
include
"qgeomaptype_p.h"
20
#
include
"qgeocameradata_p.h"
21
#
include
"qgeotilespec_p.h"
22
23
#
include
<
QtCore
/
qlist
.
h
>
24
#
include
<
QtCore
/
qset
.
h
>
25
26
#
include
<
QtPositioning
/
private
/
qwebmercator_p
.
h
>
27
#
include
<
QtPositioning
/
private
/
qdoublevector2d_p
.
h
>
28
#
include
<
QtPositioning
/
private
/
qdoublevector3d_p
.
h
>
29
30
QT_BEGIN_NAMESPACE
31
32
struct
Q_LOCATION_EXPORT Frustum
33
{
34
QDoubleVector3D apex;
35
QDoubleVector3D topLeftNear;
36
QDoubleVector3D topLeftFar;
37
QDoubleVector3D topRightNear;
38
QDoubleVector3D topRightFar;
39
QDoubleVector3D bottomLeftNear;
40
QDoubleVector3D bottomLeftFar;
41
QDoubleVector3D bottomRightNear;
42
QDoubleVector3D bottomRightFar;
43
};
44
45
typedef
QList
<
QDoubleVector3D
>
PolygonVector
;
46
47
class
Q_LOCATION_EXPORT
QGeoCameraTilesPrivate
48
{
49
public
:
50
struct
ClippedFootprint
51
{
52
ClippedFootprint()
53
{}
54
ClippedFootprint(
const
PolygonVector &left_,
const
PolygonVector &mid_,
const
PolygonVector &right_)
55
: left(left_), mid(mid_), right(right_)
56
{}
57
PolygonVector left;
58
PolygonVector mid;
59
PolygonVector right;
60
};
61
62
struct
TileMap
63
{
64
TileMap();
65
66
void
add(
int
tileX,
int
tileY);
67
68
QMap<
int
, QPair<
int
,
int
> > data;
69
};
70
71
void
updateMetadata();
72
void
updateGeometry();
73
74
Frustum createFrustum(
double
viewExpansion)
const
;
75
PolygonVector frustumFootprint(
const
Frustum &frustum)
const
;
76
77
QPair<PolygonVector, PolygonVector> splitPolygonAtAxisValue(
const
PolygonVector &polygon,
int
axis,
double
value)
const
;
78
ClippedFootprint clipFootprintToMap(
const
PolygonVector &footprint)
const
;
79
80
QList<QPair<
double
,
int
> > tileIntersections(
double
p1,
int
t1,
double
p2,
int
t2)
const
;
81
QSet<QGeoTileSpec> tilesFromPolygon(
const
PolygonVector &polygon)
const
;
82
83
static
QGeoCameraTilesPrivate *get(QGeoCameraTiles *o) {
84
return
o->d_ptr.get();
85
}
86
87
public
:
88
QString m_pluginString;
89
QGeoMapType m_mapType;
90
int
m_mapVersion = -1;
91
QGeoCameraData m_camera;
92
QSize m_screenSize;
93
QRectF m_visibleArea;
94
int
m_tileSize = 0;
95
QSet<QGeoTileSpec> m_tiles;
96
97
int
m_intZoomLevel = 0;
98
int
m_sideLength = 1;
99
bool
m_dirtyGeometry =
false
;
100
bool
m_dirtyMetadata =
false
;
101
double
m_viewExpansion = 1.0;
102
103
#
ifdef
QT_LOCATION_DEBUG
104
// updateGeometry
105
ClippedFootprint m_clippedFootprint;
106
PolygonVector m_frustumFootprint;
107
Frustum m_frustum;
108
109
// createFrustum
110
mutable
QDoubleVector3D m_createFrustum_center;
111
mutable
QDoubleVector3D m_createFrustum_eye;
112
#
endif
113
};
114
115
QT_END_NAMESPACE
116
117
#
endif
// QGEOCAMERATILES_P_P_H
QGeoCameraTilesPrivate
Definition
qgeocameratiles_p_p.h:48
QGeoCameraTiles
Definition
qgeocameratiles_p.h:32
toDoubleVector3D
static QDoubleVector3D toDoubleVector3D(const QVector3D &in)
Definition
qgeocameratiles.cpp:30
appendZIntersects
static bool appendZIntersects(const QDoubleVector3D &start, const QDoubleVector3D &end, double z, QList< QDoubleVector3D > &results)
Definition
qgeocameratiles.cpp:307
toVector3D
static QVector3D toVector3D(const QDoubleVector3D &in)
Definition
qgeocameratiles.cpp:25
addXOffset
static void addXOffset(PolygonVector &footprint, double xoff)
Definition
qgeocameratiles.cpp:437
PolygonVector
QList< QDoubleVector3D > PolygonVector
Definition
qgeocameratiles_p_p.h:45
qtlocation
src
location
maps
qgeocameratiles_p_p.h
Generated on
for Qt by
1.18.0