irtkFreeFormTransformation3D Class Reference

#include <irtkFreeFormTransformation3D.h>

Inheritance diagram for irtkFreeFormTransformation3D:

Inheritance graph
[legend]
Collaboration diagram for irtkFreeFormTransformation3D:

Collaboration graph
[legend]

List of all members.


Detailed Description

Class for 3D free form transformations.

This class implements a 3D free form transformation

Definition at line 28 of file irtkFreeFormTransformation3D.h.


Public Member Functions

virtual int GetX () const
 Returns the of control points in x.
virtual int GetY () const
 Returns the of control points in y.
virtual int GetZ () const
 Returns the of control points in z.
virtual int NumberOfDOFs () const
 Returns the number of parameters of the transformation.
virtual void GetSpacing (double &, double &, double &) const
 Get the control point spacing (in mm).
virtual void PutOrientation (double *, double *, double *)
 Put orientation of free-form deformation.
virtual void GetOrientation (double *, double *, double *) const
 Get orientation of free-form deformation.
virtual void Put (int, double)
 Puts a control point value.
virtual void Put (int, int, int, double, double, double)
 Gets a control point value.
virtual double Get (int) const
 Gets a control point value.
virtual void Get (int, int, int, double &, double &, double &) const
 Gets a control point value.
virtual void PutStatus (int, int, int, _Status)
 Puts a control point status.
virtual void PutStatus (int, int, int, _Status, _Status, _Status)
 Puts a control point status.
virtual void PutStatus (int, _Status)
 Puts a control point status.
virtual void GetStatus (int, int, int, _Status &, _Status &, _Status &)
 Gets a control point status.
virtual _Status GetStatus (int)
 Gets a control point status.
virtual double Bending (double x, double y, double z)=0
 Calculate the bending energy of the transformation.
virtual void WorldToLattice (double &, double &, double &) const
 Transforms world coordinates (in mm) to FFD coordinates.
virtual void WorldToLattice (irtkPoint &) const
 Transforms world coordinates (in mm) to FFD coordinates.
virtual void LatticeToWorld (double &, double &, double &) const
 Transforms FFD coordinates to world coordinates (in mm).
virtual void LatticeToWorld (irtkPoint &) const
 Transforms FFD coordinates to world coordinates (in mm).
virtual void IndexToLattice (int index, int &i, int &j, int &k) const
 Transforms index of control points to FFD coordinates.
virtual int LatticeToIndex (int i, int j, int k) const
 Transforms FFD coordinates to index of control point.
virtual void ControlPointLocation (int, double &, double &, double &) const
 Returns the control point location (in mm).
virtual irtkPoint ControlPointLocation (int) const
 Returns the control point location (in mm).
virtual void PutBoundingBox (irtkPoint, irtkPoint)
 Put the bounding box for FFD (in mm).
virtual void PutBoundingBox (double, double, double, double, double, double)
 Put the bounding box for FFD (in mm).
virtual void BoundingBox (irtkPoint &, irtkPoint &) const
 Returns the bounding box for FFD (in mm).
virtual void BoundingBox (double &, double &, double &, double &, double &, double &) const
 Returns the bounding box for FFD (in mm).
virtual void BoundingBox (int, irtkPoint &, irtkPoint &, double=1) const =0
 Returns the bounding box for a control point (in mm).
virtual void BoundingBox (int, double &, double &, double &, double &, double &, double &, double=1) const =0
 Returns the bounding box for a control point (in mm).
virtual void BoundingBox (irtkGreyImage *, int, int &, int &, int &, int &, int &, int &, double=1) const =0
 Returns the bounding box for a control point (in pixels).
virtual double Approximate (double *, double *, double *, double *, double *, double *, int)=0
 Approximate displacements: This function takes a set of points and a set of displacements and find a FFD which approximates these displacements.
