Cloned library of VTK-5.0.0 with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
2.3 KiB

2 years ago
package require vtk
# Simple volume rendering example.
vtkSLCReader reader
reader SetFileName "$VTK_DATA_ROOT/Data/sphere.slc"
reader Update
# Create transfer functions for opacity and color
vtkPiecewiseFunction opacityTransferFunction
opacityTransferFunction AddPoint 20 0.0
opacityTransferFunction AddPoint 255 1.0
vtkColorTransferFunction colorTransferFunction
colorTransferFunction AddHSVPoint 0.0 0.01 1.0 1.0
colorTransferFunction AddHSVPoint 127.5 0.50 1.0 1.0
colorTransferFunction AddHSVPoint 255.0 0.99 1.0 1.0
colorTransferFunction SetColorSpaceToHSV
# Create properties, mappers, volume actors, and ray cast function
vtkVolumeProperty volumeProperty
volumeProperty SetColor colorTransferFunction
volumeProperty SetScalarOpacity opacityTransferFunction
volumeProperty SetInterpolationTypeToLinear
vtkVolumeTextureMapper2D volumeMapper
volumeMapper SetInputConnection [reader GetOutputPort]
vtkSphereSource sphereSource
sphereSource SetCenter 25 25 25
sphereSource SetRadius 30
sphereSource SetThetaResolution 15
sphereSource SetPhiResolution 15
vtkPolyDataMapper geoMapper
geoMapper SetInputConnection [sphereSource GetOutputPort]
vtkLODProp3D lod
set geoID [lod AddLOD geoMapper 0.0]
set volID [lod AddLOD volumeMapper volumeProperty 0.0]
vtkProperty property
property SetColor 1 0 0
lod SetLODProperty $geoID property
# Okay now the graphics stuff
vtkRenderer ren1
vtkRenderWindow renWin
renWin AddRenderer ren1
renWin SetSize 256 256
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
[ren1 GetCullers] InitTraversal
set culler [[ren1 GetCullers] GetNextItem]
$culler SetSortingStyleToBackToFront
ren1 AddViewProp lod
# render a few times
renWin Render
renWin Render
renWin Render
# disable the geometry and render
lod DisableLOD $geoID
renWin Render
# disable the volume and render
lod EnableLOD $geoID
lod DisableLOD $volID
renWin Render
# chose the geometry to render
lod EnableLOD $volID
lod AutomaticLODSelectionOff
lod SetSelectedLODID $geoID
renWin Render
# choose the volume
lod SetSelectedLODID $volID
renWin Render
# this should be the volID - remove it
set id [lod GetLastRenderedLODID]
lod RemoveLOD $id
lod AutomaticLODSelectionOn
renWin Render
wm withdraw .
iren Initialize