46 Q_PROPERTY(
GeoScene* scene READ scene WRITE setScene NOTIFY sceneChanged)
47 Q_PROPERTY(QGeoCoordinate anchorCoordinate READ anchorCoordinate NOTIFY anchorCoordinateChanged)
48 Q_PROPERTY(
int pointCount READ pointCount NOTIFY pointCountChanged)
53 static constexpr int kFloatsPerVertex = 8;
62 QGeoCoordinate
anchorCoordinate()
const {
return _points.isEmpty() ? QGeoCoordinate() : _points.first(); }
64 int pointCount()
const {
return static_cast<int>(_points.size()); }
69 Q_INVOKABLE
void setPath(
const QVariantList& coordinates,
const QVariantList& highlights = QVariantList());
71 Q_INVOKABLE
void appendPoint(
const QGeoCoordinate& coordinate);
74 Q_INVOKABLE
void updateLastPoint(
const QGeoCoordinate& coordinate);
76 Q_INVOKABLE
void clearPath();
85 QVector3D _positionFor(
const QGeoCoordinate& coordinate)
const;
86 QVector3D _segmentDirection(qsizetype index)
const;
87 QVector3D _tangentAt(qsizetype index)
const;
88 void _writeVertexPair(qsizetype index,
const QVector3D& tangent);
89 void _growBounds(
const QVector3D& position);
92 QList<QGeoCoordinate> _points;
93 QList<bool> _highlights;
96 QList<QVector3D> _positions;
97 QList<QVector3D> _segmentDirections;
98 QByteArray _vertexData;
100 QVector3D _maxBounds;