9 #include "imstkPbdConstraint.h" 29 const Vec3d& p0,
const Vec3d& p1,
const Vec3d& p2,
31 const double k = 2.5);
40 double& c, std::vector<Vec3d>& dcdx)
override;
Area constraint for triangular face.
std::pair< int, int > PbdParticleId
Index pair that refers to a particle in a PbdState. Index 0 is the body id, Index 1 is the particle i...
bool computeValueAndGradient(PbdState &bodies, double &c, std::vector< Vec3d > &dcdx) override
Compute value and gradient of constraint function.
void initConstraint(const Vec3d &p0, const Vec3d &p1, const Vec3d &p2, const PbdParticleId &pIdx0, const PbdParticleId &pIdx1, const PbdParticleId &pIdx2, const double k=2.5)
Initialize the constraint.
double getRestValue() const
Return the rest configuration for the constraint.
Base Constraint class for Position based dynamics constraints.
double m_restArea
Area at the rest position.
Provides interface for accessing particles from a 2d array of PbdBody,Particles.