Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
mirtk::BSplineFreeFormTransformation3D Class Reference

#include <BSplineFreeFormTransformation3D.h>

Inheritance diagram for mirtk::BSplineFreeFormTransformation3D:
Inheritance graph
Collaboration diagram for mirtk::BSplineFreeFormTransformation3D:
Collaboration graph

Public Types

enum  ParametricGradientType { PG_Default, PG_Analytic, PG_Convolution, PG_Approximation }
 Options for parametric gradient calculation. More...
 
- Public Types inherited from mirtk::FreeFormTransformation
typedef GenericExtrapolateImageFunction< CPImageCPExtrapolator
 Base type used for extrapolation of control point data.
 
typedef GenericImage< CPValueCPImage
 Type of image representation of free-form transformation.
 
typedef GenericInterpolateImageFunction< CPImageCPInterpolator
 
typedef Vector3D< DOFStatusCPStatus
 Type of vector storing status of control point coefficients.
 
typedef Vector3D< DOFValueCPValue
 Type of vector storing the coefficients at a control point.
 
typedef CPValue Vector
 
- Public Types inherited from mirtk::Transformation
typedef Status DOFStatus
 Type of transforamtion parameter status.
 
typedef double DOFValue
 Type of transformation parameter value.
 

Public Member Functions

void AddApproximateSplineCoefficients (const double *, const double *, const double *, const double *, const double *, const double *, int, double *, double=1., bool=false) const
 
virtual void ApproximateDOFs (const double *, const double *, const double *, const double *, const double *, const double *, const double *, int)
 
virtual void ApproximateDOFsGradient (const double *, const double *, const double *, const double *, const double *, const double *, const double *, int, double *, double=1.0) const
 
virtual double BendingEnergy (double, double, double, double=0, double=NaN, bool=true) const
 Calculates the bending energy of the transformation.
 
virtual double BendingEnergy (bool=false, bool=true) const
 Approximates the bending energy on the control point lattice.
 
virtual double BendingEnergy (const ImageAttributes &, double=NaN, bool=true) const
 Approximates the bending energy on the specified discrete domain.
 
virtual void BendingEnergyGradient (double *, double=1, bool=false, bool=true, bool=true) const
 
virtual void BoundingBox (int, double &, double &, double &, double &, double &, double &, double=1) const
 
 BSplineFreeFormTransformation3D ()
 Default constructor.
 
 BSplineFreeFormTransformation3D (double, double, double, double, double, double, double, double, double, double *, double *, double *)
 Construct free-form transformation for given image domain and lattice spacing.
 
 BSplineFreeFormTransformation3D (const ImageAttributes &, double=-1, double=-1, double=-1)
 Construct free-form transformation for given image domain and lattice spacing.
 
 BSplineFreeFormTransformation3D (const BaseImage &, double, double, double)
 Construct free-form transformation for given target image and lattice spacing.
 
 BSplineFreeFormTransformation3D (const GenericImage< double > &, bool=false)
 Construct free-form transformation from existing 3D+t deformation field.
 
 BSplineFreeFormTransformation3D (const BSplineFreeFormTransformation3D &)
 Copy Constructor.
 
virtual bool CanModifyDisplacement (int=-1) const
 
virtual bool CanRead (TransformationType) const
 Whether this transformation can read a file of specified type (i.e. format)
 
virtual void DeriveJacobianWrtDOF (Matrix &, int, double, double, double, double=0, double=NaN) const
 Calculates the derivative of the Jacobian of the transformation (w.r.t. world coordinates) w.r.t. a transformation parameter.
 
virtual void DisplacementAfterDOFChange (int dof, double dv, GenericImage< double > &dx, double t, double t0=-1, const WorldCoordsImage *i2w=NULL) const
 
void Evaluate (double &, double &, double &, int, int) const
 Evaluates the FFD at a lattice point.
 
void Evaluate (double &, double &, double &, int, int, int) const
 Evaluates the FFD at a lattice point.
 
void Evaluate (double &, double &, double &) const
 Evaluates the FFD at a point in lattice coordinates.
 
void EvaluateDerivativeOfJacobianWrtDOF (Matrix &, int, double, double) const
 
void EvaluateDerivativeOfJacobianWrtDOF (Matrix &, int, double, double, double) const
 
void EvaluateHessian (Matrix [3], int, int) const
 Calculates the Hessian of the 2D FFD at a point in lattice coordinates.
 
void EvaluateHessian (Matrix [3], double, double) const
 Calculates the Hessian of the 2D FFD at a point in lattice coordinates.
 
void EvaluateHessian (Matrix [3], int, int, int) const
 Calculates the Hessian of the FFD at a point in lattice coordinates.
 
void EvaluateHessian (Matrix [3], double, double, double) const
 Calculates the Hessian of the FFD at a point in lattice coordinates.
 
void EvaluateInside (double &, double &, double &) const
 Evaluates the FFD at a point in lattice coordinates inside the FFD domain.
 
void EvaluateJacobian (Matrix &, int, int) const
 Calculates the Jacobian of the FFD at a point in lattice coordinates.
 
void EvaluateJacobian (Matrix &, int, int, int) const
 Calculates the Jacobian of the FFD at a point in lattice coordinates.
 
void EvaluateJacobian (Matrix &, double, double) const
 Calculates the Jacobian of the FFD at a point in lattice coordinates.
 
void EvaluateJacobian (Matrix &, double, double, double) const
 Calculates the Jacobian of the FFD at a point in lattice coordinates.
 
void EvaluateJacobianDetDerivative (double dJ[3], const Matrix &adj, double a, double b, double c, bool wrt_world=true, bool use_spacing=true) const
 
void EvaluateJacobianDetDerivative (double dJ[3], const Matrix &adj, int a, int b, int c, bool wrt_world=true, bool use_spacing=true) const
 
void EvaluateJacobianDetDerivative (double dJ[3], const Matrix &adj, int i, int j, int k, double x, double y, double z, bool wrt_world=true, bool use_spacing=true) const
 
void EvaluateJacobianDetDerivative (double dJ[3], const Matrix &adj, int cp, double x, double y, double z, bool wrt_world=true, bool use_spacing=true) const
 
void EvaluateJacobianDOFs (double [3], int, int, double, double) const
 
void EvaluateJacobianDOFs (double [3], int, int, int, double, double, double) const
 
void EvaluateJacobianDOFs (double [3], int, int, int, int, double, double, double, double) const
 
