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.
63 lines
1.7 KiB
63 lines
1.7 KiB
# This example shows how to combine data from both the imaging
|
|
# and graphics pipelines. The vtkMergeData filter is used to
|
|
# merge the data from each together.
|
|
|
|
package require vtk
|
|
package require vtkinteraction
|
|
|
|
# Read in an image and compute a luminance value. The image is extracted
|
|
# as a set of polygons (vtkImageDataGeometryFilter). We then will
|
|
# warp the plane using the scalar (luminance) values.
|
|
#
|
|
vtkBMPReader reader
|
|
reader SetFileName $VTK_DATA_ROOT/Data/masonry.bmp
|
|
vtkImageLuminance luminance
|
|
luminance SetInputConnection [reader GetOutputPort]
|
|
vtkImageDataGeometryFilter geometry
|
|
geometry SetInputConnection [luminance GetOutputPort]
|
|
vtkWarpScalar warp
|
|
warp SetInputConnection [geometry GetOutputPort]
|
|
warp SetScaleFactor -0.1
|
|
|
|
# Use vtkMergeFilter to combine the original image with the warped geometry.
|
|
#
|
|
vtkMergeFilter merge
|
|
merge SetGeometryConnection [warp GetOutputPort]
|
|
merge SetScalarsConnection [reader GetOutputPort]
|
|
vtkDataSetMapper mapper
|
|
mapper SetInputConnection [merge GetOutputPort]
|
|
mapper SetScalarRange 0 255
|
|
mapper ImmediateModeRenderingOff
|
|
vtkActor actor
|
|
actor SetMapper mapper
|
|
|
|
# Create renderer stuff
|
|
#
|
|
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 actor
|
|
ren1 ResetCamera
|
|
[ren1 GetActiveCamera] Azimuth 20
|
|
[ren1 GetActiveCamera] Elevation 30
|
|
ren1 SetBackground 0.1 0.2 0.4
|
|
ren1 ResetCameraClippingRange
|
|
|
|
renWin SetSize 250 250
|
|
|
|
# render the image
|
|
#
|
|
iren AddObserver UserEvent {wm deiconify .vtkInteract}
|
|
set cam1 [ren1 GetActiveCamera]
|
|
$cam1 Zoom 1.4
|
|
renWin Render
|
|
|
|
# prevent the tk window from showing up then start the event loop
|
|
wm withdraw .
|
|
|
|
|
|
|