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.
80 lines
1.8 KiB
80 lines
1.8 KiB
2 years ago
|
package require vtk
|
||
|
package require vtkinteraction
|
||
|
package require vtktesting
|
||
|
|
||
|
# Create the RenderWindow, Renderer and both Actors
|
||
|
#
|
||
|
vtkRenderer ren1
|
||
|
vtkRenderWindow renWin
|
||
|
renWin AddRenderer ren1
|
||
|
vtkRenderWindowInteractor iren
|
||
|
iren SetRenderWindow renWin
|
||
|
|
||
|
# read data
|
||
|
#
|
||
|
vtkOBJReader wavefront
|
||
|
wavefront SetFileName "$VTK_DATA_ROOT/Data/Viewpoint/cow.obj"
|
||
|
wavefront Update
|
||
|
|
||
|
vtkConeSource cone
|
||
|
cone SetResolution 6
|
||
|
cone SetRadius .1
|
||
|
|
||
|
vtkTransform transform
|
||
|
transform Translate 0.5 0.0 0.0
|
||
|
|
||
|
vtkTransformPolyDataFilter transformF
|
||
|
transformF SetInputConnection [cone GetOutputPort]
|
||
|
transformF SetTransform transform
|
||
|
|
||
|
# we just clean the normals for efficiency (keep down number of cones)
|
||
|
vtkCleanPolyData clean
|
||
|
clean SetInputConnection [wavefront GetOutputPort]
|
||
|
|
||
|
vtkHedgeHog glyph
|
||
|
glyph SetInputConnection [clean GetOutputPort]
|
||
|
glyph SetVectorModeToUseNormal
|
||
|
glyph SetScaleFactor 0.4
|
||
|
|
||
|
vtkPolyDataMapper hairMapper
|
||
|
hairMapper SetInputConnection [glyph GetOutputPort]
|
||
|
|
||
|
vtkActor hair
|
||
|
hair SetMapper hairMapper
|
||
|
|
||
|
vtkPolyDataMapper cowMapper
|
||
|
cowMapper SetInputConnection [wavefront GetOutputPort]
|
||
|
|
||
|
vtkActor cow
|
||
|
cow SetMapper cowMapper
|
||
|
|
||
|
|
||
|
# Add the actors to the renderer, set the background and size
|
||
|
#
|
||
|
ren1 AddActor cow
|
||
|
ren1 AddActor hair
|
||
|
ren1 ResetCamera
|
||
|
[ren1 GetActiveCamera] Dolly 2
|
||
|
[ren1 GetActiveCamera] Azimuth 30
|
||
|
[ren1 GetActiveCamera] Elevation 30
|
||
|
ren1 ResetCameraClippingRange
|
||
|
|
||
|
eval [hair GetProperty] SetDiffuseColor $saddle_brown
|
||
|
eval [hair GetProperty] SetAmbientColor $thistle
|
||
|
eval [hair GetProperty] SetAmbient .3
|
||
|
eval [cow GetProperty] SetDiffuseColor $beige
|
||
|
|
||
|
|
||
|
renWin SetSize 320 240
|
||
|
ren1 SetBackground .1 .2 .4
|
||
|
|
||
|
iren Initialize
|
||
|
renWin Render
|
||
|
|
||
|
# render the image
|
||
|
#
|
||
|
iren AddObserver UserEvent {wm deiconify .vtkInteract}
|
||
|
|
||
|
# prevent the tk window from showing up then start the event loop
|
||
|
wm withdraw .
|