void EvaluateJacobianWorld (Matrix &, double, double) const
 
void EvaluateJacobianWorld (Matrix &, double, double, double) const
 
void EvaluateLaplacian (double [3], int, int, int) const
 Calculates the Laplacian of the FFD at a point in lattice coordinates.
 
void EvaluateLaplacian (double [3], double, double, double) const
 Calculates the Laplacian of the FFD at a point in lattice coordinates.
 
void EvaluateLaplacian (double &, double &, double &) const
 Calculates the Laplacian of the FFD at a point in lattice coordinates.
 
virtual void FFDJacobianDetDerivative (double dJ[3], const Matrix &adj, int cp, double x, double y, double z, double=0, double=NaN, bool wrt_world=true, bool use_spacing=true) const
 
virtual void FFDJacobianWorld (Matrix &, double, double, double, double=0, double=NaN) const
 Calculates the Jacobian of the transformation w.r.t either control point displacements or velocities.
 
virtual int GetTAfterSubdivision () const
 Number of control points in t after subdivision.
 
virtual double GetTSpacingAfterSubdivision () const
 Control point spacing in t after subdivision.
 
virtual int GetXAfterSubdivision () const
 Number of control points in x after subdivision.
 
virtual double GetXSpacingAfterSubdivision () const
 Control point spacing in x after subdivision.
 
virtual int GetYAfterSubdivision () const
 Number of control points in y after subdivision.
 
virtual double GetYSpacingAfterSubdivision () const
 Control point spacing in y after subdivision.
 
virtual int GetZAfterSubdivision () const
 Number of control points in z after subdivision.
 
virtual double GetZSpacingAfterSubdivision () const
 Control point spacing in z after subdivision.
 
virtual void Interpolate (const double *, const double *, const double *=NULL)
 
virtual void JacobianDOFs (double [3], int, int, int, double, double, double) const
 Calculates the Jacobian of the transformation w.r.t. the parameters of a control point.
 
virtual int KernelSize () const
 Size of support region of the used kernel.
 
virtual void LocalHessian (Matrix [3], double, double, double, double=0, double=NaN) const
 Calculates the Hessian for each component of the local transformation w.r.t world coordinates.
 
virtual void LocalJacobian (Matrix &, double, double, double, double=0, double=NaN) const
 Calculates the Jacobian of the local transformation w.r.t world coordinates.
 
virtual void LocalTransform (double &, double &, double &, double=0, double=NaN) const
 Transforms a single point using the local transformation component only.
 
virtual ParameterList Parameter () const
 Get (non-DoF) parameters as key/value as string map.
 
virtual void ParametricGradient (const GenericImage< double > *, double *, const WorldCoordsImage *, const WorldCoordsImage *, double=NaN, double=1) const
 to a gradient w.r.t the parameters of this transformation More...
 
virtual void Print (ostream &, Indent=0) const
 Prints the parameters of the transformation.
 
virtual bool Set (const char *, const char *)
 Set named (non-DoF) parameter from value as string.
 
virtual void Subdivide (bool=true, bool=true, bool=true, bool=true)
 Subdivide FFD lattice.
 
virtual ~BSplineFreeFormTransformation3D ()
 Destructor.
 
- Public Member Functions inherited from mirtk::FreeFormTransformation3D
void BoundingBoxCP (int cp, Point &, Point &, double=1) const
 
void BoundingBoxImage (const BaseImage *, int, int &, int &, int &, int &, int &, int &, double=1) const
 
void GetStatusCP (int, int, int, DOFStatus &, DOFStatus &, DOFStatus &) const
 
virtual void Initialize (const ImageAttributes &)
 Initialize free-form transformation.
 
virtual void JacobianDOFs (Matrix &, int, int, int, double, double, double) const
 Calculates the Jacobian of the transformation w.r.t a control point.
 
virtual void JacobianDOFs (Matrix &, int, double, double, double, double=0, double=NaN) const
 Calculates the Jacobian of the transformation w.r.t a control point.
 
virtual void JacobianDOFs (double [3], int, double, double, double, double=0, double=NaN) const
 Calculates the Jacobian of the transformation w.r.t a transformation parameter.
 
void MultiBoundingBoxImage (const BaseImage *, int, int &, int &, int &, int &, int &, int &, double=1) const
 
virtual void ParametricGradient (const PointSet &, const Vector3D< double > *, double *, double=0, double=NaN, double=1) const
 
void PutStatusCP (int, int, int, DOFStatus, DOFStatus, DOFStatus)
 
virtual ~FreeFormTransformation3D ()
 Destructor.
 
- Public Member Functions inherited from mirtk::FreeFormTransformation
int ActualNumberOfDOFs () const
 
virtual double Approximate (const Transformation *, int=1, double=.0)
 
virtual double Approximate (const ImageAttributes &, double *, double *, double *, int=1, double=.0)
 
virtual double Approximate (const double *, const double *, const double *, double *, double *, double *, int, int=1, double=.0)
 
virtual double Approximate (const double *, const double *, const double *, const double *, double *, double *, double *, int, int=1, double=.0)
 
virtual double ApproximateAsNew (const Transformation *, int=1, double=.0)
 Approximate another transformation and return approximation error.
 
virtual double ApproximateAsNew (const ImageAttributes &, double *, double *, double *, int=1, double=.0)
 
virtual ImageAttributes ApproximationDomain (const ImageAttributes &, const Transformation *)
 
const ImageAttributesAttributes () const
 Returns attributes of control point grid.
 
void BoundingBox (double &, double &) const
 Gets the temporal bounding box of the free-form deformation (in ms)
 
void BoundingBox (double &, double &, double &, double &, double &, double &) const
 Gets the spatial bounding box of the free-form deformation (in mm)
 
void BoundingBox (Point &, Point &) const
 Gets the spatial bounding box of the free-form deformation (in mm)
 
void BoundingBox (double &, double &, double &, double &, double &, double &, double &, double &) const
 Gets the spatio-temporal bounding box of the free-form deformation (in mm and ms)
 
void BoundingBox (Point &, double &, Point &, double &) const
 Gets the spatio-temporal bounding box of the free-form deformation (in mm and ms)
 
virtual void BoundingBox (int, double &, double &, double=1) const
 
virtual void BoundingBox (int, double &, double &, double &, double &, double &, double &, double &, double &, double=1) const
 
