The btSequentialImpulseConstraintSolver is a fast SIMD implementation of the Projected Gauss Seidel (iterative LCP) method. More...
#include <btSequentialImpulseConstraintSolver.h>


The btSequentialImpulseConstraintSolver is a fast SIMD implementation of the Projected Gauss Seidel (iterative LCP) method.
Definition at line 28 of file btSequentialImpulseConstraintSolver.h.
| btSequentialImpulseConstraintSolver::btSequentialImpulseConstraintSolver | ( | ) |
Definition at line 39 of file btSequentialImpulseConstraintSolver.cpp.
| btSequentialImpulseConstraintSolver::~btSequentialImpulseConstraintSolver | ( | ) | [virtual] |
Definition at line 45 of file btSequentialImpulseConstraintSolver.cpp.
| btSolverConstraint & btSequentialImpulseConstraintSolver::addFrictionConstraint | ( | const btVector3 & | normalAxis, | |
| btRigidBody * | solverBodyA, | |||
| btRigidBody * | solverBodyB, | |||
| int | frictionIndex, | |||
| btManifoldPoint & | cp, | |||
| const btVector3 & | rel_pos1, | |||
| const btVector3 & | rel_pos2, | |||
| btCollisionObject * | colObj0, | |||
| btCollisionObject * | colObj1, | |||
| btScalar | relaxation, | |||
| btScalar | desiredVelocity = 0., |
|||
| btScalar | cfmSlip = 0. | |||
| ) | [protected] |
Definition at line 333 of file btSequentialImpulseConstraintSolver.cpp.
| unsigned long btSequentialImpulseConstraintSolver::btRand2 | ( | ) |
Definition at line 243 of file btSequentialImpulseConstraintSolver.cpp.
| int btSequentialImpulseConstraintSolver::btRandInt2 | ( | int | n | ) |
Definition at line 252 of file btSequentialImpulseConstraintSolver.cpp.
| void btSequentialImpulseConstraintSolver::convertContact | ( | btPersistentManifold * | manifold, | |
| const btContactSolverInfo & | infoGlobal | |||
| ) | [protected] |
avoid collision response between two static objects
warm starting (or zero if disabled)
Definition at line 451 of file btSequentialImpulseConstraintSolver.cpp.
| static btRigidBody& btSequentialImpulseConstraintSolver::getFixedBody | ( | ) | [inline, static, protected] |
Definition at line 72 of file btSequentialImpulseConstraintSolver.h.
| int btSequentialImpulseConstraintSolver::getOrInitSolverBody | ( | btCollisionObject & | body | ) | [protected] |
Definition at line 420 of file btSequentialImpulseConstraintSolver.cpp.
| unsigned long btSequentialImpulseConstraintSolver::getRandSeed | ( | ) | const [inline] |
Definition at line 101 of file btSequentialImpulseConstraintSolver.h.
| void btSequentialImpulseConstraintSolver::reset | ( | ) | [virtual] |
clear internal cached data and reset random seed
Implements btConstraintSolver.
Definition at line 1137 of file btSequentialImpulseConstraintSolver.cpp.
| void btSequentialImpulseConstraintSolver::resolveSingleConstraintRowGeneric | ( | btRigidBody & | body1, | |
| btRigidBody & | body2, | |||
| const btSolverConstraint & | contactConstraint | |||
| ) | [protected] |
Definition at line 94 of file btSequentialImpulseConstraintSolver.cpp.
| void btSequentialImpulseConstraintSolver::resolveSingleConstraintRowGenericSIMD | ( | btRigidBody & | body1, | |
| btRigidBody & | body2, | |||
| const btSolverConstraint & | contactConstraint | |||
| ) | [protected] |
Definition at line 60 of file btSequentialImpulseConstraintSolver.cpp.
| void btSequentialImpulseConstraintSolver::resolveSingleConstraintRowLowerLimit | ( | btRigidBody & | body1, | |
| btRigidBody & | body2, | |||
| const btSolverConstraint & | contactConstraint | |||
| ) | [protected] |
Definition at line 154 of file btSequentialImpulseConstraintSolver.cpp.
| void btSequentialImpulseConstraintSolver::resolveSingleConstraintRowLowerLimitSIMD | ( | btRigidBody & | body1, | |
| btRigidBody & | body2, | |||
| const btSolverConstraint & | contactConstraint | |||
| ) | [protected] |
Definition at line 123 of file btSequentialImpulseConstraintSolver.cpp.
| void btSequentialImpulseConstraintSolver::resolveSplitPenetrationImpulseCacheFriendly | ( | btRigidBody & | body1, | |
| btRigidBody & | body2, | |||
| const btSolverConstraint & | contactConstraint | |||
| ) | [protected] |
Definition at line 177 of file btSequentialImpulseConstraintSolver.cpp.
| void btSequentialImpulseConstraintSolver::resolveSplitPenetrationSIMD | ( | btRigidBody & | body1, | |
| btRigidBody & | body2, | |||
| const btSolverConstraint & | contactConstraint | |||
| ) | [protected] |
Definition at line 206 of file btSequentialImpulseConstraintSolver.cpp.
| btScalar btSequentialImpulseConstraintSolver::restitutionCurve | ( | btScalar | rel_vel, | |
| btScalar | restitution | |||
| ) | [protected] |
Definition at line 308 of file btSequentialImpulseConstraintSolver.cpp.
| void btSequentialImpulseConstraintSolver::setRandSeed | ( | unsigned long | seed | ) | [inline] |
Definition at line 97 of file btSequentialImpulseConstraintSolver.h.
| btScalar btSequentialImpulseConstraintSolver::solveGroup | ( | btCollisionObject ** | bodies, | |
| int | numBodies, | |||
| btPersistentManifold ** | manifold, | |||
| int | numManifolds, | |||
| btTypedConstraint ** | constraints, | |||
| int | numConstraints, | |||
| const btContactSolverInfo & | info, | |||
| btIDebugDraw * | debugDrawer, | |||
| btStackAlloc * | stackAlloc, | |||
| btDispatcher * | dispatcher | |||
| ) | [virtual] |
btSequentialImpulseConstraintSolver Sequentially applies impulses
Implements btConstraintSolver.
Definition at line 1057 of file btSequentialImpulseConstraintSolver.cpp.
| btScalar btSequentialImpulseConstraintSolver::solveGroupCacheFriendlyIterations | ( | btCollisionObject ** | bodies, | |
| int | numBodies, | |||
| btPersistentManifold ** | manifoldPtr, | |||
| int | numManifolds, | |||
| btTypedConstraint ** | constraints, | |||
| int | numConstraints, | |||
| const btContactSolverInfo & | infoGlobal, | |||
| btIDebugDraw * | debugDrawer, | |||
| btStackAlloc * | stackAlloc | |||
| ) |
solve all joint constraints, using SIMD, if available
solve all contact constraints using SIMD, if available
solve all friction constraints, using SIMD, if available
solve all joint constraints
solve all contact constraints
solve all friction constraints
Definition at line 904 of file btSequentialImpulseConstraintSolver.cpp.
| btScalar btSequentialImpulseConstraintSolver::solveGroupCacheFriendlySetup | ( | btCollisionObject ** | bodies, | |
| int | numBodies, | |||
| btPersistentManifold ** | manifoldPtr, | |||
| int | numManifolds, | |||
| btTypedConstraint ** | constraints, | |||
| int | numConstraints, | |||
| const btContactSolverInfo & | infoGlobal, | |||
| btIDebugDraw * | debugDrawer, | |||
| btStackAlloc * | stackAlloc | |||
| ) |
setup the btSolverConstraints
the size of btSolverConstraint needs be a multiple of btScalar
finalize the constraint setup
fix rhs todo: add force/torque accelerators
Reimplemented in btParallelConstraintSolver.
Definition at line 711 of file btSequentialImpulseConstraintSolver.cpp.
unsigned long btSequentialImpulseConstraintSolver::m_btSeed2 [protected] |
m_btSeed2 is used for re-arranging the constraint rows. improves convergence/quality of friction
Definition at line 42 of file btSequentialImpulseConstraintSolver.h.
btAlignedObjectArray<int> btSequentialImpulseConstraintSolver::m_orderFrictionConstraintPool [protected] |
Definition at line 36 of file btSequentialImpulseConstraintSolver.h.
Definition at line 35 of file btSequentialImpulseConstraintSolver.h.
btAlignedObjectArray<btTypedConstraint::btConstraintInfo1> btSequentialImpulseConstraintSolver::m_tmpConstraintSizesPool [protected] |
Definition at line 37 of file btSequentialImpulseConstraintSolver.h.
Definition at line 32 of file btSequentialImpulseConstraintSolver.h.
btConstraintArray btSequentialImpulseConstraintSolver::m_tmpSolverContactFrictionConstraintPool [protected] |
Definition at line 34 of file btSequentialImpulseConstraintSolver.h.
btConstraintArray btSequentialImpulseConstraintSolver::m_tmpSolverNonContactConstraintPool [protected] |
Definition at line 33 of file btSequentialImpulseConstraintSolver.h.
1.6.1