@@ -2850,6 +2850,8 @@ void QgsVectorLayer::snapToGeometry(const QgsPoint& startPoint, int featureId, Q
2850
2850
}
2851
2851
snappingResultVertex.snappedAtGeometry = featureId;
2852
2852
snappingResultVertex.layer = this ;
2853
+ snappingResults.insert (sqrt (sqrDistVertexSnap), snappingResultVertex);
2854
+ return ;
2853
2855
}
2854
2856
}
2855
2857
if (snap_to == QgsSnapper::SNAP_TO_SEGMENT || snap_to == QgsSnapper::SNAP_TO_VERTEX_AND_SEGMENT) // snap to segment
@@ -2868,29 +2870,11 @@ void QgsVectorLayer::snapToGeometry(const QgsPoint& startPoint, int featureId, Q
2868
2870
snappingResultSegment.beforeVertex = geom->vertexAt (afterVertex - 1 );
2869
2871
snappingResultSegment.afterVertex = geom->vertexAt (afterVertex);
2870
2872
snappingResultSegment.layer = this ;
2873
+ snappingResults.insert (sqrt (sqrDistSegmentSnap), snappingResultSegment);
2871
2874
}
2872
2875
}
2873
2876
}
2874
2877
2875
- if (snap_to == QgsSnapper::SNAP_TO_VERTEX && sqrDistVertexSnap < sqrSnappingTolerance)
2876
- {
2877
- snappingResults.insert (sqrt (sqrDistVertexSnap), snappingResultVertex);
2878
- }
2879
- else if (snap_to == QgsSnapper::SNAP_TO_SEGMENT && sqrDistSegmentSnap < sqrSnappingTolerance && vectorType () != QGis::Point)
2880
- {
2881
- snappingResults.insert (sqrt (sqrDistSegmentSnap), snappingResultSegment);
2882
- }
2883
- else if (snap_to == QgsSnapper::SNAP_TO_VERTEX_AND_SEGMENT) // to vertex and segment
2884
- {
2885
- if (sqrDistVertexSnap < sqrSnappingTolerance)
2886
- {
2887
- snappingResults.insert (sqrt (sqrDistVertexSnap), snappingResultVertex);
2888
- }
2889
- else if (sqrDistSegmentSnap < sqrSnappingTolerance && vectorType () != QGis::Point)
2890
- {
2891
- snappingResults.insert (sqrt (sqrDistSegmentSnap), snappingResultSegment);
2892
- }
2893
- }
2894
2878
}
2895
2879
2896
2880
int QgsVectorLayer::insertSegmentVerticesForSnap (const QList<QgsSnappingResult>& snapResults)
0 commit comments