20 #ifndef MIRTK_NonSelfIntersectionConstraint_H 21 #define MIRTK_NonSelfIntersectionConstraint_H 23 #include "mirtk/SurfaceConstraint.h" 24 #include "mirtk/SurfaceCollisions.h" 26 #include "vtkSmartPointer.h" 27 #include "vtkPolyData.h" 28 #include "vtkDataArray.h" 115 virtual void Update(
bool =
true);
133 virtual void WriteDataSets(
const char *,
const char *,
bool =
true)
const;
140 #endif // MIRTK_NonSelfIntersectionConstraint_H virtual void Reinitialize()
Reinitialize internal force term after change of input topology.
virtual ~NonSelfIntersectionConstraint()
Destructor.
mirtkPublicAttributeMacro(bool, FastCollisionTest)
Use fast approximate surface triangle collision test.
virtual void Initialize()
Initialize internal force term once input and parameters have been set.
virtual double Evaluate()
Compute penalty for current transformation estimate.
Array< Pair< string, string > > ParameterList
Ordered list of parameter name/value pairs.
Repels too close non-neighboring triangles.
mirtkAttributeMacro(SurfaceCollisions::CollisionsArray, Collisions)
Detected surface collisions.
virtual void Update(bool=true)
Update internal state upon change of input.
virtual bool SetWithoutPrefix(const char *, const char *)
Set parameter value from string.
void Init()
Common (re-)initialization steps of this class (non-virtual function!)
virtual ParameterList Parameter() const
Get parameter name/value pairs.
virtual void WriteDataSets(const char *, const char *, bool=true) const
Write input of force term.
void CopyAttributes(const NonSelfIntersectionConstraint &)
Copy attributes of this class from another instance.
mirtkReadOnlyAttributeMacro(int, NumberOfCollisions)
Number of found surface collisions.
virtual ParameterList Parameter() const
Get parameter key/value as string map.
NonSelfIntersectionConstraint & operator=(const NonSelfIntersectionConstraint &)
Assignment operator.
virtual void EvaluateGradient(double *, double, double)
Compute internal force w.r.t. transformation parameters.
NonSelfIntersectionConstraint(const char *="", double=1.0)
Constructor.