0028849: [Regression to 7.1.0] Exception in Boolean operation
authornbv <nbv@opencascade.com>
Fri, 16 Jun 2017 09:21:57 +0000 (12:21 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 22 Jun 2017 09:45:05 +0000 (12:45 +0300)
The reason of exception has been eliminated.

src/IntPatch/IntPatch_ImpImpIntersection_4.gxx
tests/bugs/modalg_7/bug28849 [new file with mode: 0644]

index 1a6cb9b..27c5f6a 100644 (file)
@@ -3212,7 +3212,7 @@ static IntPatch_ImpImpIntersection::IntStatus
               Standard_Boolean isChanged = Standard_False;
               for (Standard_Integer i = 0; i < aNbWLines; i++)
               {
-                if (aWLFindStatus[i] == WLFStatus_Absent)
+                if ((aWLFindStatus[i] == WLFStatus_Absent) || (aWLine[i]->NbPnts() == 0))
                   continue;
 
                 Standard_Real aU1c = 0.0, aV1c = 0.0;
diff --git a/tests/bugs/modalg_7/bug28849 b/tests/bugs/modalg_7/bug28849
new file mode 100644 (file)
index 0000000..08aea35
--- /dev/null
@@ -0,0 +1,28 @@
+puts "======="
+puts "OCC28849"
+puts "======="
+puts ""
+##################################################
+# [Regression to 7.1.0] Exception in Boolean operation
+##################################################
+
+restore [locate_data_file bug28849_shape1.brep] s1
+restore [locate_data_file bug28849_shape2.brep] s2
+
+bsection result s1 s2
+
+regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection result] full nbv
+
+if { $nbv != 2 } { 
+  puts "Error : Section is incorrect" 
+} else {
+  puts "Section is correct" 
+}
+
+checkprops result -l 5.40612
+
+smallview
+don result
+fit
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
\ No newline at end of file