virtual void Interpolate (double *dxs, double *dys, double *dzs)=0
 Interpolates displacements: This function takes a set of displacements defined at the control points and finds a FFD which interpolates these displacements.
virtual double Inverse (double &, double &, double &, double, double=0.01)
 Inverts the transformation (abstract).
virtual Bool IsIdentity ()
 Checks whether transformation is an identity mapping.
virtual const char * NameOfClass ()
 Returns a string with the name of the instantiated class.

Protected Member Functions

virtual void UpdateMatrix ()
 Update transformation matrix.

Static Protected Member Functions

static double *** Allocate (double ***, int, int, int)
 Allocate memory for control points.
static double *** Deallocate (double ***, int, int, int)
 Deallocate memory for control points.

Protected Attributes

int _x
 Number of control points in x.
int _y
 Number of control points in y.
int _z
 Number of control points in z.
double _dx
 Spacing of control points in x (in mm).
double _dy
 Spacing of control points in y (in mm).
double _dz
 Spacing of control points in z (in mm).
double _xaxis [3]
 Direction of x-axis.
double _yaxis [3]
 Direction of y-axis.
double _zaxis [3]
 Direction of z-axis.
irtkPoint _origin
 Origin.
irtkMatrix _matL2W
 Transformation matrix from lattice coordinates to world coordinates.
irtkMatrix _matW2L
 Transformation matrix from world coordinates to lattice coordinates.
double *** _xdata
 Displacement in the x-direction at the control points (in mm).
double *** _ydata
 Displacement in the y-direction at the control points (in mm).
double *** _zdata
 Displacement in the z-direction at the control points (in mm).

Member Function Documentation

virtual void irtkFreeFormTransformation3D::BoundingBox ( int  ,
irtkPoint ,
irtkPoint ,
double  = 1 
) const [pure virtual]

Returns the bounding box for a control point (in mm).

The last parameter specifies what fraction of the bounding box to return. The default is 1 which equals 100% of the bounding box.

Implemented in irtkBSplineFreeFormTransformation3D, and irtkLinearFreeFormTransformation.

virtual void irtkFreeFormTransformation3D::BoundingBox ( int  ,
double &  ,
double &  ,
double &  ,
double &  ,
double &  ,
double &  ,
double  = 1 
) const [pure virtual]

Returns the bounding box for a control point (in mm).

The last parameter specifies what fraction of the bounding box to return. The default is 1 which equals 100% of the bounding box.

Implemented in irtkBSplineFreeFormTransformation3D, and irtkLinearFreeFormTransformation.

virtual void irtkFreeFormTransformation3D::BoundingBox ( irtkGreyImage *  ,
int  ,
int &  ,
int &  ,
int &  ,
int &  ,
int &  ,
int &  ,
double  = 1 
) const [pure virtual]

Returns the bounding box for a control point (in pixels).

The last parameter specifies what fraction of the bounding box to return. The default is 1 which equals 100% of the bounding box.

Implemented in irtkBSplineFreeFormTransformation3D, and irtkLinearFreeFormTransformation.

virtual double irtkFreeFormTransformation3D::Approximate ( double *  ,
double *  ,
double *  ,
double *  ,
double *  ,
double *  ,
int   
) [pure virtual]

Approximate displacements: This function takes a set of points and a set of displacements and find a FFD which approximates these displacements.

After approximatation the displacements replaced by the residual displacement errors at the points

Implemented in irtkBSplineFreeFormTransformation3D, and irtkLinearFreeFormTransformation.

virtual void irtkFreeFormTransformation3D::Interpolate ( double *  dxs,
double *  dys,
double *  dzs 
) [pure virtual]

Interpolates displacements: This function takes a set of displacements defined at the control points and finds a FFD which interpolates these displacements.

Parameters:
dxs The x-displacements at each control point.
dys The y-displacements at each control point.
dzs The z-displacements at each control point.

Implemented in irtkBSplineFreeFormTransformation3D, and irtkLinearFreeFormTransformation.


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