16 #ifndef BT_MULTIBODY_CONSTRAINT_H    17 #define BT_MULTIBODY_CONSTRAINT_H    80                                      bool angConstraint = 
false,
    92         void updateJacobianSizes();
    93         void allocateJacobiansMultiDof();
    99         virtual void finalizeMultiDof()=0;
   101         virtual int getIslandIdA() 
const =0;
   102         virtual int getIslandIdB() 
const =0;
   126                 m_data[dof] = appliedImpulse;
   141                 return m_data[m_posOffset + row];
   146                 m_data[m_posOffset + row] = pos;
   152                 return m_isUnilateral;
   160                 return &m_data[m_numRows + row * m_jacSizeBoth];
   164                 return &m_data[m_numRows + (row * m_jacSizeBoth)];
   168                 return &m_data[m_numRows + (row * m_jacSizeBoth) + m_jacSizeA];
   172                 return &m_data[m_numRows + (row * m_jacSizeBoth) + m_jacSizeA];
   177                 return m_maxAppliedImpulse;
   181                 m_maxAppliedImpulse = maxImp;
   188 #endif //BT_MULTIBODY_CONSTRAINT_H const btScalar * jacobianA(int row) const
btScalar * jacobianB(int row)
btMultiBody * getMultiBodyA()
1D constraint along a normal axis between bodyA and bodyB. It can be combined to solve contact and fr...
btAlignedObjectArray< btScalar > scratch_r
btAlignedObjectArray< btScalar > m_deltaVelocities
btAlignedObjectArray< btSolverBody > * m_solverBodyPool
btScalar m_maxAppliedImpulse
btScalar getAppliedImpulse(int dof)
virtual void setPivotInB(const btVector3 &pivotInB)
void internalSetAppliedImpulse(int dof, btScalar appliedImpulse)
btScalar * jacobianA(int row)
btScalar getPosition(int row) const
btAlignedObjectArray< btMatrix3x3 > scratch_m
btAlignedObjectArray< btScalar > m_deltaVelocitiesUnitImpulse
const btScalar * jacobianB(int row) const
virtual void setFrameInB(const btMatrix3x3 &frameInB)
The btIDebugDraw interface class allows hooking up a debug renderer to visually debug simulations...
btAlignedObjectArray< btScalar > m_data
btAlignedObjectArray< btScalar > m_jacobians
btVector3 can be used to represent 3D points and vectors. 
#define ATTRIBUTE_ALIGNED16(a)
btAlignedObjectArray< btVector3 > scratch_v
bool isUnilateral() const
void setPosition(int row, btScalar pos)
#define BT_DECLARE_ALIGNED_ALLOCATOR()
void setMaxAppliedImpulse(btScalar maxImp)
The btMatrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with...
btMultiBody * getMultiBodyB()
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btScalar getMaxAppliedImpulse() const