QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgssymbolrendercontext.h
Go to the documentation of this file.
1/***************************************************************************
2 qgssymbolrendercontext.h
3 ---------------------
4 begin : November 2009
5 copyright : (C) 2009 by Martin Dobias
6 email : wonder dot sk at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSSYMBOLRENDERCONTEXT_H
17#define QGSSYMBOLRENDERCONTEXT_H
18
19#include "qgis_core.h"
20#include "qgis.h"
21#include "qgsmapunitscale.h"
22#include "qgsfields.h"
23
25class QgsFeature;
28
33class CORE_EXPORT QgsSymbolRenderContext
34{
35 public:
36
37 //TODO QGIS 4.0 - remove mapUnitScale and renderunit
38
50 QgsSymbolRenderContext( QgsRenderContext &c, Qgis::RenderUnit u, qreal opacity = 1.0, bool selected = false, Qgis::SymbolRenderHints renderHints = Qgis::SymbolRenderHints(), const QgsFeature *f = nullptr, const QgsFields &fields = QgsFields(), const QgsMapUnitScale &mapUnitScale = QgsMapUnitScale() );
51
53
56
60 QgsRenderContext &renderContext() { return mRenderContext; }
61
66 const QgsRenderContext &renderContext() const { return mRenderContext; } SIP_SKIP
67
73 void setOriginalValueVariable( const QVariant &value );
74
79 Q_DECL_DEPRECATED Qgis::RenderUnit outputUnit() const SIP_DEPRECATED { return mOutputUnit; }
80
85 Q_DECL_DEPRECATED void setOutputUnit( Qgis::RenderUnit u ) SIP_DEPRECATED { mOutputUnit = u; }
86
90 Q_DECL_DEPRECATED QgsMapUnitScale mapUnitScale() const SIP_DEPRECATED { return mMapUnitScale; }
91
95 Q_DECL_DEPRECATED void setMapUnitScale( const QgsMapUnitScale &scale ) SIP_DEPRECATED { mMapUnitScale = scale; }
96
102 qreal opacity() const { return mOpacity; }
103
109 void setOpacity( qreal opacity ) { mOpacity = opacity; }
110
115 bool selected() const { return mSelected; }
116
121 void setSelected( bool selected ) { mSelected = selected; }
122
127 Qgis::SymbolRenderHints renderHints() const { return mRenderHints; }
128
133 void setRenderHints( Qgis::SymbolRenderHints hints ) { mRenderHints = hints; }
134
135 void setFeature( const QgsFeature *f ) { mFeature = f; }
136
140 const QgsFeature *feature() const { return mFeature; }
141
146 void setOriginalGeometryType( Qgis::GeometryType type ) { mOriginalGeometryType = type; }
147
155 Qgis::GeometryType originalGeometryType() const { return mOriginalGeometryType; }
156
162 QgsFields fields() const { return mFields; }
163
167 int geometryPartCount() const { return mGeometryPartCount; }
168
172 void setGeometryPartCount( int count ) { mGeometryPartCount = count; }
173
177 int geometryPartNum() const { return mGeometryPartNum; }
178
182 void setGeometryPartNum( int num ) { mGeometryPartNum = num; }
183
187 Q_DECL_DEPRECATED double outputLineWidth( double width ) const SIP_DEPRECATED;
188
192 Q_DECL_DEPRECATED double outputPixelSize( double size ) const SIP_DEPRECATED;
193
194 // workaround for sip 4.7. Don't use assignment - will fail with assertion error
196
202 QgsExpressionContextScope *expressionContextScope();
203
211 void setExpressionContextScope( QgsExpressionContextScope *contextScope SIP_TRANSFER );
212
219 const QgsLegendPatchShape *patchShape() const;
220
227 void setPatchShape( const QgsLegendPatchShape &shape );
228
229 private:
230
231#ifdef SIP_RUN
233#endif
234
235 QgsRenderContext &mRenderContext;
236 std::unique_ptr< QgsExpressionContextScope > mExpressionContextScope;
237 Qgis::RenderUnit mOutputUnit;
238 QgsMapUnitScale mMapUnitScale;
239 qreal mOpacity = 1.0;
240 bool mSelected;
241 Qgis::SymbolRenderHints mRenderHints;
242 const QgsFeature *mFeature; //current feature
243 QgsFields mFields;
244 int mGeometryPartCount;
245 int mGeometryPartNum;
246 Qgis::GeometryType mOriginalGeometryType = Qgis::GeometryType::Unknown;
247 std::unique_ptr< QgsLegendPatchShape > mPatchShape;
248};
249
250
251#endif // QGSSYMBOLRENDERCONTEXT_H
252
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
Definition: qgis.h:255
@ Unknown
Unknown types.
RenderUnit
Rendering size units.
Definition: qgis.h:4255
QFlags< SymbolRenderHint > SymbolRenderHints
Symbol render hints.
Definition: qgis.h:565
Single scope for storing variables and functions for use within a QgsExpressionContext.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:56
Container of fields for a vector layer.
Definition: qgsfields.h:45
Represents a patch shape for use in map legends.
Struct for storing maximum and minimum scales for measurements in map units.
Contains information about the context of a rendering operation.
void setOpacity(qreal opacity)
Sets the opacity for the symbol.
const QgsFeature * feature() const
Returns the current feature being rendered.
Q_DECL_DEPRECATED void setMapUnitScale(const QgsMapUnitScale &scale)
Qgis::GeometryType originalGeometryType() const
Returns the geometry type for the original feature geometry being rendered.
QgsFields fields() const
Fields of the layer.
void setSelected(bool selected)
Sets whether symbols should be rendered using the selected symbol coloring and style.
void setOriginalGeometryType(Qgis::GeometryType type)
Sets the geometry type for the original feature geometry being rendered.
int geometryPartNum() const
Part number of current geometry.
bool selected() const
Returns true if symbols should be rendered using the selected symbol coloring and style.
Qgis::SymbolRenderHints renderHints() const
Returns the rendering hint flags for the symbol.
Q_DECL_DEPRECATED QgsMapUnitScale mapUnitScale() const
int geometryPartCount() const
Part count of current geometry.
void setRenderHints(Qgis::SymbolRenderHints hints)
Sets rendering hint flags for the symbol.
void setGeometryPartCount(int count)
Sets the part count of current geometry.
const QgsRenderContext & renderContext() const
Returns a reference to the context's render context.
void setGeometryPartNum(int num)
Sets the part number of current geometry.
Q_DECL_DEPRECATED Qgis::RenderUnit outputUnit() const
Returns the output unit for the context.
QgsSymbolRenderContext(const QgsSymbolRenderContext &rh)=delete
QgsSymbolRenderContext cannot be copied.
Q_DECL_DEPRECATED void setOutputUnit(Qgis::RenderUnit u)
Sets the output unit for the context.
void setFeature(const QgsFeature *f)
qreal opacity() const
Returns the opacity for the symbol.
QgsRenderContext & renderContext()
Returns a reference to the context's render context.
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
#define SIP_FORCE
Definition: qgis_sip.h:131
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_TRANSFER
Definition: qgis_sip.h:36