9 #include "imstkPbdConstraint.h"    42         const Vec3d& p0, 
const Vec3d& p1, 
const Vec3d& p2, 
const Vec3d& p3,
    54                                  double& c, std::vector<Vec3d>& dcdx) 
override;
 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...
double getRestValue() const
Return the rest configuration for the constraint. 
double m_restAngle
Rest angle. 
Base Constraint class for Position based dynamics constraints. 
Angular constraint between two triangular faces. 
void initConstraint(const Vec3d &p0, const Vec3d &p1, const Vec3d &p2, const Vec3d &p3, const PbdParticleId &pIdx0, const PbdParticleId &pIdx1, const PbdParticleId &pIdx2, const PbdParticleId &pIdx3, const double k)
initConstraint p3 / | \ / | \ p0 | p1 \ | / \ | / p2 
Provides interface for accessing particles from a 2d array of PbdBody,Particles. 
bool computeValueAndGradient(PbdState &bodies, double &c, std::vector< Vec3d > &dcdx) override
Compute value and gradient of the constraint.