Changeset 36200
- Timestamp:
- Mar 5, 2009, 1:37:01 AM (15 years ago)
- Location:
- grass/branches/develbranch_6/visualization/nviz/scripts
- Files:
-
- 3 edited
-
flythrough.tcl (modified) (4 diffs)
-
panel_main.tcl (modified) (4 diffs)
-
position_procs.tcl (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
grass/branches/develbranch_6/visualization/nviz/scripts/flythrough.tcl
r34008 r36200 50 50 ################################################################################ 51 51 52 proc mkFlyButtons {BASE frame draw_lab draw_var1 draw_var2 } {52 proc mkFlyButtons {BASE frame draw_lab draw_var1 draw_var2 draw_var4} { 53 53 global Nv_ fly draw_option 54 54 … … 56 56 set fly(EYE_RADIOBUTTON) $draw_var1 57 57 set fly(CENTER_RADIOBUTTON) $draw_var2 58 set fly(C2C_RADIOBUTTON) $draw_var4 58 59 59 60 set fly(FLY_RADIOBUTTON) [radiobutton $BASE.$frame.b3 \ … … 74 75 fly_deselect 75 76 76 pack $draw_lab $draw_var1 $draw_var2 $ fly(FLY_RADIOBUTTON) $fly(FLY_MENUBUTTON) -side left -expand 077 pack $draw_lab $draw_var1 $draw_var2 $draw_var4 $fly(FLY_RADIOBUTTON) $fly(FLY_MENUBUTTON) -side left -expand 0 77 78 78 79 … … 275 276 $fly(EYE_RADIOBUTTON) deselect 276 277 $fly(CENTER_RADIOBUTTON) deselect 278 $fly(C2C_RADIOBUTTON) deselect 277 279 $fly(FLY_RADIOBUTTON) select 278 280 -
grass/branches/develbranch_6/visualization/nviz/scripts/panel_main.tcl
r35073 r36200 176 176 177 177 set draw_var1 [radiobutton $BASE.midt.b1 -text "eye" \ 178 -variable draw_option -value 0 -width 8\178 -variable draw_option -value 0 -width 4 \ 179 179 -command "change_display 1" ] 180 180 181 181 set draw_var2 [radiobutton $BASE.midt.b2 -text "center" \ 182 -variable draw_option -value 1 -width 8\182 -variable draw_option -value 1 -width 6 \ 183 183 -command "change_display 0" ] 184 185 set draw_var4 [radiobutton $BASE.midt.b4 -text "C2C" \ 186 -variable draw_option -value 4 -width 3 \ 187 -command "C2C 1" ] 184 188 $draw_var1 select 185 189 186 190 help $BASE.midt.b1 balloon "Change view by moving eye position" 187 191 help $BASE.midt.b2 balloon "Change view by moving scene center position" 188 192 help $BASE.midt.b4 balloon "Click to change scene center position, scroll to zoom in and out" 189 193 190 194 if {$Nv_(FlyThrough)} { 191 mkFlyButtons $BASE "midt" $draw_lab $draw_var1 $draw_var2 195 mkFlyButtons $BASE "midt" $draw_lab $draw_var1 $draw_var2 $draw_var4 192 196 } else { 193 197 # original code 194 pack $draw_lab $draw_var1 $draw_var2 -side left -expand 0198 pack $draw_lab $draw_var1 $draw_var2 $draw_var4 -side left -expand 0 195 199 } 196 200 help $BASE.midt.b3 balloon "Change view using mouse to control fly-through" … … 502 506 global XY Nv_ 503 507 global Nauto_draw 504 508 509 C2C 0 505 510 set NAME $XY 506 511 set NAME2 [winfo parent $NAME] … … 589 594 } 590 595 591 if {$draw_option == 1 } {596 if {$draw_option == 1 || $draw_option == 4} { 592 597 #Move center of view cross hair 593 598 … … 626 631 return 627 632 } 628 -
grass/branches/develbranch_6/visualization/nviz/scripts/position_procs.tcl
r18066 r36200 21 21 Nset_focus_state 0 22 22 } 23 24 ############################## 25 # Click on canvas to reCenter 26 # C2C code inspired from panel_pos.tcl and panel_rquery.tcl 27 proc C2C { on } { 28 global Nv_ 29 30 if {$on} { 31 change_display 0 32 bind $Nv_(TOP).canvas <Button> {click_recenter %x %y} 33 bind $Nv_(TOP).canvas <MouseWheel> {scroll_zoom %D} 34 if {[tk windowingsystem] eq {x11}} { 35 bind $Nv_(TOP).canvas <Button-4> {scroll_zoom 1} 36 bind $Nv_(TOP).canvas <Button-5> {scroll_zoom -1} 37 } 38 } else { 39 bind $Nv_(TOP).canvas <Button> {} 40 bind $Nv_(TOP).canvas <MouseWheel> {} 41 bind $Nv_(TOP).canvas <Button-4> {} 42 bind $Nv_(TOP).canvas <Button-5> {} 43 } 44 inform "Click to change scene center position, scroll to zoom in and out" 45 } 46 47 # Zoom in and out with mouse scroller 48 proc scroll_zoom { amount } { 49 global Nv_ 50 global Nauto_draw 51 52 set fov [Nget_fov] 53 if {[tk windowingsystem] eq "win32"} { 54 set newzoom [expr {(-$amount/120)+$fov}] 55 } else { 56 set newzoom [expr {(-1*$amount)+$fov}] 57 } 58 59 # Field of view is limited to range 1..120 60 if { $newzoom < 1 } { set newzoom 1 } 61 if { $newzoom > 120 } { set newzoom 120 } 62 63 Nv_scaleCallback $Nv_(main_BASE).bframe.cframe.pers b 0 Nchange_persp $newzoom 64 inform "Perspective has been changed" 65 if {$Nauto_draw == 1} { 66 Ndraw_all 67 } 68 update 69 } 70 71 # Move camera and center according to mouse click on canvas 72 # Camera position is not rotated but just shifted by old/new center deltaX and deltaY 73 proc click_recenter {cx cy} { 74 global Nauto_draw 75 global Nv_ 76 77 # Get real position 78 set cy [expr $Nv_(height) - $cy] 79 set list [Nget_point_on_surf $cx $cy] 80 if {[llength $list] < 4} { 81 inform "Point not on surface" 82 return 83 } 84 set cx [lindex $list 0] 85 set cy [lindex $list 1] 86 87 # Calculate deltas for shifting 88 set from_loc [Nget_real_position 1] 89 set to_loc [Nget_real_position 2] 90 set dx [ expr { $cx - [lindex $to_loc 0] } ] 91 set dy [ expr { $cy - [lindex $to_loc 1] } ] 92 set fe [ expr { $dx + [lindex $from_loc 0] }] 93 set fn [ expr { $dy + [lindex $from_loc 1] }] 94 95 Nset_focus_real $cx $cy [lindex $to_loc 2] 96 Nmove_to_real $fe $fn [lindex $from_loc 2] 97 98 inform "New center of view has been set" 99 move_position 100 if {$Nauto_draw == 1} {Ndraw_all} 101 update 102 } 103
Note:
See TracChangeset
for help on using the changeset viewer.
