package require vtk package require vtkinteraction vtkLookupTable lut lut SetHueRange 0.6 0 lut SetSaturationRange 1.0 0 lut SetValueRange 0.5 1.0 # Read the data: a height field results vtkDEMReader demReader demReader SetFileName "$VTK_DATA_ROOT/Data/SainteHelens.dem" demReader Update set lo [lindex [[demReader GetOutput] GetScalarRange] 0] set hi [lindex [[demReader GetOutput] GetScalarRange] 1] vtkImageDataGeometryFilter surface surface SetInputConnection [demReader GetOutputPort] vtkWarpScalar warp warp SetInputConnection [surface GetOutputPort] warp SetScaleFactor 1 warp UseNormalOn warp SetNormal 0 0 1 vtkPolyDataNormals normals normals SetInput [warp GetPolyDataOutput] normals SetFeatureAngle 60 normals SplittingOff vtkPolyDataMapper demMapper demMapper SetInputConnection [normals GetOutputPort] eval demMapper SetScalarRange $lo $hi demMapper SetLookupTable lut vtkLODActor demActor demActor SetMapper demMapper # Create some paths vtkPoints pts pts InsertNextPoint 562669 5.1198e+006 1992.77 pts InsertNextPoint 562801 5.11618e+006 2534.97 pts InsertNextPoint 562913 5.11157e+006 1911.1 pts InsertNextPoint 559849 5.11083e+006 1681.34 pts InsertNextPoint 562471 5.11633e+006 2593.57 pts InsertNextPoint 563223 5.11616e+006 2598.31 pts InsertNextPoint 566579 5.11127e+006 1697.83 pts InsertNextPoint 569000 5.11127e+006 1697.83 vtkCellArray lines lines InsertNextCell 3 lines InsertCellPoint 0 lines InsertCellPoint 1 lines InsertCellPoint 2 lines InsertNextCell 5 lines InsertCellPoint 3 lines InsertCellPoint 4 lines InsertCellPoint 5 lines InsertCellPoint 6 lines InsertCellPoint 7 vtkPolyData terrainPaths terrainPaths SetPoints pts terrainPaths SetLines lines vtkProjectedTerrainPath projectedPaths projectedPaths SetInput terrainPaths projectedPaths SetSource [demReader GetOutput] projectedPaths SetHeightOffset 25 projectedPaths SetHeightTolerance 5 projectedPaths SetProjectionModeToNonOccluded projectedPaths SetProjectionModeToHug vtkPolyDataMapper pathMapper pathMapper SetInputConnection [projectedPaths GetOutputPort] vtkActor paths paths SetMapper pathMapper [paths GetProperty] SetColor 1 0 0 # Create the RenderWindow, Renderer and both Actors # vtkRenderer ren1 vtkRenderWindow renWin renWin AddRenderer ren1 vtkRenderWindowInteractor iren iren SetRenderWindow renWin # Add the actors to the renderer, set the background and size # ren1 AddActor demActor ren1 AddActor paths ren1 SetBackground .1 .2 .4 iren AddObserver UserEvent {wm deiconify .vtkInteract} iren SetDesiredUpdateRate 5 [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 wm withdraw .