- Timestamp:
- Apr 28, 2011, 10:53:33 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gui/scripts/vtkviewer2.tcl
r2232 r2234 160 160 y2 -1 161 161 } 162 set _arcball [blt::arcball create 100 100]163 $_arcball matrix { 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 }164 165 162 # Initialize the view to some default parameters. 166 163 array set _view { 167 theta 45 168 phi 45 169 psi 0 164 qx 0 165 qy 0 166 qz 0 167 qw 1 170 168 zoom 1.0 171 169 pan-x 0 … … 174 172 zoom-y 1.0 175 173 } 174 set _arcball [blt::arcball create 100 100] 175 set q [list $_view(qw) $_view(qx) $_view(qy) $_view(qz)] 176 $_arcball quaternion $q 177 176 178 set _limits(vmin) 0.0 177 179 set _limits(vmax) 1.0 … … 182 184 $this-lighting 1 183 185 $this-opacity 1 184 $this-pan-x $_view(pan-x)185 $this-pan-y $_view(pan-y)186 $this-phi $_view(phi)187 $this-psi $_view(psi)188 $this-theta $_view(theta)189 186 $this-volume 1 190 187 $this-wireframe 0 … … 192 189 $this-grid-y 0 193 190 $this-grid-z 0 194 $this-zoom $_view(zoom)195 191 }] 196 192 … … 786 782 # Reset the camera and other view parameters 787 783 # 788 789 set _settings($this-theta) $_view(theta) 790 set _settings($this-phi) $_view(phi) 791 set _settings($this-psi) $_view(psi) 792 set _settings($this-pan-x) $_view(pan-x) 793 set _settings($this-pan-y) $_view(pan-y) 794 set _settings($this-zoom) $_view(zoom) 795 796 set xyz [Euler2XYZ $_view(theta) $_view(phi) $_view(psi)] 797 #SendCmd "camera rotate $xyz" 784 set q [list $_view(qw) $_view(qx) $_view(qy) $_view(qz)] 785 $_arcball quaternion $q 786 SendCmd "camera orient $q" 798 787 PanCamera 799 788 SendCmd "camera mode persp" 800 #SendCmd "camera zoom $_view(zoom)" 789 Zoom reset 790 801 791 FixSettings opacity 802 792 FixSettings grid-x … … 883 873 "in" { 884 874 set _view(zoom) [expr {$_view(zoom)*1.25}] 885 set _settings($this-zoom) $_view(zoom)886 875 SendCmd "camera zoom $_view(zoom)" 887 876 } 888 877 "out" { 889 878 set _view(zoom) [expr {$_view(zoom)*0.8}] 890 set _settings($this-zoom) $_view(zoom)891 879 SendCmd "camera zoom $_view(zoom)" 892 880 } 893 881 "reset" { 894 882 array set _view { 895 theta 45 896 phi 45 897 psi 0 883 qx 0 884 qy 0 885 qz 0 886 qw 1 898 887 zoom 1.0 899 888 pan-x 0 … … 902 891 zoom-y 1.0 903 892 } 893 SendCmd "camera reset all" 904 894 if { $_first != "" } { 905 895 set location [$_first hints camera] 906 896 if { $location != "" } { 907 897 array set _view $location 898 parray _view 908 899 } 909 900 } 910 set xyz [Euler2XYZ $_view(theta) $_view(phi) $_view(psi)] 911 #SendCmd "camera rotate $xyz" 901 set q [list $_view(qw) $_view(qx) $_view(qy) $_view(qz)] 902 $_arcball quaternion $q 903 SendCmd "camera orient $q" 912 904 PanCamera 913 set _settings($this-theta) $_view(theta)914 set _settings($this-phi) $_view(phi)915 set _settings($this-psi) $_view(psi)916 set _settings($this-pan-x) $_view(pan-x)917 set _settings($this-pan-y) $_view(pan-y)918 set _settings($this-zoom) $_view(zoom)919 SendCmd "camera reset all"920 $_arcball reset921 905 } 922 906 } … … 950 934 set _click(x) $x 951 935 set _click(y) $y 952 set _click(theta) $_view(theta)953 set _click(phi) $_view(phi)954 936 } 955 937 "drag" { … … 974 956 } 975 957 set q [$_arcball rotate $x $y $_click(x) $_click(y)] 958 foreach { _view(qw) _view(qx) _view(qy) _view(qz) } $q break 976 959 SendCmd "camera orient $q" 977 960 set _click(x) $x … … 1008 991 set _view(pan-y) [expr $_view(pan-y) + $y] 1009 992 PanCamera 1010 set _settings($this-pan-x) $_view(pan-x)1011 set _settings($this-pan-y) $_view(pan-y)1012 993 return 1013 994 } … … 1027 1008 set _view(pan-y) [expr $_view(pan-y) - $dy] 1028 1009 PanCamera 1029 set _settings($this-pan-x) $_view(pan-x)1030 set _settings($this-pan-y) $_view(pan-y)1031 1010 } 1032 1011 "release" { … … 1339 1318 $inner configure -borderwidth 4 1340 1319 1341 set labels { phi theta psipan-x pan-y zoom }1320 set labels { qx qy qz qw pan-x pan-y zoom } 1342 1321 set row 0 1343 1322 foreach tag $labels { 1344 1323 label $inner.${tag}label -text $tag -font "Arial 9" 1345 1324 entry $inner.${tag} -font "Arial 9" -bg white \ 1346 -textvariable [itcl::scope _ settings($this-$tag)]1325 -textvariable [itcl::scope _view($tag)] 1347 1326 bind $inner.${tag} <KeyPress-Return> \ 1348 1327 [itcl::code $this camera set ${tag}] … … 1369 1348 "set" { 1370 1349 set who [lindex $args 0] 1371 set x $_ settings($this-$who)1350 set x $_view($who) 1372 1351 set code [catch { string is double $x } result] 1373 1352 if { $code != 0 || !$result } { 1374 set _settings($this-$who) $_view($who)1353 set x _view($who) 1375 1354 return 1376 1355 } 1377 1356 switch -- $who { 1378 1357 "pan-x" - "pan-y" { 1379 set _view($who) $_settings($this-$who)1380 1358 PanCamera 1381 1359 } 1382 " phi" - "theta" - "psi" {1383 set _view($who) $_settings($this-$who)1384 set xyz [Euler2XYZ $_view(theta) $_view(phi) $_view(psi)] 1385 #SendCmd "camera rotate $xyz"1360 "qx" - "qy" - "qz" - "qw" { 1361 set q [list $_view(qw) $_view(qx) $_view(qy) $_view(qz)] 1362 $_arcball quaternion $q 1363 SendCmd "camera orient $q" 1386 1364 } 1387 1365 "zoom" { 1388 set _view($who) $_settings($this-$who)1389 1366 SendCmd "camera zoom $_view(zoom)" 1390 1367 }
Note: See TracChangeset
for help on using the changeset viewer.