0027270: Boolean operations: incorrect assembling of sub-shapes in container shapes...
authoremv <emv@opencascade.com>
Thu, 17 Mar 2016 09:04:59 +0000 (12:04 +0300)
committerbugmaster <bugmaster@opencascade.com>
Fri, 18 Mar 2016 13:24:16 +0000 (16:24 +0300)
The map to protect the result of Boolean operation from duplicating parts in containers has been removed (method void BOPAlgo_BOP::BuildShape()).
The results of Boolean operations on containers will be the following:
1. For the arguments of collection type (WIRE, SHELL, COMPSOLID) containing overlapping parts the overlapping parts
passed into result will be repeated for each container from the input shapes containing such parts.
2. The result of the operation Fuse for the arguments of collection type (WIRE, SHELL, COMPSOLID) will contain
the same number of containers as the arguments. The overlapping parts (EDGES/FACES/SOLIDS) will be shared among them.
For example, the result of Fuse operation between two wires will be two wires sharing coinciding edges if any.
3. The result of the operation Common for the arguments of collection type (WIRE, SHELL, COMPSOLID) will consist
of the containers containing the same overlapping parts. For example, the result of Common operation between two
fully/partially overlapping wires will be two wires containing the same edges.

Style correction.

Added test case bugs/modalg_1/bug13538
Modified boolean test cases according to new begavior

