0032208: Tests - refactor visualization tests to cover several graphic drivers
[occt.git] / tests / v3d / bugs / bug25671
1 puts "============"
2 puts "CR25671: V3d_View::Convert doesn't work as expected in GRID active mode."
3 puts "============"
4 puts ""
5
6 pload MODELING VISUALIZATION
7 vinit View1 w=400 h=400
8
9 # 1. Synthetic case for detection with AIS_InteractiveContext::MoveTo
10 set detect_x 197
11 set detect_y 229
12
13 set cylinder_r 5
14 set cylinder_h 10
15 set cylinder_xyz {100 0 0}
16
17 vgrid -type circular -mode points -origin -10 0 -step 5 5 -rotAngle 45
18 pcylinder c $cylinder_r $cylinder_h
19 ttranslate c {*}$cylinder_xyz
20 vdisplay c
21 vfit
22 vmoveto $detect_x $detect_y
23 checkcolor $detect_x $detect_y 0 1 1
24
25 if { $stat != 1 } { puts "Error : Detection does not work correctly with activated grid." }
26
27 vgrid off
28 vremove -all
29
30 # 2.1 Quick test of coordinate conversion commands
31 set view_scale 2.5
32 set view_proj {0 1 0}
33 set view_up {0 0 1}
34 set view_eye {0.5 100.5 0.5}
35 set view_at {0.5 0.5 0.5}
36 set view_znear  0
37 set view_zfar 150
38
39 vviewparams -scale $view_scale -eye {*}$view_eye -at {*}$view_at -proj {*}$view_proj -up {*}$view_up
40 vzrange $view_znear $view_zfar
41
42 set vconvert_1_view        [vconvert 1.0 view]
43 set vconvert_1_win         [vconvert 1.0 window]
44 set vconvert_00_00_win     [vconvert 0.0 0.0 window]
45 set vconvert_200_200_view  [vconvert 200 200 view]
46 set vconvert_05_05_ray     [vconvert 0.5 0.5 ray]
47 set vconvert_200_200_model [vconvert 200 200]
48 set vconvert_05_100_05_win [vconvert 0.5 100 0.5 window]
49
50 checkreal "vconvert 1.0 view, view 1"               [lindex $vconvert_1_view 2]          1.0 1e-7 0.0
51 checkreal "vconvert 1.0 window, view 1"             [lindex $vconvert_1_win 2]           1.0 1e-7 0.0
52 checkreal "vconvert 0.0 0.0 window, view 1, Xp"     [lindex $vconvert_00_00_win 2]     200.0 1.0  0.0
53 checkreal "vconvert 0.0 0.0 window, view 1, Yp"     [lindex $vconvert_00_00_win 3]     200.0 1.0  0.0
54 checkreal "vconvert 200 200 view, view 1, Xv"       [lindex $vconvert_200_200_view 2]    0.0 1e-7 0.0
55 checkreal "vconvert 200 200 view, view 1, Yv"       [lindex $vconvert_200_200_view 3]    0.0 1e-7 0.0
56 checkreal "vconvert 0.5 0.5 ray, view 1, DX"        [lindex $vconvert_05_05_ray 2]       0.0 1e-7 0.0
57 checkreal "vconvert 0.5 0.5 ray, view 1, DY"        [lindex $vconvert_05_05_ray 3]      -1.0 1e-7 0.0
58 checkreal "vconvert 0.5 0.5 ray, view 1, DZ"        [lindex $vconvert_05_05_ray 4]       0.0 1e-7 0.0
59 checkreal "vconvert 200 200, view 1, X"             [lindex $vconvert_200_200_model 2]   0.5 1.0  0.0
60 checkreal "vconvert 200 200, view 1, Y"             [lindex $vconvert_200_200_model 3] 100.5 1.0  0.0
61 checkreal "vconvert 200 200, view 1, Z"             [lindex $vconvert_200_200_model 4]  -0.5 1.0  0.0
62 checkreal "vconvert 0.5 100 0.5 window, view 1, Xp" [lindex $vconvert_05_100_05_win 2] 200.0 1.0  0.0
63 checkreal "vconvert 0.5 100 0.5 window, view 1, Yp" [lindex $vconvert_05_100_05_win 3] 199.0 1.0  0.0
64
65 # 2.2 Quick test of coordinate conversion commands
66 vgrid -type rectangular -origin 10 10 -step 1 1 -rotAngle 45
67
68 set view_scale 49.504950495049506
69 set view_proj {0 0 1}
70 set view_up {0 1 0}
71 set view_eye {25 5 125}
72 set view_at {25 5 45}
73 set view_znear  0
74 set view_zfar 150
75
76 vviewparams -scale $view_scale -eye {*}$view_eye -at {*}$view_at -proj {*}$view_proj -up {*}$view_up
77 vautozfit 0
78 vzrange $view_znear $view_zfar
79
80 set vconvert_1_view        [vconvert 1.0 view]
81 set vconvert_1_win         [vconvert 1.0 window]
82 set vconvert_00_00_win     [vconvert 0.0 0.0 window]
83 set vconvert_200_200_view  [vconvert 200 200 view]
84 set vconvert_05_05_ray     [vconvert 0.5 0.5 ray]
85 set vconvert_200_200_model [vconvert 200 200]
86 set vconvert_200_200_grid  [vconvert 200 200 grid]
87 set vconvert_25_5_35_win   [vconvert 25.0 4.94 35.0 window]
88 set vconvert_25_5_35_grid  [vconvert 25.0 4.94 35.0 grid]
89
90 checkreal "vconvert 1.0 view, view 2"               [lindex $vconvert_1_view 2]         0.05 0.05 0.0
91 checkreal "vconvert 1.0 window, view 2"             [lindex $vconvert_1_win 2]          19.0 0.05 0.0
92 checkreal "vconvert 0.0 0.0 window, view 2, Xp"     [lindex $vconvert_00_00_win 2]     200.0 1.0  0.0
93 checkreal "vconvert 0.0 0.0 window, view 2, Yp"     [lindex $vconvert_00_00_win 3]     200.0 1.0  0.0
94 checkreal "vconvert 200 200 view, view 2, Xv"       [lindex $vconvert_200_200_view 2]    0.0 1e-7 0.0
95 checkreal "vconvert 200 200 view, view 2, Yv"       [lindex $vconvert_200_200_view 3]    0.0 1e-7 0.0
96 checkreal "vconvert 0.5 0.5 ray, view 2, DX"        [lindex $vconvert_05_05_ray 2]       0.0 1e-7 0.0
97 checkreal "vconvert 0.5 0.5 ray, view 2, DY"        [lindex $vconvert_05_05_ray 3]       0.0 1e-7 0.0
98 checkreal "vconvert 0.5 0.5 ray, view 2, DZ"        [lindex $vconvert_05_05_ray 4]      -1.0 1e-7 0.0
99 checkreal "vconvert 200 200, view 2, X"             [lindex $vconvert_200_200_model 2]  25.0 0.05 0.0
100 checkreal "vconvert 200 200, view 2, Y"             [lindex $vconvert_200_200_model 3]  4.95 0.05 0.0
101 checkreal "vconvert 200 200, view 2, Z"             [lindex $vconvert_200_200_model 4] 125.0 0.05 0.0
102 checkreal "vconvert 200 200 grid, view 2, X"        [lindex $vconvert_200_200_grid 2] 25.486 0.05 0.0
103 checkreal "vconvert 200 200 grid, view 2, Y"        [lindex $vconvert_200_200_grid 3]  4.856 0.05 0.0
104 checkreal "vconvert 200 200 grid, view 2, Z"        [lindex $vconvert_200_200_grid 4]    0.0 0.05 0.0
105 checkreal "vconvert 0.5 100 0.5 window, view 2, Xp" [lindex $vconvert_25_5_35_win 2]   200.0 1.0  0.0
106 checkreal "vconvert 0.5 100 0.5 window, view 2, Yp" [lindex $vconvert_25_5_35_win 3]   200.0 1.0  0.0
107 checkreal "vconvert 25 4.94 35 grid, view 2, X"     [lindex $vconvert_25_5_35_grid 2] 25.486 0.05 0.0
108 checkreal "vconvert 25 4.94 35 grid, view 2, Y"     [lindex $vconvert_25_5_35_grid 3]  4.856 0.05 0.0
109 checkreal "vconvert 25 4.94 35 grid, view 2, Z"     [lindex $vconvert_25_5_35_grid 4]    0.0 0.05 0.0
110
111 # do not save any image
112 vdump $imagedir/${casename}.png