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.
98 lines
2.6 KiB
98 lines
2.6 KiB
2 years ago
|
package require vtk
|
||
|
package require vtkinteraction
|
||
|
|
||
|
# create tensor ellipsoids
|
||
|
# Create the RenderWindow, Renderer and interactive renderer
|
||
|
#
|
||
|
vtkRenderer ren1
|
||
|
vtkRenderWindow renWin
|
||
|
renWin AddRenderer ren1
|
||
|
vtkRenderWindowInteractor iren
|
||
|
iren SetRenderWindow renWin
|
||
|
|
||
|
#
|
||
|
# Create tensor ellipsoids
|
||
|
#
|
||
|
# generate tensors
|
||
|
vtkPointLoad ptLoad
|
||
|
ptLoad SetLoadValue 100.0
|
||
|
ptLoad SetSampleDimensions 6 6 6
|
||
|
ptLoad ComputeEffectiveStressOn
|
||
|
ptLoad SetModelBounds -10 10 -10 10 -10 10
|
||
|
|
||
|
# extract plane of data
|
||
|
vtkImageDataGeometryFilter plane
|
||
|
plane SetInputConnection [ptLoad GetOutputPort]
|
||
|
plane SetExtent 2 2 0 99 0 99
|
||
|
|
||
|
# Generate ellipsoids
|
||
|
vtkSphereSource sphere
|
||
|
sphere SetThetaResolution 8
|
||
|
sphere SetPhiResolution 8
|
||
|
vtkTensorGlyph ellipsoids
|
||
|
ellipsoids SetInputConnection [ptLoad GetOutputPort]
|
||
|
ellipsoids SetSourceConnection [sphere GetOutputPort]
|
||
|
ellipsoids SetScaleFactor 10
|
||
|
ellipsoids ClampScalingOn
|
||
|
|
||
|
vtkPolyDataNormals ellipNormals
|
||
|
ellipNormals SetInputConnection [ellipsoids GetOutputPort]
|
||
|
|
||
|
# Map contour
|
||
|
vtkLogLookupTable lut
|
||
|
lut SetHueRange .6667 0.0
|
||
|
vtkPolyDataMapper ellipMapper
|
||
|
ellipMapper SetInputConnection [ellipNormals GetOutputPort]
|
||
|
ellipMapper SetLookupTable lut
|
||
|
plane Update;#force update for scalar range
|
||
|
eval ellipMapper SetScalarRange [[plane GetOutput] GetScalarRange]
|
||
|
|
||
|
vtkActor ellipActor
|
||
|
ellipActor SetMapper ellipMapper
|
||
|
#
|
||
|
# 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
|
||
|
|
||
|
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 ellipActor
|
||
|
ren1 AddActor outlineActor
|
||
|
ren1 AddActor coneActor
|
||
|
ren1 SetBackground 1.0 1.0 1.0
|
||
|
ren1 SetActiveCamera camera
|
||
|
|
||
|
renWin SetSize 400 400
|
||
|
renWin Render
|
||
|
iren AddObserver UserEvent {wm deiconify .vtkInteract}
|
||
|
|
||
|
# prevent the tk window from showing up then start the event loop
|
||
|
wm withdraw .
|