QGIS API Documentation  2.8.2-Wien
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Types | Public Member Functions | Protected Member Functions | List of all members
QgsRubberBand Class Reference

A class for drawing transient features (e.g. More...

#include <qgsrubberband.h>

Inheritance diagram for QgsRubberBand:
Inheritance graph
[legend]

Public Types

enum  IconType {
  ICON_NONE, ICON_CROSS, ICON_X, ICON_BOX,
  ICON_CIRCLE, ICON_FULL_BOX
}
 Icons. More...

Public Member Functions

 QgsRubberBand (QgsMapCanvas *mapCanvas, QGis::GeometryType geometryType=QGis::Line)
 Creates a new RubberBand.
 QgsRubberBand (QgsMapCanvas *mapCanvas, bool isPolygon)
 Creates a new RubberBand.
 ~QgsRubberBand ()
void addGeometry (QgsGeometry *geom, QgsVectorLayer *layer)
 Add the geometry of an existing feature to a rubberband This is useful for multi feature highlighting.
void addPoint (const QgsPoint &p, bool doUpdate=true, int geometryIndex=0)
 Add a vertex to the rubberband and update canvas.
QgsGeometryasGeometry ()
 Returns the rubberband as a Geometry.
const QgsPointgetPoint (int i, int j=0) const
 Return vertex.
void movePoint (const QgsPoint &p, int geometryIndex=0)
 Moves the rubber band point specified by index.
void movePoint (int index, const QgsPoint &p, int geometryIndex=0)
 Moves the rubber band point specified by index.
int numberOfVertices () const
 Returns count of vertices in all lists of mPoint.
int partSize (int geometryIndex) const
 Returns number of vertices in feature part.
void removeLastPoint (int geometryIndex=0, bool doUpdate=true)
 Removes the last point.
void removePoint (int index=0, bool doUpdate=true, int geometryIndex=0)
 Remove a vertex from the rubberband and (optionally) update canvas.
void reset (QGis::GeometryType geometryType=QGis::Line)
 Clears all the geometries in this rubberband.
void reset (bool isPolygon)
void setBorderColor (const QColor &color)
 Set the border color for the rubberband.
void setBrushStyle (Qt::BrushStyle brushStyle)
 Set the style of the brush.
void setColor (const QColor &color)
 Set the color for the rubberband.
void setFillColor (const QColor &color)
 Set the fill color for the rubberband.
void setIcon (IconType icon)
 Set the icon type to highlight point geometries.
void setIconSize (int iconSize)
 Set the size of the point icons.
void setLineStyle (Qt::PenStyle penStyle)
 Set the style of the line.
void setToCanvasRectangle (const QRect &rect)
 Sets this rubber band to a map canvas rectangle.
void setToGeometry (QgsGeometry *geom, QgsVectorLayer *layer)
 Sets this rubber band to the geometry of an existing feature.
void setTranslationOffset (double dx, double dy)
 Adds translation to original coordinates (all in map coordinates)
void setWidth (int width)
 Set the width of the line.
int size () const
 Returns number of geometries.
virtual void updatePosition () override
 called on changed extent or resize event to update position of the item
- Public Member Functions inherited from QgsMapCanvasItem
virtual QRectF boundingRect () const override
 default implementation for canvas items
QgsRectangle rect () const
 returns canvas item rectangle in map units
Q_DECL_DEPRECATED void setPanningOffset (const QPoint &point)
 sets current offset, to be called from QgsMapCanvas
void setRect (const QgsRectangle &r, bool resetRotation=true)
 sets canvas item rectangle in map units
QPointF toCanvasCoordinates (const QgsPoint &point) const
 transformation from map coordinates to screen coordinates
QgsPoint toMapCoordinates (const QPoint &point) const
 transformation from screen coordinates to map coordinates

Protected Member Functions

virtual void paint (QPainter *p) override
void updateRect ()
 recalculates needed rectangle
- Protected Member Functions inherited from QgsMapCanvasItem
 QgsMapCanvasItem (QgsMapCanvas *mapCanvas)
 protected constructor: cannot be constructed directly
virtual ~QgsMapCanvasItem ()
virtual void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0) override
 paint function called by map canvas
bool setRenderContextVariables (QPainter *p, QgsRenderContext &context) const
 Sets render context parameters.
void updateCanvas ()
 schedules map canvas for repaint

Additional Inherited Members

- Protected Attributes inherited from QgsMapCanvasItem
QSizeF mItemSize
 cached size of the item (to return in boundingRect())
QgsMapCanvasmMapCanvas
 pointer to map canvas
QPoint mPanningOffset
 offset from normal position due current panning operation, used when converting map coordinates to move map canvas items
