QGIS API Documentation
3.16.0-Hannover (43b64b13f3)
|
Go to the documentation of this file.
27 #define ROOF_EXPRESSION \
30 " cos( radians( eval( @qgis_25d_angle ) ) ) * eval( @qgis_25d_height )," \
31 " sin( radians( eval( @qgis_25d_angle ) ) ) * eval( @qgis_25d_height )" \
34 #define WALL_EXPRESSION \
37 " segments_to_lines( $geometry )," \
38 " cos( radians( eval( @qgis_25d_angle ) ) ) * eval( @qgis_25d_height )," \
39 " sin( radians( eval( @qgis_25d_angle ) ) ) * eval( @qgis_25d_height )" \
41 " 'distance( $geometry, translate( @map_extent_center, 1000 * @map_extent_width * cos( radians( @qgis_25d_angle + 180 ) ), 1000 * @map_extent_width * sin( radians( @qgis_25d_angle + 180 ) ) ))'," \
45 #define ORDER_BY_EXPRESSION \
49 " @map_extent_center," \
50 " 1000 * @map_extent_width * cos( radians( @qgis_25d_angle + 180 ) )," \
51 " 1000 * @map_extent_width * sin( radians( @qgis_25d_angle + 180 ) )" \
55 #define WALL_SHADING_EXPRESSION \
59 " 40 + 19 * abs( $pi - azimuth( " \
60 " point_n( geometry_n($geometry, @geometry_part_num) , 1 ), " \
61 " point_n( geometry_n($geometry, @geometry_part_num) , 2 )" \
70 mSymbol->deleteSymbolLayer( 0 );
75 wallProperties.insert( QStringLiteral(
"geometryModifier" ),
WALL_EXPRESSION );
76 wallProperties.insert( QStringLiteral(
"symbolType" ), QStringLiteral(
"Fill" ) );
80 roofProperties.insert( QStringLiteral(
"geometryModifier" ),
ROOF_EXPRESSION );
81 roofProperties.insert( QStringLiteral(
"symbolType" ), QStringLiteral(
"Fill" ) );
86 mSymbol->appendSymbolLayer( floor );
87 mSymbol->appendSymbolLayer( walls );
88 mSymbol->appendSymbolLayer( roof );
120 rendererElem.setAttribute( QStringLiteral(
"type" ), QStringLiteral(
"25dRenderer" ) );
124 rendererElem.appendChild( symbolElem );
133 QDomNodeList
symbols = element.elementsByTagName( QStringLiteral(
"symbol" ) );
146 mSymbol->startRender( context, fields );
153 mSymbol->stopRender( context );
158 return mSymbol->usedAttributes( context );
164 c->mSymbol.reset( mSymbol->clone() );
172 return mSymbol.get();
179 lst.append( mSymbol.get() );
195 return static_cast<QgsFillSymbolLayer *
>( mSymbol->symbolLayer( 2 )->subSymbol()->symbolLayer( 0 ) );
200 return static_cast<QgsFillSymbolLayer *
>( mSymbol->symbolLayer( 1 )->subSymbol()->symbolLayer( 0 ) );
211 return glowEffect()->
enabled();
221 return glowEffect()->
color();
231 return glowEffect()->
spread();
273 if ( renderer->
type() == QLatin1String(
"25dRenderer" ) )
#define ORDER_BY_EXPRESSION
void setShadowEnabled(bool value)
Enable or disable the shadow.
bool isActive() const
Returns whether the property is currently active.
void setShadowSpread(double shadowSpread)
Set the shadow's spread distance in map units.
The OrderByClause class represents an order by clause for a QgsFeatureRequest.
static QgsSymbolLayer * create(const QgsStringMap &properties=QgsStringMap())
Creates a new QgsSimpleFillSymbolLayer using the specified properties map containing symbol propertie...
QgsSymbol * symbolForFeature(const QgsFeature &feature, QgsRenderContext &context) const override
To be overridden.
QgsPropertyCollection & dataDefinedProperties()
Returns a reference to the symbol layer's property collection, used for data defined overrides.
The class is used as a container of context for various read/write operations on other objects.
void setRoofColor(const QColor &roofColor)
Set the roof color.
void setOrderByEnabled(bool enabled)
Sets whether custom ordering should be applied before features are processed by this renderer.
QSet< QString > usedAttributes(const QgsRenderContext &context) const override
Returns a list of attributes required by this renderer.
A symbol entity for QgsStyle databases.
QColor color() const
Returns the color for the glow.
@ PropertyFillColor
Fill color.
void setBlurLevel(const double level)
Sets blur level (radius) for the glow.
Container of fields for a vector layer.
Contains information about the context of a rendering operation.
An interface for classes which can visit style entity (e.g.
QColor roofColor() const
Gets the roof color.
double shadowSpread() const
Gets the shadow's spread distance in map units.
Abstract base class for all rendered symbols.
static QgsProperty fromExpression(const QString &expression, bool isActive=true)
Returns a new ExpressionBasedProperty created from the specified expression.
void setWallColor(const QColor &wallColor)
Set the wall color.
Contains information relating to the style entity currently being visited.
virtual void stopRender(QgsRenderContext &context)
Must be called when a render cycle has finished, to allow the renderer to clean up.
void setActive(bool active)
Sets whether the property is currently active.
QgsProperty property(int key) const override
Returns a matching property from the collection, if one exists.
QgsFeatureRequest::OrderBy orderBy() const
Gets the order in which features shall be processed by this renderer.
virtual void setFillColor(const QColor &color)
Set fill color.
QDomElement save(QDomDocument &doc, const QgsReadWriteContext &context) override
store renderer info to XML element
QList< QgsSymbol * > QgsSymbolList
bool shadowEnabled() const
Is the shadow enabled.
virtual QgsFeatureRenderer * clone() const =0
Create a deep copy of this renderer.
QgsPaintEffect * effect(int index) const
Returns a pointer to the effect at a specified index within the stack.
bool wallShadingEnabled() const
Gets wall shading enabled.
void setSpreadUnit(const QgsUnitTypes::RenderUnit unit)
Sets the units used for the glow spread distance.
static QgsFeatureRenderer * create(QDomElement &element, const QgsReadWriteContext &context)
Create a new 2.5D renderer from XML.
#define RENDERER_TAG_NAME
QgsSymbolList symbols(QgsRenderContext &context) const override
Returns list of symbols used by the renderer.
void setShadowColor(const QColor &shadowColor)
Set the shadow's color.
void setPaintEffect(QgsPaintEffect *effect)
Sets the current paint effect for the layer.
static QgsSymbol * loadSymbol(const QDomElement &element, const QgsReadWriteContext &context)
Attempts to load a symbol from a DOM element.
void setColor(const QColor &color)
Sets the color for the glow.
void setEnabled(bool enabled)
Sets whether the effect is enabled.
void setSpread(const double spread)
Sets the spread distance for drawing the glow effect.
virtual QColor fillColor() const
Gets fill color.
QColor wallColor() const
Gets the wall color.
static Qgs25DRenderer * convertFromRenderer(QgsFeatureRenderer *renderer)
Try to convert from an existing renderer.
QMap< QString, QString > QgsStringMap
#define WALL_SHADING_EXPRESSION
bool accept(QgsStyleEntityVisitorInterface *visitor) const override
Accepts the specified symbology visitor, causing it to visit all symbols associated with the renderer...
Represents a list of OrderByClauses, with the most important first and the least important last.
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
virtual void setStrokeColor(const QColor &color)
Set stroke color.
void appendEffect(QgsPaintEffect *effect)
Appends an effect to the end of the stack.
A paint effect which draws a glow outside of a picture.
void startRender(QgsRenderContext &context, const QgsFields &fields) override
Must be called when a new render cycle is started.
A fill symbol type, for rendering Polygon and MultiPolygon geometries.
void setLocked(bool locked)
virtual bool visit(const QgsStyleEntityVisitorInterface::StyleLeaf &entity)
Called when the visitor will visit a style entity.
void setOrderBy(const QgsFeatureRequest::OrderBy &orderBy)
Define the order in which features shall be processed by this renderer.
void setWallShadingEnabled(bool enabled)
Set wall shading enabled.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
static QgsSymbolLayer * create(const QgsStringMap &properties)
QgsFeatureRenderer * clone() const override
Create a deep copy of this renderer.
bool enabled() const
Returns whether the effect is enabled.
QColor shadowColor() const
Gets the shadow's color.
virtual void startRender(QgsRenderContext &context, const QgsFields &fields)
Must be called when a new render cycle is started.
static QDomElement saveSymbol(const QString &symbolName, const QgsSymbol *symbol, QDomDocument &doc, const QgsReadWriteContext &context)
Writes a symbol definition to XML.
@ RenderMapUnits
Map units.
double spread() const
Returns the spread distance used for drawing the glow effect.
virtual void setDataDefinedProperty(Property key, const QgsProperty &property)
Sets a data defined property for the layer.
void stopRender(QgsRenderContext &context) override
Must be called when a render cycle has finished, to allow the renderer to clean up.
A paint effect which consists of a stack of other chained paint effects.