Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Tiny optimisation to QgsVectorLayerFeatureIterator::postProcessFeature
  • Loading branch information
nyalldawson committed May 9, 2023
1 parent 4c4ccb9 commit ab1e839
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/core/vector/qgsvectorlayerfeatureiterator.cpp
Expand Up @@ -137,6 +137,7 @@ QgsVectorLayerFeatureIterator::QgsVectorLayerFeatureIterator( QgsVectorLayerFeat
if ( mRequest.destinationCrs().isValid() && mRequest.destinationCrs() != mSource->mCrs )
{
mTransform = QgsCoordinateTransform( mSource->mCrs, mRequest.destinationCrs(), mRequest.transformContext() );
mHasValidTransform = mTransform.isValid();
}

// prepare spatial filter geometries for optimal speed
Expand Down Expand Up @@ -938,7 +939,7 @@ void QgsVectorLayerFeatureIterator::createOrderedJoinList()
bool QgsVectorLayerFeatureIterator::postProcessFeature( QgsFeature &feature )
{
bool result = checkGeometryValidity( feature );
if ( result )
if ( result && mHasValidTransform )
geometryToDestinationCrs( feature, mTransform );

if ( result && mDistanceWithinEngine && feature.hasGeometry() )
Expand Down
1 change: 1 addition & 0 deletions src/core/vector/qgsvectorlayerfeatureiterator.h
Expand Up @@ -298,6 +298,7 @@ class CORE_EXPORT QgsVectorLayerFeatureIterator : public QgsAbstractFeatureItera

// filter bounding box constraint, in SOURCE CRS
QgsRectangle mFilterRect;
bool mHasValidTransform = false;
QgsCoordinateTransform mTransform;

// distance within constraint reference geometry and distance IN DESTINATION CRS
Expand Down

0 comments on commit ab1e839

Please sign in to comment.