152 fillMultiBodyConstraint(constraintRow,data,
jacobianA(row),
jacobianB(row),dummy,dummy,dummy,dummy,posError,infoGlobal,-
m_maxAppliedImpulse,
m_maxAppliedImpulse,
false,1,
false,desiredRelativeVelocity);
btScalar * jacobianB(int row)
const btMultibodyLink & getLink(int index) const
btVector3 m_relpos1CrossNormal
virtual int getIslandIdA() const
1D constraint along a normal axis between bodyA and bodyB. It can be combined to solve contact and fr...
btVector3 m_contactNormal2
btScalar m_maxAppliedImpulse
eFeatherstoneJointType m_jointType
class btMultiBodyLinkCollider * m_collider
btMultiBodyConstraint * m_orgConstraint
btScalar * jacobianA(int row)
btScalar * getJointVelMultiDof(int i)
btScalar m_relativePositionTarget
virtual ~btMultiBodyGearConstraint()
btSpatialMotionVector m_axes[6]
virtual void createConstraintRows(btMultiBodyConstraintArray &constraintRows, btMultiBodyJacobianData &data, const btContactSolverInfo &infoGlobal)
virtual void finalizeMultiDof()
btVector3 m_relpos2CrossNormal
btTransform m_cachedWorldTransform
const btMultiBodyLinkCollider * getBaseCollider() const
void allocateJacobiansMultiDof()
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)
btMultiBodyGearConstraint(btMultiBody *bodyA, int linkA, btMultiBody *bodyB, int linkB, const btVector3 &pivotInA, const btVector3 &pivotInB, const btMatrix3x3 &frameInA, const btMatrix3x3 &frameInB)
This file was written by Erwin Coumans.
btVector3 m_contactNormal1
btScalar * getJointPosMultiDof(int i)
virtual int getIslandIdB() const