#include <SurfaceDistance.h>
Public Member Functions | |
virtual void | Initialize () |
Initialize distance measure once input and parameters have been set. | |
virtual void | Reinitialize () |
virtual void | WriteDataSets (const char *, const char *, bool=true) const |
Write input of data fidelity term. | |
virtual | ~SurfaceDistance () |
Destructor. | |
Public Member Functions inherited from mirtk::PointSetDistance | |
virtual void | Update (bool=true) |
Update moving input points and internal state of distance measure. | |
virtual void | WriteGradient (const char *, const char *) const |
Write gradient of data fidelity term w.r.t each transformed input. | |
virtual | ~PointSetDistance () |
Destructor. | |
Public Member Functions inherited from mirtk::DataFidelity | |
virtual | ~DataFidelity () |
Destructor. | |
Public Member Functions inherited from mirtk::EnergyTerm | |
virtual enum EnergyMeasure | EnergyMeasure () const =0 |
Energy measure implemented by this term. | |
void | Gradient (double *gradient, double step) |
virtual void | GradientStep (const double *gradient, double &min, double &max) const |
double | InitialValue () |
Returns initial value of energy term. | |
void | NormalizedGradient (double *gradient, double step) |
virtual ParameterList | Parameter () const |
Get parameter key/value as string map. | |
string | Prefix (const char *=NULL) const |
Prefix to be used for debug output files. | |
virtual void | Print (Indent=0) const |
Print debug information. | |
virtual double | RawValue (double) const |
double | RawValue () |
void | ResetInitialValue () |
Reset initial value of energy term. | |
void | ResetValue () |
Reset cached value of energy term. | |
virtual bool | Upgrade () |
Update energy term after convergence. | |
double | Value () |
Evaluate energy term. | |
virtual | ~EnergyTerm () |
Destructor. | |
Public Member Functions inherited from mirtk::Configurable | |
string | DefaultName () const |
virtual bool | Set (const char *, const char *) |
Set parameter value from string. | |
virtual | ~Configurable () |
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 | |
void | CopyAttributes (const SurfaceDistance &, int=-1, int=-1) |
Copy attributes of surface distance term. | |
SurfaceDistance & | operator= (const SurfaceDistance &) |
Assignment operator. | |
virtual void | ParametricGradient (const RegisteredPointSet *target, const GradientType *np_gradient, double *gradient, double weight) |
SurfaceDistance (const char *="", double=1.0) | |
Constructor. | |
SurfaceDistance (const SurfaceDistance &, int=-1, int=-1) | |
Copy constructor. | |
virtual void | WriteGradient (const char *, const RegisteredPointSet *, const GradientType *, const Array< int > *=NULL) const |
Write gradient of data fidelity term w.r.t each transformed input. | |
Protected Member Functions inherited from mirtk::PointSetDistance | |
void | AllocateGradientWrtSource (int) |
Allocate memory for (non-parametric) gradient w.r.t points of source. | |
void | AllocateGradientWrtTarget (int) |
Allocate memory for (non-parametric) gradient w.r.t points of target. | |
void | CopyAttributes (const PointSetDistance &, int=-1, int=-1) |
Copy attributes from other point set distance measure. | |
virtual void | EvaluateGradient (double *gradient, double step, double weight) |
void | Initialize (int, int) |
Initialize distance measure once input and parameters have been set. | |
mirtkAttributeMacro (bool, InitialUpdate) | |
Whether Update has not been called since initialization. | |
mirtkComponentMacro (GradientType, GradientWrtTarget) | |
Memory for (non-parametric) gradient w.r.t points of target. | |
mirtkComponentMacro (GradientType, GradientWrtSource) | |
Memory for (non-parametric) gradient w.r.t points of source. | |
mirtkPublicAggregateMacro (RegisteredPointSet, Target) | |
First point set. | |
mirtkPublicAggregateMacro (RegisteredPointSet, Source) | |
Second point set. | |
virtual void | NonParametricGradient (const RegisteredPointSet *target, GradientType *gradient)=0 |
PointSetDistance & | operator= (const PointSetDistance &) |
Assignment operator. | |
PointSetDistance (const char *="", double=1.0) | |
Constructor. | |
PointSetDistance (const PointSetDistance &, int=-1, int=-1) | |
Copy constructor. | |
void | Reinitialize (int, int) |
Protected Member Functions inherited from mirtk::DataFidelity | |
DataFidelity (const char *="", double=1.0) | |
Constructor. | |
DataFidelity (const DataFidelity &) | |
Copy constructor. | |
DataFidelity & | operator= (const DataFidelity &) |
Assignment operator. | |
virtual bool | SetWithPrefix (const char *, const char *) |
Set parameter value from string. | |
Protected Member Functions inherited from mirtk::EnergyTerm | |
EnergyTerm (const char *="", double=1.0) | |
Constructor. | |
EnergyTerm (const EnergyTerm &) | |
Copy constructor. | |
virtual double | Evaluate ()=0 |
Evaluate unweighted energy term. | |
EnergyTerm & | operator= (const EnergyTerm &) |
Assignment operator. | |
virtual bool | SetWithoutPrefix (const char *, const char *) |
Set parameter value from string. | |
Protected Member Functions inherited from mirtk::Configurable | |
Configurable (const char *="") | |
Constructor. | |
Configurable (const Configurable &) | |
Copy constructor. | |
string | DefaultPrefix () const |
Get default object name prefix (if any) | |
bool | HasName () const |
Whether this object has an explicit name. | |
bool | HasPrefix () const |
Whether this object has either an explicit name or default prefix. | |
template<class T > | |
bool | InsertWithPrefix (ParameterList &, string, T) const |
Insert parameter into name/value list with object name prefix. | |
bool | InsertWithPrefix (ParameterList &, const ParameterList &) const |
Insert parameters into name/value list with object name prefix. | |
Configurable & | operator= (const Configurable &) |
Assignment operator. | |
string | ParameterNameWithoutPrefix (const char *) const |
Get name of parameter without object name prefix. | |
string | ParameterNameWithPrefix (const string &) const |
Get name of parameter with default object name prefix. | |
string | ParameterNameWithPrefix (const char *) const |
Get name of parameter with default object name prefix. | |
Protected Member Functions inherited from mirtk::Observable | |
Observable () | |
Default constructor. | |
Observable (const Observable &) | |
Copy constructor. | |
Observable & | operator= (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::PointSetDistance | |
typedef Vector3D< double > | GradientType |
Type of gradient w.r.t a single transformed data point. | |
Public Types inherited from mirtk::EnergyTerm | |
typedef ObjectFactory< enum EnergyMeasure, EnergyTerm > | FactoryType |
Type of energy term factory. | |
Static Public Member Functions inherited from mirtk::PointSetDistance | |
static PointSetDistance * | New (PointSetDistanceMeasure, const char *="", double=1.0) |
Instantiate specified similarity measure. | |
Static Public Member Functions inherited from mirtk::EnergyTerm | |
static FactoryType & | Factory () |
Get global energy term factory instance. | |
static EnergyTerm * | New (EnergyMeasure, const char *="", double=1.0) |
Construct new energy term. | |
static EnergyTerm * | TryNew (EnergyMeasure, const char *="", double=1.0) |
Construct new energy term or return nullptr if term not available. | |
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) |
Base class for point set surface distance measures
Subclasses of this base class are evaluating the distance of the surfaces of the input point sets. Note that also other, more generic, point set distance types which are subclasses of PointSetDistance may be used for surface meshes as well, given that the input point sets are surfaces.
Definition at line 39 of file SurfaceDistance.h.
|
protectedvirtual |
Convert non-parametric gradient of polydata distance measure into gradient w.r.t transformation parameters
This function calls Transformation::ParametricGradient of the transformation to apply the chain rule in order to obtain the gradient of the distance measure w.r.t the transformation parameters. It adds the weighted gradient to the final registration energy gradient.
[in] | target | Transformed data set. |
[in] | np_gradient | Point-wise non-parametric gradient. |
[in,out] | gradient | Gradient to which the computed parametric gradient is added, after multiplication by the given weight . |
[in] | weight | Weight of polydata distance measure. |
Reimplemented from mirtk::PointSetDistance.
|
virtual |
Reinitialize distance measure after change of input topology
This function is called in particular when an input surface has been reparameterized, e.g., by a local remeshing filter.
Reimplemented from mirtk::PointSetDistance.