108 for (
int i=0;i<numDim;i++)
126#ifndef BTMBP2PCONSTRAINT_BLOCK_ANGULAR_MOTION_TEST
127 contactNormalOnB[i] = -1;
129 contactNormalOnB[i%3] = -1;
157 btScalar posError = i < 3 ? (pivotAworld-pivotBworld).
dot(contactNormalOnB) : 0;
159#ifndef BTMBP2PCONSTRAINT_BLOCK_ANGULAR_MOTION_TEST
163 contactNormalOnB, pivotAworld, pivotBworld,
176 const btVector3 &normalAng = i >= 3 ? contactNormalOnB : dummy;
177 const btVector3 &normalLin = i < 3 ? contactNormalOnB : dummy;
#define BTMBP2PCONSTRAINT_DIM
This file was written by Erwin Coumans.
btAlignedObjectArray< btMultiBodySolverConstraint > btMultiBodyConstraintArray
btAlignedObjectArray< btScalar > m_data
btScalar * jacobianA(int row)
btScalar m_maxAppliedImpulse
btMultiBodyConstraint(btMultiBody *bodyA, btMultiBody *bodyB, int linkA, int linkB, int numRows, bool isUnilateral)
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)
btRigidBody * m_rigidBodyA
btMultiBodyPoint2Point(btMultiBody *body, int link, btRigidBody *bodyB, const btVector3 &pivotInA, const btVector3 &pivotInB)
virtual ~btMultiBodyPoint2Point()
virtual void finalizeMultiDof()
virtual int getIslandIdB() const
virtual void debugDraw(class btIDebugDraw *drawer)
virtual void createConstraintRows(btMultiBodyConstraintArray &constraintRows, btMultiBodyJacobianData &data, const btContactSolverInfo &infoGlobal)
btRigidBody * m_rigidBodyB
virtual int getIslandIdA() const
The btRigidBody is the main class for rigid body objects.
btAlignedObjectArray< btScalar > scratch_r
btAlignedObjectArray< btMatrix3x3 > scratch_m
btAlignedObjectArray< btVector3 > scratch_v
1D constraint along a normal axis between bodyA and bodyB. It can be combined to solve contact and fr...
btMultiBodyConstraint * m_orgConstraint
btVector3 m_relpos1CrossNormal
btVector3 m_contactNormal2
btVector3 m_contactNormal1
btVector3 m_angularComponentA
btVector3 m_relpos2CrossNormal
btVector3 m_angularComponentB