15#ifndef QGSRUBBERBAND_H
16#define QGSRUBBERBAND_H
28#include <QSvgRenderer>
63 sipType = sipType_QgsRubberBand;
75 Q_PROPERTY( QColor fillColor READ fillColor WRITE setFillColor )
76 Q_PROPERTY( QColor strokeColor READ strokeColor WRITE setStrokeColor )
78 Q_PROPERTY( QColor secondaryStrokeColor READ secondaryStrokeColor WRITE setSecondaryStrokeColor )
79 Q_PROPERTY(
int width READ width WRITE setWidth )
150 void setColor(
const QColor &color );
157 void setFillColor(
const QColor &color );
169 void setStrokeColor(
const QColor &color );
182 void setSecondaryStrokeColor(
const QColor &color );
193 void setWidth(
int width );
198 int width()
const {
return mPen.width(); }
204 void setIcon( IconType icon );
213 void setSvgIcon(
const QString &path, QPoint drawOffset );
234 void setLineStyle( Qt::PenStyle penStyle );
239 void setBrushStyle( Qt::BrushStyle brushStyle );
257 void addPoint(
const QgsPointXY &p,
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
267 void closePoints(
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
276 void removePoint(
int index = 0,
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
281 void removeLastPoint(
int geometryIndex = 0,
bool doUpdate =
true,
int ringIndex = 0 );
287 void movePoint(
const QgsPointXY &p,
int geometryIndex = 0,
int ringIndex = 0 );
293 void movePoint(
int index,
const QgsPointXY &p,
int geometryIndex = 0,
int ringIndex = 0 );
300 int partSize(
int geometryIndex )
const;
327 void setToCanvasRectangle( QRect rect );
370 void setTranslationOffset(
double dx,
double dy );
382 int numberOfVertices()
const;
393 const QgsPointXY *getPoint(
int i,
int j = 0,
int ringIndex = 0 )
const;
401 void updatePosition()
override;
432 void paint( QPainter *p )
override;
439 void drawShape( QPainter *p,
const QVector<QPointF> &pts );
446 void drawShape( QPainter *p,
const QVector<QPolygonF> &rings );
460 IconType mIconType = ICON_CIRCLE;
461 std::unique_ptr<QSvgRenderer> mSvgRenderer;
464 std::unique_ptr< QgsSymbol > mSymbol;
469 QVector< QVector< QVector <QgsPointXY> > > mPoints;
471 double mTranslationOffsetX = 0.0;
472 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