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
|
package require vtk
package require vtkinteraction
# Create the RenderWindow, Renderer and both Actors
vtkRenderer ren1
vtkRenderWindow renWin
renWin AddRenderer ren1
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
# load in the image
#
vtkTIFFReader pnmReader
pnmReader SetFileName "$VTK_DATA_ROOT/Data/beach.tif"
# "beach.tif" image contains ORIENTATION tag which is
# ORIENTATION_TOPLEFT (row 0 top, col 0 lhs) type. The TIFF
# reader parses this tag and sets the internal TIFF image
# orientation accordingly. To overwrite this orientation with a vtk
# convention of ORIENTATION_BOTLEFT (row 0 bottom, col 0 lhs ), invoke
# SetOrientationType method with parameter value of 4.
pnmReader SetOrientationType 4
vtkImageLuminance lum
lum SetInputConnection [pnmReader GetOutputPort]
vtkImageActor ia
[ia GetMapper] SetInputConnection [lum GetOutputPort]
# Add the actors to the renderer, set the background and size
ren1 AddActor ia
ren1 SetBackground 0.1 0.2 0.4
renWin SetSize 400 400
# render the image
iren AddObserver UserEvent {wm deiconify .vtkInteract}
renWin Render
# switch from greyscale input to RGB to test against an old bug
[ia GetMapper] SetInputConnection [pnmReader GetOutputPort]
set cam1 [ren1 GetActiveCamera]
$cam1 Elevation -30
$cam1 Roll -20
ren1 ResetCameraClippingRange
renWin Render
# prevent the tk window from showing up then start the event loop
wm withdraw .
|