Skip to content

Commit bc07486

Browse files
committedFeb 18, 2014
Re-enable geometry simplification while rendering
1 parent a3af933 commit bc07486

File tree

3 files changed

+12
-10
lines changed

3 files changed

+12
-10
lines changed
 

‎src/core/qgsvectorlayerfeatureiterator.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,6 @@ QgsVectorLayerFeatureSource::QgsVectorLayerFeatureSource(QgsVectorLayer *layer)
6262
mChangedAttributeValues = QgsChangedAttributesMap( layer->editBuffer()->changedAttributeValues() );
6363
mAddedAttributes = QList<QgsField>( layer->editBuffer()->addedAttributes() );
6464
mDeletedAttributeIds = QgsAttributeList( layer->editBuffer()->deletedAttributeIds() );
65-
66-
// TODO[MD]: after merge
67-
//mChangedFeaturesRequest.setFilterFids( L->editBuffer()->changedAttributeValues().keys().toSet() );
6865
//}
6966
}
7067
}

‎src/core/qgsvectorlayerrenderer.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ QgsVectorLayerRenderer::QgsVectorLayerRenderer( QgsVectorLayer* layer, QgsRender
4242
mLayerTransparency = layer->layerTransparency();
4343
mFeatureBlendMode = layer->featureBlendMode();
4444

45+
mSimplifyMethod = layer->simplifyMethod();
46+
mSimplifyGeometry = layer->simplifyDrawingCanbeApplied( mContext, QgsVectorLayer::GeometrySimplification );
47+
4548
QSettings settings;
4649
mVertexMarkerOnlyForSelection = settings.value( "/qgis/digitizing/marker_only_for_selected", false ).toBool();
4750

@@ -114,21 +117,20 @@ bool QgsVectorLayerRenderer::render()
114117
.setSubsetOfAttributes( mAttrNames, mFields );
115118

116119
// enable the simplification of the geometries (Using the current map2pixel context) before send it to renderer engine.
117-
#if 0 //TODO[MD]: after merge
118-
if ( simplifyDrawingCanbeApplied( mContext, QgsVectorLayer::GeometrySimplification ) )
120+
if ( mSimplifyGeometry )
119121
{
120-
QPainter* p = rendererContext.painter();
122+
QPainter* p = mContext.painter();
121123
double dpi = ( p->device()->logicalDpiX() + p->device()->logicalDpiY() ) / 2;
122124
double map2pixelTol = mSimplifyMethod.threshold() * 96.0f / dpi;
123125

124-
const QgsMapToPixel& mtp = rendererContext.mapToPixel();
126+
const QgsMapToPixel& mtp = mContext.mapToPixel();
125127
map2pixelTol *= mtp.mapUnitsPerPixel();
126-
const QgsCoordinateTransform* ct = rendererContext.coordinateTransform();
128+
const QgsCoordinateTransform* ct = mContext.coordinateTransform();
127129

128130
// resize the tolerance using the change of size of an 1-BBOX from the source CoordinateSystem to the target CoordinateSystem
129131
if ( ct && !(( QgsCoordinateTransform* )ct )->isShortCircuited() )
130132
{
131-
QgsPoint center = rendererContext.extent().center();
133+
QgsPoint center = mContext.extent().center();
132134
double rectSize = ct->sourceCrs().geographicFlag() ? 0.0008983 /* ~100/(40075014/360=111319.4833) */ : 100;
133135

134136
QgsRectangle sourceRect = QgsRectangle( center.x(), center.y(), center.x() + rectSize, center.y() + rectSize );
@@ -153,7 +155,6 @@ bool QgsVectorLayerRenderer::render()
153155

154156
featureRequest.setSimplifyMethod( simplifyMethod );
155157
}
156-
#endif
157158

158159
QgsFeatureIterator fit = mSource->getFeatures( featureRequest );
159160

‎src/core/qgsvectorlayerrenderer.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ typedef QList<int> QgsAttributeList;
2222
#include "qgsfield.h" // QgsFields
2323
#include "qgsfeature.h" // QgsFeatureIds
2424
#include "qgsfeatureiterator.h"
25+
#include "qgsvectorsimplifymethod.h"
2526

2627
#include "qgsmaplayerrenderer.h"
2728

@@ -86,6 +87,9 @@ class QgsVectorLayerRenderer : public QgsMapLayerRenderer
8687

8788
int mLayerTransparency;
8889
QPainter::CompositionMode mFeatureBlendMode;
90+
91+
QgsVectorSimplifyMethod mSimplifyMethod;
92+
bool mSimplifyGeometry;
8993
};
9094

9195

0 commit comments

Comments
 (0)
Please sign in to comment.