17#ifndef QGSBEZIERMARKER_H
18#define QGSBEZIERMARKER_H
46class GUI_EXPORT QgsBezierMarker :
public QObject
56 static constexpr int AnchorMarkerSize = 10;
57 static constexpr int HandleMarkerSize = 8;
58 static constexpr int MarkerPenWidth = 2;
59 static constexpr int HandleLineWidth = 1;
60 static constexpr int FillAlpha = 100;
61 static constexpr int HandleLineAlpha = 150;
62 static constexpr int SelectionAlpha = 150;
70 explicit QgsBezierMarker( QgsMapCanvas *canvas, QObject *parent =
nullptr );
72 ~QgsBezierMarker()
override;
78 void updateFromData(
const QgsBezierData &data );
84 void updateCurve(
const QgsBezierData &data );
90 void setVisible(
bool visible );
96 void setHandlesVisible(
bool visible );
105 void setHighlightedAnchor(
int idx );
111 void setHighlightedHandle(
int idx );
114 QgsMapCanvas *mCanvas =
nullptr;
116 std::vector<QgsVertexMarker *> mAnchorMarkers;
117 std::vector<QgsVertexMarker *> mHandleMarkers;
118 std::vector<QObjectUniquePtr<QgsRubberBand>> mHandleLines;
119 QObjectUniquePtr<QgsRubberBand> mCurveRubberBand;
121 int mHighlightedAnchor = -1;
122 int mHighlightedHandle = -1;
124 bool mVisible =
true;
125 bool mHandlesVisible =
true;
128 QgsVertexMarker *createAnchorMarker();
131 QgsVertexMarker *createHandleMarker();
134 QObjectUniquePtr<QgsRubberBand> createHandleLine();
137 void updateAnchorMarkers(
const QgsBezierData &data );
140 void updateHandleMarkers(
const QgsBezierData &data );
143 void updateHandleLines(
const QgsBezierData &data );
Map canvas is a class for displaying all GIS data types on a canvas.
Responsible for drawing transient features (e.g.
A map canvas item for marking vertices of features using e.g.