16 #ifndef BT_SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_H
17 #define BT_SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_H
47 void setupFrictionConstraint(
btSolverConstraint& solverConstraint,
const btVector3& normalAxis,
int solverBodyIdA,
int solverBodyIdB,
52 void setupRollingFrictionConstraint(
btSolverConstraint& solverConstraint,
const btVector3& normalAxis,
int solverBodyIdA,
int solverBodyIdB,
57 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.);
58 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,
77 void resolveSplitPenetrationSIMD(
78 btSolverBody& bodyA,btSolverBody& bodyB,
81 void resolveSplitPenetrationImpulseCacheFriendly(
82 btSolverBody& bodyA,btSolverBody& bodyB,
87 void initSolverBody(btSolverBody* solverBody,
btCollisionObject* collisionObject);
91 void resolveSingleConstraintRowGenericSIMD(btSolverBody& bodyA,btSolverBody& bodyB,
const btSolverConstraint& contactConstraint);
93 void resolveSingleConstraintRowLowerLimit(btSolverBody& bodyA,btSolverBody& bodyB,
const btSolverConstraint& contactConstraint);
95 void resolveSingleConstraintRowLowerLimitSIMD(btSolverBody& bodyA,btSolverBody& bodyB,
const btSolverConstraint& contactConstraint);
120 virtual void reset();
122 unsigned long btRand2();
124 int btRandInt2 (
int n);
140 #endif //BT_SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_H