53 files changed:
dox/user_guides/boolean_operations/boolean_operations.md
dox/user_guides/boolean_operations/images/boolean_image139.png [new file with mode: 0644]
dox/user_guides/boolean_operations/images/boolean_image140.png [new file with mode: 0644]
dox/user_guides/boolean_operations/images/boolean_image141.png [new file with mode: 0644]
dox/user_guides/boolean_operations/images/boolean_image142.png [new file with mode: 0644]
dox/user_guides/boolean_operations/images/boolean_image143.png [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_BOP.cxx
tests/boolean/bcommon_2d/F3
tests/boolean/bcommon_2d/F4
tests/boolean/bcommon_2d/F5
tests/boolean/bcommon_2d/N8
tests/boolean/bcommon_2d/N9
tests/boolean/bcommon_2d/O1
tests/boolean/bcommon_2d/O7
tests/boolean/bfuse_2d/A2
tests/boolean/bfuse_2d/A3
tests/boolean/bfuse_2d/A4
tests/boolean/bfuse_2d/B1
tests/boolean/bfuse_2d/B2
tests/boolean/bfuse_2d/B3
tests/boolean/bfuse_2d/B9
tests/boolean/bopcommon_2d/F3
tests/boolean/bopcommon_2d/F4
tests/boolean/bopcommon_2d/F5
tests/boolean/bopcommon_2d/N8
tests/boolean/bopcommon_2d/N9
tests/boolean/bopcommon_2d/O1
tests/boolean/bopcommon_2d/O7
tests/boolean/bopcommon_complex/L3
tests/boolean/bopcommon_complex/L6
tests/boolean/bopcommon_complex/L7
tests/boolean/bopcommon_complex/L8
tests/boolean/bopcommon_complex/L9
tests/boolean/bopcommon_complex/M3
tests/boolean/bopcommon_complex/M4
tests/boolean/bopcommon_complex/M5
tests/boolean/bopcommon_complex/M6
tests/boolean/bopfuse_2d/A2
tests/boolean/bopfuse_2d/A3
tests/boolean/bopfuse_2d/A4
tests/boolean/bopfuse_2d/B1
tests/boolean/bopfuse_2d/B2
tests/boolean/bopfuse_2d/B3
tests/boolean/bopfuse_2d/B9
tests/boolean/bopfuse_complex/N2
tests/boolean/bopfuse_complex/N5
tests/boolean/bopfuse_complex/N6
tests/boolean/bopfuse_complex/O1
tests/boolean/bopfuse_complex/O2
tests/boolean/bopfuse_complex/O3
tests/boolean/bopfuse_complex/O4
tests/bugs/modalg_1/bug13538
tests/bugs/modalg_6/bug27270 [new file with mode: 0644]

index 5abb1f8..356ef59 100644 (file)
@@ -1080,6 +1080,9 @@ The input data for this step is a *BOPAlgo_Builder* object after building result
 * The result of the operation *Cut12* for arguments *S1* and *S2* contains the parts of argument *S1* that have state **OUT** relative to the opposite argument *S2*.
 * The result of the operation *Cut21* for arguments *S1* and *S2* contains the parts of argument *S2* that have state **OUT** relative to the opposite argument *S1*.
 * For the arguments of collection type (WIRE, SHELL, COMPSOLID) the type will be passed in the result. For example, the result of Common operation between Shell and Wire will be a compound containing Wire.
+* For the arguments of collection type (WIRE, SHELL, COMPSOLID) containing overlapping parts the overlapping parts passed into result will be repeated for each container from the input shapes containing such parts.
+* The result of the operation Fuse for the arguments of collection type (WIRE, SHELL, COMPSOLID) will contain the same number of containers as the arguments. The overlapping parts (EDGES/FACES/SOLIDS) will be shared among them. For example, the result of Fuse operation between two wires will be two wires sharing coinciding edges if any.
+* The result of the operation Common for the arguments of collection type (WIRE, SHELL, COMPSOLID) will consist of the containers containing the same overlapping parts. For example, the result of Common operation between two fully/partially overlapping wires will be two wires containing the same edges.
 
 @subsection occt_algorithms_9_4 Examples
 
@@ -1500,7 +1503,7 @@ argument *S1* has a common part with solid *S2* so the corresponding part is not
        
 @figure{/user_guides/boolean_operations/images/boolean_image065.png}   
        
-* The result of *Cut21* operation is a  compound containing split part of the argument *S2*. In this case 
+* The result of *Cut21* operation is a compound containing split part of the argument *S2*. In this case 
 argument *S2* has a common part with solid *S1* so the corresponding part is not included into the result.
 @figure{/user_guides/boolean_operations/images/boolean_image066.png}
 
@@ -1536,12 +1539,34 @@ Let us consider Shell *Sh* and Wire *W* as the objects and Solid *S* as the tool
 
 @figure{/user_guides/boolean_operations/images/boolean_image137.png}   
 
-* The result of *Cut12* operation is a compound containing the parts of the initial Shell and Wire out of the Solid. The new Shell and Wire are created from the objects.
+* The result of *Cut12* operation is a  compound containing new Shell and Wire split from the arguments *Sh* and *W*. In this case they have a common part with solid *S* so the corresponding part is not included into the result.
        
 @figure{/user_guides/boolean_operations/images/boolean_image138.png}   
        
 * The result of *Cut21* operation is not defined as the objects have a lower dimension than the tool. 
 
+@subsubsection occt_algorithms_9_4_24  Case 24: Two Wires that have overlapping edges.
+
+Let us consider two Wires that have overlapping edges, *W1* is the object and *W2* is the tool:
+
+@figure{/user_guides/boolean_operations/images/boolean_image139.png}
+
+* The result of *Fuse* operation is a compound containing two Wires, which share an overlapping edge. The new Wires are created from the objects:
+
+@figure{/user_guides/boolean_operations/images/boolean_image140.png}
+       
+* The result of *Common* operation is a compound containing two Wires both consisting of an overlapping edge. The new Wires are created from the objects:
+
+@figure{/user_guides/boolean_operations/images/boolean_image141.png}   
+
+* The result of *Cut12* operation is a compound containing a wire split from object *W1*. Its common part with *W2* is not included into the result.
+       
+@figure{/user_guides/boolean_operations/images/boolean_image142.png}   
+       
+* The result of *Cut21* operation is a compound containing a wire split from *W2*. Its common part with *W1* is not included into the result.
+       
+@figure{/user_guides/boolean_operations/images/boolean_image143.png}   
+
 
 @subsection occt_algorithms_9_5 Class BOPAlgo_BOP
 
@@ -2153,8 +2178,7 @@ The package consists of the following classes:
 
 @figure{/user_guides/boolean_operations/images/operations_image065.svg, "Diagram of BRepAlgoAPI package"} 
 
-The detailed description of the classes can be found in corresponding header files.
-The examples are below in this chapter.
+The detailed description of the classes can be found in the corresponding .hxx files. The examples are below in this chapter.
 
 @subsection occt_algorithms_11b_2 Package BOPTest
 The package *BOPTest* provides the usage of the Boolean Component on Tcl level. The method *BOPTest::APICommands* contains corresponding Tcl commands: 
diff --git a/dox/user_guides/boolean_operations/images/boolean_image139.png b/dox/user_guides/boolean_operations/images/boolean_image139.png
new file mode 100644 (file)
index 0000000..3780172
Binary files /dev/null and b/dox/user_guides/boolean_operations/images/boolean_image139.png differ
diff --git a/dox/user_guides/boolean_operations/images/boolean_image140.png b/dox/user_guides/boolean_operations/images/boolean_image140.png
new file mode 100644 (file)
index 0000000..0861773
Binary files /dev/null and b/dox/user_guides/boolean_operations/images/boolean_image140.png differ
diff --git a/dox/user_guides/boolean_operations/images/boolean_image141.png b/dox/user_guides/boolean_operations/images/boolean_image141.png
new file mode 100644 (file)
index 0000000..3d1cf97
Binary files /dev/null and b/dox/user_guides/boolean_operations/images/boolean_image141.png differ
diff --git a/dox/user_guides/boolean_operations/images/boolean_image142.png b/dox/user_guides/boolean_operations/images/boolean_image142.png
new file mode 100644 (file)
index 0000000..8473e1e
Binary files /dev/null and b/dox/user_guides/boolean_operations/images/boolean_image142.png differ
diff --git a/dox/user_guides/boolean_operations/images/boolean_image143.png b/dox/user_guides/boolean_operations/images/boolean_image143.png
new file mode 100644 (file)
index 0000000..6bcb8de
Binary files /dev/null and b/dox/user_guides/boolean_operations/images/boolean_image143.png differ
index 392cbc7..8d8739b 100644 (file)
@@ -739,7 +739,7 @@ void BOPAlgo_BOP::BuildShape()
   TopoDS_Compound aResult;
   aBB.MakeCompound(aResult);
   //
-  BOPCol_MapOfShape aMSRC, aMFence;
+  BOPCol_MapOfShape aMSRC;
   BOPTools::MapShapes(myRC, aMSRC);
   //
   // collect images of containers
@@ -769,12 +769,12 @@ void BOPAlgo_BOP::BuildShape()
         aItLSIm.Initialize(aLSIm);
         for (; aItLSIm.More(); aItLSIm.Next()) {
           const TopoDS_Shape& aSIm = aItLSIm.Value();
-          if (aMSRC.Contains(aSIm) && aMFence.Add(aSIm)) {
+          if (aMSRC.Contains(aSIm)) {
             aBB.Add(aRC, aSIm);
           }
         }
       }
-      else if (aMSRC.Contains(aS) && aMFence.Add(aS)) {
+      else if (aMSRC.Contains(aS)) {
         aBB.Add(aRC, aS);
       }
     }
index c4d4be1..69a6cec 100644 (file)
@@ -3,7 +3,7 @@ restore [locate_data_file offset_wire_034.brep] b
 
 bcommon result b a
 
-checkprops result -l 345.975
+checkprops result -l 691.95
 checksection result
 checknbshapes result -vertex 8 -edge 7 -t
 
index d914dd0..dba135c 100644 (file)
@@ -3,7 +3,7 @@ restore [locate_data_file case_3_wire2.brep] b
 
 bcommon result b a
 
-checkprops result -l 345.975
+checkprops result -l 691.95
 checksection result
 checknbshapes result -vertex 14 -edge 13 -t
 
index f50b1d4..3b29e74 100644 (file)
@@ -3,7 +3,7 @@ restore [locate_data_file case_3_wire5.brep] b
 
 bcommon result b a
 
-checkprops result -l 66.3661
+checkprops result -l 132.732
 checksection result
 checknbshapes result -vertex 2 -edge 1 -t
 
index d50c21f..5db9303 100644 (file)
@@ -3,7 +3,7 @@ restore [locate_data_file case_9_wire1.brep] b
 
 bcommon result b a
 
-checkprops result -l 143.787
+checkprops result -l 287.575
 checksection result
 checknbshapes result -vertex 2 -edge 1 -t
 
index 58d2f06..2e28b20 100644 (file)
@@ -3,7 +3,7 @@ restore [locate_data_file case_9_wire2.brep] b
 
 bcommon result b a
 
-checkprops result -l 143.787
+checkprops result -l 287.575
 checksection result
 checknbshapes result -vertex 2 -edge 1 -t
 
index 59ebd02..7726d98 100644 (file)
@@ -3,7 +3,7 @@ restore [locate_data_file case_9_wire3.brep] b
 
 bcommon result b a
 
-checkprops result -l 79.9002
+checkprops result -l 159.8
 checksection result
 checknbshapes result -vertex 2 -edge 1 -t
 
index f8e1535..8d35aa0 100644 (file)
@@ -3,7 +3,7 @@ restore [locate_data_file case_9_wire1.brep] b
 
 bcommon result b a
 
-checkprops result -l 143.787
+checkprops result -l 287.575
 checksection result
 checknbshapes result -vertex 2 -edge 1 -t
 
index e68ee42..6d32634 100644 (file)
@@ -3,7 +3,7 @@ restore [locate_data_file offset_wire_034.brep] b
 
 bfuse result a b
 
-checkprops result -l 739.311
+checkprops result -l 1085.29
 checksection result
 checknbshapes result -vertex 14 -edge 14 -t
 
index 4e0d706..576f338 100644 (file)
@@ -3,7 +3,7 @@ restore [locate_data_file case_3_wire2.brep] b
 
 bfuse result a b
 
-checkprops result -l 739.311
+checkprops result -l 1085.29
 checksection result
 checknbshapes result -vertex 20 -edge 20 -t
 
index d34248f..60567c7 100644 (file)
@@ -3,7 +3,7 @@ restore [locate_data_file case_3_wire5.brep] b
 
 bfuse result a b
 
-checkprops result -l 862.192
+checkprops result -l 928.558
 checksection result
 checknbshapes result -vertex 12 -edge 13 -t
 
index c6932e5..a9bcb4e 100644 (file)
@@ -3,7 +3,7 @@ restore [locate_data_file case_9_wire1.brep] b
 
 bfuse result a b
 
-checkprops result -l 1809.78
+checkprops result -l 1953.57
 checksection result
 checknbshapes result -vertex 8 -edge 9 -t
 
index 193810d..8f342f2 100644 (file)
@@ -3,7 +3,7 @@ restore [locate_data_file case_9_wire2.brep] b
 
 bfuse result a b
 
-checkprops result -l 1982.81
+checkprops result -l 2126.59
 checksection result
 checknbshapes result -vertex 10 -edge 11 -t
 
index b8d153e..1ff4347 100644 (file)
@@ -3,7 +3,7 @@ restore [locate_data_file case_9_wire3.brep] b
 
 bfuse result a b
 
-checkprops result -l 2046.69
+checkprops result -l 2126.59
 checksection result
 checknbshapes result -vertex 10 -edge 11 -t
 
index bf0c329..6519b13 100644 (file)
@@ -3,7 +3,7 @@ restore [locate_data_file case_9_wire1.brep] b
 
 bfuse result a b
 
-checkprops result -l 1377.51
+checkprops result -l 1521.3
 checksection result
 checknbshapes result -vertex 7 -edge 7 -t
 
index d5d8b00..4c5fb8f 100644 (file)
@@ -4,7 +4,7 @@ restore [locate_data_file offset_wire_034.brep] b
 bop a b
 bopcommon result
 
-checkprops result -l 345.975
+checkprops result -l 691.95
 checksection result
 checknbshapes result -vertex 8 -edge 7 -t
 
index 370a6e1..e2feb82 100644 (file)
@@ -4,7 +4,7 @@ restore [locate_data_file case_3_wire2.brep] b
 bop a b
 bopcommon result
 
-checkprops result -l 345.975
+checkprops result -l 691.95
 checksection result
 checknbshapes result -vertex 14 -edge 13 -t
 
index 4406009..9232a1f 100644 (file)
@@ -4,7 +4,7 @@ restore [locate_data_file case_3_wire5.brep] b
 bop a b
 bopcommon result
 
-checkprops result -l 66.3661
+checkprops result -l 132.732
 checksection result
 checknbshapes result -vertex 2 -edge 1 -t
 
index bd71120..ac0211e 100644 (file)
@@ -4,7 +4,7 @@ restore [locate_data_file case_9_wire1.brep] b
 bop a b
 bopcommon result
 
-checkprops result -l 143.787
+checkprops result -l 287.575
 checksection result
 checknbshapes result -vertex 2 -edge 1 -t
 
index 90f6b6f..deb6774 100644 (file)
@@ -4,7 +4,7 @@ restore [locate_data_file case_9_wire2.brep] b
 bop a b
 bopcommon result
 
-checkprops result -l 143.787
+checkprops result -l 287.575
 checksection result
 checknbshapes result -vertex 2 -edge 1 -t
 
index fdb80c3..29f1692 100644 (file)
@@ -4,7 +4,7 @@ restore [locate_data_file case_9_wire3.brep] b
 bop a b
 bopcommon result
 
-checkprops result -l 79.9002
+checkprops result -l 159.8
 checksection result
 checknbshapes result -vertex 2 -edge 1 -t
 
index 7827f87..d2a930d 100644 (file)
@@ -4,7 +4,7 @@ restore [locate_data_file case_9_wire1.brep] b
 bop a b
 bopcommon result
 
-checkprops result -l 143.787
+checkprops result -l 287.575
 checksection result
 checknbshapes result -vertex 2 -edge 1 -t
 
index ecfee32..4ccbc3f 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file sh2a] b2
 bop b1 b2
 bopcommon result
 
