16 #ifndef BT_SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_H    17 #define BT_SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_H    52         void setupFrictionConstraint(   
btSolverConstraint& solverConstraint, 
const btVector3& normalAxis,
int solverBodyIdA,
int  solverBodyIdB,
    57         void setupRollingFrictionConstraint(    
btSolverConstraint& solverConstraint, 
const btVector3& normalAxis,
int solverBodyIdA,
int  solverBodyIdB,
    62         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.);
    63         btSolverConstraint&     addRollingFrictionConstraint(
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.f);
    71         void setFrictionConstraintImpulse( 
btSolverConstraint& solverConstraint, 
int solverBodyIdA,
int solverBodyIdB, 
    85         void    resolveSplitPenetrationSIMD(
    89         void    resolveSplitPenetrationImpulseCacheFriendly(
   123         virtual void    reset();
   125         unsigned long btRand2();
   127         int btRandInt2 (
int n);
   146                 return m_resolveSingleConstraintRowGeneric;
   150                 m_resolveSingleConstraintRowGeneric = rowSolver;
   154                 return m_resolveSingleConstraintRowLowerLimit;
   158                 m_resolveSingleConstraintRowLowerLimit = rowSolver;
   175 #endif //BT_SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_H 
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()
#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
unsigned long getRandSeed() const 
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)
virtual btConstraintSolverType getSolverType() const 
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)
void setRandSeed(unsigned long seed)
btSimdScalar(* btSingleConstraintRowSolver)(btSolverBody &, btSolverBody &, const btSolverConstraint &)