Changeset 1441 for trunk/gui/scripts


Ignore:
Timestamp:
May 14, 2009 10:26:34 PM (15 years ago)
Author:
gah
Message:

added flow detection and flow hints

File:
1 edited

Legend:

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

    r1373 r1441  
    3131    public method isunirect3d {}
    3232    public method extents {{what -overall}}
    33 
     33    public method flowhints { cname }
    3434    protected method _build {}
    3535    protected method _getValue {expr}
     
    5050    private variable _comp2cntls ;# maps component name => x,y control points
    5151    private variable _comp2extents
     52    private variable _comp2flowhints
    5253    private common _counter 0    ;# counter for unique vector names
    5354}
     
    119120        itcl::delete object $_comp2unirect3d($name)
    120121    }
     122    foreach name [array names _comp2flowhints] {
     123        itcl::delete object $_comp2flowhints($name)
     124    }
    121125}
    122126
     
    133137        flag what -dimensions
    134138        flag what -style
     139        flag what -particles
     140        flag what -flow
     141        flag what -box
    135142    }
    136143
     
    553560       
    554561        # Save the extents of the component
    555         set extents [$_field element $cname.extents]
    556         if { $extents == "" } {
     562        if { [$_field element $cname.extents] != "" } {
     563            set extents [$_field get $cname.extents]
     564        } else {
    557565            set extents 1
    558566        }
     
    622630                        [Rappture::Unirect2d \#auto $_xmlobj $_field $cname]
    623631                    set _comp2style($cname) [$_field get $cname.style]
     632                    if {[$_field element $cname.flow] != ""} {
     633                        set _comp2flowhints($cname) \
     634                            [Rappture::FlowHints ::\#auto $_field $cname $_units]
     635                    }
    624636                    incr _counter
    625637                } elseif { $element == "unirect3d" } {
     
    628640                        [Rappture::Unirect3d \#auto $_xmlobj $_field $cname]
    629641                    set _comp2style($cname) [$_field get $cname.style]
     642                    if {[$_field element $cname.flow] != ""} {
     643                        set _comp2flowhints($cname) \
     644                            [Rappture::FlowHints ::\#auto $_field $cname $_units]
     645                    }
    630646                    incr _counter
    631647                } elseif { $element == "cloud" || $element == "mesh" } {
     
    715731            #
    716732            set _comp2dims($cname) "3D"
    717             set _comp2dx($cname) [$_field get -decode no $cname.dx]
     733            set _comp2dx($cname)  [$_field get -decode no $cname.dx]
    718734            set _comp2style($cname) [$_field get $cname.style]
     735            if {[$_field element $cname.flow] != ""} {
     736                set _comp2flowhints($cname) \
     737                    [Rappture::FlowHints ::\#auto $_field $cname $_units]
     738            }
    719739            incr _counter
    720740        } elseif {$type == "opendx"} {
     
    732752            set _comp2dx($cname) $data
    733753            set _comp2style($cname) [$_field get $cname.style]
     754            if {[$_field element $cname.flow] != ""} {
     755                set _comp2flowhints($cname) \
     756                    [Rapture::FlowHints ::\#auto $_field $cname $_units]
     757            }
    734758            incr _counter
    735759        }
     
    799823
    800824#
     825# flowhints  --
     826#
     827# Returns the hints associated with a flow vector field. 
     828#
     829itcl::body Rappture::Field::flowhints { cname } {
     830    if { [info exists _comp2flowhints($cname)] } {
     831        return $_comp2flowhints($cname)
     832    }
     833    return ""
     834}
     835
     836#
    801837# extents --
    802838#
     
    807843        set max 0
    808844        foreach cname [$_field children -type component] {
    809             set extents [info exists _comp2extents($cname)]
    810             if { $max < $extents } {
    811                 set max $extents
     845            if { [info exists _comp2extents($cname)] } {
     846                if { $max < $_comp2extents($cname) } {
     847                    set max $_comp2extents($cname)
     848                }
    812849            }
    813850        }
Note: See TracChangeset for help on using the changeset viewer.