0025095: Wrong result obtained by projection algorithm
authorifv <ifv@opencascade.com>
Thu, 24 Jul 2014 09:31:21 +0000 (13:31 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 24 Jul 2014 09:32:20 +0000 (13:32 +0400)
Test cases for issue CR25095

src/ProjLib/ProjLib_ComputeApprox.cxx
tests/bugs/moddata_3/bug25095 [new file with mode: 0644]

index 9871ac4..743c966 100644 (file)
@@ -43,6 +43,7 @@
 #include <Geom2d_BSplineCurve.hxx>
 #include <Geom2d_BezierCurve.hxx>
 
+//#define DRAW
 #ifdef DRAW
 #include <DrawTrSurf.hxx>
 #endif
@@ -463,7 +464,7 @@ static void Function_SetUVBounds(Standard_Real& myU1,
       // box+sphere >>
       Standard_Real UU = 0.;
       ElSLib::Parameters(SP, P1, U1, V1);
-      Standard_Real eps = 2.*Epsilon(1.);
+      Standard_Real eps = 10.*Epsilon(1.);
       Standard_Real dt = Max(Precision::PConfusion(), 0.01*(W2-W1)); 
       if(Abs(U1) < eps)
       {
diff --git a/tests/bugs/moddata_3/bug25095 b/tests/bugs/moddata_3/bug25095
new file mode 100644 (file)
index 0000000..83726b7
--- /dev/null
@@ -0,0 +1,32 @@
+puts "============"
+puts "OCC25095"
+puts "============"
+puts ""
+#######################################################################
+# Wrong result obtained by projection algorithm
+#######################################################################
+
+restore [locate_data_file bug25095_fz639.brep] b1
+restore [locate_data_file bug25095_fz5075.brep] b2
+
+mksurface s1 b1
+bopcurves b1 b2
+
+trim ct1 c_1 0.79929107016766299 7.0824763773472492
+trim ct2 c_1 0.79929107016766343 7.0824763773472501
+
+project cp1 ct1 s1
+project cp2 ct2 s1
+
+regexp {The length cp1 is +([0-9.+eE]+)} [length cp1] full length1
+regexp {The length cp2 is +([0-9.+eE]+)} [length cp2] full length2
+
+set good_length 7.2783309522
+checkreal "length of cp1" ${length1} ${good_length} 0.01 0.01
+checkreal "length of cp2" ${length2} ${good_length} 0.01 0.01
+
+#v2d2
+view 1 -2D-  728 20 400 400
+
+2dfit
+set only_screen_axo 1