271a73a94a587107b137823a4f02bc83f3e15fcb
[occt.git] / tests / v3d / glsl / clipping1
1 puts "========"
2 puts "0029729: Visualization, Graphic3d_ClipPlane - add support of clipping plane chains"
3 puts "========"
4
5 vclear
6 vclose ALL
7 vinit View1
8
9 set aCapParams "-capping 1 -color 0.5 0.5 0.5 -texname [locate_data_file images/hatch_1.png] -texscale 0.02 -0.02 -useObjMaterial 1"
10
11 pload MODELING VISUALIZATION
12
13 # create the geometry
14 box b0sole 10 10   0 30 30 70
15 box b0hole 20 20 -10 10 10 90
16 bcut b0 b0sole b0hole
17 box b1 40 20 0 10 30 70
18 box b2 20 40 0 20 10 70
19 box b3 0  40 0 20 10 70
20 box b4 0  10 0 10 30 70
21 box b5 0   0 0 30 10 70
22 box bb 10 -10 0 20 10 10
23
24 set aNbParts 6
25 set aColors { RED YELLOW GREEN GRAY MAGENTA1 ORANGE }
26
27 compound b0 b1 b2 b3 b4 b5 cc
28
29 # create the viewer
30 vclear
31 vclose ALL
32 vinit name=View1 w=512 h=512
33 vviewparams -scale 4.66737 -proj 0.465292 -0.577133 0.671134 -up -0.46873 0.482524 0.739907 -at 15.807 37.1157 21.9799
34
35 vpoint p0 0 0 0
36 vdisplay -dispMode 1 bb
37 vaspects -noupdate bb -setColor CYAN1
38 vzbufftrihedron
39
40 puts "Display the geometry as dedicated objects"
41 for { set aPartIter 0 } { $aPartIter < $aNbParts } { incr aPartIter } {
42   vdisplay -noupdate -dispMode 1 b${aPartIter}
43   set aColor [lindex $aColors $aPartIter]
44   vsetcolor -noupdate b${aPartIter} $aColor
45 }
46
47 puts "Display the geometry as sole object"
48 vdisplay -noupdate -dispMode 1 cc
49 for { set aPartIter 0 } { $aPartIter < $aNbParts } { incr aPartIter } {
50   set aColor [lindex $aColors $aPartIter]
51   vaspects -noupdate cc -subShapes b${aPartIter} -setColor $aColor
52 }
53 # show also connected interactive object
54 vconnectto co -70 0 0 cc
55 vsetdispmode co 1
56 vsetlocation cc 70 0 0
57
58 set aPln1Z 40
59 set aPln2Y 15
60
61 vremove -noupdate p1 p2 p3 pp1 pp2
62 vpoint p1 0 0 1
63 vpoint p2 1 0 1
64 vpoint p3 0 1 1
65 vplane pp1 p1 p2 p3
66 vsetlocation -noupdate pp1 25 0 [expr $aPln1Z - 1]
67 vremove -noupdate p1 p2 p3
68
69 vpoint p1 0 1 0
70 vpoint p2 1 1 0
71 vpoint p3 0 1 1
72 vplane pp2 p1 p2 p3
73 vsetlocation -noupdate pp2 25 $aPln2Y 35
74 vremove -noupdate p1 p2 p3
75 verase pp1 pp2
76 vfit
77 vdisplay pp1 pp2
78
79 vclipplane pln -set {*}$aCapParams -equation1 0 0 -1 40 -equation2  0 1 0 -15
80 if { [vreadpixel 200 360 rgb name] != "DARKTURQUOISE" } { puts "Error: bb should NOT be clipped" }
81 vdump $::imagedir/${::casename}_2.png
82
83 vclipplane pln -set {*}$aCapParams -equation1 0 0 -1 40 -equation2  0 1 0 -15 -equation3 -1 0 0 5
84 vdump $::imagedir/${::casename}_3.png
85
86 vsettransparency b0 b1 b2 b3 b4 b5 0.5
87 vdump $::imagedir/${::casename}_3transp.png
88
89 vviewparams -scale 8.51584 -proj 0.284186 0.750426 0.59674 -up -0.228109 -0.55161 0.802305 -at 24.2647 23.8116 32.8743
90 vclipplane pln -set {*}$aCapParams -boxint 25 25 25 55 55 55
91 vsettransparency b0 b1 b2 b3 b4 b5 0
92 vdump $::imagedir/${::casename}_6.png
93
94 vsettransparency b0 b1 b2 b3 b4 b5 0.5
95 vdump $::imagedir/${::casename}_6transp.png