btVector3 m_relpos1CrossNormal
virtual int getIslandIdB() const
btSpatialMotionVector m_axes[6]
btMultiBodyConstraint * m_orgConstraint
virtual int getIslandIdA() const
btScalar m_rhsPenetration
virtual void finalizeMultiDof()
void setPosition(int row, btScalar pos)
btTransform m_cachedWorldTransform
btMultiBody * m_multiBodyB
1D constraint along a normal axis between bodyA and bodyB. It can be combined to solve contact and fr...
btScalar m_maxAppliedImpulse
btScalar fillMultiBodyConstraint(btMultiBodySolverConstraint &solverConstraint, btMultiBodyJacobianData &data, btScalar *jacOrgA, btScalar *jacOrgB, const btVector3 &constraintNormalAng, const btVector3 &constraintNormalLin, const btVector3 &posAworld, const btVector3 &posBworld, btScalar posError, const btContactSolverInfo &infoGlobal, btScalar lowerLimit, btScalar upperLimit, bool angConstraint=false, btScalar relaxation=1.f, bool isFriction=false, btScalar desiredVelocity=0, btScalar cfmSlip=0)
btScalar getPosition(int row) const
const btMultibodyLink & getLink(int index) const
virtual void createConstraintRows(btMultiBodyConstraintArray &constraintRows, btMultiBodyJacobianData &data, const btContactSolverInfo &infoGlobal)
btMultiBody * m_multiBodyA
class btMultiBodyLinkCollider * m_collider
void allocateJacobiansMultiDof()
btScalar * jacobianA(int row)
btScalar getJointPos(int i) const
eFeatherstoneJointType m_jointType
btVector3 m_contactNormal1
btScalar * jacobianB(int row)
btVector3 m_relpos2CrossNormal
btVector3 m_contactNormal2
virtual ~btMultiBodyJointLimitConstraint()
btMultiBodyJointLimitConstraint(btMultiBody *body, int link, btScalar lower, btScalar upper)
This file was written by Erwin Coumans.
const btMultiBodyLinkCollider * getBaseCollider() const