@@ -2850,6 +2850,8 @@ void QgsVectorLayer::snapToGeometry(const QgsPoint& startPoint, int featureId, Q
28502850 }
28512851 snappingResultVertex.snappedAtGeometry = featureId;
28522852 snappingResultVertex.layer = this ;
2853+ snappingResults.insert (sqrt (sqrDistVertexSnap), snappingResultVertex);
2854+ return ;
28532855 }
28542856 }
28552857 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
28682870 snappingResultSegment.beforeVertex = geom->vertexAt (afterVertex - 1 );
28692871 snappingResultSegment.afterVertex = geom->vertexAt (afterVertex);
28702872 snappingResultSegment.layer = this ;
2873+ snappingResults.insert (sqrt (sqrDistSegmentSnap), snappingResultSegment);
28712874 }
28722875 }
28732876 }
28742877
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- }
28942878}
28952879
28962880int QgsVectorLayer::insertSegmentVerticesForSnap (const QList<QgsSnappingResult>& snapResults)
0 commit comments