]> OCCT Git - occt-copy.git/commitdiff
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 5abb1f8495f7dd0c2511ceb0e87a29b7730e68fc..356ef59996acf474df6e10fb3322a003bfd61616 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 392cbc72dc0c67e5a453db6191e116213192c044..8d8739bef39d8ab6646f421eda4c4b6133c5a9dd 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 c4d4be1685ea1d95fdd6c4a1c41d051048e2b596..69a6cecfbdc284a119b179219d1e3e0b1ae7c657 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 d914dd080e179b8c5522b39ebe9aa7a8d74dcd64..dba135c2eb4ca0803e49647ff228ac5d74400bc3 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 f50b1d41d64c6acf5fd81fd21ea7b9a1937c84ed..3b29e74907381b8c31f8326a6ea304d9c6650c01 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 d50c21f90c66dc16bc336f05d755f0c0d5b273e1..5db9303c503829ff825cfb602a6ae1cf143e6693 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 58d2f06811608d162776143f038cd8c60429d896..2e28b209c009e20b9614a682449b21e4b4d0f143 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 59ebd0268a008bfa7b28acf457b426854c5c2c25..7726d9837e2110a3c4a37f24f4bd1a5991de8a15 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 f8e15350458953371b477fea979fb50f469480bf..8d35aa0f2c253c1d4c473ab9929d84f832b103bd 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 e68ee42de5c53c36f121e625d6423bf249f63e85..6d326347eefeecdfaa6fbcd8f666d507f07c9df8 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 4e0d706a8c10a4b99cf37577d1a15a4ad80f418a..576f33809e927e8188acc6278397cf4e4f14ad1a 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 d34248f238baba83b41f751d52ee1515aac823f6..60567c7fe74dd3eddfe342affe3bcbe3d1e790bf 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 c6932e518f6176b1b9644e017baf8b3ac3932a86..a9bcb4eaf55e4749734f18abc72b773248303376 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 193810da20c8fdf0cf3513134f6ec146c22874b2..8f342f2b6385e11be706219022e1a99acefb8dad 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 b8d153e05a4aec7ca03d0dd0e2d641586f853016..1ff43476b1e48968cecebc95966a6b3fd66a237a 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 bf0c329816ea1b018d346f34bdef76ede31c1474..6519b1398dcd034cbff09ac34d4a80096828843a 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 d5d8b00904d586937b46035a99a781319da7e3b6..4c5fb8f07d16b0f86b00d0bf49f926684351182f 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 370a6e1477f849789a7c7308c31756178dfd905c..e2feb823ae167dbeefa549cf2acd3d2a96203d96 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 440600962f8108b4aa52685e03c3c92ca699be5e..9232a1f79d6716f314af437adc6e86df0c71b5e3 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 bd71120c227b62dc8071ac5b8074dcca14f9b4b8..ac0211ee91430f033da199a6969b38c58a934a5c 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 90f6b6fb170c2b56130a0dcc152a6e1325c78662..deb67741537a027f9a0a3c1db1ac62be5133a0ee 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 fdb80c32f9007de3ca49df3384fefa43b65e70cb..29f1692135b77aacefa3bc250d3a088df0c16cc4 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 7827f872d67536e3230eeef83a26264d36ac229f..d2a930d92aad8c6e07dfdd01319186933bd21332 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 ecfee328591de094343a17cf26152d2a70fc91ea..4ccbc3fc233cf39b874badc6051287f342f31cec 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 a943daa42b76aa6242e2efd9927fdd8edbcd8b64..fe929868c4317b0e27c45608371f9eff5f058722 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 56b4b6e70eba64527bf23f6891b5dde514ac7a97..59a063bda132cae460e310d18035255f7a89a035 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 74f3ab96fd0fb2179dad6b77f5696630d1a97457..7f639db3cdf19415cd560cbc0756a255c91e2f3b 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 30ed85ff5d1bec32c0c2982ee0277c0f50502c08..020028f9850d0cbbcb5f374113ae903a41943fa4 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 e1517435ce4466644b7ccb2c4b17eeaa4d476af3..49abd94a240c738b5f0aa7931e2217f811eeb75f 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 03d1db6dffa74c24e4f663dd8f45622e75c61627..6caa88490e9ab1fe80a20e91ec683b6ac389b96e 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 7821f20549e463f1a6291fc7f4fb2f68fc62ef59..19e809e8f274eee76cba6b67c37bc363b5db941f 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 5b565cbaacd3623f1ffec48db0998c741a8788eb..37e7a1a24e601bff6cb1c3c26dbd6d5fc553d645 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 b8a88c8d71dbf36e388af4f06c0bbead68193e40..4761db18f3fe6177168542e3937b1b51c4ffd174 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 bcef2493a66aea70ba5283f717c8fd6a8bba634b..6d191752255f0be37aa6918f4e34d00748239ea7 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 39ec6c88120a7ffee2f51935c61a9f47137cdd5a..0b797a80f48c7b2ffad1bc25f508ec9a8506d0f8 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 a3fb13947d6dd0a9ce7383bfa57f6587c6d9fd42..3ca7ea28d6fd9c86cf47025f9a44b6298dd56153 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 967a27563db0bf1dddb642a3078ad8793fbb00af..7b7f13c2be70a28f4377916ef34bb6cc40946903 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 36fba4023ddda1b8a1f2266e8ed6ff914da9b646..189fcc175348b0fff47408f0000943b4425f9427 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 a58cac014fdffc9607da69369d387120752890f4..d84ed3843a774b726c536603758321022b145c01 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 3d9342c5f792e8d2ff78a1c3a2703aebd2eeed3d..d97fe011ff2ee0f19ec3caf1eec19692b9d8b943 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 02a4bd7e97cb298fb552467d123c3d770124a3ce..5feb76f75ebdfd5f9cbe989e8ccc40cc982e23cd 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 8fe75f3a9ceb74a4fe814b7f884198e4f2e6b317..7d79f3cf89cf118abe651718cebc7cb930fdfc20 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 f0bf73b68dd6f352e3defea4d332752fd5f4b0ed..c389030b136b1d9a8ee80f11af6034996cefd364 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 8a852cb0d63cd4487613b38d5c54871319360027..db2ebd79ef2b34e2aec9128ebfe992e085af6b54 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 65ad2281bc2f9fbc2975cce05eb975cb5ed63034..32bf6aad6f7db11b9dfa17042cf212241661b42e 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 94e47c951736e9e957597a18abbff2a71cb1da0d..ea48757819b22c782a58a35cda14685e4b4bd6ce 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 57f0d0a1bfb125696c58fa3862feb52918125395..e224ecaad3f4c02009283e48670b98abb88a3737 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