Quantum GIS API Documentation
1.8
|
#include <qgsrendererv2.h>
Public Types | |
enum | Capabilities { SymbolLevels = 1, RotationField = 1 << 1, MoreSymbolsPerFeature = 1 << 2 } |
Public Member Functions | |
QString | type () const |
virtual QgsSymbolV2 * | symbolForFeature (QgsFeature &feature)=0 |
virtual void | startRender (QgsRenderContext &context, const QgsVectorLayer *vlayer)=0 |
virtual void | stopRender (QgsRenderContext &context)=0 |
virtual QList< QString > | usedAttributes ()=0 |
virtual | ~QgsFeatureRendererV2 () |
virtual QgsFeatureRendererV2 * | clone ()=0 |
virtual bool | renderFeature (QgsFeature &feature, QgsRenderContext &context, int layer=-1, bool selected=false, bool drawVertexMarker=false) |
virtual QString | dump () |
for debugging | |
virtual int | capabilities () |
returns bitwise OR-ed capabilities of the renderer | |
virtual QgsSymbolV2List | symbols ()=0 |
for symbol levels | |
bool | usingSymbolLevels () const |
void | setUsingSymbolLevels (bool usingSymbolLevels) |
virtual QDomElement | save (QDomDocument &doc) |
store renderer info to XML element | |
virtual QDomElement | writeSld (QDomDocument &doc, const QgsVectorLayer &layer) const |
create the SLD UserStyle element following the SLD v1.1 specs | |
virtual void | toSld (QDomDocument &doc, QDomElement &element) const |
used from subclasses to create SLD Rule elements following SLD v1.1 specs | |
virtual QgsLegendSymbologyList | legendSymbologyItems (QSize iconSize) |
return a list of symbology items for the legend | |
virtual QgsLegendSymbolList | legendSymbolItems () |
return a list of item text / symbol | |
void | setVertexMarkerAppearance (int type, int size) |
set type and size of editing vertex markers for subsequent rendering | |
virtual QString | rotationField () const |
return rotation field name (or empty string if not set or not supported by renderer) | |
virtual void | setRotationField (QString fieldName) |
sets rotation field of renderer (if supported by the renderer) | |
virtual bool | willRenderFeature (QgsFeature &feat) |
return whether the renderer will render a feature or not. | |
virtual QgsSymbolV2List | symbolsForFeature (QgsFeature &feat) |
return list of symbols used for rendering the feature. | |
Static Public Member Functions | |
static QgsFeatureRendererV2 * | defaultRenderer (QGis::GeometryType geomType) |
return a new renderer - used by default in vector layers | |
static QgsFeatureRendererV2 * | load (QDomElement &symbologyElem) |
create a renderer from XML element | |
static QgsFeatureRendererV2 * | loadSld (const QDomNode &node, QGis::GeometryType geomType, QString &errorMessage) |
create a new renderer according to the information contained in the UserStyle element of a SLD style document | |
Protected Member Functions | |
QgsFeatureRendererV2 (QString type) | |
void | renderFeatureWithSymbol (QgsFeature &feature, QgsSymbolV2 *symbol, QgsRenderContext &context, int layer, bool selected, bool drawVertexMarker) |
void | renderVertexMarker (QPointF &pt, QgsRenderContext &context) |
render editing vertex marker at specified point | |
void | renderVertexMarkerPolyline (QPolygonF &pts, QgsRenderContext &context) |
render editing vertex marker for a polyline | |
void | renderVertexMarkerPolygon (QPolygonF &pts, QList< QPolygonF > *rings, QgsRenderContext &context) |
render editing vertex marker for a polygon | |
Static Protected Member Functions | |
static unsigned char * | _getPoint (QPointF &pt, QgsRenderContext &context, unsigned char *wkb) |
static unsigned char * | _getLineString (QPolygonF &pts, QgsRenderContext &context, unsigned char *wkb) |
static unsigned char * | _getPolygon (QPolygonF &pts, QList< QPolygonF > &holes, QgsRenderContext &context, unsigned char *wkb) |
Protected Attributes | |
QString | mType |
bool | mUsingSymbolLevels |
int | mCurrentVertexMarkerType |
The current type of editing marker. | |
int | mCurrentVertexMarkerSize |
The current size of editing marker. |
Definition at line 68 of file qgsrendererv2.h.
Definition at line 96 of file qgsrendererv2.h.
virtual QgsFeatureRendererV2::~QgsFeatureRendererV2 | ( | ) | [inline, virtual] |
Definition at line 87 of file qgsrendererv2.h.
QgsFeatureRendererV2::QgsFeatureRendererV2 | ( | QString | type | ) | [protected] |
Definition at line 192 of file qgsrendererv2.cpp.
unsigned char * QgsFeatureRendererV2::_getLineString | ( | QPolygonF & | pts, |
QgsRenderContext & | context, | ||
unsigned char * | wkb | ||
) | [static, protected] |
Definition at line 61 of file qgsrendererv2.cpp.
References QgsClipper::clippedLineWKB(), QgsRenderContext::coordinateTransform(), QgsRenderContext::extent(), QgsRectangle::height(), QgsRenderContext::mapToPixel(), QgsMapToPixel::transformInPlace(), QgsCoordinateTransform::transformInPlace(), QgsRectangle::width(), QGis::WKBLineString25D, QgsRectangle::xMaximum(), QgsRectangle::xMinimum(), QgsRectangle::yMaximum(), and QgsRectangle::yMinimum().
Referenced by renderFeatureWithSymbol().
unsigned char * QgsFeatureRendererV2::_getPoint | ( | QPointF & | pt, |
QgsRenderContext & | context, | ||
unsigned char * | wkb | ||
) | [static, protected] |
Definition at line 37 of file qgsrendererv2.cpp.
References QgsRenderContext::coordinateTransform(), QgsRenderContext::mapToPixel(), QgsMapToPixel::transformInPlace(), QgsCoordinateTransform::transformInPlace(), and QGis::WKBPolygon25D.
Referenced by QgsPointDisplacementRenderer::renderFeature(), and renderFeatureWithSymbol().
unsigned char * QgsFeatureRendererV2::_getPolygon | ( | QPolygonF & | pts, |
QList< QPolygonF > & | holes, | ||
QgsRenderContext & | context, | ||
unsigned char * | wkb | ||
) | [static, protected] |
Definition at line 120 of file qgsrendererv2.cpp.
References QgsRenderContext::coordinateTransform(), QgsRenderContext::extent(), QgsRectangle::height(), QgsRenderContext::mapToPixel(), QgsMapToPixel::transformInPlace(), QgsCoordinateTransform::transformInPlace(), QgsClipper::trimPolygon(), QgsRectangle::width(), QGis::WKBPolygon25D, QgsRectangle::xMaximum(), QgsRectangle::xMinimum(), QgsRectangle::yMaximum(), and QgsRectangle::yMinimum().
Referenced by renderFeatureWithSymbol().
virtual int QgsFeatureRendererV2::capabilities | ( | ) | [inline, virtual] |
returns bitwise OR-ed capabilities of the renderer
Reimplemented in QgsRuleBasedRendererV2, QgsCategorizedSymbolRendererV2, QgsGraduatedSymbolRendererV2, and QgsSingleSymbolRendererV2.
Definition at line 105 of file qgsrendererv2.h.
Referenced by QgsVectorLayer::draw().
virtual QgsFeatureRendererV2* QgsFeatureRendererV2::clone | ( | ) | [pure virtual] |
Implemented in QgsRuleBasedRendererV2, QgsCategorizedSymbolRendererV2, QgsGraduatedSymbolRendererV2, QgsSingleSymbolRendererV2, and QgsPointDisplacementRenderer.
Referenced by QgsPointDisplacementRenderer::clone().
QgsFeatureRendererV2 * QgsFeatureRendererV2::defaultRenderer | ( | QGis::GeometryType | geomType | ) | [static] |
return a new renderer - used by default in vector layers
Definition at line 199 of file qgsrendererv2.cpp.
References QgsSymbolV2::defaultSymbol().
Referenced by QgsPointDisplacementRenderer::QgsPointDisplacementRenderer(), QgsVectorLayer::QgsVectorLayer(), and QgsSymbologyV2Conversion::rendererV1toV2().
QString QgsFeatureRendererV2::dump | ( | ) | [virtual] |
for debugging
Reimplemented in QgsRuleBasedRendererV2, QgsCategorizedSymbolRendererV2, QgsGraduatedSymbolRendererV2, and QgsSingleSymbolRendererV2.
Definition at line 355 of file qgsrendererv2.cpp.
Referenced by QgsVectorLayer::draw().
QgsLegendSymbolList QgsFeatureRendererV2::legendSymbolItems | ( | ) | [virtual] |
return a list of item text / symbol
Reimplemented in QgsRuleBasedRendererV2, QgsGraduatedSymbolRendererV2, QgsCategorizedSymbolRendererV2, QgsSingleSymbolRendererV2, and QgsPointDisplacementRenderer.
Definition at line 500 of file qgsrendererv2.cpp.
Referenced by QgsLegendModel::addVectorLayerItemsV2(), and QgsPointDisplacementRenderer::legendSymbolItems().
QgsLegendSymbologyList QgsFeatureRendererV2::legendSymbologyItems | ( | QSize | iconSize | ) | [virtual] |
return a list of symbology items for the legend
Reimplemented in QgsRuleBasedRendererV2, QgsGraduatedSymbolRendererV2, QgsCategorizedSymbolRendererV2, QgsSingleSymbolRendererV2, and QgsPointDisplacementRenderer.
Definition at line 493 of file qgsrendererv2.cpp.
Referenced by QgsPointDisplacementRenderer::legendSymbologyItems().
QgsFeatureRendererV2 * QgsFeatureRendererV2::load | ( | QDomElement & | symbologyElem | ) | [static] |
create a renderer from XML element
Definition at line 361 of file qgsrendererv2.cpp.
References QgsRendererV2AbstractMetadata::createRenderer(), QgsRendererV2Registry::instance(), QgsRendererV2Registry::rendererMetadata(), and setUsingSymbolLevels().
Referenced by QgsPointDisplacementRenderer::create(), and QgsVectorLayer::readSymbology().
QgsFeatureRendererV2 * QgsFeatureRendererV2::loadSld | ( | const QDomNode & | node, |
QGis::GeometryType | geomType, | ||
QString & | errorMessage | ||
) | [static] |
create a new renderer according to the information contained in the UserStyle element of a SLD style document
node | the node in the SLD document whose the UserStyle element is a child |
geomType | the geometry type of the features, used to convert Symbolizer elements |
errorMessage | it will contain the error message if something went wrong |
Definition at line 389 of file qgsrendererv2.cpp.
References QgsRendererV2AbstractMetadata::createRendererFromSld(), QgsRendererV2Registry::instance(), QgsDebugMsg, and QgsRendererV2Registry::rendererMetadata().
Referenced by QgsVectorLayer::readSld().
bool QgsFeatureRendererV2::renderFeature | ( | QgsFeature & | feature, |
QgsRenderContext & | context, | ||
int | layer = -1 , |
||
bool | selected = false , |
||
bool | drawVertexMarker = false |
||
) | [virtual] |
Reimplemented in QgsRuleBasedRendererV2, and QgsPointDisplacementRenderer.
Definition at line 205 of file qgsrendererv2.cpp.
References renderFeatureWithSymbol(), and symbolForFeature().
Referenced by QgsVectorLayer::drawRendererV2(), and QgsVectorLayer::drawRendererV2Levels().
void QgsFeatureRendererV2::renderFeatureWithSymbol | ( | QgsFeature & | feature, |
QgsSymbolV2 * | symbol, | ||
QgsRenderContext & | context, | ||
int | layer, | ||
bool | selected, | ||
bool | drawVertexMarker | ||
) | [protected] |
Definition at line 215 of file qgsrendererv2.cpp.
References _getLineString(), _getPoint(), _getPolygon(), QgsGeometry::asWkb(), QgsSymbolV2::Fill, QgsFeature::geometry(), QgsSymbolV2::Line, QgsSymbolV2::Marker, QgsDebugMsg, renderVertexMarkerPolygon(), renderVertexMarkerPolyline(), QgsSymbolV2::type(), QGis::WKBLineString, QGis::WKBLineString25D, QGis::WKBMultiLineString, QGis::WKBMultiLineString25D, QGis::WKBMultiPoint, QGis::WKBMultiPoint25D, QGis::WKBMultiPolygon, QGis::WKBMultiPolygon25D, QGis::WKBPoint, QGis::WKBPoint25D, QGis::WKBPolygon, QGis::WKBPolygon25D, and QgsGeometry::wkbType().
Referenced by renderFeature(), and QgsRuleBasedRendererV2::stopRender().
void QgsFeatureRendererV2::renderVertexMarker | ( | QPointF & | pt, |
QgsRenderContext & | context | ||
) | [protected] |
render editing vertex marker at specified point
Definition at line 511 of file qgsrendererv2.cpp.
References QgsVectorLayer::drawVertexMarker(), mCurrentVertexMarkerSize, mCurrentVertexMarkerType, and QgsRenderContext::painter().
Referenced by renderVertexMarkerPolygon(), and renderVertexMarkerPolyline().
void QgsFeatureRendererV2::renderVertexMarkerPolygon | ( | QPolygonF & | pts, |
QList< QPolygonF > * | rings, | ||
QgsRenderContext & | context | ||
) | [protected] |
render editing vertex marker for a polygon
Definition at line 524 of file qgsrendererv2.cpp.
References renderVertexMarker().
Referenced by renderFeatureWithSymbol().
void QgsFeatureRendererV2::renderVertexMarkerPolyline | ( | QPolygonF & | pts, |
QgsRenderContext & | context | ||
) | [protected] |
render editing vertex marker for a polyline
Definition at line 518 of file qgsrendererv2.cpp.
References renderVertexMarker().
Referenced by renderFeatureWithSymbol().
virtual QString QgsFeatureRendererV2::rotationField | ( | ) | const [inline, virtual] |
return rotation field name (or empty string if not set or not supported by renderer)
Reimplemented in QgsGraduatedSymbolRendererV2, QgsCategorizedSymbolRendererV2, and QgsSingleSymbolRendererV2.
Definition at line 153 of file qgsrendererv2.h.
QDomElement QgsFeatureRendererV2::save | ( | QDomDocument & | doc | ) | [virtual] |
store renderer info to XML element
Reimplemented in QgsRuleBasedRendererV2, QgsGraduatedSymbolRendererV2, QgsCategorizedSymbolRendererV2, QgsSingleSymbolRendererV2, and QgsPointDisplacementRenderer.
Definition at line 383 of file qgsrendererv2.cpp.
References RENDERER_TAG_NAME.
Referenced by QgsPointDisplacementRenderer::save(), and QgsVectorLayer::writeSymbology().
virtual void QgsFeatureRendererV2::setRotationField | ( | QString | fieldName | ) | [inline, virtual] |
sets rotation field of renderer (if supported by the renderer)
Reimplemented in QgsGraduatedSymbolRendererV2, QgsCategorizedSymbolRendererV2, and QgsSingleSymbolRendererV2.
Definition at line 156 of file qgsrendererv2.h.
void QgsFeatureRendererV2::setUsingSymbolLevels | ( | bool | usingSymbolLevels | ) | [inline] |
Definition at line 111 of file qgsrendererv2.h.
Referenced by QgsSingleSymbolRendererV2::clone(), QgsGraduatedSymbolRendererV2::clone(), QgsCategorizedSymbolRendererV2::clone(), QgsRuleBasedRendererV2::clone(), and load().
void QgsFeatureRendererV2::setVertexMarkerAppearance | ( | int | type, |
int | size | ||
) |
set type and size of editing vertex markers for subsequent rendering
Definition at line 505 of file qgsrendererv2.cpp.
References mCurrentVertexMarkerSize, mCurrentVertexMarkerType, size, and type().
Referenced by QgsVectorLayer::draw(), and QgsVectorLayer::drawRendererV2Levels().
virtual void QgsFeatureRendererV2::startRender | ( | QgsRenderContext & | context, |
const QgsVectorLayer * | vlayer | ||
) | [pure virtual] |
Implemented in QgsRuleBasedRendererV2, QgsCategorizedSymbolRendererV2, QgsGraduatedSymbolRendererV2, QgsPointDisplacementRenderer, and QgsSingleSymbolRendererV2.
Referenced by QgsVectorLayer::drawLabels(), QgsVectorLayer::drawRendererV2(), QgsVectorLayer::drawRendererV2Levels(), and QgsPointDisplacementRenderer::startRender().
virtual void QgsFeatureRendererV2::stopRender | ( | QgsRenderContext & | context | ) | [pure virtual] |
virtual QgsSymbolV2* QgsFeatureRendererV2::symbolForFeature | ( | QgsFeature & | feature | ) | [pure virtual] |
Implemented in QgsRuleBasedRendererV2, QgsCategorizedSymbolRendererV2, QgsGraduatedSymbolRendererV2, QgsPointDisplacementRenderer, and QgsSingleSymbolRendererV2.
Referenced by QgsVectorLayer::drawRendererV2Levels(), renderFeature(), and symbolsForFeature().
virtual QgsSymbolV2List QgsFeatureRendererV2::symbols | ( | ) | [pure virtual] |
for symbol levels
Implemented in QgsRuleBasedRendererV2, QgsCategorizedSymbolRendererV2, QgsGraduatedSymbolRendererV2, QgsSingleSymbolRendererV2, and QgsPointDisplacementRenderer.
Referenced by QgsVectorLayer::drawRendererV2Levels(), and QgsPointDisplacementRenderer::symbols().
QgsSymbolV2List QgsFeatureRendererV2::symbolsForFeature | ( | QgsFeature & | feat | ) | [virtual] |
return list of symbols used for rendering the feature.
For renderers that do not support MoreSymbolsPerFeature it is more efficient to use symbolForFeature()
Reimplemented in QgsRuleBasedRendererV2.
Definition at line 539 of file qgsrendererv2.cpp.
References symbolForFeature().
Referenced by QgsPointDisplacementRenderer::firstSymbolForFeature().
virtual void QgsFeatureRendererV2::toSld | ( | QDomDocument & | doc, |
QDomElement & | element | ||
) | const [inline, virtual] |
used from subclasses to create SLD Rule elements following SLD v1.1 specs
Reimplemented in QgsRuleBasedRendererV2, QgsCategorizedSymbolRendererV2, QgsGraduatedSymbolRendererV2, QgsSingleSymbolRendererV2, and QgsPointDisplacementRenderer.
Definition at line 138 of file qgsrendererv2.h.
Referenced by QgsPointDisplacementRenderer::toSld(), and writeSld().
QString QgsFeatureRendererV2::type | ( | ) | const [inline] |
Definition at line 76 of file qgsrendererv2.h.
Referenced by QgsSymbologyV2Conversion::rendererV2toV1(), and setVertexMarkerAppearance().
virtual QList<QString> QgsFeatureRendererV2::usedAttributes | ( | ) | [pure virtual] |
bool QgsFeatureRendererV2::usingSymbolLevels | ( | ) | const [inline] |
Definition at line 110 of file qgsrendererv2.h.
Referenced by QgsSingleSymbolRendererV2::clone(), QgsGraduatedSymbolRendererV2::clone(), QgsCategorizedSymbolRendererV2::clone(), QgsRuleBasedRendererV2::clone(), and QgsVectorLayer::draw().
virtual bool QgsFeatureRendererV2::willRenderFeature | ( | QgsFeature & | feat | ) | [inline, virtual] |
return whether the renderer will render a feature or not.
Must be called between startRender() and stopRender() calls. Default implementation uses symbolForFeature().
Reimplemented in QgsRuleBasedRendererV2.
Definition at line 162 of file qgsrendererv2.h.
Referenced by QgsVectorLayer::drawLabels().
QDomElement QgsFeatureRendererV2::writeSld | ( | QDomDocument & | doc, |
const QgsVectorLayer & | layer | ||
) | const [virtual] |
create the SLD UserStyle element following the SLD v1.1 specs
Definition at line 478 of file qgsrendererv2.cpp.
References QgsMapLayer::name(), and toSld().
Referenced by QgsVectorLayer::writeSld().
int QgsFeatureRendererV2::mCurrentVertexMarkerSize [protected] |
The current size of editing marker.
Definition at line 198 of file qgsrendererv2.h.
Referenced by renderVertexMarker(), and setVertexMarkerAppearance().
int QgsFeatureRendererV2::mCurrentVertexMarkerType [protected] |
The current type of editing marker.
Definition at line 196 of file qgsrendererv2.h.
Referenced by renderVertexMarker(), and setVertexMarkerAppearance().
QString QgsFeatureRendererV2::mType [protected] |
Definition at line 191 of file qgsrendererv2.h.
bool QgsFeatureRendererV2::mUsingSymbolLevels [protected] |
Definition at line 193 of file qgsrendererv2.h.
Referenced by QgsSingleSymbolRendererV2::save(), QgsCategorizedSymbolRendererV2::save(), QgsGraduatedSymbolRendererV2::save(), and QgsRuleBasedRendererV2::save().