5#ifndef QDECLARATIVEPOLYLINEMAPITEM_P_P_H
6#define QDECLARATIVEPOLYLINEMAPITEM_P_P_H
19#include <QtCore/QScopedValueRollback>
20#include <QSGGeometryNode>
21#include <QSGFlatColorMaterial>
23#include <QtLocation/private/qlocationglobal_p.h>
24#include <QtLocation/private/qdeclarativepolylinemapitem_p.h>
25#include <QtLocation/private/qgeomapitemgeometry_p.h>
27#include <QtPositioning/private/qdoublevector2d_p.h>
37 const QList<QDoubleVector2D> &basePath);
47 Q_DISABLE_COPY_MOVE(QDeclarativePolylineMapItemPrivate)
49 QDeclarativePolylineMapItemPrivate(QDeclarativePolylineMapItem &poly)
54 virtual ~QDeclarativePolylineMapItemPrivate();
64 virtual bool contains(
const QPointF &point)
const = 0;
72 QDeclarativePolylineMapItemPrivateCPU(QDeclarativePolylineMapItem &poly);
73 ~QDeclarativePolylineMapItemPrivateCPU() override;
75 void onLinePropertiesChanged() override
78 markSourceDirtyAndUpdate();
80 void markSourceDirtyAndUpdate() override
82 m_geometry.markSourceDirty();
83 m_poly.polishAndUpdate();
85 void regenerateCache();
87 void afterViewportChanged() override
90 markSourceDirtyAndUpdate();
92 void onMapSet() override
95 markSourceDirtyAndUpdate();
97 void onGeoGeometryChanged() override
100 markSourceDirtyAndUpdate();
102 void onGeoGeometryUpdated() override
105 markSourceDirtyAndUpdate();
107 void onItemGeometryChanged() override
109 onGeoGeometryChanged();
111 void updatePolish() override;
112 QSGNode *updateMapItemPaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData * ) override;
113 bool contains(
const QPointF &point)
const override;
115 QList<QDoubleVector2D> m_geopathProjected;
116 QGeoMapPolylineGeometry m_geometry;
117 QQuickShape *m_shape =
nullptr;
118 QQuickShapePath *m_shapePath =
nullptr;
119 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