-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvtk_example_3.py
More file actions
75 lines (52 loc) · 2.4 KB
/
vtk_example_3.py
File metadata and controls
75 lines (52 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import vtk
colors = vtk.vtkNamedColors()
x = [[0, 0, 0], [1, 0, 0], [2, 0, 0], [0, 1, 0], [1, 1, 0], [2, 1, 0], [0, 0, 1], [1, 0, 1], [2, 0, 1], [0, 1, 1],
[1, 1, 1], [2, 1, 1], [0, 1, 2], [1, 1, 2], [2, 1, 2], [0, 1, 3], [1, 1, 3], [2, 1, 3], [0, 1, 4], [1, 1, 4],
[2, 1, 4], [0, 1, 5], [1, 1, 5], [2, 1, 5], [0, 1, 6], [1, 1, 6], [2, 1, 6]]
# Here we have kept consistency with the Cxx example of the same name.
# This means we will use slicing in ugrid.InsertNextCell to ensure that the correct
# number of points are used.
pts = [[0, 1, 4, 3, 6, 7, 10, 9], [1, 2, 5, 4, 7, 8, 11, 10], [6, 10, 9, 12, 0, 0, 0, 0],
[8, 11, 10, 14, 0, 0, 0, 0], [16, 17, 14, 13, 12, 15, 0, 0], [18, 15, 19, 16, 20, 17, 0, 0],
[22, 23, 20, 19, 0, 0, 0, 0], [21, 22, 18, 0, 0, 0, 0, 0], [22, 19, 18, 0, 0, 0, 0, 0],
[23, 26, 0, 0, 0, 0, 0, 0], [21, 24, 0, 0, 0, 0, 0, 0], [25, 0, 0, 0, 0, 0, 0, 0]]
print(len(x), len(pts))
renderer = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(renderer)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
points = vtk.vtkPoints()
for i in range(0, len(x)):
points.InsertPoint(i, x[i])
ugrid = vtk.vtkUnstructuredGrid()
ugrid.Allocate(100)
ugrid.InsertNextCell(vtk.VTK_HEXAHEDRON, 8, pts[0])
ugrid.InsertNextCell(vtk.VTK_HEXAHEDRON, 8, pts[1])
ugrid.InsertNextCell(vtk.VTK_TETRA, 4, pts[2][:4])
ugrid.InsertNextCell(vtk.VTK_TETRA, 4, pts[3][:4])
ugrid.InsertNextCell(vtk.VTK_POLYGON, 6, pts[4][:6])
ugrid.InsertNextCell(vtk.VTK_TRIANGLE_STRIP, 6, pts[5][:6])
ugrid.InsertNextCell(vtk.VTK_QUAD, 4, pts[6][:4])
ugrid.InsertNextCell(vtk.VTK_TRIANGLE, 3, pts[7][:3])
ugrid.InsertNextCell(vtk.VTK_TRIANGLE, 3, pts[8][:3])
ugrid.InsertNextCell(vtk.VTK_LINE, 2, pts[9][:2])
ugrid.InsertNextCell(vtk.VTK_LINE, 2, pts[10][:2])
ugrid.InsertNextCell(vtk.VTK_VERTEX, 1, pts[11][:1])
ugrid.SetPoints(points)
ugridMapper = vtk.vtkDataSetMapper()
ugridMapper.SetInputData(ugrid)
ugridActor = vtk.vtkActor()
ugridActor.SetMapper(ugridMapper)
ugridActor.GetProperty().SetColor(colors.GetColor3d("Peacock"))
ugridActor.GetProperty().EdgeVisibilityOn()
renderer.AddActor(ugridActor)
renderer.SetBackground(colors.GetColor3d("Beige"))
renderer.ResetCamera()
renderer.GetActiveCamera().Elevation(60.0)
renderer.GetActiveCamera().Azimuth(30.0)
renderer.GetActiveCamera().Dolly(1.2)
renWin.SetSize(1000, 1000)
# Interact with the data.
renWin.Render()
iren.Start()