-checkprops result -s 350
+checkprops result -s 700
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index a943daa..fe92986 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file sh7] b2
 bop b1 b2
 bopcommon result
 
-checkprops result -s 100
+checkprops result -s 200
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index 56b4b6e..59a063b 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file sh8] b2
 bop b1 b2
 bopcommon result
 
-checkprops result -s 95.7107
+checkprops result -s 191.421
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index 74f3ab9..7f639db 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file sh9] b2
 bop b1 b2
 bopcommon result
 
-checkprops result -s 400
+checkprops result -s 800
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index 30ed85f..020028f 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file shx] b2
 bop b1 b2
 bopcommon result
 
-checkprops result -s 331.371
+checkprops result -s 662.742
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index e151743..49abd94 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file sg2] b2
 bop b1 b2
 bopcommon result
 
-checkprops result -s 2094.4
+checkprops result -s 4188.79
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index 03d1db6..6caa884 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file sf5] b2
 bop b1 b2
 bopcommon result
 
-checkprops result -s 1610.86
+checkprops result -s 3221.73
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index 7821f20..19e809e 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file sf3] b2
 bop b1 b2
 bopcommon result
 
-checkprops result -s 1610.86
+checkprops result -s 3221.73
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index 5b565cb..37e7a1a 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file sf55] b2
 bop b1 b2
 bopcommon result
 
