use a stricter tolerance to check for equal points

add method IsEqual to Vector3 class to support user-defined tolerance
This commit is contained in:
wmayer
2016-08-15 14:09:26 +02:00
parent e2345374ca
commit aea769af3d
9 changed files with 70 additions and 28 deletions

View File

@@ -25,6 +25,7 @@
#include <math_Gauss.hxx>
#include <math_Householder.hxx>
#include <Geom_BSplineSurface.hxx>
#include <Precision.hxx>
#include <QFuture>
#include <QFutureWatcher>
@@ -887,10 +888,10 @@ void BSplineParameterCorrection::DoParameterCorrection(int iIter)
}
fDeltaU = ( (P-X) * Xu ) / ( (P-X)*Xuu - Xu*Xu );
if (fabs(fDeltaU) < FLOAT_EPS)
if (fabs(fDeltaU) < Precision::Confusion())
fDeltaU = 0.0;
fDeltaV = ( (P-X) * Xv ) / ( (P-X)*Xvv - Xv*Xv );
if (fabs(fDeltaV) < FLOAT_EPS)
if (fabs(fDeltaV) < Precision::Confusion())
fDeltaV = 0.0;
//Ersetze die alten u/v-Werte durch die neuen
@@ -917,7 +918,7 @@ void BSplineParameterCorrection::DoParameterCorrection(int iIter)
i++;
}
while(i<iIter && fMaxDiff > FLOAT_EPS && fMaxScalar < 0.99);
while(i<iIter && fMaxDiff > Precision::Confusion() && fMaxScalar < 0.99);
}
bool BSplineParameterCorrection::SolveWithoutSmoothing()