16 #ifndef BT_SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_H
17 #define BT_SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_H
46 void setupFrictionConstraint(
btSolverConstraint& solverConstraint,
const btVector3& normalAxis,
int solverBodyIdA,
int solverBodyIdB,
51 void setupRollingFrictionConstraint(
btSolverConstraint& solverConstraint,
const btVector3& normalAxis,
int solverBodyIdA,
int solverBodyIdB,
56 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.);
57 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);
65 void setFrictionConstraintImpulse(
btSolverConstraint& solverConstraint,
int solverBodyIdA,
int solverBodyIdB,
79 void resolveSplitPenetrationSIMD(
83 void resolveSplitPenetrationImpulseCacheFriendly(
122 virtual void reset();
124 unsigned long btRand2();
126 int btRandInt2 (
int n);
147 #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
1D constraint along a normal axis between bodyA and bodyB. It can be combined to solve contact and fr...
ManifoldContactPoint collects and maintains persistent contactpoints.
btAlignedObjectArray< int > m_orderTmpConstraintPool
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()
void resolveSingleConstraintRowGeneric(PfxSolverBody &body1, PfxSolverBody &body2, const btSolverConstraint &c)
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 ...
btConstraintArray m_tmpSolverNonContactConstraintPool
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
void setRandSeed(unsigned long seed)