void BoundingBox (int, Point &, Point &, double=1) const
 
bool BoundingBox (const ImageAttributes &, int, int &, int &, int &, int &, int &, int &, double=1) const
 
bool BoundingBox (const ImageAttributes &, int, int &, int &, int &, int &, int &, int &, int &, int &, double=1) const
 
bool BoundingBox (const Image *, int, int &, int &, int &, int &, int &, int &, double=1) const
 
bool BoundingBox (const Image *, int, int &, int &, int &, int &, int &, int &, int &, int &, double=1) const
 
void ControlPointLocation (int, double &, double &) const
 Gets the location of the given control point (in mm)
 
void ControlPointLocation (int, double &, double &, double &) const
 Gets the location of the given control point (in mm)
 
Point ControlPointLocation (int) const
 Returns the location of the given control point (in mm)
 
virtual bool CopyFrom (const Transformation *)
 
bool CropPadPassiveCPs (int=0, bool=false)
 
virtual bool CropPadPassiveCPs (int, int, int=0, int=0, bool=false)
 
bool DOFBoundingBox (const ImageAttributes &, int, int &, int &, int &, int &, int &, int &, double=1) const
 
bool DOFBoundingBox (const Image *, int, int &, int &, int &, int &, int &, int &, double=1) const
 
virtual double DOFGradientNorm (const double *) const
 Get norm of the gradient vector.
 
int DOFToDimension (int) const
 Get index of dimension corresponding to transformation parameter (DoFs)
 
int DOFToIndex (int) const
 Get index of control point corresponding to transformation parameter (DoFs)
 
double EvaluateRMSError (const Transformation *) const
 Evaluates RMS error of transformation at control points compared to another.
 
virtual void ExtrapolationMode (enum ExtrapolationMode)
 Set extrapolation mode.
 
const CPExtrapolatorExtrapolator () const
 
void Get (int, Vector &) const
 Gets values of the parameters at a control point.
 
void Get (int, double &, double &, double &) const
 Gets values of the parameters at a control point.
 
void Get (int, int, int, double &, double &, double &) const
 Gets values of the parameters at a control point.
 
void Get (int, int, int, int, double &, double &, double &) const
 Gets values of the parameters at a control point.
 
void GetOrientation (double *, double *, double *) const
 Gets the orientation of the free-form deformation lattice.
 
void GetSpacing (double &, double &, double &) const
 Gets the control point spacing (in mm)
 
void GetSpacing (double &, double &, double &, double &) const
 Gets the control point spacing (in mm)
 
void GetStatus (int, CPStatus &) const
 Gets status of the parameters at a control point.
 
void GetStatus (int, int, int, DOFStatus &, DOFStatus &, DOFStatus &) const
 Gets status of the parameters at a control point.
 
void GetStatus (int, int, int, int, DOFStatus &, DOFStatus &, DOFStatus &) const
 Gets status of the parameters at a control point.
 
int GetT () const
 Returns the number of control points in t.
 
double GetTSpacing () const
 Returns the of control point spacing in t.
 
int GetX () const
 Returns the number of control points in x.
 
double GetXSpacing () const
 Returns the of control point spacing in x.
 
int GetY () const
 Returns the number of control points in y.
 
double GetYSpacing () const
 Returns the of control point spacing in y.
 
int GetZ () const
 Returns the number of control points in z.
 
double GetZSpacing () const
 Returns the of control point spacing in z.
 
virtual void GlobalHessian (Matrix [3], double, double, double, double=0, double=NaN) const
 Calculates the Hessian for each component of the global transformation w.r.t world coordinates.
 
virtual void GlobalInverse (double &, double &, double &, double=0, double=NaN) const
 Transforms a single point using the inverse of the global transformation only.
 
virtual void GlobalJacobian (Matrix &, double, double, double, double=0, double=NaN) const
 Calculates the Jacobian of the global transformation w.r.t world coordinates.
 
virtual void GlobalTransform (double &, double &, double &, double=0, double=NaN) const
 Transforms a single point using the global transformation component only.
 
virtual void Hessian (Matrix [3], double, double, double, double=0, double=NaN) const
 Calculates the Hessian for each component of the transformation w.r.t world coordinates.
 
void HessianToWorld (double &, double &, double &) const
 
void HessianToWorld (double &, double &, double &, double &, double &, double &) const
 
void HessianToWorld (Matrix &) const
 
void HessianToWorld (Matrix [3]) const
 
void IndexToDOFs (int, int &, int &) const
 Get indices of transformation parameters (DoFs)
 
void IndexToDOFs (int, int &, int &, int &) const
 Get indices of transformation parameters (DoFs)
 
void IndexToLattice (int, int &, int &) const
 Get control point lattice coordinates from index.
 
void IndexToLattice (int, int &, int &, int &) const
 Get control point lattice coordinates from index.
 
void IndexToLattice (int, int &, int &, int &, int &) const
 Get control point lattice coordinates from index.
 
void IndexToWorld (int, double &, double &) const
 Get world coordinates (in mm) of control point.
 
void IndexToWorld (int, double &, double &, double &) const
 Get world coordinates (in mm) of control point.
 
void IndexToWorld (int, Point &) const
 Get world coordinates (in mm) of control point.
 
Point IndexToWorld (int) const
 Get world coordinates (in mm) of control point.
 
void Initialize (const ImageAttributes &, double, double, double=-1.0, double=-1.0)
 Initialize free-form transformation.
 
void Initialize (const CPImage &, bool=false)
 Initialize transformation from existing vector field.
 
void Initialize (const GenericImage< double > &, bool=false)
 Initialize transformation from existing 3D+t vector field.
 
virtual bool Inverse (double &, double &, double &, double=0, double=NaN) const
 Transforms a single point using the inverse of the transformation.
 
virtual bool IsActive (int) const
 Whether the control point at given lattice index is active.
 
virtual bool IsActive (int, int, int=0, int=0) const
 Whether the control point at given lattice coordinates is active.
 
virtual void Jacobian (Matrix &, double, double, double, double=0, double=NaN) const
 Calculates the Jacobian of the transformation w.r.t world coordinates.
 
virtual void JacobianDetDerivative (double dJ[3], const Matrix &adj, int cp, double x, double y, double z, double t=0, double t0=NaN, bool wrt_world=true, bool use_spacing=true) const
 
virtual void JacobianDOFs (TransformationJacobian &, double, double, double, double=0, double=NaN) const
 Calculates the Jacobian of the transformation w.r.t the transformation parameters.
 
