1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
package require vtk
package require vtkinteraction
# Create the RenderWindow, Renderer and interactive renderer
#
vtkRenderer ren1
vtkRenderWindow renWin
renWin AddRenderer ren1
# make sure to have the same regression image on all platforms.
renWin SetMultiSamples 0
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
# Force a starting random value
vtkMath raMath
raMath RandomSeed 6
# Generate random attributes on a plane
#
vtkPlaneSource ps
ps SetXResolution 10
ps SetYResolution 10
vtkRandomAttributeGenerator ag
ag SetInputConnection [ps GetOutputPort]
ag GenerateAllDataOn
vtkSphereSource ss
ss SetPhiResolution 16
ss SetThetaResolution 32
vtkTensorGlyph tg
tg SetInputConnection [ag GetOutputPort]
tg SetSourceConnection [ss GetOutputPort]
tg SetScaleFactor 0.1
tg SetMaxScaleFactor 10
tg ClampScalingOn
vtkPolyDataNormals n
n SetInputConnection [tg GetOutputPort]
vtkConeSource cs
cs SetResolution 6
vtkGlyph3D glyph
glyph SetInputConnection [ag GetOutputPort]
glyph SetSourceConnection [cs GetOutputPort]
glyph SetScaleModeToDataScalingOff
glyph SetScaleFactor 0.05
vtkPolyDataMapper pdm
pdm SetInputConnection [n GetOutputPort]
#pdm SetInputConnection [glyph GetOutputPort]
vtkActor a
a SetMapper pdm
vtkPolyDataMapper pm
pm SetInputConnection [ps GetOutputPort]
vtkActor pa
pa SetMapper pm
ren1 AddActor a
ren1 AddActor pa
ren1 SetBackground 0 0 0
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 .
|