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