Listing 1. Code to Place Spherical Glyphs at Each Data Point
#Create polygonal object to be used as a glyph
vtkSphereSource sphere
#Create the glyph object
vtkGlyph3D glyphs
#Create the mapper for the glyphs
vtkPolyDataMapper glMapper
#Create the glyph actor
vtkActor glActor
#Create objects for position and scalar data
vtkFloatPoints points
vtkFloatScalars values
for {set i 0} {$i <$npoints} {incr i} {
#Populate the storage objects
points InsertPoint $i $xpos($i) $ypos($i)\
$zpos($i)
values InsertScalar $i $rad($i)
#Create polygonal object for points & scalars
vtkPolyData pointset
#Associate the points and scalars with the
#PolyData set (the polydata now holds
#the point and scalar data internally and
#does not look it up from the points or
#values objects
pointset SetPoints points
[pointset GetPointData] SetScalars values
#Delete these objects to clear memory
points Delete
values Delete
#set the attributes of the spherical glyphs
sphere SetPhiResolution 2
sphere SetThetaResolution 2
sphere SetReleaseDataFlag 1
#Set the attributes of the glyph objects
glyphs ScalingOn
glyphs SetScaleModeToScaleByScalar
#Set the mapper attributes
glMapper ScalarVisibilityOff
#Build the pipeline:
glyphs SetSource [sphere GetOutput]
glyphs SetInput pointset
#The glyphs need position and geometry
information (two inputs)
glMapper SetInput [glyphs GetOutput]
glActor SetMapper glMapper
#Create a renderer
vtkRenderer ren
#Create a window to render in
vtkRenderWindow renWin
#Create object to allow dynamic interaction
#with the render window
vtkRenderWindowInteractor iren
#Add the renderer to the render window
renWin AddRenderer ren
#Associate the interactor with render window
iren SetRenderWindow renWin
#Add the glyph actor to the scene
ren AddActor glActor
#start the visualziation
iren Initialize