QGIS API Documentation  2.8.2-Wien
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
QgsRuleBasedRendererV2::Rule Class Reference

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

#include <qgsrulebasedrendererv2.h>

Public Member Functions

 Rule (QgsSymbolV2 *symbol, int scaleMinDenom=0, int scaleMaxDenom=0, QString filterExp=QString(), QString label=QString(), QString description=QString(), bool elseRule=false)
 Constructor takes ownership of the symbol.
 ~Rule ()
void appendChild (Rule *rule)
 add child rule, take ownership, sets this as parent
bool checkState () const
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
RulefindRuleByKey (QString key)
 Try to find a rule given its unique key.
void insertChild (int i, Rule *rule)
 add child rule, take ownership, sets this as parent
bool isElse ()
bool isFilterOK (QgsFeature &f) const
bool isScaleOK (double scale) const
QString label () const
QgsLegendSymbolList legendSymbolItems (double scaleDenominator=-1, QString rule="")
QgsLegendSymbolListV2 legendSymbolItemsV2 (int currentLevel=-1) const
Ruleparent ()
void removeChild (Rule *rule)
 delete child rule
void removeChildAt (int i)
 delete child rule
bool renderFeature (FeatureToRender &featToRender, QgsRenderContext &context, RenderQueue &renderQueue)
QString ruleKey () const
 Unique rule identifier (for identification of rule within renderer)
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 setCheckState (bool state)
void setDescription (QString description)
void setFilterExpression (QString filterExp)
void setIsElse (bool iselse)
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 setRuleKey (const QString &key)
 Override the assigned rule key (should be used just internally by rule-based renderer)
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 QgsFields &fields)
 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)
void updateElseRules ()
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
bool mCheckState
RuleList mChildren
QString mDescription
bool mElseRule
RuleList mElseRules
QgsExpressionmFilter
QString mFilterExp
QString mLabel
RulemParent
QString mRuleKey
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(),
bool  elseRule = false 
)

Constructor takes ownership of the symbol.

Definition at line 35 of file qgsrulebasedrendererv2.cpp.

QgsRuleBasedRendererV2::Rule::~Rule ( )

Definition at line 47 of file qgsrulebasedrendererv2.cpp.

Member Function Documentation

void QgsRuleBasedRendererV2::Rule::appendChild ( Rule rule)

add child rule, take ownership, sets this as parent

Definition at line 73 of file qgsrulebasedrendererv2.cpp.

bool QgsRuleBasedRendererV2::Rule::checkState ( ) const
inline
Note
added in 2.6

Definition at line 110 of file qgsrulebasedrendererv2.h.

RuleList& QgsRuleBasedRendererV2::Rule::children ( )
inline

Definition at line 160 of file qgsrulebasedrendererv2.h.

QgsRuleBasedRendererV2::Rule * QgsRuleBasedRendererV2::Rule::clone ( ) const

clone this rule, return new instance

Definition at line 256 of file qgsrulebasedrendererv2.cpp.

QSet< int > QgsRuleBasedRendererV2::Rule::collectZLevels ( )

get all used z-levels from this rule and children

Definition at line 421 of file qgsrulebasedrendererv2.cpp.

QgsRuleBasedRendererV2::Rule * QgsRuleBasedRendererV2::Rule::create ( QDomElement &  ruleElem,
QgsSymbolV2Map symbolMap 
)
static

Definition at line 575 of file qgsrulebasedrendererv2.cpp.

QgsRuleBasedRendererV2::Rule * QgsRuleBasedRendererV2::Rule::createFromSld ( QDomElement &  element,
QGis::GeometryType  geomType 
)
static

Definition at line 622 of file qgsrulebasedrendererv2.cpp.

bool QgsRuleBasedRendererV2::Rule::dependsOnScale ( ) const
inline

Definition at line 103 of file qgsrulebasedrendererv2.h.

RuleList QgsRuleBasedRendererV2::Rule::descendants ( ) const
inline

Definition at line 161 of file qgsrulebasedrendererv2.h.

QString QgsRuleBasedRendererV2::Rule::description ( ) const
inline

Definition at line 108 of file qgsrulebasedrendererv2.h.

QString QgsRuleBasedRendererV2::Rule::dump ( int  offset = 0) const

Definition at line 144 of file qgsrulebasedrendererv2.cpp.

QgsExpression* QgsRuleBasedRendererV2::Rule::filter ( ) const
inline

Definition at line 106 of file qgsrulebasedrendererv2.h.

QString QgsRuleBasedRendererV2::Rule::filterExpression ( ) const
inline

Definition at line 107 of file qgsrulebasedrendererv2.h.

