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.
95 lines
2.3 KiB
95 lines
2.3 KiB
package require vtk
|
|
package require vtkinteraction
|
|
|
|
vtkImageGaussianSource gauss
|
|
gauss SetWholeExtent 0 30 0 30 0 2
|
|
gauss SetCenter 18 12 0
|
|
gauss SetMaximum 1.0
|
|
gauss SetStandardDeviation 6.0
|
|
gauss Update
|
|
|
|
vtkBranchExtentTranslator translator
|
|
translator SetOriginalSource [gauss GetOutput]
|
|
[gauss GetOutput] SetExtentTranslator translator
|
|
|
|
vtkImageClip clip1
|
|
clip1 SetOutputWholeExtent 7 28 0 15 1 1
|
|
clip1 SetInputConnection [gauss GetOutputPort]
|
|
vtkDataSetSurfaceFilter surf1
|
|
surf1 SetInputConnection [clip1 GetOutputPort]
|
|
vtkTriangleFilter tf1
|
|
tf1 SetInputConnection [surf1 GetOutputPort]
|
|
vtkPolyDataMapper mapper1
|
|
mapper1 SetInputConnection [tf1 GetOutputPort]
|
|
mapper1 SetScalarRange 0 1
|
|
mapper1 SetNumberOfPieces 4
|
|
mapper1 SetPiece 1
|
|
vtkActor actor1
|
|
actor1 SetMapper mapper1
|
|
actor1 SetPosition 0 0 0
|
|
|
|
|
|
|
|
# For coverage, a case where all four sides get clipped by the whole extent.
|
|
vtkImageClip clip2
|
|
clip2 SetOutputWholeExtent 16 18 3 10 0 0
|
|
clip2 SetInputConnection [gauss GetOutputPort]
|
|
vtkDataSetSurfaceFilter surf2
|
|
surf2 SetInputConnection [clip2 GetOutputPort]
|
|
vtkTriangleFilter tf2
|
|
tf2 SetInputConnection [surf2 GetOutputPort]
|
|
vtkPolyDataMapper mapper2
|
|
mapper2 SetInputConnection [tf2 GetOutputPort]
|
|
mapper2 SetScalarRange 0 1
|
|
mapper2 SetNumberOfPieces 4
|
|
mapper2 SetPiece 1
|
|
vtkActor actor2
|
|
actor2 SetMapper mapper2
|
|
actor2 SetPosition 15 0 0
|
|
|
|
|
|
|
|
# nothing in intersection (empty case)
|
|
vtkImageClip clip3
|
|
clip3 SetOutputWholeExtent 1 10 0 15 0 2
|
|
clip3 SetInputConnection [gauss GetOutputPort]
|
|
vtkDataSetSurfaceFilter surf3
|
|
surf3 SetInputConnection [clip3 GetOutputPort]
|
|
vtkTriangleFilter tf3
|
|
tf3 SetInputConnection [surf3 GetOutputPort]
|
|
vtkPolyDataMapper mapper3
|
|
mapper3 SetInputConnection [tf3 GetOutputPort]
|
|
mapper3 SetScalarRange 0 1
|
|
mapper3 SetNumberOfPieces 4
|
|
mapper3 SetPiece 1
|
|
vtkActor actor3
|
|
actor3 SetMapper mapper3
|
|
actor3 SetPosition 30 0 0
|
|
|
|
|
|
|
|
vtkRenderer ren
|
|
ren AddActor actor1
|
|
ren AddActor actor2
|
|
ren AddActor actor3
|
|
|
|
vtkRenderWindow renWin
|
|
renWin AddRenderer ren
|
|
|
|
#set cam [ren GetActiveCamera]
|
|
#ren ResetCamera
|
|
|
|
|
|
|
|
vtkRenderWindowInteractor iren
|
|
iren SetRenderWindow renWin
|
|
iren Initialize
|
|
iren AddObserver UserEvent {wm deiconify .vtkInteract}
|
|
|
|
wm withdraw .
|
|
|
|
|
|
renWin Render
|
|
|
|
# break loop to avoid a memory leak.
|
|
translator SetOriginalSource {}
|
|
|