return to first page linux journal archive
keywordscontents

Listing 3. Code to Display Model and Vector Boundaries

# creation of render windows, etc. snipped
vtkPolyData mesh
vtkFloatPoints points
vtkCellArray cells
vtkFloatVectors vector
vtkHedgeHog hhog	
vtkFloatScalars field
for {set i 1} {$i <= $nverts} {incr i} {
	points InsertPoint $i $xk($i) $yk($i) $zk($i)
}
# loop over points and set vector magnitudes. (snipped)
for {set i 1} {$i <= $nverts} {incr i} {
	field InsertScalar $i $vec($i)
}
[mesh GetPointData] SetScalars field
set srange [[[mesh GetPointData] GetScalars] GetRange]
puts stdout "range of $type: $srange"
# find minimum and maxisum vector magnitude for 
# later colarmap ranging (snipped).
#(max and min cell size calculations snipped)
# set the cells  of the data set.
	    set p1 $i1tab($i)
	    set p2 $i3tab($i)
	    set p3 $i8tab($i)
	    cells InsertNextCell 2
	    cells InsertCellPoint $i
	    cells InsertCellPoint $p1
#	(p2 and p3 cell code snipped)
	}  
}
mesh SetPoints points
mesh SetLines cells
[mesh GetPointData] SetVectors vector
cells Delete
# polydata set which puts panels on all solid surfaces:
vtkPolyData panels
vtkCellArray panelcells
# use the "points" from above"
for {set i $first_cell} {$i <= $last_cell} {incr i} {
#	puts "finding panels for $i"
# snipped code that creates bit-encoded integer 
# which describes the solid panels on cell $i. 
# This integer is stored in the variable $sum.
set sum [expr $ibcl + $ibcb + $ibcf]
switch -exact $sum {
    1 {
	panelcells InsertNextCell 4
	panelcells InsertCellPoint $i
	panelcells InsertCellPoint $p1
	panelcells InsertCellPoint $p8
	panelcells InsertCellPoint $p5
    }
# switches 2 -- 6 snipped
    7 {
	panelcells InsertNextCell 6
	panelcells InsertCellPoint $p7
	panelcells InsertCellPoint $p3
	panelcells InsertCellPoint $p8
	panelcells InsertCellPoint $i
	panelcells InsertCellPoint $p5
	panelcells InsertCellPoint $p1
	panelcells InsertNextCell 4
	panelcells InsertCellPoint $i
	panelcells InsertCellPoint $p1
	panelcells InsertCellPoint $p3
	panelcells InsertCellPoint $p2
    }
  }
}
panels SetPoints points
panels SetStrips panelcells
vtkDataSetMapper mapper
vtkPolyDataMapper panelmapper
panelmapper SetInput panels
vtkActor panelactor
panelactor SetMapper panelmapper
set panelprop [panelactor GetProperty]
$panelprop  SetColor .7 .7 .7
$panelprop SetOpacity .5
hhog SetInput mesh
mapper SetInput [hhog GetOutput]
ren AddActor meshactor
ren AddActor panelactor
[meshactor GetProperty] SetRepresentationToSurface
# render commands snipped.