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.
Copyright © 1994 - 2019 Linux Journal. All rights reserved.