QLquadPoints.SetNumberOfPoints(6) QLquadPoints.InsertPoint(0, 0.0, 0.0, 0.0) QLquadPoints.InsertPoint(1, 1.0, 0.0, 0.0) QLquadPoints.InsertPoint(2, 1.0, 1.0, 0.0) QLquadPoints.InsertPoint(3, 0.0, 1.0, 0.0) QLquadPoints.InsertPoint(4, 0.5, 0.0, 0.0) QLquadPoints.InsertPoint(5, 0.5, 1.0, 0.0) QLquadScalars = vtk.vtkFloatArray() QLquadScalars.SetNumberOfTuples(6) QLquadScalars.InsertValue(0, 1.0) QLquadScalars.InsertValue(1, 1.0) QLquadScalars.InsertValue(2, 0.0) QLquadScalars.InsertValue(3, 0.0) QLquadScalars.InsertValue(4, 0.0) QLquadScalars.InsertValue(5, 1.0) QLQuad = vtk.vtkQuadraticLinearQuad() QLQuad.GetPointIds().SetId(0, 0) QLQuad.GetPointIds().SetId(1, 1) QLQuad.GetPointIds().SetId(2, 2) QLQuad.GetPointIds().SetId(3, 3) QLQuad.GetPointIds().SetId(4, 4) QLQuad.GetPointIds().SetId(5, 5) QLQuadGrid = vtk.vtkUnstructuredGrid() QLQuadGrid.Allocate(1, 1) QLQuadGrid.InsertNextCell(QLQuad.GetCellType(), QLQuad.GetPointIds()) QLQuadGrid.SetPoints(QLquadPoints) QLQuadGrid.GetPointData().SetScalars(QLquadScalars) QLquadContours = vtk.vtkContourFilter() QLquadContours.SetInputData(QLQuadGrid) QLquadContours.SetValue(0, 0.5) QLQuadContourMapper = vtk.vtkDataSetMapper()
[4.0, 4.0, 0.0], [5.0, 4.0, 0.0], [5.0, 5.0, 0.0], [4.0, 5.0, 0.0], [4.5, 4.0, 0.0], [4.5, 5.0, 0.0]]) QLquadPoints.SetData(ntov(QLquadPointsCoords)) QLquadScalars = vtk.vtkFloatArray() QLquadScalars.SetNumberOfTuples(6) QLquadScalars.InsertValue(0, 1.0) QLquadScalars.InsertValue(1, 1.0) QLquadScalars.InsertValue(2, 1.0) QLquadScalars.InsertValue(3, 1.0) QLquadScalars.InsertValue(4, 0.0) QLquadScalars.InsertValue(5, 0.0) QLQuad = vtk.vtkQuadraticLinearQuad() for i in range(QLQuad.GetNumberOfPoints()): QLQuad.GetPointIds().SetId(i, i) QLQuadGrid = vtk.vtkUnstructuredGrid() QLQuadGrid.Allocate(1, 1) QLQuadGrid.InsertNextCell(QLQuad.GetCellType(), QLQuad.GetPointIds()) QLQuadGrid.SetPoints(QLquadPoints) QLQuadGrid.GetPointData().SetScalars(QLquadScalars) # Quadratic tetrahedron tetPoints = vtk.vtkPoints() tetPoints.SetNumberOfPoints(10) tetPointsCoords = np.array([ [6.0, 0.0, 0.0], [7.0, 0.0, 0.0], [6.5, 0.8, 0.0],
def main(): titles = list() textMappers = list() textActors = list() uGrids = list() mappers = list() actors = list() renderers = list() uGrids.append(MakeUnstructuredGrid(vtk.vtkQuadraticEdge())) titles.append("VTK_QUADRATIC_EDGE (= 21)") uGrids.append(MakeUnstructuredGrid(vtk.vtkQuadraticTriangle())) titles.append("VTK_QUADRATIC_TRIANGLE (= 22)") uGrids.append(MakeUnstructuredGrid(vtk.vtkQuadraticQuad())) titles.append("VTK_QUADRATIC_QUAD (= 23)") uGrids.append(MakeQuadraticPolygon()) titles.append("VTK_QUADRATIC_POLYGON (= 36)") uGrids.append(MakeUnstructuredGrid(vtk.vtkQuadraticTetra())) titles.append("VTK_QUADRATIC_TETRA (= 24)") uGrids.append(MakeUnstructuredGrid(vtk.vtkQuadraticHexahedron())) titles.append("VTK_QUADRATIC_HEXAHEDRON (= 25)") uGrids.append(MakeUnstructuredGrid(vtk.vtkQuadraticWedge())) titles.append("VTK_QUADRATIC_WEDGE (= 26)") uGrids.append(MakeUnstructuredGrid(vtk.vtkQuadraticPyramid())) titles.append("VTK_QUADRATIC_PYRAMID (= 27)") uGrids.append(MakeUnstructuredGrid(vtk.vtkBiQuadraticQuad())) titles.append("VTK_BIQUADRATIC_QUAD (= 28)") uGrids.append(MakeUnstructuredGrid(vtk.vtkTriQuadraticHexahedron())) titles.append("VTK_TRIQUADRATIC_HEXAHEDRON (= 29)") uGrids.append(MakeUnstructuredGrid(vtk.vtkQuadraticLinearQuad())) titles.append("VTK_QUADRATIC_LINEAR_QUAD (= 30)") uGrids.append(MakeUnstructuredGrid(vtk.vtkQuadraticLinearWedge())) titles.append("VTK_QUADRATIC_LINEAR_WEDGE (= 31)") uGrids.append(MakeUnstructuredGrid(vtk.vtkBiQuadraticQuadraticWedge())) titles.append("VTK_BIQUADRATIC_QUADRATIC_WEDGE (= 32)") uGrids.append(MakeUnstructuredGrid( vtk.vtkBiQuadraticQuadraticHexahedron())) titles.append("VTK_BIQUADRATIC_QUADRATIC_HEXAHEDRON (= 33)") uGrids.append(MakeUnstructuredGrid(vtk.vtkBiQuadraticTriangle())) titles.append("VTK_BIQUADRATIC_TRIANGLE (= 34)") uGrids.append(MakeUnstructuredGrid(vtk.vtkCubicLine())) titles.append("VTK_CUBIC_LINE (= 35)") colors = vtk.vtkNamedColors() renWin = vtk.vtkRenderWindow() renWin.SetSize(600, 600) renWin.SetWindowName("Isoparametric Cell") iRen = vtk.vtkRenderWindowInteractor() iRen.SetRenderWindow(renWin) # Create one sphere for all sphere = vtk.vtkSphereSource() sphere.SetPhiResolution(21) sphere.SetThetaResolution(21) sphere.SetRadius(.08) # Create one text property for all textProperty = vtk.vtkTextProperty() textProperty.SetFontSize(10) textProperty.SetJustificationToCentered() # Create and link the mappers actors and renderers together. for i in range(0, len(uGrids)): print("Creating:", titles[i]) textMappers.append(vtk.vtkTextMapper()) textActors.append(vtk.vtkActor2D()) textMappers[i].GetTextProperty().SetFontSize(10) textMappers[i].GetTextProperty().ShadowOn() mappers.append(vtk.vtkDataSetMapper()) actors.append(vtk.vtkActor()) renderers.append(vtk.vtkRenderer()) mappers[i].SetInputData(uGrids[i]) actors[i].SetMapper(mappers[i]) actors[i].GetProperty().SetColor(colors.GetColor3d("Tomato")) actors[i].GetProperty().EdgeVisibilityOn() actors[i].GetProperty().SetLineWidth(3) actors[i].GetProperty().SetOpacity(.5) renderers[i].AddViewProp(actors[i]) textMappers[i].SetInput(titles[i]) textActors[i].SetMapper(textMappers[i]) textActors[i].SetPosition(50, 10) renderers[i].AddViewProp(textActors[i]) # Label the points labelMapper = vtk.vtkLabeledDataMapper() labelMapper.SetInputData(uGrids[i]) labelActor = vtk.vtkActor2D() labelActor.SetMapper(labelMapper) renderers[i].AddViewProp(labelActor) # Glyph the points pointMapper = vtk.vtkGlyph3DMapper() pointMapper.SetInputData(uGrids[i]) pointMapper.SetSourceConnection(sphere.GetOutputPort()) pointMapper.ScalingOff() pointMapper.ScalarVisibilityOff() pointActor = vtk.vtkActor() pointActor.SetMapper(pointMapper) pointActor.GetProperty().SetDiffuseColor(colors.GetColor3d("Banana")) pointActor.GetProperty().SetSpecular(.6) pointActor.GetProperty().SetSpecularColor(1.0, 1.0, 1.0) pointActor.GetProperty().SetSpecularPower(100) renderers[i].AddViewProp(pointActor) renWin.AddRenderer(renderers[i]) # Setup the viewports xGridDimensions = 4 yGridDimensions = 4 rendererSize = 240 renWin.SetSize(rendererSize * xGridDimensions, rendererSize * yGridDimensions) for row in range(0, yGridDimensions): for col in range(0, xGridDimensions): index = row * xGridDimensions + col # (xmin, ymin, xmax, ymax) viewport = [ float(col) / xGridDimensions, float(yGridDimensions - (row + 1)) / yGridDimensions, float(col + 1) / xGridDimensions, float(yGridDimensions - row) / yGridDimensions ] if index > (len(actors) - 1): # Add a renderer even if there is no actor. # This makes the render window background all the same color. ren = vtk.vtkRenderer() ren.SetBackground(colors.GetColor3d("SlateGray")) ren.SetViewport(viewport) renWin.AddRenderer(ren) continue renderers[index].SetViewport(viewport) renderers[index].SetBackground(colors.GetColor3d("SlateGray")) renderers[index].ResetCamera() renderers[index].GetActiveCamera().Azimuth(30) renderers[index].GetActiveCamera().Elevation(-30) renderers[index].ResetCameraClippingRange() iRen.Initialize() renWin.Render() iRen.Start()