Changeset 5334
- Timestamp:
- Apr 28, 2015 3:39:32 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gui/scripts/vtkmeshviewer.tcl
r5195 r5334 57 57 public method get {args} 58 58 public method isconnected {} 59 public method limits { dataobj }60 59 public method parameters {title args} { 61 60 # do nothing … … 174 173 $_arcball quaternion [ViewToQuaternion] 175 174 176 set _limits(zmin) 0.0177 set _limits(zmax) 1.0178 179 175 array set _settings { 180 176 -axesvisible 1 … … 551 547 itcl::body Rappture::VtkMeshViewer::scale {args} { 552 548 foreach dataobj $args { 553 array set bounds [limits $dataobj] 554 if {![info exists _limits(xmin)] || $_limits(xmin) > $bounds(xmin)} { 555 set _limits(xmin) $bounds(xmin) 556 } 557 if {![info exists _limits(xmax)] || $_limits(xmax) < $bounds(xmax)} { 558 set _limits(xmax) $bounds(xmax) 559 } 560 561 if {![info exists _limits(ymin)] || $_limits(ymin) > $bounds(ymin)} { 562 set _limits(ymin) $bounds(ymin) 563 } 564 if {![info exists _limits(ymax)] || $_limits(ymax) < $bounds(ymax)} { 565 set _limits(ymax) $bounds(ymax) 566 } 567 568 if {![info exists _limits(zmin)] || $_limits(zmin) > $bounds(zmin)} { 569 set _limits(zmin) $bounds(zmin) 570 } 571 if {![info exists _limits(zmax)] || $_limits(zmax) < $bounds(zmax)} { 572 set _limits(zmax) $bounds(zmax) 549 if { ![$dataobj isvalid] } { 550 continue; # Object doesn't contain valid data. 551 } 552 foreach axis { x y z } { 553 set lim [$dataobj limits $axis] 554 if { ![info exists _limits($axis)] } { 555 set _limits($axis) $lim 556 continue 557 } 558 foreach {min max} $lim break 559 foreach {amin amax} $_limits($axis) break 560 if { $amin > $min } { 561 set amin $min 562 } 563 if { $amax < $max } { 564 set amax $max 565 } 566 set _limits($axis) [list $amin $amax] 573 567 } 574 568 } … … 824 818 } 825 819 826 set _limits(zmin) ""827 set _limits(zmax) ""828 820 set _first "" 829 821 SendCmd "dataset visible 0" … … 1226 1218 SendCmd "outline color $rgb" 1227 1219 } 1228 }1229 1230 itcl::body Rappture::VtkMeshViewer::limits { dataobj } {1231 set tag $dataobj1232 if { ![info exists _limits($tag)] } {1233 set data [$dataobj vtkdata -full]1234 if { $data == "" } {1235 continue1236 }1237 set tmpfile file[pid].vtk1238 set f [open "$tmpfile" "w"]1239 fconfigure $f -translation binary -encoding binary1240 puts $f $data1241 close $f1242 set reader [vtkDataSetReader $tag-xvtkDataSetReader]1243 $reader SetFileName $tmpfile1244 $reader Update1245 file delete $tmpfile1246 set output [$reader GetOutput]1247 set _limits($tag) [$output GetBounds]1248 rename $output ""1249 rename $reader ""1250 }1251 foreach { xMin xMax yMin yMax zMin zMax} $_limits($tag) break1252 if {![info exists limits(xmin)] || $limits(xmin) > $xMin} {1253 set limits(xmin) $xMin1254 }1255 if {![info exists limits(xmax)] || $limits(xmax) < $xMax} {1256 set limits(xmax) $xMax1257 }1258 if {![info exists limits(ymin)] || $limits(ymin) > $yMin} {1259 set limits(ymin) $xMin1260 }1261 if {![info exists limits(ymax)] || $limits(ymax) < $yMax} {1262 set limits(ymax) $yMax1263 }1264 if {![info exists limits(zmin)] || $limits(zmin) > $zMin} {1265 set limits(zmin) $zMin1266 }1267 if {![info exists limits(zmax)] || $limits(zmax) < $zMax} {1268 set limits(zmax) $zMax1269 }1270 1271 return [array get limits]1272 1220 } 1273 1221
Note: See TracChangeset
for help on using the changeset viewer.