6#ifndef QDECLARATIVEPOLYLINEMAPITEM_P_P_H
7#define QDECLARATIVEPOLYLINEMAPITEM_P_P_H
20#include <QtCore/QScopedValueRollback>
21#include <QSGGeometryNode>
22#include <QSGFlatColorMaterial>
24#include <QtLocation/private/qlocationglobal_p.h>
25#include <QtLocation/private/qdeclarativepolylinemapitem_p.h>
26#include <QtLocation/private/qgeomapitemgeometry_p.h>
28#include <QtPositioning/private/qdoublevector2d_p.h>
38 const QList<QDoubleVector2D> &basePath);
48 Q_DISABLE_COPY_MOVE(QDeclarativePolylineMapItemPrivate)
50 QDeclarativePolylineMapItemPrivate(QDeclarativePolylineMapItem &poly)
55 virtual ~QDeclarativePolylineMapItemPrivate();
65 virtual bool contains(
const QPointF &point)
const = 0;
73 QDeclarativePolylineMapItemPrivateCPU(QDeclarativePolylineMapItem &poly);
74 ~QDeclarativePolylineMapItemPrivateCPU() override;
76 void onLinePropertiesChanged() override
79 markSourceDirtyAndUpdate();
81 void markSourceDirtyAndUpdate() override
83 m_geometry.markSourceDirty();
84 m_poly.polishAndUpdate();
86 void regenerateCache();
88 void afterViewportChanged() override
91 markSourceDirtyAndUpdate();
93 void onMapSet() override
96 markSourceDirtyAndUpdate();
98 void onGeoGeometryChanged() override
101 markSourceDirtyAndUpdate();
103 void onGeoGeometryUpdated() override
106 markSourceDirtyAndUpdate();
108 void onItemGeometryChanged() override
110 onGeoGeometryChanged();
112 void updatePolish() override;
113 QSGNode *updateMapItemPaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData * ) override;
114 bool contains(
const QPointF &point)
const override;
116 QList<QDoubleVector2D> m_geopathProjected;
117 QGeoMapPolylineGeometry m_geometry;
118 QQuickShape *m_shape =
nullptr;
119 QQuickShapePath *m_shapePath =
nullptr;
120 QDeclarativeGeoMapPainterPath *m_painterPath =
nullptr;
virtual void afterViewportChanged()=0
virtual void onMapSet()=0
virtual void updatePolish()=0
virtual QSGNode * updateMapItemPaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *data)=0
virtual void onItemGeometryChanged()=0
virtual void onGeoGeometryChanged()=0
virtual bool contains(const QPointF &point) const =0
virtual void onLinePropertiesChanged()=0
virtual void markSourceDirtyAndUpdate()=0
QDeclarativePolygonMapItem & m_poly
virtual void onGeoGeometryUpdated()=0
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)
static QList< QList< QDoubleVector2D > > clipLine(const QList< QDoubleVector2D > &l, const QList< QDoubleVector2D > &poly)
void updateSourcePoints(const QGeoMap &map, const QList< QDoubleVector2D > &basePath)
QPainterPath srcPath() const