1 description "3 slicers and a 3D view"
2 author "jpr@creatis.insa-lyon.fr"
5 // To show how easy it is to add smthing
6 // =====================================
16 include wxvtk/boxes/bbSimpleSlicer
19 new LayoutLine upright
21 new LayoutLine downleft
23 connect upright.Widget main.Widget1
24 connect upleft.Widget main.Widget2
25 connect downleft.Widget main.Widget3
29 include vtk/boxes/bbLoadHola
32 # uncomment next lines to have a file selector
33 # --------------------------------------------
35 new FileSelector openFileDialog
36 new ImageReader reader
37 connect openFileDialog.Out reader.In
40 # uncomment next lines to use Gimmick
41 # -----------------------------------
47 # uncomment next lines to Read a MHD file (and nothing else !)
48 # ------------------------------------------------------------
50 new FileSelector openFileDialog
51 new MetaImageReader reader
52 connect openFileDialog.Out reader.In
55 # uncomment the following lines to read a 3D images stack
56 # (only if file name order is meaningfull)
57 # -------------------------------------------------------
59 // To choose the directory
60 new DirectorySelector ds
61 // To get the image names into a vector
62 new FilesFromDirectory fd
63 // To read all the files, as a bbitk::ImagePointer
64 new ImageSeriesReader reader
65 // user choosen directory as input
67 set fd.Recursive false
68 // list of files as imput
69 #print "Files found in $ds.Out$\n
70 connect fd.Out reader.FileNames
74 // We need that to set Sliders sizes
76 #Get image dimensions, ...
77 new ImageProperties mc
78 connect reader.Out mc.In
80 #print "Image properties : $reader.Out"
82 #Get number of column (X)
83 new GetVectorIntElement gveX
84 connect mc.Size gveX.In
87 #Get number of rows (Y)
88 new GetVectorIntElement gveY
89 connect mc.Size gveY.In
92 #Get number of planes (Z)
93 new GetVectorIntElement gveZ
94 connect mc.Size gveZ.In
97 #Compute the number of the 'middle' slice on X axis
99 connect gveX.Out div0.In1
102 #Compute the number of the 'middle' slice on Y axis
104 connect gveY.Out div1.In1
107 #Compute the number of the 'middle' slice on Z axis
109 connect gveZ.Out div2.In1
114 new SimpleSlicer viewerUL
115 connect reader.Out viewerUL.In
116 connect viewerUL.Widget upleft.Widget1
117 #initial slice is the middle one
118 connect div0.Out viewerUL.Slice
119 #Slider size is the number of planes
120 connect gveX.Out viewerUL.SliderSize
121 set viewerUL.SliderReactiveOnTrack 1
122 set viewerUL.Orientation 0
123 set viewerUL.SliderOrientation H
124 set viewerUL.SliderTitle "Planes YZ"
127 new SimpleSlicer viewerUR
128 connect reader.Out viewerUR.In
129 connect viewerUR.Widget upright.Widget1
130 #initial slice is the middle one
131 connect div1.Out viewerUR.Slice
132 #Slider size is the number of planes
133 connect gveY.Out viewerUR.SliderSize
134 set viewerUR.SliderReactiveOnTrack 1
135 set viewerUR.SliderOrientation H
136 set viewerUR.Orientation 1
137 set viewerUR.SliderTitle "Planes XZ"
140 new SimpleSlicer viewerTD
141 connect reader.Out viewerTD.In
142 connect viewerTD.Widget downleft.Widget1
143 #initial slice is the middle one
144 connect div2.Out viewerTD.Slice
145 #Slider size is the number of planes
146 connect gveZ.Out viewerTD.SliderSize
147 set viewerTD.SliderReactiveOnTrack 1
148 set viewerTD.SliderOrientation H
149 set viewerTD.Orientation 2
150 set viewerTD.SliderTitle "Planes XY"
154 new ImagePlanes planes
155 connect reader.Out planes.In
158 connect planes.PlaneX viewer.Obs1
159 connect planes.PlaneY viewer.Obs2
160 connect planes.PlaneZ viewer.Obs3
162 connect viewer.Widget main.Widget4
164 set main.WinTitle "demoViewing1"