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
|
package require vtk
# Generate texture coordinates on a "random" sphere.
# create some random points in a sphere
#
vtkPointSource sphere
sphere SetNumberOfPoints 25
# triangulate the points
#
vtkDelaunay3D del1
del1 SetInputConnection [sphere GetOutputPort]
del1 SetTolerance 0.01
# texture map the sphere (using cylindrical coordinate system)
#
vtkTextureMapToCylinder tmapper
tmapper SetInputConnection [del1 GetOutputPort]
tmapper PreventSeamOn
vtkTransformTextureCoords xform
xform SetInputConnection [tmapper GetOutputPort]
xform SetScale 4 4 1
vtkDataSetMapper mapper
mapper SetInputConnection [xform GetOutputPort]
# load in the texture map and assign to actor
#
vtkBMPReader bmpReader
bmpReader SetFileName "$VTK_DATA_ROOT/Data/masonry.bmp"
vtkTexture atext
atext SetInputConnection [bmpReader GetOutputPort]
atext InterpolateOn
vtkActor triangulation
triangulation SetMapper mapper
triangulation SetTexture atext
# Create rendering stuff
vtkRenderer ren1
vtkRenderWindow renWin
renWin AddRenderer ren1
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
# Add the actors to the renderer, set the background and size
#
ren1 AddActor triangulation
ren1 SetBackground 1 1 1
renWin SetSize 300 300
renWin Render
# render the image
#
renWin Render
# prevent the tk window from showing up then start the event loop
wm withdraw .
|