Changeset 5011


Ignore:
Timestamp:
Feb 12, 2015, 3:31:03 PM (5 years ago)
Author:
ldelgass
Message:

Merge r5001:5003,r5005:5006 from trunk (whitespace)

Location:
branches/1.3
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/1.3

  • branches/1.3/gui/scripts/field.tcl

    r4986 r5011  
    1 # -*- mode: tcl; indent-tabs-mode: nil -*- 
     1# -*- mode: tcl; indent-tabs-mode: nil -*-
    22# ----------------------------------------------------------------------
    33#  COMPONENT: field - extracts data from an XML description of a field
     
    2525#       unirect2d       (deprecated)
    2626#       cloud           (x,y point coordinates) (deprecated)
    27 #       mesh 
     27#       mesh
    2828# 3D Datasets
    29 #       vtk 
     29#       vtk
    3030#       unirect3d       (deprecated)
    3131#       cloud           (x,y,z coordinates) (deprecated)
    32 #       mesh 
     32#       mesh
    3333#       dx              (FIXME: make dx-to-vtk converter work)
    3434#       ucd avs
     
    4646# With <views>, can specify which viewer for specific datasets.  So it's OK
    4747# for the same dataset to be viewed in more than one way.
    48 #  o Any 2D dataset can be viewed as a contour/heightmap. 
     48#  o Any 2D dataset can be viewed as a contour/heightmap.
    4949#  o Any 3D dataset can be viewed as a isosurface.
    50 #  o Any 2D dataset with vector data can be streamlines or flow. 
     50#  o Any 2D dataset with vector data can be streamlines or flow.
    5151#  o Any 3D uniform rectilinear dataset can be viewed as a volume.
    5252#  o Any 3D dataset with vector data can be streamlines or flow.
     
    5959package require BLT
    6060
    61 namespace eval Rappture { 
    62     # forward declaration 
     61namespace eval Rappture {
     62    # forward declaration
    6363}
    6464
     
    6868    private variable _limits;           # maps axis name => {z0 z1} limits
    6969    private variable _field ""
    70     private variable _comp2fldName ;    # cname => field names.
    71     private variable _comp2type ;       # cname => type (e.g. "vectors")
    72     private variable _comp2size ;       # cname => # of components in element
    73     private variable _comp2assoc;       # cname => association (e.g. pointdata)
     70    private variable _comp2fldName ;    # cname => field names.
     71    private variable _comp2type ;       # cname => type (e.g. "vectors")
     72    private variable _comp2size ;       # cname => # of components in element
     73    private variable _comp2assoc;       # cname => association (e.g. pointdata)
    7474    private variable _fld2Components;   # field name => number of components
    7575    private variable _fld2Label;        # field name => label
    7676    private variable _fld2Units;        # field name => units
    77     private variable _hints 
     77    private variable _hints
    7878    private variable _viewer "";        # Hints which viewer to use
    7979    private variable _xv "";            # For 1D meshes only.  Holds the points
     
    8383    private variable _alwaysConvertDX 0;
    8484
    85     constructor {xmlobj path} { 
    86         # defined below
    87     }
    88     destructor { 
    89         # defined below
     85    constructor {xmlobj path} {
     86        # defined below
     87    }
     88    destructor {
     89        # defined below
    9090    }
    9191    public method blob { cname }
     
    127127    }
    128128    public method viewer {} {
    129         return $_viewer
     129        return $_viewer
    130130    }
    131131    protected method Build {}
    132132    protected method _getValue {expr}
    133133
    134     private variable _path "";          # Path of this object in the XML 
     134    private variable _path "";          # Path of this object in the XML
    135135    private variable _units ""   ;      # system of units for this field
    136136    private variable _zmax 0     ;# length of the device
     
    144144    private variable _comp2style ;# maps component name => style settings
    145145    private variable _comp2cntls ;# maps component name => x,y control points
    146     private variable _comp2extents 
    147     private variable _comp2limits;      #  Array of limits per component
    148     private variable _type "" 
    149     private variable _comp2flowhints 
     146    private variable _comp2extents
     147    private variable _comp2limits;        #  Array of limits per component
     148    private variable _type ""
     149    private variable _comp2flowhints
    150150    private variable _comp2mesh
    151151    private common _counter 0    ;# counter for unique vector names
    152152
    153     private method AvsToVtk { cname contents } 
    154     private method DicomToVtk { cname contents } 
    155     private method BuildPointsOnMesh { cname } 
    156     protected method GetAssociation { cname } 
    157     protected method GetTypeAndSize { cname } 
    158     protected method ReadVtkDataSet { cname contents } 
    159     private method InitHints {} 
    160 
    161     private method VerifyVtkDataSet { contents } 
     153    private method AvsToVtk { cname contents }
     154    private method DicomToVtk { cname contents }
     155    private method BuildPointsOnMesh { cname }
     156    protected method GetAssociation { cname }
     157    protected method GetTypeAndSize { cname }
     158    protected method ReadVtkDataSet { cname contents }
     159    private method InitHints {}
     160
     161    private method VerifyVtkDataSet { contents }
    162162    private method VectorLimits { vector vectorsize {comp -1} }
    163163    private variable _values ""
     
    229229    }
    230230    foreach name [array names _comp2mesh] {
    231         # Data is in the form of a mesh and a vector.
    232         foreach { mesh vector } $_comp2mesh($name) break
    233         # Release the mesh (may be shared)
     231        # Data is in the form of a mesh and a vector.
     232        foreach { mesh vector } $_comp2mesh($name) break
     233        # Release the mesh (may be shared)
    234234        set class [$mesh info class]
    235235        ${class}::release $mesh
    236         # Destroy the vector
     236        # Destroy the vector
    237237        blt::vector destroy $vector
    238238    }
     
    285285    # Now handle the tests.
    286286    switch -- $params(what) {
    287         -name { 
     287        -name {
    288288            set rlist $components
    289289        }
    290         -style { 
     290        -style {
    291291            foreach cname $components {
    292292                if { [info exists _comp2style($cname)] } {
    293                     lappend rlist $_comp2style($cname) 
     293                    lappend rlist $_comp2style($cname)
    294294                }
    295295            }
     
    314314    }
    315315    if { [info exists _comp2vtk($cname)] } {
    316         # FIXME: extract mesh from VTK file data.
     316        # FIXME: extract mesh from VTK file data.
    317317        if { $_comp2dims($cname) == "1D" } {
    318318            return $_xv
     
    353353    # VTK file data
    354354    if { [info exists _comp2vtk($cname)] } {
    355         # FIXME: extract the values from the VTK file data
     355        # FIXME: extract the values from the VTK file data
    356356        if { $_comp2dims($cname) == "1D" } {
    357357            return $_values
     
    361361    # Points-on-mesh
    362362    if { [info exists _comp2mesh($cname)] } {
    363         set vector [lindex $_comp2mesh($cname) 1]
     363        set vector [lindex $_comp2mesh($cname) 1]
    364364        return [$vector range 0 end]
    365365    }
     
    389389    }
    390390    if { [info exists _comp2vtk($cname)] } {
    391         error "blob not implemented for VTK file data"
     391        error "blob not implemented for VTK file data"
    392392    }
    393393    if {[info exists _comp2dx($cname)]} {
     
    408408# USAGE: valueLimits <cname>
    409409#
    410 # Returns an array for the requested component with a list {min max} 
     410# Returns an array for the requested component with a list {min max}
    411411# representing the limits for each axis.
    412412# ----------------------------------------------------------------------
     
    432432            1D {
    433433                switch -- $which {
    434                     x - xlin { 
    435                         set pos 0; set log 0; set axis x
    436                     }
    437                     xlog { 
    438                         set pos 0; set log 1; set axis x
    439                     }
    440                     y - ylin - v - vlin { 
    441                         set pos 1; set log 0; set axis y
    442                     }
    443                     ylog - vlog { 
    444                         set pos 1; set log 1; set axis y
    445                     }
     434                    x - xlin {
     435                        set pos 0; set log 0; set axis x
     436                    }
     437                    xlog {
     438                        set pos 0; set log 1; set axis x
     439                    }
     440                    y - ylin - v - vlin {
     441                        set pos 1; set log 0; set axis y
     442                    }
     443                    ylog - vlog {
     444                        set pos 1; set log 1; set axis y
     445                    }
    446446                    default {
    447447                        error "bad axis \"$which\": should be x, xlin, xlog, y, ylin, ylog, v, vlin, vlog"
     
    480480            default {
    481481                if {[info exists _comp2limits($cname)]} {
    482                     array set limits $_comp2limits($cname)
    483                     switch -- $which {
     482                    array set limits $_comp2limits($cname)
     483                    switch -- $which {
    484484                        x - xlin - xlog {
    485485                            set axis x
    486                             foreach {axisMin axisMax} $limits(x) break
     486                            foreach {axisMin axisMax} $limits(x) break
    487487                        }
    488488                        y - ylin - ylog {
    489489                            set axis y
    490                             foreach {axisMin axisMax} $limits(y) break
     490                            foreach {axisMin axisMax} $limits(y) break
    491491                        }
    492492                        z - zlin - zlog {
    493493                            set axis z
    494                             foreach {axisMin axisMax} $limits(z) break
     494                            foreach {axisMin axisMax} $limits(z) break
    495495                        }
    496496                        v - vlin - vlog {
    497497                            set axis v
    498                             foreach {axisMin axisMax} $limits(v) break
    499                         }
    500                         default {
    501                             if { ![info exists limits($which)] } {
    502                                 error "limits: unknown axis \"$which\""
    503                             }
     498                            foreach {axisMin axisMax} $limits(v) break
     499                        }
     500                        default {
     501                            if { ![info exists limits($which)] } {
     502                                error "limits: unknown axis \"$which\""
     503                            }
    504504                            set axis v
    505                             foreach {axisMin axisMax} $limits($which) break
    506                         }
    507                     }
     505                            foreach {axisMin axisMax} $limits($which) break
     506                        }
     507                    }
    508508                } else {
    509509                    set axisMin 0  ;# HACK ALERT! must be OpenDX data
     
    545545itcl::body Rappture::Field::fieldlimits {} {
    546546    foreach cname [array names _comp2limits] {
    547         array set limits $_comp2limits($cname) 
     547        array set limits $_comp2limits($cname)
    548548        foreach fname [fieldnames $cname] {
    549549            if { ![info exists limits($fname)] } {
     
    571571    return ""
    572572}
    573  
     573
    574574# ----------------------------------------------------------------------
    575575# USAGE: controls get ?<name>?
     
    779779        set type ""
    780780        if { ([$_field element $cname.constant] != "" &&
    781               [$_field element $cname.domain] != "") ||
    782               [$_field element $cname.xy] != "" } {
     781              [$_field element $cname.domain] != "") ||
     782              [$_field element $cname.xy] != "" } {
    783783            set type "1D"
    784784        } elseif { [$_field element $cname.mesh] != "" &&
    785                    [$_field element $cname.values] != ""} {
     785                   [$_field element $cname.values] != ""} {
    786786            set type "points-on-mesh"
    787787        } elseif { [$_field element $cname.vtk] != ""} {
    788             set type "vtk"
    789             set viewer [$_field get "about.view"]
    790             if { $viewer != "" } {
    791                 set _viewer $viewer
    792             }
     788            set type "vtk"
     789            set viewer [$_field get "about.view"]
     790            if { $viewer != "" } {
     791                set _viewer $viewer
     792            }
    793793        } elseif {[$_field element $cname.opendx] != ""} {
    794794            global env
    795795            if { [info exists env(VTKVOLUME)] } {
    796796                set _viewer "vtkvolume"
    797             } 
     797            }
    798798            set type "opendx"
    799799        } elseif {[$_field element $cname.dx] != ""} {
     
    807807        } elseif {[$_field element $cname.dicom] != ""} {
    808808            set type "dicom"
    809         }
     809        }
    810810        set _comp2style($cname) ""
    811811        if { $type == "" } {
     
    817817            set extents [$_field get $cname.extents]
    818818        } else {
    819             set extents 1 
     819            set extents 1
    820820        }
    821821        set _comp2extents($cname) $extents
     
    880880            }
    881881        } elseif {$type == "points-on-mesh"} {
    882             if { ![BuildPointsOnMesh $cname] } {
     882            if { ![BuildPointsOnMesh $cname] } {
    883883                continue;               # Ignore this component
    884884            }
     
    981981        return 0
    982982    }
    983     # Sanity check.  Verify that all components of the field have the same 
     983    # Sanity check.  Verify that all components of the field have the same
    984984    # dimension.
    985985    set dim ""
     
    998998    #        the label and units for each field will be specified there.
    999999    #
    1000     # FIXME: Test that every <field><component> has the same field names, 
     1000    # FIXME: Test that every <field><component> has the same field names,
    10011001    #        units, components.
    10021002    #
     
    10701070# isunirect2d  --
    10711071#
    1072 # Returns if the field is a unirect2d object. 
     1072# Returns if the field is a unirect2d object.
    10731073#
    10741074itcl::body Rappture::Field::isunirect2d { } {
     
    10791079# isunirect3d  --
    10801080#
    1081 # Returns if the field is a unirect3d object. 
     1081# Returns if the field is a unirect3d object.
    10821082#
    10831083itcl::body Rappture::Field::isunirect3d { } {
     
    10881088# flowhints  --
    10891089#
    1090 # Returns the hints associated with a flow vector field. 
     1090# Returns the hints associated with a flow vector field.
    10911091#
    10921092itcl::body Rappture::Field::flowhints { cname } {
     
    11001100# style  --
    11011101#
    1102 # Returns the style associated with a component of the field. 
     1102# Returns the style associated with a component of the field.
    11031103#
    11041104itcl::body Rappture::Field::style { cname } {
     
    11371137# extents --
    11381138#
    1139 # Returns if the field is a unirect2d object. 
     1139# Returns if the field is a unirect2d object.
    11401140#
    11411141itcl::body Rappture::Field::extents {{cname -overall}} {
     
    11531153        }
    11541154        return $max
    1155     } 
     1155    }
    11561156    if { $cname == "component0"} {
    11571157        set cname [lindex [components -name] 0]
     
    11701170    set f [open "$tmpfile" "w"]
    11711171    fconfigure $f -translation binary -encoding binary
    1172     puts $f $contents 
     1172    puts $f $contents
    11731173    close $f
    11741174
     
    11871187    set dataAttrs [$dataset GetPointData]
    11881188    if { $dataAttrs == ""} {
    1189         puts stderr "WARNING: No point data found in \"$_path\""
     1189        puts stderr "WARNING: No point data found in \"$_path\""
    11901190        rename $reader ""
    11911191        return 0
     
    12041204    set f [open "$tmpfile" "w"]
    12051205    fconfigure $f -translation binary -encoding binary
    1206     puts $f $contents 
     1206    puts $f $contents
    12071207    close $f
    12081208
     
    12241224    set _dim 0
    12251225    if { $xmax > $xmin } {
    1226         incr _dim
     1226        incr _dim
    12271227    }
    12281228    if { $ymax > $ymin } {
    1229         incr _dim
     1229        incr _dim
    12301230    }
    12311231    if { $zmax > $zmin } {
    1232         incr _dim
     1232        incr _dim
    12331233    }
    12341234    if { $_viewer == "" } {
    1235         if { $_dim == 2 } {
    1236             set _viewer contour
    1237         } else {
    1238             set _viewer isosurface
    1239         }
     1235        if { $_dim == 2 } {
     1236            set _viewer contour
     1237        } else {
     1238            set _viewer isosurface
     1239        }
    12401240    }
    12411241    set _comp2dims($cname) ${_dim}D
     
    12451245        for { set i 0 } { $i < $numPoints } { incr i } {
    12461246            set point [$dataset GetPoint $i]
    1247             $xv append [lindex $point 0] 
     1247            $xv append [lindex $point 0]
    12481248        }
    12491249        set yv [blt::vector create \#auto]
     
    12621262        set numTuples [$array GetNumberOfTuples]
    12631263        for { set i 0 } { $i < $numTuples } { incr i } {
    1264             $yv append [$array GetComponent $i 0] 
     1264            $yv append [$array GetComponent $i 0]
    12651265        }
    12661266        $xv sort $yv
    12671267        set _comp2xy($cname) [list $xv $yv]
    12681268    }
    1269     lappend limits x [list $xmin $xmax] 
    1270     lappend limits y [list $ymin $ymax] 
     1269    lappend limits x [list $xmin $xmax]
     1270    lappend limits y [list $ymin $ymax]
    12711271    lappend limits z [list $zmin $zmax]
    12721272    set dataAttrs [$dataset GetPointData]
    12731273    if { $dataAttrs == ""} {
    1274         puts stderr "WARNING: No point data found in \"$_path\""
     1274        puts stderr "WARNING: No point data found in \"$_path\""
    12751275        rename $reader ""
    12761276        return 0
     
    12801280    set numArrays [$dataAttrs GetNumberOfArrays]
    12811281    if { $numArrays > 0 } {
    1282         for {set i 0} {$i < [$dataAttrs GetNumberOfArrays] } {incr i} {
    1283             set array [$dataAttrs GetArray $i]
    1284             set fname  [$dataAttrs GetArrayName $i]
    1285             foreach {min max} [$array GetRange -1] break
     1282        for {set i 0} {$i < [$dataAttrs GetNumberOfArrays] } {incr i} {
     1283            set array [$dataAttrs GetArray $i]
     1284            set fname  [$dataAttrs GetArrayName $i]
     1285            foreach {min max} [$array GetRange -1] break
    12861286            if {$i == 0} {
    12871287                set vmin $min
    12881288                set vmax $max
    12891289            }
    1290             lappend limits $fname [list $min $max]
     1290            lappend limits $fname [list $min $max]
    12911291            set _fld2Units($fname) ""
    1292             set _fld2Label($fname) $fname
     1292            set _fld2Label($fname) $fname
    12931293            # Let the VTK file override the <type> designated.
    12941294            set _fld2Components($fname) [$array GetNumberOfComponents]
    12951295            lappend _comp2fldName($cname) $fname
    1296         }
    1297     }
    1298    
     1296        }
     1297    }
     1298
    12991299    lappend limits v [list $vmin $vmax]
    13001300    set _comp2limits($cname) $limits
     
    13061306# vtkdata --
    13071307#
    1308 #       Returns a string representing the mesh and field data for a specific
    1309 #       component in the legacy VTK file format.
     1308#        Returns a string representing the mesh and field data for a specific
     1309#        component in the legacy VTK file format.
    13101310#
    13111311itcl::body Rappture::Field::vtkdata {cname} {
     
    13131313        set cname "component"
    13141314    }
    1315     # DX: Convert DX to VTK 
     1315    # DX: Convert DX to VTK
    13161316    if {[info exists _comp2dx($cname)]} {
    13171317        set data $_comp2dx($cname)
     
    13191319        return [Rappture::DxToVtk $data]
    13201320    }
    1321     # Unirect3d: isosurface 
     1321    # Unirect3d: isosurface
    13221322    if {[info exists _comp2unirect3d($cname)]} {
    13231323        return [$_comp2unirect3d($cname) vtkdata]
    13241324    }
    1325     # VTK file data: 
     1325    # VTK file data:
    13261326    if { [info exists _comp2vtk($cname)] } {
    13271327        return $_comp2vtk($cname)
     
    13291329    # Points on mesh:  Construct VTK file output.
    13301330    if { [info exists _comp2mesh($cname)] } {
    1331         # Data is in the form mesh and vector
    1332         foreach {mesh vector} $_comp2mesh($cname) break
     1331        # Data is in the form mesh and vector
     1332        foreach {mesh vector} $_comp2mesh($cname) break
    13331333        set label $cname
    13341334        regsub -all { } $label {_} label
    1335         append out "# vtk DataFile Version 3.0\n"
    1336         append out "[hints label]\n"
    1337         append out "ASCII\n"
    1338         append out [$mesh vtkdata]
     1335        append out "# vtk DataFile Version 3.0\n"
     1336        append out "[hints label]\n"
     1337        append out "ASCII\n"
     1338        append out [$mesh vtkdata]
    13391339
    13401340        if { $_comp2assoc($cname) == "pointdata" } {
     
    13771377            }
    13781378        }
    1379         append out [$vector range 0 end] 
     1379        append out [$vector range 0 end]
    13801380        append out "\n"
    13811381        if 0 {
    13821382            VerifyVtkDataSet $out
    13831383        }
    1384         return $out
     1384        return $out
    13851385    }
    13861386    error "can't find vtkdata for $cname. This method should only be called by the vtkheightmap widget"
     
    13901390# BuildPointsOnMesh --
    13911391#
    1392 #       Parses the field XML description to build a mesh and values vector
    1393 #       representing the field.  Right now we handle the deprecated types
    1394 #       of "cloud", "unirect2d", and "unirect3d" (mostly for flows).
     1392#        Parses the field XML description to build a mesh and values vector
     1393#        representing the field.  Right now we handle the deprecated types
     1394#        of "cloud", "unirect2d", and "unirect3d" (mostly for flows).
    13951395#
    13961396itcl::body Rappture::Field::BuildPointsOnMesh {cname} {
     
    14011401    set path [$_field get $cname.mesh]
    14021402    if {[$_xmlobj element $path] == ""} {
    1403         # Unknown mesh designated.
    1404         return 0
     1403        # Unknown mesh designated.
     1404        return 0
    14051405    }
    14061406    set viewer [$_field get "about.view"]
     
    14221422    # Handle bizarre cases that hopefully will be deprecated.
    14231423    if { $element == "unirect3d" } {
    1424         # Special case: unirect3d (should be deprecated) + flow.
     1424        # Special case: unirect3d (should be deprecated) + flow.
    14251425        if { [$_field element $cname.extents] != "" } {
    14261426            set vectorsize [$_field get $cname.extents]
    14271427        } else {
    1428             set vectorsize 1 
     1428            set vectorsize 1
    14291429        }
    14301430        set _type unirect3d
    1431         set _dim 3
     1431        set _dim 3
    14321432        if { $_viewer == "" } {
    14331433            set _viewer flowvis
    14341434        }
    1435         set _comp2dims($cname) "3D"
    1436         set _comp2unirect3d($cname) \
    1437             [Rappture::Unirect3d \#auto $_xmlobj $_field $cname $vectorsize]
    1438         set _comp2style($cname) [$_field get $cname.style]
     1435        set _comp2dims($cname) "3D"
     1436        set _comp2unirect3d($cname) \
     1437            [Rappture::Unirect3d \#auto $_xmlobj $_field $cname $vectorsize]
     1438        set _comp2style($cname) [$_field get $cname.style]
    14391439        set limits {}
    14401440        foreach axis { x y z } {
    14411441            lappend limits $axis [$_comp2unirect3d($cname) limits $axis]
    14421442        }
    1443         # Get the data limits 
     1443        # Get the data limits
    14441444        set vector [$_comp2unirect3d($cname) valuesObj]
    14451445        set minmax [VectorLimits $vector $vectorsize]
     
    14471447        lappend limits v      $minmax
    14481448        set _comp2limits($cname) $limits
    1449         if {[$_field element $cname.flow] != ""} {
    1450             set _comp2flowhints($cname) \
    1451                 [Rappture::FlowHints ::\#auto $_field $cname $_units]
    1452         }
    1453         incr _counter
    1454         return 1
     1449        if {[$_field element $cname.flow] != ""} {
     1450            set _comp2flowhints($cname) \
     1451                [Rappture::FlowHints ::\#auto $_field $cname $_units]
     1452        }
     1453        incr _counter
     1454        return 1
    14551455    }
    14561456    if { $element == "unirect2d" && [$_field element $cname.flow] != "" } {
    1457         # Special case: unirect2d (normally deprecated) + flow.
     1457        # Special case: unirect2d (normally deprecated) + flow.
    14581458        if { [$_field element $cname.extents] != "" } {
    14591459            set vectorsize [$_field get $cname.extents]
    14601460        } else {
    1461             set vectorsize 1 
     1461            set vectorsize 1
    14621462        }
    14631463        set _type unirect2d
    1464         set _dim 2
     1464        set _dim 2
    14651465        if { $_viewer == "" } {
    14661466            set _viewer "flowvis"
    14671467        }
    1468         set _comp2dims($cname) "2D"
    1469         set _comp2unirect2d($cname) \
    1470             [Rappture::Unirect2d \#auto $_xmlobj $path]
    1471         set _comp2style($cname) [$_field get $cname.style]
    1472         set _comp2flowhints($cname) \
    1473             [Rappture::FlowHints ::\#auto $_field $cname $_units]
    1474         set _values [$_field get $cname.values]
     1468        set _comp2dims($cname) "2D"
     1469        set _comp2unirect2d($cname) \
     1470            [Rappture::Unirect2d \#auto $_xmlobj $path]
     1471        set _comp2style($cname) [$_field get $cname.style]
     1472        set _comp2flowhints($cname) \
     1473            [Rappture::FlowHints ::\#auto $_field $cname $_units]
     1474        set _values [$_field get $cname.values]
    14751475        set limits {}
    14761476        foreach axis { x y z } {
     
    14841484        blt::vector destroy $xv
    14851485        set _comp2limits($cname) $limits
    1486         incr _counter
    1487         return 1
     1486        incr _counter
     1487        return 1
    14881488    }
    14891489    switch -- $element {
    1490         "cloud" {
    1491             set mesh [Rappture::Cloud::fetch $_xmlobj $path]
     1490        "cloud" {
     1491            set mesh [Rappture::Cloud::fetch $_xmlobj $path]
    14921492            set _type cloud
    1493         }
    1494         "mesh" {
    1495             set mesh [Rappture::Mesh::fetch $_xmlobj $path]
     1493        }
     1494        "mesh" {
     1495            set mesh [Rappture::Mesh::fetch $_xmlobj $path]
    14961496            set _type mesh
    1497         }           
    1498         "unirect2d" {
     1497        }
     1498        "unirect2d" {
    14991499            if { $_viewer == "" } {
    15001500                set _viewer "heightmap"
    15011501            }
    1502             set mesh [Rappture::Unirect2d::fetch $_xmlobj $path]
     1502            set mesh [Rappture::Unirect2d::fetch $_xmlobj $path]
    15031503            set _type unirect2d
    1504         }
     1504        }
    15051505    }
    15061506    if { ![$mesh isvalid] } {
     
    15101510    set _dim [$mesh dimensions]
    15111511    if { $_dim == 3 } {
    1512         set dim 0 
     1512        set dim 0
    15131513        foreach axis {x y z} {
    15141514            foreach {min max} [$mesh limits $axis] {
     
    15271527        return 0
    15281528
    1529         # 1D data: Create vectors for graph widget.
    1530         # The prophet tool currently outputs 1D clouds with fields
     1529        # 1D data: Create vectors for graph widget.
     1530        # The prophet tool currently outputs 1D clouds with fields
    15311531        # Band Structure Lab used to (see isosurface1 test in rappture-bat)
    1532         #
    1533         # Is there a natural growth path in generating output from 1D to
    1534         # higher dimensions?  If there isn't, let's kill this in favor
    1535         # or explicitly using a <curve> instead.  Otherwise, the features
    1536         # (methods such as xmarkers) or the <curve> need to be added
    1537         # to the <field>.
    1538         #
    1539         #set xv [blt::vector create x$_counter]
    1540         #set yv [blt::vector create y$_counter]
     1532        #
     1533        # Is there a natural growth path in generating output from 1D to
     1534        # higher dimensions?  If there isn't, let's kill this in favor
     1535        # or explicitly using a <curve> instead.  Otherwise, the features
     1536        # (methods such as xmarkers) or the <curve> need to be added
     1537        # to the <field>.
     1538        #
     1539        #set xv [blt::vector create x$_counter]
     1540        #set yv [blt::vector create y$_counter]
    15411541
    15421542        # This only works with a Cloud mesh type, since the points method
    15431543        # is not implemented for the Mesh object
    1544         #$xv set [$mesh points]
     1544        #$xv set [$mesh points]
    15451545        # TODO: Put field values in yv
    1546         #set _comp2dims($cname) "1D"
    1547         #set _comp2xy($cname) [list $xv $yv]
    1548         #incr _counter
    1549         #return 1
    1550     } 
     1546        #set _comp2dims($cname) "1D"
     1547        #set _comp2xy($cname) [list $xv $yv]
     1548        #incr _counter
     1549        #return 1
     1550    }
    15511551    if {$_dim == 2} {
    1552         # 2D data: By default surface or contour plot using heightmap widget.
    1553         set v [blt::vector create \#auto]
    1554         $v set [$_field get $cname.values]
     1552        # 2D data: By default surface or contour plot using heightmap widget.
     1553        set v [blt::vector create \#auto]
     1554        $v set [$_field get $cname.values]
    15551555        if { [$v length] == 0 } {
    15561556            return 0
     
    15791579            }
    15801580        }
    1581         set _comp2dims($cname) "[$mesh dimensions]D"
    1582         set _comp2mesh($cname) [list $mesh $v]
    1583         set _comp2style($cname) [$_field get $cname.style]
     1581        set _comp2dims($cname) "[$mesh dimensions]D"
     1582        set _comp2mesh($cname) [list $mesh $v]
     1583        set _comp2style($cname) [$_field get $cname.style]
    15841584        if {[$_field element $cname.flow] != ""} {
    15851585            set _comp2flowhints($cname) \
    15861586                [Rappture::FlowHints ::\#auto $_field $cname $_units]
    15871587        }
    1588         incr _counter
    1589         array unset _comp2limits $cname
     1588        incr _counter
     1589        array unset _comp2limits $cname
    15901590        foreach axis { x y z } {
    15911591            lappend _comp2limits($cname) $axis [$mesh limits $axis]
     
    15941594        lappend _comp2limits($cname) $cname $minmax
    15951595        lappend _comp2limits($cname) v $minmax
    1596         return 1
    1597     } 
     1596        return 1
     1597    }
    15981598    if {$_dim == 3} {
    1599         # 3D data: By default isosurfaces plot using isosurface widget.
     1599        # 3D data: By default isosurfaces plot using isosurface widget.
    16001600        if { $_viewer == "" } {
    16011601            set _viewer "isosurface"
    16021602        }
    1603         set v [blt::vector create \#auto]
    1604         $v set [$_field get $cname.values]
     1603        set v [blt::vector create \#auto]
     1604        $v set [$_field get $cname.values]
    16051605        if { [$v length] == 0 } {
    16061606            return 0
     
    16401640        lappend _comp2limits($cname) $cname $minmax
    16411641        lappend _comp2limits($cname) v $minmax
    1642         return 1
     1642        return 1
    16431643    }
    16441644    error "unhandled case in field dim=$_dim element=$element"
     
    17321732        "tcoords"              2
    17331733        "tensors"              9
    1734         "vectors"              3 
     1734        "vectors"              3
    17351735    }
    17361736    set type [$_field get $cname.elemtype]
    17371737    if { $type == "" } {
    17381738        set type "scalars"
    1739     } 
     1739    }
    17401740    if { ![info exists type2components($type)] } {
    17411741        error "unknown <elemtype> \"$type\" in field"
     
    17541754        set _comp2assoc($cname) "pointdata"
    17551755        return
    1756     } 
     1756    }
    17571757    switch -- $assoc {
    17581758        "pointdata" - "celldata" - "fielddata" {
  • branches/1.3/gui/scripts/mesh.tcl

    r4788 r5011  
    1 # -*- mode: tcl; indent-tabs-mode: nil -*- 
     1# -*- mode: tcl; indent-tabs-mode: nil -*-
    22
    33# ----------------------------------------------------------------------
     
    1818package require Itcl
    1919
    20 namespace eval Rappture { 
    21     # forward declaration 
     20namespace eval Rappture {
     21    # forward declaration
    2222}
    2323
    2424itcl::class Rappture::Mesh {
    25     private variable _xmlobj ""  ;      # Ref to XML obj with device data
    26     private variable _mesh ""    ;      # Lib obj representing this mesh
    27     private variable _dim       0;      # Dimension of mesh (1, 2, or 3)
    28     private variable _type "";          # Indicates the type of mesh.
    29     private variable _axis2units;       # System of units for x, y, z
    30     private variable _axis2labels;      # 
    31     private variable _hints 
    32     private variable _limits        ;   # Array of mesh limits. Keys are
    33                                         # xmin, xmax, ymin, ymax, ...
    34     private variable _numPoints 0   ;   # # of points in mesh
    35     private variable _numCells 0   ;    # # of cells in mesh
    36     private variable _vtkdata "";       # Mesh in vtk file format.
     25    private variable _xmlobj ""  ;      # Ref to XML obj with device data
     26    private variable _mesh ""    ;      # Lib obj representing this mesh
     27    private variable _dim        0;     # Dimension of mesh (1, 2, or 3)
     28    private variable _type "";          # Indicates the type of mesh.
     29    private variable _axis2units;       # System of units for x, y, z
     30    private variable _axis2labels;      #
     31    private variable _hints
     32    private variable _limits        ;   # Array of mesh limits. Keys are
     33                                        # xmin, xmax, ymin, ymax, ...
     34    private variable _numPoints 0   ;   # # of points in mesh
     35    private variable _numCells 0   ;    # # of cells in mesh
     36    private variable _vtkdata "";       # Mesh in vtk file format.
    3737    private variable _isValid 0;        # Indicates if the mesh is valid.
    38     constructor {xmlobj path} { 
    39         # defined below
    40     }
    41     destructor { 
    42         # defined below
     38    constructor {xmlobj path} {
     39        # defined below
     40    }
     41    destructor {
     42        # defined below
    4343    }
    4444    public method points {}
     
    5858    public method vtkdata {{what -partial}}
    5959    public method type {} {
    60         return $_type
     60        return $_type
    6161    }
    6262    public method numpoints {} {
    63         return $_numPoints
     63        return $_numPoints
    6464    }
    6565    public method numcells {} {
    66         return $_numCells
    67     }
    68 
    69     private common _xp2obj       ;      # used for fetch/release ref counting
    70     private common _obj2ref      ;      # used for fetch/release ref counting
    71     private variable _xv        ""
    72     private variable _yv        ""
    73     private variable _zv        ""
    74     private variable _xCoords   "";     # For the blt contour only
    75     private variable _yCoords   "";     # For the blt contour only
    76    
     66        return $_numCells
     67    }
     68
     69    private common _xp2obj       ;        # used for fetch/release ref counting
     70    private common _obj2ref      ;        # used for fetch/release ref counting
     71    private variable _xv        ""
     72    private variable _yv        ""
     73    private variable _zv        ""
     74    private variable _xCoords        "";  # For the blt contour only
     75    private variable _yCoords        "";  # For the blt contour only
     76
    7777    private method ReadNodesElements {path}
    78     private method GetDimension { path } 
    79     private method GetDouble { path } 
    80     private method GetInt { path } 
    81     private method InitHints {} 
     78    private method GetDimension { path }
     79    private method GetDouble { path }
     80    private method GetInt { path }
     81    private method InitHints {}
    8282    private method ReadGrid { path }
    8383    private method ReadUnstructuredGrid { path }
     
    164164    foreach u $units axis { x y z } {
    165165        if { $u != "" } {
    166             set _axis2units($axis) $u 
     166            set _axis2units($axis) $u
    167167        } else {
    168             set _axis2units($axis) $first 
     168            set _axis2units($axis) $first
    169169        }
    170170    }
     
    179179    # Meshes comes in a variety of flavors
    180180    #
    181     # Dimensionality is determined from the <dimension> tag. 
     181    # Dimensionality is determined from the <dimension> tag.
    182182    #
    183183    # <vtk> described mesh
    184184    # <element> +  <node> definitions
    185     # <grid>            rectangular mesh 
     185    # <grid>            rectangular mesh
    186186    # <unstructured>    homogeneous cell type mesh.
    187187
     
    189189    set subcount 0
    190190    foreach cname [$_mesh children] {
    191         foreach type { vtk grid unstructured } {
    192             if { $cname == $type } {
    193                 incr subcount
    194                 break
    195             }
    196         }
     191        foreach type { vtk grid unstructured } {
     192            if { $cname == $type } {
     193                incr subcount
     194                break
     195            }
     196        }
    197197    }
    198198    if {[$_mesh element "node"] != "" ||
     
    206206    }
    207207    if { $subcount > 1 } {
    208         puts stderr "WARNING: too many mesh types specified for \"$path\"."
     208        puts stderr "WARNING: too many mesh types specified for \"$path\"."
    209209        return
    210210    }
    211211    set result 0
    212212    if { [$_mesh element "vtk"] != ""} {
    213         set result [ReadVtk $path]
     213        set result [ReadVtk $path]
    214214    } elseif {[$_mesh element "grid"] != "" } {
    215         set result [ReadGrid $path]
     215        set result [ReadGrid $path]
    216216    } elseif {[$_mesh element "unstructured"] != "" } {
    217         set result [ReadUnstructuredGrid $path]
     217        set result [ReadUnstructuredGrid $path]
    218218    } elseif {[$_mesh element "node"] != "" && [$_mesh element "element"] != ""} {
    219219        set result [ReadNodesElements $path]
     
    231231
    232232    if { $_xCoords != "" } {
    233         blt::vector destroy $_xCoords
     233        blt::vector destroy $_xCoords
    234234    }
    235235    if { $_yCoords != "" } {
    236         blt::vector destroy $_yCoords
    237     }
    238 }
    239 
    240 #
    241 # vtkdata -- 
    242 #
    243 #       This is called by the field object to generate a VTK file to send to
    244 #       the remote render server.  Returns the vtkDataSet object containing
    245 #       (at this point) just the mesh.  The field object doesn't know (or
    246 #       care) what type of mesh is used.  The field object will add field
    247 #       arrays before generating output to send to the remote render server.
     236        blt::vector destroy $_yCoords
     237    }
     238}
     239
     240#
     241# vtkdata --
     242#
     243#        This is called by the field object to generate a VTK file to send to
     244#        the remote render server.  Returns the vtkDataSet object containing
     245#        (at this point) just the mesh.  The field object doesn't know (or
     246#        care) what type of mesh is used.  The field object will add field
     247#        arrays before generating output to send to the remote render server.
    248248#
    249249itcl::body Rappture::Mesh::vtkdata {{what -partial}} {
    250250    if {$what == "-full"} {
    251251        append out "# vtk DataFile Version 3.0\n"
    252         append out "[hints label]\n"
    253         append out "ASCII\n"
     252        append out "[hints label]\n"
     253        append out "ASCII\n"
    254254        append out $_vtkdata
    255255        return $out
     
    340340itcl::body Rappture::Mesh::mesh { {type "vtk"} } {
    341341    switch $type {
    342         "vtk" {
    343             return ""
    344         }
    345         default {
    346             error "Requested mesh type \"$type\" is unknown."
    347         }
     342        "vtk" {
     343            return ""
     344        }
     345        default {
     346            error "Requested mesh type \"$type\" is unknown."
     347        }
    348348    }
    349349}
     
    443443    set string [$_xmlobj get $path.dim]
    444444    if { $string == "" } {
    445         puts stderr "WARNING: no tag <dim> found in mesh \"$path\"."
     445        puts stderr "WARNING: no tag <dim> found in mesh \"$path\"."
    446446        return 0
    447447    }
     
    479479        return 0
    480480    }
    481     # Create a VTK file with the mesh in it. 
     481    # Create a VTK file with the mesh in it.
    482482    set _vtkdata [$_xmlobj get $path.vtk]
    483483    append out "# vtk DataFile Version 3.0\n"
     
    521521    set numCurvilinear 0
    522522    foreach axis { x y z } {
    523         set min    [$_xmlobj get "$path.grid.${axis}axis.min"]
    524         set max    [$_xmlobj get "$path.grid.${axis}axis.max"]
    525         set num    [$_xmlobj get "$path.grid.${axis}axis.numpoints"]
    526         set coords [$_xmlobj get "$path.grid.${axis}coords"]
    527         set dim    [$_xmlobj get "$path.grid.${axis}dim"]
    528         if { $min != "" && $max != "" && $num != "" && $num > 0 } {
    529             set ${axis}Min $min
    530             set ${axis}Max $max
    531             set ${axis}Num $num
     523        set min    [$_xmlobj get "$path.grid.${axis}axis.min"]
     524        set max    [$_xmlobj get "$path.grid.${axis}axis.max"]
     525        set num    [$_xmlobj get "$path.grid.${axis}axis.numpoints"]
     526        set coords [$_xmlobj get "$path.grid.${axis}coords"]
     527        set dim    [$_xmlobj get "$path.grid.${axis}dim"]
     528        if { $min != "" && $max != "" && $num != "" && $num > 0 } {
     529            set ${axis}Min $min
     530            set ${axis}Max $max
     531            set ${axis}Num $num
    532532            if {$min > $max} {
    533533                puts stderr "ERROR: grid $axis axis minimum larger than maximum"
    534534                return 0
    535535            }
    536             incr numUniform
    537         } elseif { $coords != "" } {
    538             incr numRectilinear
    539             set ${axis}Coords $coords
    540         } elseif { $dim != "" } {
     536            incr numUniform
     537        } elseif { $coords != "" } {
     538            incr numRectilinear
     539            set ${axis}Coords $coords
     540        } elseif { $dim != "" } {
    541541            set ${axis}Num $dim
    542542            incr numCurvilinear
     
    545545    set _dim [expr $numRectilinear + $numUniform + $numCurvilinear]
    546546    if { $_dim == 0 } {
    547         # No data found.
     547        # No data found.
    548548        puts stderr "WARNING: bad grid \"$path\": no data found"
    549         return 0
     549        return 0
    550550    }
    551551    if { $numCurvilinear > 0 } {
     
    560560            return 0
    561561        }
    562         if { ![info exists xNum] } {
     562        if { ![info exists xNum] } {
    563563            puts stderr "WARNING: bad grid \"$path\": invalid dimensions for curvilinear grid: missing <xdim> from grid description."
    564564            return 0
     
    572572        if { [info exists zNum] } {
    573573            set _dim 3
    574             set _numPoints [expr $xNum * $yNum * $zNum]
     574            set _numPoints [expr $xNum * $yNum * $zNum]
    575575            set _numCells [expr ($xNum > 1 ? ($xNum - 1) : 1) * ($yNum > 1 ? ($yNum - 1) : 1) * ($zNum > 1 ? ($zNum - 1) : 1)]
    576576            if { ($_numPoints*3) != $numCoords } {
     
    583583            }
    584584            $all split $xv $yv $zv
    585             foreach axis {x y z} {
     585            foreach axis {x y z} {
    586586                set vector [set ${axis}v]
    587587                set _limits($axis) [$vector limits]
    588             }
    589             append out "DATASET STRUCTURED_GRID\n"
    590             append out "DIMENSIONS $xNum $yNum $zNum\n"
    591             append out "POINTS $_numPoints double\n"
     588            }
     589            append out "DATASET STRUCTURED_GRID\n"
     590            append out "DIMENSIONS $xNum $yNum $zNum\n"
     591            append out "POINTS $_numPoints double\n"
    592592            append out [$all range 0 end]
    593593            append out "\n"
    594             set _vtkdata $out
     594            set _vtkdata $out
    595595        } elseif { [info exists yNum] } {
    596596            set _dim 2
    597             set _numPoints [expr $xNum * $yNum]
     597            set _numPoints [expr $xNum * $yNum]
    598598            set _numCells [expr ($xNum > 1 ? ($xNum - 1) : 1) * ($yNum > 1 ? ($yNum - 1) : 1)]
    599599            if { ($_numPoints*2) != $numCoords } {
     
    605605                return 0
    606606            }
    607             foreach axis {x y} {
     607            foreach axis {x y} {
    608608                set vector [set ${axis}v]
    609609                set _limits($axis) [$vector limits]
    610             }
     610            }
    611611            set _limits(z) [list 0 0]
    612612            $zv seq 0 0 [$xv length]
    613613            $all merge $xv $yv $zv
    614             append out "DATASET STRUCTURED_GRID\n"
    615             append out "DIMENSIONS $xNum $yNum 1\n"
    616             append out "POINTS $_numPoints double\n"
     614            append out "DATASET STRUCTURED_GRID\n"
     615            append out "DIMENSIONS $xNum $yNum 1\n"
     616            append out "POINTS $_numPoints double\n"
    617617            append out [$all range 0 end]
    618618            append out "\n"
    619             set _vtkdata $out
     619            set _vtkdata $out
    620620        } else {
    621621            set _dim 1
     
    632632            $zv seq 0 0 [$xv length]
    633633            $all merge $xv $yv $zv
    634             append out "DATASET STRUCTURED_GRID\n"
    635             append out "DIMENSIONS $xNum 1 1\n"
    636             append out "POINTS $_numPoints double\n"
     634            append out "DATASET STRUCTURED_GRID\n"
     635            append out "DIMENSIONS $xNum 1 1\n"
     636            append out "POINTS $_numPoints double\n"
    637637            append out [$all range 0 end]
    638638            append out "\n"
    639             set _vtkdata $out
    640         }
     639            set _vtkdata $out
     640        }
    641641        blt::vector destroy $all $xv $yv $zv
    642         return 1
     642        return 1
    643643    }
    644644    if { $numRectilinear == 0 && $numUniform > 0} {
    645         # This is the special case where all axes 2D/3D are uniform. 
     645        # This is the special case where all axes 2D/3D are uniform.
    646646        # This results in a STRUCTURED_POINTS
    647647        if { $_dim == 1 } {
     
    651651                set xSpace [expr ($xMax - $xMin) / double($xNum - 1)]
    652652            }
    653             set _numPoints $xNum
     653            set _numPoints $xNum
    654654            set _numCells [expr $xNum - 1]
    655             append out "DATASET STRUCTURED_POINTS\n"
    656             append out "DIMENSIONS $xNum 1 1\n"
    657             append out "ORIGIN $xMin 0 0\n"
    658             append out "SPACING $xSpace 0 0\n"
    659             set _vtkdata $out
     655            append out "DATASET STRUCTURED_POINTS\n"
     656            append out "DIMENSIONS $xNum 1 1\n"
     657            append out "ORIGIN $xMin 0 0\n"
     658            append out "SPACING $xSpace 0 0\n"
     659            set _vtkdata $out
    660660            set _limits(x) [list $xMin $xMax]
    661661            set _limits(y) [list 0 0]
    662662            set _limits(z) [list 0 0]
    663         } elseif { $_dim == 2 } {
     663        } elseif { $_dim == 2 } {
    664664            if {$xNum == 1} {
    665665                set xSpace 0
     
    672672                set ySpace [expr ($yMax - $yMin) / double($yNum - 1)]
    673673            }
    674             set _numPoints [expr $xNum * $yNum]
     674            set _numPoints [expr $xNum * $yNum]
    675675            set _numCells [expr ($xNum > 1 ? ($xNum - 1) : 1) * ($yNum > 1 ? ($yNum - 1) : 1)]
    676             append out "DATASET STRUCTURED_POINTS\n"
    677             append out "DIMENSIONS $xNum $yNum 1\n"
    678             append out "ORIGIN $xMin $yMin 0\n"
    679             append out "SPACING $xSpace $ySpace 0\n"
    680             set _vtkdata $out
    681             foreach axis {x y} {
    682                 set _limits($axis) [list [set ${axis}Min] [set ${axis}Max]]
    683             }
     676            append out "DATASET STRUCTURED_POINTS\n"
     677            append out "DIMENSIONS $xNum $yNum 1\n"
     678            append out "ORIGIN $xMin $yMin 0\n"
     679            append out "SPACING $xSpace $ySpace 0\n"
     680            set _vtkdata $out
     681            foreach axis {x y} {
     682                set _limits($axis) [list [set ${axis}Min] [set ${axis}Max]]
     683            }
    684684            set _limits(z) [list 0 0]
    685         } elseif { $_dim == 3 } {
     685        } elseif { $_dim == 3 } {
    686686            if {$xNum == 1} {
    687687                set xSpace 0
     
    699699                set zSpace [expr ($zMax - $zMin) / double($zNum - 1)]
    700700            }
    701             set _numPoints [expr $xNum * $yNum * $zNum]
     701            set _numPoints [expr $xNum * $yNum * $zNum]
    702702            set _numCells [expr ($xNum > 1 ? ($xNum - 1) : 1) * ($yNum > 1 ? ($yNum - 1) : 1) * ($zNum > 1 ? ($zNum - 1) : 1)]
    703             append out "DATASET STRUCTURED_POINTS\n"
    704             append out "DIMENSIONS $xNum $yNum $zNum\n"
    705             append out "ORIGIN $xMin $yMin $zMin\n"
    706             append out "SPACING $xSpace $ySpace $zSpace\n"
    707             set _vtkdata $out
    708             foreach axis {x y z} {
    709                 set _limits($axis) [list [set ${axis}Min] [set ${axis}Max]]
    710             }
    711         } else {
    712             puts stderr "WARNING: bad grid \"$path\": bad dimension \"$_dim\""
     703            append out "DATASET STRUCTURED_POINTS\n"
     704            append out "DIMENSIONS $xNum $yNum $zNum\n"
     705            append out "ORIGIN $xMin $yMin $zMin\n"
     706            append out "SPACING $xSpace $ySpace $zSpace\n"
     707            set _vtkdata $out
     708            foreach axis {x y z} {
     709                set _limits($axis) [list [set ${axis}Min] [set ${axis}Max]]
     710            }
     711        } else {
     712            puts stderr "WARNING: bad grid \"$path\": bad dimension \"$_dim\""
    713713            return 0
    714         }
    715         return 1
     714        }
     715        return 1
    716716    }
    717717    # This is the hybrid case.  Some axes are uniform, others are nonuniform.
    718718    set xv [blt::vector create \#auto]
    719719    if { [info exists xMin] } {
    720         $xv seq $xMin $xMax $xNum
    721     } else {
    722         $xv set [$_xmlobj get $path.grid.xcoords]
    723         set xMin [$xv min]
    724         set xMax [$xv max]
    725         set xNum [$xv length]
     720        $xv seq $xMin $xMax $xNum
     721    } else {
     722        $xv set [$_xmlobj get $path.grid.xcoords]
     723        set xMin [$xv min]
     724        set xMax [$xv max]
     725        set xNum [$xv length]
    726726    }
    727727    set yv [blt::vector create \#auto]
     
    740740    set zv [blt::vector create \#auto]
    741741    if { $_dim == 3 } {
    742         if { [info exists zMin] } {
    743             $zv seq $zMin $zMax $zNum
    744         }  else {
    745             $zv set [$_xmlobj get $path.grid.zcoords]
    746             set zMin [$zv min]
    747             set zMax [$zv max]
    748             set zNum [$zv length]
    749         }
    750     } else {
    751         set zNum 1
     742        if { [info exists zMin] } {
     743            $zv seq $zMin $zMax $zNum
     744        }  else {
     745            $zv set [$_xmlobj get $path.grid.zcoords]
     746            set zMin [$zv min]
     747            set zMax [$zv max]
     748            set zNum [$zv length]
     749        }
     750    } else {
     751        set zNum 1
    752752    }
    753753    if { $_dim == 3 } {
    754         set _numPoints [expr $xNum * $yNum * $zNum]
     754        set _numPoints [expr $xNum * $yNum * $zNum]
    755755        set _numCells [expr ($xNum > 1 ? ($xNum - 1) : 1) * ($yNum > 1 ? ($yNum - 1) : 1) * ($zNum > 1 ? ($zNum - 1) : 1)]
    756         append out "DATASET RECTILINEAR_GRID\n"
    757         append out "DIMENSIONS $xNum $yNum $zNum\n"
    758         append out "X_COORDINATES $xNum double\n"
    759         append out [$xv range 0 end]
    760         append out "\n"
    761         append out "Y_COORDINATES $yNum double\n"
    762         append out [$yv range 0 end]
    763         append out "\n"
    764         append out "Z_COORDINATES $zNum double\n"
    765         append out [$zv range 0 end]
    766         append out "\n"
    767         set _vtkdata $out
    768         foreach axis {x y z} {
    769             if { [info exists ${axis}Min] } {
    770                 set _limits($axis) [list [set ${axis}Min] [set ${axis}Max]]
    771             }
    772         }
     756        append out "DATASET RECTILINEAR_GRID\n"
     757        append out "DIMENSIONS $xNum $yNum $zNum\n"
     758        append out "X_COORDINATES $xNum double\n"
     759        append out [$xv range 0 end]
     760        append out "\n"
     761        append out "Y_COORDINATES $yNum double\n"
     762        append out [$yv range 0 end]
     763        append out "\n"
     764        append out "Z_COORDINATES $zNum double\n"
     765        append out [$zv range 0 end]
     766        append out "\n"
     767        set _vtkdata $out
     768        foreach axis {x y z} {
     769            if { [info exists ${axis}Min] } {
     770                set _limits($axis) [list [set ${axis}Min] [set ${axis}Max]]
     771            }
     772        }
    773773    } elseif { $_dim == 2 } {
    774         set _numPoints [expr $xNum * $yNum]
     774        set _numPoints [expr $xNum * $yNum]
    775775        set _numCells [expr ($xNum > 1 ? ($xNum - 1) : 1) * ($yNum > 1 ? ($yNum - 1) : 1)]
    776         append out "DATASET RECTILINEAR_GRID\n"
    777         append out "DIMENSIONS $xNum $yNum 1\n"
    778         append out "X_COORDINATES $xNum double\n"
    779         append out [$xv range 0 end]
    780         append out "\n"
    781         append out "Y_COORDINATES $yNum double\n"
    782         append out [$yv range 0 end]
    783         append out "\n"
    784         append out "Z_COORDINATES 1 double\n"
    785         append out "0\n"
    786         foreach axis {x y} {
    787             if { [info exists ${axis}Min] } {
    788                 set _limits($axis) [list [set ${axis}Min] [set ${axis}Max]]
    789             }
    790         }
     776        append out "DATASET RECTILINEAR_GRID\n"
     777        append out "DIMENSIONS $xNum $yNum 1\n"
     778        append out "X_COORDINATES $xNum double\n"
     779        append out [$xv range 0 end]
     780        append out "\n"
     781        append out "Y_COORDINATES $yNum double\n"
     782        append out [$yv range 0 end]
     783        append out "\n"
     784        append out "Z_COORDINATES 1 double\n"
     785        append out "0\n"
     786        foreach axis {x y} {
     787            if { [info exists ${axis}Min] } {
     788                set _limits($axis) [list [set ${axis}Min] [set ${axis}Max]]
     789            }
     790        }
    791791        set _limits(z) [list 0 0]
    792         set _vtkdata $out
     792        set _vtkdata $out
    793793    } elseif { $_dim == 1 } {
    794794        set _numPoints $xNum
    795795        set _numCells [expr $xNum - 1]
    796         append out "DATASET RECTILINEAR_GRID\n"
    797         append out "DIMENSIONS $xNum 1 1\n"
    798         append out "X_COORDINATES $xNum double\n"
    799         append out [$xv range 0 end]
    800         append out "\n"
    801         append out "Y_COORDINATES 1 double\n"
    802         append out "0\n"
    803         append out "Z_COORDINATES 1 double\n"
    804         append out "0\n"
     796        append out "DATASET RECTILINEAR_GRID\n"
     797        append out "DIMENSIONS $xNum 1 1\n"
     798        append out "X_COORDINATES $xNum double\n"
     799        append out [$xv range 0 end]
     800        append out "\n"
     801        append out "Y_COORDINATES 1 double\n"
     802        append out "0\n"
     803        append out "Z_COORDINATES 1 double\n"
     804        append out "0\n"
    805805        if { [info exists xMin] } {
    806806            set _limits(x) [list $xMin $xMax]
     
    808808        set _limits(y) [list 0 0]
    809809        set _limits(z) [list 0 0]
    810         set _vtkdata $out
    811     } else {
    812         puts stderr "WARNING: bad grid \"$path\": invalid dimension \"$_dim\""
     810        set _vtkdata $out
     811    } else {
     812        puts stderr "WARNING: bad grid \"$path\": invalid dimension \"$_dim\""
    813813        return 0
    814814    }
    815     blt::vector destroy $xv $yv $zv 
     815    blt::vector destroy $xv $yv $zv
    816816    return 1
    817817}
     
    847847    set celltypes {}
    848848    foreach { a b c } $triangles {
    849         append data " 3 $a $b $c\n"
    850         append celltypes "5\n"
    851         incr _numCells
     849        append data " 3 $a $b $c\n"
     850        append celltypes "5\n"
     851        incr _numCells
    852852    }
    853853    append out "DATASET UNSTRUCTURED_GRID\n"
    854854    append out "POINTS $_numPoints double\n"
    855855    foreach x [$xv range 0 end] y [$yv range 0 end] z [$zv range 0 end] {
    856         append out " $x $y $z\n"
     856        append out " $x $y $z\n"
    857857    }
    858858    set count [expr $_numCells * 4]
     
    879879    set celltypes {}
    880880    foreach { a b c d } $quads {
    881         append data " 4 $a $b $c $d\n"
    882         append celltypes "9\n"
    883         incr _numCells
     881        append data " 4 $a $b $c $d\n"
     882        append celltypes "9\n"
     883        incr _numCells
    884884    }
    885885    append out "DATASET UNSTRUCTURED_GRID\n"
    886886    append out "POINTS $_numPoints double\n"
    887887    foreach x [$xv range 0 end] y [$yv range 0 end] z [$zv range 0 end] {
    888         append out " $x $y $z\n"
     888        append out " $x $y $z\n"
    889889    }
    890890    set count [expr $_numCells * 5]
     
    916916            continue
    917917        }
    918         append data " $numIndices $line\n"
    919         incr _numCells
     918        append data " $numIndices $line\n"
     919        incr _numCells
    920920        set count [expr $count + $numIndices + 1]
    921921    }
     
    923923    append out "POINTS $_numPoints double\n"
    924924    foreach x [$xv range 0 end] y [$yv range 0 end] z [$zv range 0 end] {
    925         append out " $x $y $z\n"
     925        append out " $x $y $z\n"
    926926    }
    927927    append out "VERTICES $_numCells $count\n"
     
    950950            continue
    951951        }
    952         append data " $numIndices $line\n"
    953         incr _numCells
     952        append data " $numIndices $line\n"
     953        incr _numCells
    954954        set count [expr $count + $numIndices + 1]
    955955    }
     
    957957    append out "POINTS $_numPoints double\n"
    958958    foreach x [$xv range 0 end] y [$yv range 0 end] z [$zv range 0 end] {
    959         append out " $x $y $z\n"
     959        append out " $x $y $z\n"
    960960    }
    961961    append out "LINES $_numCells $count\n"
     
    984984            continue
    985985        }
    986         append data " $numIndices $line\n"
    987         incr _numCells
     986        append data " $numIndices $line\n"
     987        incr _numCells
    988988        set count [expr $count + $numIndices + 1]
    989989    }
     
    991991    append out "POINTS $_numPoints double\n"
    992992    foreach x [$xv range 0 end] y [$yv range 0 end] z [$zv range 0 end] {
    993         append out " $x $y $z\n"
     993        append out " $x $y $z\n"
    994994    }
    995995    append out "POLYGONS $_numCells $count\n"
     
    10181018            continue
    10191019        }
    1020         append data " $numIndices $line\n"
    1021         incr _numCells
     1020        append data " $numIndices $line\n"
     1021        incr _numCells
    10221022        set count [expr $count + $numIndices + 1]
    10231023    }
     
    10251025    append out "POINTS $_numPoints double\n"
    10261026    foreach x [$xv range 0 end] y [$yv range 0 end] z [$zv range 0 end] {
    1027         append out " $x $y $z\n"
     1027        append out " $x $y $z\n"
    10281028    }
    10291029    append out "TRIANGLE_STRIPS $_numCells $count\n"
     
    10471047    set celltypes {}
    10481048    foreach { a b c d } $tetras {
    1049         append data " 4 $a $b $c $d\n"
    1050         append celltypes "10\n"
    1051         incr _numCells
     1049        append data " 4 $a $b $c $d\n"
     1050        append celltypes "10\n"
     1051        incr _numCells
    10521052    }
    10531053    append out "DATASET UNSTRUCTURED_GRID\n"
    10541054    append out "POINTS $_numPoints double\n"
    10551055    foreach x [$xv range 0 end] y [$yv range 0 end] z [$zv range 0 end] {
    1056         append out " $x $y $z\n"
     1056        append out " $x $y $z\n"
    10571057    }
    10581058    set count [expr $_numCells * 5]
     
    10761076    set celltypes {}
    10771077    foreach { a b c d e f g h } $hexas {
    1078         append data " 8 $a $b $c $d $e $f $g $h\n"
    1079         append celltypes "12\n"
    1080         incr _numCells
     1078        append data " 8 $a $b $c $d $e $f $g $h\n"
     1079        append celltypes "12\n"
     1080        incr _numCells
    10811081    }
    10821082    append out "DATASET UNSTRUCTURED_GRID\n"
    10831083    append out "POINTS $_numPoints double\n"
    10841084    foreach x [$xv range 0 end] y [$yv range 0 end] z [$zv range 0 end] {
    1085         append out " $x $y $z\n"
     1085        append out " $x $y $z\n"
    10861086    }
    10871087    set count [expr $_numCells * 9]
     
    11051105    set celltypes {}
    11061106    foreach { a b c d e f } $wedges {
    1107         append data " 6 $a $b $c $d $e $f\n"
    1108         append celltypes "13\n"
    1109         incr _numCells
     1107        append data " 6 $a $b $c $d $e $f\n"
     1108        append celltypes "13\n"
     1109        incr _numCells
    11101110    }
    11111111    append out "DATASET UNSTRUCTURED_GRID\n"
    11121112    append out "POINTS $_numPoints double\n"
    11131113    foreach x [$xv range 0 end] y [$yv range 0 end] z [$zv range 0 end] {
    1114         append out " $x $y $z\n"
     1114        append out " $x $y $z\n"
    11151115    }
    11161116    set count [expr $_numCells * 7]
     
    11341134    set celltypes {}
    11351135    foreach { a b c d e } $pyramids {
    1136         append data " 5 $a $b $c $d $e\n"
    1137         append celltypes "14\n"
    1138         incr _numCells
     1136        append data " 5 $a $b $c $d $e\n"
     1137        append celltypes "14\n"
     1138        incr _numCells
    11391139    }
    11401140    append out "DATASET UNSTRUCTURED_GRID\n"
    11411141    append out "POINTS $_numPoints double\n"
    11421142    foreach x [$xv range 0 end] y [$yv range 0 end] z [$zv range 0 end] {
    1143         append out " $x $y $z\n"
     1143        append out " $x $y $z\n"
    11441144    }
    11451145    set count [expr $_numCells * 6]
     
    11531153
    11541154    set _vtkdata $out
    1155     return 1 
     1155    return 1
    11561156}
    11571157
     
    12411241    set celltypes [$_xmlobj get $path.unstructured.celltypes]
    12421242    if { $numCells == 0 && $celltypes != "" } {
    1243         puts stderr "WARNING: bad unstuctured grid \"$path\": no <cells> description found."
     1243        puts stderr "WARNING: bad unstuctured grid \"$path\": no <cells> description found."
    12441244        return 0
    12451245    }
     
    12661266        }
    12671267    }
    1268     # Step 2: Allow points to be specified as <points> or 
     1268    # Step 2: Allow points to be specified as <points> or
    12691269    #         <xcoords>, <ycoords>, <zcoords>.  Split and convert into
    12701270    #         3 vectors, one for each coordinate.
     
    14141414    set data {}
    14151415    foreach cname [$_xmlobj children -type node $path] {
    1416         append data "[$_xmlobj get $path.$cname]\n"
    1417     }   
     1416        append data "[$_xmlobj get $path.$cname]\n"
     1417    }
    14181418    Rappture::ReadPoints $data _dim points
    14191419    if { $_dim == 2 } {
    1420         set all [blt::vector create \#auto]
    1421         set xv [blt::vector create \#auto]
    1422         set yv [blt::vector create \#auto]
    1423         set zv [blt::vector create \#auto]
    1424         $all set $points
    1425         $all split $xv $yv
    1426         set _numPoints [$xv length]
     1420        set all [blt::vector create \#auto]
     1421        set xv [blt::vector create \#auto]
     1422        set yv [blt::vector create \#auto]
     1423        set zv [blt::vector create \#auto]
     1424        $all set $points
     1425        $all split $xv $yv
     1426        set _numPoints [$xv length]
    14271427        set _limits(x) [$xv limits]
    14281428        set _limits(y) [$yv limits]
    14291429        set _limits(z) [list 0 0]
    1430         # 2D Dataset. All Z coordinates are 0
    1431         $zv seq 0.0 0.0 $_numPoints
    1432         $all merge $xv $yv $zv
    1433         set points [$all range 0 end]
    1434         blt::vector destroy $all $xv $yv $zv
     1430        # 2D Dataset. All Z coordinates are 0
     1431        $zv seq 0.0 0.0 $_numPoints
     1432        $all merge $xv $yv $zv
     1433        set points [$all range 0 end]
     1434        blt::vector destroy $all $xv $yv $zv
    14351435    } elseif { $_dim == 3 } {
    1436         set all [blt::vector create \#auto]
    1437         set xv [blt::vector create \#auto]
    1438         set yv [blt::vector create \#auto]
    1439         set zv [blt::vector create \#auto]
    1440         $all set $points
    1441         $all split $xv $yv $zv
    1442         set _numPoints [$xv length]
     1436        set all [blt::vector create \#auto]
     1437        set xv [blt::vector create \#auto]
     1438        set yv [blt::vector create \#auto]
     1439        set zv [blt::vector create \#auto]
     1440        $all set $points
     1441        $all split $xv $yv $zv
     1442        set _numPoints [$xv length]
    14431443        set _limits(x) [$xv limits]
    14441444        set _limits(y) [$yv limits]
    14451445        set _limits(z) [$zv limits]
    1446         set points [$all range 0 end]
    1447         blt::vector destroy $all $xv $yv $zv
    1448     } else {
    1449         error "bad dimension \"$_dim\" for nodes mesh"
     1446        set points [$all range 0 end]
     1447        blt::vector destroy $all $xv $yv $zv
     1448    } else {
     1449        error "bad dimension \"$_dim\" for nodes mesh"
    14501450    }
    14511451    array set node2celltype {
    1452         3 5
    1453         4 10
    1454         8 12
    1455         6 13
    1456         5 14
     1452        3 5
     1453        4 10
     1454        8 12
     1455        6 13
     1456        5 14
    14571457    }
    14581458    set count 0
     
    14631463    foreach cname [$_xmlobj children -type element $path] {
    14641464        set nodeList [$_mesh get $cname.nodes]
    1465         set numNodes [llength $nodeList]
    1466         if { ![info exists node2celltype($numNodes)] } {
    1467             puts stderr "WARNING: bad nodes/elements mesh \$path\": unknown number of indices \"$_numNodes\": should be 3, 4, 5, 6, or 8"
    1468             return 0
    1469         }
    1470         set celltype $node2celltype($numNodes)
    1471         append celltypes "  $celltype\n"
     1465        set numNodes [llength $nodeList]
     1466        if { ![info exists node2celltype($numNodes)] } {
     1467            puts stderr "WARNING: bad nodes/elements mesh \$path\": unknown number of indices \"$_numNodes\": should be 3, 4, 5, 6, or 8"
     1468            return 0
     1469        }
     1470        set celltype $node2celltype($numNodes)
     1471        append celltypes "  $celltype\n"
    14721472        if { $celltype == 12 } {
    14731473            # Formerly used voxels instead of hexahedrons. We're converting
     
    14791479            }
    14801480            set nodeList $newList
    1481         } 
    1482         append data "  $numNodes $nodeList\n"
    1483         incr _numCells
    1484         incr count $numNodes
    1485         incr count;                     # One extra for the VTK celltype id.
     1481        }
     1482        append data "  $numNodes $nodeList\n"
     1483        incr _numCells
     1484        incr count $numNodes
     1485        incr count;                        # One extra for the VTK celltype id.
    14861486    }
    14871487
     
    14961496    append out "\n"
    14971497    set _vtkdata $out
    1498     set _isValid 1 
     1498    set _isValid 1
    14991499}
    15001500
  • branches/1.3/gui/scripts/visviewer.tcl

    r4761 r5011  
    1 # -*- mode: tcl; indent-tabs-mode: nil -*- 
     1# -*- mode: tcl; indent-tabs-mode: nil -*-
    22
    33# ----------------------------------------------------------------------
    4 #  VisViewer - 
    5 #
    6 #  This class is the base class for the various visualization viewers 
     4#  VisViewer -
     5#
     6#  This class is the base class for the various visualization viewers
    77#  that use the nanoserver render farm.
    88#
     
    3131    private common _done            ;   # Used to indicate status of send.
    3232    private variable _buffer        ;   # buffer for incoming/outgoing commands
    33     private variable _initialized 
     33    private variable _initialized
    3434    private variable _isOpen 0
    3535    private variable _afterId -1
     
    7171    private method SendHelper {}
    7272    private method SendHelper.old {}
    73     private method WaitDialog { state } 
    74 
    75     protected method ToggleConsole {} 
    76     private method DebugConsole {} 
    77     private method BuildConsole {} 
    78     private method HideConsole {} 
    79     private method TraceComm { channel {data {}} } 
    80     private method SendDebugCommand {} 
     73    private method WaitDialog { state }
     74
     75    protected method ToggleConsole {}
     76    private method DebugConsole {}
     77    private method BuildConsole {}
     78    private method HideConsole {}
     79    private method TraceComm { channel {data {}} }
     80    private method SendDebugCommand {}
    8181
    8282    protected method CheckConnection {}
     
    8585    protected method Connect { servers }
    8686    protected method Disconnect {}
    87     protected method EnableWaitDialog { timeout } 
     87    protected method EnableWaitDialog { timeout }
    8888    protected method Euler2XYZ { theta phi psi }
    8989    protected method Flush {}
     
    9999    protected method SendEcho { channel {data ""} }
    100100    protected method StartBufferingCommands {}
    101     protected method StartWaiting {} 
     101    protected method StartWaiting {}
    102102    protected method StopBufferingCommands {}
    103     protected method StopWaiting {} 
    104 
    105     private method Waiting { option widget } 
     103    protected method StopWaiting {}
     104
     105    private method Waiting { option widget }
    106106
    107107    private proc CheckNameList { namelist }  {
     
    197197    global env
    198198    if { [info exists env(VISRECORDER)] } {
    199         set _logging 1
    200         if { [file exists /tmp/recording.log] } {
    201             file delete /tmp/recording.log
    202         }
     199        set _logging 1
     200        if { [file exists /tmp/recording.log] } {
     201            file delete /tmp/recording.log
     202        }
    203203    }
    204204    eval itk_initialize $args
     
    256256#    Connect to the visualization server (e.g. nanovis, pymolproxy).
    257257#    Creates an event callback that is triggered when we are idle
    258 #    (no I/O with the server) for some specified time. 
     258#    (no I/O with the server) for some specified time.
    259259#
    260260itcl::body Rappture::VisViewer::Connect { servers } {
     
    279279        set _hostname $server
    280280        fconfigure $_sid -translation binary -encoding binary
    281        
     281
    282282        # Read back the server identification string.
    283283        if { [gets $_sid data] <= 0 } {
     
    315315    after cancel $_afterId
    316316    $_dispatcher cancel !timeout
    317     catch {close $_sid} 
     317    catch {close $_sid}
    318318    set _sid ""
    319319    set _buffer(in) ""
     
    340340# CheckConection --
    341341#
    342 #   This routine is called whenever we're about to send/receive data on 
    343 #   the socket connection to the visualization server.  If we're connected, 
    344 #   then reset the timeout event.  Otherwise try to reconnect to the 
     342#   This routine is called whenever we're about to send/receive data on
     343#   the socket connection to the visualization server.  If we're connected,
     344#   then reset the timeout event.  Otherwise try to reconnect to the
    345345#   visualization server.
    346346#
     
    398398    }
    399399    puts -nonewline $_sid $_buffer(out)
    400     flush $_sid 
     400    flush $_sid
    401401    set _done($this) 1;                 # Success
    402402}
     
    478478# StartWaiting --
    479479#
    480 #    Read some number of bytes from the visualization server. 
     480#    Read some number of bytes from the visualization server.
    481481#
    482482
    483483itcl::body Rappture::VisViewer::StartWaiting {} {
    484484    if { $_waitTimeout > 0 } {
    485         after cancel $_afterId 
     485        after cancel $_afterId
    486486        set _afterId [after $_waitTimeout [itcl::code $this WaitDialog on]]
    487487    }
    488488}
    489489
    490 itcl::body Rappture::VisViewer::StopWaiting {} { 
     490itcl::body Rappture::VisViewer::StopWaiting {} {
    491491    if { $_waitTimeout > 0 } {
    492492        WaitDialog off
     
    494494}
    495495
    496 itcl::body Rappture::VisViewer::EnableWaitDialog { value } { 
     496itcl::body Rappture::VisViewer::EnableWaitDialog { value } {
    497497    set _waitTimeout $value
    498498}
     
    501501# ReceiveBytes --
    502502#
    503 #    Read some number of bytes from the visualization server. 
     503#    Read some number of bytes from the visualization server.
    504504#
    505505itcl::body Rappture::VisViewer::ReceiveBytes { size } {
     
    619619}
    620620
    621 # 
     621#
    622622# ReceiveEcho --
    623623#
     
    642642        }
    643643        set inner [frame $itk_component(plotarea).view.splash]
    644         $inner configure -relief raised -bd 2 
     644        $inner configure -relief raised -bd 2
    645645        label $inner.text1 -text "Working...\nPlease wait." \
    646             -font "Arial 10" 
    647         label $inner.icon 
     646            -font "Arial 10"
     647        label $inner.icon
    648648        pack $inner -expand yes -anchor c
    649649        blt::table $inner \
    650650            0,0 $inner.text1 -anchor w \
    651             0,1 $inner.icon 
     651            0,1 $inner.icon
    652652        Waiting start $inner.icon
    653653    } else {
     
    709709    pack $f.send.l -side left
    710710    itk_component add command {
    711         entry $f.send.e -background white
     711        entry $f.send.e -background white
    712712    } {
    713         ignore -background
     713        ignore -background
    714714    }
    715715    pack $f.send.e -side left -expand yes -fill x
     
    719719    pack $f.sb -side right -fill y
    720720    itk_component add trace {
    721         text $f.comm -wrap char -yscrollcommand "$f.sb set" -background white
     721        text $f.comm -wrap char -yscrollcommand "$f.sb set" -background white
    722722    } {
    723         ignore -background
     723        ignore -background
    724724    }
    725725    pack $f.comm -expand yes -fill both
     
    729729
    730730    $itk_component(trace) tag configure error -foreground red \
    731         -font -*-courier-medium-o-normal-*-*-120-*
     731        -font -*-courier-medium-o-normal-*-*-120-*
    732732    $itk_component(trace) tag configure incoming -foreground blue
    733733}
     
    741741itcl::body Rappture::VisViewer::ToggleConsole {} {
    742742    if { $_debugConsole } {
    743         set _debugConsole 0
     743        set _debugConsole 0
    744744    } else {
    745         set _debugConsole 1
     745        set _debugConsole 1
    746746    }
    747747    DebugConsole
     
    751751# DebugConsole --
    752752#
    753 #    Based on the value of the variable _debugConsole, turns on/off 
    754 #    debugging. This is done by setting/unsetting a procedure that 
    755 #    is called whenever new characters are received or sent on the 
     753#    Based on the value of the variable _debugConsole, turns on/off
     754#    debugging. This is done by setting/unsetting a procedure that
     755#    is called whenever new characters are received or sent on the
    756756#    socket to the render server.  Additionally, the debug console
    757757#    is created if necessary and hidden/shown.
     
    759759itcl::body Rappture::VisViewer::DebugConsole {} {
    760760    if { ![winfo exists .renderconsole] } {
    761         BuildConsole
     761        BuildConsole
    762762    }
    763763    if { $_debugConsole } {
    764         $this configure -sendcommand [itcl::code $this TraceComm]
    765         $this configure -receivecommand [itcl::code $this TraceComm]
    766         wm deiconify .renderconsole
     764        $this configure -sendcommand [itcl::code $this TraceComm]
     765        $this configure -receivecommand [itcl::code $this TraceComm]
     766        wm deiconify .renderconsole
    767767    } else {
    768         $this configure -sendcommand ""
    769         $this configure -receivecommand ""
    770         wm withdraw .renderconsole
     768        $this configure -sendcommand ""
     769        $this configure -receivecommand ""
     770        wm withdraw .renderconsole
    771771    }
    772772}
     
    850850                -title "Render Server Error"
    851851            set inner [$popup component inner]
    852             label $inner.summary -text "" -anchor w 
     852            label $inner.summary -text "" -anchor w
    853853
    854854            Rappture::Scroller $inner.scrl \
    855                 -xscrollmode auto -yscrollmode auto 
     855                -xscrollmode auto -yscrollmode auto
    856856            text $inner.scrl.text \
    857857                -font "Arial 9 " -background white -relief sunken -bd 1 \
     
    862862            blt::table $inner \
    863863                0,0 $inner.scrl -fill both \
    864                 1,0 $inner.ok 
    865             $inner.scrl.text tag configure normal -font "Arial 9" 
    866             $inner.scrl.text tag configure italic -font "Arial 9 italic" 
     864                1,0 $inner.ok
     865            $inner.scrl.text tag configure normal -font "Arial 9"
     866            $inner.scrl.text tag configure italic -font "Arial 9 italic"
    867867            $inner.scrl.text tag configure bold -font "Arial 10 bold"
    868868            $inner.scrl.text tag configure code -font "Courier 10 bold"
     
    873873        set inner [$popup component inner]
    874874        $inner.scrl.text delete 0.0 end
    875        
     875
    876876        $inner.scrl.text configure -state normal
    877877        $inner.scrl.text insert end "The following error was reported by the render server:\n\n" bold
     
    943943        "blue-to-grey" {
    944944            return {
    945                 0.0                     0.000 0.600 0.800 
    946                 0.14285714285714285     0.400 0.900 1.000 
    947                 0.2857142857142857      0.600 1.000 1.000 
    948                 0.42857142857142855     0.800 1.000 1.000 
    949                 0.5714285714285714      0.900 0.900 0.900 
    950                 0.7142857142857143      0.600 0.600 0.600 
    951                 0.8571428571428571      0.400 0.400 0.400 
     945                0.0                     0.000 0.600 0.800
     946                0.14285714285714285     0.400 0.900 1.000
     947                0.2857142857142857      0.600 1.000 1.000
     948                0.42857142857142855     0.800 1.000 1.000
     949                0.5714285714285714      0.900 0.900 0.900
     950                0.7142857142857143      0.600 0.600 0.600
     951                0.8571428571428571      0.400 0.400 0.400
    952952                1.0                     0.200 0.200 0.200
    953953            }
    954954        }
    955955        "white-to-blue" {
    956             return { 
    957                 0.0                     0.900 1.000 1.000 
    958                 0.1111111111111111      0.800 0.983 1.000 
    959                 0.2222222222222222      0.700 0.950 1.000 
    960                 0.3333333333333333      0.600 0.900 1.000 
    961                 0.4444444444444444      0.500 0.833 1.000 
    962                 0.5555555555555556      0.400 0.750 1.000 
    963                 0.6666666666666666      0.300 0.650 1.000 
    964                 0.7777777777777778      0.200 0.533 1.000 
    965                 0.8888888888888888      0.100 0.400 1.000 
     956            return {
     957                0.0                     0.900 1.000 1.000
     958                0.1111111111111111      0.800 0.983 1.000
     959                0.2222222222222222      0.700 0.950 1.000
     960                0.3333333333333333      0.600 0.900 1.000
     961                0.4444444444444444      0.500 0.833 1.000
     962                0.5555555555555556      0.400 0.750 1.000
     963                0.6666666666666666      0.300 0.650 1.000
     964                0.7777777777777778      0.200 0.533 1.000
     965                0.8888888888888888      0.100 0.400 1.000
    966966                1.0                     0.000 0.250 1.000
    967967            }
     
    969969        "brown-to-blue" {
    970970            return {
    971                 0.0                             0.200   0.100   0.000 
    972                 0.09090909090909091             0.400   0.187   0.000 
    973                 0.18181818181818182             0.600   0.379   0.210 
    974                 0.2727272727272727              0.800   0.608   0.480 
    975                 0.36363636363636365             0.850   0.688   0.595 
    976                 0.45454545454545453             0.950   0.855   0.808 
    977                 0.5454545454545454              0.800   0.993   1.000 
    978                 0.6363636363636364              0.600   0.973   1.000 
    979                 0.7272727272727273              0.400   0.940   1.000 
    980                 0.8181818181818182              0.200   0.893   1.000 
    981                 0.9090909090909091              0.000   0.667   0.800 
    982                 1.0                             0.000   0.480   0.600 
     971                0.0                             0.200   0.100   0.000
     972                0.09090909090909091             0.400   0.187   0.000
     973                0.18181818181818182             0.600   0.379   0.210
     974                0.2727272727272727              0.800   0.608   0.480
     975                0.36363636363636365             0.850   0.688   0.595
     976                0.45454545454545453             0.950   0.855   0.808
     977                0.5454545454545454              0.800   0.993   1.000
     978                0.6363636363636364              0.600   0.973   1.000
     979                0.7272727272727273              0.400   0.940   1.000
     980                0.8181818181818182              0.200   0.893   1.000
     981                0.9090909090909091              0.000   0.667   0.800
     982                1.0                             0.000   0.480   0.600
    983983            }
    984984        }
    985985        "blue-to-brown" {
    986986            return {
    987                 0.0                             0.000   0.480   0.600 
    988                 0.09090909090909091             0.000   0.667   0.800 
    989                 0.18181818181818182             0.200   0.893   1.000 
    990                 0.2727272727272727              0.400   0.940   1.000 
    991                 0.36363636363636365             0.600   0.973   1.000 
    992                 0.45454545454545453             0.800   0.993   1.000 
    993                 0.5454545454545454              0.950   0.855   0.808 
    994                 0.6363636363636364              0.850   0.688   0.595 
    995                 0.7272727272727273              0.800   0.608   0.480 
    996                 0.8181818181818182              0.600   0.379   0.210 
    997                 0.9090909090909091              0.400   0.187   0.000 
    998                 1.0                             0.200   0.100   0.000 
     987                0.0                             0.000   0.480   0.600
     988                0.09090909090909091             0.000   0.667   0.800
     989                0.18181818181818182             0.200   0.893   1.000
     990                0.2727272727272727              0.400   0.940   1.000
     991                0.36363636363636365             0.600   0.973   1.000
     992                0.45454545454545453             0.800   0.993   1.000
     993                0.5454545454545454              0.950   0.855   0.808
     994                0.6363636363636364              0.850   0.688   0.595
     995                0.7272727272727273              0.800   0.608   0.480
     996                0.8181818181818182              0.600   0.379   0.210
     997                0.9090909090909091              0.400   0.187   0.000
     998                1.0                             0.200   0.100   0.000
    999999            }
    10001000        }
     
    10341034            set clist {
    10351035                "#EE82EE"
    1036                 "#4B0082" 
    1037                 "blue" 
    1038                 "#008000" 
    1039                 "yellow" 
    1040                 "#FFA500" 
    1041                 "red" 
     1036                "#4B0082"
     1037                "blue"
     1038                "#008000"
     1039                "yellow"
     1040                "#FFA500"
     1041                "red"
    10421042            }
    10431043        }
    10441044        "BGYOR" {
    10451045            set clist {
    1046                 "blue" 
    1047                 "#008000" 
    1048                 "yellow" 
    1049                 "#FFA500" 
    1050                 "red" 
     1046                "blue"
     1047                "#008000"
     1048                "yellow"
     1049                "#FFA500"
     1050                "red"
    10511051            }
    10521052        }
    10531053        "ROYGB" {
    10541054            set clist {
    1055                 "red" 
    1056                 "#FFA500" 
    1057                 "yellow" 
    1058                 "#008000" 
    1059                 "blue" 
     1055                "red"
     1056                "#FFA500"
     1057                "yellow"
     1058                "#008000"
     1059                "blue"
    10601060            }
    10611061        }
    10621062        "RYGCB" {
    10631063            set clist {
    1064                 "red" 
    1065                 "yellow" 
     1064                "red"
     1065                "yellow"
    10661066                "green"
    10671067                "cyan"
     
    10711071        "BCGYR" {
    10721072            set clist {
    1073                 "blue" 
     1073                "blue"
    10741074                "cyan"
    10751075                "green"
    1076                 "yellow" 
    1077                 "red" 
     1076                "yellow"
     1077                "red"
    10781078            }
    10791079        }
    10801080        "spectral" {
    10811081            return {
    1082                 0.0 0.150 0.300 1.000 
    1083                 0.1 0.250 0.630 1.000 
    1084                 0.2 0.450 0.850 1.000 
    1085                 0.3 0.670 0.970 1.000 
    1086                 0.4 0.880 1.000 1.000 
    1087                 0.5 1.000 1.000 0.750 
    1088                 0.6 1.000 0.880 0.600 
    1089                 0.7 1.000 0.680 0.450 
    1090                 0.8 0.970 0.430 0.370 
    1091                 0.9 0.850 0.150 0.196 
     1082                0.0 0.150 0.300 1.000
     1083                0.1 0.250 0.630 1.000
     1084                0.2 0.450 0.850 1.000
     1085                0.3 0.670 0.970 1.000
     1086                0.4 0.880 1.000 1.000
     1087                0.5 1.000 1.000 0.750
     1088                0.6 1.000 0.880 0.600
     1089                0.7 1.000 0.680 0.450
     1090                0.8 0.970 0.430 0.370
     1091                0.9 0.850 0.150 0.196
    10921092                1.0 0.650 0.000 0.130
    10931093            }
     
    10951095        "green-to-magenta" {
    10961096            return {
    1097                 0.0 0.000 0.316 0.000 
    1098                 0.06666666666666667 0.000 0.526 0.000 
    1099                 0.13333333333333333 0.000 0.737 0.000 
    1100                 0.2 0.000 0.947 0.000 
    1101                 0.26666666666666666 0.316 1.000 0.316 
    1102                 0.3333333333333333 0.526 1.000 0.526 
    1103                 0.4 0.737 1.000 0.737 
    1104                 0.4666666666666667 1.000 1.000 1.000 
    1105                 0.5333333333333333 1.000 0.947 1.000 
    1106                 0.6 1.000 0.737 1.000 
    1107                 0.6666666666666666 1.000 0.526 1.000 
    1108                 0.7333333333333333 1.000 0.316 1.000 
    1109                 0.8 0.947 0.000 0.947 
    1110                 0.8666666666666667 0.737 0.000 0.737 
    1111                 0.9333333333333333 0.526 0.000 0.526 
     1097                0.0 0.000 0.316 0.000
     1098                0.06666666666666667 0.000 0.526 0.000
     1099                0.13333333333333333 0.000 0.737 0.000
     1100                0.2 0.000 0.947 0.000
     1101                0.26666666666666666 0.316 1.000 0.316
     1102                0.3333333333333333 0.526 1.000 0.526
     1103                0.4 0.737 1.000 0.737
     1104                0.4666666666666667 1.000 1.000 1.000
     1105                0.5333333333333333 1.000 0.947 1.000
     1106                0.6 1.000 0.737 1.000
     1107                0.6666666666666666 1.000 0.526 1.000
     1108                0.7333333333333333 1.000 0.316 1.000
     1109                0.8 0.947 0.000 0.947
     1110                0.8666666666666667 0.737 0.000 0.737
     1111                0.9333333333333333 0.526 0.000 0.526
    11121112                1.0 0.316 0.000 0.316
    11131113            }
    11141114        }
    11151115        "greyscale" {
    1116             return { 
     1116            return {
    11171117                0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0
    11181118            }
     
    11441144#
    11451145itcl::body Rappture::VisViewer::StartBufferingCommands { } {
    1146     incr _buffering 
     1146    incr _buffering
    11471147    if { $_buffering == 1 } {
    11481148        set _outbuf ""
     
    11701170#
    11711171#       Send commands off to the rendering server.  If we're currently
    1172 #       sending data objects to the server, buffer the commands to be 
     1172#       sending data objects to the server, buffer the commands to be
    11731173#       sent later.
    11741174#
     
    11851185#
    11861186#       Send commands off to the rendering server.  If we're currently
    1187 #       sending data objects to the server, buffer the commands to be 
     1187#       sending data objects to the server, buffer the commands to be
    11881188#       sent later.
    11891189#
  • branches/1.3/gui/scripts/vtkimageviewer.tcl

    r4770 r5011  
    1 # -*- mode: tcl; indent-tabs-mode: nil -*- 
     1# -*- mode: tcl; indent-tabs-mode: nil -*-
    22# ----------------------------------------------------------------------
    33#  COMPONENT: vtkimageviewer - Vtk image viewer
     
    5858    public method get {args}
    5959    public method isconnected {}
    60     public method parameters {title args} { 
    61         # do nothing 
     60    public method parameters {title args} {
     61        # do nothing
    6262    }
    6363    public method scale {args}
     
    6969    private method BuildColormap { name }
    7070    private method BuildImageTab {}
    71     private method BuildDownloadPopup { widget command } 
     71    private method BuildDownloadPopup { widget command }
    7272    private method Combo { option }
    7373    private method Connect {}
     
    7777    private method DoRotate {}
    7878    private method DrawLegend {}
    79     private method EnterLegend { x y } 
    80     private method EventuallyRequestLegend {} 
    81     private method EventuallyResize { w h } 
     79    private method EnterLegend { x y }
     80    private method EventuallyRequestLegend {}
     81    private method EventuallyResize { w h }
    8282    private method EventuallyRotate { q }
    83     private method GetImage { args } 
    84     private method GetVtkData { args } 
     83    private method GetImage { args }
     84    private method GetVtkData { args }
    8585    private method InitSettings { args  }
    86     private method IsValidObject { dataobj } 
     86    private method IsValidObject { dataobj }
    8787    private method LeaveLegend {}
    88     private method MotionLegend { x y } 
     88    private method MotionLegend { x y }
    8989    private method Pan {option x y}
    9090    private method PanCamera {}
    9191    private method Pick {x y}
    92     private method QuaternionToView { q } { 
     92    private method QuaternionToView { q } {
    9393        foreach { _view(-qw) _view(-qx) _view(-qy) _view(-qz) } $q break
    9494    }
     
    101101    private method SetCurrentColormap { color }
    102102    private method SetLegendTip { x y }
    103     private method SetObjectStyle { dataobj comp } 
     103    private method SetObjectStyle { dataobj comp }
    104104    private method SetOrientation { side }
    105     private method ViewToQuaternion {} { 
     105    private method ViewToQuaternion {} {
    106106        return [list $_view(-qw) $_view(-qx) $_view(-qy) $_view(-qz)]
    107107    }
     
    112112    private variable _obj2datasets
    113113    private variable _obj2ovride   ;    # maps dataobj => style override
    114     private variable _datasets     ;    # contains all the dataobj-component 
     114    private variable _datasets     ;    # contains all the dataobj-component
    115115                                   ;    # datasets in the server
    116116    private variable _colormaps    ;    # contains all the colormaps
     
    128128
    129129    private variable _click        ;    # info used for rotate operations
    130     private variable _limits       ;    # Holds overall limits for all dataobjs 
     130    private variable _limits       ;    # Holds overall limits for all dataobjs
    131131                                        # using the viewer.
    132132    private variable _view         ;    # view params for 3D view
     
    153153    private variable _rotatePending 0
    154154    private variable _legendPending 0
    155     private variable _fieldNames {} 
    156     private variable _fields 
     155    private variable _fieldNames {}
     156    private variable _fields
    157157    private variable _curFldName ""
    158158    private variable _curFldLabel ""
     
    243243    } {
    244244        usual
    245         ignore -highlightthickness -borderwidth -background 
     245        ignore -highlightthickness -borderwidth -background
    246246    }
    247247
     
    249249        menu $itk_component(plotarea).menu \
    250250            -relief flat \
    251             -tearoff no 
     251            -tearoff no
    252252    } {
    253253        usual
     
    269269
    270270    set _map(id) [$c create image 0 0 -anchor nw -image $_image(plot)]
    271     set _map(cwidth) -1 
    272     set _map(cheight) -1 
     271    set _map(cwidth) -1
     272    set _map(cheight) -1
    273273    set _map(zoom) 1.0
    274274    set _map(original) ""
     
    338338        BuildCameraTab
    339339    } errs] != 0 } {
    340         global errorInfo
     340        global errorInfo
    341341        puts stderr "errs=$errs errorInfo=$errorInfo"
    342342    }
    343343
    344     # Hack around the Tk panewindow.  The problem is that the requested 
     344    # Hack around the Tk panewindow.  The problem is that the requested
    345345    # size of the 3d view isn't set until an image is retrieved from
    346346    # the server.  So the panewindow uses the tiny size.
     
    348348    pack forget $itk_component(view)
    349349    blt::table $itk_component(plotarea) \
    350         0,0 $itk_component(view) -fill both -reqwidth $w 
     350        0,0 $itk_component(view) -fill both -reqwidth $w
    351351    blt::table configure $itk_component(plotarea) c1 -resize none
    352352
     
    432432
    433433itcl::body Rappture::VtkImageViewer::DoRotate {} {
    434     SendCmd "camera orient [ViewToQuaternion]" 
     434    SendCmd "camera orient [ViewToQuaternion]"
    435435    set _rotatePending 0
    436436}
     
    459459    if { !$_rotatePending } {
    460460        set _rotatePending 1
    461         global rotate_delay 
     461        global rotate_delay
    462462        $_dispatcher event -after $rotate_delay !rotate
    463463    }
     
    558558                    continue
    559559                }
    560                 if {[info exists _obj2ovride($dataobj-raise)] && 
     560                if {[info exists _obj2ovride($dataobj-raise)] &&
    561561                    $_obj2ovride($dataobj-raise)} {
    562562                    set dlist [linsert $dlist 0 $dataobj]
     
    586586            }
    587587            return $dlist
    588         }           
     588        }
    589589        -image {
    590590            if {[llength $args] != 2} {
     
    606606}
    607607
    608 # 
     608#
    609609# scale  --
    610610#
    611611#       This gets called either incrementally as new simulations are
    612612#       added or all at once as a sequence of images.
    613 #       This  accounts for all objects--even those not showing on the 
    614 #       screen.  Because of this, the limits are appropriate for all 
     613#       This  accounts for all objects--even those not showing on the
     614#       screen.  Because of this, the limits are appropriate for all
    615615#       objects as the user scans through data in the ResultSet viewer.
    616616#
     
    804804    $_dispatcher cancel !legend
    805805    # disconnected -- no more data sitting on server
    806     array unset _datasets 
    807     array unset _data 
    808     array unset _colormaps 
    809     array unset _obj2datasets 
     806    array unset _datasets
     807    array unset _data
     808    array unset _colormaps
     809    array unset _obj2datasets
    810810    global readyForNextFrame
    811811    set readyForNextFrame 1
     
    839839        set time [clock seconds]
    840840        set date [clock format $time]
    841         #puts stderr "$date: received image [image width $_image(plot)]x[image height $_image(plot)] image>"       
     841        #puts stderr "$date: received image [image width $_image(plot)]x[image height $_image(plot)] image>"
    842842        if { $_start > 0 } {
    843843            set finish [clock clicks -milliseconds]
     
    910910    # Turn on buffering of commands to the server.  We don't want to
    911911    # be preempted by a server disconnect/reconnect (which automatically
    912     # generates a new call to Rebuild).   
     912    # generates a new call to Rebuild).
    913913    StartBufferingCommands
    914914
    915915    if { $_width != $w || $_height != $h || $_reset } {
    916         set _width $w
    917         set _height $h
    918         $_arcball resize $w $h
    919         DoResize
    920         if { $_settings(-stretchtofit) } {
    921             AdjustSetting -stretchToFit
    922         }
     916        set _width $w
     917        set _height $h
     918        $_arcball resize $w $h
     919        DoResize
     920        if { $_settings(-stretchtofit) } {
     921            AdjustSetting -stretchToFit
     922        }
    923923    }
    924924    if { $_reset } {
    925         #
    926         # Reset the camera and other view parameters
    927         #
     925        #
     926        # Reset the camera and other view parameters
     927        #
    928928        InitSettings -view3d -background
    929929
    930         SendCmd "axis lrot z 90"
    931         $_arcball quaternion [ViewToQuaternion]
     930        SendCmd "axis lrot z 90"
     931        $_arcball quaternion [ViewToQuaternion]
    932932        if {$_settings(-view3d) } {
    933933            if { $_view(-ortho)} {
     
    938938            DoRotate
    939939            SendCmd "camera reset"
    940         }
    941         PanCamera
     940        }
     941        PanCamera
    942942        StopBufferingCommands
    943943        SendCmd "imgflush"
     
    957957            if { ![info exists _datasets($tag)] } {
    958958                set bytes [$dataobj vtkdata $comp]
    959                 if 0 {
     959                if 0 {
    960960                    set f [open /tmp/vtkimage.vtk "w"]
    961961                    fconfigure $f -translation binary -encoding binary
    962962                    puts -nonewline $f $bytes
    963963                    close $f
    964                 }
     964                }
    965965                set length [string length $bytes]
    966966                if { $_reportClientInfo }  {
     
    990990    }
    991991    if { $_first != ""  } {
    992         $itk_component(field) choices delete 0 end
    993         $itk_component(fieldmenu) delete 0 end
    994         array unset _fields
     992        $itk_component(field) choices delete 0 end
     993        $itk_component(fieldmenu) delete 0 end
     994        array unset _fields
    995995        set _curFldName ""
    996996        foreach cname [$_first components] {
     
    10211021
    10221022    if { $_reset } {
    1023         SendCmd "axis tickpos outside"
     1023        SendCmd "axis tickpos outside"
    10241024        #SendCmd "axis lformat all %g"
    1025        
    1026         foreach axis { x y z } {
     1025
     1026        foreach axis { x y z } {
    10271027            set label [$_first hints ${axis}label]
    1028             if { $label == "" } {
    1029                 set label [string toupper $axis]
    1030             }
    1031             # May be a space in the axis label.
    1032             SendCmd [list axis name $axis $label]
    1033 
    1034             if {$axis == "z" && [$_first hints ${axis}units] == ""} {
     1028            if { $label == "" } {
     1029                set label [string toupper $axis]
     1030            }
     1031            # May be a space in the axis label.
     1032            SendCmd [list axis name $axis $label]
     1033
     1034            if {$axis == "z" && [$_first hints ${axis}units] == ""} {
    10351035                if {$_curFldName != ""} {
    10361036                    set units [lindex $_fields($_curFldName) 1]
    10371037                }
    1038             } else {
    1039                 set units [$_first hints ${axis}units]
    1040             }
    1041             if { $units != "" } {
    1042                 # May be a space in the axis units.
    1043                 SendCmd [list axis units $axis $units]
    1044             }
    1045         }
    1046         #
    1047         # Reset the camera and other view parameters
    1048         #
    1049         $_arcball quaternion [ViewToQuaternion]
     1038            } else {
     1039                set units [$_first hints ${axis}units]
     1040            }
     1041            if { $units != "" } {
     1042                # May be a space in the axis units.
     1043                SendCmd [list axis units $axis $units]
     1044            }
     1045        }
     1046        #
     1047        # Reset the camera and other view parameters
     1048        #
     1049        $_arcball quaternion [ViewToQuaternion]
    10501050        if {$_settings(-view3d) } {
    10511051            if { $_view(-ortho)} {
     
    10571057            SendCmd "camera reset"
    10581058        }
    1059         PanCamera
    1060         InitSettings -xgrid -ygrid -zgrid \
     1059        PanCamera
     1060        InitSettings -xgrid -ygrid -zgrid \
    10611061            -axisvisible -axislabels -field -view3d
    10621062        if { [array size _fields] < 2 } {
     
    10671067    }
    10681068    global readyForNextFrame
    1069     set readyForNextFrame 0;            # Don't advance to the next frame
     1069    set readyForNextFrame 0;                # Don't advance to the next frame
    10701070
    10711071    # Actually write the commands to the server socket.  If it fails, we don't
     
    10851085itcl::body Rappture::VtkImageViewer::CurrentDatasets {args} {
    10861086    set flag [lindex $args 0]
    1087     switch -- $flag { 
     1087    switch -- $flag {
    10881088        "-all" {
    10891089            if { [llength $args] > 1 } {
     
    11041104                set dlist [get -visible]
    11051105            }
    1106         }           
     1106        }
    11071107        default {
    11081108            set dlist $args
     
    12261226    foreach tag [CurrentDatasets -visible] {
    12271227        SendCmd "dataset getscalar pixel $x $y $tag"
    1228     } 
     1228    }
    12291229}
    12301230
     
    13301330        "-background" {
    13311331            set bg [$itk_component(background) value]
    1332             array set fgcolors {
    1333                 "black" "white"
    1334                 "white" "black"
    1335                 "grey"  "black"
    1336             }
     1332            array set fgcolors {
     1333                "black" "white"
     1334                "white" "black"
     1335                "grey"  "black"
     1336            }
    13371337            set fg $fgcolors($bg)
    13381338            configure -plotbackground $bg -plotforeground $fg
    1339             $itk_component(view) delete "legend"
     1339            $itk_component(view) delete "legend"
    13401340            SendCmd "screen bgcolor [Color2RGB $bg]"
    13411341            SendCmd "outline color [Color2RGB $fg]"
    13421342            SendCmd "axis color all [Color2RGB $fg]"
    1343             DrawLegend
     1343            DrawLegend
    13441344        }
    13451345        "-backingcolor" {
    13461346            set color [$itk_component(backingcolor) value]
    1347             if { $color == "none" } {
    1348                 if { $_settings(-backingvisible) } {
    1349                     SendCmd "image backing 0"
    1350                     set _settings(-backingvisible) 0
    1351                 }
    1352             } else {
    1353                 if { !$_settings(-backingvisible) } {
    1354                     SendCmd "image backing 1"
    1355                     set _settings(-backingvisible) 1
    1356                 }
    1357                 SendCmd "image color [Color2RGB $color]"
    1358             }
     1347            if { $color == "none" } {
     1348                if { $_settings(-backingvisible) } {
     1349                    SendCmd "image backing 0"
     1350                    set _settings(-backingvisible) 0
     1351                }
     1352            } else {
     1353                if { !$_settings(-backingvisible) } {
     1354                    SendCmd "image backing 1"
     1355                    set _settings(-backingvisible) 1
     1356                }
     1357                SendCmd "image color [Color2RGB $color]"
     1358            }
    13591359        }
    13601360        "-backingvisible" {
    1361             set bool $_settings($what)
     1361            set bool $_settings($what)
    13621362            SendCmd "image backing $bool"
    13631363        }
     
    13721372            }
    13731373            StopBufferingCommands
    1374             EventuallyRequestLegend
     1374            EventuallyRequestLegend
    13751375        }
    13761376        "-colormapdiscrete" {
     
    14101410        }
    14111411        "-view3d" {
    1412             set bool $_settings($what)
     1412            set bool $_settings($what)
    14131413            set c $itk_component(view)
    14141414            StartBufferingCommands
     
    14201420            }
    14211421            AdjustSetting -opacity
    1422             if { $bool } {
    1423                 $itk_component(opacity) configure -state normal
    1424                 $itk_component(opacity_l) configure -state normal
     1422            if { $bool } {
     1423                $itk_component(opacity) configure -state normal
     1424                $itk_component(opacity_l) configure -state normal
    14251425                if {$_view(-ortho)} {
    14261426                    SendCmd "camera mode ortho"
     
    14291429                }
    14301430                SendCmd "camera aspect native"
    1431             } else {
    1432                 $itk_component(opacity) configure -state disabled
    1433                 $itk_component(opacity_l) configure -state disabled
     1431            } else {
     1432                $itk_component(opacity) configure -state disabled
     1433                $itk_component(opacity_l) configure -state disabled
    14341434                SendCmd "camera mode image"
    14351435                if {$_settings(-stretchtofit)} {
     
    14401440                set q [ViewToQuaternion]
    14411441                $_arcball quaternion $q
    1442                 SendCmd "camera orient $q" 
     1442                SendCmd "camera orient $q"
    14431443            } else {
    14441444                bind $c <ButtonPress-1> {}
     
    14471447            }
    14481448            SendCmd "camera reset"
    1449             # Fix the mouse bindings for rotation/panning and the 
     1449            # Fix the mouse bindings for rotation/panning and the
    14501450            # camera mode. Ideally we'd create a bindtag for these.
    14511451            if { $bool } {
     
    14701470        "-legendvisible" {
    14711471            if { !$_settings($what) } {
    1472                 $itk_component(view) delete legend
    1473             }
    1474             DrawLegend
     1472                $itk_component(view) delete legend
     1473            }
     1474            DrawLegend
    14751475        }
    14761476        "-opacity" {
    14771477            set _changed($what) 1
    1478             if { $_settings(-view3d) } {
     1478            if { $_settings(-view3d) } {
    14791479                set _settings(-saveopacity) $_settings($what)
    14801480                set val [expr $_settings($what) * 0.01]
    14811481                SendCmd "image opacity $val"
    14821482            } else {
    1483                 SendCmd "image opacity 1.0"
     1483                SendCmd "image opacity 1.0"
    14841484            }
    14851485        }
     
    14871487            set bool $_settings($what)
    14881488            SendCmd "outline visible $bool"
    1489         }
     1489        }
    14901490        "-stretchtofit" {
    1491             set bool $_settings($what)
    1492             if { $bool } {
    1493                 if { $_settings(-view3d) } {
    1494                     SendCmd "camera aspect native"
    1495                 } else {
    1496                     SendCmd "camera aspect window"
    1497                 }
    1498             } else {
    1499                 SendCmd "camera aspect native"
    1500             }
    1501         }
     1491            set bool $_settings($what)
     1492            if { $bool } {
     1493                if { $_settings(-view3d) } {
     1494                    SendCmd "camera aspect native"
     1495                } else {
     1496                    SendCmd "camera aspect window"
     1497                }
     1498            } else {
     1499                SendCmd "camera aspect native"
     1500            }
     1501        }
    15021502        "-xgrid" - "-ygrid" - "-zgrid" {
    15031503            set axis [string tolower [string range $what 1 1]]
     
    15051505            SendCmd "axis grid $axis $bool"
    15061506        }
    1507         default {
     1507        default {
    15081508            error "don't know how to fix $what"
    15091509        }
     
    15151515#
    15161516#       Request a new legend from the server.  The size of the legend
    1517 #       is determined from the height of the canvas. 
     1517#       is determined from the height of the canvas.
    15181518#
    15191519# This should be called when
    1520 #       1.  A new current colormap is set.
    1521 #       2.  Window is resized.
    1522 #       3.  The limits of the data have changed.  (Just need a redraw).
    1523 #       4.  Number of isolines have changed. (Just need a redraw).
    1524 #       5.  Legend becomes visible (Just need a redraw).
     1520#        1.  A new current colormap is set.
     1521#        2.  Window is resized.
     1522#        3.  The limits of the data have changed.  (Just need a redraw).
     1523#        4.  Number of isolines have changed. (Just need a redraw).
     1524#        5.  Legend becomes visible (Just need a redraw).
    15251525#
    15261526itcl::body Rappture::VtkImageViewer::RequestLegend {} {
     
    15291529    set w 12
    15301530    set lineht [font metrics $font -linespace]
    1531     # color ramp height = (canvas height) - (min and max value lines) - 2 
     1531    # color ramp height = (canvas height) - (min and max value lines) - 2
    15321532    set h [expr {$_height - 2 * ($lineht + 2)}]
    15331533    set _legendHeight $h
     
    15351535    set fname $_curFldName
    15361536    if { [string match "component*" $fname] } {
    1537         set title ""
     1537        set title ""
    15381538    } else {
    1539         if { [info exists _fields($fname)] } {
    1540             foreach { title units } $_fields($fname) break
    1541             if { $units != "" } {
    1542                 set title [format "%s (%s)" $title $units]
    1543             }
    1544         } else {
    1545             set title $fname
    1546         }
     1539        if { [info exists _fields($fname)] } {
     1540            foreach { title units } $_fields($fname) break
     1541            if { $units != "" } {
     1542                set title [format "%s (%s)" $title $units]
     1543            }
     1544        } else {
     1545            set title $fname
     1546        }
    15471547    }
    15481548    # If there's a title too, substract one more line
    15491549    if { $title != "" } {
    1550         incr h -$lineht 
     1550        incr h -$lineht
    15511551    }
    15521552    if { $h < 1 } {
     
    15551555    # Set the legend on the first image dataset.
    15561556    if { $_currentColormap != "" && $_currentColormap != "none" } {
    1557         #SendCmd "legend $_currentColormap scalar $_curFldName {} $w $h 0"
     1557        #SendCmd "legend $_currentColormap scalar $_curFldName {} $w $h 0"
    15581558        SendCmd "legend2 $_currentColormap $w $h"
    15591559    }
     
    15661566    # Keep track of the colormaps that we build.
    15671567    if { $name != "none" && ![info exists _colormaps($name)] } {
    1568         BuildColormap $name 
     1568        BuildColormap $name
    15691569        set _colormaps($name) 1
    15701570    }
     
    15931593itcl::configbody Rappture::VtkImageViewer::mode {
    15941594    switch -- $itk_option(-mode) {
    1595         "volume" {
    1596             set _settings(-view3d) 1
    1597         }
    1598         "vtkimage" {
    1599             set _settings(-view3d) 0
    1600         }
    1601         default {
    1602             error "unknown mode settings \"$itk_option(-mode)\""
    1603         }
     1595        "volume" {
     1596            set _settings(-view3d) 1
     1597        }
     1598        "vtkimage" {
     1599            set _settings(-view3d) 0
     1600        }
     1601        default {
     1602            error "unknown mode settings \"$itk_option(-mode)\""
     1603        }
    16041604    }
    16051605    if { !$_reset } {
     
    16171617            SendCmd "screen bgcolor $rgb"
    16181618        }
    1619         $itk_component(view) configure -background $itk_option(-plotbackground)
     1619        $itk_component(view) configure -background $itk_option(-plotbackground)
    16201620    }
    16211621}
     
    16751675
    16761676    itk_component add field_l {
    1677         label $inner.field_l -text "Field" -font "Arial 9" 
     1677        label $inner.field_l -text "Field" -font "Arial 9"
    16781678    } {
    16791679        ignore -font
     
    16851685        [itcl::code $this AdjustSetting -field]
    16861686
    1687     label $inner.colormap_l -text "Colormap" -font "Arial 9" 
     1687    label $inner.colormap_l -text "Colormap" -font "Arial 9"
    16881688    itk_component add colormap {
    16891689        Rappture::Combobox $inner.colormap -width 10 -editable no
     
    16951695        [itcl::code $this AdjustSetting -colormap]
    16961696
    1697     label $inner.backingcolor_l -text "Backing Color" -font "Arial 9" 
     1697    label $inner.backingcolor_l -text "Backing Color" -font "Arial 9"
    16981698    itk_component add backingcolor {
    16991699        Rappture::Combobox $inner.backingcolor -width 10 -editable no
     
    17091709        "red"                "red"              \
    17101710        "white"              "white"            \
    1711         "none"               "none"
     1711        "none"               "none"
    17121712
    17131713    $itk_component(backingcolor) value $_settings(-backingcolor)
    17141714    bind $inner.backingcolor <<Value>> \
    1715         [itcl::code $this AdjustSetting -backingcolor]
    1716 
    1717     label $inner.background_l -text "Background Color" -font "Arial 9" 
     1715        [itcl::code $this AdjustSetting -backingcolor]
     1716
     1717    label $inner.background_l -text "Background Color" -font "Arial 9"
    17181718    itk_component add background {
    17191719        Rappture::Combobox $inner.background -width 10 -editable no
     
    17221722        "black"              "black"            \
    17231723        "white"              "white"            \
    1724         "grey"               "grey"             
     1724        "grey"               "grey"
    17251725
    17261726    $itk_component(background) value "white"
     
    17731773        2,0 $inner.backingcolor_l  -anchor w -pady 2  \
    17741774        2,1 $inner.backingcolor    -anchor w -pady 2 -fill x  \
    1775         3,0 $inner.background_l -anchor w -pady 2 \
    1776         3,1 $inner.background -anchor w -pady 2  -fill x \
     1775        3,0 $inner.background_l -anchor w -pady 2 \
     1776        3,1 $inner.background -anchor w -pady 2  -fill x \
    17771777        4,0 $inner.backing -anchor w -pady 2 -cspan 2 \
    17781778        5,0 $inner.stretch    -anchor w -pady 2 -cspan 2 \
     
    17871787        16,1 $inner.window   -fill x   -pady 2 \
    17881788        17,0 $inner.level_l -anchor w -pady 2 \
    1789         17,1 $inner.level   -fill x   -pady 2 
     1789        17,1 $inner.level   -fill x   -pady 2
    17901790
    17911791    blt::table configure $inner r* c* -resize none
     
    18131813        -command [itcl::code $this AdjustSetting -axislabels] \
    18141814        -font "Arial 9"
    1815     label $inner.grid_l -text "Grid" -font "Arial 9" 
     1815    label $inner.grid_l -text "Grid" -font "Arial 9"
    18161816    checkbutton $inner.xgrid \
    18171817        -text "X" \
     
    18351835        -font "Arial 9"
    18361836
    1837     label $inner.mode_l -text "Mode" -font "Arial 9" 
     1837    label $inner.mode_l -text "Mode" -font "Arial 9"
    18381838
    18391839    itk_component add axisflymode {
     
    18441844        "closest_triad"   "closest" \
    18451845        "furthest_triad"  "farthest" \
    1846         "outer_edges"     "outer"         
     1846        "outer_edges"     "outer"
    18471847    $itk_component(axisflymode) value $_settings(-axisflymode)
    18481848    bind $inner.mode <<Value>> [itcl::code $this AdjustSetting -axisflymode]
     
    18521852        1,0 $inner.labels  -anchor w -cspan 4 \
    18531853        2,0 $inner.minorticks  -anchor w -cspan 4 \
    1854         4,0 $inner.grid_l  -anchor w \
     1854        4,0 $inner.grid_l  -anchor w \
    18551855        4,1 $inner.xgrid   -anchor w \
    18561856        4,2 $inner.ygrid   -anchor w \
    18571857        4,3 $inner.zgrid   -anchor w \
    18581858        5,0 $inner.mode_l  -anchor w -padx { 2 0 } \
    1859         5,1 $inner.mode    -fill x -cspan 3 
     1859        5,1 $inner.mode    -fill x -cspan 3
    18601860
    18611861    blt::table configure $inner r* c* -resize none
     
    19161916
    19171917#
    1918 #  camera -- 
     1918#  camera --
    19191919#
    19201920itcl::body Rappture::VtkImageViewer::camera {option args} {
    1921     switch -- $option { 
     1921    switch -- $option {
    19221922        "show" {
    19231923            puts [array get _view]
     
    19671967
    19681968itcl::body Rappture::VtkImageViewer::GetImage { args } {
    1969     if { [image width $_image(download)] > 0 && 
     1969    if { [image width $_image(download)] > 0 &&
    19701970         [image height $_image(download)] > 0 } {
    19711971        set bytes [$_image(download) data -format "jpeg -quality 100"]
     
    19801980        -title "[Rappture::filexfer::label downloadWord] as..."
    19811981    set inner [$popup component inner]
    1982     label $inner.summary -text "" -anchor w 
     1982    label $inner.summary -text "" -anchor w
    19831983    radiobutton $inner.vtk_button -text "VTK data file" \
    19841984        -variable [itcl::scope _downloadPopup(format)] \
    19851985        -font "Arial 9 " \
    1986         -value vtk 
     1986        -value vtk
    19871987    Rappture::Tooltip::for $inner.vtk_button "Save as VTK data file."
    19881988    radiobutton $inner.image_button -text "Image File" \
    19891989        -variable [itcl::scope _downloadPopup(format)] \
    19901990        -font "Arial 9 " \
    1991         -value image 
     1991        -value image
    19921992    Rappture::Tooltip::for $inner.image_button \
    19931993        "Save as digital image."
     
    20102010        2,0 $inner.image_button -anchor w -cspan 2 -padx { 4 0 } \
    20112011        4,1 $inner.cancel -width .9i -fill y \
    2012         4,0 $inner.ok -padx 2 -width .9i -fill y 
     2012        4,0 $inner.ok -padx 2 -width .9i -fill y
    20132013    blt::table configure $inner r3 -height 4
    20142014    blt::table configure $inner r4 -pady 4
     
    20212021# SetObjectStyle --
    20222022#
    2023 #       Set the style of the image/contour object.  This gets calls 
     2023#       Set the style of the image/contour object.  This gets calls
    20242024#       for each dataset once as it is loaded.  It can overridden by
    20252025#       the user controls.
     
    20632063    SendCmd "outline visible $_settings(-outline) $tag"
    20642064    SendCmd "image add $tag"
    2065     SetCurrentColormap $style(-color) 
     2065    SetCurrentColormap $style(-color)
    20662066    set color [$itk_component(backingcolor) value]
    20672067    SendCmd "image color [Color2RGB $color] $tag"
     
    20942094        #puts stderr "read $size bytes for [image width $_image(legend)]x[image height $_image(legend)] legend>"
    20952095        if { [catch {DrawLegend} errs] != 0 } {
    2096             global errorInfo
    2097             puts stderr "errs=$errs errorInfo=$errorInfo"
     2096            global errorInfo
     2097            puts stderr "errs=$errs errorInfo=$errorInfo"
    20982098        }
    20992099    }
     
    21122112    set font "Arial 8"
    21132113    set lineht [font metrics $font -linespace]
    2114    
     2114
    21152115    if { [string match "component*" $fname] } {
    2116         set title ""
     2116        set title ""
    21172117    } else {
    2118         if { [info exists _fields($fname)] } {
    2119             foreach { title units } $_fields($fname) break
    2120             if { $units != "" } {
    2121                 set title [format "%s (%s)" $title $units]
    2122             }
    2123         } else {
    2124             set title $fname
    2125         }
     2118        if { [info exists _fields($fname)] } {
     2119            foreach { title units } $_fields($fname) break
     2120            if { $units != "" } {
     2121                set title [format "%s (%s)" $title $units]
     2122            }
     2123        } else {
     2124            set title $fname
     2125        }
    21262126    }
    21272127    set x [expr $w - 2]
    21282128    if { !$_settings(-legendvisible) } {
    2129         $c delete legend
    2130         return
    2131     } 
     2129        $c delete legend
     2130        return
     2131    }
    21322132    if { [$c find withtag "legend"] == "" } {
    2133         set y 2
    2134         # If there's a legend title, create a text item for the title.
     2133        set y 2
     2134        # If there's a legend title, create a text item for the title.
    21352135        $c create text $x $y \
    21362136            -anchor ne \
     
    21402140            incr y $lineht
    21412141        }
    2142         $c create text $x $y \
     2142        $c create text $x $y \
    21432143            -anchor ne \
    21442144            -fill $itk_option(-plotforeground) -tags "vmax legend" \
    21452145            -font $font
    21462146        incr y $lineht
    2147         $c create image $x $y \
    2148             -anchor ne \
    2149             -image $_image(legend) -tags "colormap legend"
    2150         $c create rectangle $x $y 1 1 \
    2151             -fill "" -outline "" -tags "sensor legend"
    2152         $c create text $x [expr {$h-2}] \
    2153             -anchor se \
    2154             -fill $itk_option(-plotforeground) -tags "vmin legend" \
    2155             -font $font
    2156         $c bind sensor <Enter> [itcl::code $this EnterLegend %x %y]
    2157         $c bind sensor <Leave> [itcl::code $this LeaveLegend]
    2158         $c bind sensor <Motion> [itcl::code $this MotionLegend %x %y]
     2147        $c create image $x $y \
     2148            -anchor ne \
     2149            -image $_image(legend) -tags "colormap legend"
     2150        $c create rectangle $x $y 1 1 \
     2151            -fill "" -outline "" -tags "sensor legend"
     2152        $c create text $x [expr {$h-2}] \
     2153            -anchor se \
     2154            -fill $itk_option(-plotforeground) -tags "vmin legend" \
     2155            -font $font
     2156        $c bind sensor <Enter> [itcl::code $this EnterLegend %x %y]
     2157        $c bind sensor <Leave> [itcl::code $this LeaveLegend]
     2158        $c bind sensor <Motion> [itcl::code $this MotionLegend %x %y]
    21592159    }
    21602160
     
    21702170    if { [info exists _limits($_curFldName)] } {
    21712171        foreach { vmin vmax } $_limits($_curFldName) break
    2172         $c itemconfigure vmin -text [format %g $vmin]
    2173         $c itemconfigure vmax -text [format %g $vmax]
     2172        $c itemconfigure vmin -text [format %g $vmin]
     2173        $c itemconfigure vmax -text [format %g $vmax]
    21742174    }
    21752175    set y 2
     
    21772177    if { $title != "" } {
    21782178        $c itemconfigure title -text $title
    2179         $c coords title $x $y
    2180         incr y $lineht
     2179        $c coords title $x $y
     2180        incr y $lineht
    21812181    }
    21822182    $c coords vmax $x $y
     
    22262226    set font "Arial 8"
    22272227    set lineht [font metrics $font -linespace]
    2228    
     2228
    22292229    set ih [image height $_image(legend)]
    22302230    # Subtract off the offset of the color ramp from the top of the canvas
     
    22322232
    22332233    if { [string match "component*" $fname] } {
    2234         set title ""
     2234        set title ""
    22352235    } else {
    2236         if { [info exists _fields($fname)] } {
    2237             foreach { title units } $_fields($fname) break
    2238             if { $units != "" } {
    2239                 set title [format "%s (%s)" $title $units]
    2240             }
    2241         } else {
    2242             set title $fname
    2243         }
     2236        if { [info exists _fields($fname)] } {
     2237            foreach { title units } $_fields($fname) break
     2238            if { $units != "" } {
     2239                set title [format "%s (%s)" $title $units]
     2240            }
     2241        } else {
     2242            set title $fname
     2243        }
    22442244    }
    22452245    # If there's a legend title, increase the offset by the line height.
     
    22572257    }
    22582258    set color [eval format "\#%02x%02x%02x" $pixel]
    2259     $_image(swatch) put black  -to 0 0 23 23 
    2260     $_image(swatch) put $color -to 1 1 22 22 
     2259    $_image(swatch) put black  -to 0 0 23 23
     2260    $_image(swatch) put $color -to 1 1 22 22
    22612261
    22622262    # Compute the value of the point
     
    22682268        set value 0.0
    22692269    }
    2270     set tipx [expr $x + 15] 
     2270    set tipx [expr $x + 15]
    22712271    set tipy [expr $y - 5]
    22722272    .rappturetooltip configure -icon $_image(swatch)
     
    22762276        Rappture::Tooltip::text $c [format "$title %g" $value]
    22772277    }
    2278     Rappture::Tooltip::tooltip show $c +$tipx,+$tipy   
     2278    Rappture::Tooltip::tooltip show $c +$tipx,+$tipy
    22792279}
    22802280
     
    22912291# ----------------------------------------------------------------------
    22922292itcl::body Rappture::VtkImageViewer::Combo {option} {
    2293     set c $itk_component(view) 
     2293    set c $itk_component(view)
    22942294    switch -- $option {
    22952295        post {
     
    23042304        }
    23052305        deactivate {
    2306             $c itemconfigure title -fill $itk_option(-plotforeground) 
     2306            $c itemconfigure title -fill $itk_option(-plotforeground)
    23072307        }
    23082308        invoke {
     
    23162316}
    23172317
    2318 itcl::body Rappture::VtkImageViewer::SetOrientation { side } { 
     2318itcl::body Rappture::VtkImageViewer::SetOrientation { side } {
    23192319    array set positions {
    23202320        front  "0.707107 0.707107 0 0"
     
    23272327    foreach name { -qw -qx -qy -qz } value $positions($side) {
    23282328        set _view($name) $value
    2329     } 
     2329    }
    23302330    set q [ViewToQuaternion]
    23312331    $_arcball quaternion $q
  • branches/1.3/gui/scripts/vtkmeshviewer.tcl

    r4772 r5011  
    1 # -*- mode: tcl; indent-tabs-mode: nil -*- 
     1# -*- mode: tcl; indent-tabs-mode: nil -*-
    22# ----------------------------------------------------------------------
    33#  COMPONENT: vtkmeshviewer - Vtk mesh viewer
     
    5858    public method isconnected {}
    5959    public method limits { dataobj }
    60     public method parameters {title args} { 
    61         # do nothing 
     60    public method parameters {title args} {
     61        # do nothing
    6262    }
    6363    public method scale {args}
     
    6767    private method BuildAxisTab {}
    6868    private method BuildCameraTab {}
    69     private method BuildDownloadPopup { widget command } 
     69    private method BuildDownloadPopup { widget command }
    7070    private method BuildPolydataTab {}
    7171    private method Connect {}
     
    7474    private method DoResize {}
    7575    private method DoRotate {}
    76     private method EventuallyResize { w h } 
    77     private method EventuallyRotate { q } 
    78     private method EventuallySetPolydataOpacity {} 
    79     private method GetImage { args } 
    80     private method GetVtkData { args } 
     76    private method EventuallyResize { w h }
     77    private method EventuallyRotate { q }
     78    private method EventuallySetPolydataOpacity {}
     79    private method GetImage { args }
     80    private method GetVtkData { args }
    8181    private method InitSettings { args  }
    82     private method IsValidObject { dataobj } 
     82    private method IsValidObject { dataobj }
    8383    private method Pan {option x y}
    8484    private method PanCamera {}
    8585    private method Pick {x y}
    86     private method QuaternionToView { q } { 
     86    private method QuaternionToView { q } {
    8787        foreach { _view(-qw) _view(-qx) _view(-qy) _view(-qz) } $q break
    8888    }
     
    9191    private method ReceiveImage { args }
    9292    private method Rotate {option x y}
    93     private method SetObjectStyle { dataobj } 
     93    private method SetObjectStyle { dataobj }
    9494    private method SetOrientation { side }
    9595    private method SetPolydataOpacity {}
    96     private method ViewToQuaternion {} { 
     96    private method ViewToQuaternion {} {
    9797        return [list $_view(-qw) $_view(-qx) $_view(-qy) $_view(-qz)]
    9898    }
     
    100100
    101101    private variable _arcball ""
    102     private variable _dlist "";         # list of data objects
     102    private variable _dlist "";         # list of data objects
    103103    private variable _obj2datasets
    104     private variable _obj2ovride;       # maps dataobj => style override
    105     private variable _datasets;         # contains all the dataobj-component
    106                                         # datasets in the server
    107     private variable _dataset2style;    # maps dataobj-component to transfunc
    108     private variable _style2datasets;   # maps tf back to list of
    109                                         # dataobj-components using the tf.
     104    private variable _obj2ovride;       # maps dataobj => style override
     105    private variable _datasets;         # contains all the dataobj-component
     106                                        # datasets in the server
     107    private variable _dataset2style;    # maps dataobj-component to transfunc
     108    private variable _style2datasets;   # maps tf back to list of
     109                                        # dataobj-components using the tf.
    110110    private variable _click;            # info used for rotate operations
    111111    private variable _limits;           # autoscale min/max for all axes
     
    200200    array set _widget {
    201201        -polydataopacity        100
    202     }       
     202    }
    203203    itk_component add view {
    204204        canvas $itk_component(plotarea).view \
     
    211211    itk_component add fieldmenu {
    212212        menu $itk_component(plotarea).menu -bg black -fg white -relief flat \
    213             -tearoff no 
     213            -tearoff no
    214214    } {
    215215        usual
     
    232232
    233233    set _map(id) [$c create image 0 0 -anchor nw -image $_image(plot)]
    234     set _map(cwidth) -1 
    235     set _map(cheight) -1 
     234    set _map(cwidth) -1
     235    set _map(cheight) -1
    236236    set _map(zoom) 1.0
    237237    set _map(original) ""
     
    279279    BuildCameraTab
    280280
    281     # Hack around the Tk panewindow.  The problem is that the requested 
     281    # Hack around the Tk panewindow.  The problem is that the requested
    282282    # size of the 3d view isn't set until an image is retrieved from
    283283    # the server.  So the panewindow uses the tiny size.
     
    285285    pack forget $itk_component(view)
    286286    blt::table $itk_component(plotarea) \
    287         0,0 $itk_component(view) -fill both -reqwidth $w 
     287        0,0 $itk_component(view) -fill both -reqwidth $w
    288288    blt::table configure $itk_component(plotarea) c1 -resize none
    289289
     
    372372
    373373itcl::body Rappture::VtkMeshViewer::DoRotate {} {
    374     SendCmd "camera orient [ViewToQuaternion]" 
     374    SendCmd "camera orient [ViewToQuaternion]"
    375375    set _rotatePending 0
    376376}
     
    497497                    continue
    498498                }
    499                 if {[info exists _obj2ovride($dataobj-raise)] && 
     499                if {[info exists _obj2ovride($dataobj-raise)] &&
    500500                    $_obj2ovride($dataobj-raise)} {
    501501                    set dlist [linsert $dlist 0 $dataobj]
     
    525525            }
    526526            return $dlist
    527         }           
     527        }
    528528        -image {
    529529            if {[llength $args] != 2} {
     
    814814    # Turn on buffering of commands to the server.  We don't want to
    815815    # be preempted by a server disconnect/reconnect (which automatically
    816     # generates a new call to Rebuild).   
     816    # generates a new call to Rebuild).
    817817    StartBufferingCommands
    818818
     
    897897        InitSettings -polydataedges -polydatalighting -polydataopacity \
    898898            -polydatavisible -polydatawireframe
    899  
     899
    900900        #SendCmd "axis lformat all %g"
    901901
     
    933933itcl::body Rappture::VtkMeshViewer::CurrentDatasets {args} {
    934934    set flag [lindex $args 0]
    935     switch -- $flag { 
     935    switch -- $flag {
    936936        "-all" {
    937937            if { [llength $args] > 1 } {
     
    952952                set dlist [get -visible]
    953953            }
    954         }           
     954        }
    955955        default {
    956956            set dlist $args
     
    10681068    foreach tag [CurrentDatasets -visible] {
    10691069        SendCmd "dataset getscalar pixel $x $y $tag"
    1070     } 
     1070    }
    10711071}
    10721072
     
    12451245        set f [open "$tmpfile" "w"]
    12461246        fconfigure $f -translation binary -encoding binary
    1247         puts $f $data 
     1247        puts $f $data
    12481248        close $f
    12491249        set reader [vtkDataSetReader $tag-xvtkDataSetReader]
     
    12931293        -variable [itcl::scope _settings(-polydatavisible)] \
    12941294        -command [itcl::code $this AdjustSetting -polydatavisible] \
    1295         -font "Arial 9" -anchor w 
     1295        -font "Arial 9" -anchor w
    12961296
    12971297    checkbutton $inner.outline \
     
    12991299        -variable [itcl::scope _settings(-outline)] \
    13001300        -command [itcl::code $this AdjustSetting -outline] \
    1301         -font "Arial 9" -anchor w 
     1301        -font "Arial 9" -anchor w
    13021302
    13031303    checkbutton $inner.wireframe \
     
    13051305        -variable [itcl::scope _settings(-polydatawireframe)] \
    13061306        -command [itcl::code $this AdjustSetting -polydatawireframe] \
    1307         -font "Arial 9" -anchor w 
     1307        -font "Arial 9" -anchor w
    13081308
    13091309    checkbutton $inner.lighting \
     
    13201320
    13211321    itk_component add field_l {
    1322         label $inner.field_l -text "Field" -font "Arial 9" 
     1322        label $inner.field_l -text "Field" -font "Arial 9"
    13231323    } {
    13241324        ignore -font
     
    13301330        [itcl::code $this AdjustSetting -field]
    13311331
    1332     label $inner.opacity_l -text "Opacity" -font "Arial 9" -anchor w 
     1332    label $inner.opacity_l -text "Opacity" -font "Arial 9" -anchor w
    13331333    ::scale $inner.opacity -from 0 -to 100 -orient horizontal \
    13341334        -variable [itcl::scope _widget(-polydataopacity)] \
     
    13451345        4,0 $inner.edges     -cspan 2  -anchor w -pady 2 \
    13461346        5,0 $inner.opacity_l -anchor w -pady 2 \
    1347         5,1 $inner.opacity   -fill x   -pady 2 
     1347        5,1 $inner.opacity   -fill x   -pady 2
    13481348
    13491349    blt::table configure $inner r* c* -resize none
     
    13721372        -command [itcl::code $this AdjustSetting -axislabels] \
    13731373        -font "Arial 9"
    1374     label $inner.grid_l -text "Grid" -font "Arial 9" 
     1374    label $inner.grid_l -text "Grid" -font "Arial 9"
    13751375    checkbutton $inner.xgrid \
    13761376        -text "X" \
     
    13941394        -font "Arial 9"
    13951395
    1396     label $inner.mode_l -text "Mode" -font "Arial 9" 
     1396    label $inner.mode_l -text "Mode" -font "Arial 9"
    13971397
    13981398    itk_component add axismode {
     
    14031403        "closest_triad"   "closest" \
    14041404        "furthest_triad"  "farthest" \
    1405         "outer_edges"     "outer"         
     1405        "outer_edges"     "outer"
    14061406    $itk_component(axismode) value "static"
    14071407    bind $inner.mode <<Value>> [itcl::code $this AdjustSetting -axismode]
     
    14751475
    14761476#
    1477 #  camera -- 
     1477#  camera --
    14781478#
    14791479itcl::body Rappture::VtkMeshViewer::camera {option args} {
    1480     switch -- $option { 
     1480    switch -- $option {
    14811481        "show" {
    14821482            puts [array get _view]
     
    15231523
    15241524itcl::body Rappture::VtkMeshViewer::GetImage { args } {
    1525     if { [image width $_image(download)] > 0 && 
     1525    if { [image width $_image(download)] > 0 &&
    15261526         [image height $_image(download)] > 0 } {
    15271527        set bytes [$_image(download) data -format "jpeg -quality 100"]
     
    15361536        -title "[Rappture::filexfer::label downloadWord] as..."
    15371537    set inner [$popup component inner]
    1538     label $inner.summary -text "" -anchor w 
     1538    label $inner.summary -text "" -anchor w
    15391539    radiobutton $inner.vtk_button -text "VTK data file" \
    15401540        -variable [itcl::scope _downloadPopup(format)] \
    15411541        -font "Helvetica 9 " \
    1542         -value vtk 
     1542        -value vtk
    15431543    Rappture::Tooltip::for $inner.vtk_button "Save as VTK data file."
    15441544    radiobutton $inner.image_button -text "Image File" \
    15451545        -variable [itcl::scope _downloadPopup(format)] \
    1546         -value image 
     1546        -value image
    15471547    Rappture::Tooltip::for $inner.image_button \
    15481548        "Save as digital image."
     
    15651565        2,0 $inner.image_button -anchor w -cspan 2 -padx { 4 0 } \
    15661566        4,1 $inner.cancel -width .9i -fill y \
    1567         4,0 $inner.ok -padx 2 -width .9i -fill y 
     1567        4,0 $inner.ok -padx 2 -width .9i -fill y
    15681568    blt::table configure $inner r3 -height 4
    15691569    blt::table configure $inner r4 -pady 4
     
    16341634}
    16351635
    1636 itcl::body Rappture::VtkMeshViewer::SetOrientation { side } { 
     1636itcl::body Rappture::VtkMeshViewer::SetOrientation { side } {
    16371637    array set positions {
    16381638        front "1 0 0 0"
     
    16451645    foreach name { -qw -qx -qy -qz } value $positions($side) {
    16461646        set _view($name) $value
    1647     } 
     1647    }
    16481648    set q [ViewToQuaternion]
    16491649    $_arcball quaternion $q
  • branches/1.3/gui/scripts/vtkstreamlinesviewer.tcl

    r4983 r5011  
    1 # -*- mode: tcl; indent-tabs-mode: nil -*- 
     1# -*- mode: tcl; indent-tabs-mode: nil -*-
    22# ----------------------------------------------------------------------
    33#  COMPONENT: vtkstreamlinesviewer - Vtk streamlines object viewer
     
    5757    public method get {args}
    5858    public method isconnected {}
    59     public method parameters {title args} { 
    60         # do nothing 
     59    public method parameters {title args} {
     60        # do nothing
    6161    }
    6262    public method scale {args}
     
    6868    private method BuildColormap { name colors }
    6969    private method BuildCutplaneTab {}
    70     private method BuildDownloadPopup { widget command } 
     70    private method BuildDownloadPopup { widget command }
    7171    private method BuildStreamsTab {}
    7272    private method BuildVolumeTab {}
     
    7979    private method DoReseed {}
    8080    private method DoRotate {}
    81     private method EnterLegend { x y } 
    82     private method EventuallyResize { w h } 
    83     private method EventuallyReseed { numPoints } 
    84     private method EventuallyRotate { q } 
    85     private method EventuallySetCutplane { axis args } 
    86     private method GetImage { args } 
    87     private method GetVtkData { args } 
     81    private method EnterLegend { x y }
     82    private method EventuallyResize { w h }
     83    private method EventuallyReseed { numPoints }
     84    private method EventuallyRotate { q }
     85    private method EventuallySetCutplane { axis args }
     86    private method GetImage { args }
     87    private method GetVtkData { args }
    8888    private method InitSettings { args  }
    89     private method IsValidObject { dataobj } 
     89    private method IsValidObject { dataobj }
    9090    private method LeaveLegend {}
    91     private method MotionLegend { x y } 
     91    private method MotionLegend { x y }
    9292    private method Pan {option x y}
    9393    private method PanCamera {}
    9494    private method Pick {x y}
    95     private method QuaternionToView { q } { 
     95    private method QuaternionToView { q } {
    9696        foreach { _view(-qw) _view(-qx) _view(-qy) _view(-qz) } $q break
    9797    }
     
    105105    private method ChangeColormap { dataobj comp color }
    106106    private method SetLegendTip { x y }
    107     private method SetObjectStyle { dataobj comp } 
    108     private method Slice {option args} 
     107    private method SetObjectStyle { dataobj comp }
     108    private method Slice {option args}
    109109    private method SetOrientation { side }
    110     private method ViewToQuaternion {} { 
     110    private method ViewToQuaternion {} {
    111111        return [list $_view(-qw) $_view(-qx) $_view(-qy) $_view(-qz)]
    112112    }
     
    118118    private variable _obj2datasets
    119119    private variable _obj2ovride   ;    # maps dataobj => style override
    120     private variable _datasets     ;    # contains all the dataobj-component 
     120    private variable _datasets     ;    # contains all the dataobj-component
    121121                                   ;    # datasets in the server
    122122    private variable _colormaps    ;    # contains all the colormaps
     
    147147    private variable _cutplanePending 0
    148148    private variable _legendPending 0
    149     private variable _vectorFields 
    150     private variable _scalarFields 
    151     private variable _fields 
     149    private variable _vectorFields
     150    private variable _scalarFields
     151    private variable _fields
    152152    private variable _curFldName ""
    153153    private variable _curFldLabel ""
     
    271271    itk_component add fieldmenu {
    272272        menu $itk_component(plotarea).menu -bg black -fg white -relief flat \
    273             -tearoff no 
     273            -tearoff no
    274274    } {
    275275        usual
     
    291291
    292292    set _map(id) [$c create image 0 0 -anchor nw -image $_image(plot)]
    293     set _map(cwidth) -1 
    294     set _map(cheight) -1 
     293    set _map(cwidth) -1
     294    set _map(cheight) -1
    295295    set _map(zoom) 1.0
    296296    set _map(original) ""
     
    338338            -offimage [Rappture::icon volume-off] \
    339339            -variable [itcl::scope _settings(-volumevisible)] \
    340             -command [itcl::code $this AdjustSetting -volumevisible] 
     340            -command [itcl::code $this AdjustSetting -volumevisible]
    341341    }
    342342    $itk_component(volume) select
     
    362362            -offimage [Rappture::icon cutbutton] \
    363363            -variable [itcl::scope _settings(-cutplanevisible)] \
    364             -command [itcl::code $this AdjustSetting -cutplanevisible] 
     364            -command [itcl::code $this AdjustSetting -cutplanevisible]
    365365    }
    366366    Rappture::Tooltip::for $itk_component(cutplane) \
     
    382382    set _image(legend) [image create photo]
    383383    itk_component add legend {
    384         canvas $itk_component(plotarea).legend -width 50 -highlightthickness 0 
     384        canvas $itk_component(plotarea).legend -width 50 -highlightthickness 0
    385385    } {
    386386        usual
     
    389389    }
    390390
    391     # Hack around the Tk panewindow.  The problem is that the requested 
     391    # Hack around the Tk panewindow.  The problem is that the requested
    392392    # size of the 3d view isn't set until an image is retrieved from
    393393    # the server.  So the panewindow uses the tiny size.
     
    395395    pack forget $itk_component(view)
    396396    blt::table $itk_component(plotarea) \
    397         0,0 $itk_component(view) -fill both -reqwidth $w 
     397        0,0 $itk_component(view) -fill both -reqwidth $w
    398398    blt::table configure $itk_component(plotarea) c1 -resize none
    399399
     
    480480
    481481itcl::body Rappture::VtkStreamlinesViewer::DoRotate {} {
    482     SendCmd "camera orient [ViewToQuaternion]" 
     482    SendCmd "camera orient [ViewToQuaternion]"
    483483    set _rotatePending 0
    484484}
     
    517517    if { !$_rotatePending } {
    518518        set _rotatePending 1
    519         global rotate_delay 
     519        global rotate_delay
    520520        $_dispatcher event -after $rotate_delay !rotate
    521521    }
     
    621621                    continue
    622622                }
    623                 if {[info exists _obj2ovride($dataobj-raise)] && 
     623                if {[info exists _obj2ovride($dataobj-raise)] &&
    624624                    $_obj2ovride($dataobj-raise)} {
    625625                    set dlist [linsert $dlist 0 $dataobj]
     
    649649            }
    650650            return $dlist
    651         }           
     651        }
    652652        -image {
    653653            if {[llength $args] != 2} {
     
    791791            set info {}
    792792            set user "???"
    793             if { [info exists env(USER)] } {
     793            if { [info exists env(USER)] } {
    794794                set user $env(USER)
    795             }
     795            }
    796796            set session "???"
    797             if { [info exists env(SESSION)] } {
     797            if { [info exists env(SESSION)] } {
    798798                set session $env(SESSION)
    799             }
     799            }
    800800            lappend info "version" "$Rappture::version"
    801801            lappend info "build" "$Rappture::build"
     
    851851    $_dispatcher cancel !legend
    852852    # disconnected -- no more data sitting on server
    853     array unset _datasets 
    854     array unset _data 
    855     array unset _colormaps 
    856     array unset _seeds 
    857     array unset _dataset2style 
    858     array unset _obj2datasets 
     853    array unset _datasets
     854    array unset _data
     855    array unset _colormaps
     856    array unset _seeds
     857    array unset _dataset2style
     858    array unset _obj2datasets
    859859}
    860860
     
    884884        set time [clock seconds]
    885885        set date [clock format $time]
    886         #puts stderr "$date: received image [image width $_image(plot)]x[image height $_image(plot)] image>"       
     886        #puts stderr "$date: received image [image width $_image(plot)]x[image height $_image(plot)] image>"
    887887        if { $_start > 0 } {
    888888            set finish [clock clicks -milliseconds]
     
    964964    set _first ""
    965965    if { $_reset } {
    966         set _width $w
    967         set _height $h
    968         $_arcball resize $w $h
    969         DoResize
    970         InitSettings -xgrid -ygrid -zgrid -axismode \
    971             -axesvisible -axislabelsvisible -axisminorticks
     966        set _width $w
     967        set _height $h
     968        $_arcball resize $w $h
     969        DoResize
     970        InitSettings -xgrid -ygrid -zgrid -axismode \
     971            -axesvisible -axislabelsvisible -axisminorticks
    972972        # This "imgflush" is to force an image returned before vtkvis starts
    973973        # reading a (big) dataset.  This will display an empty plot with axes
     
    988988                set bytes [$dataobj vtkdata $comp]
    989989                set length [string length $bytes]
    990                 if 0 {
     990                if 0 {
    991991                    set f [open /tmp/vtkstreamlines.vtk "w"]
    992992                    fconfigure $f -translation binary -encoding binary
    993993                    puts -nonewline $f $bytes
    994994                    close $f
    995                 }
     995                }
    996996                if { $_reportClientInfo }  {
    997997                    set info {}
     
    10321032            }
    10331033        }
    1034         $itk_component(field) choices delete 0 end
    1035         $itk_component(fieldmenu) delete 0 end
    1036         array unset _fields
     1034        $itk_component(field) choices delete 0 end
     1035        $itk_component(fieldmenu) delete 0 end
     1036        array unset _fields
    10371037        set _curFldName ""
    10381038        foreach cname [$_first components] {
     
    10681068            -volumevisible -volumeedges -volumelighting -volumeopacity \
    10691069            -volumewireframe \
    1070             -cutplanevisible \
    1071             -cutplanexposition -cutplaneyposition -cutplanezposition \
    1072             -cutplanexvisible -cutplaneyvisible -cutplanezvisible
    1073 
    1074         # Reset the camera and other view parameters
    1075         $_arcball quaternion [ViewToQuaternion]
    1076         if {$_view(-ortho)} {
    1077             SendCmd "camera mode ortho"
    1078         } else {
    1079             SendCmd "camera mode persp"
    1080         }
    1081         DoRotate
    1082         PanCamera
     1070            -cutplanevisible \
     1071            -cutplanexposition -cutplaneyposition -cutplanezposition \
     1072            -cutplanexvisible -cutplaneyvisible -cutplanezvisible
     1073
     1074        # Reset the camera and other view parameters
     1075        $_arcball quaternion [ViewToQuaternion]
     1076        if {$_view(-ortho)} {
     1077            SendCmd "camera mode ortho"
     1078        } else {
     1079            SendCmd "camera mode persp"
     1080        }
     1081        DoRotate
     1082        PanCamera
    10831083        Zoom reset
    10841084        SendCmd "camera reset"
     
    11011101itcl::body Rappture::VtkStreamlinesViewer::CurrentDatasets {args} {
    11021102    set flag [lindex $args 0]
    1103     switch -- $flag { 
     1103    switch -- $flag {
    11041104        "-all" {
    11051105            if { [llength $args] > 1 } {
     
    11201120                set dlist [get -visible]
    11211121            }
    1122         }           
     1122        }
    11231123        default {
    11241124            set dlist $args
     
    12391239    foreach tag [CurrentDatasets -visible] {
    12401240        SendCmdNoWait "dataset getscalar pixel $x $y $tag"
    1241     } 
     1241    }
    12421242}
    12431243
     
    16661666        2,0 $inner.edges     -anchor w -pady 2 -cspan 3 \
    16671667        3,0 $inner.opacity_l -anchor w -pady 2 \
    1668         3,1 $inner.opacity   -fill x   -pady 2 
     1668        3,1 $inner.opacity   -fill x   -pady 2
    16691669
    16701670    blt::table configure $inner r* c* -resize none
     
    16871687        -command [itcl::code $this AdjustSetting -streamlinesvisible] \
    16881688        -font "Arial 9"
    1689    
     1689
    16901690    checkbutton $inner.lighting \
    16911691        -text "Enable Lighting" \
     
    17001700        -font "Arial 9"
    17011701
    1702     label $inner.mode_l -text "Mode" -font "Arial 9" 
     1702    label $inner.mode_l -text "Mode" -font "Arial 9"
    17031703    itk_component add streammode {
    17041704        Rappture::Combobox $inner.mode -width 10 -editable no
     
    17071707        "lines"    "lines" \
    17081708        "ribbons"   "ribbons" \
    1709         "tubes"     "tubes" 
     1709        "tubes"     "tubes"
    17101710    $itk_component(streammode) value $_settings(-streamlinesmode)
    17111711    bind $inner.mode <<Value>> [itcl::code $this AdjustSetting -streamlinesmode]
     
    17321732        -command [itcl::code $this AdjustSetting -streamlinesscale]
    17331733
    1734     label $inner.field_l -text "Color by" -font "Arial 9" 
     1734    label $inner.field_l -text "Color by" -font "Arial 9"
    17351735    itk_component add field {
    17361736        Rappture::Combobox $inner.field -width 10 -editable no
     
    17391739        [itcl::code $this AdjustSetting -field]
    17401740
    1741     label $inner.colormap_l -text "Colormap" -font "Arial 9" 
     1741    label $inner.colormap_l -text "Colormap" -font "Arial 9"
    17421742    itk_component add colormap {
    17431743        Rappture::Combobox $inner.colormap -width 10 -editable no
     
    17881788        -command [itcl::code $this AdjustSetting -axislabelsvisible] \
    17891789        -font "Arial 9"
    1790     label $inner.grid_l -text "Grid" -font "Arial 9" 
     1790    label $inner.grid_l -text "Grid" -font "Arial 9"
    17911791    checkbutton $inner.xgrid \
    17921792        -text "X" \
     
    18101810        -font "Arial 9"
    18111811
    1812     label $inner.mode_l -text "Mode" -font "Arial 9" 
     1812    label $inner.mode_l -text "Mode" -font "Arial 9"
    18131813
    18141814    itk_component add axismode {
     
    18191819        "closest_triad"   "closest" \
    18201820        "furthest_triad"  "farthest" \
    1821         "outer_edges"     "outer"         
     1821        "outer_edges"     "outer"
    18221822    $itk_component(axismode) value $_settings(-axismode)
    18231823    bind $inner.mode <<Value>> [itcl::code $this AdjustSetting -axismode]
     
    18931893
    18941894    set fg [option get $itk_component(hull) font Font]
    1895    
     1895
    18961896    set inner [$itk_component(main) insert end \
    18971897        -title "Cutplane Settings" \
    1898         -icon [Rappture::icon cutbutton]] 
     1898        -icon [Rappture::icon cutbutton]]
    18991899
    19001900    $inner configure -borderwidth 4
     
    19501950            -command [itcl::code $this EventuallySetCutplane x] \
    19511951            -variable [itcl::scope _settings(-cutplanexposition)] \
    1952             -foreground red3 -font "Arial 9 bold"
     1952            -foreground red3 -font "Arial 9 bold"
    19531953    } {
    19541954        usual
     
    19791979            -command [itcl::code $this EventuallySetCutplane y] \
    19801980            -variable [itcl::scope _settings(-cutplaneyposition)] \
    1981             -foreground green3 -font "Arial 9 bold"
     1981            -foreground green3 -font "Arial 9 bold"
    19821982    } {
    19831983        usual
     
    20082008            -command [itcl::code $this EventuallySetCutplane z] \
    20092009            -variable [itcl::scope _settings(-cutplanezposition)] \
    2010             -foreground blue3 -font "Arial 9 bold"
     2010            -foreground blue3 -font "Arial 9 bold"
    20112011    } {
    20122012        usual
     
    20242024        3,0 $inner.opacity_l            -anchor w -pady 2 -cspan 1 \
    20252025        3,1 $inner.opacity              -fill x   -pady 2 -cspan 3 \
    2026         4,0 $itk_component(xCutButton)  -anchor w -padx 2 -pady 2 \
     2026        4,0 $itk_component(xCutButton)  -anchor w -padx 2 -pady 2 \
    20272027        5,0 $itk_component(yCutButton)  -anchor w -padx 2 -pady 2 \
    20282028        6,0 $itk_component(zCutButton)  -anchor w -padx 2 -pady 2 \
     
    20362036
    20372037#
    2038 #  camera -- 
     2038#  camera --
    20392039#
    20402040itcl::body Rappture::VtkStreamlinesViewer::camera {option args} {
    2041     switch -- $option { 
     2041    switch -- $option {
    20422042        "show" {
    20432043            puts [array get _view]
     
    20872087
    20882088itcl::body Rappture::VtkStreamlinesViewer::GetImage { args } {
    2089     if { [image width $_image(download)] > 0 && 
     2089    if { [image width $_image(download)] > 0 &&
    20902090         [image height $_image(download)] > 0 } {
    20912091        set bytes [$_image(download) data -format "jpeg -quality 100"]
     
    21002100        -title "[Rappture::filexfer::label downloadWord] as..."
    21012101    set inner [$popup component inner]
    2102     label $inner.summary -text "" -anchor w 
     2102    label $inner.summary -text "" -anchor w
    21032103    radiobutton $inner.vtk_button -text "VTK data file" \
    21042104        -variable [itcl::scope _downloadPopup(format)] \
    21052105        -font "Helvetica 9 " \
    2106         -value vtk 
     2106        -value vtk
    21072107    Rappture::Tooltip::for $inner.vtk_button "Save as VTK data file."
    21082108    radiobutton $inner.image_button -text "Image File" \
    21092109        -variable [itcl::scope _downloadPopup(format)] \
    2110         -value image 
     2110        -value image
    21112111    Rappture::Tooltip::for $inner.image_button \
    21122112        "Save as digital image."
     
    21292129        2,0 $inner.image_button -anchor w -cspan 2 -padx { 4 0 } \
    21302130        4,1 $inner.cancel -width .9i -fill y \
    2131         4,0 $inner.ok -padx 2 -width .9i -fill y 
     2131        4,0 $inner.ok -padx 2 -width .9i -fill y
    21322132    blt::table configure $inner r3 -height 4
    21332133    blt::table configure $inner r4 -pady 4
     
    21962196    set _legendPending 0
    21972197    set _title $title
    2198     regsub {\(mag\)} $title "" _title 
     2198    regsub {\(mag\)} $title "" _title
    21992199    if { [IsConnected] } {
    22002200        set bytes [ReceiveBytes $size]
     
    22232223    set font "Arial 8"
    22242224    set lineht [font metrics $font -linespace]
    2225    
     2225
    22262226    if { [info exists _fields($fname)] } {
    22272227        foreach { title units } $_fields($fname) break
     
    22352235        set x [expr $w - 2]
    22362236        if { [$c find withtag "legend"] == "" } {
    2237             set y 2 
     2237            set y 2
    22382238            $c create text $x $y \
    22392239                -anchor ne \
     
    23102310    set font "Arial 8"
    23112311    set lineht [font metrics $font -linespace]
    2312    
     2312
    23132313    set imgHeight [image height $_image(legend)]
    23142314    set coords [$c coords colormap]
     
    23332333    }
    23342334    set color [eval format "\#%02x%02x%02x" $pixel]
    2335     $_image(swatch) put black  -to 0 0 23 23 
    2336     $_image(swatch) put $color -to 1 1 22 22 
     2335    $_image(swatch) put black  -to 0 0 23 23
     2336    $_image(swatch) put $color -to 1 1 22 22
    23372337    .rappturetooltip configure -icon $_image(swatch)
    23382338
     
    23452345        set value 0.0
    23462346    }
    2347     set tipx [expr $x + 15] 
     2347    set tipx [expr $x + 15]
    23482348    set tipy [expr $y - 5]
    23492349    Rappture::Tooltip::text $c "$title $value"
    2350     Rappture::Tooltip::tooltip show $c +$tipx,+$tipy   
     2350    Rappture::Tooltip::tooltip show $c +$tipx,+$tipy
    23512351}
    23522352
     
    23932393# ----------------------------------------------------------------------
    23942394itcl::body Rappture::VtkStreamlinesViewer::Combo {option} {
    2395     set c $itk_component(view) 
     2395    set c $itk_component(view)
    23962396    switch -- $option {
    23972397        post {
     
    24062406        }
    24072407        deactivate {
    2408             $c itemconfigure title -fill white 
     2408            $c itemconfigure title -fill white
    24092409        }
    24102410        invoke {
     
    24182418}
    24192419
    2420 itcl::body Rappture::VtkStreamlinesViewer::SetOrientation { side } { 
     2420itcl::body Rappture::VtkStreamlinesViewer::SetOrientation { side } {
    24212421    array set positions {
    24222422        front "1 0 0 0"
     
    24292429    foreach name { -qw -qx -qy -qz } value $positions($side) {
    24302430        set _view($name) $value
    2431     } 
     2431    }
    24322432    set q [ViewToQuaternion]
    24332433    $_arcball quaternion $q
    2434     SendCmd "camera orient $q" 
     2434    SendCmd "camera orient $q"
    24352435    SendCmd "camera reset"
    24362436    set _view(-xpan) 0
  • branches/1.3/gui/scripts/vtksurfaceviewer.tcl

    r4768 r5011  
    1 # -*- mode: tcl; indent-tabs-mode: nil -*- 
     1# -*- mode: tcl; indent-tabs-mode: nil -*-
    22# ----------------------------------------------------------------------
    33#  COMPONENT: vtksurfaceviewer - Vtk 3D boundary surface viewer
     
    5757    public method get {args}
    5858    public method isconnected {}
    59     public method parameters {title args} { 
    60         # do nothing 
     59    public method parameters {title args} {
     60        # do nothing
    6161    }
    6262    public method scale {args}
     
    6767    private method BuildCameraTab {}
    6868    private method BuildColormap { name }
    69     private method BuildDownloadPopup { widget command } 
     69    private method BuildDownloadPopup { widget command }
    7070    private method BuildSurfaceTab {}
    7171    private method Combo { option }
     
    7676    private method DoRotate {}
    7777    private method DrawLegend {}
    78     private method EnterLegend { x y } 
    79     private method EventuallyRequestLegend {} 
    80     private method EventuallyResize { w h } 
    81     private method EventuallyRotate { q } 
    82     private method GetImage { args } 
    83     private method GetVtkData { args } 
     78    private method EnterLegend { x y }
     79    private method EventuallyRequestLegend {}
     80    private method EventuallyResize { w h }
     81    private method EventuallyRotate { q }
     82    private method GetImage { args }
     83    private method GetVtkData { args }
    8484    private method InitSettings { args  }
    85     private method IsValidObject { dataobj } 
     85    private method IsValidObject { dataobj }
    8686    private method LeaveLegend {}
    87     private method MotionLegend { x y } 
     87    private method MotionLegend { x y }
    8888    private method Pan {option x y}
    8989    private method PanCamera {}
    9090    private method Pick {x y}
    91     private method QuaternionToView { q } { 
     91    private method QuaternionToView { q } {
    9292        foreach { _view(-qw) _view(-qx) _view(-qy) _view(-qz) } $q break
    9393    }
     
    103103    private method SetOrientation { side }
    104104    private method UpdateContourList {}
    105     private method ViewToQuaternion {} { 
     105    private method ViewToQuaternion {} {
    106106        return [list $_view(-qw) $_view(-qx) $_view(-qy) $_view(-qz)]
    107107    }
     
    113113    private variable _obj2datasets
    114114    private variable _obj2ovride   ;    # maps dataobj => style override
    115     private variable _datasets     ;    # contains all the dataobj-component 
     115    private variable _datasets     ;    # contains all the dataobj-component
    116116                                   ;    # datasets in the server
    117117    private variable _colormaps    ;    # contains all the colormaps
     
    148148    private variable _legendPending 0
    149149    private variable _field      ""
    150     private variable _colorMode "scalar";       #  Mode of colormap (vmag or scalar)
    151     private variable _fieldNames {} 
    152     private variable _fields 
     150    private variable _colorMode "scalar";        #  Mode of colormap (vmag or scalar)
     151    private variable _fieldNames {}
     152    private variable _fields
    153153    private variable _curFldName ""
    154154    private variable _curFldLabel ""
     
    243243    itk_component add fieldmenu {
    244244        menu $itk_component(plotarea).menu -bg black -fg white -relief flat \
    245             -tearoff 0 
     245            -tearoff 0
    246246    } {
    247247        usual
     
    263263
    264264    set _map(id) [$c create image 0 0 -anchor nw -image $_image(plot)]
    265     set _map(cwidth) -1 
    266     set _map(cheight) -1 
     265    set _map(cwidth) -1
     266    set _map(cheight) -1
    267267    set _map(zoom) 1.0
    268268    set _map(original) ""
     
    311311            -offimage [Rappture::icon volume-off] \
    312312            -variable [itcl::scope _settings(-surfacevisible)] \
    313             -command [itcl::code $this AdjustSetting -surfacevisible] 
     313            -command [itcl::code $this AdjustSetting -surfacevisible]
    314314    }
    315315    $itk_component(surface) select
     
    329329    set _image(legend) [image create photo]
    330330    itk_component add legend {
    331         canvas $itk_component(plotarea).legend -width 50 -highlightthickness 0 
     331        canvas $itk_component(plotarea).legend -width 50 -highlightthickness 0
    332332    } {
    333333        usual
     
    336336    }
    337337
    338     # Hack around the Tk panewindow.  The problem is that the requested 
     338    # Hack around the Tk panewindow.  The problem is that the requested
    339339    # size of the 3d view isn't set until an image is retrieved from
    340340    # the server.  So the panewindow uses the tiny size.
     
    342342    pack forget $itk_component(view)
    343343    blt::table $itk_component(plotarea) \
    344         0,0 $itk_component(view) -fill both -reqwidth $w 
     344        0,0 $itk_component(view) -fill both -reqwidth $w
    345345    blt::table configure $itk_component(plotarea) c1 -resize none
    346346
     
    429429
    430430itcl::body Rappture::VtkSurfaceViewer::DoRotate {} {
    431     SendCmd "camera orient [ViewToQuaternion]" 
     431    SendCmd "camera orient [ViewToQuaternion]"
    432432    set _rotatePending 0
    433433}
     
    456456    if { !$_rotatePending } {
    457457        set _rotatePending 1
    458         global rotate_delay 
     458        global rotate_delay
    459459        $_dispatcher event -after $rotate_delay !rotate
    460460    }
     
    555555                    continue
    556556                }
    557                 if {[info exists _obj2ovride($dataobj-raise)] && 
     557                if {[info exists _obj2ovride($dataobj-raise)] &&
    558558                    $_obj2ovride($dataobj-raise)} {
    559559                    set dlist [linsert $dlist 0 $dataobj]
     
    583583            }
    584584            return $dlist
    585         }           
     585        }
    586586        -image {
    587587            if {[llength $args] != 2} {
     
    819819        #set w [image width $_image(plot)]
    820820        #set h [image height $_image(plot)]
    821         #puts stderr "$date: received image ${w}x${h} image"       
     821        #puts stderr "$date: received image ${w}x${h} image"
    822822        if { $_start > 0 } {
    823823            set finish [clock clicks -milliseconds]
     
    890890    # Turn on buffering of commands to the server.  We don't want to
    891891    # be preempted by a server disconnect/reconnect (which automatically
    892     # generates a new call to Rebuild).   
     892    # generates a new call to Rebuild).
    893893    StartBufferingCommands
    894894
     
    960960
    961961    if { $_first != "" } {
    962         $itk_component(field) choices delete 0 end
    963         $itk_component(fieldmenu) delete 0 end
    964         array unset _fields
     962        $itk_component(field) choices delete 0 end
     963        $itk_component(fieldmenu) delete 0 end
     964        array unset _fields
    965965        set _curFldName ""
    966966        foreach cname [$_first components] {
     
    990990    InitSettings -isolinesvisible -surfacevisible -outline
    991991    if { $_reset } {
    992         # These are settings that rely on a dataset being loaded.
     992        # These are settings that rely on a dataset being loaded.
    993993        InitSettings \
    994994            -surfacelighting \
    995995            -field \
    996996            -surfaceedges -surfacelighting -surfaceopacity \
    997             -surfacewireframe \
     997            -surfacewireframe \
    998998            -numcontours
    999999
    10001000        Zoom reset
    1001         foreach axis { x y z } {
     1001        foreach axis { x y z } {
    10021002            # Another problem fixed by a <view>. We looking into a data
    10031003            # object for the name of the axes. This should be global to
    10041004            # the viewer itself.
    1005             set label [$_first hints ${axis}label]
    1006             if { $label == "" } {
     1005            set label [$_first hints ${axis}label]
     1006            if { $label == "" } {
    10071007                set label [string toupper $axis]
    1008             }
    1009             # May be a space in the axis label.
    1010             SendCmd [list axis name $axis $label]
     1008            }
     1009            # May be a space in the axis label.
     1010            SendCmd [list axis name $axis $label]
    10111011        }
    10121012        if { [array size _fields] < 2 } {
     
    10321032itcl::body Rappture::VtkSurfaceViewer::CurrentDatasets {args} {
    10331033    set flag [lindex $args 0]
    1034     switch -- $flag { 
     1034    switch -- $flag {
    10351035        "-all" {
    10361036            if { [llength $args] > 1 } {
     
    10511051                set dlist [get -visible]
    10521052            }
    1053         }           
     1053        }
    10541054        default {
    10551055            set dlist $args
     
    11701170    foreach tag [CurrentDatasets -visible] {
    11711171        SendCmd "dataset getscalar pixel $x $y $tag"
    1172     } 
     1172    }
    11731173}
    11741174
     
    12741274        "-background" {
    12751275            set bgcolor [$itk_component(background) value]
    1276             array set fgcolors {
    1277                 "black" "white"
    1278                 "white" "black"
    1279                 "grey"  "black"
    1280             }
     1276            array set fgcolors {
     1277                "black" "white"
     1278                "white" "black"
     1279                "grey"  "black"
     1280            }
    12811281            configure -plotbackground $bgcolor \
    1282                 -plotforeground $fgcolors($bgcolor)
    1283             $itk_component(view) delete "legend"
    1284             DrawLegend
     1282                -plotforeground $fgcolors($bgcolor)
     1283            $itk_component(view) delete "legend"
     1284            DrawLegend
    12851285        }
    12861286        "-colormap" {
     
    12891289            set color [$itk_component(colormap) value]
    12901290            set _settings($what) $color
    1291             if { $color == "none" } {
    1292                 if { $_settings(-colormapvisible) } {
    1293                     SendCmd "contour2d colormode constant {}"
     1291            if { $color == "none" } {
     1292                if { $_settings(-colormapvisible) } {
     1293                    SendCmd "contour2d colormode constant {}"
    12941294                    SendCmd "polydata colormode constant {}"
    1295                     set _settings(-colormapvisible) 0
    1296                 }
    1297             } else {
    1298                 if { !$_settings(-colormapvisible) } {
    1299                     #SendCmd "contour2d colormode $_colorMode $_curFldName"
     1295                    set _settings(-colormapvisible) 0
     1296                }
     1297            } else {
     1298                if { !$_settings(-colormapvisible) } {
     1299                    #SendCmd "contour2d colormode $_colorMode $_curFldName"
    13001300                    SendCmd "polydata colormode $_colorMode $_curFldName"
    1301                     set _settings(-colormapvisible) 1
    1302                 }
    1303                 SetCurrentColormap $color
     1301                    set _settings(-colormapvisible) 1
     1302                }
     1303                SetCurrentColormap $color
    13041304                if {$_settings(-colormapdiscrete)} {
    13051305                    set numColors [expr $_settings(-numcontours) + 1]
    13061306                    SendCmd "colormap res $numColors $color"
    13071307                }
    1308             }
     1308            }
    13091309            StopBufferingCommands
    1310             EventuallyRequestLegend
     1310            EventuallyRequestLegend
    13111311        }
    13121312        "-colormapdiscrete" {
     
    13571357        "-isolinecolor" {
    13581358            set color [$itk_component(isolineColor) value]
    1359             set _settings($what) $color
     1359            set _settings($what) $color
    13601360            SendCmd "contour2d linecolor [Color2RGB $color]"
    1361             DrawLegend
     1361            DrawLegend
    13621362        }
    13631363        "-isolinesvisible" {
    13641364            set bool $_settings($what)
    1365             SendCmd "contour2d visible $bool"
    1366             DrawLegend
     1365            SendCmd "contour2d visible $bool"
     1366            DrawLegend
    13671367        }
    13681368        "-legendvisible" {
    13691369            if { !$_settings($what) } {
    13701370                $itk_component(view) delete legend
    1371             }
    1372             DrawLegend
     1371            }
     1372            DrawLegend
    13731373        }
    13741374        "-numcontours" {
     
    13881388        "-outline" {
    13891389            set bool $_settings($what)
    1390             SendCmd "outline visible $bool"
     1390            SendCmd "outline visible $bool"
    13911391        }
    13921392        "-surfaceedges" {
    13931393            set bool $_settings($what)
    1394             SendCmd "polydata edges $bool"
     1394            SendCmd "polydata edges $bool"
    13951395        }
    13961396        "-surfacelighting" {
    13971397            set bool $_settings($what)
    1398             SendCmd "polydata lighting $bool"
     1398            SendCmd "polydata lighting $bool"
    13991399        }
    14001400        "-surfaceopacity" {
    14011401            set val $_settings($what)
    14021402            set sval [expr { 0.01 * double($val) }]
    1403             SendCmd "polydata opacity $sval"
     1403            SendCmd "polydata opacity $sval"
    14041404        }
    14051405        "-surfacevisible" {
    14061406            set bool $_settings($what)
    1407             SendCmd "polydata visible $bool"
     1407            SendCmd "polydata visible $bool"
    14081408            if { $bool } {
    14091409                Rappture::Tooltip::for $itk_component(surface) \
     
    14131413                    "Show the surface"
    14141414            }
    1415             DrawLegend
     1415            DrawLegend
    14161416        }
    14171417        "-surfacewireframe" {
    14181418            set bool $_settings($what)
    1419             SendCmd "polydata wireframe $bool"
     1419            SendCmd "polydata wireframe $bool"
    14201420        }
    14211421        "-xgrid" - "-ygrid" - "-zgrid" {
     
    14341434#
    14351435#       Request a new legend from the server.  The size of the legend
    1436 #       is determined from the height of the canvas. 
     1436#       is determined from the height of the canvas.
    14371437#
    14381438# This should be called when
    1439 #       1.  A new current colormap is set.
    1440 #       2.  Window is resized.
    1441 #       3.  The limits of the data have changed.  (Just need a redraw).
    1442 #       4.  Number of isolines have changed. (Just need a redraw).
    1443 #       5.  Legend becomes visible (Just need a redraw).
     1439#        1.  A new current colormap is set.
     1440#        2.  Window is resized.
     1441#        3.  The limits of the data have changed.  (Just need a redraw).
     1442#        4.  Number of isolines have changed. (Just need a redraw).
     1443#        5.  Legend becomes visible (Just need a redraw).
    14441444#
    14451445itcl::body Rappture::VtkSurfaceViewer::RequestLegend {} {
     
    14571457    }
    14581458    if { [string match "component*" $fname] } {
    1459         set title ""
     1459        set title ""
    14601460    } else {
    1461         if { [info exists _fields($fname)] } {
    1462             foreach { title units } $_fields($fname) break
    1463             if { $units != "" } {
    1464                 set title [format "%s (%s)" $title $units]
    1465             }
    1466         } else {
    1467             set title $fname
    1468         }
     1461        if { [info exists _fields($fname)] } {
     1462            foreach { title units } $_fields($fname) break
     1463            if { $units != "" } {
     1464                set title [format "%s (%s)" $title $units]
     1465            }
     1466        } else {
     1467            set title $fname
     1468        }
    14691469    }
    14701470    # If there's a title too, subtract one more line
    14711471    if { $title != "" } {
    1472         incr h -$lineht 
     1472        incr h -$lineht
    14731473    }
    14741474    # Set the legend on the first heightmap dataset.
    14751475    if { $_currentColormap != ""  } {
    1476         set cmap $_currentColormap
    1477         SendCmdNoWait "legend $cmap scalar $_curFldName {} $w $h 0"
     1476        set cmap $_currentColormap
     1477        SendCmdNoWait "legend $cmap scalar $_curFldName {} $w $h 0"
    14781478    }
    14791479}
     
    14951495    if { [isconnected] } {
    14961496        set rgb [Color2RGB $itk_option(-plotforeground)]
    1497         SendCmd "axis color all $rgb"
     1497        SendCmd "axis color all $rgb"
    14981498        SendCmd "outline color $rgb"
    14991499    }
     
    15581558        -font "Arial 9"
    15591559
    1560     label $inner.linecolor_l -text "Isolines" -font "Arial 9" 
     1560    label $inner.linecolor_l -text "Isolines" -font "Arial 9"
    15611561    itk_component add isolineColor {
    15621562        Rappture::Combobox $inner.linecolor -width 10 -editable 0
     
    15721572        "red"                "red"              \
    15731573        "white"              "white"            \
    1574         "none"               "none"
     1574        "none"               "none"
    15751575
    15761576    $itk_component(isolineColor) value "white"
    15771577    bind $inner.linecolor <<Value>> \
    1578         [itcl::code $this AdjustSetting -isolinecolor]
    1579 
    1580     label $inner.background_l -text "Background" -font "Arial 9" 
     1578        [itcl::code $this AdjustSetting -isolinecolor]
     1579
     1580    label $inner.background_l -text "Background" -font "Arial 9"
    15811581    itk_component add background {
    15821582        Rappture::Combobox $inner.background -width 10 -editable 0
     
    15851585        "black"              "black"            \
    15861586        "white"              "white"            \
    1587         "grey"               "grey"             
     1587        "grey"               "grey"
    15881588
    15891589    $itk_component(background) value $_settings(-background)
     
    15991599
    16001600    itk_component add field_l {
    1601         label $inner.field_l -text "Field" -font "Arial 9" 
     1601        label $inner.field_l -text "Field" -font "Arial 9"
    16021602    } {
    16031603        ignore -font
     
    16091609        [itcl::code $this AdjustSetting -field]
    16101610
    1611     label $inner.colormap_l -text "Colormap" -font "Arial 9" 
     1611    label $inner.colormap_l -text "Colormap" -font "Arial 9"
    16121612    itk_component add colormap {
    16131613        Rappture::Combobox $inner.colormap -width 10 -editable 0
     
    16351635        2,0 $inner.linecolor_l  -anchor w -pady 2  \
    16361636        2,1 $inner.linecolor    -anchor w -pady 2 -fill x  \
    1637         3,0 $inner.background_l -anchor w -pady 2 \
    1638         3,1 $inner.background -anchor w -pady 2  -fill x \
     1637        3,0 $inner.background_l -anchor w -pady 2 \
     1638        3,1 $inner.background -anchor w -pady 2  -fill x \
    16391639        4,0 $inner.numcontours_l -anchor w -pady 2 \
    16401640        4,1 $inner.numcontours -anchor w -pady 2 \
     
    16741674        -command [itcl::code $this AdjustSetting -axislabels] \
    16751675        -font "Arial 9"
    1676     label $inner.grid_l -text "Grid" -font "Arial 9" 
     1676    label $inner.grid_l -text "Grid" -font "Arial 9"
    16771677    checkbutton $inner.xgrid \
    16781678        -text "X" \
     
    16961696        -font "Arial 9"
    16971697
    1698     label $inner.mode_l -text "Mode" -font "Arial 9" 
     1698    label $inner.mode_l -text "Mode" -font "Arial 9"
    16991699
    17001700    itk_component add axisMode {
     
    17051705        "closest_triad"   "closest" \
    17061706        "furthest_triad"  "farthest" \
    1707         "outer_edges"     "outer"         
     1707        "outer_edges"     "outer"
    17081708    $itk_component(axisMode) value $_settings(-axismode)
    17091709    bind $inner.mode <<Value>> [itcl::code $this AdjustSetting -axismode]
     
    17771777
    17781778#
    1779 #  camera -- 
     1779#  camera --
    17801780#
    17811781itcl::body Rappture::VtkSurfaceViewer::camera {option args} {
    1782     switch -- $option { 
     1782    switch -- $option {
    17831783        "show" {
    17841784            puts [array get _view]
     
    18281828
    18291829itcl::body Rappture::VtkSurfaceViewer::GetImage { args } {
    1830     if { [image width $_image(download)] > 0 && 
     1830    if { [image width $_image(download)] > 0 &&
    18311831         [image height $_image(download)] > 0 } {
    18321832        set bytes [$_image(download) data -format "jpeg -quality 100"]
     
    18411841        -title "[Rappture::filexfer::label downloadWord] as..."
    18421842    set inner [$popup component inner]
    1843     label $inner.summary -text "" -anchor w 
     1843    label $inner.summary -text "" -anchor w
    18441844    radiobutton $inner.vtk_button -text "VTK data file" \
    18451845        -variable [itcl::scope _downloadPopup(format)] \
    18461846        -font "Arial 9 " \
    1847         -value vtk 
     1847        -value vtk
    18481848    Rappture::Tooltip::for $inner.vtk_button "Save as VTK data file."
    18491849    radiobutton $inner.image_button -text "Image File" \
    18501850        -variable [itcl::scope _downloadPopup(format)] \
    18511851        -font "Arial 9 " \
    1852         -value image 
     1852        -value image
    18531853    Rappture::Tooltip::for $inner.image_button \
    18541854        "Save as digital image."
     
    18711871        2,0 $inner.image_button -anchor w -cspan 2 -padx { 4 0 } \
    18721872        4,1 $inner.cancel -width .9i -fill y \
    1873         4,0 $inner.ok -padx 2 -width .9i -fill y 
     1873        4,0 $inner.ok -padx 2 -width .9i -fill y
    18741874    blt::table configure $inner r3 -height 4
    18751875    blt::table configure $inner r4 -pady 4
     
    19321932    set _settings(-isolinesvisible) $style(-isolinesvisible)
    19331933    set _settings(-surfacevisible) $style(-surfacevisible)
    1934  
     1934
    19351935    SendCmd "outline add $tag"
    19361936    SendCmd "outline color [Color2RGB $itk_option(-plotforeground)] $tag"
     
    19481948    SendCmd "polydata opacity $style(-opacity) $tag"
    19491949    set _settings(-surfaceopacity) [expr $style(-opacity) * 100.0]
    1950     SetCurrentColormap $style(-color) 
     1950    SetCurrentColormap $style(-color)
    19511951    SendCmd "polydata wireframe $style(-wireframe) $tag"
    19521952    set _settings(-surfacewireframe) $style(-wireframe)
     
    20032003    set font "Arial 8"
    20042004    set lineht [font metrics $font -linespace]
    2005    
     2005
    20062006    set ih [image height $_image(legend)]
    20072007    set iy [expr $y - ($lineht + 2)]
    20082008
    20092009    if { [string match "component*" $fname] } {
    2010         set title ""
     2010        set title ""
    20112011    } else {
    2012         if { [info exists _fields($fname)] } {
    2013             foreach { title units } $_fields($fname) break
    2014             if { $units != "" } {
    2015                 set title [format "%s (%s)" $title $units]
    2016             }
    2017         } else {
    2018             set title $fname
    2019         }
     2012        if { [info exists _fields($fname)] } {
     2013            foreach { title units } $_fields($fname) break
     2014            if { $units != "" } {
     2015                set title [format "%s (%s)" $title $units]
     2016            }
     2017        } else {
     2018            set title $fname
     2019        }
    20202020    }
    20212021    # If there's a legend title, increase the offset by the line height.
     
    20312031    }
    20322032    set color [eval format "\#%02x%02x%02x" $pixel]
    2033     $_image(swatch) put black  -to 0 0 23 23 
    2034     $_image(swatch) put $color -to 1 1 22 22 
     2033    $_image(swatch) put black  -to 0 0 23 23
     2034    $_image(swatch) put $color -to 1 1 22 22
    20352035    .rappturetooltip configure -icon $_image(swatch)
    20362036
     
    20432043        set value 0.0
    20442044    }
    2045     set tx [expr $x + 15] 
     2045    set tx [expr $x + 15]
    20462046    set ty [expr $y - 5]
    20472047    if { [info exists _isolines($y)] } {
     
    20502050        Rappture::Tooltip::text $c [format "$title %g" $value]
    20512051    }
    2052     Rappture::Tooltip::tooltip show $c +$tx,+$ty   
    2053 }
    2054 
    2055 #
    2056 # ReceiveLegend -- 
    2057 #
    2058 #       Invoked automatically whenever the "legend" command comes in from
    2059 #       the rendering server.  Indicates that binary image data with the
    2060 #       specified <size> will follow.
     2052    Rappture::Tooltip::tooltip show $c +$tx,+$ty
     2053}
     2054
     2055#
     2056# ReceiveLegend --
     2057#
     2058#        Invoked automatically whenever the "legend" command comes in from
     2059#        the rendering server.  Indicates that binary image data with the
     2060#        specified <size> will follow.
    20612061#
    20622062itcl::body Rappture::VtkSurfaceViewer::ReceiveLegend { colormap title min max size } {
    20632063    #puts stderr "ReceiveLegend colormap=$colormap title=$title range=$min,$max size=$size"
    20642064    set _title $title
    2065     regsub {\(mag\)} $title "" _title 
     2065    regsub {\(mag\)} $title "" _title
    20662066    if { [IsConnected] } {
    20672067        set bytes [ReceiveBytes $size]
     
    20722072        #puts stderr "read $size bytes for [image width $_image(legend)]x[image height $_image(legend)] legend>"
    20732073        if { [catch {DrawLegend} errs] != 0 } {
    2074             global errorInfo
    2075             puts stderr "errs=$errs errorInfo=$errorInfo"
     2074            global errorInfo
     2075            puts stderr "errs=$errs errorInfo=$errorInfo"
    20762076        }
    20772077    }
     
    20922092
    20932093    if { [string match "component*" $fname] } {
    2094         set title ""
     2094        set title ""
    20952095    } else {
    2096         if { [info exists _fields($fname)] } {
    2097             foreach { title units } $_fields($fname) break
    2098             if { $units != "" } {
    2099                 set title [format "%s (%s)" $title $units]
    2100             }
    2101         } else {
    2102             set title $fname
    2103         }
     2096        if { [info exists _fields($fname)] } {
     2097            foreach { title units } $_fields($fname) break
     2098            if { $units != "" } {
     2099                set title [format "%s (%s)" $title $units]
     2100            }
     2101        } else {
     2102            set title $fname
     2103        }
    21042104    }
    21052105    set x [expr $w - 2]
    21062106    if { !$_settings(-legendvisible) } {
    2107         $c delete legend
    2108         return
    2109     } 
     2107        $c delete legend
     2108        return
     2109    }
    21102110    if { [$c find withtag "legend"] == "" } {
    2111         set y 2
    2112         # If there's a legend title, create a text item for the title.
     2111        set y 2
     2112        # If there's a legend title, create a text item for the title.
    21132113        $c create text $x $y \
    2114             -anchor ne \
    2115             -fill $itk_option(-plotforeground) -tags "title legend" \
    2116             -font $font
     2114            -anchor ne \
     2115            -fill $itk_option(-plotforeground) -tags "title legend" \
     2116            -font $font
    21172117        if { $title != "" } {
    21182118            incr y $lineht
    21192119        }
    2120         $c create text $x $y \
    2121             -anchor ne \
    2122             -fill $itk_option(-plotforeground) -tags "vmax legend" \
    2123             -font $font
    2124         incr y $lineht
    2125         $c create image $x $y \
    2126             -anchor ne \
    2127             -image $_image(legend) -tags "colormap legend"
    2128         $c create rectangle $x $y 1 1 \
    2129             -fill "" -outline "" -tags "sensor legend"
    2130         $c create text $x [expr {$h-2}] \
    2131             -anchor se \
    2132             -fill $itk_option(-plotforeground) -tags "vmin legend" \
    2133             -font $font
    2134         $c bind sensor <Enter> [itcl::code $this EnterLegend %x %y]
    2135         $c bind sensor <Leave> [itcl::code $this LeaveLegend]
    2136         $c bind sensor <Motion> [itcl::code $this MotionLegend %x %y]
     2120        $c create text $x $y \
     2121            -anchor ne \
     2122            -fill $itk_option(-plotforeground) -tags "vmax legend" \
     2123            -font $font
     2124        incr y $lineht
     2125        $c create image $x $y \
     2126            -anchor ne \
     2127            -image $_image(legend) -tags "colormap legend"
     2128        $c create rectangle $x $y 1 1 \
     2129            -fill "" -outline "" -tags "sensor legend"
     2130        $c create text $x [expr {$h-2}] \
     2131        &n