QgsRuleBasedRendererV2::Rule * QgsRuleBasedRendererV2::Rule::findRuleByKey ( QString  key)

Try to find a rule given its unique key.

Note
added in 2.6

Definition at line 117 of file qgsrulebasedrendererv2.cpp.

void QgsRuleBasedRendererV2::Rule::initFilter ( )
protected

Definition at line 55 of file qgsrulebasedrendererv2.cpp.

void QgsRuleBasedRendererV2::Rule::insertChild ( int  i,
Rule rule 
)

add child rule, take ownership, sets this as parent

Definition at line 80 of file qgsrulebasedrendererv2.cpp.

bool QgsRuleBasedRendererV2::Rule::isElse ( )
inline

Definition at line 184 of file qgsrulebasedrendererv2.h.

bool QgsRuleBasedRendererV2::Rule::isFilterOK ( QgsFeature f) const

Definition at line 234 of file qgsrulebasedrendererv2.cpp.

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

Definition at line 243 of file qgsrulebasedrendererv2.cpp.

QString QgsRuleBasedRendererV2::Rule::label ( ) const
inline

Definition at line 102 of file qgsrulebasedrendererv2.h.

QgsLegendSymbolList QgsRuleBasedRendererV2::Rule::legendSymbolItems ( double  scaleDenominator = -1,
QString  rule = "" 
)
Note
not available in python bindings

Definition at line 200 of file qgsrulebasedrendererv2.cpp.

QgsLegendSymbolListV2 QgsRuleBasedRendererV2::Rule::legendSymbolItemsV2 ( int  currentLevel = -1) const
Note
added in 2.6

Definition at line 217 of file qgsrulebasedrendererv2.cpp.

Rule* QgsRuleBasedRendererV2::Rule::parent ( )
inline

Definition at line 162 of file qgsrulebasedrendererv2.h.

void QgsRuleBasedRendererV2::Rule::removeChild ( Rule rule)

delete child rule

Definition at line 87 of file qgsrulebasedrendererv2.cpp.

void QgsRuleBasedRendererV2::Rule::removeChildAt ( int  i)

delete child rule

Definition at line 94 of file qgsrulebasedrendererv2.cpp.

bool QgsRuleBasedRendererV2::Rule::renderFeature ( QgsRuleBasedRendererV2::FeatureToRender featToRender,
QgsRenderContext context,
QgsRuleBasedRendererV2::RenderQueue renderQueue 
)

Definition at line 465 of file qgsrulebasedrendererv2.cpp.

QString QgsRuleBasedRendererV2::Rule::ruleKey ( ) const
inline

Unique rule identifier (for identification of rule within renderer)

Note
added in 2.6

Definition at line 114 of file qgsrulebasedrendererv2.h.

QgsRuleBasedRendererV2::RuleList QgsRuleBasedRendererV2::Rule::rulesForFeature ( QgsFeature feat)

tell which rules will be used to render the feature

Definition at line 543 of file qgsrulebasedrendererv2.cpp.

QDomElement QgsRuleBasedRendererV2::Rule::save ( QDomDocument &  doc,
QgsSymbolV2Map symbolMap 
)

Definition at line 267 of file qgsrulebasedrendererv2.cpp.

int QgsRuleBasedRendererV2::Rule::scaleMaxDenom ( ) const
inline

Definition at line 105 of file qgsrulebasedrendererv2.h.

int QgsRuleBasedRendererV2::Rule::scaleMinDenom ( ) const
inline

Definition at line 104 of file qgsrulebasedrendererv2.h.

void QgsRuleBasedRendererV2::Rule::setCheckState ( bool  state)
inline
Note
added in 2.6

Definition at line 127 of file qgsrulebasedrendererv2.h.

void QgsRuleBasedRendererV2::Rule::setDescription ( QString  description)
inline

Definition at line 125 of file qgsrulebasedrendererv2.h.

void QgsRuleBasedRendererV2::Rule::setFilterExpression ( QString  filterExp)
inline

Definition at line 124 of file qgsrulebasedrendererv2.h.

void QgsRuleBasedRendererV2::Rule::setIsElse ( bool  iselse)
inline

Definition at line 183 of file qgsrulebasedrendererv2.h.

void QgsRuleBasedRendererV2::Rule::setLabel ( QString  label)
inline

Definition at line 121 of file qgsrulebasedrendererv2.h.

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 445 of file qgsrulebasedrendererv2.cpp.

void QgsRuleBasedRendererV2::Rule::setRuleKey ( const QString &  key)
inline

Override the assigned rule key (should be used just internally by rule-based renderer)

Note
added in 2.6

Definition at line 117 of file qgsrulebasedrendererv2.h.

void QgsRuleBasedRendererV2::Rule::setScaleMaxDenom ( int  scaleMaxDenom)
inline

