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.
73 lines
2.0 KiB
73 lines
2.0 KiB
package require vtk
|
|
package require vtkinteraction
|
|
|
|
# This example demonstrates the reading of a field and conversion to PolyData
|
|
# The output should be the same as polyEx.tcl.
|
|
|
|
# get the interactor ui
|
|
|
|
# Create a reader and write out the field
|
|
vtkPolyDataReader reader
|
|
reader SetFileName "$VTK_DATA_ROOT/Data/polyEx.vtk"
|
|
vtkDataSetToDataObjectFilter ds2do
|
|
ds2do SetInputConnection [reader GetOutputPort]
|
|
if {[catch {set channel [open "PolyField.vtk" "w"]}] == 0 } {
|
|
close $channel
|
|
vtkDataObjectWriter writer
|
|
writer SetInputConnection [ds2do GetOutputPort]
|
|
writer SetFileName "PolyField.vtk"
|
|
writer Write
|
|
|
|
# create pipeline
|
|
#
|
|
vtkDataObjectReader dor
|
|
dor SetFileName "PolyField.vtk"
|
|
vtkDataObjectToDataSetFilter do2ds
|
|
do2ds SetInputConnection [dor GetOutputPort]
|
|
do2ds SetDataSetTypeToPolyData
|
|
do2ds SetPointComponent 0 "Points" 0
|
|
do2ds SetPointComponent 1 "Points" 1
|
|
do2ds SetPointComponent 2 "Points" 2
|
|
do2ds SetPolysComponent "Polys" 0
|
|
vtkFieldDataToAttributeDataFilter fd2ad
|
|
fd2ad SetInput [do2ds GetPolyDataOutput]
|
|
fd2ad SetInputFieldToDataObjectField
|
|
fd2ad SetOutputAttributeDataToPointData
|
|
fd2ad SetScalarComponent 0 "my_scalars" 0
|
|
|
|
vtkPolyDataMapper mapper
|
|
mapper SetInput [fd2ad GetPolyDataOutput]
|
|
eval mapper SetScalarRange [[fd2ad GetOutput] GetScalarRange]
|
|
vtkActor actor
|
|
actor SetMapper mapper
|
|
|
|
# Create the RenderWindow, Renderer and both Actors
|
|
vtkRenderer ren1
|
|
vtkRenderWindow renWin
|
|
renWin AddRenderer ren1
|
|
vtkRenderWindowInteractor iren
|
|
iren SetRenderWindow renWin
|
|
|
|
ren1 AddActor actor
|
|
ren1 SetBackground 1 1 1
|
|
renWin SetSize 300 300
|
|
|
|
ren1 ResetCamera
|
|
set cam1 [ren1 GetActiveCamera]
|
|
$cam1 SetClippingRange .348 17.43
|
|
$cam1 SetPosition 2.92 2.62 -0.836
|
|
$cam1 SetViewUp -0.436 -0.067 -0.897
|
|
$cam1 Azimuth 90
|
|
# render the image
|
|
#
|
|
iren AddObserver UserEvent {wm deiconify .vtkInteract}
|
|
renWin Render
|
|
|
|
if {[info commands "rtExMath"] != ""} {
|
|
file delete -force "PolyField.vtk"
|
|
}
|
|
}
|
|
# prevent the tk window from showing up then start the event loop
|
|
wm withdraw .
|
|
|
|
|
|
|