aMinSqD = Min(aMinSqD, ExtPCir.SquareDistance(anExtID));
}
- if (aMinSqD <= aMinSquareDist + 10.* Epsilon(1. + aMinSqD))
+ if (aMinSqD <= aMinSquareDist + (1. + aMinSqD) * Epsilon(1. + aMinSqD))
{
ClearSolutions();
mySqDist.Append(aMinSqD);
imin = k;
}
}
- if (aDmin <= aMinSquareDist + 10.* Epsilon(1. + aDmin))
+ if (aDmin <= aMinSquareDist + (1. + aDmin) * Epsilon(1. + aDmin))
{
if (imin == 0)
{
--- /dev/null
+puts "================================================="
+puts "0032874: IsParallel() method of Extrema_ExtCC does not give same results in OCC 7.6.0 vs OCC 7.5.0"
+puts "================================================="
+puts ""
+
+set distExpected 10
+circle c1 0 0 0 100
+circle c2 0 0 0 100+$distExpected
+
+set nbSteps 72
+for {set i 1} {$i < $nbSteps} {incr i} {
+ trim cc1 c1 0 2.*pi/$nbSteps*$i
+ trim cc2 c2 0 2.*pi/$nbSteps*$i
+
+ set extr [extrema cc1 cc2]
+ if {[regexp {Infinite number of extremas, distance = ([-0-9.+eE]+)} $extr full dist]} {
+ if {[expr abs($dist - $distExpected)] < 1.e-7} {
+ puts "OK"
+ } else {
+ puts "Error: wrong distance $dist instead of $distExpected expected"
+ }
+ } else {
+ puts "Error: non-parallel curves"
+ }
+}