]> Creatis software - creaRigidRegistration.git/blobdiff - PackRecalage/bbs/appli/ViewerMerge2DInteractiveDemoFabianADC.bbs
New items
[creaRigidRegistration.git] / PackRecalage / bbs / appli / ViewerMerge2DInteractiveDemoFabianADC.bbs
diff --git a/PackRecalage/bbs/appli/ViewerMerge2DInteractiveDemoFabianADC.bbs b/PackRecalage/bbs/appli/ViewerMerge2DInteractiveDemoFabianADC.bbs
new file mode 100644 (file)
index 0000000..0cd8d77
--- /dev/null
@@ -0,0 +1,397 @@
+load wx
+load std
+load vtk
+load wxvtk
+load creaMaracasVisu
+load PackVisuImages
+//load creaImageIO
+
+load PackRecalage
+
+//include vtk/boxes/bbLoadHola 
+//new LoadHola image
+
+new FileSelector imageSelector1
+new FileSelector imageSelector2
+
+new MetaImageReader image
+  connect imageSelector1.Out image.In
+
+new MetaImageReader image2 
+  connect imageSelector2.Out image2.In 
+  
+
+#new Gimmick image
+#new Gimmick image2
+
+#Viewer containing image 1
+
+new LayoutLine v1Layout
+new ViewerNV viewer1
+connect image.Out viewer1.In
+set viewer1.nTypeView "0"
+connect viewer1.Widget v1Layout.Widget1
+
+
+#Viewer containing image 2
+
+new LayoutLine v2Layout
+new ViewerNV viewer2
+connect image2.Out viewer2.In
+set viewer2.nTypeView "0"
+connect viewer2.Widget v2Layout.Widget1
+
+#LayoutSplit were the images will be
+
+new LayoutSplit initialImages
+set initialImages.Proportion "50"
+set initialImages.Orientation H
+connect v1Layout.Widget initialImages.Widget1
+connect v2Layout.Widget initialImages.Widget2
+
+#Layout line that will contain the buttons
+
+new LayoutLine buttonsLayout
+  set buttonsLayout.Orientation V
+
+#Slider were the angle will be entered
+
+new Slider slider
+  set slider.Title "Angle"
+  set slider.In 0
+  set slider.Min 0
+  set slider.Max 360
+  set slider.ReactiveOnTrack "1"
+  connect slider.Widget buttonsLayout.Widget1 
+
+
+
+#Slider were the xScale will be entered
+
+new Slider sliderX
+  set sliderX.Title "% Scale in X"
+  set sliderX.In 100
+  set sliderX.Min 10
+  set sliderX.Max 500
+  set sliderX.ReactiveOnTrack "1"
+  connect sliderX.Widget buttonsLayout.Widget2 
+
+
+
+#Slider were the yScale will be entered
+
+new Slider sliderY
+  set sliderY.Title "% Scale in Y"
+  set sliderY.In 100
+  set sliderY.Min 10
+  set sliderY.Max 500
+  set sliderY.ReactiveOnTrack "1"
+  connect sliderY.Widget buttonsLayout.Widget3 
+
+
+#Box were the transformation will be made
+
+new Transform2DBox transform
+  connect viewer2.Point transform.CenterPoint
+  connect slider.Out transform.Angle
+  connect sliderX.Out transform.ScaleX
+  connect sliderY.Out transform.ScaleY
+
+
+
+new ReSlicerBox reslice1
+  connect viewer1.Point reslice1.Origin
+  connect transform.Out reslice1.Transform
+  connect image2.Out reslice1.In
+
+new SliceImage slice1
+   connect reslice1.Out slice1.In
+   set slice1.Z "1"
+
+new Viewer2D viewer2d
+  connect reslice1.Out viewer2d.In
+  set viewer2d.Slice "1"
+
+#new ViewerNV viewer3
+  #connect reslice1.Out viewer3.In
+  #set viewer3.nTypeView "5"
+  #set viewer3.WinWidth "600"
+
+# Create the reslicers
+
+new SliceImage imgslice1
+new SliceImage imgslice2
+  connect image.Out imgslice1.In
+ connect reslice1.Out imgslice2.In
+
+# Create the visulization box
+new CheckBoardBox cbb
+ connect imgslice1.Out cbb.In1
+ connect imgslice2.Out cbb.In2
+
+# Create the slider1
+new Slider sdr
+ set sdr.ReactiveOnTrack 1
+ set sdr.Max 50
+ set sdr.In 14
+
+# Create the slider2
+new Slider sdr2
+ set sdr2.ReactiveOnTrack 1
+ set sdr2.Max 50
+ set sdr2.In 14
+
+# Create the ZSlider for the slices
+
+new Slider sdrZ
+ set sdrZ.ReactiveOnTrack 1
+ set sdrZ.Max 50
+ set sdrZ.Title "Z for slice"
+
+connect sdrZ.Out imgslice1.Z
+connect sdrZ.Out imgslice2.Z
+connect sdrZ.BoxChange imgslice1.BoxExecute
+connect sdrZ.BoxChange imgslice2.BoxExecute
+
+# Create viewer & layout
+new LayoutSplit checkerBoard
+new LayoutLine ly
+new ViewerNV viewerCH
+  set viewerCH.nTypeView "0"
+ set checkerBoard.Proportion 80
+
+# Graphical pipeline
+ connect sdr.Out cbb.Cols
+ connect sdr2.Out cbb.Rows
+ connect cbb.Out viewerCH.In
+
+ #connect sdrZ.Widget ly.Widget1
+ connect sdr.Widget ly.Widget2
+ connect sdr2.Widget ly.Widget3
+
+ connect viewerCH.Widget checkerBoard.Widget1 
+ connect ly.Widget checkerBoard.Widget2
+
+# Create Surface View
+
+new SurfaceCreator surf
+  set surf.Color1 RED
+  set surf.Color2 BLUE
+
+  connect imgslice1.Out surf.Image1
+  connect imgslice2.Out surf.Image2
+
+new Slider sdrSurf1
+ set sdrSurf1.Min -500
+ set sdrSurf1.Max 500
+ set sdrSurf1.In 100
+
+new Slider sdrSurf2
+ set sdrSurf2.Min -500
+ set sdrSurf2.Max 500
+ set sdrSurf2.In 300
+
+  connect sdrSurf1.Out surf.Height1
+  connect sdrSurf2.Out surf.Height2
+
+# Create Surface Layouts
+
+new LayoutSplit surface
+new LayoutLine lySurf
+new Viewer3D viewerSurf
+ set surface.Proportion 80
+ connect sdrSurf1.Widget lySurf.Widget1
+ connect sdrSurf2.Widget lySurf.Widget2
+ connect viewerSurf.Renderer surf.Renderer
+ #connect lySurf.BoxChange viewerSurf.BoxExecute
+
+ connect surf.Out1 viewerSurf.In1
+ connect surf.Out2 viewerSurf.In2
+
+ connect viewerSurf.Widget surface.Widget1
+ connect lySurf.Widget surface.Widget2
+
+#Create Substraction View
+
+new ImageSubstraction imageSub
+  connect imgslice1.Out imageSub.In1
+  connect imgslice2.Out imageSub.In2
+
+new Slider sdrSub1
+  set sdrSub1.In 51
+  set sdrSub1.Max 255
+  set sdrSub1.Min 0
+  set sdrSub1.Title "Upper Zero Level"
+
+new Slider sdrSub2
+  set sdrSub2.In 49
+  set sdrSub2.Max 255
+  set sdrSub2.Min 0
+  set sdrSub2.Title "Lower Zero Level"
+
+  connect sdrSub1.Out imageSub.In3
+  connect sdrSub2.Out imageSub.In4
+
+new ColourSelectorButton colorU
+new ColourSelectorButton colorM
+new ColourSelectorButton colorL
+
+  set colorU.WinTitle "Upper Level Colour"
+  set colorM.WinTitle "Middle Level Colour"
+  set colorL.WinTitle "Lower Level Colour"
+
+  set colorU.In "0"
+  set colorM.In "50,50,50"
+  set colorL.In "1"
+
+  connect colorU.Out imageSub.InU
+  connect colorM.Out imageSub.InM
+  connect colorL.Out imageSub.InL
+
+#Create substraction layout
+
+new Viewer2D subView
+  connect imageSub.Out subView.In
+
+new LayoutSplit substraction
+new LayoutLine lySub
+
+  connect sdrSub1.Widget lySub.Widget1
+  connect sdrSub2.Widget lySub.Widget2
+
+new LayoutLine lySubColor
+
+  set lySubColor.Orientation H
+  connect colorU.Widget lySubColor.Widget1
+  connect colorM.Widget lySubColor.Widget2
+  connect colorL.Widget lySubColor.Widget3
+
+  connect lySubColor.Widget lySub.Widget3
+
+  set substraction.Proportion "70"
+
+  connect subView.Widget substraction.Widget1
+  connect lySub.Widget substraction.Widget2
+/*
+# Create the transparency box
+new Transparency tb
+ connect imgslice1.Out tb.Image1
+ connect imgslice2.Out tb.Image2
+
+# Create viewer and add actors
+new Viewer3D transparency
+ connect tb.Actor1 transparency.In1
+ connect tb.Actor2 transparency.In2
+
+*/
+#Multiple inputs for managing the interaction
+
+new MultipleInputs mult
+  connect slider.BoxChange mult.In1
+  connect sliderX.BoxChange mult.In2
+  connect sliderY.BoxChange mult.In3
+  connect viewer1.BoxChange mult.In4
+  connect viewer2.BoxChange mult.In5
+  #connect mult.BoxChange viewer3.BoxExecute
+  #connect mult.BoxChange viewer2d.BoxExecute
+
+
+# Execution pipeline for checkboard
+
+new MultipleInputs mult2
+  connect ly.BoxChange mult2.In1
+  connect mult.BoxChange mult2.In2
+  connect imgslice1.BoxChange mult2.In3
+  connect imgslice2.BoxChange mult2.In4
+
+connect mult2.BoxChange cbb.BoxExecute
+connect cbb.BoxChange viewerCH.BoxExecute
+
+# Execution pipeline for Surface
+
+new MultipleInputs mult3
+ connect mult2.BoxChange mult3.In1
+ connect sdrSurf1.BoxChange mult3.In2
+ connect sdrSurf2.BoxChange mult3.In3
+
+ connect mult3.BoxChange surf.BoxExecute
+ connect surf.BoxChange viewerSurf.BoxExecute
+
+#Execution pipeline for Substraction
+
+new MultipleInputs mult4
+  connect sdrSub1.BoxChange mult4.In1
+  connect sdrSub2.BoxChange mult4.In2
+  connect mult2.BoxChange mult4.In3
+
+new MultipleInputs mult5
+  connect mult4.BoxChange mult5.In1
+  connect colorU.BoxChange mult5.In2
+  connect colorM.BoxChange mult5.In3
+  connect colorL.BoxChange mult5.In4
+
+  connect mult5.BoxChange imageSub.BoxExecute
+  connect imageSub.BoxChange substraction.BoxExecute
+
+#Execution pipeline for Transparency
+/*
+connect mult2.BoxChange tb.BoxExecute
+connect tb.BoxChange transparency.BoxExecute
+*/
+# Button for saving
+
+new CommandButton saveBut
+  set saveBut.Label "Save Image"
+
+new FileSelector fileSave
+  set fileSave.OpenSave "Save"
+  set fileSave.Wildcard "*.mhd"
+
+new MetaImageWriter writSave
+  connect reslice1.Out writSave.In 
+  connect fileSave.Out writSave.Filename
+
+  connect saveBut.BoxChange fileSave.BoxExecute
+  connect fileSave.BoxChange writSave.BoxExecute
+
+#Layout were the images and the buttones will be displayed
+
+new LayoutSplit window1
+  set window1.WinWidth "600"
+  set window1.Proportion "80"
+  set window1.Orientation V
+  connect initialImages.Widget window1.Widget1
+  connect buttonsLayout.Widget window1.Widget2
+
+#new LayoutSplit checkBoard
+  #set window1.WinWidth "600"
+  #set window1.Proportion "80"
+  #set window1.Orientation V
+  #connect viewer3.Widget checkBoard.Widget1  
+  #connect checkView.Widget checkBoard.Widget1
+
+new LayoutTab tabs
+  connect checkerBoard.Widget tabs.Widget1
+  connect surface.Widget tabs.Widget2
+  connect substraction.Widget tabs.Widget3
+  //connect transparency.Widget tabs.Widget4
+
+new LayoutLine tools
+  connect sdrZ.Widget tools.Widget1
+  connect saveBut.Widget tools.Widget2
+
+new LayoutSplit window2
+ connect tabs.Widget window2.Widget1
+ connect tools.Widget window2.Widget2
+ set window2.Proportion "90"
+
+new LayoutSplit main
+  set main.WinWidth "1200"
+  set main.Proportion "50"
+  set main.Orientation H
+  connect window1.Widget main.Widget1
+  connect window2.Widget main.Widget2
+
+#exec image
+#exec image2
+exec main
\ No newline at end of file