0022766: Wrong results done by several algorithms for the case of intersection betwee...
authorifv <ifv@opencascade.com>
Thu, 16 May 2013 07:38:13 +0000 (11:38 +0400)
committerifv <ifv@opencascade.com>
Thu, 16 May 2013 07:38:13 +0000 (11:38 +0400)
Add test case for this fix

src/math/math_FunctionSetRoot.cxx
tests/bugs/modalg_5/bug22766 [new file with mode: 0755]

index e6da643..9904fbb 100755 (executable)
@@ -180,6 +180,13 @@ Standard_Boolean  MyDirFunction::Value(const math_Vector& Sol,
 
     F2 = 0.5 * (FF.Norm2());
     GH.TMultiply(DF, FF);
+    for(Standard_Integer i = GH.Lower(); i <= GH.Upper(); i++) 
+    {
+      if(Precision::IsInfinite((GH.Value(i))))
+      {
+        return Standard_False;
+      }
+    }
     Gnr1 = GH.Norm2();
     return Standard_True;
   }
diff --git a/tests/bugs/modalg_5/bug22766 b/tests/bugs/modalg_5/bug22766
new file mode 100755 (executable)
index 0000000..73118ab
--- /dev/null
@@ -0,0 +1,15 @@
+puts "============"
+puts "CR22766"
+puts "============"
+puts ""
+#####################################################################################################################
+# Wrong results done by several algorithms for the case of intersection between a surface of revolution and a plane
+#####################################################################################################################
+
+restore [locate_data_file bug22766_f1] f1
+restore [locate_data_file bug22766_f2] f2
+
+mksurface s1 f1
+mksurface s2 f2
+
+intersect result s1 s2