void JacobianToWorld (double &, double &) const
 
void JacobianToWorld (double &, double &, double &) const
 
void JacobianToWorld (Matrix &) const
 
void JacobianToWorldOrientation (double &, double &) const
 Reorient 1st order derivatives computed w.r.t 2D lattice coordinates.
 
void JacobianToWorldOrientation (double &, double &, double &) const
 Reorient 1st order derivatives computed w.r.t 2D lattice coordinates.
 
int KernelRadius () const
 Radius of support region of the used kernel.
 
int LatticeToIndex (int, int, int=0, int=0) const
 Get control point index from lattice coordinates.
 
virtual double LatticeToTime (double) const
 Transforms temporal lattice coordinate to time (in ms)
 
virtual void LatticeToWorld (double &, double &) const
 Transforms lattice coordinates to world coordinates (in mm)
 
virtual void LatticeToWorld (double &, double &, double &) const
 Transforms lattice coordinates to world coordinates (in mm)
 
virtual void LatticeToWorld (Point &) const
 Transforms lattice coordinates to world coordinates (in mm)
 
 mirtkPublicAttributeMacro (double, SpeedupFactor)
 Speedup factor for gradient computation.
 
 mirtkReadOnlyAttributeMacro (enum ExtrapolationMode, ExtrapolationMode)
 Mode used for extrapolation of control point image.
 
int NumberOfActiveCPs () const
 Number of active control points.
 
int NumberOfCPs () const
 Number of control points.
 
int NumberOfPassiveCPs () const
 Number of non-active control points.
 
void Put (int, const Vector &)
 Puts values of the parameters at a control point.
 
void Put (int, double, double, double)
 Puts values of the parameters at a control point.
 
void Put (int, int, int, double, double, double)
 Puts values of the parameters at a control point.
 
void Put (int, int, int, int, double, double, double)
 Puts values of the parameters at a control point.
 
void PutBoundingBox (double, double, double, double, double, double)
 Puts the spatial bounding box for the free-form deformation (in mm)
 
void PutBoundingBox (const Point &, const Point &)
 Puts the temporal bounding box for the free-form deformation (in mm)
 
void PutBoundingBox (double, double)
 Puts the temporal bounding box of the free-form deformation (in ms)
 
void PutBoundingBox (double, double, double, double, double, double, double, double)
 Puts the spatio-temporal bounding box for the free-form deformation (in mm)
 
void PutOrientation (double *, double *, double *)
 Puts the orientation of the free-form deformation lattice.
 
void PutStatus (int, const CPStatus &)
 Puts status of the parameters at a control point.
 
void PutStatus (int, int, int, DOFStatus, DOFStatus, DOFStatus)
 Puts status of the parameters at a control point.
 
void PutStatus (int, int, int, int, DOFStatus, DOFStatus, DOFStatus)
 Puts status of the parameters at a control point.
 
void Subdivide2D ()
 Subdivide lattice in first two dimensions.
 
void Subdivide3D ()
 Subdivide lattice in first three dimensions.
 
void Subdivide4D ()
 Subdivide lattice in all four dimensions.
 
int T () const
 Returns the number of control points in t.
 
virtual double TimeToLattice (double) const
 Transforms time (in ms) to temporal lattice coordinate.
 
virtual void Transform (double &, double &, double &, double=0, double=NaN) const
 Transforms a single point.
 
virtual void WorldToLattice (double &, double &) const
 Transforms world coordinates (in mm) to lattice coordinates.
 
virtual void WorldToLattice (double &, double &, double &) const
 Transforms world coordinates (in mm) to lattice coordinates.
 
virtual void WorldToLattice (Point &) const
 Transforms world coordinates (in mm) to lattice coordinates.
 
int X () const
 Returns the number of control points in x.
 
int Y () const
 Returns the number of control points in y.
 
int Z () const
 Returns the number of control points in z.
 
virtual ~FreeFormTransformation ()
 Destructor.
 
- Public Member Functions inherited from mirtk::Transformation
virtual void Add (const DOFValue *)
 Add change to transformation parameters.
 
virtual double Approximate (const ImageAttributes &, const Transformation *, int=1, double=.0)
 Approximate another transformation and return approximation error.
 
virtual double Approximate (GenericImage< double > &, int=1, double=.0)
 
virtual double ApproximateAsNew (const ImageAttributes &, const Transformation *, int=1, double=.0)
 Approximate another transformation and return approximation error.
 
virtual double ApproximateAsNew (GenericImage< double > &, int=1, double=.0)
 
virtual double ApproximateAsNew (const double *, const double *, const double *, double *, double *, double *, int, int=1, double=.0)
 
virtual double ApproximateAsNew (const double *, const double *, const double *, const double *, double *, double *, double *, int, int=1, double=.0)
 
virtual void ApproximateGradient (const ImageAttributes &, const double *, const double *, const double *, double *, double=1.0) const
 
virtual void ApproximateGradient (const double *, const double *, const double *, const double *, const double *, const double *, int, double *, double=1.0) const
 
virtual void ApproximateGradient (const double *, const double *, const double *, const double *, const double *, const double *, const double *, int, double *, double=1.0) const
 
virtual void Displacement (double &, double &, double &, double=0, double=NaN) const
 Calculates the displacement of a single point.
 
virtual void Displacement (const ImageAttributes &, double *, double *, double *) const
 
virtual void Displacement (GenericImage< double > &, double=NaN, const WorldCoordsImage *=NULL) const
 Calculates the displacement vectors for a whole image domain.
 
virtual void Displacement (GenericImage< float > &, double=NaN, const WorldCoordsImage *=NULL) const
 Calculates the displacement vectors for a whole image domain.
 
virtual void Displacement (GenericImage< double > &, double, double, const WorldCoordsImage *=NULL) const
 
virtual void Displacement (GenericImage< float > &, double, double, const WorldCoordsImage *=NULL) const
 
double EvaluateRMSError (const ImageAttributes &, const Transformation *) const
 Evaluates RMS error of transformation compared to another.
 
double EvaluateRMSError (const ImageAttributes &, double *, double *) const
 
double EvaluateRMSError (const ImageAttributes &, double *, double *, double *) const
 
double EvaluateRMSError (const double *, const double *, const double *, double, double *, double *, double *, int no) const
 Evaluates RMS error of transformation compared to displacement field.
 
