Ignore:
Timestamp:
Mar 1, 2013 1:07:44 PM (11 years ago)
Author:
gah
Message:

fix to streamlines to (again) display mulitple fields from a single VTK file

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gui/scripts/vtkstreamlinesviewer.tcl

    r3402 r3405  
    152152    private variable _scalarFields
    153153    private variable _fields
    154     private variable _currentField ""
     154    private variable _curFldName ""
     155    private variable _curFldLabel ""
    155156    private variable _field      ""
    156157    private variable _numSeeds 200
     
    10501051                set bytes [$dataobj vtkdata $comp]
    10511052                set length [string length $bytes]
     1053                if 1 {
     1054                    set f [open /tmp/vtkstreamlines.vtk "w"]
     1055                    fconfigure $f -translation binary -encoding binary
     1056                    puts $f $bytes
     1057                    close $f
     1058                }
    10521059                if 1 {
    10531060                    set info {}
     
    10871094            }
    10881095        }
     1096        if 0 {
    10891097        array unset _scalarFields
    10901098        array unset _vectorFields
    1091         set _currentField [$_first hints default]
     1099        set _curFldLabel [$_first hints default]
    10921100        $itk_component(field) choices delete 0 end
    10931101        $itk_component(fieldmenu) delete 0 end
     
    10971105            $itk_component(field) choices insert end "$name" "$title"
    10981106            $itk_component(fieldmenu) add radiobutton -label "$title" \
    1099                 -value $title -variable [itcl::scope _currentField] \
     1107                -value $title -variable [itcl::scope _curFldLabel] \
    11001108                -selectcolor red \
    11011109                -activebackground black \
     
    11091117            $itk_component(field) choices insert end "$name" "$title"
    11101118            $itk_component(fieldmenu) add radiobutton -label "$title" \
    1111                 -value $title -variable [itcl::scope _currentField] \
     1119                -value $title -variable [itcl::scope _curFldLabel] \
    11121120                -selectcolor red \
    11131121                -activebackground black \
     
    11171125            set _fields($name) [list $title $units]
    11181126        }
    1119         $itk_component(field) value $_currentField
     1127        $itk_component(field) value $_curFldLabel
     1128        }
     1129        $itk_component(field) choices delete 0 end
     1130        $itk_component(fieldmenu) delete 0 end
     1131        array unset _fields
     1132        foreach cname [$_first components] {
     1133            foreach fname [$_first fieldnames $cname] {
     1134                if { [info exists _fields($fname)] } {
     1135                    continue
     1136                }
     1137                foreach { label units components } \
     1138                    [$_first fieldinfo $fname] break
     1139                $itk_component(field) choices insert end "$fname" "$label"
     1140                $itk_component(fieldmenu) add radiobutton -label "$label" \
     1141                    -value $label -variable [itcl::scope _curFldLabel] \
     1142                    -selectcolor red \
     1143                    -activebackground $itk_option(-plotbackground) \
     1144                    -activeforeground $itk_option(-plotforeground) \
     1145                    -font "Arial 8" \
     1146                    -command [itcl::code $this Combo invoke]
     1147                set _fields($fname) [list $label $units $components]
     1148                set _curFldName $fname
     1149                set _curFldLabel $label
     1150            }
     1151        }
     1152        $itk_component(field) value $_curFldLabel
    11201153    }
    11211154
     
    15361569        }
    15371570        "streamlinesField" {
    1538             set new [$itk_component(field) value]
    1539             set value [$itk_component(field) translate $new]
    1540             set _settings(streamlinesField) $value
    1541             if { [info exists _scalarFields($new)] } {
    1542                 set name $_scalarFields($new)
    1543                 set _colorMode scalar
    1544                 set _currentField $new
    1545             } elseif { [info exists _vectorFields($new)] } {
    1546                 set name $_vectorFields($new)
    1547                 set _colorMode vmag
    1548                 set _currentField $new
     1571            set label [$itk_component(field) value]
     1572            set fname [$itk_component(field) translate $label]
     1573            set _settings(streamlinesField) $fname
     1574            if { [info exists _fields($fname)] } {
     1575                foreach { label units components } $_fields($fname) break
     1576                if { $components > 1 } {
     1577                    set _colorMode vmag
     1578                } else {
     1579                    set _colorMode scalar
     1580                }
     1581                set _curFldName $fname
     1582                set _curFldLabel $label
    15491583            } else {
    1550                 puts stderr "unknown field \"$new\""
     1584                puts stderr "unknown field \"$fname\""
    15511585                return
    15521586            }
    1553             SendCmd "streamlines colormode $_colorMode ${name}"
    1554             SendCmd "cutplane colormode $_colorMode ${name}"
     1587            SendCmd "streamlines colormode $_colorMode ${fname}"
     1588            SendCmd "cutplane colormode $_colorMode ${fname}"
    15551589            set _legendPending 1
    15561590        }
     
    15771611        return
    15781612    }
    1579     if { [info exists _scalarFields($_currentField)] } {
    1580         set name $_scalarFields($_currentField)
    1581     } elseif { [info exists _vectorFields($_currentField)] } {
    1582         set name $_vectorFields($_currentField)
    1583     } else {
    1584         return
    1585     }
    15861613    # Set the legend on the first streamlines dataset.
    15871614    foreach dataset [CurrentDatasets -visible $_first] {
     
    15891616        if { [info exists _dataset2style($dataset)] } {
    15901617            SendCmdNoSplash \
    1591                 "legend $_dataset2style($dataset) $_colorMode $name {} $w $h 0"
     1618                "legend $_dataset2style($dataset) $_colorMode $_curFldName {} $w $h 0"
    15921619            break;
    15931620        }
     
    25632590        }
    25642591        invoke {
    2565             $itk_component(field) value $_currentField
     2592            $itk_component(field) value $_curFldLabel
    25662593            AdjustSetting streamlinesField
    25672594        }
Note: See TracChangeset for help on using the changeset viewer.