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
qdeclarativepolylinemapitem_p_p.h
Go to the documentation of this file.
1
// Copyright (C) 2020 Paolo Angelelli <paolo.angelelli@gmail.com>
2
// Copyright (C) 2022 The Qt Company Ltd.
3
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4
// Qt-Security score:significant reason:default
5
6
#
ifndef
QDECLARATIVEPOLYLINEMAPITEM_P_P_H
7
#
define
QDECLARATIVEPOLYLINEMAPITEM_P_P_H
8
9
//
10
// W A R N I N G
11
// -------------
12
//
13
// This file is not part of the Qt API. It exists purely as an
14
// implementation detail. This header file may change from version to
15
// version without notice, or even be removed.
16
//
17
// We mean it.
18
//
19
20
#
include
<
QtCore
/
QScopedValueRollback
>
21
#
include
<
QSGGeometryNode
>
22
#
include
<
QSGFlatColorMaterial
>
23
24
#
include
<
QtLocation
/
private
/
qlocationglobal_p
.
h
>
25
#
include
<
QtLocation
/
private
/
qdeclarativepolylinemapitem_p
.
h
>
26
#
include
<
QtLocation
/
private
/
qgeomapitemgeometry_p
.
h
>
27
28
#
include
<
QtPositioning
/
private
/
qdoublevector2d_p
.
h
>
29
30
QT_BEGIN_NAMESPACE
31
32
class
QQuickShape;
33
class
QQuickShapePath;
34
35
struct
QGeoMapPolylineGeometry
:
QGeoMapItemGeometry
36
{
37
void
updateSourcePoints
(
const
QGeoMap &map,
38
const
QList<QDoubleVector2D> &basePath);
39
40
QPainterPath
srcPath
()
const
{
return
srcPath_; }
41
42
QPainterPath
srcPath_
;
43
qreal
maxCoord_
= 0.0;
44
};
45
46
class
Q_LOCATION_EXPORT
QDeclarativePolylineMapItemPrivate
47
{
48
Q_DISABLE_COPY_MOVE(QDeclarativePolylineMapItemPrivate)
49
public
:
50
QDeclarativePolylineMapItemPrivate(QDeclarativePolylineMapItem &poly)
51
: m_poly(poly)
52
{
53
}
54
55
virtual
~QDeclarativePolylineMapItemPrivate();
56
virtual
void
markSourceDirtyAndUpdate
() = 0;
57
virtual
void
onMapSet
() = 0;
58
virtual
void
onLinePropertiesChanged
() = 0;
59
virtual
void
onGeoGeometryChanged
() = 0;
60
virtual
void
onGeoGeometryUpdated
() = 0;
61
virtual
void
onItemGeometryChanged
() = 0;
62
virtual
void
updatePolish
() = 0;
63
virtual
void
afterViewportChanged
() = 0;
64
virtual
QSGNode
*
updateMapItemPaintNode
(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *data) = 0;
65
virtual
bool
contains
(
const
QPointF &point)
const
= 0;
66
67
QDeclarativePolylineMapItem
&
m_poly
;
68
};
69
70
class
Q_LOCATION_EXPORT
QDeclarativePolylineMapItemPrivateCPU
:
public
QDeclarativePolylineMapItemPrivate
71
{
72
public
:
73
QDeclarativePolylineMapItemPrivateCPU(QDeclarativePolylineMapItem &poly);
74
~QDeclarativePolylineMapItemPrivateCPU() override;
75
76
void
onLinePropertiesChanged() override
77
{
78
// mark dirty just in case we're a width change
79
markSourceDirtyAndUpdate();
80
}
81
void
markSourceDirtyAndUpdate() override
82
{
83
m_geometry.markSourceDirty();
84
m_poly.polishAndUpdate();
85
}
86
void
regenerateCache();
87
void
updateCache();
88
void
afterViewportChanged() override
89
{
90
// preserveGeometry is cleared in updateMapItemPaintNode
91
markSourceDirtyAndUpdate();
92
}
93
void
onMapSet() override
94
{
95
regenerateCache();
96
markSourceDirtyAndUpdate();
97
}
98
void
onGeoGeometryChanged() override
99
{
100
regenerateCache();
101
markSourceDirtyAndUpdate();
102
}
103
void
onGeoGeometryUpdated() override
104
{
105
updateCache();
106
markSourceDirtyAndUpdate();
107
}
108
void
onItemGeometryChanged() override
109
{
110
onGeoGeometryChanged();
111
}
112
void
updatePolish() override;
113
QSGNode *updateMapItemPaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *
/*data*/
) override;
114
bool
contains(
const
QPointF &point)
const
override;
115
116
QList<QDoubleVector2D> m_geopathProjected;
117
QGeoMapPolylineGeometry m_geometry;
118
QQuickShape *m_shape =
nullptr
;
119
QQuickShapePath *m_shapePath =
nullptr
;
120
QDeclarativeGeoMapPainterPath *m_painterPath =
nullptr
;
121
};
122
123
QT_END_NAMESPACE
124
125
#
endif
// QDECLARATIVEPOLYLINEMAPITEM_P_P_H
QDeclarativeCircleMapItemPrivate::afterViewportChanged
virtual void afterViewportChanged()=0
QDeclarativeCircleMapItemPrivate::onMapSet
virtual void onMapSet()=0
QDeclarativeCircleMapItemPrivate::updatePolish
virtual void updatePolish()=0
QDeclarativeCircleMapItemPrivate::updateMapItemPaintNode
virtual QSGNode * updateMapItemPaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *data)=0
QDeclarativeCircleMapItemPrivate::onItemGeometryChanged
virtual void onItemGeometryChanged()=0
QDeclarativeCircleMapItemPrivate::onGeoGeometryChanged
virtual void onGeoGeometryChanged()=0
QDeclarativeCircleMapItemPrivate::contains
virtual bool contains(const QPointF &point) const =0
QDeclarativeCircleMapItemPrivate::onLinePropertiesChanged
virtual void onLinePropertiesChanged()=0
QDeclarativeCircleMapItemPrivate::markSourceDirtyAndUpdate
virtual void markSourceDirtyAndUpdate()=0
QDeclarativePolygonMapItemPrivate::m_poly
QDeclarativePolygonMapItem & m_poly
Definition
qdeclarativepolygonmapitem_p_p.h:86
QDeclarativePolygonMapItemPrivate::onGeoGeometryUpdated
virtual void onGeoGeometryUpdated()=0
QDeclarativePolylineMapItemPrivateCPU
Definition
qdeclarativepolylinemapitem_p_p.h:71
QDeclarativePolylineMapItemPrivate
Definition
qdeclarativepolylinemapitem_p_p.h:47
QDeclarativePolylineMapItem
Definition
qdeclarativepolylinemapitem_p.h:59
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
SegmentType
SegmentType
Definition
qdeclarativepolylinemapitem.cpp:67
TwoIntersections
@ TwoIntersections
Definition
qdeclarativepolylinemapitem.cpp:70
OneIntersection
@ OneIntersection
Definition
qdeclarativepolylinemapitem.cpp:69
NoIntersection
@ NoIntersection
Definition
qdeclarativepolylinemapitem.cpp:68
get_line_intersection
static QT_BEGIN_NAMESPACE bool get_line_intersection(const double p0_x, const double p0_y, const double p1_x, const double p1_y, const double p2_x, const double p2_y, const double p3_x, const double p3_y, double *i_x, double *i_y, double *i_t)
Definition
qdeclarativepolylinemapitem.cpp:25
clipLine
static QList< QList< QDoubleVector2D > > clipLine(const QList< QDoubleVector2D > &l, const QList< QDoubleVector2D > &poly)
Definition
qdeclarativepolylinemapitem.cpp:73
QGeoMapPolylineGeometry
Definition
qdeclarativepolylinemapitem_p_p.h:36
QGeoMapPolylineGeometry::srcPath_
QPainterPath srcPath_
Definition
qdeclarativepolylinemapitem_p_p.h:42
QGeoMapPolylineGeometry::updateSourcePoints
void updateSourcePoints(const QGeoMap &map, const QList< QDoubleVector2D > &basePath)
Definition
qdeclarativepolylinemapitem.cpp:301
QGeoMapPolylineGeometry::maxCoord_
qreal maxCoord_
Definition
qdeclarativepolylinemapitem_p_p.h:43
QGeoMapPolylineGeometry::srcPath
QPainterPath srcPath() const
Definition
qdeclarativepolylinemapitem_p_p.h:40
qtlocation
src
location
quickmapitems
qdeclarativepolylinemapitem_p_p.h
Generated on
for Qt by
1.18.0