Ignore:
Timestamp:
May 19, 2009, 6:47:11 PM (15 years ago)
Author:
gah
Message:
 
File:
1 edited

Legend:

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

    r1373 r1463  
    2727    public method values {}
    2828    public method hints {{keyword ""}}
    29 
    30     private variable _xmax 0
    31     private variable _xmin 0
    32     private variable _xnum 0
    33     private variable _ymax 0
    34     private variable _ymin 0
    35     private variable _ynum 0
     29    public method components {} {
     30        return $_components;
     31    }
     32    private method GetString { obj path varName }
     33    private method GetValue { obj path varName }
     34    private method GetSize { obj path varName }
     35
     36    private variable _axisOrder  "x y"
     37    private variable _xMax 0
     38    private variable _xMin 0
     39    private variable _xNum 0
     40    private variable _yMax 0
     41    private variable _yMin 0
     42    private variable _yNum 0
     43    private variable _components 1
    3644    private variable _values "";        # BLT vector containing the z-values
    3745    private variable _hints
     
    4755    set path [$field get $cname.mesh]
    4856
    49     set mobj [$xmlobj element -as object $path]
    50     set _xmin [$mobj get "xaxis.min"]
    51     set _xmax [$mobj get "xaxis.max"]
    52     set _xnum [$mobj get "xaxis.numpoints"]
    53     set _ymin [$mobj get "yaxis.min"]
    54     set _ymax [$mobj get "yaxis.max"]
    55     set _ynum [$mobj get "yaxis.numpoints"]
     57    set m [$xmlobj element -as object $path]
     58    GetSize $m "components" _components
     59    GetValue $m "xaxis.min" _xMin
     60    GetValue $m "xaxis.max" _xMax
     61    GetSize $m "xaxis.numpoints" _xNum
     62    GetValue $m "yaxis.min" _yMin
     63    GetValue $m "yaxis.max" _yMax
     64    GetSize $m "yaxis.numpoints" _yNum
    5665   
    5766    foreach {key path} {
     
    7483        ymax    yaxis.max
    7584    } {
    76         set str [$mobj get $path]
     85        set str [$m get $path]
    7786        if {"" != $str} {
    7887            set _hints($key) $str
    7988        }
    8089    }
    81     foreach {key} { extents axisorder } {
     90    foreach {key} { components axisorder } {
    8291        set str [$field get $cname.$key]
    8392        if {"" != $str} {
     
    8594        }
    8695    }
    87     itcl::delete object $mobj
     96    itcl::delete object $m
    8897   
    8998    set _values [blt::vector create \#auto]
     
    112121itcl::body Rappture::Unirect2d::blob {} {
    113122    set data "unirect2d"
    114     lappend data "xmin" $_xmin "xmax" $_xmax "xnum" $_xnum
    115     lappend data "ymin" $_ymin "ymax" $_ymax "ynum" $_ynum
    116     lappend data "xmin" $_xmin "ymin" $_ymin "xmax" $_xmax "ymax" $_ymax
    117     foreach key { axisorder extents xunits yunits units } {
     123    lappend data "xmin" $_xMin "xmax" $_xMax "xnum" $_xNum
     124    lappend data "ymin" $_yMin "ymax" $_yMax "ynum" $_yNum
     125    lappend data "xmin" $_xMin "ymin" $_yMin "xmax" $_xMax "ymax" $_yMax
     126    lappend data "components" $_components
     127    foreach key { axisorder xunits yunits units } {
    118128        set hint [hints $key]
    119129        if { $hint != "" } {
     
    124134        lappend data "values" [$_values range 0 end]
    125135    }
    126     return [Rappture::encoding::encode -as zb64 $data]
     136    return [Rappture::encoding::encode -as zb64 "$data"]
    127137}
    128138
     
    134144# ----------------------------------------------------------------------
    135145itcl::body Rappture::Unirect2d::mesh {} {
    136     set dx [expr {($_xmax - $_xmin) / double($_xnum)}]
    137     set dy [expr {($_ymax - $_ymin) / double($_ynum)}]
    138     for { set i 0 } { $i < $_xnum } { incr i } {
    139         set x [expr {$_xmin + (double($i) * $dx)}]
    140         for { set j 0 } { $j < $_ynum } { incr j } {
    141             set y [expr {$_ymin + (double($i) * $dy)}]
     146    set dx [expr {($_xMax - $_xMin) / double($_xNum)}]
     147    set dy [expr {($_yMax - $_yMin) / double($_yNum)}]
     148    for { set i 0 } { $i < $_xNum } { incr i } {
     149        set x [expr {$_xMin + (double($i) * $dx)}]
     150        for { set j 0 } { $j < $_yNum } { incr j } {
     151            set y [expr {$_yMin + (double($i) * $dy)}]
    142152            lappend data $x $y
    143153        }
     
    170180    switch -- $which {
    171181        x - xlin - xlog {
    172             set min $_xmin
    173             set max $_xmax
     182            set min $_xMin
     183            set max $_xMax
    174184            set axis "xaxis"
    175185        }
    176186        y - ylin - ylog {
    177             set min $_ymin
    178             set max $_ymax
     187            set min $_yMin
     188            set max $_yMax
    179189            set axis "yaxis"
    180190        }
     
    241251    return [array get _hints]
    242252}
     253
     254
     255itcl::body Rappture::Unirect2d::GetSize { obj path varName } {
     256    set string [$obj get $path]
     257    if { [scan $string "%d" value] != 1 || $value < 0 } {
     258        puts stderr "can't get size \"$string\" of \"$path\""
     259        return
     260    }
     261    upvar $varName size
     262    set size $value
     263}
     264
     265itcl::body Rappture::Unirect2d::GetValue { obj path varName } {
     266    set string [$obj get $path]
     267    if { [scan $string "%g" value] != 1 } {
     268        return
     269    }
     270    upvar $varName number
     271    set number $value
     272}
     273
     274itcl::body Rappture::Unirect2d::GetString { obj path varName } {
     275    set string [$obj get $path]
     276    if { $string == "" } {
     277        puts stderr "can't get string \"$string\" of \"$path\""
     278        return
     279    }
     280    upvar $varName str
     281    set str $string
     282}
Note: See TracChangeset for help on using the changeset viewer.