15 #ifndef QGSRUBBERBAND_H
16 #define QGSRUBBERBAND_H
27 #include <QSvgRenderer>
60 sipType = sipType_QgsRubberBand;
67 Q_PROPERTY( QColor fillColor READ fillColor WRITE setFillColor )
68 Q_PROPERTY( QColor strokeColor READ strokeColor WRITE setStrokeColor )
70 Q_PROPERTY( QColor secondaryStrokeColor READ secondaryStrokeColor WRITE setSecondaryStrokeColor )
71 Q_PROPERTY(
int width READ width WRITE setWidth )
141 void setColor(
const QColor &color );
148 void setFillColor(
const QColor &color );
160 void setStrokeColor(
const QColor &color );
173 void setSecondaryStrokeColor(
const QColor &color );
184 void setWidth(
int width );
189 int width()
const {
return mPen.width(); }
195 void setIcon( IconType icon );
204 void setSvgIcon(
const QString &path, QPoint drawOffset );
225 void setLineStyle( Qt::PenStyle penStyle );
230 void setBrushStyle( Qt::BrushStyle brushStyle );
248 void addPoint(
const QgsPointXY &p,
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
258 void closePoints(
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
267 void removePoint(
int index = 0,
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
272 void removeLastPoint(
int geometryIndex = 0,
bool doUpdate =
true,
int ringIndex = 0 );
278 void movePoint(
const QgsPointXY &p,
int geometryIndex = 0,
int ringIndex = 0 );
284 void movePoint(
int index,
const QgsPointXY &p,
int geometryIndex = 0,
int ringIndex = 0 );
291 int partSize(
int geometryIndex )
const;
318 void setToCanvasRectangle( QRect rect );
355 void setTranslationOffset(
double dx,
double dy );
367 int numberOfVertices()
const;
378 const QgsPointXY *getPoint(
int i,
int j = 0,
int ringIndex = 0 )
const;
386 void updatePosition()
override;
394 void paint( QPainter *p )
override;
401 void drawShape( QPainter *p,
const QVector<QPointF> &pts );
408 void drawShape( QPainter *p,
const QVector<QPolygonF> &rings );
422 IconType mIconType = ICON_CIRCLE;
423 std::unique_ptr<QSvgRenderer> mSvgRenderer;
429 QVector< QVector< QVector <QgsPointXY> > > mPoints;
431 double mTranslationOffsetX = 0.0;
432 double mTranslationOffsetY = 0.0;
This class represents a coordinate reference system (CRS).
A geometry is the spatial representation of a feature.
An abstract class for items that can be placed on the map canvas.
Map canvas is a class for displaying all GIS data types on a canvas.
A class to represent a 2D point.
A class for drawing transient features (e.g.
QColor fillColor() const
Returns the current fill color.
IconType icon() const
Returns the current icon type to highlight point geometries.
@ ICON_X
A cross is used to highlight points (x)
@ ICON_FULL_DIAMOND
A diamond is used to highlight points (◆)
@ ICON_FULL_BOX
A full box is used to highlight points (■)
@ ICON_NONE
No icon is used.
@ ICON_CROSS
A cross is used to highlight points (+)
@ ICON_CIRCLE
A circle is used to highlight points (○)
@ ICON_DIAMOND
A diamond is used to highlight points (◇)
@ ICON_BOX
A box is used to highlight points (□)
QColor secondaryStrokeColor() const
Returns the current secondary stroke color.
int iconSize() const
Returns the current icon size of the point icons.
int width() const
Returns the current width of the line or stroke width for polygon.
QColor strokeColor() const
Returns the current stroke color.
Represents a vector layer which manages a vector based data sets.
GeometryType
The geometry types are used to group QgsWkbTypes::Type in a coarse way.
QSize iconSize(bool dockableToolbar)
Returns the user-preferred size of a window's toolbar icons.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
const QgsCoordinateReferenceSystem & crs