X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=PackRecalage%2Fbbs%2Fappli%2FViewerMerge2DInteractiveDemoFabianADC.bbs;fp=PackRecalage%2Fbbs%2Fappli%2FViewerMerge2DInteractiveDemoFabianADC.bbs;h=0cd8d773f89428bc2139b1b3b9781249f2a0cf8f;hb=aa1b23f7a0b103bc3fd8989c0e60b97697adbbc3;hp=0000000000000000000000000000000000000000;hpb=bd79966de4ad9bd5e2991c37c281ab8d1e49161f;p=creaRigidRegistration.git diff --git a/PackRecalage/bbs/appli/ViewerMerge2DInteractiveDemoFabianADC.bbs b/PackRecalage/bbs/appli/ViewerMerge2DInteractiveDemoFabianADC.bbs new file mode 100644 index 0000000..0cd8d77 --- /dev/null +++ b/PackRecalage/bbs/appli/ViewerMerge2DInteractiveDemoFabianADC.bbs @@ -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