Cloned library of VTK-5.0.0 with extra build files for internal package management.
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.
 
 
 
 
 
 

383 lines
13 KiB

# This example shows how to manually construct unstructured grids using
# Tcl. Unstructured grids require explicit point and cell representations,
# so every point and cell must be created, and then added to the
# vtkUnstructuredGrid instance.
#
package require vtk
package require vtkinteraction
# Create several unstructured grids each containing a cell of a different type.
vtkPoints voxelPoints
voxelPoints SetNumberOfPoints 8
voxelPoints InsertPoint 0 0 0 0
voxelPoints InsertPoint 1 1 0 0
voxelPoints InsertPoint 2 0 1 0
voxelPoints InsertPoint 3 1 1 0
voxelPoints InsertPoint 4 0 0 1
voxelPoints InsertPoint 5 1 0 1
voxelPoints InsertPoint 6 0 1 1
voxelPoints InsertPoint 7 1 1 1
vtkVoxel aVoxel
[aVoxel GetPointIds] SetId 0 0
[aVoxel GetPointIds] SetId 1 1
[aVoxel GetPointIds] SetId 2 2
[aVoxel GetPointIds] SetId 3 3
[aVoxel GetPointIds] SetId 4 4
[aVoxel GetPointIds] SetId 5 5
[aVoxel GetPointIds] SetId 6 6
[aVoxel GetPointIds] SetId 7 7
vtkUnstructuredGrid aVoxelGrid
aVoxelGrid Allocate 1 1
aVoxelGrid InsertNextCell [aVoxel GetCellType] [aVoxel GetPointIds]
aVoxelGrid SetPoints voxelPoints
vtkDataSetMapper aVoxelMapper
aVoxelMapper SetInput aVoxelGrid
vtkActor aVoxelActor
aVoxelActor SetMapper aVoxelMapper
[aVoxelActor GetProperty] SetDiffuseColor 1 0 0
vtkPoints hexahedronPoints
hexahedronPoints SetNumberOfPoints 8
hexahedronPoints InsertPoint 0 0 0 0
hexahedronPoints InsertPoint 1 1 0 0
hexahedronPoints InsertPoint 2 1 1 0
hexahedronPoints InsertPoint 3 0 1 0
hexahedronPoints InsertPoint 4 0 0 1
hexahedronPoints InsertPoint 5 1 0 1
hexahedronPoints InsertPoint 6 1 1 1
hexahedronPoints InsertPoint 7 0 1 1
vtkHexahedron aHexahedron
[aHexahedron GetPointIds] SetId 0 0
[aHexahedron GetPointIds] SetId 1 1
[aHexahedron GetPointIds] SetId 2 2
[aHexahedron GetPointIds] SetId 3 3
[aHexahedron GetPointIds] SetId 4 4
[aHexahedron GetPointIds] SetId 5 5
[aHexahedron GetPointIds] SetId 6 6
[aHexahedron GetPointIds] SetId 7 7
vtkUnstructuredGrid aHexahedronGrid
aHexahedronGrid Allocate 1 1
aHexahedronGrid InsertNextCell [aHexahedron GetCellType] [aHexahedron GetPointIds]
aHexahedronGrid SetPoints hexahedronPoints
vtkDataSetMapper aHexahedronMapper
aHexahedronMapper SetInput aHexahedronGrid
vtkActor aHexahedronActor
aHexahedronActor SetMapper aHexahedronMapper
aHexahedronActor AddPosition 2 0 0
[aHexahedronActor GetProperty] SetDiffuseColor 1 1 0
vtkPoints tetraPoints
tetraPoints SetNumberOfPoints 4
tetraPoints InsertPoint 0 0 0 0
tetraPoints InsertPoint 1 1 0 0
tetraPoints InsertPoint 2 .5 1 0
tetraPoints InsertPoint 3 .5 .5 1
vtkTetra aTetra
[aTetra GetPointIds] SetId 0 0
[aTetra GetPointIds] SetId 1 1
[aTetra GetPointIds] SetId 2 2
[aTetra GetPointIds] SetId 3 3
vtkUnstructuredGrid aTetraGrid
aTetraGrid Allocate 1 1
aTetraGrid InsertNextCell [aTetra GetCellType] [aTetra GetPointIds]
aTetraGrid SetPoints tetraPoints
vtkDataSetMapper aTetraMapper
aTetraMapper SetInput aTetraGrid
vtkActor aTetraActor
aTetraActor SetMapper aTetraMapper
aTetraActor AddPosition 4 0 0
[aTetraActor GetProperty] SetDiffuseColor 0 1 0
vtkPoints wedgePoints
wedgePoints SetNumberOfPoints 6
wedgePoints InsertPoint 0 0 1 0
wedgePoints InsertPoint 1 0 0 0
wedgePoints InsertPoint 2 0 .5 .5
wedgePoints InsertPoint 3 1 1 0
wedgePoints InsertPoint 4 1 0 0
wedgePoints InsertPoint 5 1 .5 .5
vtkWedge aWedge
[aWedge GetPointIds] SetId 0 0
[aWedge GetPointIds] SetId 1 1
[aWedge GetPointIds] SetId 2 2
[aWedge GetPointIds] SetId 3 3
[aWedge GetPointIds] SetId 4 4
[aWedge GetPointIds] SetId 5 5
vtkUnstructuredGrid aWedgeGrid
aWedgeGrid Allocate 1 1
aWedgeGrid InsertNextCell [aWedge GetCellType] [aWedge GetPointIds]
aWedgeGrid SetPoints wedgePoints
vtkDataSetMapper aWedgeMapper
aWedgeMapper SetInput aWedgeGrid
vtkActor aWedgeActor
aWedgeActor SetMapper aWedgeMapper
aWedgeActor AddPosition 6 0 0
[aWedgeActor GetProperty] SetDiffuseColor 0 1 1
vtkPoints pyramidPoints
pyramidPoints SetNumberOfPoints 5
pyramidPoints InsertPoint 0 0 0 0
pyramidPoints InsertPoint 1 1 0 0
pyramidPoints InsertPoint 2 1 1 0
pyramidPoints InsertPoint 3 0 1 0
pyramidPoints InsertPoint 4 .5 .5 1
vtkPyramid aPyramid
[aPyramid GetPointIds] SetId 0 0
[aPyramid GetPointIds] SetId 1 1
[aPyramid GetPointIds] SetId 2 2
[aPyramid GetPointIds] SetId 3 3
[aPyramid GetPointIds] SetId 4 4
vtkUnstructuredGrid aPyramidGrid
aPyramidGrid Allocate 1 1
aPyramidGrid InsertNextCell [aPyramid GetCellType] [aPyramid GetPointIds]
aPyramidGrid SetPoints pyramidPoints
vtkDataSetMapper aPyramidMapper
aPyramidMapper SetInput aPyramidGrid
vtkActor aPyramidActor
aPyramidActor SetMapper aPyramidMapper
aPyramidActor AddPosition 8 0 0
[aPyramidActor GetProperty] SetDiffuseColor 1 0 1
vtkPoints pixelPoints
pixelPoints SetNumberOfPoints 4
pixelPoints InsertPoint 0 0 0 0
pixelPoints InsertPoint 1 1 0 0
pixelPoints InsertPoint 2 0 1 0
pixelPoints InsertPoint 3 1 1 0
vtkPixel aPixel
[aPixel GetPointIds] SetId 0 0
[aPixel GetPointIds] SetId 1 1
[aPixel GetPointIds] SetId 2 2
[aPixel GetPointIds] SetId 3 3
vtkUnstructuredGrid aPixelGrid
aPixelGrid Allocate 1 1
aPixelGrid InsertNextCell [aPixel GetCellType] [aPixel GetPointIds]
aPixelGrid SetPoints pixelPoints
vtkDataSetMapper aPixelMapper
aPixelMapper SetInput aPixelGrid
vtkActor aPixelActor
aPixelActor SetMapper aPixelMapper
aPixelActor AddPosition 0 0 2
[aPixelActor GetProperty] SetDiffuseColor 0 1 1
vtkPoints quadPoints
quadPoints SetNumberOfPoints 4
quadPoints InsertPoint 0 0 0 0
quadPoints InsertPoint 1 1 0 0
quadPoints InsertPoint 2 1 1 0
quadPoints InsertPoint 3 0 1 0
vtkQuad aQuad
[aQuad GetPointIds] SetId 0 0
[aQuad GetPointIds] SetId 1 1
[aQuad GetPointIds] SetId 2 2
[aQuad GetPointIds] SetId 3 3
vtkUnstructuredGrid aQuadGrid
aQuadGrid Allocate 1 1
aQuadGrid InsertNextCell [aQuad GetCellType] [aQuad GetPointIds]
aQuadGrid SetPoints quadPoints
vtkDataSetMapper aQuadMapper
aQuadMapper SetInput aQuadGrid
vtkActor aQuadActor
aQuadActor SetMapper aQuadMapper
aQuadActor AddPosition 2 0 2
[aQuadActor GetProperty] SetDiffuseColor 1 0 1
vtkPoints trianglePoints
trianglePoints SetNumberOfPoints 3
trianglePoints InsertPoint 0 0 0 0
trianglePoints InsertPoint 1 1 0 0
trianglePoints InsertPoint 2 .5 .5 0
vtkFloatArray triangleTCoords
triangleTCoords SetNumberOfComponents 3
triangleTCoords SetNumberOfTuples 3
triangleTCoords InsertTuple3 0 1 1 1
triangleTCoords InsertTuple3 1 2 2 2
triangleTCoords InsertTuple3 2 3 3 3
vtkTriangle aTriangle
[aTriangle GetPointIds] SetId 0 0
[aTriangle GetPointIds] SetId 1 1
[aTriangle GetPointIds] SetId 2 2
vtkUnstructuredGrid aTriangleGrid
aTriangleGrid Allocate 1 1
aTriangleGrid InsertNextCell [aTriangle GetCellType] [aTriangle GetPointIds]
aTriangleGrid SetPoints trianglePoints
[aTriangleGrid GetPointData] SetTCoords triangleTCoords
vtkDataSetMapper aTriangleMapper
aTriangleMapper SetInput aTriangleGrid
vtkActor aTriangleActor
aTriangleActor SetMapper aTriangleMapper
aTriangleActor AddPosition 4 0 2
[aTriangleActor GetProperty] SetDiffuseColor .3 1 .5
vtkPoints polygonPoints
polygonPoints SetNumberOfPoints 4
polygonPoints InsertPoint 0 0 0 0
polygonPoints InsertPoint 1 1 0 0
polygonPoints InsertPoint 2 1 1 0
polygonPoints InsertPoint 3 0 1 0
vtkPolygon aPolygon
[aPolygon GetPointIds] SetNumberOfIds 4
[aPolygon GetPointIds] SetId 0 0
[aPolygon GetPointIds] SetId 1 1
[aPolygon GetPointIds] SetId 2 2
[aPolygon GetPointIds] SetId 3 3
vtkUnstructuredGrid aPolygonGrid
aPolygonGrid Allocate 1 1
aPolygonGrid InsertNextCell [aPolygon GetCellType] [aPolygon GetPointIds]
aPolygonGrid SetPoints polygonPoints
vtkDataSetMapper aPolygonMapper
aPolygonMapper SetInput aPolygonGrid
vtkActor aPolygonActor
aPolygonActor SetMapper aPolygonMapper
aPolygonActor AddPosition 6 0 2
[aPolygonActor GetProperty] SetDiffuseColor 1 .4 .5
vtkPoints triangleStripPoints
triangleStripPoints SetNumberOfPoints 5
triangleStripPoints InsertPoint 0 0 1 0
triangleStripPoints InsertPoint 1 0 0 0
triangleStripPoints InsertPoint 2 1 1 0
triangleStripPoints InsertPoint 3 1 0 0
triangleStripPoints InsertPoint 4 2 1 0
vtkFloatArray triangleStripTCoords
triangleStripTCoords SetNumberOfComponents 3
triangleStripTCoords SetNumberOfTuples 3
triangleStripTCoords InsertTuple3 0 1 1 1
triangleStripTCoords InsertTuple3 1 2 2 2
triangleStripTCoords InsertTuple3 2 3 3 3
triangleStripTCoords InsertTuple3 3 4 4 4
triangleStripTCoords InsertTuple3 4 5 5 5
vtkTriangleStrip aTriangleStrip
[aTriangleStrip GetPointIds] SetNumberOfIds 5
[aTriangleStrip GetPointIds] SetId 0 0
[aTriangleStrip GetPointIds] SetId 1 1
[aTriangleStrip GetPointIds] SetId 2 2
[aTriangleStrip GetPointIds] SetId 3 3
[aTriangleStrip GetPointIds] SetId 4 4
vtkUnstructuredGrid aTriangleStripGrid
aTriangleStripGrid Allocate 1 1
aTriangleStripGrid InsertNextCell [aTriangleStrip GetCellType] [aTriangleStrip GetPointIds]
aTriangleStripGrid SetPoints triangleStripPoints
[aTriangleStripGrid GetPointData] SetTCoords triangleStripTCoords
vtkDataSetMapper aTriangleStripMapper
aTriangleStripMapper SetInput aTriangleStripGrid
vtkActor aTriangleStripActor
aTriangleStripActor SetMapper aTriangleStripMapper
aTriangleStripActor AddPosition 8 0 2
[aTriangleStripActor GetProperty] SetDiffuseColor .3 .7 1
vtkPoints linePoints
linePoints SetNumberOfPoints 2
linePoints InsertPoint 0 0 0 0
linePoints InsertPoint 1 1 1 0
vtkLine aLine
[aLine GetPointIds] SetId 0 0
[aLine GetPointIds] SetId 1 1
vtkUnstructuredGrid aLineGrid
aLineGrid Allocate 1 1
aLineGrid InsertNextCell [aLine GetCellType] [aLine GetPointIds]
aLineGrid SetPoints linePoints
vtkDataSetMapper aLineMapper
aLineMapper SetInput aLineGrid
vtkActor aLineActor
aLineActor SetMapper aLineMapper
aLineActor AddPosition 0 0 4
[aLineActor GetProperty] SetDiffuseColor .2 1 1
vtkPoints polyLinePoints
polyLinePoints SetNumberOfPoints 3
polyLinePoints InsertPoint 0 0 0 0
polyLinePoints InsertPoint 1 1 1 0
polyLinePoints InsertPoint 2 1 0 0
vtkPolyLine aPolyLine
[aPolyLine GetPointIds] SetNumberOfIds 3
[aPolyLine GetPointIds] SetId 0 0
[aPolyLine GetPointIds] SetId 1 1
[aPolyLine GetPointIds] SetId 2 2
vtkUnstructuredGrid aPolyLineGrid
aPolyLineGrid Allocate 1 1
aPolyLineGrid InsertNextCell [aPolyLine GetCellType] [aPolyLine GetPointIds]
aPolyLineGrid SetPoints polyLinePoints
vtkDataSetMapper aPolyLineMapper
aPolyLineMapper SetInput aPolyLineGrid
vtkActor aPolyLineActor
aPolyLineActor SetMapper aPolyLineMapper
aPolyLineActor AddPosition 2 0 4
[aPolyLineActor GetProperty] SetDiffuseColor 1 1 1
vtkPoints vertexPoints
vertexPoints SetNumberOfPoints 1
vertexPoints InsertPoint 0 0 0 0
vtkVertex aVertex
[aVertex GetPointIds] SetId 0 0
vtkUnstructuredGrid aVertexGrid
aVertexGrid Allocate 1 1
aVertexGrid InsertNextCell [aVertex GetCellType] [aVertex GetPointIds]
aVertexGrid SetPoints vertexPoints
vtkDataSetMapper aVertexMapper
aVertexMapper SetInput aVertexGrid
vtkActor aVertexActor
aVertexActor SetMapper aVertexMapper
aVertexActor AddPosition 0 0 6
[aVertexActor GetProperty] SetDiffuseColor 1 1 1
vtkPoints polyVertexPoints
polyVertexPoints SetNumberOfPoints 3
polyVertexPoints InsertPoint 0 0 0 0
polyVertexPoints InsertPoint 1 1 0 0
polyVertexPoints InsertPoint 2 1 1 0
vtkPolyVertex aPolyVertex
[aPolyVertex GetPointIds] SetNumberOfIds 3
[aPolyVertex GetPointIds] SetId 0 0
[aPolyVertex GetPointIds] SetId 1 1
[aPolyVertex GetPointIds] SetId 2 2
vtkUnstructuredGrid aPolyVertexGrid
aPolyVertexGrid Allocate 1 1
aPolyVertexGrid InsertNextCell [aPolyVertex GetCellType] [aPolyVertex GetPointIds]
aPolyVertexGrid SetPoints polyVertexPoints
vtkDataSetMapper aPolyVertexMapper
aPolyVertexMapper SetInput aPolyVertexGrid
vtkActor aPolyVertexActor
aPolyVertexActor SetMapper aPolyVertexMapper
aPolyVertexActor AddPosition 2 0 6
[aPolyVertexActor GetProperty] SetDiffuseColor 1 1 1
# Create the usual rendering stuff.
vtkRenderer ren1
vtkRenderWindow renWin
renWin AddRenderer ren1
renWin SetSize 300 150
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
ren1 SetBackground .1 .2 .4
ren1 AddActor aVoxelActor
ren1 AddActor aHexahedronActor
ren1 AddActor aTetraActor
ren1 AddActor aWedgeActor
ren1 AddActor aPyramidActor
ren1 AddActor aPixelActor
ren1 AddActor aQuadActor
ren1 AddActor aTriangleActor
ren1 AddActor aPolygonActor
ren1 AddActor aTriangleStripActor
ren1 AddActor aLineActor
ren1 AddActor aPolyLineActor
ren1 AddActor aVertexActor
ren1 AddActor aPolyVertexActor
ren1 ResetCamera
[ren1 GetActiveCamera] Azimuth 30
[ren1 GetActiveCamera] Elevation 20
[ren1 GetActiveCamera] Dolly 2.8
ren1 ResetCameraClippingRange
renWin Render
# render the image
#
iren AddObserver UserEvent {wm deiconify .vtkInteract}
iren Initialize
wm withdraw .