QGIS API Documentation
2.4.0-Chugiak
|
Implementation of threaded rendering for vector layers. More...
#include <qgsvectorlayerrenderer.h>
Public Member Functions | |
QgsVectorLayerRenderer (QgsVectorLayer *layer, QgsRenderContext &context) | |
~QgsVectorLayerRenderer () | |
virtual bool | render () |
Do the rendering (based on data stored in the class) More... | |
void | setGeometryCachePointer (QgsGeometryCache *cache) |
where to save the cached geometries More... | |
Public Member Functions inherited from QgsMapLayerRenderer | |
QgsMapLayerRenderer (const QString &layerID) | |
virtual | ~QgsMapLayerRenderer () |
QStringList | errors () const |
Return list of errors (problems) that happened during the rendering. More... | |
QString | layerID () const |
Get access to the ID of the layer rendered by this class. More... | |
Protected Attributes | |
QgsRenderContext & | mContext |
QgsFields | mFields |
QgsFeatureIds | mSelectedFeatureIds |
QgsVectorLayerFeatureSource * | mSource |
QgsFeatureRendererV2 * | mRendererV2 |
bool | mCacheFeatures |
QgsGeometryCache * | mCache |
bool | mDrawVertexMarkers |
bool | mVertexMarkerOnlyForSelection |
int | mVertexMarkerStyle |
int | mVertexMarkerSize |
QGis::GeometryType | mGeometryType |
QStringList | mAttrNames |
bool | mLabeling |
bool | mDiagrams |
int | mLayerTransparency |
QPainter::CompositionMode | mFeatureBlendMode |
QgsVectorSimplifyMethod | mSimplifyMethod |
bool | mSimplifyGeometry |
Protected Attributes inherited from QgsMapLayerRenderer | |
QStringList | mErrors |
QString | mLayerID |
Private Member Functions | |
void | prepareLabeling (QgsVectorLayer *layer, QStringList &attributeNames) |
Registers label and diagram layer. More... | |
void | prepareDiagrams (QgsVectorLayer *layer, QStringList &attributeNames) |
void | drawRendererV2 (QgsFeatureIterator &fit) |
Draw layer with renderer V2. More... | |
void | drawRendererV2Levels (QgsFeatureIterator &fit) |
Draw layer with renderer V2 using symbol levels. More... | |
void | stopRendererV2 (QgsSingleSymbolRendererV2 *selRenderer) |
Stop version 2 renderer and selected renderer (if required) More... | |
Implementation of threaded rendering for vector layers.
Definition at line 50 of file qgsvectorlayerrenderer.h.
QgsVectorLayerRenderer::QgsVectorLayerRenderer | ( | QgsVectorLayer * | layer, |
QgsRenderContext & | context | ||
) |
Definition at line 38 of file qgsvectorlayerrenderer.cpp.
References QgsFeatureRendererV2::clone(), QgsVectorLayer::Cross, QgsFeatureRendererV2::dump(), QgsVectorLayer::editBuffer(), QgsVectorLayer::featureBlendMode(), QgsVectorSimplifyMethod::GeometrySimplification, QgsVectorLayer::geometryType(), QgsVectorLayer::layerTransparency(), mAttrNames, mContext, mDrawVertexMarkers, mFeatureBlendMode, mGeometryType, mLayerTransparency, mRendererV2, mSelectedFeatureIds, mSimplifyGeometry, mSimplifyMethod, mSource, mVertexMarkerOnlyForSelection, mVertexMarkerSize, mVertexMarkerStyle, QgsVectorLayer::NoMarker, prepareDiagrams(), prepareLabeling(), QgsDebugMsg, QgsVectorLayer::rendererV2(), QgsVectorLayer::selectedFeaturesIds(), QgsVectorLayer::SemiTransparentCircle, QgsFeatureRendererV2::setVertexMarkerAppearance(), QgsVectorLayer::simplifyDrawingCanbeApplied(), QgsVectorLayer::simplifyMethod(), and QgsFeatureRendererV2::usedAttributes().
QgsVectorLayerRenderer::~QgsVectorLayerRenderer | ( | ) |
Definition at line 102 of file qgsvectorlayerrenderer.cpp.
References mRendererV2, and mSource.
|
private |
Draw layer with renderer V2.
QgsFeatureRenderer::startRender() needs to be called before using this method
Definition at line 232 of file qgsvectorlayerrenderer.cpp.
References QgsGeometryCache::cacheGeometry(), QgsRenderContext::drawEditingInformation(), QgsFeature::geometry(), QgsFeature::id(), QgsRenderContext::labelingEngine(), QgsMapLayerRenderer::layerID(), mCache, mContext, mDiagrams, mDrawVertexMarkers, mLabeling, QgsMapLayerRenderer::mLayerID, mRendererV2, mSelectedFeatureIds, mVertexMarkerOnlyForSelection, QgsFeatureIterator::nextFeature(), QgsDebugMsg, QgsLabelingEngineInterface::registerDiagramFeature(), QgsLabelingEngineInterface::registerFeature(), QgsFeatureRendererV2::renderFeature(), QgsRenderContext::renderingStopped(), QgsRenderContext::showSelection(), stopRendererV2(), and QgsException::what().
Referenced by render().
|
private |
Draw layer with renderer V2 using symbol levels.
QgsFeatureRenderer::startRender() needs to be called before using this method
Definition at line 285 of file qgsvectorlayerrenderer.cpp.
References QgsGeometryCache::cacheGeometry(), QgsSymbolV2::defaultSymbol(), QgsRenderContext::drawEditingInformation(), QgsFeature::geometry(), QgsFeature::id(), QgsRenderContext::labelingEngine(), QgsSymbolV2LevelItem::layer(), mCache, mContext, mDiagrams, mDrawVertexMarkers, mFields, mGeometryType, mLabeling, QgsMapLayerRenderer::mLayerID, mRendererV2, mSelectedFeatureIds, mVertexMarkerOnlyForSelection, mVertexMarkerSize, mVertexMarkerStyle, QgsFeatureIterator::nextFeature(), QgsDebugMsg, QgsLabelingEngineInterface::registerDiagramFeature(), QgsLabelingEngineInterface::registerFeature(), QgsFeatureRendererV2::renderFeature(), QgsSymbolLayerV2::renderingPass(), QgsRenderContext::renderingStopped(), QgsRenderContext::selectionColor(), QgsSymbolV2::setColor(), QgsFeatureRendererV2::setVertexMarkerAppearance(), QgsSingleSymbolRendererV2::startRender(), stopRendererV2(), QgsSingleSymbolRendererV2::symbol(), QgsSymbolV2LevelItem::symbol(), QgsFeatureRendererV2::symbolForFeature(), QgsSymbolV2::symbolLayer(), QgsSymbolV2::symbolLayerCount(), QgsFeatureRendererV2::symbols(), and QgsException::what().
Referenced by render().
|
private |
Definition at line 459 of file qgsvectorlayerrenderer.cpp.
References QgsLabelingEngineInterface::addDiagramLayer(), QgsFields::at(), QgsLinearlyInterpolatedDiagramRenderer::classificationAttribute(), QgsLinearlyInterpolatedDiagramRenderer::classificationAttributeExpression(), QgsLinearlyInterpolatedDiagramRenderer::classificationAttributeIsExpression(), QgsDiagramRendererV2::diagram(), QgsDiagramRendererV2::diagramAttributes(), QgsVectorLayer::diagramLayerSettings(), QgsVectorLayer::diagramRenderer(), QgsRenderContext::labelingEngine(), mContext, mDiagrams, mFields, QgsField::name(), QgsExpression::referencedColumns(), QgsDiagramLayerSettings::xPosColumn, and QgsDiagramLayerSettings::yPosColumn.
Referenced by QgsVectorLayerRenderer().
|
private |
Registers label and diagram layer.
layer | diagram layer |
attributeNames | attributes needed for labeling and diagrams will be added to the list |
Definition at line 419 of file qgsvectorlayerrenderer.cpp.
References QgsRenderContext::extent(), QgsRenderContext::labelingEngine(), QgsLabelingEngineInterface::layer(), QgsPalLayerSettings::limitNumLabels, QgsPalLayerSettings::maxNumLabels, mContext, QgsPalLayerSettings::mFeaturesToLabel, mLabeling, QgsMapLayerRenderer::mLayerID, QgsPalLayerSettings::mTextFontFamily, QgsPalLayerSettings::mTextFontFound, QgsFeatureIterator::nextFeature(), and QgsLabelingEngineInterface::prepareLayer().
Referenced by QgsVectorLayerRenderer().
|
virtual |
Do the rendering (based on data stored in the class)
Implements QgsMapLayerRenderer.
Definition at line 109 of file qgsvectorlayerrenderer.cpp.
References QgsFeatureRendererV2::capabilities(), QgsRectangle::center(), QgsRenderContext::coordinateTransform(), drawRendererV2(), drawRendererV2Levels(), QgsRenderContext::extent(), QgsVectorSimplifyMethod::forceLocalOptimization(), QgsCoordinateReferenceSystem::geographicFlag(), QgsVectorLayerFeatureSource::getFeatures(), QgsRectangle::isEmpty(), QgsRectangle::isFinite(), QgsMessageLog::logMessage(), QgsRenderContext::mapToPixel(), QgsMapToPixel::mapUnitsPerPixel(), mAttrNames, mContext, QgsMapLayerRenderer::mErrors, mFeatureBlendMode, mFields, mGeometryType, mLayerTransparency, mRendererV2, mSimplifyGeometry, mSimplifyMethod, mSource, QGis::NoGeometry, QgsVectorSimplifyMethod::NoSimplification, QgsSimplifyMethod::OptimizeForRendering, QgsRenderContext::painter(), QgsDebugMsg, QgsFeatureRequest::setFilterRect(), QgsSimplifyMethod::setForceLocalOptimization(), QgsSimplifyMethod::setMethodType(), QgsVectorSimplifyMethod::setSimplifyHints(), QgsFeatureRequest::setSimplifyMethod(), QgsSimplifyMethod::setTolerance(), QgsRenderContext::setVectorSimplifyMethod(), QgsCoordinateTransform::sourceCrs(), QgsFeatureRendererV2::startRender(), QgsFeatureRendererV2::SymbolLevels, QgsVectorSimplifyMethod::threshold(), QgsRectangle::toString(), tr, QgsCoordinateTransform::transform(), QGis::UnknownGeometry, QgsRenderContext::useAdvancedEffects(), QgsFeatureRendererV2::usingSymbolLevels(), QgsException::what(), QgsPoint::x(), QgsRectangle::xMaximum(), QgsRectangle::xMinimum(), QgsPoint::y(), QgsRectangle::yMaximum(), and QgsRectangle::yMinimum().
Referenced by QgsVectorLayer::draw().
void QgsVectorLayerRenderer::setGeometryCachePointer | ( | QgsGeometryCache * | cache | ) |
where to save the cached geometries
Definition at line 219 of file qgsvectorlayerrenderer.cpp.
References QgsRenderContext::extent(), mCache, mContext, and QgsGeometryCache::setCachedGeometriesRect().
|
private |
Stop version 2 renderer and selected renderer (if required)
Definition at line 406 of file qgsvectorlayerrenderer.cpp.
References mContext, mRendererV2, QgsSingleSymbolRendererV2::stopRender(), and QgsFeatureRendererV2::stopRender().
Referenced by drawRendererV2(), and drawRendererV2Levels().
|
protected |
Definition at line 104 of file qgsvectorlayerrenderer.h.
Referenced by QgsVectorLayerRenderer(), and render().
|
protected |
Definition at line 96 of file qgsvectorlayerrenderer.h.
Referenced by drawRendererV2(), drawRendererV2Levels(), and setGeometryCachePointer().
|
protected |
Definition at line 95 of file qgsvectorlayerrenderer.h.
|
protected |
Definition at line 85 of file qgsvectorlayerrenderer.h.
Referenced by drawRendererV2(), drawRendererV2Levels(), prepareDiagrams(), prepareLabeling(), QgsVectorLayerRenderer(), render(), setGeometryCachePointer(), and stopRendererV2().
|
protected |
Definition at line 107 of file qgsvectorlayerrenderer.h.
Referenced by drawRendererV2(), drawRendererV2Levels(), and prepareDiagrams().
|
protected |
Definition at line 98 of file qgsvectorlayerrenderer.h.
Referenced by drawRendererV2(), drawRendererV2Levels(), and QgsVectorLayerRenderer().
|
protected |
Definition at line 110 of file qgsvectorlayerrenderer.h.
Referenced by QgsVectorLayerRenderer(), and render().
|
protected |
Definition at line 87 of file qgsvectorlayerrenderer.h.
Referenced by drawRendererV2Levels(), prepareDiagrams(), and render().
|
protected |
Definition at line 102 of file qgsvectorlayerrenderer.h.
Referenced by drawRendererV2Levels(), QgsVectorLayerRenderer(), and render().
|
protected |
Definition at line 106 of file qgsvectorlayerrenderer.h.
Referenced by drawRendererV2(), drawRendererV2Levels(), and prepareLabeling().
|
protected |
Definition at line 109 of file qgsvectorlayerrenderer.h.
Referenced by QgsVectorLayerRenderer(), and render().
|
protected |
Definition at line 93 of file qgsvectorlayerrenderer.h.
Referenced by drawRendererV2(), drawRendererV2Levels(), QgsVectorLayerRenderer(), render(), stopRendererV2(), and ~QgsVectorLayerRenderer().
|
protected |
Definition at line 89 of file qgsvectorlayerrenderer.h.
Referenced by drawRendererV2(), drawRendererV2Levels(), and QgsVectorLayerRenderer().
|
protected |
Definition at line 113 of file qgsvectorlayerrenderer.h.
Referenced by QgsVectorLayerRenderer(), and render().
|
protected |
Definition at line 112 of file qgsvectorlayerrenderer.h.
Referenced by QgsVectorLayerRenderer(), and render().
|
protected |
Definition at line 91 of file qgsvectorlayerrenderer.h.
Referenced by QgsVectorLayerRenderer(), render(), and ~QgsVectorLayerRenderer().
|
protected |
Definition at line 99 of file qgsvectorlayerrenderer.h.
Referenced by drawRendererV2(), drawRendererV2Levels(), and QgsVectorLayerRenderer().
|
protected |
Definition at line 100 of file qgsvectorlayerrenderer.h.
Referenced by drawRendererV2Levels(), and QgsVectorLayerRenderer().
|
protected |
Definition at line 100 of file qgsvectorlayerrenderer.h.
Referenced by drawRendererV2Levels(), and QgsVectorLayerRenderer().