17#ifndef QGSBEZIERMARKER_H
18#define QGSBEZIERMARKER_H
45class GUI_EXPORT QgsBezierMarker :
public QObject
55 static constexpr int AnchorMarkerSize = 10;
56 static constexpr int HandleMarkerSize = 8;
57 static constexpr int MarkerPenWidth = 2;
58 static constexpr int HandleLineWidth = 1;
59 static constexpr int FillAlpha = 100;
60 static constexpr int HandleLineAlpha = 150;
61 static constexpr int SelectionAlpha = 150;
69 explicit QgsBezierMarker(
QgsMapCanvas *canvas, QObject *parent =
nullptr );
71 ~QgsBezierMarker()
override;
77 void updateFromData(
const QgsBezierData &data );
83 void updateCurve(
const QgsBezierData &data );
89 void setVisible(
bool visible );
95 void setHandlesVisible(
bool visible );
104 void setHighlightedAnchor(
int idx );
110 void setHighlightedHandle(
int idx );
115 std::vector<QgsVertexMarker *> mAnchorMarkers;
116 std::vector<QgsVertexMarker *> mHandleMarkers;
117 std::vector<QObjectUniquePtr<QgsRubberBand>> mHandleLines;
120 int mHighlightedAnchor = -1;
121 int mHighlightedHandle = -1;
123 bool mVisible =
true;
124 bool mHandlesVisible =
true;
136 void updateAnchorMarkers(
const QgsBezierData &data );
139 void updateHandleMarkers(
const QgsBezierData &data );
142 void updateHandleLines(
const QgsBezierData &data );
Keeps a pointer to a QObject and deletes it whenever this object is deleted.
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.