0025127: Wrong result done by General Fuse algorithm
authoremv <emv@opencascade.com>
Thu, 14 Aug 2014 08:01:59 +0000 (12:01 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 14 Aug 2014 08:17:03 +0000 (12:17 +0400)
class BOPTools_AlgoTools
method
  Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse
    (const TopoDS_Face& theFSp,
     const TopoDS_Face& theFSr,
     Handle(IntTools_Context)& theContext)

Reverse normal direction for REVERSED faces.

Test case for issue CR25127

src/BOPTools/BOPTools_AlgoTools.cxx
tests/bugs/modalg_5/bug25127 [new file with mode: 0755]

index 297f198..1594f27 100644 (file)
@@ -1126,6 +1126,10 @@ Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse
     if (!bFlag) {
       return bRet;
     }
+    //
+    if (theFSp.Orientation()==TopAbs_REVERSED){
+      aDNFSp.Reverse();
+    }
   }
   else {
     BRep_Tool::Range(aESp, aT1, aT2);
diff --git a/tests/bugs/modalg_5/bug25127 b/tests/bugs/modalg_5/bug25127
new file mode 100755 (executable)
index 0000000..45801da
--- /dev/null
@@ -0,0 +1,38 @@
+puts "================"
+puts "OCC25127"
+puts "================"
+puts ""
+#######################################################################
+# Wrong result done by General Fuse algorithm
+#######################################################################
+
+restore [locate_data_file bug25127_b1.brep] b1
+restore [locate_data_file bug25127_b2.brep] b2
+
+bclearobjects
+bcleartools
+baddobjects b1
+baddtools b2
+bfillds
+bbuild result
+
+regexp {Mass +: +([-0-9.+eE]+)} [vprops result] full volume
+
+set expected_volume 620.091
+set tol_abs_volume 1.0e-3
+set tol_rel_volume 0.001
+checkreal "Volume" ${volume} ${expected_volume} ${tol_abs_volume} ${tol_rel_volume}
+
+set square 842.655
+
+set nb_v_good 4
+set nb_e_good 6
+set nb_w_good 2
+set nb_f_good 2
+set nb_sh_good 3
+set nb_sol_good 2
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 20
+
+set 3dviewer 1