QGIS API Documentation
3.2.0-Bonn (bc43194)
|
#include <qgssymbol.h>
Public Types | |
enum | RenderHint { DynamicRotation = 2 } |
Flags controlling behavior of symbols during rendering. More... | |
enum | ScaleMethod { ScaleArea, ScaleDiameter } |
Scale method. More... | |
enum | SymbolType { Marker, Line, Fill, Hybrid } |
Type of the symbol. More... | |
Public Member Functions | |
virtual | ~QgsSymbol () |
bool | appendSymbolLayer (QgsSymbolLayer *layer) |
Append symbol layer at the end of the list Ownership will be transferred. More... | |
QImage | asImage (QSize size, QgsRenderContext *customContext=nullptr) |
Generate symbol as image. More... | |
QImage | bigSymbolPreviewImage (QgsExpressionContext *expressionContext=nullptr) |
Returns a large (roughly 100x100 pixel) preview image for the symbol. More... | |
bool | changeSymbolLayer (int index, QgsSymbolLayer *layer) |
delete layer at specified index and set a new one More... | |
bool | clipFeaturesToExtent () const |
Returns whether features drawn by the symbol will be clipped to the render context's extent. More... | |
virtual QgsSymbol * | clone () const =0 |
Gets a deep copy of this symbol. More... | |
QColor | color () const |
bool | deleteSymbolLayer (int index) |
delete symbol layer at specified index More... | |
void | drawPreviewIcon (QPainter *painter, QSize size, QgsRenderContext *customContext=nullptr) |
Draw icon of the symbol that occupyies area given by size using the painter. More... | |
QString | dump () const |
void | exportImage (const QString &path, const QString &format, QSize size) |
export symbol as image format. PNG and SVG supported More... | |
bool | hasDataDefinedProperties () const |
Returns whether the symbol utilizes any data defined properties. More... | |
bool | insertSymbolLayer (int index, QgsSymbolLayer *layer) |
Insert symbol layer to specified index Ownership will be transferred. More... | |
const QgsVectorLayer * | layer () const |
QgsMapUnitScale | mapUnitScale () const |
qreal | opacity () const |
Returns the opacity for the symbol. More... | |
QgsUnitTypes::RenderUnit | outputUnit () const |
Returns the units to use for sizes and widths within the symbol. More... | |
void | renderFeature (const QgsFeature &feature, QgsRenderContext &context, int layer=-1, bool selected=false, bool drawVertexMarker=false, int currentVertexMarkerType=0, int currentVertexMarkerSize=0) |
Render a feature. More... | |
RenderHints | renderHints () const |
Returns the rendering hint flags for the symbol. More... | |
void | setClipFeaturesToExtent (bool clipFeaturesToExtent) |
Sets whether features drawn by the symbol should be clipped to the render context's extent. More... | |
void | setColor (const QColor &color) |
void | setLayer (const QgsVectorLayer *layer) |
void | setMapUnitScale (const QgsMapUnitScale &scale) |
void | setOpacity (qreal opacity) |
Sets the opacity for the symbol. More... | |
void | setOutputUnit (QgsUnitTypes::RenderUnit unit) |
Sets the units to use for sizes and widths within the symbol. More... | |
void | setRenderHints (RenderHints hints) |
Sets rendering hint flags for the symbol. More... | |
void | startRender (QgsRenderContext &context, const QgsFields &fields=QgsFields()) |
Begins the rendering process for the symbol. More... | |
void | stopRender (QgsRenderContext &context) |
Ends the rendering process. More... | |
QgsSymbolLayer * | symbolLayer (int layer) |
Returns a specific symbol layers contained in the symbol. More... | |
int | symbolLayerCount () const |
Returns total number of symbol layers contained in the symbol. More... | |
QgsSymbolLayerList | symbolLayers () |
Returns list of symbol layers contained in the symbol. More... | |
QgsSymbolRenderContext * | symbolRenderContext () |
Returns the symbol render context. More... | |
QgsSymbolLayer * | takeSymbolLayer (int index) |
Remove symbol layer from the list and return pointer to it. More... | |
void | toSld (QDomDocument &doc, QDomElement &element, QgsStringMap props) const |
SymbolType | type () const |
QSet< QString > | usedAttributes (const QgsRenderContext &context) const |
Returns a list of attributes required to render this feature. More... | |
Static Public Member Functions | |
static QgsSymbol * | defaultSymbol (QgsWkbTypes::GeometryType geomType) |
Returns new default symbol for specified geometry type. More... | |
Protected Member Functions | |
QgsSymbol (SymbolType type, const QgsSymbolLayerList &layers) | |
QgsSymbolLayerList | cloneLayers () const |
Retrieve a cloned list of all layers that make up this symbol. More... | |
void | renderUsingLayer (QgsSymbolLayer *layer, QgsSymbolRenderContext &context) |
Renders a context using a particular symbol layer without passing in a geometry. More... | |
void | renderVertexMarker (QPointF pt, QgsRenderContext &context, int currentVertexMarkerType, int currentVertexMarkerSize) |
Render editing vertex marker at specified point. More... | |
Static Protected Member Functions | |
static QPolygonF | _getLineString (QgsRenderContext &context, const QgsCurve &curve, bool clipToExtent=true) |
Creates a line string in screen coordinates from a QgsCurve in map coordinates. More... | |
static QPointF | _getPoint (QgsRenderContext &context, const QgsPoint &point) |
Creates a point in screen coordinates from a QgsPoint in map coordinates. More... | |
static void | _getPolygon (QPolygonF &pts, QList< QPolygonF > &holes, QgsRenderContext &context, const QgsPolygon &polygon, bool clipToExtent=true) |
Creates a polygon in screen coordinates from a QgsPolygonXYin map coordinates. More... | |
static QPolygonF | _getPolygonRing (QgsRenderContext &context, const QgsCurve &curve, bool clipToExtent) |
Creates a polygon ring in screen coordinates from a QgsCurve in map coordinates. More... | |
Protected Attributes | |
bool | mClipFeaturesToExtent = true |
const QgsVectorLayer * | mLayer = nullptr |
QgsSymbolLayerList | mLayers |
qreal | mOpacity = 1.0 |
Symbol opacity (in the range 0 - 1) More... | |
RenderHints | mRenderHints = nullptr |
SymbolType | mType |
Friends | |
class | QgsFeatureRenderer |
Definition at line 61 of file qgssymbol.h.
Flags controlling behavior of symbols during rendering.
Enumerator | |
---|---|
DynamicRotation | Rotation of symbol may be changed during rendering and symbol should not be cached. |
Definition at line 102 of file qgssymbol.h.
Scale method.
Enumerator | |
---|---|
ScaleArea | Calculate scale by the area. |
ScaleDiameter | Calculate scale by the diameter. |
Definition at line 94 of file qgssymbol.h.
Type of the symbol.
Enumerator | |
---|---|
Marker | Marker symbol. |
Line | Line symbol. |
Fill | Fill symbol. |
Hybrid | Hybrid symbol. |
Definition at line 83 of file qgssymbol.h.
|
virtual |
Definition at line 200 of file qgssymbol.cpp.
|
protected |
Definition at line 81 of file qgssymbol.cpp.
|
staticprotected |
Creates a line string in screen coordinates from a QgsCurve in map coordinates.
Definition at line 101 of file qgssymbol.cpp.
|
inlinestaticprotected |
Creates a point in screen coordinates from a QgsPoint in map coordinates.
Definition at line 336 of file qgssymbol.h.
|
staticprotected |
Creates a polygon in screen coordinates from a QgsPolygonXYin map coordinates.
Definition at line 188 of file qgssymbol.cpp.
|
staticprotected |
Creates a polygon ring in screen coordinates from a QgsCurve in map coordinates.
Definition at line 145 of file qgssymbol.cpp.
bool QgsSymbol::appendSymbolLayer | ( | QgsSymbolLayer * | layer | ) |
Append symbol layer at the end of the list Ownership will be transferred.
layer | The layer to add |
Definition at line 350 of file qgssymbol.cpp.
QImage QgsSymbol::asImage | ( | QSize | size, |
QgsRenderContext * | customContext = nullptr |
||
) |
Generate symbol as image.
Definition at line 511 of file qgssymbol.cpp.
QImage QgsSymbol::bigSymbolPreviewImage | ( | QgsExpressionContext * | expressionContext = nullptr | ) |
Returns a large (roughly 100x100 pixel) preview image for the symbol.
expressionContext | optional expression context, for evaluation of data defined symbol properties |
Definition at line 525 of file qgssymbol.cpp.
bool QgsSymbol::changeSymbolLayer | ( | int | index, |
QgsSymbolLayer * | layer | ||
) |
delete layer at specified index and set a new one
Definition at line 380 of file qgssymbol.cpp.
|
inline |
Returns whether features drawn by the symbol will be clipped to the render context's extent.
If this option is enabled then features which are partially outside the extent will be clipped. This speeds up rendering of the feature, but may have undesirable side effects for certain symbol types.
Definition at line 298 of file qgssymbol.h.
|
pure virtual |
Gets a deep copy of this symbol.
Needs to be reimplemented by subclasses. Ownership is transferred to the caller.
Implemented in QgsFillSymbol, QgsLineSymbol, and QgsMarkerSymbol.
|
protected |
Retrieve a cloned list of all layers that make up this symbol.
Ownership is transferred to the caller.
Definition at line 608 of file qgssymbol.cpp.
QColor QgsSymbol::color | ( | ) | const |
Definition at line 449 of file qgssymbol.cpp.
|
static |
Returns new default symbol for specified geometry type.
Definition at line 267 of file qgssymbol.cpp.
bool QgsSymbol::deleteSymbolLayer | ( | int | index | ) |
delete symbol layer at specified index
Definition at line 360 of file qgssymbol.cpp.
void QgsSymbol::drawPreviewIcon | ( | QPainter * | painter, |
QSize | size, | ||
QgsRenderContext * | customContext = nullptr |
||
) |
Draw icon of the symbol that occupyies area given by size using the painter.
Optionally custom context may be given in order to get rendering of symbols that use map units right.
Definition at line 460 of file qgssymbol.cpp.
QString QgsSymbol::dump | ( | ) | const |
Definition at line 569 of file qgssymbol.cpp.
void QgsSymbol::exportImage | ( | const QString & | path, |
const QString & | format, | ||
QSize | size | ||
) |
export symbol as image format. PNG and SVG supported
Definition at line 491 of file qgssymbol.cpp.
bool QgsSymbol::hasDataDefinedProperties | ( | ) | const |
Returns whether the symbol utilizes any data defined properties.
Definition at line 657 of file qgssymbol.cpp.
bool QgsSymbol::insertSymbolLayer | ( | int | index, |
QgsSymbolLayer * | layer | ||
) |
Insert symbol layer to specified index Ownership will be transferred.
index | The index at which the layer should be added |
layer | The symbol layer to add |
Definition at line 337 of file qgssymbol.cpp.
|
inline |
Definition at line 315 of file qgssymbol.h.
QgsMapUnitScale QgsSymbol::mapUnitScale | ( | ) | const |
Definition at line 227 of file qgssymbol.cpp.
|
inline |
Returns the opacity for the symbol.
Definition at line 257 of file qgssymbol.h.
QgsUnitTypes::RenderUnit QgsSymbol::outputUnit | ( | ) | const |
Returns the units to use for sizes and widths within the symbol.
Individual symbol layer definitions will interpret this in different ways, e.g., a marker symbol may use it to specify the units for the marker size, while a line symbol may use it to specify the units for the line width.
Definition at line 206 of file qgssymbol.cpp.
PRIVATE void QgsSymbol::renderFeature | ( | const QgsFeature & | feature, |
QgsRenderContext & | context, | ||
int | layer = -1 , |
||
bool | selected = false , |
||
bool | drawVertexMarker = false , |
||
int | currentVertexMarkerType = 0 , |
||
int | currentVertexMarkerSize = 0 |
||
) |
Render a feature.
Before calling this the startRender() method should be called to initialize the rendering process. After rendering all features stopRender() must be called.
Definition at line 693 of file qgssymbol.cpp.
|
inline |
Returns the rendering hint flags for the symbol.
Definition at line 276 of file qgssymbol.h.
|
protected |
Renders a context using a particular symbol layer without passing in a geometry.
This is used as fallback, if the symbol being rendered is not compatible with the specified layer. In such a case, this method can be called and will call the layer's rendering method anyway but the geometry passed to the layer will be empty. This is required for layers that generate their own geometry from other information in the rendering context.
Definition at line 622 of file qgssymbol.cpp.
|
protected |
Render editing vertex marker at specified point.
Definition at line 1028 of file qgssymbol.cpp.
|
inline |
Sets whether features drawn by the symbol should be clipped to the render context's extent.
If this option is enabled then features which are partially outside the extent will be clipped. This speeds up rendering of the feature, but may have undesirable side effects for certain symbol types.
clipFeaturesToExtent | set to true to enable clipping (defaults to true) |
Definition at line 287 of file qgssymbol.h.
void QgsSymbol::setColor | ( | const QColor & | color | ) |
Definition at line 440 of file qgssymbol.cpp.
|
inline |
Definition at line 314 of file qgssymbol.h.
void QgsSymbol::setMapUnitScale | ( | const QgsMapUnitScale & | scale | ) |
Definition at line 259 of file qgssymbol.cpp.
|
inline |
Sets the opacity for the symbol.
opacity | opacity value between 0 (fully transparent) and 1 (fully opaque) |
Definition at line 264 of file qgssymbol.h.
void QgsSymbol::setOutputUnit | ( | QgsUnitTypes::RenderUnit | unit | ) |
Sets the units to use for sizes and widths within the symbol.
Individual symbol definitions will interpret this in different ways, e.g., a marker symbol may use it to specify the units for the marker size, while a line symbol may use it to specify the units for the line width.
unit | output units |
Definition at line 251 of file qgssymbol.cpp.
|
inline |
Sets rendering hint flags for the symbol.
Definition at line 270 of file qgssymbol.h.
void QgsSymbol::startRender | ( | QgsRenderContext & | context, |
const QgsFields & | fields = QgsFields() |
||
) |
Begins the rendering process for the symbol.
This must be called before renderFeature(), and should be followed by a call to stopRender().
context | render context which symbol will be drawn using |
fields | fields for features to be rendered (usually the associated vector layer's fields). Required for correct calculation of data defined overrides. |
Definition at line 396 of file qgssymbol.cpp.
void QgsSymbol::stopRender | ( | QgsRenderContext & | context | ) |
Ends the rendering process.
This should be called after rendering all desired features.
context | render context, must match the context specified when startRender() was called. |
Definition at line 418 of file qgssymbol.cpp.
QgsSymbolLayer * QgsSymbol::symbolLayer | ( | int | layer | ) |
Returns a specific symbol layers contained in the symbol.
layer | layer number |
Definition at line 332 of file qgssymbol.cpp.
|
inline |
Returns total number of symbol layers contained in the symbol.
Definition at line 143 of file qgssymbol.h.
|
inline |
Returns list of symbol layers contained in the symbol.
Definition at line 124 of file qgssymbol.h.
QgsSymbolRenderContext * QgsSymbol::symbolRenderContext | ( | ) |
Returns the symbol render context.
Only valid between startRender and stopRender calls.
Definition at line 1023 of file qgssymbol.cpp.
QgsSymbolLayer * QgsSymbol::takeSymbolLayer | ( | int | index | ) |
Remove symbol layer from the list and return pointer to it.
Ownership is handed to the caller.
index | The index of the layer to remove |
Definition at line 371 of file qgssymbol.cpp.
void QgsSymbol::toSld | ( | QDomDocument & | doc, |
QDomElement & | element, | ||
QgsStringMap | props | ||
) | const |
Definition at line 595 of file qgssymbol.cpp.
|
inline |
Definition at line 113 of file qgssymbol.h.
QSet< QString > QgsSymbol::usedAttributes | ( | const QgsRenderContext & | context | ) | const |
Returns a list of attributes required to render this feature.
This should include any attributes required by the symbology including the ones required by expressions.
Definition at line 643 of file qgssymbol.cpp.
|
friend |
Definition at line 76 of file qgssymbol.h.
|
protected |
Definition at line 400 of file qgssymbol.h.
|
protected |
Definition at line 402 of file qgssymbol.h.
|
protected |
Definition at line 394 of file qgssymbol.h.
|
protected |
Symbol opacity (in the range 0 - 1)
Definition at line 397 of file qgssymbol.h.
|
protected |
Definition at line 399 of file qgssymbol.h.
|
protected |
Definition at line 393 of file qgssymbol.h.