Skip to content

Commit

Permalink
Make topological vertex moves more robust to rounding differences
Browse files Browse the repository at this point in the history
git-svn-id: http://svn.osgeo.org/qgis/trunk@9312 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
mhugent committed Sep 13, 2008
1 parent d660c6d commit d89dc9d
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions src/core/qgssnapper.cpp
Expand Up @@ -101,15 +101,22 @@ int QgsSnapper::snapPoint( const QPoint& startPoint, QList<QgsSnappingResult>& s
snappingResult.push_back( evalIt.value() );
}
else if ( mSnapMode == QgsSnapper::SEVERAL_RESULTS_SAME_POSITION )
{

{
//take all snapping Results within a certain tolerance because rounding differences may occur
double tolerance = 0.000001;
double minDistance = evalIt.key();
QList<QgsSnappingResult> values = snappingResultList.values( minDistance );
for ( int i = 0; i < values.size(); ++i )
{
snappingResult.push_back( values.at( i ) );
}

for(evalIt = snappingResultList.begin(); evalIt != snappingResultList.end(); ++evalIt)
{
if(evalIt.key() > (minDistance + tolerance))
{
break;
}
snappingResult.push_back(evalIt.value());
}

}

else //take all results
{
for ( ;evalIt != snappingResultList.end(); ++evalIt )
Expand Down

0 comments on commit d89dc9d

Please sign in to comment.