QGIS API Documentation  master-6164ace
QgsRuleBasedRendererV2::Rule Class Reference

This class keeps data about a rules for rule-based renderer. More...

#include <qgsrulebasedrendererv2.h>

+ Collaboration diagram for QgsRuleBasedRendererV2::Rule:

List of all members.

Public Member Functions

 Rule (QgsSymbolV2 *symbol, int scaleMinDenom=0, int scaleMaxDenom=0, QString filterExp=QString(), QString label=QString(), QString description=QString())
 Constructor takes ownership of the symbol.
 ~Rule ()
void appendChild (Rule *rule)
 add child rule, take ownership, sets this as parent
RuleListchildren ()
Ruleclone () const
 clone this rule, return new instance
QSet< int > collectZLevels ()
 get all used z-levels from this rule and children
bool dependsOnScale () const
RuleList descendants () const
QString description () const
QString dump (int offset=0) const
QgsExpressionfilter () const
QString filterExpression () const
void insertChild (int i, Rule *rule)
 add child rule, take ownership, sets this as parent
bool isFilterOK (QgsFeature &f) const
bool isScaleOK (double scale) const
QString label () const
QgsLegendSymbolList legendSymbolItems ()
Ruleparent ()
void removeChild (Rule *rule)
 delete child rule
void removeChildAt (int i)
 delete child rule
bool renderFeature (FeatureToRender &featToRender, QgsRenderContext &context, RenderQueue &renderQueue)
RuleList rulesForFeature (QgsFeature &feat)
 tell which rules will be used to render the feature
QDomElement save (QDomDocument &doc, QgsSymbolV2Map &symbolMap)
int scaleMaxDenom () const
int scaleMinDenom () const
void setDescription (QString description)
void setFilterExpression (QString filterExp)
void setLabel (QString label)
void setNormZLevels (const QMap< int, int > &zLevelsToNormLevels)
 assign normalized z-levels [0..N-1] for this rule's symbol for quick access during rendering
void setScaleMaxDenom (int scaleMaxDenom)
void setScaleMinDenom (int scaleMinDenom)
void setSymbol (QgsSymbolV2 *sym)
 set a new symbol (or NULL). Deletes old symbol.
bool startRender (QgsRenderContext &context, const QgsVectorLayer *vlayer)
 prepare the rule for rendering and its children (build active children array)
void stopRender (QgsRenderContext &context)
QgsSymbolV2symbol ()
QgsSymbolV2List symbols ()
QgsSymbolV2List symbolsForFeature (QgsFeature &feat)
 tell which symbols will be used to render the feature
void takeChild (Rule *rule)
 take child rule out, set parent as null
RuletakeChildAt (int i)
 take child rule out, set parent as null
void toSld (QDomDocument &doc, QDomElement &element, QgsStringMap props)
QSet< QString > usedAttributes ()
bool willRenderFeature (QgsFeature &feat)
 only tell whether a feature will be rendered without actually rendering it

Static Public Member Functions

static Rulecreate (QDomElement &ruleElem, QgsSymbolV2Map &symbolMap)
static RulecreateFromSld (QDomElement &element, QGis::GeometryType geomType)

Protected Member Functions

void initFilter ()

Protected Attributes

RuleList mActiveChildren
RuleList mChildren
QString mDescription
bool mElseRule
QgsExpressionmFilter
QString mFilterExp
QString mLabel
RulemParent
int mScaleMaxDenom
int mScaleMinDenom
QgsSymbolV2mSymbol
QList< int > mSymbolNormZLevels

Detailed Description

This class keeps data about a rules for rule-based renderer.

A rule consists of a symbol, filter expression and range of scales. If filter is empty, it matches all features. If scale range has both values zero, it matches all scales. If one of the min/max scale denominators is zero, there is no lower/upper bound for scales. A rule matches if both filter and scale range match.

Definition at line 84 of file qgsrulebasedrendererv2.h.


Constructor & Destructor Documentation

QgsRuleBasedRendererV2::Rule::Rule ( QgsSymbolV2 symbol,
int  scaleMinDenom = 0,
int  scaleMaxDenom = 0,
QString  filterExp = QString(),
QString  label = QString(),
QString  description = QString() 
)

Constructor takes ownership of the symbol.

Definition at line 32 of file qgsrulebasedrendererv2.cpp.

References initFilter().


Member Function Documentation

clone this rule, return new instance