-checkprops result -s 37699.1
+checkprops result -s 75398.2
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index b8a88c8..4761db1 100644 (file)
@@ -4,7 +4,7 @@ restore [locate_data_file offset_wire_034.brep] b
 bop a b
 bopfuse result
 
-checkprops result -l 739.311
+checkprops result -l 1085.29
 checksection result
 checknbshapes result -vertex 14 -edge 14 -t
 
index bcef249..6d19175 100644 (file)
@@ -4,7 +4,7 @@ restore [locate_data_file case_3_wire2.brep] b
 bop a b
 bopfuse result
 
-checkprops result -l 739.311
+checkprops result -l 1085.29
 checksection result
 checknbshapes result -vertex 20 -edge 20 -t
 
index 39ec6c8..0b797a8 100644 (file)
@@ -4,7 +4,7 @@ restore [locate_data_file case_3_wire5.brep] b
 bop a b
 bopfuse result
 
-checkprops result -l 862.192
+checkprops result -l 928.558
 checksection result
 checknbshapes result -vertex 12 -edge 13 -t
 
index a3fb139..3ca7ea2 100644 (file)
@@ -4,7 +4,7 @@ restore [locate_data_file case_9_wire1.brep] b
 bop a b
 bopfuse result
 
-checkprops result -l 1809.78
+checkprops result -l 1953.57
 checksection result
 checknbshapes result -vertex 8 -edge 9 -t
 
