0030655: Modeling Data - Provide interfaces for selection of the elements from BVH...
[occt.git] / tests / lowalgos / bvh / bug30655_1
1 puts "======="
2 puts "0030655: Modeling Data - Provide interfaces for selection of the elements from BVH tree"
3 puts "======="
4 puts ""
5
6 pload QAcommands
7
8 box b 10 10 10
9
10 # select elements interfering with each vertex (must be one vertex (itself), three edges and three faces - 7 in total)
11 foreach v [explode b v] {
12   QABVH_ShapeSelect r_$v b $v
13   QABVH_ShapeSelect rv_$v b $v -void
14
15   if { [llength [explode r_$v]] != 7} {
16     puts "Error: incorrect selection"
17   }
18
19   checknbshapes rv_$v -ref [nbshapes r_$v]
20   checkprops rv_$v -equal r_$v
21 }
22
23 # select elements interfering with each edge (must be two vertices, five edges and and four faces - 11 in total)
24 foreach e [explode b e] {
25   QABVH_ShapeSelect r_$e b $e
26   QABVH_ShapeSelect rv_$e b $e -void
27
28   if { [llength [explode r_$e]] != 11} {
29     puts "Error: incorrect selection"
30   }
31
32   checknbshapes rv_$e -ref [nbshapes r_$e]
33   checkprops rv_$e -equal r_$e
34 }
35
36 # select elements interfering with each face (must be ffour vertices, eight edges and and five faces - 17 in total)
37 foreach f [explode b f] {
38   QABVH_ShapeSelect r_$f b $f
39   QABVH_ShapeSelect rv_$f b $f -void
40
41   if { [llength [explode r_$f]] != 17} {
42     puts "Error: incorrect selection"
43   }
44
45   checknbshapes rv_$f -ref [nbshapes r_$f]
46   checkprops rv_$f -equal r_$f
47 }
48
49 # intersect the box with itself - select all interfering pairs (8 * 7 + 12 * 11 + 6 * 17 = 290)
50 QABVH_PairSelect r b b
51 QABVH_PairSelect rv b b -void
52
53 if { [llength [explode r]] != 290} {
54   puts "Error: incorrect selection"
55 }
56
57 checknbshapes rv -ref [nbshapes r]
58 checkprops rv -equal r