15 #ifndef QGSRUBBERBAND_H
16 #define QGSRUBBERBAND_H
27 #include <QSvgRenderer>
61 sipType = sipType_QgsRubberBand;
68 Q_PROPERTY( QColor fillColor READ fillColor WRITE setFillColor )
69 Q_PROPERTY( QColor strokeColor READ strokeColor WRITE setStrokeColor )
71 Q_PROPERTY( QColor secondaryStrokeColor READ secondaryStrokeColor WRITE setSecondaryStrokeColor )
72 Q_PROPERTY(
int width READ width WRITE setWidth )
143 void setColor(
const QColor &color );
150 void setFillColor(
const QColor &color );
162 void setStrokeColor(
const QColor &color );
175 void setSecondaryStrokeColor(
const QColor &color );
186 void setWidth(
int width );
191 int width()
const {
return mPen.width(); }
197 void setIcon( IconType icon );
206 void setSvgIcon(
const QString &path, QPoint drawOffset );
227 void setLineStyle( Qt::PenStyle penStyle );
232 void setBrushStyle( Qt::BrushStyle brushStyle );
250 void addPoint(
const QgsPointXY &p,
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
260 void closePoints(
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
269 void removePoint(
int index = 0,
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
274 void removeLastPoint(
int geometryIndex = 0,
bool doUpdate =
true,
int ringIndex = 0 );
280 void movePoint(
const QgsPointXY &p,
int geometryIndex = 0,
int ringIndex = 0 );
286 void movePoint(
int index,
const QgsPointXY &p,
int geometryIndex = 0,
int ringIndex = 0 );
293 int partSize(
int geometryIndex )
const;
320 void setToCanvasRectangle( QRect rect );
357 void setTranslationOffset(
double dx,
double dy );
369 int numberOfVertices()
const;
380 const QgsPointXY *getPoint(
int i,
int j = 0,
int ringIndex = 0 )
const;
388 void updatePosition()
override;
419 void paint( QPainter *p )
override;
426 void drawShape( QPainter *p,
const QVector<QPointF> &pts );
433 void drawShape( QPainter *p,
const QVector<QPolygonF> &rings );
447 IconType mIconType = ICON_CIRCLE;
448 std::unique_ptr<QSvgRenderer> mSvgRenderer;
451 std::unique_ptr< QgsSymbol > mSymbol;
456 QVector< QVector< QVector <QgsPointXY> > > mPoints;
458 double mTranslationOffsetX = 0.0;
459 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.
~QgsRubberBand() override
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.
Abstract base class for all rendered symbols.
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