45 Q_PROPERTY(
GeoScene* scene READ scene WRITE setScene NOTIFY sceneChanged)
46 Q_PROPERTY(QGeoCoordinate anchorCoordinate READ anchorCoordinate NOTIFY anchorCoordinateChanged)
47 Q_PROPERTY(
int pointCount READ pointCount NOTIFY pointCountChanged)
52 static constexpr int kFloatsPerVertex = 8;
61 QGeoCoordinate
anchorCoordinate()
const {
return _points.isEmpty() ? QGeoCoordinate() : _points.first(); }
63 int pointCount()
const {
return static_cast<int>(_points.size()); }
66 Q_INVOKABLE
void setPath(
const QVariantList& coordinates);
68 Q_INVOKABLE
void appendPoint(
const QGeoCoordinate& coordinate);
71 Q_INVOKABLE
void updateLastPoint(
const QGeoCoordinate& coordinate);
73 Q_INVOKABLE
void clearPath();
82 QVector3D _positionFor(
const QGeoCoordinate& coordinate)
const;
83 QVector3D _segmentDirection(qsizetype index)
const;
84 QVector3D _tangentAt(qsizetype index)
const;
85 void _writeVertexPair(qsizetype index,
const QVector3D& tangent);
86 void _growBounds(
const QVector3D& position);
89 QList<QGeoCoordinate> _points;
92 QList<QVector3D> _positions;
93 QList<QVector3D> _segmentDirections;
94 QByteArray _vertexData;