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.
 
 
 
 
 
 

89 lines
2.6 KiB

package require vtk
package require vtkinteraction
package require vtktesting
vtkRenderer ren1
vtkRenderWindow renWin
renWin AddRenderer ren1
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
# create implicit function primitives
vtkCone cone
cone SetAngle 20
vtkPlane vertPlane
vertPlane SetOrigin .1 0 0
vertPlane SetNormal -1 0 0
vtkPlane basePlane
basePlane SetOrigin 1.2 0 0
basePlane SetNormal 1 0 0
vtkSphere iceCream
iceCream SetCenter 1.333 0 0
iceCream SetRadius 0.5
vtkSphere bite
bite SetCenter 1.5 0 0.5
bite SetRadius 0.25
# combine primitives to build ice-cream cone
vtkImplicitBoolean theCone
theCone SetOperationTypeToIntersection
theCone AddFunction cone
theCone AddFunction vertPlane
theCone AddFunction basePlane
vtkImplicitBoolean theCream
theCream SetOperationTypeToDifference
theCream AddFunction iceCream
theCream AddFunction bite
# iso-surface to create geometry
vtkSampleFunction theConeSample
theConeSample SetImplicitFunction theCone
theConeSample SetModelBounds -1 1.5 -1.25 1.25 -1.25 1.25
theConeSample SetSampleDimensions 60 60 60
theConeSample ComputeNormalsOff
vtkMarchingContourFilter theConeSurface
theConeSurface SetInputConnection [theConeSample GetOutputPort]
theConeSurface SetValue 0 0.0
vtkPolyDataMapper coneMapper
coneMapper SetInputConnection [theConeSurface GetOutputPort]
coneMapper ScalarVisibilityOff
vtkActor coneActor
coneActor SetMapper coneMapper
eval [coneActor GetProperty] SetColor $chocolate
# iso-surface to create geometry
vtkSampleFunction theCreamSample
theCreamSample SetImplicitFunction theCream
theCreamSample SetModelBounds 0 2.5 -1.25 1.25 -1.25 1.25
theCreamSample SetSampleDimensions 60 60 60
theCreamSample ComputeNormalsOff
vtkMarchingContourFilter theCreamSurface
theCreamSurface SetInputConnection [theCreamSample GetOutputPort]
theCreamSurface SetValue 0 0.0
vtkPolyDataMapper creamMapper
creamMapper SetInputConnection [theCreamSurface GetOutputPort]
creamMapper ScalarVisibilityOff
vtkActor creamActor
creamActor SetMapper creamMapper
eval [creamActor GetProperty] SetColor $mint
# Add the actors to the renderer, set the background and size
#
ren1 AddActor coneActor
ren1 AddActor creamActor
ren1 SetBackground 1 1 1
renWin SetSize 250 250
ren1 ResetCamera
[ren1 GetActiveCamera] Roll 90
[ren1 GetActiveCamera] Dolly 1.5
ren1 ResetCameraClippingRange
iren Initialize
# render the image
#
iren AddObserver UserEvent {wm deiconify .vtkInteract}
renWin Render
# prevent the tk window from showing up then start the event loop
wm withdraw .