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.
70 lines
2.0 KiB
70 lines
2.0 KiB
# This example demonstrates how to use implicit modelling.
|
|
|
|
# first we load in the standard vtk packages into tcl
|
|
package require vtk
|
|
package require vtkinteraction
|
|
package require vtktesting
|
|
|
|
# Create lines which serve as the "seed" geometry. The lines spell the
|
|
# word "hello".
|
|
#
|
|
vtkPolyDataReader reader
|
|
reader SetFileName "$VTK_DATA_ROOT/Data/hello.vtk"
|
|
vtkPolyDataMapper lineMapper
|
|
lineMapper SetInputConnection [reader GetOutputPort]
|
|
vtkActor lineActor
|
|
lineActor SetMapper lineMapper
|
|
eval [lineActor GetProperty] SetColor $red
|
|
|
|
# Create implicit model with vtkImplicitModeller. This computes a scalar
|
|
# field which is the distance from the generating geometry. The contour
|
|
# filter then extracts the geoemtry at the distance value 0.25 from the
|
|
# generating geometry.
|
|
#
|
|
vtkImplicitModeller imp
|
|
imp SetInputConnection [reader GetOutputPort]
|
|
imp SetSampleDimensions 110 40 20
|
|
imp SetMaximumDistance 0.25
|
|
imp SetModelBounds -1.0 10.0 -1.0 3.0 -1.0 1.0
|
|
vtkContourFilter contour
|
|
contour SetInputConnection [imp GetOutputPort]
|
|
contour SetValue 0 0.25
|
|
vtkPolyDataMapper impMapper
|
|
impMapper SetInputConnection [contour GetOutputPort]
|
|
impMapper ScalarVisibilityOff
|
|
vtkActor impActor;
|
|
impActor SetMapper impMapper
|
|
eval [impActor GetProperty] SetColor $peacock
|
|
[impActor GetProperty] SetOpacity 0.5
|
|
|
|
# Create the usual graphics stuff.
|
|
# Create the RenderWindow, Renderer and both Actors
|
|
#
|
|
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 lineActor
|
|
ren1 AddActor impActor
|
|
ren1 SetBackground 1 1 1
|
|
renWin SetSize 600 250
|
|
|
|
vtkCamera camera
|
|
camera SetClippingRange 1.81325 90.6627
|
|
camera SetFocalPoint 4.5 1 0
|
|
camera SetPosition 4.5 1.0 6.73257
|
|
camera SetViewUp 0 1 0
|
|
camera Zoom 0.8
|
|
ren1 SetActiveCamera camera
|
|
|
|
iren Initialize
|
|
iren AddObserver UserEvent {wm deiconify .vtkInteract}
|
|
|
|
# prevent the tk window from showing up then start the event loop
|
|
wm withdraw .
|
|
|
|
|
|
|