Add test case for this fix
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;
}
--- /dev/null
+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