11 //include vtk/boxes/bbLoadHola
14 new FileSelector imageSelector1
15 new FileSelector imageSelector2
17 new MetaImageReader image
18 connect imageSelector1.Out image.In
20 new MetaImageReader image2
21 connect imageSelector2.Out image2.In
27 #Viewer containing image 1
29 new LayoutLine v1Layout
31 connect image.Out viewer1.In
32 set viewer1.nTypeView "0"
33 connect viewer1.Widget v1Layout.Widget1
36 #Viewer containing image 2
38 new LayoutLine v2Layout
40 connect image2.Out viewer2.In
41 set viewer2.nTypeView "0"
42 connect viewer2.Widget v2Layout.Widget1
44 #LayoutSplit were the images will be
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
52 #Layout line that will contain the buttons
54 new LayoutLine buttonsLayout
55 set buttonsLayout.Orientation V
57 #Slider were the angle will be entered
60 set slider.Title "Angle"
64 set slider.ReactiveOnTrack "1"
65 connect slider.Widget buttonsLayout.Widget1
69 #Slider were the xScale will be entered
72 set sliderX.Title "% Scale in X"
76 set sliderX.ReactiveOnTrack "1"
77 connect sliderX.Widget buttonsLayout.Widget2
81 #Slider were the yScale will be entered
84 set sliderY.Title "% Scale in Y"
88 set sliderY.ReactiveOnTrack "1"
89 connect sliderY.Widget buttonsLayout.Widget3
92 #Box were the transformation will be made
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
102 new ReSlicerBox reslice1
103 connect viewer1.Point reslice1.Origin
104 connect transform.Out reslice1.Transform
105 connect image2.Out reslice1.In
107 new SliceImage slice1
108 connect reslice1.Out slice1.In
111 new Viewer2D viewer2d
112 connect reslice1.Out viewer2d.In
113 set viewer2d.Slice "1"
115 #new ViewerNV viewer3
116 #connect reslice1.Out viewer3.In
117 #set viewer3.nTypeView "5"
118 #set viewer3.WinWidth "600"
120 # Create the reslicers
122 new SliceImage imgslice1
123 new SliceImage imgslice2
124 connect image.Out imgslice1.In
125 connect reslice1.Out imgslice2.In
127 # Create the visulization box
128 new CheckBoardBox cbb
129 connect imgslice1.Out cbb.In1
130 connect imgslice2.Out cbb.In2
134 set sdr.ReactiveOnTrack 1
140 set sdr2.ReactiveOnTrack 1
144 # Create the ZSlider for the slices
147 set sdrZ.ReactiveOnTrack 1
149 set sdrZ.Title "Z for slice"
151 connect sdrZ.Out imgslice1.Z
152 connect sdrZ.Out imgslice2.Z
153 connect sdrZ.BoxChange imgslice1.BoxExecute
154 connect sdrZ.BoxChange imgslice2.BoxExecute
156 # Create viewer & layout
157 new LayoutSplit checkerBoard
159 new ViewerNV viewerCH
160 set viewerCH.nTypeView "0"
161 set checkerBoard.Proportion 80
164 connect sdr.Out cbb.Cols
165 connect sdr2.Out cbb.Rows
166 connect cbb.Out viewerCH.In
168 #connect sdrZ.Widget ly.Widget1
169 connect sdr.Widget ly.Widget2
170 connect sdr2.Widget ly.Widget3
172 connect viewerCH.Widget checkerBoard.Widget1
173 connect ly.Widget checkerBoard.Widget2
175 # Create Surface View
177 new SurfaceCreator surf
181 connect imgslice1.Out surf.Image1
182 connect imgslice2.Out surf.Image2
185 set sdrSurf1.Min -500
190 set sdrSurf2.Min -500
194 connect sdrSurf1.Out surf.Height1
195 connect sdrSurf2.Out surf.Height2
197 # Create Surface Layouts
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
208 connect surf.Out1 viewerSurf.In1
209 connect surf.Out2 viewerSurf.In2
211 connect viewerSurf.Widget surface.Widget1
212 connect lySurf.Widget surface.Widget2
214 #Create Substraction View
216 new ImageSubstraction imageSub
217 connect imgslice1.Out imageSub.In1
218 connect imgslice2.Out imageSub.In2
224 set sdrSub1.Title "Upper Zero Level"
230 set sdrSub2.Title "Lower Zero Level"
232 connect sdrSub1.Out imageSub.In3
233 connect sdrSub2.Out imageSub.In4
235 new ColourSelectorButton colorU
236 new ColourSelectorButton colorM
237 new ColourSelectorButton colorL
239 set colorU.WinTitle "Upper Level Colour"
240 set colorM.WinTitle "Middle Level Colour"
241 set colorL.WinTitle "Lower Level Colour"
244 set colorM.In "50,50,50"
247 connect colorU.Out imageSub.InU
248 connect colorM.Out imageSub.InM
249 connect colorL.Out imageSub.InL
251 #Create substraction layout
254 connect imageSub.Out subView.In
256 new LayoutSplit substraction
259 connect sdrSub1.Widget lySub.Widget1
260 connect sdrSub2.Widget lySub.Widget2
262 new LayoutLine lySubColor
264 set lySubColor.Orientation H
265 connect colorU.Widget lySubColor.Widget1
266 connect colorM.Widget lySubColor.Widget2
267 connect colorL.Widget lySubColor.Widget3
269 connect lySubColor.Widget lySub.Widget3
271 set substraction.Proportion "70"
273 connect subView.Widget substraction.Widget1
274 connect lySub.Widget substraction.Widget2
276 # Create the transparency box
278 connect imgslice1.Out tb.Image1
279 connect imgslice2.Out tb.Image2
281 # Create viewer and add actors
282 new Viewer3D transparency
283 connect tb.Actor1 transparency.In1
284 connect tb.Actor2 transparency.In2
287 #Multiple inputs for managing the interaction
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
299 # Execution pipeline for checkboard
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
307 connect mult2.BoxChange cbb.BoxExecute
308 connect cbb.BoxChange viewerCH.BoxExecute
310 # Execution pipeline for Surface
312 new MultipleInputs mult3
313 connect mult2.BoxChange mult3.In1
314 connect sdrSurf1.BoxChange mult3.In2
315 connect sdrSurf2.BoxChange mult3.In3
317 connect mult3.BoxChange surf.BoxExecute
318 connect surf.BoxChange viewerSurf.BoxExecute
320 #Execution pipeline for Substraction
322 new MultipleInputs mult4
323 connect sdrSub1.BoxChange mult4.In1
324 connect sdrSub2.BoxChange mult4.In2
325 connect mult2.BoxChange mult4.In3
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
333 connect mult5.BoxChange imageSub.BoxExecute
334 connect imageSub.BoxChange substraction.BoxExecute
336 #Execution pipeline for Transparency
338 connect mult2.BoxChange tb.BoxExecute
339 connect tb.BoxChange transparency.BoxExecute
343 new CommandButton saveBut
344 set saveBut.Label "Save Image"
346 new FileSelector fileSave
347 set fileSave.OpenSave "Save"
348 set fileSave.Wildcard "*.mhd"
350 new MetaImageWriter writSave
351 connect reslice1.Out writSave.In
352 connect fileSave.Out writSave.Filename
354 connect saveBut.BoxChange fileSave.BoxExecute
355 connect fileSave.BoxChange writSave.BoxExecute
357 #Layout were the images and the buttones will be displayed
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
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
374 connect checkerBoard.Widget tabs.Widget1
375 connect surface.Widget tabs.Widget2
376 connect substraction.Widget tabs.Widget3
377 //connect transparency.Widget tabs.Widget4
380 connect sdrZ.Widget tools.Widget1
381 connect saveBut.Widget tools.Widget2
383 new LayoutSplit window2
384 connect tabs.Widget window2.Widget1
385 connect tools.Widget window2.Widget2
386 set window2.Proportion "90"
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