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.
 
 
 
 
 
 

133 lines
4.2 KiB

package require vtk
package require vtkinteraction
vtkRenderer ren1
vtkRenderWindow renWin
renWin AddRenderer ren1
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
vtkBMPReader bmpReader
bmpReader SetFileName "$VTK_DATA_ROOT/Data/masonry.bmp"
vtkTexture texture
texture SetInputConnection [bmpReader GetOutputPort]
vtkPoints triangleStripPoints
triangleStripPoints SetNumberOfPoints 5
triangleStripPoints InsertPoint 0 0 1 0
triangleStripPoints InsertPoint 1 0 0 .5
triangleStripPoints InsertPoint 2 1 1 .3
triangleStripPoints InsertPoint 3 1 0 .6
triangleStripPoints InsertPoint 4 2 1 .1
vtkFloatArray triangleStripTCoords
triangleStripTCoords SetNumberOfComponents 2
triangleStripTCoords SetNumberOfTuples 5
triangleStripTCoords InsertTuple2 0 0 1
triangleStripTCoords InsertTuple2 1 0 0
triangleStripTCoords InsertTuple2 2 .5 1
triangleStripTCoords InsertTuple2 3 .5 0
triangleStripTCoords InsertTuple2 4 1 1
vtkFloatArray triangleStripPointScalars
triangleStripPointScalars SetNumberOfTuples 5
triangleStripPointScalars InsertValue 0 1
triangleStripPointScalars InsertValue 1 0
triangleStripPointScalars InsertValue 2 0
triangleStripPointScalars InsertValue 3 0
triangleStripPointScalars InsertValue 4 0
vtkFloatArray triangleStripCellScalars
triangleStripCellScalars SetNumberOfTuples 1
triangleStripCellScalars InsertValue 0 1
vtkFloatArray triangleStripPointNormals
triangleStripPointNormals SetNumberOfComponents 3
triangleStripPointNormals SetNumberOfTuples 5
triangleStripPointNormals InsertTuple3 0 0 0 1
triangleStripPointNormals InsertTuple3 1 0 1 0
triangleStripPointNormals InsertTuple3 2 0 1 1
triangleStripPointNormals InsertTuple3 3 1 0 0
triangleStripPointNormals InsertTuple3 4 1 0 1
vtkFloatArray triangleStripCellNormals
triangleStripCellNormals SetNumberOfComponents 3
triangleStripCellNormals SetNumberOfTuples 1
triangleStripCellNormals InsertTuple3 0 0 0 1
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
vtkLookupTable lut
lut SetNumberOfColors 5
lut SetTableValue 0 0 0 1 1
lut SetTableValue 1 0 1 0 1
lut SetTableValue 2 0 1 1 1
lut SetTableValue 3 1 0 0 1
lut SetTableValue 4 1 0 1 1
set masks "0 1 2 3 4 5 6 7 10 11 14 15 16 18 20 22 26 30"
set i 0; set j 0 ; set k 0
set types "strip triangle"
foreach type $types {
foreach mask $masks {
vtkUnstructuredGrid grid$i
grid$i Allocate 1 1
grid$i InsertNextCell [aTriangleStrip GetCellType] [aTriangleStrip GetPointIds]
grid$i SetPoints triangleStripPoints
vtkGeometryFilter geometry$i
geometry$i SetInput grid$i
vtkTriangleFilter triangles$i
triangles$i SetInputConnection [geometry$i GetOutputPort]
vtkPolyDataMapper mapper$i
if {$type == "strip"} {mapper$i SetInputConnection [geometry$i GetOutputPort]}
if {$type == "triangle"} {mapper$i SetInputConnection [triangles$i GetOutputPort]}
mapper$i SetLookupTable lut
mapper$i SetScalarRange 0 4
vtkActor actor$i
actor$i SetMapper mapper$i
if {[expr $mask & 1] != 0} {
[grid$i GetPointData] SetNormals triangleStripPointNormals
}
if {[expr $mask & 2] != 0} {
[grid$i GetPointData] SetScalars triangleStripPointScalars
mapper$i SetScalarModeToUsePointData
}
if {[expr $mask & 4] != 0} {
[grid$i GetPointData] SetTCoords triangleStripTCoords
actor$i SetTexture texture
}
if {[expr $mask & 8] != 0} {
[grid$i GetCellData] SetScalars triangleStripCellScalars
mapper$i SetScalarModeToUseCellData
}
if {[expr $mask & 16] != 0} {
[grid$i GetCellData] SetNormals triangleStripCellNormals
}
actor$i AddPosition [expr $j * 2] [expr $k * 2] 0
ren1 AddActor actor$i
incr j
if {$j >= 6} {set j 0; incr k};
incr i
}
}
renWin SetSize 480 480
ren1 SetBackground .7 .3 .1
ren1 ResetCameraClippingRange
renWin Render
# render the image
#
iren AddObserver UserEvent {wm deiconify .vtkInteract}
iren Initialize
wm withdraw .