description "3 slicers and a 3D view" author "jpr@creatis.insa-lyon.fr" category "demo" // To show how easy it is to add smthing // ===================================== load vtk include wxvtk load std load itk include vtk include wx load itkvtk load gdcmvtk include wxvtk/boxes/bbSimpleSlicer new LayoutX4 main new LayoutLine upright new LayoutLine upleft new LayoutLine downleft new LayoutSplit downright set downright.Proportion 85 connect upright.Widget main.Widget1 connect upleft.Widget main.Widget2 connect downleft.Widget main.Widget3 connect downright.Widget main.Widget4 # Here loads 'hola.mhd' # --------------------- include vtk/boxes/bbLoadHola new LoadHola reader # Have a look at exampleViewing1.1.bbs # If you want to know how to read different images. // We need that to set Sliders sizes #Get image dimensions, ... new ImageProperties mc connect reader.Out mc.In #Get number of column (X) new GetVectorIntElement gveX connect mc.Size gveX.In set gveX.I 0 #Get number of rows (Y) new GetVectorIntElement gveY connect mc.Size gveY.In set gveY.I 1 #Get number of planes (Z) new GetVectorIntElement gveZ connect mc.Size gveZ.In set gveZ.I 2 //print "Dim Z $gveZ.Out" #Compute the number of the 'middle' slice on X axis new Div div0 connect gveX.Out div0.In1 set div0.In2 2 #Compute the number of the 'middle' slice on Y axis new Div div1 connect gveY.Out div1.In1 set div1.In2 2 #Compute the number of the 'middle' slice on Z axis new Div div2 connect gveZ.Out div2.In1 set div2.In2 2 // For X axis new SimpleSlicer viewerUL connect reader.Out viewerUL.In connect viewerUL.Widget upleft.Widget1 #initial slice is the middle one connect div0.Out viewerUL.Slice #Slider size is the number of planes connect gveX.Out viewerUL.SliderSize set viewerUL.SliderReactiveOnTrack 1 set viewerUL.Orientation 0 set viewerUL.SliderOrientation H set viewerUL.SliderTitle "Planes YZ" // For Y axis new SimpleSlicer viewerUR connect reader.Out viewerUR.In connect viewerUR.Widget upright.Widget1 #initial slice is the middle one connect div1.Out viewerUR.Slice #Slider size is the number of planes connect gveY.Out viewerUR.SliderSize set viewerUR.SliderReactiveOnTrack 1 set viewerUR.SliderOrientation H set viewerUR.Orientation 1 set viewerUR.SliderTitle "Planes XZ" // For Z axis new SimpleSlicer viewerTD connect reader.Out viewerTD.In connect viewerTD.Widget downleft.Widget1 #initial slice is the middle one connect div2.Out viewerTD.Slice #Slider size is the number of planes connect gveZ.Out viewerTD.SliderSize set viewerTD.SliderReactiveOnTrack 1 set viewerTD.SliderOrientation H set viewerTD.Orientation 2 set viewerTD.SliderTitle "Planes XY" //For 3D Viewer new ImagePlanes planes connect reader.Out planes.In new Viewer3D viewer connect planes.PlaneX viewer.Obs1 connect planes.PlaneY viewer.Obs2 connect planes.PlaneZ viewer.Obs3 new CheckBox chkbox set chkbox.Title "Interpolate Pixels (in '2D' images)" set chkbox.In 1 connect chkbox.BoxChange viewerUL.BoxExecute connect chkbox.BoxChange viewerUR.BoxExecute connect chkbox.BoxChange viewerTD.BoxExecute connect viewer.Widget downright.Widget1 connect chkbox.Widget downright.Widget2 connect chkbox.Out viewerUL.Interpolate connect chkbox.Out viewerUR.Interpolate connect chkbox.Out viewerTD.Interpolate set main.WinTitle "demoViewing1" exec main exec viewerTD