20 #ifndef MIRTK_EulerMethod_H 21 #define MIRTK_EulerMethod_H 23 #include "mirtk/LocalOptimizer.h" 25 #include "vtkSmartPointer.h" 26 #include "vtkDataArray.h" 32 class DeformableSurfaceModel;
57 mirtkPublicAttributeMacro(
double, StepLength);
60 mirtkPublicAttributeMacro(
bool, NormalizeStepLength);
70 mirtkPublicAttributeMacro(
double, MaximumDisplacement);
73 mirtkPublicAttributeMacro(vtkSmartPointer<vtkDataArray>, Displacement);
76 mirtkPublicAttributeMacro(vtkSmartPointer<vtkDataArray>, NormalDisplacement);
79 mirtkReadOnlyComponentMacro(
double, Gradient);
82 mirtkReadOnlyAttributeMacro(
double, LastDelta);
113 virtual bool Set(
const char *,
const char *);
127 virtual double Run();
158 #endif // MIRTK_EulerMethod_H
virtual void Initialize()
EulerMethod & operator=(const EulerMethod &)
Assignment operator.
virtual double Run()
Integrate deformable surface model.
Array< Pair< string, string > > ParameterList
Ordered list of parameter name/value pairs.
virtual ParameterList Parameter() const
Get parameters as key/value as string map.
virtual bool Set(const char *, const char *)
Set parameter value from string.
Explicit Euler method for deformable surface models.
virtual void Finalize()
Finalize optimization.
virtual void TruncateDisplacement(bool force=false)
virtual ~EulerMethod()
Destructor.
virtual ParameterList Parameter() const
Get parameters as key/value as string map.
virtual void UpdateDisplacement()
Update node displacements.
EulerMethod(ObjectiveFunction *=NULL)
Constructor.
virtual double GradientNorm() const
Get node force normalization factor.
virtual bool RemeshModel()
Perform local adaptive remeshing (optional)
virtual void UpdateNormalDisplacement()
Update recorded node displacement in normal direction.