9 #include "imstkPbdConstraint.h" 37 const Vec3d& initPos0,
const Vec3d& initPos1,
const Vec3d& initPos2,
42 const double restLength,
52 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...
bool computeValueAndGradient(PbdState &bodies, double &c, std::vector< Vec3d > &dcdx) override
Compute value and gradient of constraint function.
double m_restLength
Rest length.
double getRestValue() const
Return the rest configuration for the constraint.
Bend constraint between two segments. Maintains angle between the two segments in the initial configu...
Base Constraint class for Position based dynamics constraints.
Provides interface for accessing particles from a 2d array of PbdBody,Particles.
void initConstraint(const Vec3d &initPos0, const Vec3d &initPos1, const Vec3d &initPos2, const PbdParticleId &pIdx0, const PbdParticleId &pIdx1, const PbdParticleId &pIdx2, const double k)
Initialize the constraint p0 \ \ p1 / / p2.