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.