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.
 
 
 
 
 
 

110 lines
3.0 KiB

package require vtk
package require vtkinteraction
# Create the RenderWindow, Renderer and both Actors
#
vtkRenderer ren1
vtkRenderWindow renWin
renWin AddRenderer ren1
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
vtkConeSource cone
cone SetResolution 50
vtkSphereSource sphere
sphere SetPhiResolution 50
sphere SetThetaResolution 50
vtkCubeSource cube
cube SetXLength 1
cube SetYLength 1
cube SetZLength 1
vtkPolyDataMapper sphereMapper
sphereMapper SetInputConnection [sphere GetOutputPort]
sphereMapper GlobalImmediateModeRenderingOn
vtkActor sphereActor
sphereActor SetMapper sphereMapper
[sphereActor GetProperty] SetDiffuseColor 1 .2 .4
vtkPolyDataMapper coneMapper
coneMapper SetInputConnection [cone GetOutputPort]
coneMapper GlobalImmediateModeRenderingOn
vtkActor coneActor
coneActor SetMapper coneMapper
[coneActor GetProperty] SetDiffuseColor .2 .4 1
vtkPolyDataMapper cubeMapper
cubeMapper SetInputConnection [cube GetOutputPort]
cubeMapper GlobalImmediateModeRenderingOn
vtkActor cubeActor
cubeActor SetMapper cubeMapper
[cubeActor GetProperty] SetDiffuseColor .2 1 .4
#Add the actors to the renderer, set the background and size
#
sphereActor SetPosition -5 0 0
ren1 AddActor sphereActor
coneActor SetPosition 0 0 0
ren1 AddActor coneActor
coneActor SetPosition 5 0 0
ren1 AddActor cubeActor
proc MakeText { primitive } {
vtkTriangleFilter ${primitive}TriangleFilter
${primitive}TriangleFilter SetInputConnection [${primitive} GetOutputPort]
vtkMassProperties ${primitive}Mass
${primitive}Mass SetInputConnection [${primitive}TriangleFilter GetOutputPort]
set summary [${primitive}Mass Print]
set startSum [string first " VolumeX" $summary]
set endSum [string length $summary]
vtkVectorText ${primitive}Text
${primitive}Text SetText [string range $summary $startSum $endSum]
vtkPolyDataMapper ${primitive}TextMapper
${primitive}TextMapper SetInputConnection [${primitive}Text GetOutputPort]
vtkActor ${primitive}TextActor
${primitive}TextActor SetMapper ${primitive}TextMapper
${primitive}TextActor SetScale .2 .2 .2
return ${primitive}TextActor
}
ren1 AddActor [MakeText sphere]
ren1 AddActor [MakeText cube]
ren1 AddActor [MakeText cone]
eval sphereTextActor SetPosition [sphereActor GetPosition]
sphereTextActor AddPosition -2 -1 0
eval cubeTextActor SetPosition [cubeActor GetPosition]
cubeTextActor AddPosition -2 -1 0
eval coneTextActor SetPosition [coneActor GetPosition]
coneTextActor AddPosition -2 -1 0
ren1 SetBackground 0.1 0.2 0.4
renWin SetSize 786 256
# render the image
#
iren AddObserver UserEvent {wm deiconify .vtkInteract}
ren1 ResetCamera
set cam1 [ren1 GetActiveCamera]
$cam1 Dolly 3
ren1 ResetCameraClippingRange
iren Initialize
proc TkCheckAbort {} {
set foo [renWin GetEventPending]
if {$foo != 0} {renWin SetAbortRender 1}
}
renWin AddObserver AbortCheckEvent {TkCheckAbort}
# prevent the tk window from showing up then start the event loop
wm withdraw .