using dragged void iren_LeftButtonPressEvt(vtkObject sender, vtkObjectEventArgs e) {

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using Kitware.VTK;using itk.simple;namespace VolumeRendering{      public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private bool MouseDown1 = false;        private vtkRenderWindowInteractor Interactor = null;        private vtkRenderWindow RenderWindow = null;        private vtkRenderer Renderer = null;        private vtkImageActor ImageActor = null;        private vtkImageClip Clip = null;        string fileName = “”;        static vtkBoxWidget boxWidget;        int slicenumber=0;        private vtkRenderWindow RenderWindow3 = null;        private vtkRenderer Renderer2 = null;        private vtkImageActor ImageActor2 = null;        private vtkRenderWindow RenderWindow2 = null;        private vtkRenderWindow window = null;        ///

        /// Tell the application when the mouse is being dragged        void iren_LeftButtonReleaseEvt(vtkObject sender, vtkObjectEventArgs e)        {            this.MouseDown1 = false;        }        ///

        /// Tell the application when the mouse is being dragged               void iren_LeftButtonPressEvt(vtkObject sender, vtkObjectEventArgs e)        {            this.MouseDown1 = true;        }                ///

        /// Display the render window with the 3D Volume in it              private void renderWindowControl2_Load(object sender, EventArgs e)        {            //Create all the objects for the pipeline            vtkRenderer renderer = renderWindowControl2.RenderWindow.GetRenderers().GetFirstRenderer();              vtkMetaImageReader reader = vtkMetaImageReader.New();            vtkFixedPointVolumeRayCastMapper texMapper = vtkFixedPointVolumeRayCastMapper.New();            vtkVolume vol = vtkVolume.New();            vtkImagePlaneWidget planeWidget = vtkImagePlaneWidget.New();            vtkColorTransferFunction ctf = vtkColorTransferFunction.New();            vtkPiecewiseFunction spwf = vtkPiecewiseFunction.New();            vtkPiecewiseFunction gpwf = vtkPiecewiseFunction.New();            // vtkSmartPointer renderWindowInteractor =             //  vtkSmartPointer < vtkRenderWindowInteractor >::New();          // this.window = renderWindowControl2.RenderWindow;           // vtkRenderWindowInteractor interactor2 = vtkRenderWindowInteractor.New();                       vtkRenderWindowInteractor iren = vtkRenderWindowInteractor.New();            iren.SetRenderWindow(RenderWindow);            vtkPlanes planes = vtkPlanes.New();            vtkClipPolyData clipper = vtkClipPolyData.New();            vtkAppendPolyData apd = vtkAppendPolyData.New();            apd.AddInput(reader.GetOutput());                        clipper.SetInputConnection(apd.GetOutputPort());            clipper.SetClipFunction(planes);            clipper.InsideOutOn();            //Read in the file            reader.SetFileName(fileName);            reader.Update();                        //Go through the visulizatin pipeline            texMapper.SetInputConnection(reader.GetOutputPort());                                            ctf.AddRGBPoint(0, 1, 0, 0);                      ctf.AddRGBPoint(139, 1, 50, 0);                     ctf.AddRGBPoint(160, 0, .34, 0);                     ctf.AddRGBPoint(254, 1, 0, 0);            //Set the opacity curve for the volume            spwf.AddPoint(4, 0);            spwf.AddPoint(100, .1);            spwf.AddPoint(2555, .01);                        //Set the gradient curve for the volume            gpwf.AddPoint(0, .2);            gpwf.AddPoint(10, .2);            gpwf.AddPoint(25, 1);                        vol.GetProperty().SetColor(ctf);            vol.GetProperty().SetScalarOpacity(spwf);            vol.GetProperty().SetGradientOpacity(gpwf);                        vol.SetMapper(texMapper);                        //Go through the Graphics Pipeline            renderer.AddVolume(vol);          //  interactor2.SetEnableRender(true);         //   interactor2.SetRenderWindow(window);          //  planeWidget.SetInteractor(interactor2);            planeWidget.TextureVisibilityOff();            //  planeWidget.SetInput(reader.GetOutput());            // planeWidget.PlaceWidget();        }        private void renderWindowControl1_Load(object sender, EventArgs e)        {            //Get the name of the Unsigned Char volume that you want to load            fileName = “../../../outf.mha”;            //Create all the objects for the pipeline            // vtkXMLImageDataReader reader = vtkXMLImageDataReader.New();            vtkMetaImageReader reader = vtkMetaImageReader.New();            vtkImageActor iactor = vtkImageActor.New();            vtkImageClip clip = vtkImageClip.New();            vtkContourFilter contour = vtkContourFilter.New();            vtkPolyDataMapper mapper = vtkPolyDataMapper.New();            vtkActor actor = vtkActor.New();            vtkInteractorStyleImage style = vtkInteractorStyleImage.New();                        vtkRenderer renderer = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer();            //Read the Image            reader.SetFileName(fileName);                        //Go through the visulization pipeline            iactor.SetInput(reader.GetOutput());            renderer.AddActor(iactor);            reader.Update();            int extent = reader.GetOutput().GetWholeExtent();            iactor.SetDisplayExtent(0, 0, extent2, extent3,                        (extent4 + extent5) / 2,                        (extent4 + extent5) / 2);          //  iactor.RotateX(90);           // iactor.RotateZ(90);            iactor.AddOrientation(500, 0, 0);            //  iactor.SetScale(2000, 2000, 2000);                       clip.SetInputConnection(reader.GetOutputPort());           clip.SetOutputWholeExtent(extent0, extent1, extent2, extent3,                       (extent4 + extent5) / 2,                       (extent4 + extent5) / 2);            iactor.RotateX(90);             iactor.RotateZ(90);            contour.SetInputConnection(clip.GetOutputPort());            contour.SetValue(0, 100);                       mapper.SetInputConnection(contour.GetOutputPort());            mapper.SetScalarVisibility(1);                           actor.SetMapper(mapper);                      renderer.AddActor(actor);                                   vtkRenderWindowInteractor iren = renderWindowControl1.RenderWindow.GetInteractor();            iren.SetInteractorStyle(style);                    //Add new events to the interactor style            style.LeftButtonPressEvt += new vtkObject.vtkObjectEventHandler(iren_LeftButtonPressEvt);            style.LeftButtonReleaseEvt += new vtkObject.vtkObjectEventHandler(iren_LeftButtonReleaseEvt);          //  style.MouseMoveEvt += new vtkObject.vtkObjectEventHandler(iren_MouseMoveEvt);                    this.trackBar1.Maximum = extent5;            this.trackBar1.Minimum = extent4;            this.Interactor = iren;            this.RenderWindow = renderWindowControl1.RenderWindow;            this.Renderer = renderer;            this.Clip = clip;            this.ImageActor = iactor;        }                            private void trackBar1_Scroll(object sender, EventArgs e)        {            ImageActor.SetOrientation(90,90,0);            if (ImageActor != null)            {                int lastPos = this.Interactor.GetLastEventPosition();                int size = this.RenderWindow.GetSize();                int dim = this.ImageActor.GetInput().GetDimensions();                int newSlice = (int)(trackBar1.Value);                               if (newSlice >= 0 && newSlice < dim2)                {                                      this.Clip.SetOutputWholeExtent(0, dim0 - 1, newSlice, newSlice, 0, dim2 - 1);                                        this.ImageActor.SetDisplayExtent(0, dim0 - 1 , newSlice, newSlice, 0, dim2 - 1);                    this.ImageActor.RotateY(90);                    this.Renderer.ResetCameraClippingRange();                    this.RenderWindow.Render();                                                        slicenumber = ImageActor.GetSliceNumber();                    label1.Text = slicenumber.ToString();                }            }        }                              private void Form1_Closed(object sender, FormClosedEventArgs e)        {            if (this.Interactor != null)            {                this.Interactor.Dispose();            }            if (this.ImageActor != null)            {                this.ImageActor.Dispose();            }            if (this.Clip != null)            {                this.Clip.Dispose();            }        }        private void renderWindowControl3_Load(object sender, EventArgs e)        {                      fileName = "../../../outf.mha";                        vtkMetaImageReader reader = vtkMetaImageReader.New();            vtkImageActor iactor2 = vtkImageActor.New();            vtkImageClip clip2 = vtkImageClip.New();            vtkContourFilter contour = vtkContourFilter.New();            vtkPolyDataMapper mapper = vtkPolyDataMapper.New();            vtkActor actor = vtkActor.New();            vtkInteractorStyleImage style = vtkInteractorStyleImage.New();            vtkRenderer renderer3 = renderWindowControl3.RenderWindow.GetRenderers().GetFirstRenderer();                      reader.SetFileName(fileName);                       iactor2.SetInput(reader.GetOutput());            renderer3.AddActor(iactor2);            reader.Update();            int extent = reader.GetOutput().GetWholeExtent();              iactor2.SetDisplayExtent(extent0, extent1, extent2, extent3,                        (extent4 + extent5) / 2,                      (extent4 + extent5) / 2);                        clip2.SetInputConnection(reader.GetOutputPort());            clip2.SetOutputWholeExtent(0,0, extent2, extent3,                       ( extent4 + extent5) / 2,                     ( extent5 + extent5) / 2);            contour.SetInputConnection(clip2.GetOutputPort());            contour.SetValue(0, 100);            mapper.SetInputConnection(contour.GetOutputPort());            mapper.SetScalarVisibility(1);                        actor.SetMapper(mapper);            actor.GetProperty().SetColor(0, 1, 0);            renderer3.AddActor(actor);                       vtkRenderWindowInteractor iren = renderWindowControl3.RenderWindow.GetInteractor();            iren.SetInteractorStyle(style);                                   style.LeftButtonPressEvt += new vtkObject.vtkObjectEventHandler(iren_LeftButtonPressEvt);            style.LeftButtonReleaseEvt += new vtkObject.vtkObjectEventHandler(iren_LeftButtonReleaseEvt);                                  this.trackBar2.Maximum = extent5;            this.trackBar2.Minimum = extent4;                    this.RenderWindow3 = renderWindowControl3.RenderWindow;            this.Renderer2 = renderer3;            this.Clip = clip2;            this.ImageActor2 = iactor2;            }        private void label1_Click(object sender, EventArgs e)        {                    }        private void trackBar2_Scroll(object sender, EventArgs e)        {                     if (ImageActor != null)            {                int lastPos = this.Interactor.GetLastEventPosition();                int size = this.RenderWindow3.GetSize();                int dim = this.ImageActor2.GetInput().GetDimensions();                int newSlice = (int)(trackBar2.Value);                if (newSlice >= 0 && newSlice < dim2)                {                                        this.Clip.SetOutputWholeExtent( 0,dim0 - 1, 0, dim1 - 1, newSlice, newSlice);                                       this.ImageActor2.SetDisplayExtent(0, dim0 - 1, 0, dim1 - 1, newSlice, newSlice);                                                       this.Renderer2.ResetCameraClippingRange();                    this.RenderWindow3.Render();                    this.Renderer.ResetCameraClippingRange();                    this.RenderWindow.Render();                    slicenumber = ImageActor.GetSliceNumber();                    label2.Text = slicenumber.ToString();                }            }        }        private void button1_Click(object sender, EventArgs e)        {                    }    }}

Author:

x

Hi!
I'm Eileen!

Would you like to get a custom essay? How about receiving a customized one?

Check it out