Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
mirtk::FreeFormTransformation3D Class Reference

#include <FreeFormTransformation3D.h>

Inheritance diagram for mirtk::FreeFormTransformation3D:
Inheritance graph
Collaboration diagram for mirtk::FreeFormTransformation3D:
Collaboration graph

Public Member Functions

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, int, int, double, double, double) 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 GenericImage< double > *, double *, const WorldCoordsImage *, const WorldCoordsImage *, double=NaN, 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.
 
virtual double BendingEnergy (double, double, double, double=0, double=NaN, bool=true) const
 Calculates the bending 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 &attr, double=NaN, bool=true) const
 Approximates the bending energy on the specified discrete domain.
 
virtual void BendingEnergyGradient (double *, double=1.0, bool=false, bool=true, bool=true) const
 
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=1) const =0
 
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
 
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.
 
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.
 
virtual int GetTAfterSubdivision () const
 Returns the number of control points in t after subdivision.
 
double GetTSpacing () const
 Returns the of control point spacing in t.
 
virtual double GetTSpacingAfterSubdivision () const
 Returns the control point spacing in t after the subdivision.
 
int GetX () const
 Returns the number of control points in x.
 
virtual int GetXAfterSubdivision () const
 Returns the number of control points in x after subdivision.
 
double GetXSpacing () const
 Returns the of control point spacing in x.
 
virtual double GetXSpacingAfterSubdivision () const
 Returns the control point spacing in x after the subdivision.
 
int GetY () const
 Returns the number of control points in y.
 
virtual int GetYAfterSubdivision () const
 Returns the number of control points in y after subdivision.
 
double GetYSpacing () const
 Returns the of control point spacing in y.
 
virtual double GetYSpacingAfterSubdivision () const
 Returns the control point spacing in y after the subdivision.
 
int GetZ () const
 Returns the number of control points in z.
 
virtual int GetZAfterSubdivision () const
 Returns the number of control points in z after subdivision.
 
double GetZSpacing () const
 Returns the of control point spacing in z.
 
virtual double GetZSpacingAfterSubdivision () const
 Returns the control point spacing in z after the subdivision.
 
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 void Interpolate (const double *, const double *, const double *)=0
 
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.
 
virtual int KernelSize () const =0
 Size 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.
 
virtual ParameterList Parameter () const
 Get (non-DoF) parameters as key/value as string map.
 
virtual void Print (ostream &, Indent=0) const
 Prints the parameters of the transformation.
 
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.
 
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 lattice of free-form transformation.
 
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 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 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 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 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
 
virtual void DisplacementAfterDOFChange (int dof, double dv, GenericImage< double > &dx, double t, double t0=NaN, const WorldCoordsImage *i2w=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 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 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 void LocalJacobian (Matrix &, double, double, double, double=0, double=NaN) const
 Calculates the Jacobian of the local transformation w.r.t world coordinates.
 
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.
 
virtual void LocalTransform (double &, double &, double &, double=0, double=NaN) const =0
 Transforms a single point using the local transformation component only.
 
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.
 

Static Public Member Functions

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.
 

Protected Member Functions

 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
 

Additional Inherited Members

- 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.
 
- Static Protected Member Functions inherited from mirtk::Object
template<typename... Args>
static void ThrowStatic (ErrorType err, const char *cls, const char *func, Args... args)
 
- 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)
 

Detailed Description

Base class for 3D free-form transformations.

Definition at line 35 of file FreeFormTransformation3D.h.

Member Function Documentation

§ BoundingBoxCP()

void mirtk::FreeFormTransformation3D::BoundingBoxCP ( int  cp,
Point p1,
Point p2,
double  fraction = 1 
) const
inline
Deprecated:
Use overloaded BoundingBox method instead. Note, however, that the new function swaps coordinates to enforce p1[i] <= p2[i]. This is not done by this function.

Definition at line 205 of file FreeFormTransformation3D.h.

§ BoundingBoxImage()

void mirtk::FreeFormTransformation3D::BoundingBoxImage ( const BaseImage image,
int  cp,
int &  i1,
int &  j1,
int &  k1,
int &  i2,
int &  j2,
int &  k2,
double  fraction = 1 
) const
inline
Deprecated:
Use overloaded BoundingBox member function instead.

Definition at line 218 of file FreeFormTransformation3D.h.

§ GetStatusCP()

void mirtk::FreeFormTransformation3D::GetStatusCP ( int  i,
int  j,
int  k,
DOFStatus sx,
DOFStatus sy,
DOFStatus sz 
) const
inline
Deprecated:
Use GetStatus instead.

Definition at line 199 of file FreeFormTransformation3D.h.

§ MultiBoundingBoxImage()

void mirtk::FreeFormTransformation3D::MultiBoundingBoxImage ( const BaseImage image,
int  cp,
int &  i1,
int &  j1,
int &  k1,
int &  i2,
int &  j2,
int &  k2,
double  fraction = 1 
) const
inline
Deprecated:
Use overloaded BoundingBox member function instead.

Definition at line 246 of file FreeFormTransformation3D.h.

§ ParametricGradient() [1/2]

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

Applies the chain rule to convert spatial non-parametric gradient to a gradient w.r.t the parameters of this transformation

Reimplemented from mirtk::FreeFormTransformation.

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

§ ParametricGradient() [2/2]

virtual void mirtk::FreeFormTransformation3D::ParametricGradient ( const PointSet ,
const Vector3D< double > *  ,
double *  ,
double  = 0,
double  = NaN,
double  = 1 
) const
virtual

Applies the chain rule to convert point-wise non-parametric gradient to a gradient w.r.t the parameters of this transformation.

Reimplemented from mirtk::FreeFormTransformation.

Reimplemented in mirtk::BSplineFreeFormTransformationSV.

§ PutStatusCP()

void mirtk::FreeFormTransformation3D::PutStatusCP ( int  i,
int  j,
int  k,
DOFStatus  sx,
DOFStatus  sy,
DOFStatus  sz 
)
inline
Deprecated:
Use PutStatus instead.

Definition at line 193 of file FreeFormTransformation3D.h.


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