1puts "==========="
2puts "OCC28036"
3puts "Visualization, AIS_ColoredShape - handle correctly nested compounds within Shaded display mode"
4puts "==========="
5puts ""
6
7pload MODELING VISUALIZATION
8
9clear
10box b1   0  0 0 100 200 1
11box b2 150  0 0 100  50 1
12box b3 150 50 0 100 150 1
13
14for {set i 1} {$i <= 3} {incr i} { tcopy b${i} b1_${i}; ttranslate b1_${i} 0 -300 0 }
15for {set i 1} {$i <= 3} {incr i} { tcopy b${i} b2_${i}; ttranslate b2_${i} 0    0 0 }
16for {set i 1} {$i <= 3} {incr i} { tcopy b${i} b3_${i}; ttranslate b3_${i} 0  300 0 }
17
18# make a reference scene with per-object colors
19vclear
20vinit View1
21vsetdispmode 1
22vaxo
23
24vdisplay b1_1 b1_2 b1_3
25vsetcolor b1_1 RED
26vsetcolor b1_2 GREEN
27vsetcolor b1_3 BLUE
28
29vdisplay b2_1 b2_2 b2_3
30vsetcolor b2_1 RED
31vsetcolor b2_2 GREEN
32vsetcolor b2_3 BLUE
33
34vdisplay b3_1 b3_2 b3_3
35vsetcolor b3_1 RED
36vsetcolor b3_2 GREEN
37vsetcolor b3_3 BLUE
38vfit
39vdump $imagedir/${casename}_ref.png
40
41# make a scene with sub-colors and nested compounds
42for {set j 1} {$j <= 3} {incr j} { compound b${j}_2 b${j}_3  b${j}_23  }
43for {set j 1} {$j <= 3} {incr j} { compound b${j}_1 b${j}_23 b${j}_123 }
44compound b1_123 b2_123 b3_123 b123_123
45
46vclear
47vdisplay b123_123
48
49compound b1_23 b2_23 b3_23 b123_23
50vaspects b123_123 -subshapes b123_23 -setColor GREEN
51
52vaspects b123_123 -subshapes b1_123  -setColor RED
53vaspects b123_123 -subshapes b2_123  -setColor RED
54vaspects b123_123 -subshapes b3_123  -setColor RED
55
56compound b2_3 b3_3 b23_3
57vaspects b123_123 -subshapes b1_3    -setColor BLUE
58vaspects b123_123 -subshapes b23_3   -setColor BLUE
59
60if { [vreadpixel  50 250 rgb name] != "RED2"  } { puts "Error: wrong color" }
61if { [vreadpixel 175 175 rgb name] != "RED2"  } { puts "Error: wrong color" }
62if { [vreadpixel 300 100 rgb name] != "RED2"  } { puts "Error: wrong color" }
63
64if { [vreadpixel 100 310 rgb name] != "GREEN2"} { puts "Error: wrong color" }
65if { [vreadpixel 200 230 rgb name] != "GREEN2"} { puts "Error: wrong color" }
66if { [vreadpixel 320 170 rgb name] != "GREEN2"} { puts "Error: wrong color" }
67
68if { [vreadpixel 130 280 rgb name] != "BLUE2" } { puts "Error: wrong color" }
69if { [vreadpixel 250 200 rgb name] != "BLUE2" } { puts "Error: wrong color" }
70if { [vreadpixel 350 150 rgb name] != "BLUE2" } { puts "Error: wrong color" }
71
72vdump $imagedir/${casename}.png
73