vtkRenderer renderer = renderWindowControl2.RenderWindow.GetRenderers().GetFirstRenderer();
vtkXMLImageDataReader reader = vtkXMLImageDataReader.New();
vtkFixedPointVolumeRayCastMapper texMapper = vtkFixedPointVolumeRayCastMapper.New();
vtkVolume vol = vtkVolume.New();
vtkColorTransferFunction ctf = vtkColorTransferFunction.New();
vtkPiecewiseFunction spwf = vtkPiecewiseFunction.New();
vtkPiecewiseFunction gpwf = vtkPiecewiseFunction.New();//Read in the file
reader.SetFileName(fileName);
reader.Update();//Go through the visulizatin pipeline
texMapper.SetInputConnection(reader.GetOutputPort());//Set the color curve for the volume
ctf.AddHSVPoint(0,.67,.07,1);
ctf.AddHSVPoint(94,.67,.07,1);
ctf.AddHSVPoint(139,0,0,0);
ctf.AddHSVPoint(160,.28,.047,1);
ctf.AddHSVPoint(254,.38,.013,1);//Set the opacity curve for the volume
spwf.AddPoint(84,0);
spwf.AddPoint(151,.1);
spwf.AddPoint(255,1);//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);
//Create all the objects for the pipeline
vtkXMLImageDataReader reader = vtkXMLImageDataReader.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.SetInputData(reader.GetOutput());
renderer.AddActor(iactor);
reader.Update();int[] extent = reader.GetOutput().GetExtent();
iactor.SetDisplayExtent(extent[0], extent[1], extent[2], extent[3],(extent[4]+ extent[5])/2,(extent[4]+ extent[5])/2);
clip.SetInputConnection(reader.GetOutputPort());
clip.SetOutputWholeExtent(extent[0], extent[1], extent[2], extent[3],(extent[4]+ extent[5])/2,(extent[4]+ extent[5])/2);
contour.SetInputConnection(clip.GetOutputPort());
contour.SetValue(0,100);
mapper.SetInputConnection(contour.GetOutputPort());
mapper.SetScalarVisibility(1);//Go through the graphics pipeline
actor.SetMapper(mapper);
actor.GetProperty().SetColor(0,1,0);
renderer.AddActor(actor);//Give a new style to the interactor
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);//Update global variablesthis.trackBar1.Maximum = extent[5];this.trackBar1.Minimum = extent[4];this.Interactor = iren;this.RenderWindow = renderWindowControl1.RenderWindow;this.Renderer = renderer;this.Clip = clip;this.ImageActor = iactor;