QgsRectangle mRect
 cached canvas item rectangle in map coordinates encodes position (xmin,ymax) and size (width/height) used to re-position and re-size the item on zoom/pan while waiting for the renderer to complete.
double mRectRotation

Detailed Description

A class for drawing transient features (e.g.

The QgsRubberBand class provides a transparent overlay widget for tracking the mouse while drawing polylines or polygons.

digitising lines) on the map. It may be used

Definition at line 32 of file qgsrubberband.h.

Member Enumeration Documentation

Icons.

Enumerator:
ICON_NONE 

No icon is used.

ICON_CROSS 

A cross is used to highlight points (+)

ICON_X 

A cross is used to highlight points (x)

ICON_BOX 

A box is used to highlight points (□)

ICON_CIRCLE 

A circle is used to highlight points (○)

ICON_FULL_BOX 

A full box is used to highlight points (■)

Definition at line 37 of file qgsrubberband.h.

Constructor & Destructor Documentation

QgsRubberBand::QgsRubberBand ( QgsMapCanvas mapCanvas,
QGis::GeometryType  geometryType = QGis::Line 
)

Creates a new RubberBand.

Parameters
mapCanvasThe map canvas to draw onto. It's CRS will be used map points onto screen coordinates.
geometryTypeDefines how the data should be drawn onto the screen. (Use QGis::Line, QGis::Polygon or QGis::Point)

Definition at line 30 of file qgsrubberband.cpp.

QgsRubberBand::QgsRubberBand ( QgsMapCanvas mapCanvas,
bool  isPolygon 
)

Creates a new RubberBand.

Deprecated:
Use the constructor which takes QGis::GeometryType as second argument instead
Parameters
mapCanvasThe map canvas to draw onto. It's CRS will be used map points onto screen coordinates.
isPolygontrue: draw as (multi-)polygon, false draw as (multi-)linestring

Definition at line 47 of file qgsrubberband.cpp.

QgsRubberBand::~QgsRubberBand ( )

Definition at line 73 of file qgsrubberband.cpp.

Member Function Documentation

void QgsRubberBand::addGeometry ( QgsGeometry geom,
QgsVectorLayer layer 
)

Add the geometry of an existing feature to a rubberband This is useful for multi feature highlighting.

As of 2.0, this method does not change the GeometryType any more. You need to set the GeometryType of the rubberband explicitly by calling reset or setToGeometry with appropriate arguments. setToGeometry is also to be preferred for backwards-compatibility.

Parameters
geomthe geometry object. Will be treated as a collection of vertices.
layerthe layer containing the feature, used for coord transformation to map crs. In case of 0 pointer, the coordinates are not going to be transformed.

Definition at line 274 of file qgsrubberband.cpp.

void QgsRubberBand::addPoint ( const QgsPoint p,
bool  doUpdate = true,
int  geometryIndex = 0 
)

Add a vertex to the rubberband and update canvas.

The rendering of the vertex depends on the current GeometryType and icon. If adding more points consider using update=false for better performance

Parameters
pThe vertex/point to add
doUpdateShould the map canvas be updated immediately?
geometryIndexThe index of the feature part (in case of multipart geometries)

Add a point to the shape being created.

Definition at line 155 of file qgsrubberband.cpp.

QgsGeometry * QgsRubberBand::asGeometry ( )

Returns the rubberband as a Geometry.

Returns
A geometry object which reflects the current state of the rubberband.

Definition at line 625 of file qgsrubberband.cpp.

const QgsPoint * QgsRubberBand::getPoint ( int  i,
int  j = 0 
) const

Return vertex.

Parameters
iThe geometry index
jThe vertex index within geometry i

Definition at line 617 of file qgsrubberband.cpp.

void QgsRubberBand::movePoint ( const QgsPoint p,
int  geometryIndex = 0 
)

Moves the rubber band point specified by index.

Note that if the rubber band is not used to track the last mouse position, the first point of the rubber band has two vertices

Update the line between the last added point and the mouse position.

Definition at line 226 of file qgsrubberband.cpp.

void QgsRubberBand::movePoint ( int  index,
const QgsPoint p,
int  geometryIndex = 0 
)

Moves the rubber band point specified by index.

Note that if the rubber band is not used to track the last mouse position, the first point of the rubber band has two vertices

Definition at line 244 of file qgsrubberband.cpp.

int QgsRubberBand::numberOfVertices ( ) const

Returns count of vertices in all lists of mPoint.

Returns
The total number of vertices

Definition at line 602 of file qgsrubberband.cpp.

void QgsRubberBand::paint ( QPainter *  p)
overrideprotectedvirtual

Draw the shape in response to an update event.

Implements QgsMapCanvasItem.

Definition at line 450 of file qgsrubberband.cpp.

int QgsRubberBand::partSize ( int  geometryIndex) const

Returns number of vertices in feature part.

