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.
172 lines
5.1 KiB
172 lines
5.1 KiB
# Test the scalar bar actor using a logarithmic lookup table
|
|
#
|
|
package require vtk
|
|
package require vtkinteraction
|
|
|
|
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
|
|
|
|
# Generate hyperstreamlines
|
|
vtkHyperStreamline s1
|
|
s1 SetInputConnection [ptLoad GetOutputPort]
|
|
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
|
|
vtkScalarBarActor scalarBar
|
|
scalarBar SetLookupTable lut
|
|
scalarBar SetTitle "Stress"
|
|
[scalarBar GetPositionCoordinate] SetCoordinateSystemToNormalizedViewport
|
|
[scalarBar GetPositionCoordinate] SetValue 0.1 0.05
|
|
scalarBar SetOrientationToVertical
|
|
scalarBar SetWidth 0.1
|
|
scalarBar SetHeight 0.9
|
|
scalarBar SetPosition 0.01 0.1
|
|
scalarBar SetLabelFormat "%-#6.3f"
|
|
[scalarBar GetLabelTextProperty] SetColor 1 0 0
|
|
[scalarBar GetTitleTextProperty] SetColor 1 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 SetInputConnection [ptLoad GetOutputPort]
|
|
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 [[ptLoad GetOutput] GetScalarRange]
|
|
vtkActor s2Actor
|
|
s2Actor SetMapper s2Mapper
|
|
|
|
vtkHyperStreamline s3
|
|
s3 SetInputConnection [ptLoad GetOutputPort]
|
|
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 [[ptLoad GetOutput] GetScalarRange]
|
|
vtkActor s3Actor
|
|
s3Actor SetMapper s3Mapper
|
|
|
|
vtkHyperStreamline s4
|
|
s4 SetInputConnection [ptLoad GetOutputPort]
|
|
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 [[ptLoad GetOutput] GetScalarRange]
|
|
vtkActor s4Actor
|
|
s4Actor SetMapper s4Mapper
|
|
|
|
# plane for context
|
|
#
|
|
vtkImageDataGeometryFilter g
|
|
g SetInputConnection [ptLoad GetOutputPort]
|
|
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 SetInputConnection [ptLoad GetOutputPort]
|
|
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
|
|
|
|
# Create the rendering infrastructure
|
|
#
|
|
vtkRenderer ren1
|
|
vtkRenderWindow renWin
|
|
renWin AddRenderer ren1
|
|
vtkRenderWindowInteractor iren
|
|
iren SetRenderWindow renWin
|
|
|
|
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 AddActor2D scalarBar
|
|
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 .
|
|
|