Changeset 1463
- Timestamp:
- May 19, 2009, 6:47:11 PM (15 years ago)
- Location:
- trunk/gui/scripts
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gui/scripts/Makefile.in
r1442 r1463 101 101 $(srcdir)/tuples.tcl \ 102 102 $(srcdir)/unirect2d.tcl \ 103 $(srcdir)/unirect3d.tcl \ 103 104 $(srcdir)/units.tcl \ 104 105 $(srcdir)/utils.tcl \ -
trunk/gui/scripts/field.tcl
r1441 r1463 47 47 private variable _comp2dx ;# maps component name => OpenDX data 48 48 private variable _comp2unirect2d ;# maps component name => unirect2d obj 49 private variable _comp2unirect3d ;# maps component name => unirect3d obj 49 50 private variable _comp2style ;# maps component name => style settings 50 51 private variable _comp2cntls ;# maps component name => x,y control points … … 190 191 } 191 192 if {[info exists _comp2unirect2d($what)]} { 193 set mobj [lindex $_comp2unirect2d($what) 0] 192 194 return [$mobj mesh] 193 195 } 194 196 if {[info exists _comp2unirect3d($what)]} { 197 set mobj [lindex $_comp2unirect3d($what) 0] 195 198 return [$mobj mesh] 196 199 } … … 222 225 } 223 226 if {[info exists _comp2unirect3d($what)]} { 224 return [$_comp2unirect3d($what) values]227 return [$_comp2unirect3d($what) blob] 225 228 } 226 229 error "bad option \"$what\": should be [join [lsort [array names _comp2dims]] {, }]" … … 247 250 if {[info exists _comp2unirect2d($what)]} { 248 251 set mobj $_comp2unirect2d($what) 252 return [$mobj blob] 253 } 254 if {[info exists _comp2unirect3d($what)]} { 255 set mobj $_comp2unirect3d($what) 249 256 return [$mobj blob] 250 257 } … … 307 314 if {[info exists _comp2unirect2d($comp)]} { 308 315 set limits [$_comp2unirect2d($comp) limits $which] 316 foreach {vmin vmax} $limits break 317 set axis vaxis 318 } elseif {[info exists _comp2unirect3d($comp)]} { 319 set limits [$_comp2unirect3d($comp) limits $which] 309 320 foreach {vmin vmax} $limits break 310 321 set axis vaxis … … 528 539 foreach name [array names _comp2unirect2d] { 529 540 eval itcl::delete object $_comp2unirect2d($name) 541 } 542 foreach name [array names _comp2unirect3d] { 543 eval itcl::delete object $_comp2unirect3d($name) 530 544 } 531 545 catch {unset _comp2xy} … … 625 639 if {[$_xmlobj element $path] != ""} { 626 640 set element [$_xmlobj element -as type $path] 641 puts stderr "element is $element" 627 642 if { $element == "unirect2d" } { 628 643 set _comp2dims($cname) "2D" … … 843 858 set max 0 844 859 foreach cname [$_field children -type component] { 845 if { [info exists _comp2extents($cname)] } { 846 if { $max < $_comp2extents($cname) } { 847 set max $_comp2extents($cname) 848 } 860 if { [info exists _comp2unirect3d($cname)] } { 861 set value [$_comp2unirect3d($cname) components] 862 } elseif { [info exists _comp2unirect2d($cname)] } { 863 set value [$_comp2unirect2d($cname) components] 864 } elseif { [info exists _comp2extents($cname)] } { 865 set value $_comp2extents($cname) 866 } else { 867 continue 868 } 869 if { $max < $value } { 870 set max $value 849 871 } 850 872 } … … 853 875 if { $what == "component0"} { 854 876 set what [lindex [components -name] 0] 855 return $_comp2extents($what) 877 if { [info exists _comp2unirect3d($what)] } { 878 return [$_comp2unirect3d($what) components] 879 } elseif { [info exists _comp2unirect2d($what)] } { 880 return [$_comp2unirect2d($what) components] 881 } elseif { [info exists _comp2extents($what)] } { 882 return $_comp2extents($what) 883 } 856 884 } 857 885 return $_comp2extents($what) -
trunk/gui/scripts/field2dresult.tcl
r1342 r1463 55 55 } 56 56 array set flags $args 57 if { $flags(-mode) == "heightmap" } { 58 set servers [Rappture::VisViewer::GetServerList "nanovis"] 59 if { $servers == "" } { 60 error "No nanovis servers available" 57 set servers [Rappture::VisViewer::GetServerList "nanovis"] 58 if {"" != $servers && $flags(-mode) != "vtk"} { 59 switch -- $flags(-mode) { 60 "auto" - "heightmap" { 61 itk_component add renderer { 62 Rappture::HeightmapViewer $itk_interior.ren $servers 63 } 64 } 65 "flowvis" { 66 itk_component add renderer { 67 Rappture::FlowvisViewer $itk_interior.ren $servers 68 } 69 } 70 default { 71 puts stderr "unknown render mode \"$flags(-mode)\"" 72 } 73 } 74 pack $itk_component(renderer) -expand yes -fill both 75 # can't connect to rendering farm? then fall back to older viewer 76 if {![$itk_component(renderer) isconnected]} { 77 destroy $itk_component(renderer) 61 78 } 62 itk_component add renderer { 63 Rappture::HeightmapViewer $itk_interior.ren $servers 64 } 65 pack $itk_component(renderer) -expand yes -fill both 66 } else { 79 } 80 81 if {![info exists itk_component(renderer)]} { 67 82 itk_component add renderer { 68 83 Rappture::ContourResult $itk_interior.ren -
trunk/gui/scripts/flowvisviewer.tcl
r1461 r1463 894 894 foreach comp [$dataobj components] { 895 895 # Send the data as one huge base64-encoded mess -- yuck! 896 set data [$dataobj values$comp]896 set data [$dataobj blob $comp] 897 897 set nbytes [string length $data] 898 898 set extents [$dataobj extents $comp] -
trunk/gui/scripts/heightmapviewer.tcl
r1448 r1463 63 63 protected method Connect {} 64 64 protected method Disconnect {} 65 public method isconnected {} 65 66 66 67 protected method SendCmd {string} … … 461 462 } 462 463 464 # 465 # isconnected -- 466 # 467 # Indicates if we are currently connected to the visualization server. 468 # 469 itcl::body Rappture::HeightmapViewer::isconnected {} { 470 return [VisViewer::IsConnected] 471 } 472 463 473 # ---------------------------------------------------------------------- 464 474 # USAGE: Connect ?<host:port>,<host:port>...? … … 503 513 # sent later. 504 514 # 505 itcl::body Rappture:: NanovisViewer::SendCmd {string} {515 itcl::body Rappture::HeightmapViewer::SendCmd {string} { 506 516 if { $_buffering } { 507 517 append _outbuf $string "\n" … … 1219 1229 1220 1230 itcl::body Rappture::HeightmapViewer::Resize { w h } { 1221 #puts stderr "w=$w h=$h"1222 1231 SendCmd "screen $w $h" 1223 1232 } -
trunk/gui/scripts/resultviewer.tcl
r1373 r1463 244 244 set resultMode "vtk" 245 245 } 246 set extents [$dataobj extents] 247 if { $extents > 1 } { 248 set resultMode "flowvis" 249 } 246 250 set w $itk_interior.contour 247 251 Rappture::Field2DResult $w -mode $resultMode … … 255 259 set fmt [expr {("" != $mesh) ? "vtk" : "nanovis"}] 256 260 set extents [$dataobj extents] 257 if { $extents == 3} {261 if { $extents > 1 } { 258 262 set fmt "flowvis" 259 263 } -
trunk/gui/scripts/unirect2d.tcl
r1373 r1463 27 27 public method values {} 28 28 public method hints {{keyword ""}} 29 30 private variable _xmax 0 31 private variable _xmin 0 32 private variable _xnum 0 33 private variable _ymax 0 34 private variable _ymin 0 35 private variable _ynum 0 29 public method components {} { 30 return $_components; 31 } 32 private method GetString { obj path varName } 33 private method GetValue { obj path varName } 34 private method GetSize { obj path varName } 35 36 private variable _axisOrder "x y" 37 private variable _xMax 0 38 private variable _xMin 0 39 private variable _xNum 0 40 private variable _yMax 0 41 private variable _yMin 0 42 private variable _yNum 0 43 private variable _components 1 36 44 private variable _values ""; # BLT vector containing the z-values 37 45 private variable _hints … … 47 55 set path [$field get $cname.mesh] 48 56 49 set mobj [$xmlobj element -as object $path] 50 set _xmin [$mobj get "xaxis.min"] 51 set _xmax [$mobj get "xaxis.max"] 52 set _xnum [$mobj get "xaxis.numpoints"] 53 set _ymin [$mobj get "yaxis.min"] 54 set _ymax [$mobj get "yaxis.max"] 55 set _ynum [$mobj get "yaxis.numpoints"] 57 set m [$xmlobj element -as object $path] 58 GetSize $m "components" _components 59 GetValue $m "xaxis.min" _xMin 60 GetValue $m "xaxis.max" _xMax 61 GetSize $m "xaxis.numpoints" _xNum 62 GetValue $m "yaxis.min" _yMin 63 GetValue $m "yaxis.max" _yMax 64 GetSize $m "yaxis.numpoints" _yNum 56 65 57 66 foreach {key path} { … … 74 83 ymax yaxis.max 75 84 } { 76 set str [$m objget $path]85 set str [$m get $path] 77 86 if {"" != $str} { 78 87 set _hints($key) $str 79 88 } 80 89 } 81 foreach {key} { extents axisorder } {90 foreach {key} { components axisorder } { 82 91 set str [$field get $cname.$key] 83 92 if {"" != $str} { … … 85 94 } 86 95 } 87 itcl::delete object $m obj96 itcl::delete object $m 88 97 89 98 set _values [blt::vector create \#auto] … … 112 121 itcl::body Rappture::Unirect2d::blob {} { 113 122 set data "unirect2d" 114 lappend data "xmin" $_xmin "xmax" $_xmax "xnum" $_xnum 115 lappend data "ymin" $_ymin "ymax" $_ymax "ynum" $_ynum 116 lappend data "xmin" $_xmin "ymin" $_ymin "xmax" $_xmax "ymax" $_ymax 117 foreach key { axisorder extents xunits yunits units } { 123 lappend data "xmin" $_xMin "xmax" $_xMax "xnum" $_xNum 124 lappend data "ymin" $_yMin "ymax" $_yMax "ynum" $_yNum 125 lappend data "xmin" $_xMin "ymin" $_yMin "xmax" $_xMax "ymax" $_yMax 126 lappend data "components" $_components 127 foreach key { axisorder xunits yunits units } { 118 128 set hint [hints $key] 119 129 if { $hint != "" } { … … 124 134 lappend data "values" [$_values range 0 end] 125 135 } 126 return [Rappture::encoding::encode -as zb64 $data]136 return [Rappture::encoding::encode -as zb64 "$data"] 127 137 } 128 138 … … 134 144 # ---------------------------------------------------------------------- 135 145 itcl::body Rappture::Unirect2d::mesh {} { 136 set dx [expr {($_x max - $_xmin) / double($_xnum)}]137 set dy [expr {($_y max - $_ymin) / double($_ynum)}]138 for { set i 0 } { $i < $_x num } { incr i } {139 set x [expr {$_x min + (double($i) * $dx)}]140 for { set j 0 } { $j < $_y num } { incr j } {141 set y [expr {$_y min + (double($i) * $dy)}]146 set dx [expr {($_xMax - $_xMin) / double($_xNum)}] 147 set dy [expr {($_yMax - $_yMin) / double($_yNum)}] 148 for { set i 0 } { $i < $_xNum } { incr i } { 149 set x [expr {$_xMin + (double($i) * $dx)}] 150 for { set j 0 } { $j < $_yNum } { incr j } { 151 set y [expr {$_yMin + (double($i) * $dy)}] 142 152 lappend data $x $y 143 153 } … … 170 180 switch -- $which { 171 181 x - xlin - xlog { 172 set min $_x min173 set max $_x max182 set min $_xMin 183 set max $_xMax 174 184 set axis "xaxis" 175 185 } 176 186 y - ylin - ylog { 177 set min $_y min178 set max $_y max187 set min $_yMin 188 set max $_yMax 179 189 set axis "yaxis" 180 190 } … … 241 251 return [array get _hints] 242 252 } 253 254 255 itcl::body Rappture::Unirect2d::GetSize { obj path varName } { 256 set string [$obj get $path] 257 if { [scan $string "%d" value] != 1 || $value < 0 } { 258 puts stderr "can't get size \"$string\" of \"$path\"" 259 return 260 } 261 upvar $varName size 262 set size $value 263 } 264 265 itcl::body Rappture::Unirect2d::GetValue { obj path varName } { 266 set string [$obj get $path] 267 if { [scan $string "%g" value] != 1 } { 268 return 269 } 270 upvar $varName number 271 set number $value 272 } 273 274 itcl::body Rappture::Unirect2d::GetString { obj path varName } { 275 set string [$obj get $path] 276 if { $string == "" } { 277 puts stderr "can't get string \"$string\" of \"$path\"" 278 return 279 } 280 upvar $varName str 281 set str $string 282 } -
trunk/gui/scripts/unirect3d.tcl
r1373 r1463 28 28 public method hints {{keyword ""}} 29 29 public method order {} { 30 return _order; 31 } 32 public method dimensions {} { 33 return _dim; 34 } 35 private variable _order "x y z" 36 private variable _dimensions 1 37 private variable _xmax 0 38 private variable _xmin 0 39 private variable _xnum 0 40 private variable _ymax 0 41 private variable _ymin 0 42 private variable _ynum 0 43 private variable _zmax 0 44 private variable _zmin 0 45 private variable _znum 0 30 return _axisOrder; 31 } 32 public method components {} { 33 return _components; 34 } 35 private method GetString { obj path varName } 36 private method GetValue { obj path varName } 37 private method GetSize { obj path varName } 38 39 private variable _axisOrder "x y z" 40 private variable _xMax 0 41 private variable _xMin 0 42 private variable _xNum 0 43 private variable _yMax 0 44 private variable _yMin 0 45 private variable _yNum 0 46 private variable _zMax 0 47 private variable _zMin 0 48 private variable _zNum 0 49 private variable _components 1 46 50 private variable _values ""; # BLT vector containing the z-values 47 51 private variable _hints … … 56 60 } 57 61 set path [$field get $cname.mesh] 58 59 set mobj [$xmlobj element -as object $path] 60 set order [$mobj get "axisorder"] 61 if { $order != "" } { 62 set _order $order 63 } 64 set dim [$mobj get "dimensions"] 65 if { $dim != "" } { 66 set _dimensions $dim 67 } 68 set _xmin [$mobj get "xaxis.min"] 69 set _xmax [$mobj get "xaxis.max"] 70 set _xnum [$mobj get "xaxis.numpoints"] 71 set _ymin [$mobj get "yaxis.min"] 72 set _ymax [$mobj get "yaxis.max"] 73 set _ynum [$mobj get "yaxis.numpoints"] 74 set _zmin [$mobj get "zaxis.min"] 75 set _zmax [$mobj get "zaxis.max"] 76 set _znum [$mobj get "zaxis.numpoints"] 77 itcl::delete object $mobj 62 set m [$xmlobj element -as object $path] 63 puts stderr [$m children] 64 GetValue $m "xaxis.max" _xMax 65 GetValue $m "xaxis.min" _xMin 66 GetValue $m "yaxis.max" _yMax 67 GetValue $m "yaxis.min" _yMin 68 GetValue $m "zaxis.max" _zMax 69 GetValue $m "zaxis.min" _zMin 70 GetSize $m "xaxis.numpoints" _xNum 71 GetSize $m "yaxis.numpoints" _yNum 72 GetSize $m "zaxis.numpoints" _zNum 73 GetSize $m "components" _components 74 itcl::delete object $m 78 75 79 76 set _values [blt::vector create #auto] … … 97 94 # ---------------------------------------------------------------------- 98 95 itcl::body Rappture::Unirect3d::blob {} { 99 setdata "unirect3d"100 lappend data "xmin" $_x min "xmax" $_xmax "xnum" $_xnum101 lappend data "ymin" $_y min "ymax" $_ymax "ynum" $_ynum102 lappend data "zmin" $_z min "zmax" $_zmax "znum" $_znum103 lappend data "axisorder" $_axis order104 lappend data " dimensions" $_dim96 lappend data "unirect3d" 97 lappend data "xmin" $_xMin "xmax" $_xMax "xnum" $_xNum 98 lappend data "ymin" $_yMin "ymax" $_yMax "ynum" $_yNum 99 lappend data "zmin" $_zMin "zmax" $_zMax "znum" $_zNum 100 lappend data "axisorder" $_axisOrder 101 lappend data "components" $_components 105 102 if { [$_values length] > 0 } { 106 103 lappend data "values" [$_values range 0 end] 107 104 } 108 return [Rappture::encoding::encode -as zb64 $data]105 return [Rappture::encoding::encode -as zb64 "$data"] 109 106 } 110 107 … … 116 113 # ---------------------------------------------------------------------- 117 114 itcl::body Rappture::Unirect3d::mesh {} { 118 set dx [expr {($_x max - $_xmin) / double($_xnum)}]119 set dy [expr {($_y max - $_ymin) / double($_ynum)}]120 set dz [expr {($_z max - $_zmin) / double($_znum)}]121 foreach {a b c} $_axis order break122 for { set i 0 } { $i < [set _${a} num] } { incr i } {123 set v1 [expr {[set _${a} min] + (double($i) * [set d${a}])}]124 for { set j 0 } { $j < [set _${b} num] } { incr j } {125 set v2 [expr {[set _${b} min] + (double($i) * [set d${b}])}]126 for { set k 0 } { $k < [set _ {$c}num] } { incr k } {127 set v3 [expr {[set _${c} min] + (double($i) * [set d${c}])}]115 set dx [expr {($_xMax - $_xMin) / double($_xNum)}] 116 set dy [expr {($_yMax - $_yMin) / double($_yNum)}] 117 set dz [expr {($_zMax - $_zMin) / double($_zNum)}] 118 foreach {a b c} $_axisOrder break 119 for { set i 0 } { $i < [set _${a}Num] } { incr i } { 120 set v1 [expr {[set _${a}Min] + (double($i) * [set d${a}])}] 121 for { set j 0 } { $j < [set _${b}Num] } { incr j } { 122 set v2 [expr {[set _${b}Min] + (double($i) * [set d${b}])}] 123 for { set k 0 } { $k < [set _${c}Num] } { incr k } { 124 set v3 [expr {[set _${c}Min] + (double($i) * [set d${c}])}] 128 125 lappend data $v1 $v2 $v3 129 126 } … … 157 154 switch -- $which { 158 155 x - xlin - xlog { 159 set min $_x min160 set max $_x max156 set min $_xMin 157 set max $_xMax 161 158 set axis "xaxis" 162 159 } 163 160 y - ylin - ylog { 164 set min $_y min165 set max $_y max161 set min $_yMin 162 set max $_yMax 166 163 set axis "yaxis" 167 164 } 168 165 z - zlin - zlog { 169 set min $_z min170 set max $_z max166 set min $_zMin 167 set max $_zMax 171 168 set axis "zaxis" 172 169 } … … 216 213 zunits zaxis.units 217 214 zscale zaxis.scale 218 dim about.dimension219 215 order about.axisorder 220 216 } { … … 250 246 return [array get _hints] 251 247 } 248 249 itcl::body Rappture::Unirect3d::GetSize { obj path varName } { 250 set string [$obj get $path] 251 if { [scan $string "%d" value] != 1 || $value < 0 } { 252 puts stderr "can't get size \"$string\" of \"$path\"" 253 return 254 } 255 upvar $varName size 256 set size $value 257 } 258 259 itcl::body Rappture::Unirect3d::GetValue { obj path varName } { 260 set string [$obj get $path] 261 if { [scan $string "%g" value] != 1 } { 262 puts stderr "can't get value \"$string\" of \"$path\"" 263 return 264 } 265 upvar $varName number 266 set number $value 267 } 268 269 itcl::body Rappture::Unirect3d::GetString { obj path varName } { 270 set string [$obj get $path] 271 if { $string == "" } { 272 puts stderr "can't get string \"$string\" of \"$path\"" 273 return 274 } 275 upvar $varName str 276 set str $string 277 }
Note: See TracChangeset
for help on using the changeset viewer.