Definition at line 123 of file qgsrulebasedrendererv2.h.

void QgsRuleBasedRendererV2::Rule::setScaleMinDenom ( int  scaleMinDenom)
inline

Definition at line 122 of file qgsrulebasedrendererv2.h.

void QgsRuleBasedRendererV2::Rule::setSymbol ( QgsSymbolV2 sym)

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

Definition at line 194 of file qgsrulebasedrendererv2.cpp.

bool QgsRuleBasedRendererV2::Rule::startRender ( QgsRenderContext context,
const QgsFields fields 
)

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

Definition at line 390 of file qgsrulebasedrendererv2.cpp.

void QgsRuleBasedRendererV2::Rule::stopRender ( QgsRenderContext context)

Definition at line 560 of file qgsrulebasedrendererv2.cpp.

QgsSymbolV2* QgsRuleBasedRendererV2::Rule::symbol ( )
inline

Definition at line 101 of file qgsrulebasedrendererv2.h.

QgsSymbolV2List QgsRuleBasedRendererV2::Rule::symbols ( )

Definition at line 180 of file qgsrulebasedrendererv2.cpp.

QgsSymbolV2List QgsRuleBasedRendererV2::Rule::symbolsForFeature ( QgsFeature feat)

tell which symbols will be used to render the feature

Definition at line 527 of file qgsrulebasedrendererv2.cpp.

void QgsRuleBasedRendererV2::Rule::takeChild ( Rule rule)

take child rule out, set parent as null

Definition at line 102 of file qgsrulebasedrendererv2.cpp.

QgsRuleBasedRendererV2::Rule * QgsRuleBasedRendererV2::Rule::takeChildAt ( int  i)

take child rule out, set parent as null

Definition at line 109 of file qgsrulebasedrendererv2.cpp.

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

Definition at line 299 of file qgsrulebasedrendererv2.cpp.

void QgsRuleBasedRendererV2::Rule::updateElseRules ( )

Definition at line 133 of file qgsrulebasedrendererv2.cpp.

QSet< QString > QgsRuleBasedRendererV2::Rule::usedAttributes ( )

Definition at line 162 of file qgsrulebasedrendererv2.cpp.

bool QgsRuleBasedRendererV2::Rule::willRenderFeature ( QgsFeature feat)

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

Definition at line 511 of file qgsrulebasedrendererv2.cpp.

Member Data Documentation

RuleList QgsRuleBasedRendererV2::Rule::mActiveChildren
protected

Definition at line 204 of file qgsrulebasedrendererv2.h.

bool QgsRuleBasedRendererV2::Rule::mCheckState
protected

Definition at line 196 of file qgsrulebasedrendererv2.h.

RuleList QgsRuleBasedRendererV2::Rule::mChildren
protected

Definition at line 194 of file qgsrulebasedrendererv2.h.

QString QgsRuleBasedRendererV2::Rule::mDescription
protected

Definition at line 192 of file qgsrulebasedrendererv2.h.

bool QgsRuleBasedRendererV2::Rule::mElseRule
protected

Definition at line 193 of file qgsrulebasedrendererv2.h.

RuleList QgsRuleBasedRendererV2::Rule::mElseRules
protected

Definition at line 195 of file qgsrulebasedrendererv2.h.

QgsExpression* QgsRuleBasedRendererV2::Rule::mFilter
protected

Definition at line 201 of file qgsrulebasedrendererv2.h.

QString QgsRuleBasedRendererV2::Rule::mFilterExp
protected

Definition at line 192 of file qgsrulebasedrendererv2.h.

QString QgsRuleBasedRendererV2::Rule::mLabel
protected

Definition at line 192 of file qgsrulebasedrendererv2.h.

Rule* QgsRuleBasedRendererV2::Rule::mParent
protected

Definition at line 189 of file qgsrulebasedrendererv2.h.

QString QgsRuleBasedRendererV2::Rule::mRuleKey
protected

Definition at line 198 of file qgsrulebasedrendererv2.h.

int QgsRuleBasedRendererV2::Rule::mScaleMaxDenom
protected

Definition at line 191 of file qgsrulebasedrendererv2.h.

int QgsRuleBasedRendererV2::Rule::mScaleMinDenom
protected

Definition at line 191 of file qgsrulebasedrendererv2.h.

QgsSymbolV2* QgsRuleBasedRendererV2::Rule::mSymbol
protected

Definition at line 190 of file qgsrulebasedrendererv2.h.

QList<int> QgsRuleBasedRendererV2::Rule::mSymbolNormZLevels
protected

Definition at line 203 of file qgsrulebasedrendererv2.h.


The documentation for this class was generated from the following files: