def __init__(self, module_manager): SimpleVTKClassModuleBase.__init__(self, module_manager, vtk.vtkMCubesReader(), 'Reading vtkMCubes.', (), ('vtkMCubes', ), replaceDoc=True, inputFunctions=None, outputFunctions=None)
def __init__(self, module_manager): SimpleVTKClassModuleBase.__init__( self, module_manager, vtk.vtkMCubesReader(), "Reading vtkMCubes.", (), ("vtkMCubes",), replaceDoc=True, inputFunctions=None, outputFunctions=None, )
v16.SetDataByteOrderToLittleEndian() v16.SetFilePrefix(VTK_DATA_ROOT + "/Data/headsq/quarter") v16.SetDataSpacing(3.2, 3.2, 1.5) v16.SetImageRange(30, 50) v16.SetDataMask(0x7fff) # write isosurface to file mcubes = vtk.vtkSliceCubes() mcubes.SetReader(v16) mcubes.SetValue(1150) mcubes.SetFileName("fullHead.tri") mcubes.SetLimitsFileName("fullHead.lim") mcubes.Update() # read from file reader = vtk.vtkMCubesReader() reader.SetFileName("fullHead.tri") reader.SetLimitsFileName("fullHead.lim") mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(reader.GetOutputPort()) head = vtk.vtkActor() head.SetMapper(mapper) head.GetProperty().SetColor(GetRGBColor('raw_sienna')) # Create the RenderWindow, Renderer and Interactor # ren1 = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.AddRenderer(ren1) iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin)
def main(): def NumberOfTriangles(pd): """ Count the number of triangles. :param pd: vtkPolyData. :return: The number of triangles. """ cells = pd.GetPolys() numOfTriangles = 0 idList = vtk.vtkIdList() for i in range(0, cells.GetNumberOfCells()): cells.GetNextCell(idList) # If a cell has three points it is a triangle. if idList.GetNumberOfIds() == 3: numOfTriangles += 1 return numOfTriangles colors = vtk.vtkNamedColors() fileName = get_program_parameters() # Create the pipeline. reader = vtk.vtkMCubesReader() reader.SetFileName(fileName) reader.FlipNormalsOff() reader.Update() print("Before Decimation.") print("There are: ", NumberOfTriangles(reader.GetOutput()), "triangles") deci = vtk.vtkDecimatePro() deci.SetInputConnection(reader.GetOutputPort()) deci.SetTargetReduction(0.9) deci.SetAbsoluteError(0.0005) deci.MaximumIterations = 6 deci.SetFeatureAngle(30) deci.SetErrorIsAbsolute(1) deci.AccumulateErrorOn() # deci.SplittingOff() deci.Update() print("After Decimation.") print("There are: ", NumberOfTriangles(deci.GetOutput()), "triangles") connect = vtk.vtkConnectivityFilter() connect.SetInputConnection(deci.GetOutputPort()) connect.SetExtractionModeToLargestRegion() connect.Update() print("After Connectivity.") print("There are: ", NumberOfTriangles(connect.GetOutput()), "triangles") isoMapper = vtk.vtkDataSetMapper() isoMapper.SetInputConnection(connect.GetOutputPort()) isoMapper.ScalarVisibilityOff() isoActor = vtk.vtkActor() isoActor.SetMapper(isoMapper) isoActor.GetProperty().SetColor(colors.GetColor3d("raw_sienna")) # Get an outline of the data set for context. outline = vtk.vtkOutlineFilter() outline.SetInputConnection(reader.GetOutputPort()) outlineMapper = vtk.vtkPolyDataMapper() outlineMapper.SetInputConnection(outline.GetOutputPort()) outlineActor = vtk.vtkActor() outlineActor.SetMapper(outlineMapper) outlineActor.GetProperty().SetColor(colors.GetColor3d("Black")) # Create the Renderer, RenderWindow and RenderWindowInteractor. ren = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.AddRenderer(ren) iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) # Add the actors to the renderer, set the background and size. ren.AddActor(outlineActor) ren.AddActor(isoActor) ren.SetBackground(1, 1, 1) # renWin.SetSize(750, 750) renWin.SetSize(512, 512) ren.SetBackground(colors.GetColor3d("SlateGray")) # render the image cam = ren.GetActiveCamera() cam.SetFocalPoint(40.6018, 37.2813, 50.1953) cam.SetPosition(40.6018, -280.533, 47.0172) cam.ComputeViewPlaneNormal() cam.SetClippingRange(26.1073, 1305.36) cam.SetViewAngle(20.9219) cam.SetViewUp(0.0, 0.0, 1.0) iren.Initialize() renWin.Render() iren.Start()
v16 = vtk.vtkVolume16Reader() v16.SetDataDimensions(64,64) v16.SetDataByteOrderToLittleEndian() v16.SetFilePrefix("" + str(VTK_DATA_ROOT) + "/Data/headsq/quarter") v16.SetDataSpacing(3.2,3.2,1.5) v16.SetImageRange(30,50) v16.SetDataMask(0x7fff) # write isosurface to file mcubes = vtk.vtkSliceCubes() mcubes.SetReader(v16) mcubes.SetValue(1150) mcubes.SetFileName("fullHead.tri") mcubes.SetLimitsFileName("fullHead.lim") mcubes.Update() # read from file reader = vtk.vtkMCubesReader() reader.SetFileName("fullHead.tri") reader.SetLimitsFileName("fullHead.lim") mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(reader.GetOutputPort()) head = vtk.vtkActor() head.SetMapper(mapper) head.GetProperty().SetColor(raw_sienna) # Create the RenderWindow, Renderer and Interactor # ren1 = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.AddRenderer(ren1) iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) # Add the actors to the renderer, set the background and size
def pine_root_connectivity(fileName, noConnectivity): def NumberOfTriangles(pd): """ Count the number of triangles. :param pd: vtkPolyData. :return: The number of triangles. """ cells = pd.GetPolys() numOfTriangles = 0 idList = vtk.vtkIdList() for i in range(0, cells.GetNumberOfCells()): cells.GetNextCell(idList) # If a cell has three points it is a triangle. if idList.GetNumberOfIds() == 3: numOfTriangles += 1 return numOfTriangles colors = vtk.vtkNamedColors() # Create the pipeline. reader = vtk.vtkMCubesReader() reader.SetFileName(fileName) if not noConnectivity: reader.Update() print("Before Connectivity.") print("There are: ", NumberOfTriangles(reader.GetOutput()), "triangles") connect = vtk.vtkPolyDataConnectivityFilter() connect.SetInputConnection(reader.GetOutputPort()) connect.SetExtractionModeToLargestRegion() if not noConnectivity: connect.Update() print("After Connectivity.") print("There are: ", NumberOfTriangles(connect.GetOutput()), "triangles") isoMapper = vtk.vtkPolyDataMapper() if noConnectivity: isoMapper.SetInputConnection(reader.GetOutputPort()) else: isoMapper.SetInputConnection(connect.GetOutputPort()) isoMapper.ScalarVisibilityOff() isoActor = vtk.vtkActor() isoActor.SetMapper(isoMapper) isoActor.GetProperty().SetColor(colors.GetColor3d("raw_sienna")) # Get an outline of the data set for context. outline = vtk.vtkOutlineFilter() outline.SetInputConnection(reader.GetOutputPort()) outlineMapper = vtk.vtkPolyDataMapper() outlineMapper.SetInputConnection(outline.GetOutputPort()) outlineActor = vtk.vtkActor() outlineActor.SetMapper(outlineMapper) outlineActor.GetProperty().SetColor(colors.GetColor3d("Black")) # Create the Renderer, RenderWindow and RenderWindowInteractor. ren = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.AddRenderer(ren) iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) # Add the actors to the renderer, set the background and size. ren.AddActor(outlineActor) ren.AddActor(isoActor) renWin.SetSize(512, 512) ren.SetBackground(colors.GetColor3d("SlateGray")) # render the image # # iren AddObserver UserEvent {wm deiconify .vtkInteract} cam = ren.GetActiveCamera() cam.SetFocalPoint(40.6018, 37.2813, 50.1953) cam.SetPosition(40.6018, -280.533, 47.0172) cam.ComputeViewPlaneNormal() cam.SetClippingRange(26.1073, 1305.36) cam.SetViewAngle(20.9219) cam.SetViewUp(0.0, 0.0, 1.0) iren.Initialize() renWin.Render() iren.Start()