16 #ifndef BT_MULTIBODY_CONSTRAINT_H 17 #define BT_MULTIBODY_CONSTRAINT_H 85 void finalizeMultiDof();
87 virtual int getIslandIdA()
const =0;
88 virtual int getIslandIdB()
const =0;
113 return m_data[m_posOffset + row];
118 m_data[m_posOffset + row] = pos;
124 return m_isUnilateral;
132 return &m_data[m_numRows + row * m_jacSizeBoth];
136 return &m_data[m_numRows + (row * m_jacSizeBoth)];
140 return &m_data[m_numRows + (row * m_jacSizeBoth) + m_jacSizeA];
144 return &m_data[m_numRows + (row * m_jacSizeBoth) + m_jacSizeA];
149 return m_maxAppliedImpulse;
153 m_maxAppliedImpulse = maxImp;
160 #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 * jacobianA(int row)
btScalar getPosition(int row) const
btAlignedObjectArray< btMatrix3x3 > scratch_m
btAlignedObjectArray< btScalar > m_deltaVelocitiesUnitImpulse
const btScalar * jacobianB(int row) const
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.
btAlignedObjectArray< btVector3 > scratch_v
bool isUnilateral() const
void setPosition(int row, btScalar pos)
void setMaxAppliedImpulse(btScalar maxImp)
btMultiBody * getMultiBodyB()
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btScalar getMaxAppliedImpulse() const