index 967a275..7b7f13c 100644 (file)
@@ -4,7 +4,7 @@ restore [locate_data_file case_9_wire2.brep] b
 bop a b
 bopfuse result
 
-checkprops result -l 1982.81
+checkprops result -l 2126.59
 checksection result
 checknbshapes result -vertex 10 -edge 11 -t
 
index 36fba40..189fcc1 100644 (file)
@@ -4,7 +4,7 @@ restore [locate_data_file case_9_wire3.brep] b
 bop a b
 bopfuse result
 
-checkprops result -l 2046.69
+checkprops result -l 2126.59
 checksection result
 checknbshapes result -vertex 10 -edge 11 -t
 
index a58cac0..d84ed38 100644 (file)
@@ -4,7 +4,7 @@ restore [locate_data_file case_9_wire1.brep] b
 bop a b
 bopfuse result
 
-checkprops result -l 1377.51
+checkprops result -l 1521.3
 checksection result
 checknbshapes result -vertex 7 -edge 7 -t
 
index 3d9342c..d97fe01 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file sh2a] b2
 bop b1 b2
 bopfuse result
 
-checkprops result -s 850
+checkprops result -s 1200
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index 02a4bd7..5feb76f 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file sh9] b2
 bop b1 b2
 bopfuse result
 
