Polyhedron
VTKExamples/Python/GeometricObjects/Polyhedron
Other Languages
See (Cxx)
Code¶
Polyhedron.py
#!/usr/bin/env python # -*- coding: utf-8 -*- import vtk def main(): colors = vtk.vtkNamedColors() # create polyhedron (cube) # The point Ids are: [0, 1, 2, 3, 4, 5, 6, 7] points = vtk.vtkPoints() points.InsertNextPoint(-1.0, -1.0, -1.0) points.InsertNextPoint(1.0, -1.0, -1.0) points.InsertNextPoint(1.0, 1.0, -1.0) points.InsertNextPoint(-1.0, 1.0, -1.0) points.InsertNextPoint(-1.0, -1.0, 1.0) points.InsertNextPoint(1.0, -1.0, 1.0) points.InsertNextPoint(1.0, 1.0, 1.0) points.InsertNextPoint(-1.0, 1.0, 1.0) # These are the point ids corresponding to each face. faces = [[0, 3, 2, 1], [0, 4, 7, 3], [4, 5, 6, 7], [5, 1, 2, 6], [0, 1, 5, 4], [2, 3, 7, 6]] faceId = vtk.vtkIdList() faceId.InsertNextId(6) # Six faces make up the cell. for face in faces: faceId.InsertNextId(len(face)) # The number of points in the face. [faceId.InsertNextId(i) for i in face] ugrid = vtk.vtkUnstructuredGrid() ugrid.SetPoints(points) ugrid.InsertNextCell(vtk.VTK_POLYHEDRON, faceId) # Here we write out the cube. writer = vtk.vtkXMLUnstructuredGridWriter() writer.SetInputData(ugrid) writer.SetFileName('polyhedron.vtu') writer.SetDataModeToAscii() writer.Update() # Create a mapper and actor mapper = vtk.vtkDataSetMapper() mapper.SetInputData(ugrid) actor = vtk.vtkActor() actor.SetMapper(mapper) actor.GetProperty().SetColor( colors.GetColor3d('Silver')) # Visualize renderer = vtk.vtkRenderer() renderWindow = vtk.vtkRenderWindow() renderWindow.SetWindowName('Polyhedron') renderWindow.AddRenderer(renderer) renderWindowInteractor = vtk.vtkRenderWindowInteractor() renderWindowInteractor.SetRenderWindow(renderWindow) renderer.AddActor(actor) renderer.SetBackground(colors.GetColor3d('Salmon')) renderer.ResetCamera() renderer.GetActiveCamera().Azimuth(30) renderer.GetActiveCamera().Elevation(30) renderWindow.Render() renderWindowInteractor.Start() if __name__ == '__main__': main()