]> Creatis software - creaRigidRegistration.git/blob - PackRecalage/bbs/appli/ViewerMerge2DInteractiveDemoFabianADC.bbs
New items
[creaRigidRegistration.git] / PackRecalage / bbs / appli / ViewerMerge2DInteractiveDemoFabianADC.bbs
1 load wx
2 load std
3 load vtk
4 load wxvtk
5 load creaMaracasVisu
6 load PackVisuImages
7 //load creaImageIO
8
9 load PackRecalage
10
11 //include vtk/boxes/bbLoadHola 
12 //new LoadHola image
13
14 new FileSelector imageSelector1
15 new FileSelector imageSelector2
16
17 new MetaImageReader image
18   connect imageSelector1.Out image.In
19
20 new MetaImageReader image2 
21   connect imageSelector2.Out image2.In 
22   
23
24 #new Gimmick image
25 #new Gimmick image2
26
27 #Viewer containing image 1
28
29 new LayoutLine v1Layout
30 new ViewerNV viewer1
31 connect image.Out viewer1.In
32 set viewer1.nTypeView "0"
33 connect viewer1.Widget v1Layout.Widget1
34
35
36 #Viewer containing image 2
37
38 new LayoutLine v2Layout
39 new ViewerNV viewer2
40 connect image2.Out viewer2.In
41 set viewer2.nTypeView "0"
42 connect viewer2.Widget v2Layout.Widget1
43
44 #LayoutSplit were the images will be
45
46 new LayoutSplit initialImages
47 set initialImages.Proportion "50"
48 set initialImages.Orientation H
49 connect v1Layout.Widget initialImages.Widget1
50 connect v2Layout.Widget initialImages.Widget2
51
52 #Layout line that will contain the buttons
53
54 new LayoutLine buttonsLayout
55   set buttonsLayout.Orientation V
56
57 #Slider were the angle will be entered
58
59 new Slider slider
60   set slider.Title "Angle"
61   set slider.In 0
62   set slider.Min 0
63   set slider.Max 360
64   set slider.ReactiveOnTrack "1"
65   connect slider.Widget buttonsLayout.Widget1 
66
67
68
69 #Slider were the xScale will be entered
70
71 new Slider sliderX
72   set sliderX.Title "% Scale in X"
73   set sliderX.In 100
74   set sliderX.Min 10
75   set sliderX.Max 500
76   set sliderX.ReactiveOnTrack "1"
77   connect sliderX.Widget buttonsLayout.Widget2 
78
79
80
81 #Slider were the yScale will be entered
82
83 new Slider sliderY
84   set sliderY.Title "% Scale in Y"
85   set sliderY.In 100
86   set sliderY.Min 10
87   set sliderY.Max 500
88   set sliderY.ReactiveOnTrack "1"
89   connect sliderY.Widget buttonsLayout.Widget3 
90
91
92 #Box were the transformation will be made
93
94 new Transform2DBox transform
95   connect viewer2.Point transform.CenterPoint
96   connect slider.Out transform.Angle
97   connect sliderX.Out transform.ScaleX
98   connect sliderY.Out transform.ScaleY
99
100
101
102 new ReSlicerBox reslice1
103   connect viewer1.Point reslice1.Origin
104   connect transform.Out reslice1.Transform
105   connect image2.Out reslice1.In
106
107 new SliceImage slice1
108    connect reslice1.Out slice1.In
109    set slice1.Z "1"
110
111 new Viewer2D viewer2d
112   connect reslice1.Out viewer2d.In
113   set viewer2d.Slice "1"
114
115 #new ViewerNV viewer3
116   #connect reslice1.Out viewer3.In
117   #set viewer3.nTypeView "5"
118   #set viewer3.WinWidth "600"
119
120 # Create the reslicers
121
122 new SliceImage imgslice1
123 new SliceImage imgslice2
124   connect image.Out imgslice1.In
125  connect reslice1.Out imgslice2.In
126
127 # Create the visulization box
128 new CheckBoardBox cbb
129  connect imgslice1.Out cbb.In1
130  connect imgslice2.Out cbb.In2
131
132 # Create the slider1
133 new Slider sdr
134  set sdr.ReactiveOnTrack 1
135  set sdr.Max 50
136  set sdr.In 14
137
138 # Create the slider2
139 new Slider sdr2
140  set sdr2.ReactiveOnTrack 1
141  set sdr2.Max 50
142  set sdr2.In 14
143
144 # Create the ZSlider for the slices
145
146 new Slider sdrZ
147  set sdrZ.ReactiveOnTrack 1
148  set sdrZ.Max 50
149  set sdrZ.Title "Z for slice"
150
151 connect sdrZ.Out imgslice1.Z
152 connect sdrZ.Out imgslice2.Z
153 connect sdrZ.BoxChange imgslice1.BoxExecute
154 connect sdrZ.BoxChange imgslice2.BoxExecute
155
156 # Create viewer & layout
157 new LayoutSplit checkerBoard
158 new LayoutLine ly
159 new ViewerNV viewerCH
160   set viewerCH.nTypeView "0"
161  set checkerBoard.Proportion 80
162
163 # Graphical pipeline
164  connect sdr.Out cbb.Cols
165  connect sdr2.Out cbb.Rows
166  connect cbb.Out viewerCH.In
167
168  #connect sdrZ.Widget ly.Widget1
169  connect sdr.Widget ly.Widget2
170  connect sdr2.Widget ly.Widget3
171
172  connect viewerCH.Widget checkerBoard.Widget1 
173  connect ly.Widget checkerBoard.Widget2
174
175 # Create Surface View
176
177 new SurfaceCreator surf
178   set surf.Color1 RED
179   set surf.Color2 BLUE
180
181   connect imgslice1.Out surf.Image1
182   connect imgslice2.Out surf.Image2
183
184 new Slider sdrSurf1
185  set sdrSurf1.Min -500
186  set sdrSurf1.Max 500
187  set sdrSurf1.In 100
188
189 new Slider sdrSurf2
190  set sdrSurf2.Min -500
191  set sdrSurf2.Max 500
192  set sdrSurf2.In 300
193
194   connect sdrSurf1.Out surf.Height1
195   connect sdrSurf2.Out surf.Height2
196
197 # Create Surface Layouts
198
199 new LayoutSplit surface
200 new LayoutLine lySurf
201 new Viewer3D viewerSurf
202  set surface.Proportion 80
203  connect sdrSurf1.Widget lySurf.Widget1
204  connect sdrSurf2.Widget lySurf.Widget2
205  connect viewerSurf.Renderer surf.Renderer
206  #connect lySurf.BoxChange viewerSurf.BoxExecute
207
208  connect surf.Out1 viewerSurf.In1
209  connect surf.Out2 viewerSurf.In2
210
211  connect viewerSurf.Widget surface.Widget1
212  connect lySurf.Widget surface.Widget2
213
214 #Create Substraction View
215
216 new ImageSubstraction imageSub
217   connect imgslice1.Out imageSub.In1
218   connect imgslice2.Out imageSub.In2
219
220 new Slider sdrSub1
221   set sdrSub1.In 51
222   set sdrSub1.Max 255
223   set sdrSub1.Min 0
224   set sdrSub1.Title "Upper Zero Level"
225
226 new Slider sdrSub2
227   set sdrSub2.In 49
228   set sdrSub2.Max 255
229   set sdrSub2.Min 0
230   set sdrSub2.Title "Lower Zero Level"
231
232   connect sdrSub1.Out imageSub.In3
233   connect sdrSub2.Out imageSub.In4
234
235 new ColourSelectorButton colorU
236 new ColourSelectorButton colorM
237 new ColourSelectorButton colorL
238
239   set colorU.WinTitle "Upper Level Colour"
240   set colorM.WinTitle "Middle Level Colour"
241   set colorL.WinTitle "Lower Level Colour"
242
243   set colorU.In "0"
244   set colorM.In "50,50,50"
245   set colorL.In "1"
246
247   connect colorU.Out imageSub.InU
248   connect colorM.Out imageSub.InM
249   connect colorL.Out imageSub.InL
250
251 #Create substraction layout
252
253 new Viewer2D subView
254   connect imageSub.Out subView.In
255
256 new LayoutSplit substraction
257 new LayoutLine lySub
258
259   connect sdrSub1.Widget lySub.Widget1
260   connect sdrSub2.Widget lySub.Widget2
261
262 new LayoutLine lySubColor
263
264   set lySubColor.Orientation H
265   connect colorU.Widget lySubColor.Widget1
266   connect colorM.Widget lySubColor.Widget2
267   connect colorL.Widget lySubColor.Widget3
268
269   connect lySubColor.Widget lySub.Widget3
270
271   set substraction.Proportion "70"
272
273   connect subView.Widget substraction.Widget1
274   connect lySub.Widget substraction.Widget2
275 /*
276 # Create the transparency box
277 new Transparency tb
278  connect imgslice1.Out tb.Image1
279  connect imgslice2.Out tb.Image2
280
281 # Create viewer and add actors
282 new Viewer3D transparency
283  connect tb.Actor1 transparency.In1
284  connect tb.Actor2 transparency.In2
285
286 */
287 #Multiple inputs for managing the interaction
288
289 new MultipleInputs mult
290   connect slider.BoxChange mult.In1
291   connect sliderX.BoxChange mult.In2
292   connect sliderY.BoxChange mult.In3
293   connect viewer1.BoxChange mult.In4
294   connect viewer2.BoxChange mult.In5
295   #connect mult.BoxChange viewer3.BoxExecute
296   #connect mult.BoxChange viewer2d.BoxExecute
297
298
299 # Execution pipeline for checkboard
300
301 new MultipleInputs mult2
302   connect ly.BoxChange mult2.In1
303   connect mult.BoxChange mult2.In2
304   connect imgslice1.BoxChange mult2.In3
305   connect imgslice2.BoxChange mult2.In4
306
307 connect mult2.BoxChange cbb.BoxExecute
308 connect cbb.BoxChange viewerCH.BoxExecute
309
310 # Execution pipeline for Surface
311
312 new MultipleInputs mult3
313  connect mult2.BoxChange mult3.In1
314  connect sdrSurf1.BoxChange mult3.In2
315  connect sdrSurf2.BoxChange mult3.In3
316
317  connect mult3.BoxChange surf.BoxExecute
318  connect surf.BoxChange viewerSurf.BoxExecute
319
320 #Execution pipeline for Substraction
321
322 new MultipleInputs mult4
323   connect sdrSub1.BoxChange mult4.In1
324   connect sdrSub2.BoxChange mult4.In2
325   connect mult2.BoxChange mult4.In3
326
327 new MultipleInputs mult5
328   connect mult4.BoxChange mult5.In1
329   connect colorU.BoxChange mult5.In2
330   connect colorM.BoxChange mult5.In3
331   connect colorL.BoxChange mult5.In4
332
333   connect mult5.BoxChange imageSub.BoxExecute
334   connect imageSub.BoxChange substraction.BoxExecute
335
336 #Execution pipeline for Transparency
337 /*
338 connect mult2.BoxChange tb.BoxExecute
339 connect tb.BoxChange transparency.BoxExecute
340 */
341 # Button for saving
342
343 new CommandButton saveBut
344   set saveBut.Label "Save Image"
345
346 new FileSelector fileSave
347   set fileSave.OpenSave "Save"
348   set fileSave.Wildcard "*.mhd"
349
350 new MetaImageWriter writSave
351   connect reslice1.Out writSave.In 
352   connect fileSave.Out writSave.Filename
353
354   connect saveBut.BoxChange fileSave.BoxExecute
355   connect fileSave.BoxChange writSave.BoxExecute
356
357 #Layout were the images and the buttones will be displayed
358
359 new LayoutSplit window1
360   set window1.WinWidth "600"
361   set window1.Proportion "80"
362   set window1.Orientation V
363   connect initialImages.Widget window1.Widget1
364   connect buttonsLayout.Widget window1.Widget2
365
366 #new LayoutSplit checkBoard
367   #set window1.WinWidth "600"
368   #set window1.Proportion "80"
369   #set window1.Orientation V
370   #connect viewer3.Widget checkBoard.Widget1  
371   #connect checkView.Widget checkBoard.Widget1
372
373 new LayoutTab tabs
374   connect checkerBoard.Widget tabs.Widget1
375   connect surface.Widget tabs.Widget2
376   connect substraction.Widget tabs.Widget3
377   //connect transparency.Widget tabs.Widget4
378
379 new LayoutLine tools
380   connect sdrZ.Widget tools.Widget1
381   connect saveBut.Widget tools.Widget2
382
383 new LayoutSplit window2
384  connect tabs.Widget window2.Widget1
385  connect tools.Widget window2.Widget2
386  set window2.Proportion "90"
387
388 new LayoutSplit main
389   set main.WinWidth "1200"
390   set main.Proportion "50"
391   set main.Orientation H
392   connect window1.Widget main.Widget1
393   connect window2.Widget main.Widget2
394
395 #exec image
396 #exec image2
397 exec main