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.
249 lines
5.7 KiB
249 lines
5.7 KiB
package require vtk
|
|
|
|
# this example tests the warping of PolyData using thin plate splines
|
|
# and with grid transforms using different interpolation modes
|
|
|
|
# create a rendering window
|
|
vtkRenderWindow renWin
|
|
renWin SetSize 600 300
|
|
|
|
vtkSphereSource sphere
|
|
sphere SetThetaResolution 20
|
|
sphere SetPhiResolution 20
|
|
|
|
vtkPolyDataNormals ap
|
|
ap SetInputConnection [sphere GetOutputPort]
|
|
|
|
#---------------------------
|
|
# thin plate spline transform
|
|
vtkPoints spoints
|
|
spoints SetNumberOfPoints 10
|
|
spoints SetPoint 0 0.000 0.000 0.500
|
|
spoints SetPoint 1 0.000 0.000 -0.500
|
|
spoints SetPoint 2 0.433 0.000 0.250
|
|
spoints SetPoint 3 0.433 0.000 -0.250
|
|
spoints SetPoint 4 -0.000 0.433 0.250
|
|
spoints SetPoint 5 -0.000 0.433 -0.250
|
|
spoints SetPoint 6 -0.433 -0.000 0.250
|
|
spoints SetPoint 7 -0.433 -0.000 -0.250
|
|
spoints SetPoint 8 0.000 -0.433 0.250
|
|
spoints SetPoint 9 0.000 -0.433 -0.250
|
|
|
|
vtkPoints tpoints
|
|
tpoints SetNumberOfPoints 10
|
|
tpoints SetPoint 0 0.000 0.000 0.800
|
|
tpoints SetPoint 1 0.000 0.000 -0.200
|
|
tpoints SetPoint 2 0.433 0.000 0.350
|
|
tpoints SetPoint 3 0.433 0.000 -0.150
|
|
tpoints SetPoint 4 -0.000 0.233 0.350
|
|
tpoints SetPoint 5 -0.000 0.433 -0.150
|
|
tpoints SetPoint 6 -0.433 -0.000 0.350
|
|
tpoints SetPoint 7 -0.433 -0.000 -0.150
|
|
tpoints SetPoint 8 0.000 -0.233 0.350
|
|
tpoints SetPoint 9 0.000 -0.433 -0.150
|
|
|
|
vtkThinPlateSplineTransform thin
|
|
thin SetSourceLandmarks spoints
|
|
thin SetTargetLandmarks tpoints
|
|
thin SetBasisToR2LogR
|
|
# thin Inverse
|
|
|
|
vtkGeneralTransform t1
|
|
t1 SetInput thin
|
|
|
|
vtkTransformPolyDataFilter f11
|
|
f11 SetInputConnection [ap GetOutputPort]
|
|
f11 SetTransform t1
|
|
|
|
vtkDataSetMapper m11
|
|
m11 SetInputConnection [f11 GetOutputPort]
|
|
|
|
vtkActor a11
|
|
a11 SetMapper m11
|
|
a11 RotateY 90
|
|
[a11 GetProperty] SetColor 1 0 0
|
|
#[a11 GetProperty] SetRepresentationToWireframe
|
|
|
|
vtkRenderer ren11
|
|
ren11 SetViewport 0.0 0.5 0.25 1.0
|
|
ren11 ResetCamera -0.5 0.5 -0.5 0.5 -1 1
|
|
ren11 AddActor a11
|
|
renWin AddRenderer ren11
|
|
|
|
# inverse thin plate spline transform
|
|
vtkTransformPolyDataFilter f12
|
|
f12 SetInputConnection [ap GetOutputPort]
|
|
f12 SetTransform [t1 GetInverse]
|
|
|
|
vtkDataSetMapper m12
|
|
m12 SetInputConnection [f12 GetOutputPort]
|
|
|
|
vtkActor a12
|
|
a12 SetMapper m12
|
|
a12 RotateY 90
|
|
[a12 GetProperty] SetColor 0.9 0.9 0
|
|
#[a12 GetProperty] SetRepresentationToWireframe
|
|
|
|
vtkRenderer ren12
|
|
ren12 SetViewport 0.0 0.0 0.25 0.5
|
|
ren12 ResetCamera -0.5 0.5 -0.5 0.5 -1 1
|
|
ren12 AddActor a12
|
|
renWin AddRenderer ren12
|
|
|
|
|
|
#--------------------------
|
|
# grid transform, cubic interpolation
|
|
vtkTransformToGrid gridTrans
|
|
gridTrans SetInput t1
|
|
gridTrans SetGridOrigin -1.5 -1.5 -1.5
|
|
gridTrans SetGridExtent 0 60 0 60 0 60
|
|
gridTrans SetGridSpacing 0.05 0.05 0.05
|
|
|
|
vtkGridTransform t2
|
|
t2 SetDisplacementGrid [gridTrans GetOutput]
|
|
t2 SetInterpolationModeToCubic
|
|
|
|
vtkTransformPolyDataFilter f21
|
|
f21 SetInputConnection [ap GetOutputPort]
|
|
f21 SetTransform t2
|
|
|
|
vtkDataSetMapper m21
|
|
m21 SetInputConnection [f21 GetOutputPort]
|
|
|
|
vtkActor a21
|
|
a21 SetMapper m21
|
|
a21 RotateY 90
|
|
[a21 GetProperty] SetColor 1 0 0
|
|
#[a21 GetProperty] SetRepresentationToWireframe
|
|
|
|
vtkRenderer ren21
|
|
ren21 SetViewport 0.25 0.5 0.50 1.0
|
|
ren21 ResetCamera -0.5 0.5 -0.5 0.5 -1 1
|
|
ren21 AddActor a21
|
|
renWin AddRenderer ren21
|
|
|
|
# inverse
|
|
vtkTransformPolyDataFilter f22
|
|
f22 SetInputConnection [ap GetOutputPort]
|
|
f22 SetTransform [t2 GetInverse]
|
|
|
|
vtkDataSetMapper m22
|
|
m22 SetInputConnection [f22 GetOutputPort]
|
|
|
|
vtkActor a22
|
|
a22 SetMapper m22
|
|
a22 RotateY 90
|
|
[a22 GetProperty] SetColor 0.9 0.9 0
|
|
#[a22 GetProperty] SetRepresentationToWireframe
|
|
|
|
vtkRenderer ren22
|
|
ren22 SetViewport 0.25 0.0 0.50 0.5
|
|
ren22 ResetCamera -0.5 0.5 -0.5 0.5 -1 1
|
|
ren22 AddActor a22
|
|
renWin AddRenderer ren22
|
|
|
|
|
|
#--------------------------
|
|
# grid transform, linear
|
|
vtkGridTransform t3
|
|
t3 SetDisplacementGrid [gridTrans GetOutput]
|
|
t3 SetInterpolationModeToLinear
|
|
|
|
vtkTransformPolyDataFilter f31
|
|
f31 SetInputConnection [ap GetOutputPort]
|
|
f31 SetTransform t3
|
|
|
|
vtkDataSetMapper m31
|
|
m31 SetInputConnection [f31 GetOutputPort]
|
|
|
|
vtkActor a31
|
|
a31 SetMapper m31
|
|
a31 RotateY 90
|
|
[a31 GetProperty] SetColor 1 0 0
|
|
#[a31 GetProperty] SetRepresentationToWireframe
|
|
|
|
vtkRenderer ren31
|
|
ren31 SetViewport 0.50 0.5 0.75 1.0
|
|
ren31 ResetCamera -0.5 0.5 -0.5 0.5 -1 1
|
|
ren31 AddActor a31
|
|
renWin AddRenderer ren31
|
|
|
|
# inverse
|
|
vtkTransformPolyDataFilter f32
|
|
f32 SetInputConnection [ap GetOutputPort]
|
|
f32 SetTransform [t3 GetInverse]
|
|
|
|
vtkDataSetMapper m32
|
|
m32 SetInputConnection [f32 GetOutputPort]
|
|
|
|
vtkActor a32
|
|
a32 SetMapper m32
|
|
a32 RotateY 90
|
|
[a32 GetProperty] SetColor 0.9 0.9 0
|
|
#[a32 GetProperty] SetRepresentationToWireframe
|
|
|
|
vtkRenderer ren32
|
|
ren32 SetViewport 0.5 0.0 0.75 0.5
|
|
ren32 ResetCamera -0.5 0.5 -0.5 0.5 -1 1
|
|
ren32 AddActor a32
|
|
renWin AddRenderer ren32
|
|
|
|
|
|
#--------------------------
|
|
# grid transform, nearest
|
|
vtkGridTransform t4
|
|
t4 SetDisplacementGrid [gridTrans GetOutput]
|
|
t4 SetInterpolationModeToNearestNeighbor
|
|
t4 SetInverseTolerance 0.05
|
|
|
|
vtkTransformPolyDataFilter f41
|
|
f41 SetInputConnection [ap GetOutputPort]
|
|
f41 SetTransform t4
|
|
|
|
vtkDataSetMapper m41
|
|
m41 SetInputConnection [f41 GetOutputPort]
|
|
|
|
vtkActor a41
|
|
a41 SetMapper m41
|
|
a41 RotateY 90
|
|
[a41 GetProperty] SetColor 1 0 0
|
|
#[a41 GetProperty] SetRepresentationToWireframe
|
|
|
|
vtkRenderer ren41
|
|
ren41 SetViewport 0.75 0.5 1.0 1.0
|
|
ren41 ResetCamera -0.5 0.5 -0.5 0.5 -1 1
|
|
ren41 AddActor a41
|
|
renWin AddRenderer ren41
|
|
|
|
#inverse
|
|
vtkTransformPolyDataFilter f42
|
|
f42 SetInputConnection [ap GetOutputPort]
|
|
f42 SetTransform [t4 GetInverse]
|
|
|
|
vtkDataSetMapper m42
|
|
m42 SetInputConnection [f42 GetOutputPort]
|
|
|
|
vtkActor a42
|
|
a42 SetMapper m42
|
|
a42 RotateY 90
|
|
[a42 GetProperty] SetColor 0.9 0.9 0
|
|
#[a42 GetProperty] SetRepresentationToWireframe
|
|
|
|
vtkRenderer ren42
|
|
ren42 SetViewport 0.75 0.0 1.0 0.5
|
|
ren42 ResetCamera -0.5 0.5 -0.5 0.5 -1 1
|
|
ren42 AddActor a42
|
|
renWin AddRenderer ren42
|
|
|
|
t1 RotateX -100
|
|
t1 PostMultiply
|
|
t1 RotateX +100
|
|
|
|
renWin Render
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|