Quantum GIS API Documentation
1.8
|
A class for drawing transient features (e.g. More...
#include <qgsrubberband.h>
Public Member Functions | |
QgsRubberBand (QgsMapCanvas *mapCanvas, bool isPolygon=false) | |
~QgsRubberBand () | |
void | setColor (const QColor &color) |
void | setWidth (int width) |
void | reset (bool isPolygon=false) |
void | addPoint (const QgsPoint &p, bool update=true, int geometryIndex=0) |
Add point to rubberband and update canvas If adding more points consider using update=false for better performance geometryIndex is the index of the feature part (in case of multipart geometries) | |
void | removeLastPoint (int geometryIndex=0) |
Removes the last point. Most useful in connection with undo operations. | |
void | movePoint (const QgsPoint &p, int geometryIndex=0) |
void | movePoint (int index, const QgsPoint &p, int geometryIndex=0) |
Moves the rubber band point specified by index. | |
void | setToGeometry (QgsGeometry *geom, QgsVectorLayer *layer) |
Sets this rubber band to the geometry of an existing feature. | |
void | setToCanvasRectangle (const QRect &rect) |
Sets this rubber band to a map canvas rectangle. | |
void | addGeometry (QgsGeometry *geom, QgsVectorLayer *layer) |
Add the geometry of an existing feature to a rubberband This is useful for multi feature highlighting. | |
void | setTranslationOffset (double dx, double dy) |
Adds translation to original coordinates (all in map coordinates) | |
int | size () const |
Returns number of geometries added in 1.5. | |
int | numberOfVertices () const |
Returns count of vertices in all lists of mPoint. | |
const QgsPoint * | getPoint (int i, int j=0) const |
Return vertex. | |
QgsGeometry * | asGeometry () |
Returns the rubberband as a Geometry. | |
Protected Member Functions | |
virtual void | paint (QPainter *p) |
void | updateRect () |
recalculates needed rectangle | |
Private Member Functions | |
QgsRubberBand () | |
Static Private Member Functions | |
static QgsPolyline | getPolyline (const QList< QgsPoint > &points) |
Private Attributes | |
QBrush | mBrush |
QPen | mPen |
QList< QList< QgsPoint > > | mPoints |
Nested lists used for multitypes. | |
bool | mIsPolygon |
double | mTranslationOffsetX |
double | mTranslationOffsetY |
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.
Definition at line 31 of file qgsrubberband.h.
QgsRubberBand::QgsRubberBand | ( | QgsMapCanvas * | mapCanvas, |
bool | isPolygon = false |
||
) |
Definition at line 30 of file qgsrubberband.cpp.
References reset(), and setColor().
Definition at line 44 of file qgsrubberband.cpp.
QgsRubberBand::QgsRubberBand | ( | ) | [private] |
Definition at line 40 of file qgsrubberband.cpp.
void QgsRubberBand::addGeometry | ( | QgsGeometry * | geom, |
QgsVectorLayer * | layer | ||
) |
Add the geometry of an existing feature to a rubberband This is useful for multi feature highlighting.
geom | the geometry object |
layer | the 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 177 of file qgsrubberband.cpp.
References addPoint(), QgsGeometry::asMultiPoint(), QgsGeometry::asMultiPolygon(), QgsGeometry::asMultiPolyline(), QgsGeometry::asPoint(), QgsGeometry::asPolygon(), QgsGeometry::asPolyline(), QgsMapCanvas::extent(), QgsMapRenderer::layerToMapCoordinates(), QgsMapCanvas::mapRenderer(), mIsPolygon, QgsMapCanvasItem::mMapCanvas, mPoints, updateRect(), QgsRectangle::width(), QGis::WKBLineString, QGis::WKBLineString25D, QGis::WKBMultiLineString, QGis::WKBMultiLineString25D, QGis::WKBMultiPoint, QGis::WKBMultiPoint25D, QGis::WKBMultiPolygon, QGis::WKBMultiPolygon25D, QGis::WKBPoint, QGis::WKBPoint25D, QGis::WKBPolygon, QGis::WKBPolygon25D, QgsGeometry::wkbType(), QGis::WKBUnknown, QgsPoint::x(), and QgsPoint::y().
Referenced by setToGeometry().
void QgsRubberBand::addPoint | ( | const QgsPoint & | p, |
bool | do_update = true , |
||
int | geometryIndex = 0 |
||
) |
Add point to rubberband and update canvas If adding more points consider using update=false for better performance geometryIndex is the index of the feature part (in case of multipart geometries)
Add a point to the shape being created.
Definition at line 81 of file qgsrubberband.cpp.
References mPoints, size(), and updateRect().
Referenced by addGeometry(), and setToCanvasRectangle().
Returns the rubberband as a Geometry.
added in 1.6
Definition at line 458 of file qgsrubberband.cpp.
References QgsGeometry::fromMultiPolyline(), QgsGeometry::fromPolygon(), QgsGeometry::fromPolyline(), getPolyline(), mIsPolygon, and mPoints.
const QgsPoint * QgsRubberBand::getPoint | ( | int | i, |
int | j = 0 |
||
) | const |
QgsPolyline QgsRubberBand::getPolyline | ( | const QList< QgsPoint > & | points | ) | [static, private] |
Definition at line 494 of file qgsrubberband.cpp.
Referenced by asGeometry().
void QgsRubberBand::movePoint | ( | const QgsPoint & | p, |
int | geometryIndex = 0 |
||
) |
Update the line between the last added point and the mouse position.
Definition at line 135 of file qgsrubberband.cpp.
References mPoints, and updateRect().
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 153 of file qgsrubberband.cpp.
References mPoints, and updateRect().
int QgsRubberBand::numberOfVertices | ( | ) | const |
Returns count of vertices in all lists of mPoint.
Definition at line 435 of file qgsrubberband.cpp.
References mPoints.
void QgsRubberBand::paint | ( | QPainter * | p | ) | [protected, virtual] |
Draw the shape in response to an update event.
Implements QgsMapCanvasItem.
Definition at line 364 of file qgsrubberband.cpp.
References mBrush, mIsPolygon, mPen, mPoints, mTranslationOffsetX, mTranslationOffsetY, and QgsMapCanvasItem::toCanvasCoordinates().
void QgsRubberBand::removeLastPoint | ( | int | geometryIndex = 0 | ) |
Removes the last point. Most useful in connection with undo operations.
Definition at line 116 of file qgsrubberband.cpp.
References mPoints, size(), and updateRect().
void QgsRubberBand::reset | ( | bool | isPolygon = false | ) |
Remove all points from the shape being created.
Definition at line 70 of file qgsrubberband.cpp.
References mIsPolygon, mPoints, and updateRect().
Referenced by QgsRubberBand(), setToCanvasRectangle(), and setToGeometry().
void QgsRubberBand::setColor | ( | const QColor & | color | ) |
Set the outline and fill color.
Definition at line 51 of file qgsrubberband.cpp.
Referenced by QgsRubberBand().
void QgsRubberBand::setToCanvasRectangle | ( | const QRect & | rect | ) |
Sets this rubber band to a map canvas rectangle.
rect | rectangle in canvas coordinates |
Definition at line 343 of file qgsrubberband.cpp.
References addPoint(), QgsMapCanvas::getCoordinateTransform(), QgsMapCanvasItem::mMapCanvas, reset(), QgsMapToPixel::toMapCoordinates(), QgsPoint::x(), and QgsPoint::y().
Referenced by QgsMapToolZoom::canvasMoveEvent().
void QgsRubberBand::setToGeometry | ( | QgsGeometry * | geom, |
QgsVectorLayer * | layer | ||
) |
Sets this rubber band to the geometry of an existing feature.
This is useful for feature highlighting.
geom | the geometry object |
layer | the 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 171 of file qgsrubberband.cpp.
References addGeometry(), mIsPolygon, and reset().
void QgsRubberBand::setTranslationOffset | ( | double | dx, |
double | dy | ||
) |
Adds translation to original coordinates (all in map coordinates)
Definition at line 423 of file qgsrubberband.cpp.
References mTranslationOffsetX, mTranslationOffsetY, and updateRect().
void QgsRubberBand::setWidth | ( | int | width | ) |
int QgsRubberBand::size | ( | void | ) | const |
Returns number of geometries added in 1.5.
Definition at line 430 of file qgsrubberband.cpp.
References mPoints.
Referenced by addPoint(), and removeLastPoint().
void QgsRubberBand::updateRect | ( | ) | [protected] |
recalculates needed rectangle
Definition at line 393 of file qgsrubberband.cpp.
References mPoints, mTranslationOffsetX, mTranslationOffsetY, and QgsMapCanvasItem::setRect().
Referenced by addGeometry(), addPoint(), movePoint(), removeLastPoint(), reset(), and setTranslationOffset().
QBrush QgsRubberBand::mBrush [private] |
Definition at line 101 of file qgsrubberband.h.
Referenced by paint(), and setColor().
bool QgsRubberBand::mIsPolygon [private] |
Definition at line 106 of file qgsrubberband.h.
Referenced by addGeometry(), asGeometry(), paint(), reset(), and setToGeometry().
QPen QgsRubberBand::mPen [private] |
Definition at line 102 of file qgsrubberband.h.
Referenced by paint(), setColor(), and setWidth().
QList< QList <QgsPoint> > QgsRubberBand::mPoints [private] |
Nested lists used for multitypes.
Definition at line 105 of file qgsrubberband.h.
Referenced by addGeometry(), addPoint(), asGeometry(), getPoint(), movePoint(), numberOfVertices(), paint(), removeLastPoint(), reset(), size(), and updateRect().
double QgsRubberBand::mTranslationOffsetX [private] |
Definition at line 107 of file qgsrubberband.h.
Referenced by paint(), setTranslationOffset(), and updateRect().
double QgsRubberBand::mTranslationOffsetY [private] |
Definition at line 108 of file qgsrubberband.h.
Referenced by paint(), setTranslationOffset(), and updateRect().