You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.5 KiB
88 lines
2.5 KiB
# This example demonstrate the use of VTK data arrays as attribute
|
|
# data as well as field data. It creates geometry (vtkPolyData) as
|
|
# well as attribute data explicitly.
|
|
|
|
package require vtk
|
|
package require vtkinteraction
|
|
|
|
# Create a float array which represents the points.
|
|
vtkFloatArray pcoords
|
|
# Note that by default, an array has 1 component.
|
|
# We have to change it to 3 for points
|
|
pcoords SetNumberOfComponents 3
|
|
# We ask pcoords to allocate room for at least 4 tuples
|
|
# and set the number of tuples to 4.
|
|
pcoords SetNumberOfTuples 4
|
|
# Assign each tuple. There are 5 specialized versions of SetTuple:
|
|
# SetTuple1 SetTuple2 SetTuple3 SetTuple4 SetTuple9
|
|
# These take 1, 2, 3, 4 and 9 components respectively.
|
|
pcoords SetTuple3 0 0.0 0.0 0.0
|
|
pcoords SetTuple3 1 0.0 1.0 0.0
|
|
pcoords SetTuple3 2 1.0 0.0 0.0
|
|
pcoords SetTuple3 3 1.0 1.0 0.0
|
|
|
|
# Create vtkPoints and assign pcoords as the internal data array.
|
|
vtkPoints points
|
|
points SetData pcoords
|
|
|
|
# Create the cells. In this case, a triangle strip with 2 triangles
|
|
# (which can be represented by 4 points)
|
|
vtkCellArray strips
|
|
strips InsertNextCell 4
|
|
strips InsertCellPoint 0
|
|
strips InsertCellPoint 1
|
|
strips InsertCellPoint 2
|
|
strips InsertCellPoint 3
|
|
|
|
# Create an integer array with 4 tuples. Note that when using
|
|
# InsertNextValue (or InsertNextTuple1 which is equivalent in
|
|
# this situation), the array will expand automatically
|
|
vtkIntArray temperature
|
|
temperature SetName "Temperature"
|
|
temperature InsertNextValue 10
|
|
temperature InsertNextValue 20
|
|
temperature InsertNextValue 30
|
|
temperature InsertNextValue 40
|
|
|
|
# Create a double array.
|
|
vtkDoubleArray vorticity
|
|
vorticity SetName "Vorticity"
|
|
vorticity InsertNextValue 2.7
|
|
vorticity InsertNextValue 4.1
|
|
vorticity InsertNextValue 5.3
|
|
vorticity InsertNextValue 3.4
|
|
|
|
# Create the dataset. In this case, we create a vtkPolyData
|
|
vtkPolyData polydata
|
|
# Assign points and cells
|
|
polydata SetPoints points
|
|
polydata SetStrips strips
|
|
# Assign scalars
|
|
[polydata GetPointData] SetScalars temperature
|
|
# Add the vorticity array. In this example, this field
|
|
# is not used.
|
|
[polydata GetPointData] AddArray vorticity
|
|
|
|
# Create the mapper and set the appropriate scalar range
|
|
# (default is (0,1)
|
|
vtkPolyDataMapper mapper
|
|
mapper SetInput polydata
|
|
mapper SetScalarRange 0 40
|
|
|
|
# Create an actor.
|
|
vtkActor actor
|
|
actor SetMapper mapper
|
|
|
|
# Create the rendering objects.
|
|
vtkRenderer ren
|
|
ren AddActor actor
|
|
|
|
vtkRenderWindow renWin
|
|
renWin AddRenderer ren
|
|
|
|
vtkRenderWindowInteractor iren
|
|
iren SetRenderWindow renWin
|
|
iren AddObserver UserEvent {wm deiconify .vtkInteract}
|
|
iren Initialize
|
|
|
|
wm withdraw . |