QGIS API Documentation  2.4.0-Chugiak
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules 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>

Collaboration diagram for QgsRuleBasedRendererV2::Rule:
Collaboration graph
[legend]

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

Static Public Member Functions

static Rule * createFromSld (QDomElement &element, QGis::GeometryType geomType)
 
static Rule * create (QDomElement &ruleElem, QgsSymbolV2Map &symbolMap)
 

Protected Member Functions

void initFilter ()
 

Protected Attributes

Rule * mParent
 
QgsSymbolV2 * mSymbol
 
int mScaleMinDenom
 
int mScaleMaxDenom
 
QString mFilterExp
 
QString mLabel
 
QString mDescription
 
bool mElseRule
 
RuleList mChildren
 
RuleList mElseRules
 
QgsExpression * mFilter
 
QList< int > mSymbolNormZLevels
 
RuleList mActiveChildren
 

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

References initFilter().

QgsRuleBasedRendererV2::Rule::~Rule ( )

Definition at line 41 of file qgsrulebasedrendererv2.cpp.

Member Function Documentation

void QgsRuleBasedRendererV2::Rule::appendChild ( Rule *  rule)
RuleList& QgsRuleBasedRendererV2::Rule::children ( )
inline

Definition at line 150 of file qgsrulebasedrendererv2.h.

Referenced by descendants().

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

clone this rule, return new instance

Definition at line 218 of file qgsrulebasedrendererv2.cpp.

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

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

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

get all used z-levels from this rule and children

Definition at line 376 of file qgsrulebasedrendererv2.cpp.

References collectZLevels().

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

QgsRuleBasedRendererV2::Rule * QgsRuleBasedRendererV2::Rule::create ( QDomElement &  ruleElem,
QgsSymbolV2Map &  symbolMap 
)
static
QgsRuleBasedRendererV2::Rule * QgsRuleBasedRendererV2::Rule::createFromSld ( QDomElement &  element,
QGis::GeometryType  geomType 
)
static
bool QgsRuleBasedRendererV2::Rule::dependsOnScale ( ) const
inline

Definition at line 102 of file qgsrulebasedrendererv2.h.

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

Definition at line 151 of file qgsrulebasedrendererv2.h.

References children().

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

Definition at line 107 of file qgsrulebasedrendererv2.h.

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

Definition at line 122 of file qgsrulebasedrendererv2.cpp.

References dump().

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

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

Definition at line 105 of file qgsrulebasedrendererv2.h.

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

Definition at line 106 of file qgsrulebasedrendererv2.h.

void QgsRuleBasedRendererV2::Rule::initFilter ( )
protected

Definition at line 49 of file qgsrulebasedrendererv2.cpp.

Referenced by Rule().

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

add child rule, take ownership, sets this as parent

Definition at line 74 of file qgsrulebasedrendererv2.cpp.

References mParent.

bool QgsRuleBasedRendererV2::Rule::isElse ( )
inline

Definition at line 170 of file qgsrulebasedrendererv2.h.

Referenced by renderFeature(), and updateElseRules().

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

Definition at line 196 of file qgsrulebasedrendererv2.cpp.

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

Definition at line 205 of file qgsrulebasedrendererv2.cpp.

Referenced by legendSymbolItems().

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

Definition at line 101 of file qgsrulebasedrendererv2.h.

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

Definition at line 178 of file qgsrulebasedrendererv2.cpp.

References isScaleOK(), and legendSymbolItems().

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

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

Definition at line 152 of file qgsrulebasedrendererv2.h.

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

delete child rule

Definition at line 81 of file qgsrulebasedrendererv2.cpp.

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

delete child rule

Definition at line 88 of file qgsrulebasedrendererv2.cpp.

bool QgsRuleBasedRendererV2::Rule::renderFeature ( QgsRuleBasedRendererV2::FeatureToRender &  featToRender,
QgsRenderContext &  context,
QgsRuleBasedRendererV2::RenderQueue &  renderQueue 
)
QgsRuleBasedRendererV2::RuleList QgsRuleBasedRendererV2::Rule::rulesForFeature ( QgsFeature &  feat)

tell which rules will be used to render the feature

Definition at line 498 of file qgsrulebasedrendererv2.cpp.

References rulesForFeature().

Referenced by rulesForFeature().

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

Definition at line 228 of file qgsrulebasedrendererv2.cpp.

References appendChild(), and save().

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

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

Definition at line 104 of file qgsrulebasedrendererv2.h.

Referenced by QgsRuleBasedRendererV2::refineRuleScales().

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

Definition at line 103 of file qgsrulebasedrendererv2.h.

Referenced by QgsRuleBasedRendererV2::refineRuleScales().

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

Definition at line 115 of file qgsrulebasedrendererv2.h.

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

Definition at line 114 of file qgsrulebasedrendererv2.h.

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

Definition at line 169 of file qgsrulebasedrendererv2.h.

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

Definition at line 111 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 400 of file qgsrulebasedrendererv2.cpp.

References setNormZLevels().

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

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

Definition at line 113 of file qgsrulebasedrendererv2.h.

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

Definition at line 112 of file qgsrulebasedrendererv2.h.

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

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

Definition at line 172 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 348 of file qgsrulebasedrendererv2.cpp.

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

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

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

Definition at line 515 of file qgsrulebasedrendererv2.cpp.

References stopRender().

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

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

Definition at line 100 of file qgsrulebasedrendererv2.h.

Referenced by QgsRuleBasedRendererV2::refineRuleScales().

QgsSymbolV2List QgsRuleBasedRendererV2::Rule::symbols ( )

Definition at line 158 of file qgsrulebasedrendererv2.cpp.

References symbols().

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

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

tell which symbols will be used to render the feature

Note
added in 1.9

Definition at line 482 of file qgsrulebasedrendererv2.cpp.

References symbolsForFeature().

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

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

take child rule out, set parent as null

Definition at line 96 of file qgsrulebasedrendererv2.cpp.

References mParent.

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

take child rule out, set parent as null

Definition at line 103 of file qgsrulebasedrendererv2.cpp.

References mParent.

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

Definition at line 111 of file qgsrulebasedrendererv2.cpp.

References isElse().

QSet< QString > QgsRuleBasedRendererV2::Rule::usedAttributes ( )
bool QgsRuleBasedRendererV2::Rule::willRenderFeature ( QgsFeature &  feat)

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

Note
added in 1.9

Definition at line 466 of file qgsrulebasedrendererv2.cpp.

References willRenderFeature().

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

Member Data Documentation

RuleList QgsRuleBasedRendererV2::Rule::mActiveChildren
protected

Definition at line 187 of file qgsrulebasedrendererv2.h.

RuleList QgsRuleBasedRendererV2::Rule::mChildren
protected

Definition at line 180 of file qgsrulebasedrendererv2.h.

QString QgsRuleBasedRendererV2::Rule::mDescription
protected

Definition at line 178 of file qgsrulebasedrendererv2.h.

bool QgsRuleBasedRendererV2::Rule::mElseRule
protected

Definition at line 179 of file qgsrulebasedrendererv2.h.

RuleList QgsRuleBasedRendererV2::Rule::mElseRules
protected

Definition at line 181 of file qgsrulebasedrendererv2.h.

QgsExpression* QgsRuleBasedRendererV2::Rule::mFilter
protected

Definition at line 184 of file qgsrulebasedrendererv2.h.

QString QgsRuleBasedRendererV2::Rule::mFilterExp
protected

Definition at line 178 of file qgsrulebasedrendererv2.h.

QString QgsRuleBasedRendererV2::Rule::mLabel
protected

Definition at line 178 of file qgsrulebasedrendererv2.h.

Rule* QgsRuleBasedRendererV2::Rule::mParent
protected

Definition at line 175 of file qgsrulebasedrendererv2.h.

Referenced by appendChild(), insertChild(), takeChild(), and takeChildAt().

int QgsRuleBasedRendererV2::Rule::mScaleMaxDenom
protected

Definition at line 177 of file qgsrulebasedrendererv2.h.

int QgsRuleBasedRendererV2::Rule::mScaleMinDenom
protected

Definition at line 177 of file qgsrulebasedrendererv2.h.

QgsSymbolV2* QgsRuleBasedRendererV2::Rule::mSymbol
protected

Definition at line 176 of file qgsrulebasedrendererv2.h.

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

Definition at line 186 of file qgsrulebasedrendererv2.h.


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