Changeset 5254


Ignore:
Timestamp:
Apr 17, 2015 6:34:56 PM (6 years ago)
Author:
ldelgass
Message:

bring IsoMarker? closer in line with version in trunk/1.4 branch

Location:
branches/1.3/gui/scripts
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/1.3/gui/scripts/flowvisviewer.tcl

    r5230 r5254  
    22# ----------------------------------------------------------------------
    33#  COMPONENT: flowvisviewer - 3D flow rendering
    4 #
    54#
    65# This widget performs volume and flow rendering on 3D scalar/vector datasets.
     
    6463    public method isconnected {}
    6564    public method limits { tf }
    66     public method overmarker { m x }
     65    public method overMarker { m x }
    6766    public method parameters {title args} {
    6867        # do nothing
    6968    }
    70     public method rmdupmarker { m x }
     69    public method removeDuplicateMarker { m x }
    7170    public method scale {args}
    72     public method updatetransferfuncs {}
     71    public method updateTransferFunctions {}
    7372
    7473    protected method Connect {}
     
    11621161    unset _recvObjs($tag)
    11631162    if { [array size _recvObjs] == 0 } {
    1164         updatetransferfuncs
     1163        updateTransferFunctions
    11651164    }
    11661165}
     
    16551654                set tf $_activeTf
    16561655                set _settings($this-$tf-opacity) $opacity
    1657                 updatetransferfuncs
     1656                updateTransferFunctions
    16581657            }
    16591658        }
     
    16661665                set tf $_activeTf
    16671666                set _settings($this-$tf-thickness) $sval
    1668                 updatetransferfuncs
     1667                updateTransferFunctions
    16691668            }
    16701669        }
     
    20072006# USAGE: UndateTransferFuncs
    20082007# ----------------------------------------------------------------------
    2009 itcl::body Rappture::FlowvisViewer::updatetransferfuncs {} {
     2008itcl::body Rappture::FlowvisViewer::updateTransferFunctions {} {
    20102009    $_dispatcher event -after 100 !send_transfunc
    20112010}
     
    20212020    $m relval [expr {double($x-10)/($w-20)}]
    20222021    lappend _isomarkers($tf) $m
    2023     updatetransferfuncs
     2022    updateTransferFunctions
    20242023    return 1
    20252024}
    20262025
    2027 itcl::body Rappture::FlowvisViewer::rmdupmarker { marker x } {
     2026itcl::body Rappture::FlowvisViewer::removeDuplicateMarker { marker x } {
    20282027    set tf [$marker transferfunc]
    20292028    set bool 0
     
    20452044        }
    20462045        set _isomarkers($tf) $list
    2047         updatetransferfuncs
     2046        updateTransferFunctions
    20482047    }
    20492048    return $bool
    20502049}
    20512050
    2052 itcl::body Rappture::FlowvisViewer::overmarker { marker x } {
     2051itcl::body Rappture::FlowvisViewer::overMarker { marker x } {
    20532052    set tf [$marker transferfunc]
    20542053    if { [info exists _isomarkers($tf)] } {
  • branches/1.3/gui/scripts/isomarker.tcl

    r5115 r5254  
    11# -*- mode: tcl; indent-tabs-mode: nil -*-
    2 
    32# ----------------------------------------------------------------------
    43#  COMPONENT: nanovisviewer::isomarker - Marker for 3D volume rendering
     
    3029    private common   _normalIcon [Rappture::icon nvlegendmark]
    3130    private common   _activeIcon [Rappture::icon nvlegendmark2]
     31    private method EnterTick {}
     32    private method LeaveTick {}
     33    private method StartDrag { x y }
     34    private method ContinueDrag { x y }
     35    private method StopDrag { x y }
    3236
    33     constructor {c obj tf args} {
    34         set _canvas $c
    35         set _nvobj $obj
    36         set _tf $tf
    37         set w [winfo width $_canvas]
    38         set h [winfo height $_canvas]
    39         set _tick [$c create image 0 $h \
    40                 -image $_normalIcon -anchor s \
    41                 -tags "$this $obj" -state hidden]
    42         set _label [$c create text 0 $h \
    43                 -anchor n -fill white -font "Helvetica 8" \
    44                 -tags "$this $obj" -state hidden]
    45         $c bind $_tick <Enter> [itcl::code $this HandleEvent "enter"]
    46         $c bind $_tick <Leave> [itcl::code $this HandleEvent "leave"]
    47         $c bind $_tick <ButtonPress-1> \
    48             [itcl::code $this HandleEvent "start" %x %y]
    49         $c bind $_tick <B1-Motion> \
    50             [itcl::code $this HandleEvent "update" %x %y]
    51         $c bind $_tick <ButtonRelease-1> \
    52             [itcl::code $this HandleEvent "end" %x %y]
    53     }
    54     destructor {
     37    constructor {c obj tf args} {}
     38    destructor {}
     39    public method transferfunc {}
     40    public method activate { bool }
     41    public method visible { bool }
     42    public method screenpos {}
     43    public method absval { {x "-get"} }
     44    public method relval { {x "-get"} }
     45}
     46
     47itcl::body Rappture::IsoMarker::constructor {c obj tf args} {
     48    set _canvas $c
     49    set _nvobj $obj
     50    set _tf $tf
     51    set w [winfo width $_canvas]
     52    set h [winfo height $_canvas]
     53    set _tick [$c create image 0 $h \
     54                   -image $_normalIcon -anchor s \
     55                   -tags "$this $obj" -state hidden]
     56    set _label [$c create text 0 $h \
     57                    -anchor n -fill white -font "Helvetica 8" \
     58                    -tags "$this $obj" -state hidden]
     59    $c bind $_tick <Enter>           [itcl::code $this EnterTick]
     60    $c bind $_tick <Leave>           [itcl::code $this LeaveTick]
     61    $c bind $_tick <ButtonPress-1>   [itcl::code $this StartDrag %x %y]
     62    $c bind $_tick <B1-Motion>       [itcl::code $this ContinueDrag %x %y]
     63    $c bind $_tick <ButtonRelease-1> [itcl::code $this StopDrag %x %y]
     64}
     65
     66itcl::body Rappture::IsoMarker::destructor {} {
     67    if { [winfo exists $_canvas] } {
    5568        $_canvas delete $this
    5669    }
    57     public method transferfunc {} {
    58         return $_tf
     70}
     71
     72itcl::body Rappture::IsoMarker::transferfunc {} {
     73    return $_tf
     74}
     75
     76itcl::body Rappture::IsoMarker::activate { bool } {
     77    if  { $bool || $_activePress || $_activeMotion } {
     78        $_canvas itemconfigure $_label -state normal
     79        $_canvas itemconfigure $_tick -image $_activeIcon
     80    } else {
     81        $_canvas itemconfigure $_label -state hidden
     82        $_canvas itemconfigure $_tick -image $_normalIcon
    5983    }
    60     public method activate { bool } {
    61         if  { $bool || $_activePress || $_activeMotion } {
    62             $_canvas itemconfigure $_label -state normal
    63             $_canvas itemconfigure $_tick -image $_activeIcon
    64         } else {
    65             $_canvas itemconfigure $_label -state hidden
    66             $_canvas itemconfigure $_tick -image $_normalIcon
    67         }
     84}
     85
     86itcl::body Rappture::IsoMarker::visible { bool } {
     87    if { $bool } {
     88        absval $_value
     89        $_canvas itemconfigure $_tick -state normal
     90        $_canvas raise $_tick
     91    } else {
     92        $_canvas itemconfigure $_tick -state hidden
    6893    }
    69     public method visible { bool } {
    70         if { $bool } {
    71             absval $_value
    72             $_canvas itemconfigure $_tick -state normal
    73             $_canvas raise $_tick
    74         } else {
    75             $_canvas itemconfigure $_tick -state hidden
    76         }
     94}
     95
     96itcl::body Rappture::IsoMarker::screenpos { } {
     97    set x [relval]
     98    if { $x < 0.0 } {
     99        set x 0.0
     100    } elseif { $x > 1.0 } {
     101        set x 1.0
    77102    }
    78     public method screenpos { } {
    79         set x [relval]
    80         if { $x < 0.0 } {
    81             set x 0.0
    82         } elseif { $x > 1.0 } {
    83             set x 1.0
    84         }
    85         set low 10
    86         set w [winfo width $_canvas]
    87         set high [expr {$w  - 10}]
    88         set x [expr {round($x*($high - $low) + $low)}]
    89         return $x
     103    set low 10
     104    set w [winfo width $_canvas]
     105    set high [expr {$w  - 10}]
     106    set x [expr {round($x*($high - $low) + $low)}]
     107    return $x
     108}
     109
     110itcl::body Rappture::IsoMarker::absval { {x "-get"} } {
     111    if { $x != "-get" } {
     112        set _value $x
     113        set y 31
     114        $_canvas itemconfigure $_label -text [format %.2g $_value]
     115        set x [screenpos]
     116        $_canvas coords $_tick $x [expr {$y+3}]
     117        $_canvas coords $_label $x [expr {$y+5}]
    90118    }
    91     public method absval { {x "-get"} } {
    92         if { $x != "-get" } {
    93             set _value $x
    94             set y 31
    95             $_canvas itemconfigure $_label -text [format %.2g $_value]
    96             set x [screenpos]
    97             $_canvas coords $_tick $x [expr {$y+3}]
    98             $_canvas coords $_label $x [expr {$y+5}]
    99         }
    100         return $_value
    101     }
    102     public method relval  { {x "-get"} } {
    103         if { $x == "-get" } {
    104             array set limits [$_nvobj limits $_tf]
    105             if { $limits(vmax) == $limits(vmin) } {
    106                 if { $limits(vmax) == 0.0 } {
    107                     set limits(vmin) 0.0
    108                     set limits(vmax) 1.0
    109                 } else {
    110                     set limits(vmax) [expr $limits(vmin) + 1.0]
    111                 }
    112             }
    113             return [expr {($_value-$limits(vmin))/
    114                           ($limits(vmax) - $limits(vmin))}]
    115         }
    116         array set limits [$_nvobj limits $_tf]
    117         if { $limits(vmax) == $limits(vmin) } {
    118             set limits(vmin) 0.0
    119             set limits(vmax) 1.0
    120         }
    121         if { [catch {expr $limits(vmax) - $limits(vmin)} r] != 0 } {
    122             return 0.0
    123         }
    124         absval [expr {($x * $r) + $limits(vmin)}]
    125     }
    126     private method HandleEvent { option args } {
    127         switch -- $option {
    128             enter {
    129                 set _activeMotion 1
    130                 activate yes
    131                 $_canvas raise $_tick
    132             }
    133             leave {
    134                 set _activeMotion 0
    135                 activate no
    136             }
    137             start {
    138                 $_canvas raise $_tick
    139                 set _activePress 1
    140                 activate yes
    141                 $_canvas itemconfigure limits -state hidden
    142             }
    143             update {
    144                 set w [winfo width $_canvas]
    145                 set x [lindex $args 0]
    146                 relval [expr {double($x-10)/($w-20)}]
    147                 $_nvobj overmarker $this $x
    148                 $_nvobj updatetransferfuncs
    149             }
    150             end {
    151                 set x [lindex $args 0]
    152                 if { ![$_nvobj rmdupmarker $this $x]} {
    153                     eval HandleEvent update $args
    154                 }
    155                 set _activePress 0
    156                 activate no
    157                 $_canvas itemconfigure limits -state normal
    158             }
    159             default {
    160                 error "bad option \"$option\": should be start, update, end"
     119    return $_value
     120}
     121
     122itcl::body Rappture::IsoMarker::relval { {x "-get"} } {
     123    array set limits [$_nvobj limits $_tf]
     124    set min $limits(vmin)
     125    set max $limits(vmax)
     126    if { $x == "-get" } {
     127        if { $max == $min } {
     128            if { $max == 0.0 } {
     129                set min 0.0
     130                set max 1.0
     131            } else {
     132                set max [expr $min + 1.0]
    161133            }
    162134        }
     135        return [expr {($_value - $min) / ($max - $min)}]
    163136    }
     137    if { $max == $min } {
     138        set min 0.0
     139        set max 1.0
     140    }
     141    if { [catch {expr $max - $min} r] != 0 } {
     142        return 0.0
     143    }
     144    absval [expr {($x * $r) + $min}]
    164145}
     146
     147itcl::body Rappture::IsoMarker::EnterTick {} {
     148    set _activeMotion 1
     149    activate yes
     150    $_canvas raise $_tick
     151}
     152
     153itcl::body Rappture::IsoMarker::LeaveTick {} {
     154    set _activeMotion 0
     155    activate no
     156}
     157
     158itcl::body Rappture::IsoMarker::StartDrag { x y } {
     159    $_canvas raise $_tick
     160    set _activePress 1
     161    activate yes
     162    $_canvas itemconfigure limits -state hidden
     163}
     164
     165itcl::body Rappture::IsoMarker::StopDrag { x y } {
     166    if { ![$_nvobj removeDuplicateMarker $this $x]} {
     167        ContinueDrag $x $y
     168    }
     169    set _activePress 0
     170    activate no
     171    $_canvas itemconfigure limits -state normal
     172}
     173
     174itcl::body Rappture::IsoMarker::ContinueDrag { x y } {
     175    set w [winfo width $_canvas]
     176    relval [expr {double($x-10)/($w-20)}]
     177    $_nvobj overMarker $this $x
     178    $_nvobj updateTransferFunctions
     179}
  • branches/1.3/gui/scripts/nanovisviewer.tcl

    r5230 r5254  
    11# -*- mode: tcl; indent-tabs-mode: nil -*-
    2 
    32# ----------------------------------------------------------------------
    43#  COMPONENT: nanovisviewer - 3D volume rendering
     
    7675    public method isconnected {}
    7776    public method limits { tf }
    78     public method overmarker { m x }
     77    public method overMarker { m x }
    7978    public method parameters {title args} {
    8079        # do nothing
    8180    }
    82     public method rmdupmarker { m x }
     81    public method removeDuplicateMarker { m x }
    8382    public method scale {args}
    84     public method updatetransferfuncs {}
     83    public method updateTransferFunctions {}
    8584
    8685    protected method Connect {}
     
    848847        # the first data object.  This assumes that the data is always
    849848        # successfully transferred.
    850         updatetransferfuncs
     849        updateTransferFunctions
    851850    }
    852851}
     
    976975        set cname [lindex [$_first components] 0]
    977976        if { [info exists _serverDatasets($_first-$cname)] } {
    978             updatetransferfuncs
     977            updateTransferFunctions
    979978        }
    980979    }
     
    12251224                set _activeTfs($tf) 0
    12261225            }
    1227             updatetransferfuncs
     1226            updateTransferFunctions
    12281227        }
    12291228        thickness {
     
    12361235                    set _activeTfs($tf) 0
    12371236                }
    1238                 updatetransferfuncs
     1237                updateTransferFunctions
    12391238            }
    12401239        }
     
    15491548# USAGE: UndateTransferFuncs
    15501549# ----------------------------------------------------------------------
    1551 itcl::body Rappture::NanovisViewer::updatetransferfuncs {} {
     1550itcl::body Rappture::NanovisViewer::updateTransferFunctions {} {
    15521551    $_dispatcher event -idle !send_transfunc
    15531552}
     
    15641563    $m relval [expr {double($x-10)/($w-20)}]
    15651564    lappend _isomarkers($tf) $m
    1566     updatetransferfuncs
     1565    updateTransferFunctions
    15671566    return 1
    15681567}
    15691568
    1570 itcl::body Rappture::NanovisViewer::rmdupmarker { marker x } {
     1569itcl::body Rappture::NanovisViewer::removeDuplicateMarker { marker x } {
    15711570    set tf [$marker transferfunc]
    15721571    set bool 0
     
    15881587        }
    15891588        set _isomarkers($tf) $list
    1590         updatetransferfuncs
     1589        updateTransferFunctions
    15911590    }
    15921591    return $bool
    15931592}
    15941593
    1595 itcl::body Rappture::NanovisViewer::overmarker { marker x } {
     1594itcl::body Rappture::NanovisViewer::overMarker { marker x } {
    15961595    set tf [$marker transferfunc]
    15971596    if { [info exists _isomarkers($tf)] } {
Note: See TracChangeset for help on using the changeset viewer.