93964cc2 |
1 | puts "========" |
2 | puts "OCC29293" |
3 | puts "========" |
4 | puts "" |
5 | ################################################# |
6 | # Boolean Operations algorithm does not preserve the orientations of the faces |
7 | ################################################# |
8 | |
9 | brestore [locate_data_file bug29293_etchable_face_compound.brep] a |
10 | brestore [locate_data_file bug29293_top_shell.brep] b |
11 | |
12 | bclearobjects |
13 | bcleartools |
14 | baddcompound a |
15 | baddtools b |
16 | bfillds |
17 | bbop result 0 |
18 | |
19 | checkshape result |
20 | checkprops result -s 411200 |
21 | checknbshapes result -vertex 588 -edge 588 -wire 147 -face 147 -shell 147 |
22 | |
23 | |
24 | # Check that the normal directions have been preserved. |
25 | # All faces from input shapes which could pass into result have normals |
26 | # directed stricly to the top (0, 0, 1). So, it is necessary to check |
27 | # that all faces from the result have the same normal direction. |
28 | |
29 | foreach f [explode result f] { |
30 | if {![regexp "(0, 0, 1)" [normals $f -length 1 -print]]} { |
31 | puts "Error: the orientation is changed" |
32 | } |
33 | } |