# This example demonstrates the use of vtkSTLReader to load data into VTK from
# a file.  This example also uses vtkLODActor which changes its graphical
# representation of the data to maintain interactive performance.

#
# First we include the VTK Tcl packages which will make available
# all of the vtk commands to Tcl
#
package require vtk
package require vtkinteraction

# Create the reader and read a data file.  Connect the mapper and actor.
vtkSTLReader sr
    sr SetFileName $VTK_DATA_ROOT/Data/laserbeam.stl
vtkSTLReader sr2
    sr2 SetFileName $VTK_DATA_ROOT/Data/headhousing.stl
vtkSTLReader sr3
    sr3 SetFileName $VTK_DATA_ROOT/Data/dome.stl

vtkPolyDataMapper stlMapper
    stlMapper SetInput [sr GetOutput]

vtkPolyDataMapper stlMapper2
    stlMapper2 SetInput [sr2 GetOutput]

vtkPolyDataMapper stlMapper3
    stlMapper3 SetInput [sr3 GetOutput]

vtkLODActor stlActor
    stlActor SetMapper stlMapper

vtkLODActor stlActor2
    stlActor2 SetMapper stlMapper2

vtkLODActor stlActor3
    stlActor3 SetMapper stlMapper3

# Create the Renderer, RenderWindow, and RenderWindowInteractor
#
vtkRenderer ren1
vtkRenderWindow renWin
    renWin AddRenderer ren1
vtkRenderWindowInteractor iren
    iren SetRenderWindow renWin

# Add the actors to the render; set the background and size
#
ren1 AddActor stlActor
ren1 AddActor stlActor2
ren1 AddActor stlActor3
ren1 SetBackground 0.1 0.2 0.4
renWin SetSize 500 500

# Zoom in closer
set cam1 [ren1 GetActiveCamera]
$cam1 Zoom 1.4

# Set the user method (bound to key 'u')
iren AddObserver UserEvent {wm deiconify .vtkInteract}
iren Initialize

# Withdraw the default tk window
wm withdraw .
