15 #ifndef QGSRUBBERBAND_H
16 #define QGSRUBBERBAND_H
28 #include <QSvgRenderer>
62 sipType = sipType_QgsRubberBand;
69 Q_PROPERTY( QColor fillColor READ fillColor WRITE setFillColor )
70 Q_PROPERTY( QColor strokeColor READ strokeColor WRITE setStrokeColor )
72 Q_PROPERTY( QColor secondaryStrokeColor READ secondaryStrokeColor WRITE setSecondaryStrokeColor )
73 Q_PROPERTY(
int width READ width WRITE setWidth )
144 void setColor(
const QColor &color );
151 void setFillColor(
const QColor &color );
163 void setStrokeColor(
const QColor &color );
176 void setSecondaryStrokeColor(
const QColor &color );
187 void setWidth(
int width );
192 int width()
const {
return mPen.width(); }
198 void setIcon( IconType icon );
207 void setSvgIcon(
const QString &path, QPoint drawOffset );
228 void setLineStyle( Qt::PenStyle penStyle );
233 void setBrushStyle( Qt::BrushStyle brushStyle );
251 void addPoint(
const QgsPointXY &p,
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
261 void closePoints(
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
270 void removePoint(
int index = 0,
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
275 void removeLastPoint(
int geometryIndex = 0,
bool doUpdate =
true,
int ringIndex = 0 );
281 void movePoint(
const QgsPointXY &p,
int geometryIndex = 0,
int ringIndex = 0 );
287 void movePoint(
int index,
const QgsPointXY &p,
int geometryIndex = 0,
int ringIndex = 0 );
294 int partSize(
int geometryIndex )
const;
321 void setToCanvasRectangle( QRect rect );
364 void setTranslationOffset(
double dx,
double dy );
376 int numberOfVertices()
const;
387 const QgsPointXY *getPoint(
int i,
int j = 0,
int ringIndex = 0 )
const;
395 void updatePosition()
override;
426 void paint( QPainter *p )
override;
433 void drawShape( QPainter *p,
const QVector<QPointF> &pts );
440 void drawShape( QPainter *p,
const QVector<QPolygonF> &rings );
454 IconType mIconType = ICON_CIRCLE;
455 std::unique_ptr<QSvgRenderer> mSvgRenderer;
458 std::unique_ptr< QgsSymbol > mSymbol;
463 QVector< QVector< QVector <QgsPointXY> > > mPoints;
465 double mTranslationOffsetX = 0.0;
466 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.
Base class for all map layer types.
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