# This is a simple volume rendering example that # uses a vtkVolumeRayCast mapper 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 # Create the reader for the data vtkStructuredPointsReader reader reader SetFileName "$VTK_DATA_ROOT/Data/ironProt.vtk" # Create transfer mapping scalar value to opacity vtkPiecewiseFunction opacityTransferFunction opacityTransferFunction AddPoint 20 0.0 opacityTransferFunction AddPoint 255 0.2 # Create transfer mapping scalar value to color vtkColorTransferFunction colorTransferFunction colorTransferFunction AddRGBPoint 0.0 0.0 0.0 0.0 colorTransferFunction AddRGBPoint 64.0 1.0 0.0 0.0 colorTransferFunction AddRGBPoint 128.0 0.0 0.0 1.0 colorTransferFunction AddRGBPoint 192.0 0.0 1.0 0.0 colorTransferFunction AddRGBPoint 255.0 0.0 0.2 0.0 # The property describes how the data will look vtkVolumeProperty volumeProperty volumeProperty SetColor colorTransferFunction volumeProperty SetScalarOpacity opacityTransferFunction # The mapper knows how to render the data vtkVolumeTextureMapper2D volumeMapper volumeMapper SetInputConnection [reader 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 ren1 AddVolume volume 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 .