16#ifndef QGSRULEBASED3DRENDERER_H
17#define QGSRULEBASED3DRENDERER_H
27class QgsFeature3DHandler;
64 typedef QList<QgsRuleBased3DRenderer::Rule *>
RuleList;
65 typedef QHash<const QgsRuleBased3DRenderer::Rule *, QgsFeature3DHandler *>
RuleToHandlerMap;
113 bool active()
const {
return mIsActive; }
120 bool isElse()
const {
return mElseRule; }
135 mFilterExp = filterExp;
207 void removeChildAt(
int i );
277 void updateElseRules();
280 Rule *mParent =
nullptr;
281 std::unique_ptr<QgsAbstract3DSymbol> mSymbol;
283 QString mDescription;
284 bool mElseRule =
false;
287 bool mIsActive =
true;
289 QString mRuleKey = QUuid::createUuid().toString();
291 std::unique_ptr<QgsExpression> mFilter;
304 QString
type()
const override {
return "rulebased"; }
312 Rule *mRootRule =
nullptr;
Rendering context for preparation of 3D entities.
Base class for all renderers that participate in 3D views.
Abstract base class for 3D symbols that are used by VectorLayer3DRenderer objects.
QgsAbstractVectorLayer3DRenderer()
QgsVectorLayer * layer() const
Returns vector layer associated with the renderer.
A 3-dimensional box composed of x, y, z coordinates.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
A container for the context for various read/write operations on objects.
A child rule for a QgsRuleBased3DRenderer.
Rule & operator=(const Rule &rh)=delete
bool isElse() const
Check if this rule is an ELSE rule.
QgsRuleBased3DRenderer::Rule * parent()
The parent rule.
const QgsRuleBased3DRenderer::RuleList & children() const
Returns all children rules of this rule.
void setDescription(const QString &description)
Set a human readable description for this rule.
Rule(const Rule &rh)=delete
const QgsRuleBased3DRenderer::Rule * parent() const
The parent rule.
void setFilterExpression(const QString &filterExp)
Set the expression used to check if a given feature shall be rendered with this rule.
Rule(QgsAbstract3DSymbol *symbol, const QString &filterExp=QString(), const QString &description=QString(), bool elseRule=false)
takes ownership of symbol, symbol may be nullptr
void setActive(bool state)
Sets if this rule is active.
QString ruleKey() const
Unique rule identifier (for identification of rule within labeling, used as provider ID).
RegisterResult
The result of registering a rule.
@ Registered
Something was registered.
@ Inactive
The rule is inactive.
@ Filtered
The rule does not apply.
bool active() const
Returns if this rule is active.
void setIsElse(bool iselse)
Sets if this rule is an ELSE rule.
QString filterExpression() const
A filter that will check if this rule applies.
QgsAbstract3DSymbol * symbol() const
Returns the labeling settings.
void setRuleKey(const QString &key)
Override the assigned rule key (should be used just internally by rule-based renderer).
QString description() const
A human readable description for this rule.
QgsRuleBased3DRenderer::RuleList & children()
Returns all children rules of this rule.
QgsRuleBased3DRenderer * clone() const override
Returns a cloned instance.
QHash< const QgsRuleBased3DRenderer::Rule *, QgsFeature3DHandler * > RuleToHandlerMap
QgsRuleBased3DRenderer(QgsRuleBased3DRenderer::Rule *root)
Construct renderer with the given root rule (takes ownership).
QgsRuleBased3DRenderer::Rule * rootRule()
Returns pointer to the root rule.
QString type() const override
Returns unique identifier of the renderer class (used to identify subclass).
QList< QgsRuleBased3DRenderer::Rule * > RuleList
const Rule * rootRule() const
Returns pointer to the root rule.
Represents a vector layer which manages a vector based dataset.