]> OCCT Git - occt-copy.git/commitdiff
Fix for the issue #28849.
authornbv <nbv@opencascade.com>
Fri, 16 Jun 2017 10:00:02 +0000 (13:00 +0300)
committernbv <nbv@opencascade.com>
Fri, 16 Jun 2017 10:00:42 +0000 (13:00 +0300)
src/IntPatch/IntPatch_ImpImpIntersection_4.gxx
tests/bugs/modalg_6/bug28849 [new file with mode: 0644]

index a994a4592afbfc3088f3c19b653e33ad96d3d8af..24d588138cc7cbc2300704f8b183d4c456bd2103 100644 (file)
@@ -3093,7 +3093,7 @@ Standard_Boolean CyCyNoGeometric(const gp_Cylinder &theCyl1,
               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_6/bug28849 b/tests/bugs/modalg_6/bug28849
new file mode 100644 (file)
index 0000000..3ffa248
--- /dev/null
@@ -0,0 +1,23 @@
+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" 
+}
+
+set length 5.40612
+set 2dviewer 1
\ No newline at end of file