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.
71 lines
2.0 KiB
71 lines
2.0 KiB
2 years ago
|
# 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 .
|
||
|
|
||
|
|