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 # --------------------------------------------
34 #new FileSelector openFileDialog
35 #new ImageReader reader
36 # connect openFileDialog.Out reader.In
38 # uncomment next lines to use Gimmick
39 # -----------------------------------
43 # uncomment next lines to Read a MHD file (and nothing else !)
44 # ------------------------------------------------------------
45 #new FileSelector openFileDialog
46 #new MetaImageReader reader
47 # connect openFileDialog.Out reader.In
49 # uncomment the following lines to read a 3D images stack
50 # (only if file name order is meaningfull)
51 # -------------------------------------------------------
53 // To choose the directory
54 new DirectorySelector ds
55 // To get the image names into a vector
56 new FilesFromDirectory fd
57 // To read all the files, as a bbitk::ImagePointer
58 new ImageSeriesReader reader
59 // user choosen directory as input
61 set fd.Recursive false
62 // list of files as imput
63 connect fd.Out reader.FileNames
66 #Get image dimensions, ...
67 new ImageProperties mc
68 connect reader.Out mc.In
70 #Get number of column (X)
71 new GetVectorIntElement gveX
72 connect mc.Size gveX.In
75 #Get number of rows (Y)
76 new GetVectorIntElement gveY
77 connect mc.Size gveY.In
80 #Get number of planes (Z)
81 new GetVectorIntElement gveZ
82 connect mc.Size gveZ.In
85 #Compute the number of the 'middle' slice on X axis
87 connect gveX.Out div0.In1
90 #Compute the number of the 'middle' slice on Y axis
92 connect gveY.Out div1.In1
95 #Compute the number of the 'middle' slice on Z axis
97 connect gveZ.Out div2.In1
102 new SimpleSlicer viewerUL
103 connect reader.Out viewerUL.In
104 connect viewerUL.Widget upleft.Widget1
105 #initial slice is the middle one
106 connect div0.Out viewerUL.Slice
107 #Slider size is the number of planes
108 connect gveX.Out viewerUL.SliderSize
109 set viewerUL.SliderReactiveOnTrack 1
110 set viewerUL.Orientation 0
111 set viewerUL.SliderOrientation H
112 set viewerUL.SliderTitle "Planes YZ"
116 new SimpleSlicer viewerUR
117 connect reader.Out viewerUR.In
118 connect viewerUR.Widget upright.Widget1
119 #initial slice is the middle one
120 connect div1.Out viewerUR.Slice
121 #Slider size is the number of planes
122 connect gveY.Out viewerUR.SliderSize
123 set viewerUR.SliderReactiveOnTrack 1
124 set viewerUR.SliderOrientation H
125 set viewerUR.Orientation 1
126 set viewerUR.SliderTitle "Planes XZ"
129 new SimpleSlicer viewerTD
130 connect reader.Out viewerTD.In
131 connect viewerTD.Widget downleft.Widget1
132 #initial slice is the middle one
133 connect div2.Out viewerTD.Slice
134 #Slider size is the number of planes
135 connect gveZ.Out viewerTD.SliderSize
136 set viewerTD.SliderReactiveOnTrack 1
137 set viewerTD.SliderOrientation H
138 set viewerTD.Orientation 2
139 set viewerTD.SliderTitle "Planes XY"
143 new ImagePlanes planes
144 connect reader.Out planes.In
147 connect planes.PlaneX viewer.Obs1
148 connect planes.PlaneY viewer.Obs2
149 connect planes.PlaneZ viewer.Obs3
151 connect viewer.Widget main.Widget4
153 set main.WinTitle "demoViewing1"