@@ -22,15 +22,16 @@ void QgsGeometryAngleCheck::collectErrors( QList<QgsGeometryCheckError *> &error
22
22
QMap<QString, QgsFeatureIds> featureIds = ids.isEmpty () ? allLayerFeatureIds () : ids;
23
23
for ( const QString &layerId : featureIds.keys () )
24
24
{
25
- if ( !getCompatibility ( getFeaturePool ( layerId )->getLayer ()->geometryType () ) )
25
+ QgsFeaturePool *featurePool = mContext ->featurePools [ layerId ];
26
+ if ( !getCompatibility ( featurePool->getLayer ()->geometryType () ) )
26
27
{
27
28
continue ;
28
29
}
29
30
for ( QgsFeatureId featureid : featureIds[layerId] )
30
31
{
31
32
if ( progressCounter ) progressCounter->fetchAndAddRelaxed ( 1 );
32
33
QgsFeature feature;
33
- if ( !getFeaturePool ( layerId ) ->get ( featureid, feature ) )
34
+ if ( !featurePool ->get ( featureid, feature ) )
34
35
{
35
36
continue ;
36
37
}
@@ -77,8 +78,9 @@ void QgsGeometryAngleCheck::collectErrors( QList<QgsGeometryCheckError *> &error
77
78
78
79
void QgsGeometryAngleCheck::fixError ( QgsGeometryCheckError *error, int method, const QMap<QString, int > & /* mergeAttributeIndices*/ , Changes &changes ) const
79
80
{
81
+ QgsFeaturePool *featurePool = mContext ->featurePools [ error->layerId () ];
80
82
QgsFeature feature;
81
- if ( !getFeaturePool ( error-> layerId () ) ->get ( error->featureId (), feature ) )
83
+ if ( !featurePool ->get ( error->featureId (), feature ) )
82
84
{
83
85
error->setObsolete ();
84
86
return ;
@@ -140,14 +142,14 @@ void QgsGeometryAngleCheck::fixError( QgsGeometryCheckError *error, int method,
140
142
else
141
143
{
142
144
changes[error->layerId ()][error->featureId ()].append ( Change ( ChangeNode, ChangeRemoved, vidx ) );
143
- if ( QgsGeometryUtils::sqrDistance2D ( p1, p3 ) < QgsGeometryCheckPrecision:: tolerance() * QgsGeometryCheckPrecision::tolerance ()
144
- && QgsGeometryCheckerUtils::canDeleteVertex ( geometry, vidx.part , vidx.ring ) &&
145
+ if ( QgsGeometryUtils::sqrDistance2D ( p1, p3 ) < mContext -> tolerance &&
146
+ QgsGeometryCheckerUtils::canDeleteVertex ( geometry, vidx.part , vidx.ring ) &&
145
147
geometry->deleteVertex ( error->vidx () ) ) // error->vidx points to p3 after removing p2
146
148
{
147
149
changes[error->layerId ()][error->featureId ()].append ( Change ( ChangeNode, ChangeRemoved, QgsVertexId ( vidx.part , vidx.ring , ( vidx.vertex + 1 ) % n ) ) );
148
150
}
149
151
feature.setGeometry ( g );
150
- getFeaturePool ( error-> layerId () ) ->updateFeature ( feature );
152
+ featurePool ->updateFeature ( feature );
151
153
error->setFixed ( method );
152
154
}
153
155
}
0 commit comments