15#ifndef QGSRUBBERBAND_H
16#define QGSRUBBERBAND_H
28#include <QSvgRenderer>
65 sipType = sipType_QgsRubberBand;
77 Q_PROPERTY( QColor fillColor READ fillColor WRITE setFillColor )
78 Q_PROPERTY( QColor strokeColor READ strokeColor WRITE setStrokeColor )
79 Q_PROPERTY(
int iconSize READ iconSize WRITE setIconSize )
80 Q_PROPERTY( QColor secondaryStrokeColor READ secondaryStrokeColor WRITE setSecondaryStrokeColor )
81 Q_PROPERTY(
int width READ width WRITE setWidth )
152 void setColor(
const QColor &color );
159 void setFillColor(
const QColor &color );
171 void setStrokeColor(
const QColor &color );
184 void setSecondaryStrokeColor(
const QColor &color );
195 void setWidth(
int width );
200 int width()
const {
return mPen.width(); }
206 void setIcon( IconType icon );
215 void setSvgIcon(
const QString &path, QPoint drawOffset );
226 void setIconSize(
int iconSize );
236 void setLineStyle( Qt::PenStyle penStyle );
241 void setBrushStyle( Qt::BrushStyle brushStyle );
259 void addPoint(
const QgsPointXY &p,
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
269 void closePoints(
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
278 void removePoint(
int index = 0,
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
283 void removeLastPoint(
int geometryIndex = 0,
bool doUpdate =
true,
int ringIndex = 0 );
289 void movePoint(
const QgsPointXY &p,
int geometryIndex = 0,
int ringIndex = 0 );
295 void movePoint(
int index,
const QgsPointXY &p,
int geometryIndex = 0,
int ringIndex = 0 );
302 int partSize(
int geometryIndex )
const;
329 void setToCanvasRectangle( QRect rect );
372 void setTranslationOffset(
double dx,
double dy );
384 int numberOfVertices()
const;
395 const QgsPointXY *getPoint(
int i,
int j = 0,
int ringIndex = 0 )
const;
403 void updatePosition()
override;
434 void paint( QPainter *p )
override;
441 void drawShape( QPainter *p,
const QVector<QPointF> &pts );
448 void drawShape( QPainter *p,
const QVector<QPolygonF> &rings );
462 IconType mIconType = ICON_CIRCLE;
463 std::unique_ptr<QSvgRenderer> mSvgRenderer;
466 std::unique_ptr< QgsSymbol > mSymbol;
471 QVector< QVector< QVector <QgsPointXY> > > mPoints;
473 double mTranslationOffsetX = 0.0;
474 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.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
const QgsCoordinateReferenceSystem & crs