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.
653 lines
19 KiB
653 lines
19 KiB
package require vtk
|
|
package require vtkinteraction
|
|
|
|
# Demonstrates vtkCellDerivatives for all cell types
|
|
#
|
|
|
|
# get the interactor ui
|
|
|
|
vtkRenderer ren1
|
|
vtkRenderWindow renWin
|
|
renWin AddRenderer ren1
|
|
vtkRenderWindowInteractor iren
|
|
iren SetRenderWindow renWin
|
|
|
|
# create a scene with one of each cell type
|
|
# Voxel
|
|
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] BackfaceCullingOn
|
|
|
|
# Hexahedron
|
|
|
|
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] BackfaceCullingOn
|
|
|
|
# Tetra
|
|
|
|
vtkPoints tetraPoints
|
|
tetraPoints SetNumberOfPoints 4
|
|
tetraPoints InsertPoint 0 0 0 0
|
|
tetraPoints InsertPoint 1 1 0 0
|
|
tetraPoints InsertPoint 2 0 1 0
|
|
tetraPoints InsertPoint 3 1 1 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] BackfaceCullingOn
|
|
|
|
# Wedge
|
|
|
|
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] BackfaceCullingOn
|
|
|
|
# Pyramid
|
|
|
|
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] BackfaceCullingOn
|
|
|
|
# Pixel
|
|
|
|
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] BackfaceCullingOn
|
|
|
|
# Quad
|
|
|
|
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] BackfaceCullingOn
|
|
|
|
# Triangle
|
|
|
|
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 2
|
|
triangleTCoords SetNumberOfTuples 3
|
|
triangleTCoords InsertTuple2 0 1 1
|
|
triangleTCoords InsertTuple2 1 2 2
|
|
triangleTCoords InsertTuple2 2 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] BackfaceCullingOn
|
|
|
|
# Polygon
|
|
|
|
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] BackfaceCullingOn
|
|
|
|
# Triangle strip
|
|
|
|
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 2
|
|
triangleStripTCoords SetNumberOfTuples 3
|
|
triangleStripTCoords InsertTuple2 0 1 1
|
|
triangleStripTCoords InsertTuple2 1 2 2
|
|
triangleStripTCoords InsertTuple2 2 3 3
|
|
triangleStripTCoords InsertTuple2 3 4 4
|
|
triangleStripTCoords InsertTuple2 4 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] BackfaceCullingOn
|
|
|
|
# Line
|
|
|
|
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] BackfaceCullingOn
|
|
|
|
# Polyline
|
|
|
|
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] BackfaceCullingOn
|
|
|
|
# Vertex
|
|
|
|
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] BackfaceCullingOn
|
|
|
|
# Polyvertex
|
|
|
|
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] BackfaceCullingOn
|
|
|
|
|
|
# Pentagonal prism
|
|
|
|
vtkPoints pentaPoints
|
|
pentaPoints SetNumberOfPoints 10
|
|
pentaPoints InsertPoint 0 0.25 0.0 0.0
|
|
pentaPoints InsertPoint 1 0.75 0.0 0.0
|
|
pentaPoints InsertPoint 2 1.0 0.5 0.0
|
|
pentaPoints InsertPoint 3 0.5 1.0 0.0
|
|
pentaPoints InsertPoint 4 0.0 0.5 0.0
|
|
pentaPoints InsertPoint 5 0.25 0.0 1.0
|
|
pentaPoints InsertPoint 6 0.75 0.0 1.0
|
|
pentaPoints InsertPoint 7 1.0 0.5 1.0
|
|
pentaPoints InsertPoint 8 0.5 1.0 1.0
|
|
pentaPoints InsertPoint 9 0.0 0.5 1.0
|
|
|
|
vtkPentagonalPrism aPenta
|
|
[aPenta GetPointIds] SetId 0 0
|
|
[aPenta GetPointIds] SetId 1 1
|
|
[aPenta GetPointIds] SetId 2 2
|
|
[aPenta GetPointIds] SetId 3 3
|
|
[aPenta GetPointIds] SetId 4 4
|
|
[aPenta GetPointIds] SetId 5 5
|
|
[aPenta GetPointIds] SetId 6 6
|
|
[aPenta GetPointIds] SetId 7 7
|
|
[aPenta GetPointIds] SetId 8 8
|
|
[aPenta GetPointIds] SetId 9 9
|
|
|
|
|
|
vtkUnstructuredGrid aPentaGrid
|
|
aPentaGrid Allocate 1 1
|
|
aPentaGrid InsertNextCell [aPenta GetCellType] [aPenta GetPointIds]
|
|
aPentaGrid SetPoints pentaPoints
|
|
|
|
vtkDataSetMapper aPentaMapper
|
|
aPentaMapper SetInput aPentaGrid
|
|
|
|
vtkActor aPentaActor
|
|
aPentaActor SetMapper aPentaMapper
|
|
aPentaActor AddPosition 10 0 0
|
|
[aPentaActor GetProperty] BackfaceCullingOn
|
|
|
|
# Hexagonal prism
|
|
|
|
vtkPoints hexaPoints
|
|
hexaPoints SetNumberOfPoints 12
|
|
hexaPoints InsertPoint 0 0.0 0.0 0.0
|
|
hexaPoints InsertPoint 1 0.5 0.0 0.0
|
|
hexaPoints InsertPoint 2 1.0 0.5 0.0
|
|
hexaPoints InsertPoint 3 1.0 1.0 0.0
|
|
hexaPoints InsertPoint 4 0.5 1.0 0.0
|
|
hexaPoints InsertPoint 5 0.0 0.5 0.0
|
|
hexaPoints InsertPoint 6 0.0 0.0 1.0
|
|
hexaPoints InsertPoint 7 0.5 0.0 1.0
|
|
hexaPoints InsertPoint 8 1.0 0.5 1.0
|
|
hexaPoints InsertPoint 9 1.0 1.0 1.0
|
|
hexaPoints InsertPoint 10 0.5 1.0 1.0
|
|
hexaPoints InsertPoint 11 0.0 0.5 1.0
|
|
|
|
vtkHexagonalPrism aHexa
|
|
[aHexa GetPointIds] SetId 0 0
|
|
[aHexa GetPointIds] SetId 1 1
|
|
[aHexa GetPointIds] SetId 2 2
|
|
[aHexa GetPointIds] SetId 3 3
|
|
[aHexa GetPointIds] SetId 4 4
|
|
[aHexa GetPointIds] SetId 5 5
|
|
[aHexa GetPointIds] SetId 6 6
|
|
[aHexa GetPointIds] SetId 7 7
|
|
[aHexa GetPointIds] SetId 8 8
|
|
[aHexa GetPointIds] SetId 9 9
|
|
[aHexa GetPointIds] SetId 10 10
|
|
[aHexa GetPointIds] SetId 11 11
|
|
|
|
|
|
vtkUnstructuredGrid aHexaGrid
|
|
aHexaGrid Allocate 1 1
|
|
aHexaGrid InsertNextCell [aHexa GetCellType] [aHexa GetPointIds]
|
|
aHexaGrid SetPoints hexaPoints
|
|
|
|
vtkDataSetMapper aHexaMapper
|
|
aHexaMapper SetInput aHexaGrid
|
|
|
|
vtkActor aHexaActor
|
|
aHexaActor SetMapper aHexaMapper
|
|
aHexaActor AddPosition 12 0 0
|
|
[aHexaActor GetProperty] BackfaceCullingOn
|
|
|
|
|
|
ren1 SetBackground 1 1 1
|
|
|
|
ren1 AddActor aVoxelActor; [aVoxelActor GetProperty] SetDiffuseColor 1 0 0
|
|
ren1 AddActor aHexahedronActor; [aHexahedronActor GetProperty] SetDiffuseColor 1 1 0
|
|
ren1 AddActor aTetraActor; [aTetraActor GetProperty] SetDiffuseColor 0 1 0
|
|
ren1 AddActor aWedgeActor; [aWedgeActor GetProperty] SetDiffuseColor 0 1 1
|
|
ren1 AddActor aPyramidActor; [aPyramidActor GetProperty] SetDiffuseColor 1 0 1
|
|
ren1 AddActor aPixelActor; [aPixelActor GetProperty] SetDiffuseColor 0 1 1
|
|
ren1 AddActor aQuadActor; [aQuadActor GetProperty] SetDiffuseColor 1 0 1
|
|
ren1 AddActor aTriangleActor; [aTriangleActor GetProperty] SetDiffuseColor .3 1 .5
|
|
ren1 AddActor aPolygonActor; [aPolygonActor GetProperty] SetDiffuseColor 1 .4 .5
|
|
ren1 AddActor aTriangleStripActor; [aTriangleStripActor GetProperty] SetDiffuseColor .3 .7 1
|
|
ren1 AddActor aLineActor; [aLineActor GetProperty] SetDiffuseColor .2 1 1
|
|
ren1 AddActor aPolyLineActor; [aPolyLineActor GetProperty] SetDiffuseColor 1 1 1
|
|
ren1 AddActor aVertexActor; [aVertexActor GetProperty] SetDiffuseColor 1 1 1
|
|
ren1 AddActor aPolyVertexActor; [aPolyVertexActor GetProperty] SetDiffuseColor 1 1 1
|
|
ren1 AddActor aPentaActor; [aPentaActor GetProperty] SetDiffuseColor 1 1 0
|
|
ren1 AddActor aHexaActor; [aHexaActor GetProperty] SetDiffuseColor 1 1 0
|
|
|
|
#
|
|
# get the cell center of each type and put a glyph there
|
|
#
|
|
vtkSphereSource ball
|
|
ball SetRadius .2
|
|
|
|
foreach cell "aVoxel aHexahedron aWedge aPyramid aTetra aPixel aQuad aTriangle aPolygon \
|
|
aTriangleStrip aLine aPolyLine aVertex aPolyVertex aPenta aHexa" {
|
|
vtkFloatArray ${cell}Scalars
|
|
set N [${cell}Grid GetNumberOfPoints ]
|
|
vtkFloatArray ${cell}Scalar
|
|
${cell}Scalar SetNumberOfTuples $N
|
|
${cell}Scalar SetNumberOfComponents 1
|
|
for {set i 0} {$i < $N} {incr i 1} {
|
|
${cell}Scalar SetValue $i 0}
|
|
${cell}Scalar SetValue 0 4
|
|
|
|
[${cell}Grid GetPointData] SetScalars ${cell}Scalar
|
|
|
|
}
|
|
|
|
# write to the temp directory if possible, otherwise use .
|
|
set dir "."
|
|
if {[info commands "rtTester"] == "rtTester"} {
|
|
set dir [rtTester GetTempDirectory]
|
|
}
|
|
|
|
|
|
foreach cell "aVoxel aHexahedron aWedge aPyramid aTetra aQuad aTriangle aTriangleStrip aLine \
|
|
aPolyLine aVertex aPolyVertex aPixel aPolygon aPenta aHexa" {
|
|
|
|
vtkCellDerivatives ${cell}derivs
|
|
${cell}derivs SetInput ${cell}Grid
|
|
${cell}derivs SetVectorModeToComputeGradient
|
|
|
|
set FileName $dir
|
|
append FileName $cell
|
|
append FileName ".vtk"
|
|
|
|
# make sure the directory is writeable first
|
|
if {[catch {set channel [open "$dir/test.tmp" "w"]}] == 0 } {
|
|
close $channel
|
|
file delete -force "$dir/test.tmp"
|
|
|
|
vtkUnstructuredGridWriter ${cell}Writer
|
|
${cell}Writer SetInputConnection [${cell}derivs GetOutputPort]
|
|
${cell}Writer SetFileName $FileName
|
|
${cell}Writer Write
|
|
# delete the file
|
|
file delete -force $FileName
|
|
}
|
|
|
|
vtkCellCenters ${cell}Centers
|
|
${cell}Centers SetInputConnection [${cell}derivs GetOutputPort]
|
|
${cell}Centers VertexCellsOn
|
|
|
|
vtkHedgeHog ${cell}hog
|
|
${cell}hog SetInputConnection [${cell}Centers GetOutputPort]
|
|
|
|
vtkPolyDataMapper ${cell}mapHog
|
|
${cell}mapHog SetInputConnection [${cell}hog GetOutputPort]
|
|
${cell}mapHog SetScalarModeToUseCellData
|
|
${cell}mapHog ScalarVisibilityOff
|
|
vtkActor ${cell}hogActor
|
|
${cell}hogActor SetMapper ${cell}mapHog
|
|
[${cell}hogActor GetProperty] SetColor 0 1 0
|
|
|
|
vtkGlyph3D ${cell}Glyph3D
|
|
${cell}Glyph3D SetInputConnection [${cell}Centers GetOutputPort]
|
|
${cell}Glyph3D SetSource [ball GetOutput]
|
|
vtkPolyDataMapper ${cell}CentersMapper
|
|
${cell}CentersMapper SetInputConnection [${cell}Glyph3D GetOutputPort]
|
|
vtkActor ${cell}CentersActor
|
|
${cell}CentersActor SetMapper ${cell}CentersMapper
|
|
eval ${cell}hogActor SetPosition [${cell}Actor GetPosition]
|
|
ren1 AddActor ${cell}hogActor
|
|
[${cell}hogActor GetProperty] SetRepresentationToWireframe
|
|
}
|
|
|
|
ren1 ResetCamera
|
|
[ren1 GetActiveCamera] Azimuth 30
|
|
[ren1 GetActiveCamera] Elevation 20
|
|
[ren1 GetActiveCamera] Dolly 3.0
|
|
ren1 ResetCameraClippingRange
|
|
|
|
renWin SetSize 300 150
|
|
renWin Render
|
|
|
|
# render the image
|
|
#
|
|
iren AddObserver UserEvent {wm deiconify .vtkInteract}
|
|
iren Initialize
|
|
wm withdraw .
|
|
|
|
|
|
|
|
|
|
|