#include <SpringForce.h>
Public Member Functions | |
SpringForce & | operator= (const SpringForce &) |
Assignment operator. | |
SpringForce (const char *="", double=1.0) | |
Constructor. | |
SpringForce (const SpringForce &) | |
Copy constructor. | |
virtual | ~SpringForce () |
Destructor. | |
Public Member Functions inherited from mirtk::SurfaceConstraint | |
virtual | ~SurfaceConstraint () |
Destructor. | |
Public Member Functions inherited from mirtk::InternalForce | |
virtual ParameterList | Parameter () const |
Get parameter key/value as string map. | |
virtual | ~InternalForce () |
Destructor. | |
Public Member Functions inherited from mirtk::PointSetForce | |
virtual void | Initialize () |
Initialize force term once input and parameters have been set. | |
virtual void | Reinitialize () |
virtual void | Update (bool=true) |
Update moving input points and internal state of force term. | |
virtual void | WriteDataSets (const char *, const char *, bool=true) const |
Write input of force term. | |
virtual void | WriteGradient (const char *, const char *) const |
Write gradient of force term. | |
virtual | ~PointSetForce () |
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) |
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 | |
virtual double | Evaluate () |
Evaluate energy of internal force term. | |
virtual void | EvaluateGradient (double *, double, double) |
Evaluate internal force w.r.t. transformation parameters or surface nodes. | |
Protected Member Functions inherited from mirtk::SurfaceConstraint | |
SurfaceConstraint & | operator= (const SurfaceConstraint &) |
Assignment operator. | |
SurfaceConstraint (const char *="", double=1.0) | |
Constructor. | |
SurfaceConstraint (const SurfaceConstraint &) | |
Copy constructor. | |
Protected Member Functions inherited from mirtk::InternalForce | |
vtkDataArray * | ExternalMagnitude () const |
Get magnitude array of external force term. | |
InternalForce (const char *="", double=1.0) | |
Constructor. | |
InternalForce (const InternalForce &) | |
Copy constructor. | |
InternalForce & | operator= (const InternalForce &) |
Assignment operator. | |
virtual bool | SetWithoutPrefix (const char *, const char *) |
Set parameter value from string. | |
Protected Member Functions inherited from mirtk::PointSetForce | |
void | AddPointData (const char *name, vtkSmartPointer< vtkDataArray > &data, bool global=false) |
vtkDataArray * | AddPointData (const char *name, int c=1, int type=VTK_FLOAT, bool global=false) |
void | AllocateCount (int) |
Allocate _Count memory. | |
void | AllocateGradient (int) |
Allocate memory for (non-parametric) gradient. | |
void | CopyAttributes (const PointSetForce &) |
Copy attributes of this class from another instance. | |
vtkPointSet * | DeformedPointSet () const |
Get point set on which this force is acting on. | |
vtkPolyData * | DeformedSurface () const |
Get point set on which this force is acting on. | |
const EdgeTable * | Edges () const |
Get edge table of point set mesh. | |
vtkSmartPointer< vtkPoints > | GetInitialPoints () const |
Get initial points, possibly pre-transformed by global transformation. | |
void | Init () |
Common (re-)initialization steps of this class only (non-virtual function!) | |
vtkDataArray * | InitialStatus () const |
Get initial point status array. | |
mirtkAggregateMacro (int, Count) | |
mirtkAttributeMacro (int, GradientSize) | |
Size of gradient vector. | |
mirtkAttributeMacro (int, CountSize) | |
Size of count vector. | |
mirtkAttributeMacro (bool, InitialUpdate) | |
Whether Update has not been called since initialization. | |
mirtkComponentMacro (GradientType, Gradient) | |
Negative node forces/gradient of external force term. | |
mirtkPublicAggregateMacro (RegisteredPointSet, PointSet) | |
Transformed point set. | |
mirtkPublicAttributeMacro (int, GradientAveraging) | |
Number of gradient averaging iterations. | |
mirtkPublicAttributeMacro (bool, AverageSignedGradients) | |
mirtkPublicAttributeMacro (bool, AverageGradientMagnitude) | |
Whether to only average the magnitude of the gradient vectors. | |
mirtkReadOnlyAttributeMacro (bool, SurfaceForce) | |
mirtkReadOnlyAttributeMacro (int, NumberOfPoints) | |
Number of points. | |
const NodeNeighbors * | Neighbors (int=-1) const |
Get edge-connectivity table of point set node neighbors. | |
vtkDataArray * | Normals () const |
Get point normals array. | |
PointSetForce & | operator= (const PointSetForce &) |
Assignment operator. | |
vtkPointSet * | OriginalPointSet () const |
Get point set on which this force is acting on. | |
vtkPolyData * | OriginalSurface () const |
Get point set on which this force is acting on. | |
vtkPointData * | PointData () const |
Get point data. | |
vtkDataArray * | PointData (const char *name, bool optional=false) const |
vtkPoints * | Points () const |
Get points of point set on which this force is acting on. | |
PointSetForce (const char *="", double=1.0) | |
Constructor. | |
PointSetForce (const PointSetForce &) | |
Copy constructor. | |
void | RemovePointData (const char *name) |
SharedPtr< const EdgeTable > | SharedEdgeTable () const |
Get edge table of point set mesh. | |
vtkDataArray * | Status () const |
Get point status array. | |
Protected Member Functions inherited from mirtk::EnergyTerm | |
EnergyTerm (const char *="", double=1.0) | |
Constructor. | |
EnergyTerm (const EnergyTerm &) | |
Copy constructor. | |
EnergyTerm & | operator= (const EnergyTerm &) |
Assignment operator. | |
virtual bool | SetWithPrefix (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::PointSetForce | |
typedef RegisteredPointSet::EdgeTable | EdgeTable |
Adjacency matrix with edge IDs. | |
typedef Vector3D< double > | GradientType |
Type of gradient w.r.t a single transformed data point. | |
typedef RegisteredPointSet::NodeNeighbors | NodeNeighbors |
Table of n-connected node neighbors. | |
Public Types inherited from mirtk::EnergyTerm | |
typedef ObjectFactory< enum EnergyMeasure, EnergyTerm > | FactoryType |
Type of energy term factory. | |
Static Public Member Functions inherited from mirtk::InternalForce | |
static InternalForce * | New (InternalForceTerm, const char *="", double=1.0) |
Instantiate new constraint representing specified internal forces. | |
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) |
Surface smoothness force based on discrete Laplace operator
This internal deformable surface force is based on the umbrella operator which approximates the discrete Laplace operator.
It corresponds to the "spring forces" employed by FreeSurfer's surface tools:
Dale et al., Cortical Surface-Based Analysis I: Segmentation and Surface Reconstruction. NeuroImage, 9(2), 179–194 (1999).
Fischl et al., Cortical Surface-Based Analysis II: Inflation, Flattening, and a Surface-Based Coordinate System. NeuroImage, 9(2), 195–207 (1999).
And the "tensile force" used by McInerney and Terzopoulos:
McInerney and Terzopoulos, Topology adaptive deformable surfaces for medical image volume segmentation. IEEE Transactions on Medical Imaging, 18(10), 840–850, doi:10.1109/42.811261 (1999)
Definition at line 56 of file SpringForce.h.