9 #include "imstkPbdConstraint.h" 30 const Vec3d& p0,
const Vec3d& p1,
42 const double k = 1e5);
45 double& c, std::vector<Vec3d>& dcdx)
override;
double m_restLength
Rest length between the nodes.
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...
void initConstraint(const Vec3d &p0, const Vec3d &p1, const PbdParticleId &pIdx0, const PbdParticleId &pIdx1, const double k=1e5)
Initialize the constraint with resting length as the length between the two points.
Distance constraints between two nodal points.
bool computeValueAndGradient(PbdState &bodies, double &c, std::vector< Vec3d > &dcdx) override
Compute value and gradient of the constraint.
Base Constraint class for Position based dynamics constraints.
double getRestValue() const
Return the rest configuration for the constraint.
Provides interface for accessing particles from a 2d array of PbdBody,Particles.