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.
 
 
 
 
 
 

79 lines
2.3 KiB

# This example shows how to extract a piece of a dataset using an implicit
# function. In this case the implicit function is formed by the boolean
# combination of two ellipsoids.
#
package require vtk
package require vtkinteraction
# Here we create two ellipsoidal implicit functions and boolean them
# together tto form a "cross" shaped implicit function.
vtkQuadric quadric
quadric SetCoefficients .5 1 .2 0 .1 0 0 .2 0 0
vtkSampleFunction sample
sample SetSampleDimensions 50 50 50
sample SetImplicitFunction quadric
sample ComputeNormalsOff
vtkTransform trans
trans Scale 1 .5 .333
vtkSphere sphere
sphere SetRadius 0.25
sphere SetTransform trans
vtkTransform trans2
trans2 Scale .25 .5 1.0
vtkSphere sphere2
sphere2 SetRadius 0.25
sphere2 SetTransform trans2
vtkImplicitBoolean union
union AddFunction sphere
union AddFunction sphere2
union SetOperationType 0;#union
# Here is where it gets interesting. The implicit function is used to
# extract those cells completely inside the function. They are then
# shrunk to help show what was extracted.
vtkExtractGeometry extract
extract SetInputConnection [sample GetOutputPort]
extract SetImplicitFunction union
vtkShrinkFilter shrink
shrink SetInputConnection [extract GetOutputPort]
shrink SetShrinkFactor 0.5
vtkDataSetMapper dataMapper
dataMapper SetInputConnection [shrink GetOutputPort]
vtkActor dataActor
dataActor SetMapper dataMapper
# The outline gives context to the original data.
vtkOutlineFilter outline
outline SetInputConnection [sample GetOutputPort]
vtkPolyDataMapper outlineMapper
outlineMapper SetInputConnection [outline GetOutputPort]
vtkActor outlineActor
outlineActor SetMapper outlineMapper
set outlineProp [outlineActor GetProperty]
eval $outlineProp SetColor 0 0 0
# The usual rendering stuff is created.
vtkRenderer ren1
vtkRenderWindow renWin
renWin AddRenderer ren1
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
# Add the actors to the renderer, set the background and size
#
ren1 AddActor outlineActor
ren1 AddActor dataActor
ren1 SetBackground 1 1 1
renWin SetSize 500 500
ren1 ResetCamera
[ren1 GetActiveCamera] Zoom 1.5
iren Initialize
# render the image
#
iren AddObserver UserEvent {wm deiconify .vtkInteract}
# prevent the tk window from showing up then start the event loop
wm withdraw .