32#include <QDomDocument>
50#define RENDERER_TAG_NAME "renderer-v2"
107 const QString type = sipCpp->
type();
109 if ( type == QLatin1String(
"singleSymbol" ) )
110 sipType = sipType_QgsSingleSymbolRenderer;
111 else if ( type == QLatin1String(
"categorizedSymbol" ) )
112 sipType = sipType_QgsCategorizedSymbolRenderer;
113 else if ( type == QLatin1String(
"graduatedSymbol" ) )
114 sipType = sipType_QgsGraduatedSymbolRenderer;
115 else if ( type == QLatin1String(
"RuleRenderer" ) )
116 sipType = sipType_QgsRuleBasedRenderer;
117 else if ( type == QLatin1String(
"heatmapRenderer" ) )
118 sipType = sipType_QgsHeatmapRenderer;
119 else if ( type == QLatin1String(
"invertedPolygonRenderer" ) )
120 sipType = sipType_QgsInvertedPolygonRenderer;
121 else if ( type == QLatin1String(
"pointCluster" ) )
122 sipType = sipType_QgsPointClusterRenderer;
123 else if ( type == QLatin1String(
"pointDisplacement" ) )
124 sipType = sipType_QgsPointDisplacementRenderer;
125 else if ( type == QLatin1String(
"25dRenderer" ) )
126 sipType = sipType_Qgs25DRenderer;
127 else if ( type == QLatin1String(
"nullSymbol" ) )
128 sipType = sipType_QgsNullSymbolRenderer;
129 else if ( type == QLatin1String(
"embeddedSymbol" ) )
130 sipType = sipType_QgsEmbeddedSymbolRenderer;
142 QString
type()
const {
return mType; }
200 virtual bool canSkipRender();
229 virtual bool usesEmbeddedSymbols()
const;
234 virtual bool filterNeedsGeometry()
const;
262 virtual QString dump() const;
271 MoreSymbolsPerFeature = 1 << 2,
273 ScaleDependent = 1 << 4
276 Q_DECLARE_FLAGS( Capabilities, Capability )
290 virtual
QgsFeatureRenderer::Capabilities capabilities() {
return QgsFeatureRenderer::Capabilities(); }
315 virtual QDomElement writeSld( QDomDocument &doc,
const QString &styleName,
const QVariantMap &props = QVariantMap() )
const;
331 virtual void toSld( QDomDocument &doc, QDomElement &element,
const QVariantMap &props = QVariantMap() )
const
333 element.appendChild( doc.createComment( QStringLiteral(
"FeatureRenderer %1 not implemented yet" ).arg( type() ) ) );
344 QSet< QString > legendKeys()
const;
350 virtual bool legendSymbolItemsCheckable()
const;
359 virtual bool legendSymbolItemChecked(
const QString &key );
368 virtual void checkLegendSymbolItem(
const QString &key,
bool state =
true );
394 virtual QString legendKeyToExpression(
const QString &key,
QgsVectorLayer *layer,
bool &ok
SIP_OUT )
const;
520 bool orderByEnabled()
const;
528 void setOrderByEnabled(
bool enabled );
586 void renderVertexMarkerPolyline( QPolygonF &pts,
QgsRenderContext &context );
588 void renderVertexMarkerPolygon( QPolygonF &pts, QList<QPolygonF> *rings,
QgsRenderContext &context );
604 void saveRendererData( QDomDocument &doc, QDomElement &element,
const QgsReadWriteContext &context );
608 bool mUsingSymbolLevels =
false;
614 double mCurrentVertexMarkerSize = 2;
618 bool mForceRaster =
false;
620 double mReferenceScale = -1.0;
632 static void convertSymbolRotation(
QgsSymbol *symbol,
const QString &field );
636 bool mOrderByEnabled =
false;
646 QThread *mThread =
nullptr;
ScaleMethod
Scale methods.
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
VertexMarkerType
Editing vertex markers, used for showing vertices during a edit operation.
Custom exception class for Coordinate Reference System related exceptions.
virtual QString filter(const QgsFields &fields=QgsFields())
If a renderer does not require all the features this method may be overridden and return an expressio...
bool forceRasterRender() const
Returns whether the renderer must render as a raster.
void setForceRasterRender(bool forceRaster)
Sets whether the renderer should be rendered to a raster destination.
virtual void toSld(QDomDocument &doc, QDomElement &element, const QVariantMap &props=QVariantMap()) const
used from subclasses to create SLD Rule elements following SLD v1.1 specs
virtual QString legendClassificationAttribute() const
If supported by the renderer, return classification attribute for the use in legend.
double referenceScale() const
Returns the symbology reference scale.
void setReferenceScale(double scale)
Sets the symbology reference scale.
bool usingSymbolLevels() const
virtual QSet< QString > usedAttributes(const QgsRenderContext &context) const =0
Returns a list of attributes required by this renderer.
void setUsingSymbolLevels(bool usingSymbolLevels)
virtual QgsSymbol * symbolForFeature(const QgsFeature &feature, QgsRenderContext &context) const =0
To be overridden.
Capability
Used to specify details about a renderer.
QgsFeatureRequest::OrderBy mOrderBy
virtual QgsFeatureRenderer * clone() const =0
Create a deep copy of this renderer.
Represents a list of OrderByClauses, with the most important first and the least important last.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Container of fields for a vector layer.
Base class for visual effects which can be applied to QPicture drawings.
Point geometry type, with support for z-dimension and m-values.
The class is used as a container of context for various read/write operations on other objects.
A rectangle specified with double values.
Contains information about the context of a rendering operation.
An interface for classes which can visit style entity (e.g.
QgsSymbolLevelItem(QgsSymbol *symbol, int layer)
Abstract base class for all rendered symbols.
Represents a vector layer which manages a vector based data sets.
QMap< QString, QString > QgsStringMap
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
#define SIP_ENUM_BASETYPE(type)
#define SIP_THROW(name,...)
QList< QgsLegendSymbolItem > QgsLegendSymbolList
QList< QgsSymbolLevel > QgsSymbolLevelOrder
QList< QgsSymbolLevelItem > QgsSymbolLevel
QMap< QString, QgsSymbol * > QgsSymbolMap
QList< QgsSymbol * > QgsSymbolList
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsTextRendererUtils::CurvedTextFlags)