Parameters
geometryIndexThe index of the feature part (in case of multipart geometries)
Returns
number of vertices

Definition at line 596 of file qgsrubberband.cpp.

void QgsRubberBand::removeLastPoint ( int  geometryIndex = 0,
bool  doUpdate = true 
)

Removes the last point.

Most useful in connection with undo operations

Definition at line 218 of file qgsrubberband.cpp.

void QgsRubberBand::removePoint ( int  index = 0,
bool  doUpdate = true,
int  geometryIndex = 0 
)

Remove a vertex from the rubberband and (optionally) update canvas.

Parameters
indexThe index of the vertex/point to remove, negative indexes start at end
doUpdateShould the map canvas be updated immediately?
geometryIndexThe index of the feature part (in case of multipart geometries)

Definition at line 192 of file qgsrubberband.cpp.

void QgsRubberBand::reset ( QGis::GeometryType  geometryType = QGis::Line)

Clears all the geometries in this rubberband.

Sets the representation type according to geometryType.

Parameters
geometryTypeDefines how the data should be drawn onto the screen. (Use QGis::Line, QGis::Polygon or QGis::Point)

Remove all points from the shape being created.

Definition at line 136 of file qgsrubberband.cpp.

void QgsRubberBand::reset ( bool  isPolygon)
Deprecated:
Use the reset method which takes QGis::GeometryType as second argument instead Clears all the geometries in this rubberband. Sets the representation type according to isPolygon.
Parameters
isPolygontrue: draw as (multi-)polygon, false draw as (multi-)linestring

Definition at line 144 of file qgsrubberband.cpp.

void QgsRubberBand::setBorderColor ( const QColor &  color)

Set the border color for the rubberband.

Parameters
colorThe color used to render this rubberband
Note
Added in 2.6

Set the outline

Definition at line 98 of file qgsrubberband.cpp.

void QgsRubberBand::setBrushStyle ( Qt::BrushStyle  brushStyle)

Set the style of the brush.

Definition at line 128 of file qgsrubberband.cpp.

void QgsRubberBand::setColor ( const QColor &  color)

Set the color for the rubberband.

Parameters
colorThe color used to render this rubberband

Set the outline and fill color.

Definition at line 80 of file qgsrubberband.cpp.

void QgsRubberBand::setFillColor ( const QColor &  color)

Set the fill color for the rubberband.

Parameters
colorThe color used to render this rubberband
Note
Added in 2.6

Set the fill color.

Definition at line 89 of file qgsrubberband.cpp.

void QgsRubberBand::setIcon ( IconType  icon)

Set the icon type to highlight point geometries.

Parameters
iconThe icon to visualize point geometries

Definition at line 113 of file qgsrubberband.cpp.

void QgsRubberBand::setIconSize ( int  iconSize)

Set the size of the point icons.

Definition at line 118 of file qgsrubberband.cpp.

void QgsRubberBand::setLineStyle ( Qt::PenStyle  penStyle)

Set the style of the line.

Definition at line 123 of file qgsrubberband.cpp.

void QgsRubberBand::setToCanvasRectangle ( const QRect &  rect)

Sets this rubber band to a map canvas rectangle.

Parameters
rectrectangle in canvas coordinates

Definition at line 427 of file qgsrubberband.cpp.

void QgsRubberBand::setToGeometry ( QgsGeometry geom,
QgsVectorLayer layer 
)

Sets this rubber band to the geometry of an existing feature.

This is useful for feature highlighting. In contrast to addGeometry, this method does also change the geometry type of the rubberband.

Parameters
geomthe geometry object
layerthe layer containing the feature, used for coord transformation to map crs. In case of 0 pointer, the coordinates are not going to be transformed.

Definition at line 262 of file qgsrubberband.cpp.

void QgsRubberBand::setTranslationOffset ( double  dx,
double  dy 
)

Adds translation to original coordinates (all in map coordinates)

Parameters
dxx translation
dyy translation

Definition at line 584 of file qgsrubberband.cpp.

void QgsRubberBand::setWidth ( int  width)

Set the width of the line.

Outline width for polygon.

Parameters
widthThe width for any lines painted for this rubberband

Set the outline width.

Definition at line 108 of file qgsrubberband.cpp.

int QgsRubberBand::size ( void  ) const

Returns number of geometries.

Returns
number of geometries

Definition at line 591 of file qgsrubberband.cpp.

void QgsRubberBand::updatePosition ( )
overridevirtual

called on changed extent or resize event to update position of the item

Reimplemented from QgsMapCanvasItem.

Definition at line 574 of file qgsrubberband.cpp.

void QgsRubberBand::updateRect ( )
protected

recalculates needed rectangle

Definition at line 529 of file qgsrubberband.cpp.


The documentation for this class was generated from the following files: