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.
 
 
 
 
 
 

186 lines
4.9 KiB

package require vtk
package require vtkinteraction
# Create the RenderWindow, Renderer and interactive renderer
#
vtkRenderer ren1
vtkRenderWindow renWin
renWin AddRenderer ren1
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
set VTK_INTEGRATE_BOTH_DIRECTIONS 2
#
# generate tensors
vtkPointLoad ptLoad
ptLoad SetLoadValue 100.0
ptLoad SetSampleDimensions 20 20 20
ptLoad ComputeEffectiveStressOn
ptLoad SetModelBounds -10 10 -10 10 -10 10
#
# If the current directory is writable, then test the witers
#
if {[catch {set channel [open "test.tmp" "w"]}] == 0 } {
close $channel
file delete -force "test.tmp"
vtkDataSetWriter wSP
wSP SetInputConnection [ptLoad GetOutputPort]
wSP SetFileName "wSP.vtk"
wSP SetTensorsName "pointload"
wSP SetScalarsName "effective_stress"
wSP Write
vtkDataSetReader rSP
rSP SetFileName "wSP.vtk"
rSP SetTensorsName "pointload"
rSP SetScalarsName "effective_stress"
rSP Update
set input [rSP GetOutput]
file delete -force "wSP.vtk"
} else {
set input [ptLoad GetOutput]
}
# Generate hyperstreamlines
vtkHyperStreamline s1
s1 SetInput $input
s1 SetStartPosition 9 9 -9
s1 IntegrateMinorEigenvector
s1 SetMaximumPropagationDistance 18.0
s1 SetIntegrationStepLength 0.1
s1 SetStepLength 0.01
s1 SetRadius 0.25
s1 SetNumberOfSides 18
s1 SetIntegrationDirection $VTK_INTEGRATE_BOTH_DIRECTIONS
s1 Update
# Map hyperstreamlines
vtkLogLookupTable lut
lut SetHueRange .6667 0.0
vtkPolyDataMapper s1Mapper
s1Mapper SetInputConnection [s1 GetOutputPort]
s1Mapper SetLookupTable lut
ptLoad Update;#force update for scalar range
eval s1Mapper SetScalarRange [[ptLoad GetOutput] GetScalarRange]
vtkActor s1Actor
s1Actor SetMapper s1Mapper
vtkHyperStreamline s2
s2 SetInput $input
s2 SetStartPosition -9 -9 -9
s2 IntegrateMinorEigenvector
s2 SetMaximumPropagationDistance 18.0
s2 SetIntegrationStepLength 0.1
s2 SetStepLength 0.01
s2 SetRadius 0.25
s2 SetNumberOfSides 18
s2 SetIntegrationDirection $VTK_INTEGRATE_BOTH_DIRECTIONS
s2 Update
vtkPolyDataMapper s2Mapper
s2Mapper SetInputConnection [s2 GetOutputPort]
s2Mapper SetLookupTable lut
eval s2Mapper SetScalarRange [$input GetScalarRange]
vtkActor s2Actor
s2Actor SetMapper s2Mapper
vtkHyperStreamline s3
s3 SetInput $input
s3 SetStartPosition 9 -9 -9
s3 IntegrateMinorEigenvector
s3 SetMaximumPropagationDistance 18.0
s3 SetIntegrationStepLength 0.1
s3 SetStepLength 0.01
s3 SetRadius 0.25
s3 SetNumberOfSides 18
s3 SetIntegrationDirection $VTK_INTEGRATE_BOTH_DIRECTIONS
s3 Update
vtkPolyDataMapper s3Mapper
s3Mapper SetInputConnection [s3 GetOutputPort]
s3Mapper SetLookupTable lut
eval s3Mapper SetScalarRange [$input GetScalarRange]
vtkActor s3Actor
s3Actor SetMapper s3Mapper
vtkHyperStreamline s4
s4 SetInput $input
s4 SetStartPosition -9 9 -9
s4 IntegrateMinorEigenvector
s4 SetMaximumPropagationDistance 18.0
s4 SetIntegrationStepLength 0.1
s4 SetStepLength 0.01
s4 SetRadius 0.25
s4 SetNumberOfSides 18
s4 SetIntegrationDirection $VTK_INTEGRATE_BOTH_DIRECTIONS
s4 Update
vtkPolyDataMapper s4Mapper
s4Mapper SetInputConnection [s4 GetOutputPort]
s4Mapper SetLookupTable lut
eval s4Mapper SetScalarRange [$input GetScalarRange]
vtkActor s4Actor
s4Actor SetMapper s4Mapper
# plane for context
#
vtkImageDataGeometryFilter g
g SetInput $input
g SetExtent 0 100 0 100 0 0
g Update;#for scalar range
vtkPolyDataMapper gm
gm SetInputConnection [g GetOutputPort]
eval gm SetScalarRange [[g GetOutput] GetScalarRange]
vtkActor ga
ga SetMapper gm
# Create outline around data
#
vtkOutlineFilter outline
outline SetInput $input
vtkPolyDataMapper outlineMapper
outlineMapper SetInputConnection [outline GetOutputPort]
vtkActor outlineActor
outlineActor SetMapper outlineMapper
eval [outlineActor GetProperty] SetColor 0 0 0
# Create cone indicating application of load
#
vtkConeSource coneSrc
coneSrc SetRadius .5
coneSrc SetHeight 2
vtkPolyDataMapper coneMap
coneMap SetInputConnection [coneSrc GetOutputPort]
vtkActor coneActor
coneActor SetMapper coneMap;
coneActor SetPosition 0 0 11
coneActor RotateY 90
eval [coneActor GetProperty] SetColor 1 0 0
vtkCamera camera
camera SetFocalPoint 0.113766 -1.13665 -1.01919
camera SetPosition -29.4886 -63.1488 26.5807
camera SetViewAngle 24.4617
camera SetViewUp 0.17138 0.331163 0.927879
camera SetClippingRange 1 100
ren1 AddActor s1Actor
ren1 AddActor s2Actor
ren1 AddActor s3Actor
ren1 AddActor s4Actor
ren1 AddActor outlineActor
ren1 AddActor coneActor
ren1 AddActor ga
ren1 SetBackground 1.0 1.0 1.0
ren1 SetActiveCamera camera
renWin SetSize 300 300
renWin Render
iren AddObserver UserEvent {wm deiconify .vtkInteract}
# prevent the tk window from showing up then start the event loop
wm withdraw .