double EvaluateRMSError (const double *, const double *, const double *, const double *, double *, double *, double *, int no) const
 Evaluates RMS error of transformation compared to given displacement field.
 
virtual double Get (int) const
 Get value of transformation parameter.
 
virtual void Get (DOFValue *) const
 Get values of transformation parameters.
 
virtual DOFStatus GetStatus (int) const
 Get status of transformation parameter.
 
virtual void GlobalDisplacement (double &, double &, double &, double=0, double=NaN) const
 Calculates the displacement of a single point using the global transformation component only.
 
virtual void GlobalInverseDisplacement (double &, double &, double &, double=0, double=NaN) const
 Calculates the displacement of a single point using the inverse of the global transformation only.
 
virtual double GlobalJacobian (double, double, double, double=0, double=NaN) const
 Calculates the determinant of the Jacobian of the global transformation w.r.t world coordinates.
 
virtual bool HasSameDOFsAs (const Transformation *) const
 Checks whether transformation depends on the same vector of parameters.
 
virtual bool Inverse (Point &, double=0, double=NaN) const
 Transforms a single point using the inverse of the transformation.
 
virtual int Inverse (PointSet &, double=0, double=NaN) const
 
virtual bool InverseDisplacement (double &, double &, double &, double=0, double=NaN) const
 Calculates the displacement of a single point using the inverse of the transformation.
 
virtual int InverseDisplacement (const ImageAttributes &, double *, double *, double *) const
 
virtual int InverseDisplacement (GenericImage< double > &, double=NaN, const WorldCoordsImage *=NULL) const
 
virtual int InverseDisplacement (GenericImage< float > &, double=NaN, const WorldCoordsImage *=NULL) const
 
virtual int InverseDisplacement (GenericImage< double > &, double, double, const WorldCoordsImage *=NULL) const
 
virtual int InverseDisplacement (GenericImage< float > &, double, double, const WorldCoordsImage *=NULL) const
 
virtual bool IsIdentity () const
 Checks whether the transformation is an identity mapping.
 
virtual double Jacobian (double, double, double, double=0, double=NaN) const
 Calculates the determinant of the Jacobian of the transformation w.r.t world coordinates.
 
virtual void LocalDisplacement (double &, double &, double &, double=0, double=NaN) const
 Calculates the displacement of a single point using the local transformation component only.
 
virtual bool LocalInverse (double &, double &, double &, double=0, double=NaN) const
 Transforms a single point using the inverse of the local transformation only.
 
virtual bool LocalInverseDisplacement (double &, double &, double &, double=0, double=NaN) const
 Calculates the displacement of a single point using the inverse of the local transformation only.
 
virtual double LocalJacobian (double, double, double, double=0, double=NaN) const
 Calculates the determinant of the Jacobian of the local transformation w.r.t world coordinates.
 
int NumberOfActiveDOFs () const
 Get number of active transformation parameters.
 
virtual int NumberOfDOFs () const
 Get number of transformation parameters.
 
int NumberOfPassiveDOFs () const
 Get number of passive transformation parameters.
 
void ParametricGradient (const GenericImage< double > *, double *, const WorldCoordsImage *, double=NaN, double=1) const
 
void ParametricGradient (const GenericImage< double > *, double *, double=NaN, double=1) const
 
virtual void ParametricGradient (const GenericImage< double > **, int, double *, const WorldCoordsImage *, const WorldCoordsImage *, const double *=NULL, double=1) const
 
void ParametricGradient (const GenericImage< double > **, int, double *, const WorldCoordsImage *, const double *=NULL, double=1) const
 
void ParametricGradient (const GenericImage< double > **, int, double *, const double *=NULL, double=1) const
 
void Print (Indent=0) const
 Prints information about the transformation.
 
virtual void Put (int, double)
 Put value of transformation parameter.
 
virtual void Put (const DOFValue *)
 Put values of transformation parameters.
 
virtual void PutStatus (int, DOFStatus)
 Put status of transformation parameter.
 
virtual void Read (const char *)
 Reads a transformation from a file.
 
virtual CifstreamRead (Cifstream &)
 Reads a transformation from a file stream.
 
virtual bool RequiresCachingOfDisplacements () const
 
virtual void Reset ()
 Reset transformation.
 
virtual void Transform (Point &, double=0, double=NaN) const
 Transforms a single point.
 
virtual void Transform (PointSet &, double=0, double=NaN) const
 Transforms a set of points.
 
virtual void Transform (int, double *, double *, double *, double=0, double=NaN) const
 Transforms a set of points.
 
virtual void Transform (int, double *, double *, double *, const double *, double=NaN) const
 Transforms a set of points.
 
virtual void Transform (WorldCoordsImage &, double=NaN) const
 Transforms world coordinates of image voxels.
 
virtual TransformationType TypeOfClass () const
 Returns type ID of the instantiated transformation class.
 
virtual double Update (const DOFValue *)
 Update transformation parameters given parametric gradient.
 
virtual void Verify ()
 
virtual void Write (const char *) const
 Writes a transformation to a file.
 
virtual CofstreamWrite (Cofstream &) const
 Writes a transformation to a file stream.
 
virtual ~Transformation ()
 Default destructor.
 
- Public Member Functions inherited from mirtk::Observable
void AddObserver (Observer &)
 Add observer.
 
void Broadcast (Event, const void *=NULL)
 Broadcast event to observers.
 
void ClearObservers ()
 Delete all observers.
 
void DeleteObserver (Observer &)
 Delete observer.
 
void NotifyObservers (Event, const void *=NULL)
 Notify all observers about given event if this object has changed.
 
int NumberOfObservers () const
 Number of current observers.
 
virtual ~Observable ()
 Destructor.
 
- Public Member Functions inherited from mirtk::Object
virtual const char * NameOfClass () const =0
 Get name of class, which this object is an instance of.
 
bool Parameter (const ParameterList &)
 Set parameters from name/value pairs.
 
virtual ~Object ()
 Destructor.
 

Protected Member Functions

 mirtkPublicAttributeMacro (ParametricGradientType, ParametricGradientCalculation)
 Whether to compute parametric gradient using cubic B-spline convolution.
 
- Protected Member Functions inherited from mirtk::FreeFormTransformation3D
 FreeFormTransformation3D (CPInterpolator &, CPInterpolator *=NULL)
 Default constructor.
 
 FreeFormTransformation3D (const FreeFormTransformation3D &, CPInterpolator &, CPInterpolator *=NULL)
 Copy Constructor.
 