Definition at line 155 of file qgsrulebasedrendererv2.cpp.

References appendChild(), QgsSymbolV2::clone(), and clone().

Referenced by clone(), and QgsRuleBasedRendererV2::clone().

get all used z-levels from this rule and children

Definition at line 315 of file qgsrulebasedrendererv2.cpp.

References collectZLevels().

Referenced by collectZLevels(), and QgsRuleBasedRendererV2::startRender().

Definition at line 105 of file qgsrulebasedrendererv2.h.

Definition at line 49 of file qgsrulebasedrendererv2.cpp.

Referenced by Rule().

void QgsRuleBasedRendererV2::Rule::insertChild ( int  i,
Rule rule 
) [inline]

add child rule, take ownership, sets this as parent

Definition at line 157 of file qgsrulebasedrendererv2.h.

References mParent.

Referenced by QgsRuleBasedRendererV2Model::insertRule().

Definition at line 133 of file qgsrulebasedrendererv2.cpp.

bool QgsRuleBasedRendererV2::Rule::isScaleOK ( double  scale) const

Definition at line 142 of file qgsrulebasedrendererv2.cpp.

delete child rule

Definition at line 159 of file qgsrulebasedrendererv2.h.

delete child rule

Definition at line 161 of file qgsrulebasedrendererv2.h.

Referenced by QgsRuleBasedRendererV2Model::removeRows().

tell which rules will be used to render the feature

Definition at line 419 of file qgsrulebasedrendererv2.cpp.

References rulesForFeature().

Referenced by QgsRuleBasedRendererV2Widget::countFeatures(), and rulesForFeature().

QDomElement QgsRuleBasedRendererV2::Rule::save ( QDomDocument &  doc,
QgsSymbolV2Map symbolMap 
)
void QgsRuleBasedRendererV2::Rule::setDescription ( QString  description) [inline]

Definition at line 115 of file qgsrulebasedrendererv2.h.

Referenced by QgsRendererRulePropsDialog::accept().

void QgsRuleBasedRendererV2::Rule::setNormZLevels ( const QMap< int, int > &  zLevelsToNormLevels)

assign normalized z-levels [0..N-1] for this rule's symbol for quick access during rendering

Note:
not available in python bindings

Definition at line 339 of file qgsrulebasedrendererv2.cpp.

References setNormZLevels().

Referenced by setNormZLevels(), and QgsRuleBasedRendererV2::startRender().

set a new symbol (or NULL). Deletes old symbol.

Definition at line 112 of file qgsrulebasedrendererv2.cpp.

Referenced by QgsRendererRulePropsDialog::accept().

prepare the rule for rendering and its children (build active children array)

Definition at line 287 of file qgsrulebasedrendererv2.cpp.

References QgsVectorLayer::pendingFields(), QgsRenderContext::rendererScale(), and startRender().

Referenced by startRender(), and QgsRuleBasedRendererV2::startRender().

tell which symbols will be used to render the feature

Note:
added in 1.9

Definition at line 403 of file qgsrulebasedrendererv2.cpp.

References symbolsForFeature().

Referenced by symbolsForFeature(), and QgsRuleBasedRendererV2::symbolsForFeature().

void QgsRuleBasedRendererV2::Rule::takeChild ( Rule rule) [inline]

take child rule out, set parent as null

Definition at line 163 of file qgsrulebasedrendererv2.h.

References mParent.

take child rule out, set parent as null

Definition at line 165 of file qgsrulebasedrendererv2.h.

References mParent.

void QgsRuleBasedRendererV2::Rule::toSld ( QDomDocument &  doc,
QDomElement &  element,
QgsStringMap  props 
)

only tell whether a feature will be rendered without actually rendering it

Note:
added in 1.9

Definition at line 387 of file qgsrulebasedrendererv2.cpp.

References willRenderFeature().

Referenced by willRenderFeature(), and QgsRuleBasedRendererV2::willRenderFeature().


Member Data Documentation

Definition at line 173 of file qgsrulebasedrendererv2.h.

Definition at line 174 of file qgsrulebasedrendererv2.h.

Definition at line 173 of file qgsrulebasedrendererv2.h.

Definition at line 173 of file qgsrulebasedrendererv2.h.

Definition at line 172 of file qgsrulebasedrendererv2.h.

Definition at line 172 of file qgsrulebasedrendererv2.h.

Definition at line 180 of file qgsrulebasedrendererv2.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines