Quantum GIS API Documentation  1.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
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]

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

Static Public Member Functions

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

Protected Member Functions

void initFilter ()

Protected Attributes

RulemParent
QgsSymbolV2mSymbol
int mScaleMinDenom
int mScaleMaxDenom
QString mFilterExp
QString mLabel
QString mDescription
bool mElseRule
RuleList mChildren
QgsExpressionmFilter
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() 
)

Constructor takes ownership of the symbol.

Definition at line 31 of file qgsrulebasedrendererv2.cpp.

References initFilter().

Definition at line 40 of file qgsrulebasedrendererv2.cpp.


Member Function Documentation

Definition at line 146 of file qgsrulebasedrendererv2.h.

clone this rule, return new instance

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

References collectZLevels().

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

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

Definition at line 101 of file qgsrulebasedrendererv2.h.

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

Definition at line 106 of file qgsrulebasedrendererv2.h.

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

Definition at line 61 of file qgsrulebasedrendererv2.cpp.

References dump().

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

Definition at line 104 of file qgsrulebasedrendererv2.h.

Definition at line 105 of file qgsrulebasedrendererv2.h.

Definition at line 48 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 152 of file qgsrulebasedrendererv2.h.

References mParent.

Definition at line 132 of file qgsrulebasedrendererv2.cpp.

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

Definition at line 141 of file qgsrulebasedrendererv2.cpp.

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

Definition at line 100 of file qgsrulebasedrendererv2.h.

Definition at line 147 of file qgsrulebasedrendererv2.h.

delete child rule

Definition at line 154 of file qgsrulebasedrendererv2.h.

delete child rule

Definition at line 156 of file qgsrulebasedrendererv2.h.

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

Definition at line 162 of file qgsrulebasedrendererv2.cpp.

References appendChild(), and save().

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

Definition at line 103 of file qgsrulebasedrendererv2.h.

Referenced by QgsRuleBasedRendererV2::refineRuleScales().

Definition at line 102 of file qgsrulebasedrendererv2.h.

Referenced by QgsRuleBasedRendererV2::refineRuleScales().

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

Definition at line 114 of file qgsrulebasedrendererv2.h.

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

Definition at line 113 of file qgsrulebasedrendererv2.h.

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

Definition at line 110 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

Definition at line 325 of file qgsrulebasedrendererv2.cpp.

References setNormZLevels().

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

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

Definition at line 112 of file qgsrulebasedrendererv2.h.

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

Definition at line 111 of file qgsrulebasedrendererv2.h.

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

Definition at line 111 of file qgsrulebasedrendererv2.cpp.

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

Definition at line 273 of file qgsrulebasedrendererv2.cpp.

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

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

Definition at line 406 of file qgsrulebasedrendererv2.cpp.

References stopRender().

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

Definition at line 99 of file qgsrulebasedrendererv2.h.

Referenced by QgsRuleBasedRendererV2::refineRuleScales().

Definition at line 97 of file qgsrulebasedrendererv2.cpp.

References symbols().

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

tell which symbols will be used to render the feature

Note:
added in 1.9

Definition at line 389 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 158 of file qgsrulebasedrendererv2.h.

References mParent.

take child rule out, set parent as null

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

References willRenderFeature().

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


Member Data Documentation

Definition at line 177 of file qgsrulebasedrendererv2.h.

Definition at line 171 of file qgsrulebasedrendererv2.h.

Definition at line 169 of file qgsrulebasedrendererv2.h.

Definition at line 170 of file qgsrulebasedrendererv2.h.

Definition at line 174 of file qgsrulebasedrendererv2.h.

Definition at line 169 of file qgsrulebasedrendererv2.h.

Definition at line 169 of file qgsrulebasedrendererv2.h.

Definition at line 166 of file qgsrulebasedrendererv2.h.

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

Definition at line 168 of file qgsrulebasedrendererv2.h.

Definition at line 168 of file qgsrulebasedrendererv2.h.

Definition at line 167 of file qgsrulebasedrendererv2.h.

Definition at line 176 of file qgsrulebasedrendererv2.h.


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