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.

94 lines
2.4 KiB

2 years ago
package require vtk
package require vtkinteraction
set Scale 5
vtkLookupTable lut
lut SetHueRange 0.6 0
lut SetSaturationRange 1.0 0
lut SetValueRange 0.5 1.0
vtkDEMReader demModel
demModel SetFileName $VTK_DATA_ROOT/Data/SainteHelens.dem
demModel Update
demModel Print
set lo [expr $Scale * [lindex [demModel GetElevationBounds] 0]]
set hi [expr $Scale * [lindex [demModel GetElevationBounds] 1]]
vtkLODActor demActor
# create a pipeline for each lod mapper
vtkImageShrink3D shrink16
shrink16 SetShrinkFactors 16 16 1
shrink16 SetInputConnection [demModel GetOutputPort]
shrink16 AveragingOn
vtkImageDataGeometryFilter geom16
geom16 SetInputConnection [shrink16 GetOutputPort]
geom16 ReleaseDataFlagOn
vtkWarpScalar warp16
warp16 SetInputConnection [geom16 GetOutputPort]
warp16 SetNormal 0 0 1
warp16 UseNormalOn
warp16 SetScaleFactor $Scale
warp16 ReleaseDataFlagOn
vtkElevationFilter elevation16
elevation16 SetInputConnection [warp16 GetOutputPort]
elevation16 SetLowPoint 0 0 $lo
elevation16 SetHighPoint 0 0 $hi
eval elevation16 SetScalarRange $lo $hi
elevation16 ReleaseDataFlagOn
vtkPolyDataNormals normals16
normals16 SetInput [elevation16 GetPolyDataOutput]
normals16 SetFeatureAngle 60
normals16 ConsistencyOff
normals16 SplittingOff
normals16 ReleaseDataFlagOn
vtkPolyDataMapper demMapper16
demMapper16 SetInputConnection [normals16 GetOutputPort]
eval demMapper16 SetScalarRange $lo $hi
demMapper16 SetLookupTable lut
demMapper16 ImmediateModeRenderingOn
demMapper16 Update
demActor AddLODMapper demMapper16
# Create the RenderWindow, Renderer and both Actors
#
vtkRenderer ren1
vtkRenderWindow renWin
renWin AddRenderer ren1
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
vtkInteractorStyleTerrain t
iren SetInteractorStyle t
# Add the actors to the renderer, set the background and size
#
ren1 AddActor demActor
ren1 SetBackground .4 .4 .4
iren AddObserver UserEvent {wm deiconify .vtkInteract}
iren SetDesiredUpdateRate 1
wm withdraw .
proc TkCheckAbort {} {
set foo [renWin GetEventPending]
if {$foo != 0} {renWin SetAbortRender 1}
}
renWin AddObserver AbortCheckEvent {TkCheckAbort}
[ren1 GetActiveCamera] SetViewUp 0 0 1
[ren1 GetActiveCamera] SetPosition -99900 -21354 131801
[ren1 GetActiveCamera] SetFocalPoint 41461 41461 2815
ren1 ResetCamera
[ren1 GetActiveCamera] Dolly 1.2
ren1 ResetCameraClippingRange
renWin Render