]> Creatis software - creaRigidRegistration.git/blob - PackRecalage/bbs/appli/ViewerMerge2DInteractiveDemoFabianPeak.bbs
New items
[creaRigidRegistration.git] / PackRecalage / bbs / appli / ViewerMerge2DInteractiveDemoFabianPeak.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\peak-j0.mhd" 
16 new MetaImageReader image2
17   set image.In "C:\Documents and Settings\trillos\Bureau\Nicolas\Stage\CreaRecalage\PackRecalage\data\ImagesFabienRecalage\peak-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 Viewer2D viewerCH
156  set checkerBoard.Proportion 80
157
158 # Graphical pipeline
159  connect sdr.Out cbb.Cols
160  connect sdr2.Out cbb.Rows
161  connect cbb.Out viewerCH.In
162
163  #connect sdrZ.Widget ly.Widget1
164  connect sdr.Widget ly.Widget2
165  connect sdr2.Widget ly.Widget3
166
167  connect viewerCH.Widget checkerBoard.Widget1 
168  connect ly.Widget checkerBoard.Widget2
169
170 # Create Surface View
171
172 new SurfaceCreator surf
173   set surf.Color1 RED
174   set surf.Color2 BLUE
175
176   connect imgslice1.Out surf.Image1
177   connect imgslice2.Out surf.Image2
178
179 new Slider sdrSurf1
180  set sdrSurf1.Min -500
181  set sdrSurf1.Max 500
182  set sdrSurf1.In 100
183
184 new Slider sdrSurf2
185  set sdrSurf2.Min -500
186  set sdrSurf2.Max 500
187  set sdrSurf2.In 300
188
189   connect sdrSurf1.Out surf.Height1
190   connect sdrSurf2.Out surf.Height2
191
192 # Create Surface Layouts
193
194 new LayoutSplit surface
195 new LayoutLine lySurf
196 new Viewer3D viewerSurf
197  set surface.Proportion 80
198  connect sdrSurf1.Widget lySurf.Widget1
199  connect sdrSurf2.Widget lySurf.Widget2
200  connect viewerSurf.Renderer surf.Renderer
201  #connect lySurf.BoxChange viewerSurf.BoxExecute
202
203  connect surf.Out1 viewerSurf.In1
204  connect surf.Out2 viewerSurf.In2
205
206  connect viewerSurf.Widget surface.Widget1
207  connect lySurf.Widget surface.Widget2
208
209 #Create Substraction View
210
211 new ImageSubstraction imageSub
212   connect imgslice1.Out imageSub.In1
213   connect imgslice2.Out imageSub.In2
214
215 new Slider sdrSub1
216   set sdrSub1.In 51
217   set sdrSub1.Max 255
218   set sdrSub1.Min 0
219   set sdrSub1.Title "Upper Zero Level"
220
221 new Slider sdrSub2
222   set sdrSub2.In 49
223   set sdrSub2.Max 255
224   set sdrSub2.Min 0
225   set sdrSub2.Title "Lower Zero Level"
226
227   connect sdrSub1.Out imageSub.In3
228   connect sdrSub2.Out imageSub.In4
229
230 new ColourSelectorButton colorU
231 new ColourSelectorButton colorM
232 new ColourSelectorButton colorL
233
234   set colorU.WinTitle "Upper Level Colour"
235   set colorM.WinTitle "Middle Level Colour"
236   set colorL.WinTitle "Lower Level Colour"
237
238   set colorU.In "0"
239   set colorM.In "50,50,50"
240   set colorL.In "1"
241
242   connect colorU.Out imageSub.InU
243   connect colorM.Out imageSub.InM
244   connect colorL.Out imageSub.InL
245
246 #Create substraction layout
247
248 new Viewer2D subView
249   connect imageSub.Out subView.In
250
251 new LayoutSplit substraction
252 new LayoutLine lySub
253
254   connect sdrSub1.Widget lySub.Widget1
255   connect sdrSub2.Widget lySub.Widget2
256
257 new LayoutLine lySubColor
258
259   set lySubColor.Orientation H
260   connect colorU.Widget lySubColor.Widget1
261   connect colorM.Widget lySubColor.Widget2
262   connect colorL.Widget lySubColor.Widget3
263
264   connect lySubColor.Widget lySub.Widget3
265
266   set substraction.Proportion "70"
267
268   connect subView.Widget substraction.Widget1
269   connect lySub.Widget substraction.Widget2
270
271 # Create the transparency box
272 new Transparency tb
273  connect imgslice1.Out tb.Image1
274  connect imgslice2.Out tb.Image2
275
276 # Create viewer and add actors
277 new Viewer3D transparency
278  connect tb.Actor1 transparency.In1
279  connect tb.Actor2 transparency.In2
280
281 #Multiple inputs for managing the interaction
282
283 new MultipleInputs mult
284   connect slider.BoxChange mult.In1
285   connect sliderX.BoxChange mult.In2
286   connect sliderY.BoxChange mult.In3
287   connect viewer1.BoxChange mult.In4
288   connect viewer2.BoxChange mult.In5
289   #connect mult.BoxChange viewer3.BoxExecute
290   #connect mult.BoxChange viewer2d.BoxExecute
291
292
293 # Execution pipeline for checkboard
294
295 new MultipleInputs mult2
296   connect ly.BoxChange mult2.In1
297   connect mult.BoxChange mult2.In2
298   connect imgslice1.BoxChange mult2.In3
299   connect imgslice2.BoxChange mult2.In4
300
301 connect mult2.BoxChange cbb.BoxExecute
302 connect cbb.BoxChange viewerCH.BoxExecute
303
304 # Execution pipeline for Surface
305
306 new MultipleInputs mult3
307  connect mult2.BoxChange mult3.In1
308  connect sdrSurf1.BoxChange mult3.In2
309  connect sdrSurf2.BoxChange mult3.In3
310
311  connect mult3.BoxChange surf.BoxExecute
312  connect surf.BoxChange viewerSurf.BoxExecute
313
314 #Execution pipeline for Substraction
315
316 new MultipleInputs mult4
317   connect sdrSub1.BoxChange mult4.In1
318   connect sdrSub2.BoxChange mult4.In2
319   connect mult2.BoxChange mult4.In3
320
321 new MultipleInputs mult5
322   connect mult4.BoxChange mult5.In1
323   connect colorU.BoxChange mult5.In2
324   connect colorM.BoxChange mult5.In3
325   connect colorL.BoxChange mult5.In4
326
327   connect mult5.BoxChange imageSub.BoxExecute
328   connect imageSub.BoxChange substraction.BoxExecute
329
330 #Execution pipeline for Transparency
331
332 connect mult2.BoxChange tb.BoxExecute
333 connect tb.BoxChange transparency.BoxExecute
334
335 # Button for saving
336
337 new CommandButton saveBut
338   set saveBut.Label "Save Image"
339
340 new FileSelector fileSave
341   set fileSave.OpenSave "Save"
342   set fileSave.Wildcard "*.mhd"
343
344 new MetaImageWriter writSave
345   connect reslice1.Out writSave.In 
346   connect fileSave.Out writSave.Filename
347
348   connect saveBut.BoxChange fileSave.BoxExecute
349   connect fileSave.BoxChange writSave.BoxExecute
350
351 #Layout were the images and the buttones will be displayed
352
353 new LayoutSplit window1
354   set window1.WinWidth "600"
355   set window1.Proportion "80"
356   set window1.Orientation V
357   connect initialImages.Widget window1.Widget1
358   connect buttonsLayout.Widget window1.Widget2
359
360 #new LayoutSplit checkBoard
361   #set window1.WinWidth "600"
362   #set window1.Proportion "80"
363   #set window1.Orientation V
364   #connect viewer3.Widget checkBoard.Widget1  
365   #connect checkView.Widget checkBoard.Widget1
366
367 new LayoutTab tabs
368   connect checkerBoard.Widget tabs.Widget1
369   connect surface.Widget tabs.Widget2
370   connect substraction.Widget tabs.Widget3
371   connect transparency.Widget tabs.Widget4
372
373 new LayoutLine tools
374   connect sdrZ.Widget tools.Widget1
375   connect saveBut.Widget tools.Widget2
376
377 new LayoutSplit window2
378  connect tabs.Widget window2.Widget1
379  connect tools.Widget window2.Widget2
380  set window2.Proportion "90"
381
382 new LayoutSplit main
383   set main.WinWidth "1200"
384   set main.Proportion "50"
385   set main.Orientation H
386   connect window1.Widget main.Widget1
387   connect window2.Widget main.Widget2
388
389 #exec image
390 #exec image2
391 exec main