24 #define BTMBFIXEDCONSTRAINT_DIM 6 107 for (
int i=0;i<numDim;i++)
163 constraintNormalLin[i] = 1;
164 posError = (pivotAworld-pivotBworld).
dot(constraintNormalLin);
166 constraintNormalLin, pivotAworld, pivotBworld,
173 constraintNormalAng = frameAworld.
getColumn(i%3);
174 posError = angleDiff[i%3];
176 constraintNormalLin, pivotAworld, pivotBworld,
btMatrix3x3 inverse() const
Return the inverse of the matrix.
virtual int getIslandIdA() const
virtual int getIslandIdB() const
static bool matrixToEulerXYZ(const btMatrix3x3 &mat, btVector3 &xyz)
const btMultibodyLink & getLink(int index) const
btVector3 m_relpos1CrossNormal
1D constraint along a normal axis between bodyA and bodyB. It can be combined to solve contact and fr...
btVector3 m_contactNormal2
void setValue(const btScalar &_x, const btScalar &_y, const btScalar &_z)
btScalar m_maxAppliedImpulse
btVector3 m_angularComponentA
btVector3 m_angularComponentB
class btMultiBodyLinkCollider * m_collider
btMultiBodyConstraint * m_orgConstraint
btMatrix3x3 localFrameToWorld(int i, const btMatrix3x3 &mat) const
btVector3 getColumn(int i) const
Get a column of the matrix as a vector.
btRigidBody * m_rigidBodyB
virtual void createConstraintRows(btMultiBodyConstraintArray &constraintRows, btMultiBodyJacobianData &data, const btContactSolverInfo &infoGlobal)
const btTransform & getCenterOfMassTransform() const
virtual ~btMultiBodyFixedConstraint()
btQuaternion getOrientation() const
#define BTMBFIXEDCONSTRAINT_DIM
This file was written by Erwin Coumans.
The btIDebugDraw interface class allows hooking up a debug renderer to visually debug simulations...
The btRigidBody is the main class for rigid body objects.
btRigidBody * m_rigidBodyA
btAlignedObjectArray< btScalar > m_data
btVector3 can be used to represent 3D points and vectors.
int getCompanionId() const
virtual void drawTransform(const btTransform &transform, btScalar orthoLen)
void resize(int newsize, const T &fillData=T())
btMatrix3x3 transpose() const
Return the transpose of the matrix.
btVector3 m_relpos2CrossNormal
The btMatrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with...
btScalar dot(const btQuaternion &q1, const btQuaternion &q2)
Calculate the dot product between two quaternions.
const btMultiBodyLinkCollider * getBaseCollider() const
btMultiBodyFixedConstraint(btMultiBody *body, int link, btRigidBody *bodyB, const btVector3 &pivotInA, const btVector3 &pivotInB, const btMatrix3x3 &frameInA, const btMatrix3x3 &frameInB)
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)
btVector3 localPosToWorld(int i, const btVector3 &vec) const
T & expandNonInitializing()
btVector3 m_contactNormal1
virtual void debugDraw(class btIDebugDraw *drawer)
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
virtual void finalizeMultiDof()