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 )
150 void setColor(
const QColor &color );
156 void setFillColor(
const QColor &color );
167 void setStrokeColor(
const QColor &color );
179 void setSecondaryStrokeColor(
const QColor &color );
190 void setWidth(
double width );
195 int width()
const {
return mPen.width(); }
201 void setIcon( IconType icon );
210 void setSvgIcon(
const QString &path, QPoint drawOffset );
221 void setIconSize(
double iconSize );
231 void setLineStyle( Qt::PenStyle penStyle );
236 void setBrushStyle( Qt::BrushStyle brushStyle );
254 void addPoint(
const QgsPointXY &p,
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
263 void closePoints(
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
272 void removePoint(
int index = 0,
bool doUpdate =
true,
int geometryIndex = 0,
int ringIndex = 0 );
277 void removeLastPoint(
int geometryIndex = 0,
bool doUpdate =
true,
int ringIndex = 0 );
283 void movePoint(
const QgsPointXY &p,
int geometryIndex = 0,
int ringIndex = 0 );
289 void movePoint(
int index,
const QgsPointXY &p,
int geometryIndex = 0,
int ringIndex = 0 );
296 int partSize(
int geometryIndex )
const;
323 void setToCanvasRectangle( QRect rect );
365 void setTranslationOffset(
double dx,
double dy );
377 int numberOfVertices()
const;
388 const QgsPointXY *getPoint(
int i,
int j = 0,
int ringIndex = 0 )
const;
396 void updatePosition()
override;
427 void paint( QPainter *p )
override;
434 void drawShape( QPainter *p,
const QVector<QPointF> &pts );
441 void drawShape( QPainter *p,
const QVector<QPolygonF> &rings );
452 double mIconSize = 5;
455 IconType mIconType = ICON_CIRCLE;
456 std::unique_ptr<QSvgRenderer> mSvgRenderer;
459 std::unique_ptr< QgsSymbol > mSymbol;
464 QVector< QVector< QVector <QgsPointXY> > > mPoints;
466 double mTranslationOffsetX = 0.0;
467 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
double iconSize() const
Returns the current icon size of the point icons.
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 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