File: WindowLevelInterface.tcl

package info (click to toggle)
paraview 4.0.1-1~bpo70%2B1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy-backports
  • size: 526,572 kB
  • sloc: cpp: 2,284,430; ansic: 816,374; python: 239,936; xml: 70,162; tcl: 48,295; fortran: 39,116; yacc: 5,466; java: 3,518; perl: 3,107; lex: 1,620; sh: 1,555; makefile: 932; asm: 471; pascal: 228
file content (101 lines) | stat: -rw-r--r-- 2,547 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package require vtkinteraction

# a simple user interface that manipulates window level.
# places in the tcl top window.  Looks for object named viewer

#only use this interface when not doing regression tests
if {[info commands rtExMath] != "rtExMath"} {

# Take window level parameters from viewer
proc InitializeWindowLevelInterface {} {
   global viewer sliceNumber

   # Get parameters from viewer
   set w [viewer GetColorWindow]
   set l [viewer GetColorLevel]
   set sliceNumber [viewer GetZSlice]
   set zMin [viewer GetWholeZMin]
   set zMax [viewer GetWholeZMax]
#   set zMin 0
#   set zMax 128

   frame .slice
   label .slice.label -text "Slice"
   scale .slice.scale -from $zMin -to $zMax -orient horizontal \
     -command SetSlice -variable sliceNumber
#   button .slice.up -text "Up" -command SliceUp
#   button .slice.down -text "Down" -command SliceDown

   frame .wl
   frame .wl.f1
   label .wl.f1.windowLabel -text "Window"
   scale .wl.f1.window -from 1 -to [expr $w * 2]  -orient horizontal \
     -command SetWindow -variable window
   frame .wl.f2
   label .wl.f2.levelLabel -text "Level"
   scale .wl.f2.level -from [expr $l - $w] -to [expr $l + $w] \
     -orient horizontal -command SetLevel
   checkbutton .wl.video -text "Inverse Video" -command SetInverseVideo

   # resolutions less than 1.0
   if {$w < 10} {
      set res [expr 0.05 * $w]
      .wl.f1.window configure -resolution $res -from $res -to [expr 2.0 * $w]
      .wl.f2.level configure -resolution $res \
	-from [expr 0.0 + $l - $w] -to [expr 0.0 + $l + $w]
   }

   .wl.f1.window set $w
   .wl.f2.level set $l

   frame .ex
   button .ex.exit -text "Exit" -command "exit"

   pack .slice .wl .ex -side top
   pack .slice.label .slice.scale -side left
   pack .wl.f1 .wl.f2 .wl.video -side top
   pack .wl.f1.windowLabel .wl.f1.window -side left
   pack .wl.f2.levelLabel .wl.f2.level -side left
   pack .ex.exit -side left
}

proc SetSlice { slice } {
   global sliceNumber viewer

   viewer SetZSlice $slice
   viewer Render
}

proc SetWindow window {
   global viewer video
   if {$video} {
      viewer SetColorWindow [expr -$window]
   } else {
      viewer SetColorWindow $window
   }
   viewer Render
}

proc SetLevel level {
   global viewer
   viewer SetColorLevel $level
   viewer Render
}

proc SetInverseVideo {} {
   global viewer video window
   if {$video} {
      viewer SetColorWindow [expr -$window]
   } else {
      viewer SetColorWindow $window
   }
   viewer Render
}


InitializeWindowLevelInterface

} else {
  viewer Render
}