-checkprops result -s 800
+checkprops result -s 1200
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index 8fe75f3..7d79f3c 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file shx] b2
 bop b1 b2
 bopfuse result
 
-checkprops result -s 468.629
+checkprops result -s 800
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index f0bf73b..c389030 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file sg2] b2
 bop b1 b2
 bopfuse result
 
-checkprops result -s 11868.2
+checkprops result -s 13962.6
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index 8a852cb..db2ebd7 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file sf5] b2
 bop b1 b2
 bopfuse result
 
-checkprops result -s 62831.9
+checkprops result -s 64442.7
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index 65ad228..32bf6aa 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file sf3] b2
 bop b1 b2
 bopfuse result
 
-checkprops result -s 62831.9
+checkprops result -s 64442.7
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index 94e47c9..ea48757 100644 (file)
@@ -4,5 +4,5 @@ restore [locate_data_file sf55] b2
 bop b1 b2
 bopfuse result
 
-checkprops result -s 87964.6
+checkprops result -s 125664
 checkview -display result -2d -otherwise { b1 b2 } -s -path ${imagedir}/${test_image}.png
index 57f0d0a..e224eca 100755 (executable)
@@ -15,8 +15,8 @@ explode b Sh
 bop a_1 b_1
 bopcommon result
 
-checkprops result -s 10000 
+checkprops result -s 20000
 checkshape result
-checknbshapes result -vertex 4 -edge 4 -wire 1 -face 1 -shell 1 -solid 0 -compsolid 0 -compound 1 -shape 12
+checknbshapes result -vertex 4 -edge 4 -wire 1 -face 1 -shell 2 -solid 0 -compsolid 0 -compound 1 -shape 13
 set 2viewer 0
 
diff --git a/tests/bugs/modalg_6/bug27270 b/tests/bugs/modalg_6/bug27270
new file mode 100644 (file)
index 0000000..d1aae2c
--- /dev/null
@@ -0,0 +1,24 @@
+puts "============"
+puts "OCC27270"
+puts "============"
+puts ""
+###########################################################################################################
+#  Boolean operations: incorrect assembling of sub-shapes in container shapes (wires, shells, compsolids)
+###########################################################################################################
+
+box b1 200 200 200
+explode b1 w
+compound b1_1 b1_2 b1_3 b1_4 b1_5 b1_6 c1
+tcopy c1 c2
+ttranslate c2 100 0 300
+bfuse result c1 c2
+set info [explode result]
+if { [llength $info] > 2 } {
+  puts "OK: result is correct"
+} else {
+  puts "Error: incorrect assembling of sub-shapes in container shapes"
+}
+
+checkprops result -l 9600
+checkshape result
+checkview -display result -3d -path ${imagedir}/${test_image}.png