]> Creatis software - bbtk.git/blob - packages/demo/bbs/appli/demoViewing1.bbs
Unify demo codes
[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 new MetaImageReader reader
53    connect openFileDialog.Out reader.In
54 */
55
56 # uncomment the following lines to read a 3D images stack
57 # (only if file name order is meaningfull)
58 # -------------------------------------------------------
59 /*
60 // To choose the directory
61 new DirectorySelector ds
62 // To get the image names into a vector
63 new FilesFromDirectory fd
64 // To read all the files, as a bbitk::ImagePointer
65 new ImageSeriesReader reader
66 // user choosen directory as input
67 connect ds.Out fd.In
68 set fd.Recursive false
69 // list of files as input
70 #print "Files found in $ds.Out$\n
71 connect fd.Out reader.FileNames
72 */
73
74 # uncomment the following lines to read a 3D images stack
75 # (if the directory contains a 'XCoherent" Serie)
76 # -------------------------------------------------------
77 /*
78 // To choose the directory
79 new DirectorySelector ds
80 // To get the image names into a vector
81 new FilesFromDirectory fd
82 // user choosen directory as input
83 connect ds.Out fd.In 
84 // order the files, computes an accurate ZSpacing
85 new GetXCoherentInfoGdcmReader reader
86 connect fd.Out reader.In
87 */
88
89 # uncomment the following lines to read a 3D images stack
90 # (with DICOMDirReader)
91 # -------------------------------------------------------
92 /*
93 include itk/boxes/bbDICOMDirReader
94 // To choose the directory
95 new DirectorySelector ds
96 new DICOMDirReader reader
97    connect ds.Out reader.In
98 */
99
100 // We need that to set Sliders sizes
101
102 #Get image dimensions, ...
103 new ImageProperties mc
104    connect reader.Out mc.In
105
106 #print "Image properties : $reader.Out"
107
108 #Get number of column (X)
109 new GetVectorIntElement gveX
110    connect mc.Size gveX.In
111    set gveX.I 0
112
113 #Get number of rows (Y)
114 new GetVectorIntElement gveY
115    connect mc.Size gveY.In
116    set gveY.I 1
117
118 #Get number of planes  (Z)
119 new GetVectorIntElement gveZ
120    connect mc.Size gveZ.In
121    set gveZ.I 2
122
123 #Compute the number of the 'middle' slice on X axis
124 new Div div0
125   connect   gveX.Out div0.In1
126   set div0.In2 2
127
128 #Compute the number of the 'middle' slice on Y axis
129 new Div div1
130   connect   gveY.Out div1.In1
131   set div1.In2 2
132
133 #Compute the number of the 'middle' slice on Z axis
134 new Div div2
135   connect   gveZ.Out div2.In1
136   set div2.In2 2
137
138 // For X axis
139 new SimpleSlicer viewerUL
140   connect reader.Out viewerUL.In
141   connect viewerUL.Widget upleft.Widget1
142   #initial slice is the middle one
143   connect div0.Out viewerUL.Slice
144   #Slider size is the number of planes
145   connect  gveX.Out viewerUL.SliderSize
146   set viewerUL.SliderReactiveOnTrack 1
147   set viewerUL.Orientation 0
148   set viewerUL.SliderOrientation H
149   set viewerUL.SliderTitle "Planes YZ"
150
151 // For Y axis
152 new SimpleSlicer viewerUR
153   connect reader.Out viewerUR.In
154   connect viewerUR.Widget upright.Widget1
155   #initial slice is the middle one
156   connect div1.Out viewerUR.Slice
157   #Slider size is the number of planes
158   connect  gveY.Out viewerUR.SliderSize
159   set viewerUR.SliderReactiveOnTrack 1
160   set viewerUR.SliderOrientation H
161   set viewerUR.Orientation 1
162   set viewerUR.SliderTitle "Planes XZ"
163
164 // For Z axis
165 new SimpleSlicer viewerTD
166   connect reader.Out viewerTD.In
167   connect viewerTD.Widget downleft.Widget1
168   #initial slice is the middle one
169   connect div2.Out viewerTD.Slice
170   #Slider size is the number of planes
171   connect  gveZ.Out viewerTD.SliderSize
172   set viewerTD.SliderReactiveOnTrack 1
173   set viewerTD.SliderOrientation H
174   set viewerTD.Orientation 2
175   set viewerTD.SliderTitle "Planes XY"
176
177 //For 3D Viewer
178
179 new ImagePlanes planes
180   connect reader.Out planes.In
181
182 new Viewer3D viewer
183   connect planes.PlaneX viewer.Obs1
184   connect planes.PlaneY viewer.Obs2
185   connect planes.PlaneZ viewer.Obs3
186
187   connect viewer.Widget main.Widget4
188
189 set main.WinTitle "demoViewing1"
190 exec main
191 exec viewerTD
192
193