#include <NonSelfIntersectionConstraint.h>


Public Member Functions | |
| virtual void | Initialize () |
| Initialize internal force term once input and parameters have been set. | |
| NonSelfIntersectionConstraint (const char *="", double=1.0) | |
| Constructor. | |
| NonSelfIntersectionConstraint (const NonSelfIntersectionConstraint &) | |
| Copy constructor. | |
| NonSelfIntersectionConstraint & | operator= (const NonSelfIntersectionConstraint &) |
| Assignment operator. | |
| virtual ParameterList | Parameter () const |
| Get parameter name/value pairs. | |
| virtual void | Reinitialize () |
| Reinitialize internal force term after change of input topology. | |
| virtual void | Update (bool=true) |
| Update internal state upon change of input. | |
| virtual void | WriteDataSets (const char *, const char *, bool=true) const |
| Write input of force term. | |
| virtual | ~NonSelfIntersectionConstraint () |
| Destructor. | |
Public Member Functions inherited from mirtk::SurfaceConstraint | |
| virtual | ~SurfaceConstraint () |
| Destructor. | |
Public Member Functions inherited from mirtk::InternalForce | |
| virtual | ~InternalForce () |
| Destructor. | |
Public Member Functions inherited from mirtk::PointSetForce | |
| 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 | |
| void | CopyAttributes (const NonSelfIntersectionConstraint &) |
| Copy attributes of this class from another instance. | |
| virtual double | Evaluate () |
| Compute penalty for current transformation estimate. | |
| virtual void | EvaluateGradient (double *, double, double) |
| Compute internal force w.r.t. transformation parameters. | |
| void | Init () |
| Common (re-)initialization steps of this class (non-virtual function!) | |
| mirtkAttributeMacro (SurfaceCollisions::CollisionsArray, Collisions) | |
| Detected surface collisions. | |
| mirtkPublicAttributeMacro (bool, FastCollisionTest) | |
| Use fast approximate surface triangle collision test. | |
| mirtkPublicAttributeMacro (double, MinDistance) | |
| mirtkPublicAttributeMacro (double, MaxAngle) | |
| mirtkReadOnlyAttributeMacro (int, NumberOfCollisions) | |
| Number of found surface collisions. | |
| virtual bool | SetWithoutPrefix (const char *, const char *) |
| Set parameter value from string. | |
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. | |
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) |
Non-self intersecting surface forces
This internal force makes nearby non-adjacent faces to repel each other in order to avoid self-intersection of the surface.
Park et al., A non-self-intersecting adaptive deformable surface for complex boundary extraction from volumetric images, 25, 421–440 (2001).
Definition at line 43 of file NonSelfIntersectionConstraint.h.
|
protected |
Minimum distance Set to non-positive value to use average edge length.
|
protected |
Maximum angle between face normal and center to closest point vector required for collision to be detected