Quantum GIS API Documentation
1.8
|
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()) | |
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 |
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. | |
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 | |
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) |
RuleList & | children () |
Rule * | parent () |
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 | |
Rule * | takeChildAt (int i) |
take child rule out, set parent as null | |
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 |
QgsExpression * | mFilter |
QList< int > | mSymbolNormZLevels |
RuleList | mActiveChildren |
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.
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.
void QgsRuleBasedRendererV2::Rule::appendChild | ( | Rule * | rule | ) | [inline] |
add child rule, take ownership, sets this as parent
Definition at line 150 of file qgsrulebasedrendererv2.h.
References mParent.
Referenced by clone(), create(), QgsRuleBasedRendererV2::createFromSld(), QgsRuleBasedRendererV2::QgsRuleBasedRendererV2(), QgsRuleBasedRendererV2::refineRuleCategories(), QgsRuleBasedRendererV2::refineRuleRanges(), QgsRuleBasedRendererV2::refineRuleScales(), and save().
RuleList& QgsRuleBasedRendererV2::Rule::children | ( | ) | [inline] |
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().
QSet< int > QgsRuleBasedRendererV2::Rule::collectZLevels | ( | ) |
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 421 of file qgsrulebasedrendererv2.cpp.
References appendChild(), QgsRuleBasedRendererV2::create(), and QgsDebugMsg.
Referenced by QgsRuleBasedRendererV2::create().
QgsRuleBasedRendererV2::Rule * QgsRuleBasedRendererV2::Rule::createFromSld | ( | QDomElement & | element, |
QGis::GeometryType | geomType | ||
) | [static] |
Definition at line 462 of file qgsrulebasedrendererv2.cpp.
References QgsExpression::createFromOgcFilter(), QgsSymbolLayerV2Utils::createSymbolLayerV2ListFromSld(), QgsExpression::dump(), QgsExpression::hasParserError(), QGis::Line, QgsExpression::parserErrorString(), QGis::Point, QGis::Polygon, and QgsDebugMsg.
Referenced by QgsRuleBasedRendererV2::createFromSld().
bool QgsRuleBasedRendererV2::Rule::dependsOnScale | ( | ) | const [inline] |
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().
QgsExpression* QgsRuleBasedRendererV2::Rule::filter | ( | ) | const [inline] |
Definition at line 104 of file qgsrulebasedrendererv2.h.
QString QgsRuleBasedRendererV2::Rule::filterExpression | ( | ) | const [inline] |
Definition at line 105 of file qgsrulebasedrendererv2.h.
void QgsRuleBasedRendererV2::Rule::initFilter | ( | ) | [protected] |
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.
bool QgsRuleBasedRendererV2::Rule::isFilterOK | ( | QgsFeature & | f | ) | const |
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 117 of file qgsrulebasedrendererv2.cpp.
References legendSymbolItems().
Referenced by legendSymbolItems(), and QgsRuleBasedRendererV2::legendSymbolItems().
Rule* QgsRuleBasedRendererV2::Rule::parent | ( | ) | [inline] |
Definition at line 147 of file qgsrulebasedrendererv2.h.
void QgsRuleBasedRendererV2::Rule::removeChild | ( | Rule * | rule | ) | [inline] |
delete child rule
Definition at line 154 of file qgsrulebasedrendererv2.h.
void QgsRuleBasedRendererV2::Rule::removeChildAt | ( | int | i | ) | [inline] |
delete child rule
Definition at line 156 of file qgsrulebasedrendererv2.h.
bool QgsRuleBasedRendererV2::Rule::renderFeature | ( | QgsRuleBasedRendererV2::FeatureToRender & | featToRender, |
QgsRenderContext & | context, | ||
QgsRuleBasedRendererV2::RenderQueue & | renderQueue | ||
) |
Definition at line 345 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::FeatureToRender::feat, and renderFeature().
Referenced by renderFeature(), and QgsRuleBasedRendererV2::renderFeature().
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().
int QgsRuleBasedRendererV2::Rule::scaleMaxDenom | ( | ) | const [inline] |
Definition at line 103 of file qgsrulebasedrendererv2.h.
Referenced by QgsRuleBasedRendererV2::refineRuleScales().
int QgsRuleBasedRendererV2::Rule::scaleMinDenom | ( | ) | const [inline] |
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.
void QgsRuleBasedRendererV2::Rule::setSymbol | ( | QgsSymbolV2 * | sym | ) |
set a new symbol (or NULL). Deletes old symbol.
Definition at line 111 of file qgsrulebasedrendererv2.cpp.
bool QgsRuleBasedRendererV2::Rule::startRender | ( | QgsRenderContext & | context, |
const QgsVectorLayer * | vlayer | ||
) |
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().
void QgsRuleBasedRendererV2::Rule::stopRender | ( | QgsRenderContext & | context | ) |
Definition at line 406 of file qgsrulebasedrendererv2.cpp.
References stopRender().
Referenced by stopRender(), and QgsRuleBasedRendererV2::stopRender().
QgsSymbolV2* QgsRuleBasedRendererV2::Rule::symbol | ( | ) | [inline] |
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
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.
Rule* QgsRuleBasedRendererV2::Rule::takeChildAt | ( | int | i | ) | [inline] |
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 | ||
) |
Definition at line 191 of file qgsrulebasedrendererv2.cpp.
References QgsSymbolLayerV2Utils::createFunctionElement(), and QgsRuleBasedRendererV2::symbols().
Referenced by QgsRuleBasedRendererV2::toSld().
QSet< QString > QgsRuleBasedRendererV2::Rule::usedAttributes | ( | ) |
Definition at line 79 of file qgsrulebasedrendererv2.cpp.
References usedAttributes().
Referenced by usedAttributes(), and QgsRuleBasedRendererV2::usedAttributes().
bool QgsRuleBasedRendererV2::Rule::willRenderFeature | ( | QgsFeature & | feat | ) |
only tell whether a feature will be rendered without actually rendering it
Definition at line 373 of file qgsrulebasedrendererv2.cpp.
References willRenderFeature().
Referenced by willRenderFeature(), and QgsRuleBasedRendererV2::willRenderFeature().
Definition at line 177 of file qgsrulebasedrendererv2.h.
RuleList QgsRuleBasedRendererV2::Rule::mChildren [protected] |
Definition at line 171 of file qgsrulebasedrendererv2.h.
QString QgsRuleBasedRendererV2::Rule::mDescription [protected] |
Definition at line 169 of file qgsrulebasedrendererv2.h.
bool QgsRuleBasedRendererV2::Rule::mElseRule [protected] |
Definition at line 170 of file qgsrulebasedrendererv2.h.
QgsExpression* QgsRuleBasedRendererV2::Rule::mFilter [protected] |
Definition at line 174 of file qgsrulebasedrendererv2.h.
QString QgsRuleBasedRendererV2::Rule::mFilterExp [protected] |
Definition at line 169 of file qgsrulebasedrendererv2.h.
QString QgsRuleBasedRendererV2::Rule::mLabel [protected] |
Definition at line 169 of file qgsrulebasedrendererv2.h.
Rule* QgsRuleBasedRendererV2::Rule::mParent [protected] |
Definition at line 166 of file qgsrulebasedrendererv2.h.
Referenced by appendChild(), insertChild(), takeChild(), and takeChildAt().
int QgsRuleBasedRendererV2::Rule::mScaleMaxDenom [protected] |
Definition at line 168 of file qgsrulebasedrendererv2.h.
int QgsRuleBasedRendererV2::Rule::mScaleMinDenom [protected] |
Definition at line 168 of file qgsrulebasedrendererv2.h.
QgsSymbolV2* QgsRuleBasedRendererV2::Rule::mSymbol [protected] |
Definition at line 167 of file qgsrulebasedrendererv2.h.
QList<int> QgsRuleBasedRendererV2::Rule::mSymbolNormZLevels [protected] |
Definition at line 176 of file qgsrulebasedrendererv2.h.