Skip to content

Libs/Optimize/Constraints/Constraint.h

Namespaces

Name
shapeworks
User usage reporting (telemetry)

Classes

Name
class shapeworks::Constraint

Source code

```cpp

pragma once

include

include

include

include

include "ConstraintType.h"

namespace shapeworks {

class Constraint { public: bool isViolated(const vnl_vector &pt) const { return isViolated(Eigen::Vector3d(pt[0], pt[1], pt[2])); } virtual bool isViolated(const Eigen::Vector3d &pt) const = 0; virtual void print() const = 0;

// For augmented lagrangian void setMus(std::vector inmu) { mus_ = inmu; } std::vector getMus() { return mus_; }

virtual Eigen::Vector3d constraintGradient(const Eigen::Vector3d &pt) const = 0; virtual double constraintEval(const Eigen::Vector3d &pt) const = 0;

void updateMu(const Eigen::Vector3d &pt, double C, size_t index);

Eigen::Vector3d lagragianGradient(const Eigen::Vector3d &pt, double C, size_t index) const;

protected: int sgn(double val) { return (double(0) < val) - (val < double(0)); }

// For augmented lagrangian std::vector mus_; };

} // namespace shapeworks ```


Updated on 2026-03-31 at 16:02:11 +0000