public void VolumeRender(vtk.vtkImageData VoxelDatat) { VoxelData = VoxelDatat; renWin.AddRenderer(ren1); iren.SetRenderWindow(renWin); double[] inputRange = VoxelData.GetScalarRange(); vtk.vtkPiecewiseFunction opacityTransferFunction = new vtk.vtkPiecewiseFunction(); opacityTransferFunction.AddPoint(inputRange[0], 0); opacityTransferFunction.AddPoint(inputRange[1], 1); vtk.vtkColorTransferFunction colorTransferFunction = new vtk.vtkColorTransferFunction(); colorTransferFunction.AddRGBPoint(inputRange[0], 1.0, 1.0, 1.0); colorTransferFunction.AddRGBPoint(inputRange[1], 1.0, 1.0, 1.0); volumeProperty.SetColor(colorTransferFunction); volumeProperty.SetScalarOpacity(opacityTransferFunction); volumeProperty.ShadeOff(); volumeProperty.SetInterpolationTypeToLinear(); volume.SetProperty(volumeProperty); setRAY(); ren1.AddVolume(volume); ren1.ResetCamera(); renWin.Render(); addBusyObservers(); iren.Initialize(); iren.Enable(); }
void AddFlamingoToWindow(vtk.vtkRenderWindow renWin) { // This example demonstrates the use of vtk3DSImporter. // vtk3DSImporter is used to load 3D Studio files. Unlike writers, // importers can load scenes (data as well as lights, cameras, actors // etc.). Importers will either generate an instance of vtkRenderWindow // and/or vtkRenderer or will use the ones you specify. string VTK_DATA_ROOT = vtk.vtkDotNetUtil.vtkGetDataRoot(); // Create the importer and read a file vtk.vtk3DSImporter importer = new vtk.vtk3DSImporter(); importer.ComputeNormalsOn(); importer.SetFileName(VTK_DATA_ROOT + "/Data/iflamigm.3ds"); importer.Read(); // Here we let the importer create a renderer and a render window for // us. We could have also create and assigned those ourselves like so: importer.SetRenderWindow(renWin); // Assign an interactor. // We have to ask the importer for it's render window. // Set some properties on the renderer. // We have to ask the importer for it's renderer. vtk.vtkRenderer ren = importer.GetRenderer(); renWin.AddRenderer(ren); ren.SetBackground(0.1, 0.2, 0.4); // Position the camera: // change view up to +z vtk.vtkCamera camera = ren.GetActiveCamera(); camera.SetPosition(0, 1, 0); camera.SetFocalPoint(0, 0, 0); camera.SetViewUp(0, 0, 1); // let the renderer compute good position and focal point ren.ResetCamera(); camera.Dolly(1.4); ren.ResetCameraClippingRange(); }
static void Main(string[] args) { string VTK_DATA_ROOT = vtk.vtkDotNetUtil.vtkGetDataRoot(); // Create the reader and read a data file. Connect the mapper and // actor. vtk.vtkSTLReader sr = new vtk.vtkSTLReader(); sr.SetFileName(VTK_DATA_ROOT + "/Data/42400-IDGH.stl"); vtk.vtkPolyDataMapper stlMapper = new vtk.vtkPolyDataMapper(); stlMapper.SetInputConnection(sr.GetOutputPort()); vtk.vtkLODActor stlActor = new vtk.vtkLODActor(); stlActor.SetMapper(stlMapper); // Create the Renderer, RenderWindow, and RenderWindowInteractor vtk.vtkRenderer ren = new vtk.vtkRenderer(); vtk.vtkRenderWindow renWin = new vtk.vtkRenderWindow(); renWin.AddRenderer(ren); vtk.vtkRenderWindowInteractor iren = new vtk.vtkRenderWindowInteractor(); iren.SetRenderWindow(renWin); // Add the actors to the render; set the background and size ren.AddActor(stlActor); ren.SetBackground(0.1, 0.2, 0.4); renWin.SetSize(500, 500); // Zoom in closer ren.ResetCamera(); vtk.vtkCamera cam1 = ren.GetActiveCamera(); cam1.Zoom(1.4); iren.Initialize(); renWin.Render(); iren.Start(); vtk.vtkWin32OpenGLRenderWindow win32win = vtk.vtkWin32OpenGLRenderWindow.SafeDownCast(renWin); if (null != win32win) win32win.Clean(); }
public void ShowVTKV3d() { renWin.AddRenderer(aRenderer); iren.SetRenderWindow(renWin); vtk.vtkSmoothPolyDataFilter smoother = new vtk.vtkSmoothPolyDataFilter(); smoother.SetInputConnection(mc.GetOutputPort()); smoother.SetRelaxationFactor(0.05); smoother.SetNumberOfIterations(30); vtk.vtkDecimatePro deci = new vtk.vtkDecimatePro(); deci.SetInputConnection(smoother.GetOutputPort()); deci.SetTargetReduction(0.9); deci.PreserveTopologyOn(); deci.Update(); int marchingNumberOfPoints = deci.GetOutput().GetNumberOfPoints(); int marchingNumberOfPolys = deci.GetOutput().GetNumberOfPolys(); info += "marching number of points : " + marchingNumberOfPoints + "\r\n"; info += "marching number of polys : " + marchingNumberOfPolys + "\r\n"; vtk.vtkSmoothPolyDataFilter smoother2 = new vtk.vtkSmoothPolyDataFilter(); smoother2.SetInputConnection(deci.GetOutputPort()); smoother2.SetRelaxationFactor(0.05); smoother2.SetNumberOfIterations(30); mcmap.SetInputConnection(smoother2.GetOutputPort()); mcmap.ScalarVisibilityOff(); mcactor.SetMapper(mcmap); mcactor.GetProperty().SetColor(1, 1, 1); aRenderer.AddActor(mcactor); aRenderer.SetBackground(0.0f, 0.0f, 0.0f); aRenderer.ResetCamera(); renWin.Render(); addBusyObservers(); iren.Initialize(); iren.Enable(); }
public void rendersiteplanes(vtk.vtkImageData VoxelData) { //vtk.vtkWin32RenderWindowInteractor renwX.AddRenderer(renX); renwY.AddRenderer(renY); renwZ.AddRenderer(renZ); irenX.SetRenderWindow(renwX); irenY.SetRenderWindow(renwY); irenZ.SetRenderWindow(renwZ); vtk.vtkOutlineFilter outline = new vtk.vtkOutlineFilter(); outline.SetInput(VoxelData); vtk.vtkPolyDataMapper outlineMapper = new vtk.vtkPolyDataMapper(); outlineMapper.SetInputConnection(outline.GetOutputPort()); vtk.vtkActor outlineActor = new vtk.vtkActor(); outlineActor.SetMapper(outlineMapper); vtk.vtkCellPicker picker = new vtk.vtkCellPicker(); picker.SetTolerance(0.005); planeWidgetX.SetInteractor(irenX); planeWidgetX.DisplayTextOff(); planeWidgetX.SetInput(VoxelData); planeWidgetX.SetPlaneOrientationToXAxes(); planeWidgetX.SetSliceIndex(slizex); planeWidgetX.SetPicker(picker); planeWidgetX.On(); planeWidgetX.InteractionOff(); if (firstTime) { double[] wl = new double[2]; vtk.vtkLookupTable lktb = new vtk.vtkLookupTable(); lktb = planeWidgetX.GetLookupTable(); wl = lktb.GetTableRange(); rangeXMin = wl[0]; rangeXMax = wl[1]; planeWidgetX.GetWindowLevel(wl); windowX = wl[0]; levelX = wl[1]; } planeWidgetY.SetInteractor(irenY); planeWidgetY.DisplayTextOff(); planeWidgetY.SetInput(VoxelData); planeWidgetY.SetPlaneOrientationToYAxes(); planeWidgetY.SetSliceIndex(slizey); planeWidgetY.SetPicker(picker); planeWidgetY.On(); planeWidgetY.InteractionOff(); if (firstTime) { double[] wl = new double[2]; vtk.vtkLookupTable lktb = new vtk.vtkLookupTable(); lktb = planeWidgetY.GetLookupTable(); wl = lktb.GetTableRange(); rangeYMin = wl[0]; rangeYMax = wl[1]; planeWidgetY.GetWindowLevel(wl); windowY = wl[0]; levelY = wl[1]; } planeWidgetZ.SetInteractor(irenZ); planeWidgetZ.DisplayTextOff(); planeWidgetZ.SetInput(VoxelData); planeWidgetZ.SetPlaneOrientationToZAxes(); planeWidgetZ.SetSliceIndex(slizez); planeWidgetZ.SetPicker(picker); planeWidgetZ.On(); planeWidgetZ.InteractionOff(); if (firstTime) { double[] wl = new double[2]; vtk.vtkLookupTable lktb = new vtk.vtkLookupTable(); lktb = planeWidgetZ.GetLookupTable(); wl = lktb.GetTableRange(); rangeZMin = wl[0]; rangeZMax = wl[1]; planeWidgetZ.GetWindowLevel(wl); windowZ = wl[0]; levelZ = wl[1]; } firstTime = false; enabled = true; if (firstime == 1) { renX.GetActiveCamera().Roll(90); renX.GetActiveCamera().Azimuth(90); renY.GetActiveCamera().Elevation(-90); renX.GetActiveCamera().ParallelProjectionOff(); renY.GetActiveCamera().ParallelProjectionOff(); renZ.GetActiveCamera().ParallelProjectionOff(); } renX.ResetCamera(); renY.ResetCamera(); renZ.ResetCamera(); renX.GetActiveCamera().ParallelProjectionOn(); renY.GetActiveCamera().ParallelProjectionOn(); renZ.GetActiveCamera().ParallelProjectionOn(); renX.GetActiveCamera().Azimuth(-90); renX.GetActiveCamera().Roll(-90); renY.GetActiveCamera().Elevation(90); firstime = 1; int[] dimensions = VoxelData.GetDimensions(); double[] spacing = VoxelData.GetSpacing(); double xmax = (double)dimensions[0] * spacing[0] * 0.5; double ymax = (double)dimensions[1] * spacing[1] * 0.5; double zmax = (double)dimensions[2] * spacing[2] * 0.5; double smax = xmax; if (ymax > smax) { smax = ymax; } if (zmax > smax) { smax = zmax; } renX.GetActiveCamera().SetParallelScale(smax); renY.GetActiveCamera().SetParallelScale(smax); renZ.GetActiveCamera().SetParallelScale(smax); renX.GetActiveCamera().SetClippingRange(0.1, 1000); renY.GetActiveCamera().SetClippingRange(0.1, 1000); renZ.GetActiveCamera().SetClippingRange(0.1, 1000); irenX.Initialize(); irenY.Initialize(); irenZ.Initialize(); irenX.Disable(); irenY.Disable(); irenZ.Disable(); renwX.Render(); renwY.Render(); renwZ.Render(); }
public void render3Dplanes(vtk.vtkImageData VoxelData) { renWin.AddRenderer(ren2); iren.SetRenderWindow(renWin); vtk.vtkOutlineFilter outline = new vtk.vtkOutlineFilter(); outline.SetInput(VoxelData); vtk.vtkPolyDataMapper outlineMapper = new vtk.vtkPolyDataMapper(); outlineMapper.SetInputConnection(outline.GetOutputPort()); vtk.vtkActor outlineActor = new vtk.vtkActor(); outlineActor.SetMapper(outlineMapper); vtk.vtkCellPicker picker = new vtk.vtkCellPicker(); picker.SetTolerance(0.005); vtk.vtkColorTransferFunction colorTransferFunction = new vtk.vtkColorTransferFunction(); double[] inputRange = VoxelData.GetScalarRange(); colorTransferFunction.AddRGBPoint(inputRange[0], 0.0, 0.0, 0.0); colorTransferFunction.AddRGBPoint(inputRange[1], 1.0, 1.0, 1.0); sColorsX.SetLookupTable(colorTransferFunction); sColorsY.SetLookupTable(colorTransferFunction); sColorsZ.SetLookupTable(colorTransferFunction); planeWidgetX.SetColorMap(sColorsX); planeWidgetX.SetInteractor(iren); planeWidgetX.DisplayTextOff(); planeWidgetX.SetInput(VoxelData); planeWidgetX.SetPlaneOrientationToXAxes(); planeWidgetX.SetSliceIndex(slizex); planeWidgetX.SetPicker(picker); planeWidgetX.On(); planeWidgetX.InteractionOff(); planeWidgetY.SetColorMap(sColorsY); planeWidgetY.SetInteractor(iren); planeWidgetY.DisplayTextOff(); planeWidgetY.SetInput(VoxelData); planeWidgetY.SetPlaneOrientationToYAxes(); planeWidgetY.SetSliceIndex(slizey); planeWidgetY.SetPicker(picker); planeWidgetY.On(); planeWidgetY.InteractionOff(); planeWidgetZ.SetColorMap(sColorsZ); planeWidgetZ.SetInteractor(iren); planeWidgetZ.DisplayTextOff(); planeWidgetZ.SetInput(VoxelData); planeWidgetZ.SetPlaneOrientationToZAxes(); planeWidgetZ.SetSliceIndex(slizez); planeWidgetZ.SetPicker(picker); planeWidgetZ.On(); planeWidgetZ.InteractionOff(); ren2.ResetCamera(); renWin.Render(); iren.Initialize(); iren.Enable(); }