virtual CifstreamReadDOFs (Cifstream &, TransformationType)
 Reads transformation parameters from a file stream.
 
virtual CofstreamWriteDOFs (Cofstream &) const
 Writes transformation parameters to a file stream.
 
- Protected Member Functions inherited from mirtk::FreeFormTransformation
 FreeFormTransformation (CPInterpolator &, CPInterpolator *=NULL)
 Default constructor.
 
 FreeFormTransformation (const FreeFormTransformation &, CPInterpolator &, CPInterpolator *=NULL)
 Copy constructor.
 
void InitializeCPs (const ImageAttributes &, bool=true)
 Initialize control points.
 
void InitializeCPs (const FreeFormTransformation &, bool=true)
 Copy control points from other transformation.
 
void InitializeInterpolator ()
 Initialize interpolator of control points.
 
void InitializeStatus ()
 Initialize status of control points.
 
CofstreamWriteCPs (Cofstream &) const
 Writes the control point and status information to a file stream.
 
- Protected Member Functions inherited from mirtk::Transformation
void InitializeDOFs (int)
 Initialize transformation parameters.
 
void InitializeDOFs (const Transformation &, int=-1)
 Copy transformation parameters (DoFs) and their status.
 
 Transformation (int=0)
 Default constructor.
 
 Transformation (const Transformation &)
 Copy constructor.
 
 Transformation (const Transformation &, int)
 Copy constructor.
 
- Protected Member Functions inherited from mirtk::Observable
 Observable ()
 Default constructor.
 
 Observable (const Observable &)
 Copy constructor.
 
Observableoperator= (const Observable &)
 Assignment operator.
 
- Protected Member Functions inherited from mirtk::Object
template<typename... Args>
void Throw (ErrorType err, const char *func, Args... args) const
 

Protected Attributes

Interpolator _FFD
 Interpolates control point values at arbitrary lattice locations.
 
Interpolator2D _FFD2D
 
- Protected Attributes inherited from mirtk::FreeFormTransformation
const ImageAttributes_attr
 Control point lattice attributes.
 
CPInterpolator_CPFunc
 
CPImage _CPImage
 
CPStatus **** _CPStatus
 
CPExtrapolator_CPValue
 Infinite discrete representation of free-form transformation coefficients.
 
const double & _dt
 Read-only reference to _dt attribute of _CPImage.
 
const double & _dx
 Read-only reference to _dx attribute of _CPImage.
 
const double & _dy
 Read-only reference to _dy attribute of _CPImage.
 
const double & _dz
 Read-only reference to _dz attribute of _CPImage.
 
const Matrix_matL2W
 Read-only reference to _matI2W of _CPImage.
 
const Matrix_matW2L
 Read-only reference to _matW2I of _CPImage.
 
const int & _t
 Read-only reference to _t attribute of _CPImage.
 
const int & _x
 Read-only reference to _x attribute of _CPImage.
 
const int & _y
 Read-only reference to _y attribute of _CPImage.
 
const int & _z
 Read-only reference to _z attribute of _CPImage.
 
- Protected Attributes inherited from mirtk::Transformation
int _NumberOfDOFs
 Number of transformation parameters.
 
DOFValue_Param
 Value of each transformation parameter.
 
DOFStatus_Status
 Status of each transformation parameter (Active or Passive)
 

Additional Inherited Members

- Static Public Member Functions inherited from mirtk::FreeFormTransformation3D
static ImageAttributes DefaultAttributes (double, double, double, double, double, double, double, double, double, const double *, const double *, const double *)
 Default attributes of free-form transformation lattice.
 
- Static Public Member Functions inherited from mirtk::FreeFormTransformation
static double Bending3D (const Matrix [3])
 Calculates the bending of the transformation given the 2nd order derivatives.
 
static ImageAttributes DefaultAttributes (const ImageAttributes &attr, double dx=-1.0, double dy=-1.0, double dz=-1.0, double dt=-1.0)
 
static ImageAttributes DefaultAttributes (double, double, double, double, double, double, double, double, double, double, double, double, const double *, const double *, const double *)
 Default attributes of free-form transformation lattice.
 
- Static Public Member Functions inherited from mirtk::Transformation
static bool CheckHeader (const char *)
 Whether magic number in header of given file.
 
static TransformationNew (TransformationType)
 
static TransformationNew (const Transformation *)
 
static TransformationNew (const char *)
 
static TransformationType TypeOfClass (const char *)
 Returns type ID corresponding to transformations of the named class.
 
- Static Public Member Functions inherited from mirtk::Object
static const char * NameOfType ()
 Get name of this class type.
 
- Static Protected Member Functions inherited from mirtk::Object
template<typename... Args>
static void ThrowStatic (ErrorType err, const char *cls, const char *func, Args... args)
 

Detailed Description

Class for free-form transformations based on tensor product B-splines.

This class implements 3D free-form transformation using B-splines.

For more details about the implementation see Lee, Wolberg and Shin, IEEE Transactions on Visualization and Computer Graphics, Vol. 3, No. 3, 1997.

Definition at line 41 of file BSplineFreeFormTransformation3D.h.

Member Enumeration Documentation

§ ParametricGradientType

Options for parametric gradient calculation.

Enumerator
PG_Default 

Default gradient computation.

PG_Analytic 

Analytic derivation w.r.t. DoFs.

PG_Convolution 

Convolution with cubic B-spline filter.

PG_Approximation 

Approximate voxel-wise non-parametric gradient field with cubic B-spline function, also known as "directly manipulated FFD (DMFFD)".

Definition at line 57 of file BSplineFreeFormTransformation3D.h.

Member Function Documentation

§ AddApproximateSplineCoefficients()

void mirtk::BSplineFreeFormTransformation3D::AddApproximateSplineCoefficients ( const double *  ,
const double *  ,
const double *  ,
const double *  ,
const double *  ,
const double *  ,
int  ,
double *  ,
double  = 1.,
bool  = false 
) const

Approximate displacements: This function takes a set of points and a set of displacements and finds !new! parameters such that the resulting transformation approximates the displacements as good as possible. These parameters are added to the given coefficients using specified weight.

§ ApproximateDOFs()

