return to first page linux journal archive
keywordscontents

Listing 2. Code to Connect Nodes to Build Mesh

vtkRenderWindow renwin
vtkRenderer ren
vtkRenderWindowInteractor iren
vtkPolyData mesh
vtkFloatPoints points
vtkCellArray cells
points InsertPoint 0 0 0 0
for {set i 1} {$i <= $nverts} {incr i} {
 points InsertPoint $i $xk($i) $yk($i) $zk($i)
}
for {set i [expr $ifirst]} {$i <= $nverts} \
	{incr i} {
 if {$fk($i) > 0} {
    set p1 $i1tab($i)
    set p2 $i3tab($i)
    set p3 $i8tab($i)
   set len [expr hypot($xk($p1)-$xk($i),\
   hypot($zk($p1)-$zk($i),$yk($p1)-$yk($i)))]
   if {$len < $minlen} {set minlen $len; \
    set mini $i}
# (do for p2 and p3) (snipped)
   if {$len < $minlen} {set minlen $len;\
    set mini $i}
    cells InsertNextCell 2
    cells InsertCellPoint $i
    cells InsertCellPoint $p1
    cells InsertNextCell 2
    cells InsertCellPoint $i
    cells InsertCellPoint $p2
    cells InsertNextCell 2
    cells InsertCellPoint $i
    cells InsertCellPoint $p3
 }
}
mesh SetPoints points
mesh SetLines cells	
points Delete
cells Delete
vtkPolyDataMapper mapper
mapper SetInput mesh
vtkSphereSource sphere
eval sphere SetCenter [mesh GetPoint $mini]
sphere SetRadius 1.0
vtkPolyDataMapper spheremap
spheremap SetInput [sphere GetOutput]
vtkActor sphact
sphact SetMapper spheremap
vtkLODActor meshactor
meshactor SetMapper mapper
ren AddActor sphact
ren AddActor meshactor    
renwin AddRenderer ren
iren SetRenderWindow renwin
iren Initialize