]> Creatis software - bbtk.git/blob - packages/demo/bbs/appli/demoViewing1.bbs
Brute hack to fix nb dim < 3
[bbtk.git] / packages / demo / bbs / appli / demoViewing1.bbs
1 description "3 slicers and a 3D view"
2 author "jpr@creatis.insa-lyon.fr"
3 category "demo"
4
5 // To show how easy it is to add smthing
6 // =====================================
7
8 load vtk
9 include wxvtk
10 load std
11 load itk
12 include vtk
13 include wx
14 load itkvtk
15 load gdcmvtk
16
17 include wxvtk/boxes/bbSimpleSlicer
18
19 new LayoutX4 main
20 new LayoutLine upright
21 new LayoutLine upleft
22 new LayoutLine downleft
23
24 connect upright.Widget  main.Widget1
25 connect upleft.Widget   main.Widget2
26 connect downleft.Widget main.Widget3
27
28 # Here loads hola.mhd
29 # -------------------
30 include vtk/boxes/bbLoadHola
31 new LoadHola reader
32
33 # uncomment next lines to have a file selector
34 # --------------------------------------------
35 /*
36 new FileSelector openFileDialog
37 new ImageReader reader
38   connect openFileDialog.Out reader.In
39 */
40
41 # uncomment next lines to use Gimmick
42 # -----------------------------------
43 /*
44 load creaImageIO
45 new Gimmick reader
46 */
47
48 # uncomment next lines to Read a MHD file (and nothing else !)
49 # ------------------------------------------------------------
50 /*
51 new FileSelector openFileDialog
52  set openFileDialog.Wildcard  "(*.mhd)|*.mhd"
53 new MetaImageReader reader
54    connect openFileDialog.Out reader.In
55 */
56
57 # uncomment the following lines to read a 3D images stack
58 # (only if file name order is meaningfull)
59 # -------------------------------------------------------
60 /*
61 // To choose the directory
62 new DirectorySelector ds
63 // To get the image names into a vector
64 new FilesFromDirectory fd
65 // To read all the files, as a bbitk::ImagePointer
66 new ImageSeriesReader reader
67 // user choosen directory as input
68 connect ds.Out fd.In
69 set fd.Recursive false
70 // list of files as input
71 #print "Files found in $ds.Out$\n
72 connect fd.Out reader.FileNames
73 */
74
75 # uncomment the following lines to read a 3D images stack
76 # (if the directory contains a 'XCoherent" Serie)
77 # -------------------------------------------------------
78 /*
79 // To choose the directory
80 new DirectorySelector ds
81 // To get the image names into a vector
82 new FilesFromDirectory fd
83 // user choosen directory as input
84 connect ds.Out fd.In 
85 // order the files, computes an accurate ZSpacing
86 new GetXCoherentInfoGdcmReader reader
87 connect fd.Out reader.In
88 */
89
90 # uncomment the following lines to read a 3D images stack
91 # (with DICOMDirReader)
92 # -------------------------------------------------------
93 /*
94 include itk/boxes/bbDICOMDirReader
95 // To choose the directory
96 new DirectorySelector ds
97 new DICOMDirReader reader
98    connect ds.Out reader.In
99 */
100
101 // We need that to set Sliders sizes
102
103 #Get image dimensions, ...
104 new ImageProperties mc
105    connect reader.Out mc.In
106
107 #print "Image properties : $reader.Out"
108
109 #Get number of column (X)
110 new GetVectorIntElement gveX
111    connect mc.Size gveX.In
112    set gveX.I 0
113
114 #Get number of rows (Y)
115 new GetVectorIntElement gveY
116    connect mc.Size gveY.In
117    set gveY.I 1
118
119 #Get number of planes  (Z)
120 new GetVectorIntElement gveZ
121    connect mc.Size gveZ.In
122    set gveZ.I 2
123 print "Dim Z $ gveZ.Out"
124
125 #Compute the number of the 'middle' slice on X axis
126 new Div div0
127   connect   gveX.Out div0.In1
128   set div0.In2 2
129
130 #Compute the number of the 'middle' slice on Y axis
131 new Div div1
132   connect   gveY.Out div1.In1
133   set div1.In2 2
134
135 #Compute the number of the 'middle' slice on Z axis
136 new Div div2
137   connect   gveZ.Out div2.In1
138   set div2.In2 2
139
140 // For X axis
141 new SimpleSlicer viewerUL
142   connect reader.Out viewerUL.In
143   connect viewerUL.Widget upleft.Widget1
144   #initial slice is the middle one
145   connect div0.Out viewerUL.Slice
146   #Slider size is the number of planes
147   connect  gveX.Out viewerUL.SliderSize
148   set viewerUL.SliderReactiveOnTrack 1
149   set viewerUL.Orientation 0
150   set viewerUL.SliderOrientation H
151   set viewerUL.SliderTitle "Planes YZ"
152
153 // For Y axis
154 new SimpleSlicer viewerUR
155   connect reader.Out viewerUR.In
156   connect viewerUR.Widget upright.Widget1
157   #initial slice is the middle one
158   connect div1.Out viewerUR.Slice
159   #Slider size is the number of planes
160   connect  gveY.Out viewerUR.SliderSize
161   set viewerUR.SliderReactiveOnTrack 1
162   set viewerUR.SliderOrientation H
163   set viewerUR.Orientation 1
164   set viewerUR.SliderTitle "Planes XZ"
165
166 // For Z axis
167 new SimpleSlicer viewerTD
168   connect reader.Out viewerTD.In
169   connect viewerTD.Widget downleft.Widget1
170   #initial slice is the middle one
171   connect div2.Out viewerTD.Slice
172   #Slider size is the number of planes
173   connect  gveZ.Out viewerTD.SliderSize
174   set viewerTD.SliderReactiveOnTrack 1
175   set viewerTD.SliderOrientation H
176   set viewerTD.Orientation 2
177   set viewerTD.SliderTitle "Planes XY"
178
179 //For 3D Viewer
180
181 new ImagePlanes planes
182   connect reader.Out planes.In
183
184 new Viewer3D viewer
185   connect planes.PlaneX viewer.Obs1
186   connect planes.PlaneY viewer.Obs2
187   connect planes.PlaneZ viewer.Obs3
188
189   connect viewer.Widget main.Widget4
190
191 set main.WinTitle "demoViewing1"
192 exec main
193 exec viewerTD
194
195