virtual void mirtk::BSplineFreeFormTransformation3D::ApproximateDOFs ( const double *  ,
const double *  ,
const double *  ,
const double *  ,
const double *  ,
const double *  ,
const double *  ,
int   
)
virtual

Approximate displacements: This function takes a set of points and a set of displacements and finds !new! parameters such that the resulting transformation approximates the displacements as good as possible.

Reimplemented from mirtk::Transformation.

Reimplemented in mirtk::BSplineFreeFormTransformationSV, and mirtk::BSplineFreeFormTransformationStatistical.

§ ApproximateDOFsGradient()

virtual void mirtk::BSplineFreeFormTransformation3D::ApproximateDOFsGradient ( const double *  ,
const double *  ,
const double *  ,
const double *  ,
const double *  ,
const double *  ,
const double *  ,
int  ,
double *  ,
double  = 1.0 
) const
virtual

Finds gradient of approximation error: This function takes a set of points and a set of errors. It finds a gradient w.r.t. the transformation parameters which minimizes the L2 norm of the approximation error and adds it to the input gradient with the given weight.

Reimplemented from mirtk::Transformation.

Reimplemented in mirtk::BSplineFreeFormTransformationSV, and mirtk::BSplineFreeFormTransformationStatistical.

§ BendingEnergyGradient()

virtual void mirtk::BSplineFreeFormTransformation3D::BendingEnergyGradient ( double *  ,
double  = 1,
bool  = false,
bool  = true,
bool  = true 
) const
virtual

Approximates and adds the gradient of the bending energy on the control point lattice w.r.t the transformation parameters using the given weight

Reimplemented from mirtk::FreeFormTransformation.

Reimplemented in mirtk::BSplineFreeFormTransformationStatistical.

§ BoundingBox()

virtual void mirtk::BSplineFreeFormTransformation3D::BoundingBox ( int  ,
double &  ,
double &  ,
double &  ,
double &  ,
double &  ,
double &  ,
double  = 1 
) const
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.

Implements mirtk::FreeFormTransformation.

§ CanModifyDisplacement()

virtual bool mirtk::BSplineFreeFormTransformation3D::CanModifyDisplacement ( int  = -1) const
virtual

Whether this transformation implements a more efficient update of a given displacement field given the desired change of a transformation parameter

Reimplemented from mirtk::Transformation.

§ DisplacementAfterDOFChange()

virtual void mirtk::BSplineFreeFormTransformation3D::DisplacementAfterDOFChange ( int  dof,
double  dv,
GenericImage< double > &  dx,
double  t,
double  t0 = -1,
const WorldCoordsImage i2w = NULL 
) const
virtual

Updates the displacement vectors for a whole image domain

Parameters
[in]dofTransformation parameter.
[in]dvChange of transformation parameter value.
[in,out]dxDisplacement field to be updated.
[in]tTime point of start point.
[in]t0Time point of end point.
[in]i2wPre-computed world coordinates.

Reimplemented from mirtk::Transformation.

§ EvaluateDerivativeOfJacobianWrtDOF() [1/2]

void mirtk::BSplineFreeFormTransformation3D::EvaluateDerivativeOfJacobianWrtDOF ( Matrix dJdp,
int  dof,
double  x,
double  y 
) const
inline

Calculates the derivative of the Jacobian of the FFD at a point in lattice coordinates w.r.t a transformation parameter

Definition at line 541 of file BSplineFreeFormTransformation3D.h.

§ EvaluateDerivativeOfJacobianWrtDOF() [2/2]

void mirtk::BSplineFreeFormTransformation3D::EvaluateDerivativeOfJacobianWrtDOF ( Matrix dJdp,
int  dof,
double  x,
double  y,
double  z 
) const
inline

Calculates the derivative of the Jacobian of the FFD at a point in lattice coordinates w.r.t a transformation parameter

Definition at line 558 of file BSplineFreeFormTransformation3D.h.

§ EvaluateJacobianDetDerivative() [1/4]

void mirtk::BSplineFreeFormTransformation3D::EvaluateJacobianDetDerivative ( double  dJ[3],
const Matrix adj,
double  a,
double  b,
double  c,
bool  wrt_world = true,
bool  use_spacing = true 
) const

Calculate derivatives of Jacobian determinant w.r.t. DoFs of control point

Parameters
[out]dJPartial derivatives of Jacobian determinant w.r.t. DoFs of control point.
[in]adjAdjugate of Jacobian matrix evaluated at (x, y, z).
[in]aDistance from control point along x axis of lattice in lattice units.
[in]bDistance from control point along y axis of lattice in lattice units.
[in]cDistance from control point along z axis of lattice in lattice units.
[in]wrt_worldWhether derivatives are computed w.r.t. world coordinate system.
[in]use_spacingWhether to use grid spacing when wrt_world is true.

§ EvaluateJacobianDetDerivative() [2/4]

void mirtk::BSplineFreeFormTransformation3D::EvaluateJacobianDetDerivative ( double  dJ[3],
const Matrix adj,
int  a,
int  b,
int  c,
bool  wrt_world = true,
bool  use_spacing = true 
) const

Calculate derivatives of Jacobian determinant w.r.t. DoFs of control point

Parameters
[out]dJPartial derivatives of Jacobian determinant w.r.t. DoFs of control point.
[in]adjAdjugate of Jacobian matrix evaluated at (x, y, z).
[in]aDistance from control point along x axis of lattice in lattice units.
[in]bDistance from control point along y axis of lattice in lattice units.
[in]cDistance from control point along z axis of lattice in lattice units.
[in]wrt_worldWhether derivatives are computed w.r.t. world coordinate system.
[in]use_spacingWhether to use grid spacing when wrt_world is true.

§ EvaluateJacobianDetDerivative() [3/4]

void mirtk::BSplineFreeFormTransformation3D::EvaluateJacobianDetDerivative ( double  dJ[3],
const Matrix adj,
int  i,
int  j,
int  k,
double  x,
double  y,
double  z,
bool  wrt_world = true,
bool  use_spacing = true 
) const
inline

Calculate derivatives of Jacobian determinant w.r.t. DoFs of control point

Parameters
[out]dJPartial derivatives of Jacobian determinant w.r.t. DoFs of control point.
[in]adjAdjugate of Jacobian matrix evaluated at (x, y, z).
[in]iIndex of control point along x axis of lattice.
[in]jIndex of control point along y axis of lattice.
[in]kIndex of control point along z axis of lattice.
[in]xPoint coordinate along x axis of lattice in lattice units.
[in]yPoint coordinate along y axis of lattice in lattice units.
[in]zPoint coordinate along z axis of lattice in lattice units.
[in]wrt_worldWhether derivatives are computed w.r.t. world coordinate system.
[in]use_spacingWhether to use grid spacing when wrt_world is true.

