VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkBSplineTransform Class Reference

a cubic b-spline deformation transformation More...

#include <vtkBSplineTransform.h>

Inherits vtkWarpTransform.

Public Types

typedef vtkWarpTransform Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkBSplineTransformNewInstance () const
 
virtual void PrintSelf (ostream &os, vtkIndent indent)
 
vtkAbstractTransform * MakeTransform ()
 
unsigned long GetMTime ()
 
virtual void SetCoefficientConnection (vtkAlgorithmOutput *)
 
virtual void SetCoefficientData (vtkImageData *)
 
virtual vtkImageData * GetCoefficientData ()
 
virtual void SetDisplacementScale (double)
 
virtual void SetBorderMode (int)
 
void SetBorderModeToEdge ()
 
void SetBorderModeToZero ()
 
void SetBorderModeToZeroAtBorder ()
 
virtual int GetBorderMode ()
 
const char * GetBorderModeAsString ()
 

Static Public Member Functions

static vtkBSplineTransformNew ()
 
static int IsTypeOf (const char *type)
 
static vtkBSplineTransformSafeDownCast (vtkObjectBase *o)
 

Protected Member Functions

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])
 

Protected Attributes

void(* CalculateSpline )(const double point[3], double displacement[3], double derivatives[3][3], void *gridPtr, int inExt[6], vtkIdType inInc[3], int borderMode)
 
double DisplacementScale
 
int BorderMode
 
void * GridPointer
 
double GridSpacing [3]
 
double GridOrigin [3]
 
int GridExtent [6]
 
vtkIdType GridIncrements [3]
 

Detailed Description

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.

Member Typedef Documentation

typedef vtkWarpTransform vtkBSplineTransform::Superclass

Definition at line 55 of file vtkBSplineTransform.h.

Constructor & Destructor Documentation

vtkBSplineTransform::vtkBSplineTransform ( )
protected
vtkBSplineTransform::~vtkBSplineTransform ( )
protected

Member Function Documentation

static vtkBSplineTransform* vtkBSplineTransform::New ( )
static
static int vtkBSplineTransform::IsTypeOf ( const char *  type)
static
virtual int vtkBSplineTransform::IsA ( const char *  type)
virtual
static vtkBSplineTransform* vtkBSplineTransform::SafeDownCast ( vtkObjectBase *  o)
static
virtual vtkObjectBase* vtkBSplineTransform::NewInstanceInternal ( ) const
protectedvirtual
vtkBSplineTransform* vtkBSplineTransform::NewInstance ( ) const
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 ( )

Get the MTime.

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

Member Data Documentation

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

Definition at line 130 of file vtkBSplineTransform.h.

double vtkBSplineTransform::DisplacementScale
protected

Definition at line 136 of file vtkBSplineTransform.h.

int vtkBSplineTransform::BorderMode
protected

Definition at line 137 of file vtkBSplineTransform.h.

void* vtkBSplineTransform::GridPointer
protected

Definition at line 139 of file vtkBSplineTransform.h.

double vtkBSplineTransform::GridSpacing[3]
protected

Definition at line 140 of file vtkBSplineTransform.h.

double vtkBSplineTransform::GridOrigin[3]
protected

Definition at line 141 of file vtkBSplineTransform.h.

int vtkBSplineTransform::GridExtent[6]
protected

Definition at line 142 of file vtkBSplineTransform.h.

vtkIdType vtkBSplineTransform::GridIncrements[3]
protected

Definition at line 143 of file vtkBSplineTransform.h.


The documentation for this class was generated from the following file: