QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
qgssymbolrendercontext.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgssymbolrendercontext.cpp
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 #include "qgssymbolrendercontext.h"
17 #include "qgsrendercontext.h"
18 #include "qgslegendpatchshape.h"
19 
20 QgsSymbolRenderContext::QgsSymbolRenderContext( QgsRenderContext &c, QgsUnitTypes::RenderUnit u, qreal opacity, bool selected, Qgis::SymbolRenderHints renderHints, const QgsFeature *f, const QgsFields &fields, const QgsMapUnitScale &mapUnitScale )
21  : mRenderContext( c )
22  , mOutputUnit( u )
23  , mMapUnitScale( mapUnitScale )
24  , mOpacity( opacity )
25  , mSelected( selected )
26  , mRenderHints( renderHints )
27  , mFeature( f )
28  , mFields( fields )
29  , mGeometryPartCount( 0 )
30  , mGeometryPartNum( 0 )
31 {
32 }
33 
35 
37 {
38  mRenderContext.expressionContext().setOriginalValueVariable( value );
39 }
40 
41 double QgsSymbolRenderContext::outputLineWidth( double width ) const
42 {
43  return mRenderContext.convertToPainterUnits( width, mOutputUnit, mMapUnitScale );
44 }
45 
46 double QgsSymbolRenderContext::outputPixelSize( double size ) const
47 {
48  return mRenderContext.convertToPainterUnits( size, mOutputUnit, mMapUnitScale );
49 }
50 
51 // cppcheck-suppress operatorEqVarError
53 {
54  // This is just a dummy implementation of assignment.
55  // sip 4.7 generates a piece of code that needs this function to exist.
56  // It's not generated automatically by the compiler because of
57  // mRenderContext member which is a reference (and thus can't be changed).
58  Q_ASSERT( false );
59  return *this;
60 }
61 
63 {
64  return mExpressionContextScope.get();
65 }
66 
68 {
69  mExpressionContextScope.reset( contextScope );
70 }
71 
73 {
74  return mPatchShape.get();
75 }
76 
78 {
79  mPatchShape.reset( new QgsLegendPatchShape( patchShape ) );
80 }
QgsSymbolRenderContext::setOriginalValueVariable
void setOriginalValueVariable(const QVariant &value)
Sets the original value variable value for data defined symbology.
Definition: qgssymbolrendercontext.cpp:36
QgsUnitTypes::RenderUnit
RenderUnit
Rendering size units.
Definition: qgsunittypes.h:167
QgsRenderContext::expressionContext
QgsExpressionContext & expressionContext()
Gets the expression context.
Definition: qgsrendercontext.h:625
QgsExpressionContext::setOriginalValueVariable
void setOriginalValueVariable(const QVariant &value)
Sets the original value variable value for the context.
Definition: qgsexpressioncontext.cpp:600
QgsFields
Container of fields for a vector layer.
Definition: qgsfields.h:44
QgsRenderContext
Contains information about the context of a rendering operation.
Definition: qgsrendercontext.h:59
QgsSymbolRenderContext::~QgsSymbolRenderContext
~QgsSymbolRenderContext()
QgsSymbolRenderContext::patchShape
const QgsLegendPatchShape * patchShape() const
Returns the symbol patch shape, to use if rendering symbol preview icons.
Definition: qgssymbolrendercontext.cpp:72
QgsLegendPatchShape
Represents a patch shape for use in map legends.
Definition: qgslegendpatchshape.h:33
qgssymbolrendercontext.h
QgsSymbolRenderContext::setPatchShape
void setPatchShape(const QgsLegendPatchShape &shape)
Sets the symbol patch shape, to use if rendering symbol preview icons.
Definition: qgssymbolrendercontext.cpp:77
QgsSymbolRenderContext
Definition: qgssymbolrendercontext.h:35
QgsSymbolRenderContext::expressionContextScope
QgsExpressionContextScope * expressionContextScope()
This scope is always available when a symbol of this type is being rendered.
Definition: qgssymbolrendercontext.cpp:62
qgsrendercontext.h
QgsSymbolRenderContext::outputLineWidth
Q_DECL_DEPRECATED double outputLineWidth(double width) const
Definition: qgssymbolrendercontext.cpp:41
qgslegendpatchshape.h
QgsMapUnitScale
Struct for storing maximum and minimum scales for measurements in map units.
Definition: qgsmapunitscale.h:36
QgsExpressionContextScope
Single scope for storing variables and functions for use within a QgsExpressionContext....
Definition: qgsexpressioncontext.h:113
QgsRenderContext::convertToPainterUnits
double convertToPainterUnits(double size, QgsUnitTypes::RenderUnit unit, const QgsMapUnitScale &scale=QgsMapUnitScale(), Qgis::RenderSubcomponentProperty property=Qgis::RenderSubcomponentProperty::Generic) const
Converts a size from the specified units to painter units (pixels).
Definition: qgsrendercontext.cpp:367
QgsSymbolRenderContext::outputPixelSize
Q_DECL_DEPRECATED double outputPixelSize(double size) const
Definition: qgssymbolrendercontext.cpp:46
c
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
Definition: porting_processing.dox:1
QgsSymbolRenderContext::setExpressionContextScope
void setExpressionContextScope(QgsExpressionContextScope *contextScope)
Set an expression scope for this symbol.
Definition: qgssymbolrendercontext.cpp:67
QgsFeature
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:55
QgsSymbolRenderContext::QgsSymbolRenderContext
QgsSymbolRenderContext(QgsRenderContext &c, QgsUnitTypes::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())
Constructor for QgsSymbolRenderContext.
Definition: qgssymbolrendercontext.cpp:20
QgsSymbolRenderContext::operator=
QgsSymbolRenderContext & operator=(const QgsSymbolRenderContext &)
Definition: qgssymbolrendercontext.cpp:52