/usr/share/vtk/VolumeRendering/Tcl/IntermixedUnstructuredGrid.tcl is in vtk-examples 5.8.0-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | # This is an example of volume rendering unstructured grid data.
# Two data sets are loaded (both vtkImageData) - one is converted
# to a set of tetrahedra (through the use of a vtkThreshold filter
# and a vtkDataSetTriangleFilter) and the other is contoured.
# The geometry and the volume rendering are then displayed together.
package require vtk
package require vtkinteraction
# Create the standard renderer, render window
# and interactor
vtkRenderer ren1
vtkRenderWindow renWin
renWin AddRenderer ren1
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
iren SetDesiredUpdateRate 3
# Create the reader for the data
# This is the data the will be volume rendered
vtkStructuredPointsReader reader
reader SetFileName "$VTK_DATA_ROOT/Data/ironProt.vtk"
# create a reader for the other data that will
# be contoured and displayed as a polygonal mesh
vtkSLCReader reader2
reader2 SetFileName "$VTK_DATA_ROOT/Data/neghip.slc"
# convert from vtkImageData to vtkUnstructuredGrid, remove
# any cells where all values are below 80
vtkThreshold thresh
thresh ThresholdByUpper 80
thresh AllScalarsOff
thresh SetInputConnection [reader GetOutputPort]
# make sure we have only tetrahedra
vtkDataSetTriangleFilter trifilter
trifilter SetInputConnection [thresh GetOutputPort]
# Create transfer mapping scalar value to opacity
vtkPiecewiseFunction opacityTransferFunction
opacityTransferFunction AddPoint 80 0.0
opacityTransferFunction AddPoint 120 0.2
opacityTransferFunction AddPoint 255 0.2
# Create transfer mapping scalar value to color
vtkColorTransferFunction colorTransferFunction
colorTransferFunction AddRGBPoint 80.0 0.0 0.0 0.0
colorTransferFunction AddRGBPoint 120.0 0.0 0.0 1.0
colorTransferFunction AddRGBPoint 160.0 1.0 0.0 0.0
colorTransferFunction AddRGBPoint 200.0 0.0 1.0 0.0
colorTransferFunction AddRGBPoint 255.0 0.0 1.0 1.0
# The property describes how the data will look
vtkVolumeProperty volumeProperty
volumeProperty SetColor colorTransferFunction
volumeProperty SetScalarOpacity opacityTransferFunction
volumeProperty ShadeOff
volumeProperty SetInterpolationTypeToLinear
# The mapper / ray cast function know how to render the data
vtkUnstructuredGridVolumeRayCastMapper volumeMapper
volumeMapper SetInputConnection [trifilter GetOutputPort]
# The volume holds the mapper and the property and
# can be used to position/orient the volume
vtkVolume volume
volume SetMapper volumeMapper
volume SetProperty volumeProperty
# contour the second dataset
vtkContourFilter contour
contour SetValue 0 80
contour SetInputConnection [reader2 GetOutputPort]
# create a mapper for the polygonal data
vtkPolyDataMapper mapper
mapper SetInputConnection [contour GetOutputPort]
mapper ScalarVisibilityOff
# create an actor for the polygonal data
vtkActor actor
actor SetMapper mapper
ren1 AddViewProp actor
ren1 AddVolume volume
renWin SetSize 300 300
ren1 ResetCamera
[ren1 GetActiveCamera] Azimuth 20.0
[ren1 GetActiveCamera] Elevation 10.0
[ren1 GetActiveCamera] Zoom 1.5
renWin Render
proc TkCheckAbort {} {
set foo [renWin GetEventPending]
if {$foo != 0} {renWin SetAbortRender 1}
}
renWin AddObserver AbortCheckEvent {TkCheckAbort}
iren AddObserver UserEvent {wm deiconify .vtkInteract}
iren Initialize
wm withdraw .
|