|
QGIS API Documentation
master-3f58142
|
A simple position manager implementation which positions the overlay objects on the center point of a feature. More...
#include <qgscentralpointpositionmanager.h>
Inheritance diagram for QgsCentralPointPositionManager:
Collaboration diagram for QgsCentralPointPositionManager:Public Member Functions | |
| QgsCentralPointPositionManager () | |
| ~QgsCentralPointPositionManager () | |
| void | addLayer (QgsVectorLayer *vl, QList< QgsVectorOverlay * > &overlays) |
| Adds a layer that may contain * overlays to the position manager. | |
| void | findObjectPositions (const QgsRenderContext &context, QGis::UnitType unitType) |
| Calculate positions for the overlay objects. | |
| void | removeLayers () |
| Removes all the overlays. | |
Private Member Functions | |
| int | calculatePolygonCentroid (double x[], double y[], int numberOfPoints, double ¢roidX, double ¢roidY) const |
| Calculates the polygon centroid with the algorithm from Graphics gems IV: Centroid of a polygon. | |
| int | findObjectPosition (const unsigned char *wkb, QgsPoint &position) const |
| Calculates the central point for points/lines/polygons. | |
Private Attributes | |
| QList< QgsVectorOverlay * > | mOverlays |
| Stores all the overlay objects to retrieve all objects when positioning. | |
A simple position manager implementation which positions the overlay objects on the center point of a feature.
It does not consider conflicts in case of several overlay layers
Definition at line 30 of file qgscentralpointpositionmanager.h.
Definition at line 24 of file qgscentralpointpositionmanager.cpp.
Definition at line 29 of file qgscentralpointpositionmanager.cpp.
| void QgsCentralPointPositionManager::addLayer | ( | QgsVectorLayer * | vl, |
| QList< QgsVectorOverlay * > & | overlays | ||
| ) | [virtual] |
Adds a layer that may contain * overlays to the position manager.
The overlay objects contained in the overlays will then be considered in label placement
Implements QgsOverlayObjectPositionManager.
Definition at line 34 of file qgscentralpointpositionmanager.cpp.
References mOverlays.
| int QgsCentralPointPositionManager::calculatePolygonCentroid | ( | double | x[], |
| double | y[], | ||
| int | numberOfPoints, | ||
| double & | centroidX, | ||
| double & | centroidY | ||
| ) | const [private] |
Calculates the polygon centroid with the algorithm from Graphics gems IV: Centroid of a polygon.
Definition at line 224 of file qgscentralpointpositionmanager.cpp.
Referenced by findObjectPosition().
| int QgsCentralPointPositionManager::findObjectPosition | ( | const unsigned char * | wkb, |
| QgsPoint & | position | ||
| ) | const [private] |
Calculates the central point for points/lines/polygons.
Returns 0 in case of success
Definition at line 78 of file qgscentralpointpositionmanager.cpp.
References calculatePolygonCentroid(), QgsPoint::setX(), QgsPoint::setY(), QGis::WKBLineString, QGis::WKBLineString25D, QGis::WKBMultiLineString, QGis::WKBMultiLineString25D, QGis::WKBMultiPoint, QGis::WKBMultiPoint25D, QGis::WKBMultiPolygon, QGis::WKBMultiPolygon25D, QGis::WKBPoint, QGis::WKBPoint25D, QGis::WKBPolygon, and QGis::WKBPolygon25D.
Referenced by findObjectPositions().
| void QgsCentralPointPositionManager::findObjectPositions | ( | const QgsRenderContext & | context, |
| QGis::UnitType | unitType | ||
| ) | [virtual] |
Calculate positions for the overlay objects.
| context | Context of rendering operation (Painter, scale factor) |
| unitType | meters, feet, degrees |
Implements QgsOverlayObjectPositionManager.
Definition at line 45 of file qgscentralpointpositionmanager.cpp.
References findObjectPosition(), mOverlays, and QgsVectorOverlay::overlayObjects().
| void QgsCentralPointPositionManager::removeLayers | ( | ) | [virtual] |
Removes all the overlays.
Implements QgsOverlayObjectPositionManager.
Definition at line 40 of file qgscentralpointpositionmanager.cpp.
References mOverlays.
QList<QgsVectorOverlay*> QgsCentralPointPositionManager::mOverlays [private] |
Stores all the overlay objects to retrieve all objects when positioning.
Definition at line 48 of file qgscentralpointpositionmanager.h.
Referenced by addLayer(), findObjectPositions(), and removeLayers().