16 #ifndef BT_SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_H    17 #define BT_SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_H    62         void setupFrictionConstraint(   
btSolverConstraint& solverConstraint, 
const btVector3& normalAxis,
int solverBodyIdA,
int  solverBodyIdB,
    67         void setupTorsionalFrictionConstraint(  
btSolverConstraint& solverConstraint, 
const btVector3& normalAxis,
int solverBodyIdA,
int  solverBodyIdB,
    72         btSolverConstraint&     addFrictionConstraint(
const btVector3& normalAxis,
int solverBodyIdA,
int solverBodyIdB,
int frictionIndex,
btManifoldPoint& cp,
const btVector3& rel_pos1,
const btVector3& rel_pos2,
btCollisionObject* colObj0,
btCollisionObject* colObj1, 
btScalar relaxation, 
btScalar desiredVelocity=0., 
btScalar cfmSlip=0.);
    73         btSolverConstraint&     addTorsionalFrictionConstraint(
const btVector3& normalAxis,
int solverBodyIdA,
int solverBodyIdB,
int frictionIndex,
btManifoldPoint& cp,
btScalar torsionalFriction, 
const btVector3& rel_pos1,
const btVector3& rel_pos2,
btCollisionObject* colObj0,
btCollisionObject* colObj1, 
btScalar relaxation, 
btScalar desiredVelocity=0, 
btScalar cfmSlip=0.f);
    81         void setFrictionConstraintImpulse( 
btSolverConstraint& solverConstraint, 
int solverBodyIdA,
int solverBodyIdB, 
    99         btScalar        resolveSplitPenetrationImpulseCacheFriendly(
   133         virtual void    reset();
   135         unsigned long btRand2();
   137         int btRandInt2 (
int n);
   156                 return m_resolveSingleConstraintRowGeneric;
   160                 m_resolveSingleConstraintRowGeneric = rowSolver;
   164                 return m_resolveSingleConstraintRowLowerLimit;
   168                 m_resolveSingleConstraintRowLowerLimit = rowSolver;
   185 #endif //BT_SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_H 
unsigned long getRandSeed() const
btPersistentManifold is a contact point cache, it stays persistent as long as objects are overlapping...
btConstraintArray m_tmpSolverContactFrictionConstraintPool
btConstraintArray m_tmpSolverContactRollingFrictionConstraintPool
btConstraintSolverType
btConstraintSolver provides solver interface 
void setConstraintRowSolverGeneric(btSingleConstraintRowSolver rowSolver)
1D constraint along a normal axis between bodyA and bodyB. It can be combined to solve contact and fr...
btSingleConstraintRowSolver m_resolveSingleConstraintRowGeneric
ManifoldContactPoint collects and maintains persistent contactpoints. 
btAlignedObjectArray< int > m_orderTmpConstraintPool
btSingleConstraintRowSolver getActiveConstraintRowSolverLowerLimit()
virtual btConstraintSolverType getSolverType() const
#define btSimdScalar
Until we get other contributions, only use SIMD on Windows, when using Visual Studio 2008 or later...
btAlignedObjectArray< btSolverBody > m_tmpSolverBodyPool
btConstraintArray m_tmpSolverContactConstraintPool
btCollisionObject can be used to manage collision detection objects. 
The btIDebugDraw interface class allows hooking up a debug renderer to visually debug simulations...
int m_maxOverrideNumSolverIterations
The btSequentialImpulseConstraintSolver is a fast SIMD implementation of the Projected Gauss Seidel (...
btVector3 can be used to represent 3D points and vectors. 
#define ATTRIBUTE_ALIGNED16(a)
The btSolverBody is an internal datastructure for the constraint solver. Only necessary data is packe...
btAlignedObjectArray< btTypedConstraint::btConstraintInfo1 > m_tmpConstraintSizesPool
TypedConstraint is the baseclass for Bullet constraints and vehicles. 
#define BT_DECLARE_ALIGNED_ALLOCATOR()
btAlignedObjectArray< int > m_orderFrictionConstraintPool
btAlignedObjectArray< int > m_orderNonContactConstraintPool
unsigned long m_btSeed2
m_btSeed2 is used for re-arranging the constraint rows. improves convergence/quality of friction ...
The btDispatcher interface class can be used in combination with broadphase to dispatch calculations ...
btSingleConstraintRowSolver getActiveConstraintRowSolverGeneric()
btSingleConstraintRowSolver m_resolveSingleConstraintRowLowerLimit
btConstraintArray m_tmpSolverNonContactConstraintPool
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
void setConstraintRowSolverLowerLimit(btSingleConstraintRowSolver rowSolver)
btAlignedObjectArray< int > m_kinematicBodyUniqueIdToSolverBodyTable
void setRandSeed(unsigned long seed)
btSimdScalar(* btSingleConstraintRowSolver)(btSolverBody &, btSolverBody &, const btSolverConstraint &)
btScalar m_leastSquaresResidual