15#ifndef QGSRUBBERBAND_H
16#define QGSRUBBERBAND_H
28#include <QSvgRenderer>
64 sipType = sipType_QgsRubberBand;
76 Q_PROPERTY( QColor fillColor READ fillColor WRITE setFillColor )
77 Q_PROPERTY( QColor strokeColor READ strokeColor WRITE setStrokeColor )
79 Q_PROPERTY( QColor secondaryStrokeColor READ secondaryStrokeColor WRITE setSecondaryStrokeColor )
80 Q_PROPERTY(
int width READ width WRITE setWidth )
151 void setColor(
const QColor &color );
158 void setFillColor(
const QColor &color );
170 void setStrokeColor(
const QColor &color );
183 void setSecondaryStrokeColor(
const QColor &color );
194 void setWidth(
int width );
199 int width()
const {
return mPen.width(); }
205 void setIcon( IconType icon );
214 void setSvgIcon(
const QString &path, QPoint drawOffset );
235 void setLineStyle( Qt::PenStyle penStyle );
240 void setBrushStyle( Qt::BrushStyle brushStyle );
258 void addPoint(
const QgsPointXY &p,
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
268 void closePoints(
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
277 void removePoint(
int index = 0,
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
282 void removeLastPoint(
int geometryIndex = 0,
bool doUpdate =
true,
int ringIndex = 0 );
288 void movePoint(
const QgsPointXY &p,
int geometryIndex = 0,
int ringIndex = 0 );
294 void movePoint(
int index,
const QgsPointXY &p,
int geometryIndex = 0,
int ringIndex = 0 );
301 int partSize(
int geometryIndex )
const;
328 void setToCanvasRectangle( QRect rect );
371 void setTranslationOffset(
double dx,
double dy );
383 int numberOfVertices()
const;
394 const QgsPointXY *getPoint(
int i,
int j = 0,
int ringIndex = 0 )
const;
402 void updatePosition()
override;
433 void paint( QPainter *p )
override;
440 void drawShape( QPainter *p,
const QVector<QPointF> &pts );
447 void drawShape( QPainter *p,
const QVector<QPolygonF> &rings );
461 IconType mIconType = ICON_CIRCLE;
462 std::unique_ptr<QSvgRenderer> mSvgRenderer;
465 std::unique_ptr< QgsSymbol > mSymbol;
470 QVector< QVector< QVector <QgsPointXY> > > mPoints;
472 double mTranslationOffsetX = 0.0;
473 double mTranslationOffsetY = 0.0;
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
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.
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