Definition at line 653 of file BSplineFreeFormTransformation3D.h.

§ EvaluateJacobianDetDerivative() [4/4]

void mirtk::BSplineFreeFormTransformation3D::EvaluateJacobianDetDerivative ( double  dJ[3],
const Matrix adj,
int  cp,
double  x,
double  y,
double  z,
bool  wrt_world = true,
bool  use_spacing = true 
) const
inline

Calculate derivatives of Jacobian determinant w.r.t. DoFs of control point

Parameters
[out]dJPartial derivatives of Jacobian determinant w.r.t. DoFs of control point.
[in]adjAdjugate of Jacobian matrix evaluated at (x, y, z).
[in]cpLinear index of control point.
[in]xPoint coordinate along x axis of lattice in lattice units.
[in]yPoint coordinate along y axis of lattice in lattice units.
[in]zPoint coordinate along z axis of lattice in lattice units.
[in]wrt_worldWhether derivatives are computed w.r.t. world coordinate system.
[in]use_spacingWhether to use grid spacing when wrt_world is true.

Definition at line 662 of file BSplineFreeFormTransformation3D.h.

§ EvaluateJacobianDOFs() [1/3]

void mirtk::BSplineFreeFormTransformation3D::EvaluateJacobianDOFs ( double  jac[3],
int  i,
int  j,
double  x,
double  y 
) const
inline

Calculates the Jacobian of the FFD at a point in lattice coordinates w.r.t the control point with lattice coordinates (i, j)

Definition at line 516 of file BSplineFreeFormTransformation3D.h.

§ EvaluateJacobianDOFs() [2/3]

void mirtk::BSplineFreeFormTransformation3D::EvaluateJacobianDOFs ( double  jac[3],
int  i,
int  j,
int  k,
double  x,
double  y,
double  z 
) const
inline

Calculates the Jacobian of the FFD at a point in lattice coordinates w.r.t the control point with lattice coordinates (i, j, k)

Definition at line 523 of file BSplineFreeFormTransformation3D.h.

§ EvaluateJacobianDOFs() [3/3]

void mirtk::BSplineFreeFormTransformation3D::EvaluateJacobianDOFs ( double  jac[3],
int  i,
int  j,
int  k,
int  ,
double  x,
double  y,
double  z,
double   
) const
inline

Calculates the Jacobian of the FFD at a point in lattice coordinates w.r.t the control point with lattice coordinates (i, j, k)

Note
The temporal coordinates are required by the templated integration methods. These arguments are ignored by this function.

Definition at line 533 of file BSplineFreeFormTransformation3D.h.

§ EvaluateJacobianWorld() [1/2]

void mirtk::BSplineFreeFormTransformation3D::EvaluateJacobianWorld ( Matrix jac,
double  x,
double  y 
) const
inline

Calculates the Jacobian of the FFD at a point in lattice coordinates and converts the resulting Jacobian to derivatives w.r.t world coordinates

Definition at line 496 of file BSplineFreeFormTransformation3D.h.

§ EvaluateJacobianWorld() [2/2]

void mirtk::BSplineFreeFormTransformation3D::EvaluateJacobianWorld ( Matrix jac,
double  x,
double  y,
double  z 
) const
inline

Calculates the Jacobian of the FFD at a point in lattice coordinates and converts the resulting Jacobian to derivatives w.r.t world coordinates

Definition at line 506 of file BSplineFreeFormTransformation3D.h.

§ FFDJacobianDetDerivative()

void mirtk::BSplineFreeFormTransformation3D::FFDJacobianDetDerivative ( double  dJ[3],
const Matrix adj,
int  cp,
double  x,
double  y,
double  z,
double  = 0,
double  = NaN,
bool  wrt_world = true,
bool  use_spacing = true 
) const
inlinevirtual

Calculates derivatives of the Jacobian determinant of spline function w.r.t. DoFs of a control point

This function is identical to JacobianDetDerivative when the DoFs of the control points are displacements. When the DoFs are velocities, however, this function computes the derivatives of the Jacobian determinant of the velocity field instead.

Parameters
[out]dJPartial derivatives of Jacobian determinant at (x, y, z) w.r.t. DoFs of control point.
[in]cpIndex of control point w.r.t. whose DoFs the derivatives are computed.
[in]xWorld coordinate along x axis at which to evaluate derivatives.
[in]yWorld coordinate along y axis at which to evaluate derivatives.
[in]zWorld coordinate along z axis at which to evaluate derivatives.
[in]adjAdjugate of Jacobian matrix evaluated at (x, y, z).
[in]wrt_worldWhether derivatives are computed w.r.t. world coordinate system.
[in]use_spacingWhether to use grid spacing when wrt_world is true.

Reimplemented from mirtk::FreeFormTransformation.

Definition at line 673 of file BSplineFreeFormTransformation3D.h.

§ Interpolate()

virtual void mirtk::BSplineFreeFormTransformation3D::Interpolate ( const double *  ,
const double *  ,
const double *  = NULL 
)
virtual

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

Implements mirtk::FreeFormTransformation.

Reimplemented in mirtk::BSplineFreeFormTransformationSV, and mirtk::BSplineFreeFormTransformationStatistical.

§ ParametricGradient()

virtual void mirtk::BSplineFreeFormTransformation3D::ParametricGradient ( const GenericImage< double > *  ,
double *  ,
const WorldCoordsImage ,
const WorldCoordsImage ,
double  = NaN,
double  = 1 
) const
virtual

to a gradient w.r.t the parameters of this transformation

Applies the chain rule to convert spatial non-parametric gradient

Reimplemented from mirtk::FreeFormTransformation3D.

Reimplemented in mirtk::BSplineFreeFormTransformationSV, and mirtk::BSplineFreeFormTransformationStatistical.

Member Data Documentation

§ _FFD2D

Interpolator2D mirtk::BSplineFreeFormTransformation3D::_FFD2D
protected

Interpolates control point values at arbitrary 2D lattice locations

Todo:
Remove once BSplineFreeFormTransformation2D is implemented.

Definition at line 80 of file BSplineFreeFormTransformation3D.h.


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