a cubic b-spline deformation transformation
More...
#include <vtkBSplineTransform.h>
Inherits vtkWarpTransform.
|
virtual vtkObjectBase * | NewInstanceInternal () const |
|
| vtkBSplineTransform () |
|
| ~vtkBSplineTransform () |
|
void | InternalUpdate () |
|
void | InternalDeepCopy (vtkAbstractTransform *transform) |
|
void | ForwardTransformDerivative (const float in[3], float out[3], float derivative[3][3]) |
|
void | ForwardTransformDerivative (const double in[3], double out[3], double derivative[3][3]) |
|
void | InverseTransformPoint (const float in[3], float out[3]) |
|
void | InverseTransformPoint (const double in[3], double out[3]) |
|
void | InverseTransformDerivative (const float in[3], float out[3], float derivative[3][3]) |
|
void | InverseTransformDerivative (const double in[3], double out[3], double derivative[3][3]) |
|
|
void | ForwardTransformPoint (const float in[3], float out[3]) |
|
void | ForwardTransformPoint (const double in[3], double out[3]) |
|
a cubic b-spline deformation transformation
vtkBSplineTransform computes a cubic b-spline transformation from a grid of b-spline coefficients.
- Warning
- The inverse grid transform is calculated using an iterative method, and is several times more expensive than the forward transform.
- See Also
- vtkGeneralTransform vtkTransformToGrid vtkImageBSplineCoefficients
- Thanks:
- This class was written by David Gobbi at the Seaman Family MR Research Centre, Foothills Medical Centre, Calgary, Alberta. DG Gobbi and YP Starreveld, "Uniform B-Splines for the VTK Imaging Pipeline," VTK Journal, 2011, http://hdl.handle.net/10380/3252
- Tests:
- vtkBSplineTransform (Tests)
Definition at line 51 of file vtkBSplineTransform.h.
vtkBSplineTransform::vtkBSplineTransform |
( |
| ) |
|
|
protected |
vtkBSplineTransform::~vtkBSplineTransform |
( |
| ) |
|
|
protected |
static int vtkBSplineTransform::IsTypeOf |
( |
const char * |
type | ) |
|
|
static |
virtual int vtkBSplineTransform::IsA |
( |
const char * |
type | ) |
|
|
virtual |
virtual vtkObjectBase* vtkBSplineTransform::NewInstanceInternal |
( |
| ) |
const |
|
protectedvirtual |
virtual void vtkBSplineTransform::PrintSelf |
( |
ostream & |
os, |
|
|
vtkIndent |
indent |
|
) |
| |
|
virtual |
virtual void vtkBSplineTransform::SetCoefficientConnection |
( |
vtkAlgorithmOutput * |
| ) |
|
|
virtual |
Set/Get the coefficient grid for the b-spline transform. The vtkBSplineTransform class will never modify the data. Note that SetCoefficientData() does not setup a pipeline connection whereas SetCoefficientConnection does.
virtual void vtkBSplineTransform::SetCoefficientData |
( |
vtkImageData * |
| ) |
|
|
virtual |
Set/Get the coefficient grid for the b-spline transform. The vtkBSplineTransform class will never modify the data. Note that SetCoefficientData() does not setup a pipeline connection whereas SetCoefficientConnection does.
virtual vtkImageData* vtkBSplineTransform::GetCoefficientData |
( |
| ) |
|
|
virtual |
Set/Get the coefficient grid for the b-spline transform. The vtkBSplineTransform class will never modify the data. Note that SetCoefficientData() does not setup a pipeline connection whereas SetCoefficientConnection does.
virtual void vtkBSplineTransform::SetDisplacementScale |
( |
double |
| ) |
|
|
virtual |
Set/Get a scale to apply to the transformation.
virtual void vtkBSplineTransform::SetBorderMode |
( |
int |
| ) |
|
|
virtual |
Set/Get the border mode, to alter behavior at the edge of the grid. The Edge mode allows the displacement to converge to the edge coefficient past the boundary, which is similar to the behavior of the vtkGridTransform. The Zero mode allows the displacement to smoothly converge to zero two node-spacings past the boundary, which is useful when you want to create a localized transform. The ZeroAtBorder mode sacrifices smoothness to further localize the transform to just one node-spacing past the boundary.
void vtkBSplineTransform::SetBorderModeToEdge |
( |
| ) |
|
|
inline |
Set/Get the border mode, to alter behavior at the edge of the grid. The Edge mode allows the displacement to converge to the edge coefficient past the boundary, which is similar to the behavior of the vtkGridTransform. The Zero mode allows the displacement to smoothly converge to zero two node-spacings past the boundary, which is useful when you want to create a localized transform. The ZeroAtBorder mode sacrifices smoothness to further localize the transform to just one node-spacing past the boundary.
Definition at line 84 of file vtkBSplineTransform.h.
void vtkBSplineTransform::SetBorderModeToZero |
( |
| ) |
|
|
inline |
Set/Get the border mode, to alter behavior at the edge of the grid. The Edge mode allows the displacement to converge to the edge coefficient past the boundary, which is similar to the behavior of the vtkGridTransform. The Zero mode allows the displacement to smoothly converge to zero two node-spacings past the boundary, which is useful when you want to create a localized transform. The ZeroAtBorder mode sacrifices smoothness to further localize the transform to just one node-spacing past the boundary.
Definition at line 86 of file vtkBSplineTransform.h.
void vtkBSplineTransform::SetBorderModeToZeroAtBorder |
( |
| ) |
|
|
inline |
Set/Get the border mode, to alter behavior at the edge of the grid. The Edge mode allows the displacement to converge to the edge coefficient past the boundary, which is similar to the behavior of the vtkGridTransform. The Zero mode allows the displacement to smoothly converge to zero two node-spacings past the boundary, which is useful when you want to create a localized transform. The ZeroAtBorder mode sacrifices smoothness to further localize the transform to just one node-spacing past the boundary.
Definition at line 88 of file vtkBSplineTransform.h.
virtual int vtkBSplineTransform::GetBorderMode |
( |
| ) |
|
|
virtual |
Set/Get the border mode, to alter behavior at the edge of the grid. The Edge mode allows the displacement to converge to the edge coefficient past the boundary, which is similar to the behavior of the vtkGridTransform. The Zero mode allows the displacement to smoothly converge to zero two node-spacings past the boundary, which is useful when you want to create a localized transform. The ZeroAtBorder mode sacrifices smoothness to further localize the transform to just one node-spacing past the boundary.
const char* vtkBSplineTransform::GetBorderModeAsString |
( |
| ) |
|
Set/Get the border mode, to alter behavior at the edge of the grid. The Edge mode allows the displacement to converge to the edge coefficient past the boundary, which is similar to the behavior of the vtkGridTransform. The Zero mode allows the displacement to smoothly converge to zero two node-spacings past the boundary, which is useful when you want to create a localized transform. The ZeroAtBorder mode sacrifices smoothness to further localize the transform to just one node-spacing past the boundary.
vtkAbstractTransform* vtkBSplineTransform::MakeTransform |
( |
| ) |
|
Make another transform of the same type.
unsigned long vtkBSplineTransform::GetMTime |
( |
| ) |
|
void vtkBSplineTransform::InternalUpdate |
( |
| ) |
|
|
protected |
Update the displacement grid.
void vtkBSplineTransform::InternalDeepCopy |
( |
vtkAbstractTransform * |
transform | ) |
|
|
protected |
Copy this transform from another of the same type.
void vtkBSplineTransform::ForwardTransformPoint |
( |
const float |
in[3], |
|
|
float |
out[3] |
|
) |
| |
|
protected |
Internal functions for calculating the transformation.
void vtkBSplineTransform::ForwardTransformPoint |
( |
const double |
in[3], |
|
|
double |
out[3] |
|
) |
| |
|
protected |
Internal functions for calculating the transformation.
void vtkBSplineTransform::ForwardTransformDerivative |
( |
const float |
in[3], |
|
|
float |
out[3], |
|
|
float |
derivative[3][3] |
|
) |
| |
|
protected |
void vtkBSplineTransform::ForwardTransformDerivative |
( |
const double |
in[3], |
|
|
double |
out[3], |
|
|
double |
derivative[3][3] |
|
) |
| |
|
protected |
void vtkBSplineTransform::InverseTransformPoint |
( |
const float |
in[3], |
|
|
float |
out[3] |
|
) |
| |
|
protected |
void vtkBSplineTransform::InverseTransformPoint |
( |
const double |
in[3], |
|
|
double |
out[3] |
|
) |
| |
|
protected |
void vtkBSplineTransform::InverseTransformDerivative |
( |
const float |
in[3], |
|
|
float |
out[3], |
|
|
float |
derivative[3][3] |
|
) |
| |
|
protected |
void vtkBSplineTransform::InverseTransformDerivative |
( |
const double |
in[3], |
|
|
double |
out[3], |
|
|
double |
derivative[3][3] |
|
) |
| |
|
protected |
void(* vtkBSplineTransform::CalculateSpline)(const double point[3], double displacement[3], double derivatives[3][3], void *gridPtr, int inExt[6], vtkIdType inInc[3], int borderMode) |
|
protected |
double vtkBSplineTransform::DisplacementScale |
|
protected |
int vtkBSplineTransform::BorderMode |
|
protected |
void* vtkBSplineTransform::GridPointer |
|
protected |
double vtkBSplineTransform::GridSpacing[3] |
|
protected |
double vtkBSplineTransform::GridOrigin[3] |
|
protected |
int vtkBSplineTransform::GridExtent[6] |
|
protected |
vtkIdType vtkBSplineTransform::GridIncrements[3] |
|
protected |
The documentation for this class was generated from the following file: