|
Bullet Collision Detection & Physics Library
|
The btSequentialImpulseConstraintSolver is a fast SIMD implementation of the Projected Gauss Seidel (iterative LCP) method. More...
#include <btSequentialImpulseConstraintSolver.h>


Static Protected Member Functions | |
| static void | applyAnisotropicFriction (btCollisionObject *colObj, btVector3 &frictionDirection, int frictionMode) |
The btSequentialImpulseConstraintSolver is a fast SIMD implementation of the Projected Gauss Seidel (iterative LCP) method.
Definition at line 33 of file btSequentialImpulseConstraintSolver.h.
| btSequentialImpulseConstraintSolver::btSequentialImpulseConstraintSolver | ( | ) |
Definition at line 362 of file btSequentialImpulseConstraintSolver.cpp.
|
virtual |
Definition at line 394 of file btSequentialImpulseConstraintSolver.cpp.
|
protected |
Definition at line 640 of file btSequentialImpulseConstraintSolver.cpp.
|
protected |
Definition at line 727 of file btSequentialImpulseConstraintSolver.cpp.
|
staticprotected |
Definition at line 523 of file btSequentialImpulseConstraintSolver.cpp.
| btSequentialImpulseConstraintSolver::BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
Definition at line 430 of file btSequentialImpulseConstraintSolver.cpp.
Definition at line 439 of file btSequentialImpulseConstraintSolver.cpp.
|
protected |
avoid collision response between two static objects
Bullet has several options to set the friction directions By default, each contact has only a single friction direction that is recomputed automatically very frame based on the relative linear velocity. If the relative velocity it zero, it will automatically compute a friction direction.
You can also enable two friction directions, using the SOLVER_USE_2_FRICTION_DIRECTIONS. In that case, the second friction direction will be orthogonal to both contact normal and first friction direction.
If you choose SOLVER_DISABLE_VELOCITY_DEPENDENT_FRICTION_DIRECTION, then the friction will be independent from the relative projected velocity.
The user can manually override the friction directions for certain contacts using a contact callback, and set the cp.m_lateralFrictionInitialized to true In that case, you can set the target relative motion in each friction direction (cp.m_contactMotion1 and cp.m_contactMotion2) this will give a conveyor belt effect
Definition at line 1082 of file btSequentialImpulseConstraintSolver.cpp.
|
protectedvirtual |
Reimplemented in btMultiBodyConstraintSolver.
Definition at line 1247 of file btSequentialImpulseConstraintSolver.cpp.
|
inline |
Definition at line 164 of file btSequentialImpulseConstraintSolver.h.
|
inline |
Definition at line 172 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 737 of file btSequentialImpulseConstraintSolver.cpp.
Definition at line 153 of file btSequentialImpulseConstraintSolver.h.
| btSingleConstraintRowSolver btSequentialImpulseConstraintSolver::getScalarConstraintRowSolverGeneric | ( | ) |
Various implementations of solving a single constraint row using a generic equality constraint, using scalar reference, SSE2 or SSE4.
Definition at line 398 of file btSequentialImpulseConstraintSolver.cpp.
| btSingleConstraintRowSolver btSequentialImpulseConstraintSolver::getScalarConstraintRowSolverLowerLimit | ( | ) |
Various implementations of solving a single constraint row using an inequality (lower limit) constraint, using scalar reference, SSE2 or SSE4.
Definition at line 403 of file btSequentialImpulseConstraintSolver.cpp.
|
inlinevirtual |
Implements btConstraintSolver.
Reimplemented in btNNCGConstraintSolver, and btMLCPSolver.
Definition at line 159 of file btSequentialImpulseConstraintSolver.h.
| btSingleConstraintRowSolver btSequentialImpulseConstraintSolver::getSSE2ConstraintRowSolverGeneric | ( | ) |
| btSingleConstraintRowSolver btSequentialImpulseConstraintSolver::getSSE2ConstraintRowSolverLowerLimit | ( | ) |
| btSingleConstraintRowSolver btSequentialImpulseConstraintSolver::getSSE4_1ConstraintRowSolverGeneric | ( | ) |
| btSingleConstraintRowSolver btSequentialImpulseConstraintSolver::getSSE4_1ConstraintRowSolverLowerLimit | ( | ) |
|
protected |
Definition at line 468 of file btSequentialImpulseConstraintSolver.cpp.
|
virtual |
clear internal cached data and reset random seed
Implements btConstraintSolver.
Definition at line 1970 of file btSequentialImpulseConstraintSolver.cpp.
|
protected |
Definition at line 276 of file btSequentialImpulseConstraintSolver.cpp.
|
protected |
Definition at line 270 of file btSequentialImpulseConstraintSolver.cpp.
|
protected |
Definition at line 287 of file btSequentialImpulseConstraintSolver.cpp.
|
protected |
Definition at line 281 of file btSequentialImpulseConstraintSolver.cpp.
|
inlineprotected |
Definition at line 117 of file btSequentialImpulseConstraintSolver.h.
|
inlineprotected |
Definition at line 104 of file btSequentialImpulseConstraintSolver.h.
|
inlineprotected |
Definition at line 99 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 511 of file btSequentialImpulseConstraintSolver.cpp.
|
inline |
Definition at line 168 of file btSequentialImpulseConstraintSolver.h.
|
inline |
Definition at line 176 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 1036 of file btSequentialImpulseConstraintSolver.cpp.
Definition at line 149 of file btSequentialImpulseConstraintSolver.h.
|
protected |
warm starting (or zero if disabled)
Definition at line 837 of file btSequentialImpulseConstraintSolver.cpp.
|
protected |
Definition at line 543 of file btSequentialImpulseConstraintSolver.cpp.
Definition at line 369 of file btSequentialImpulseConstraintSolver.cpp.
|
protected |
Definition at line 650 of file btSequentialImpulseConstraintSolver.cpp.
|
virtual |
btSequentialImpulseConstraintSolver Sequentially applies impulses
Implements btConstraintSolver.
Reimplemented in btMultiBodyConstraintSolver.
Definition at line 1955 of file btSequentialImpulseConstraintSolver.cpp.
|
protectedvirtual |
Reimplemented in btNNCGConstraintSolver, and btMultiBodyConstraintSolver.
Definition at line 1869 of file btSequentialImpulseConstraintSolver.cpp.
|
protectedvirtual |
this is a special step to resolve penetrations (just for contacts)
Reimplemented in btMLCPSolver.
Definition at line 1841 of file btSequentialImpulseConstraintSolver.cpp.
|
protectedvirtual |
setup the btSolverConstraints
the size of btSolverConstraint needs be a multiple of btScalar
finalize the constraint setup
Reimplemented in btNNCGConstraintSolver, btMultiBodyConstraintSolver, and btMLCPSolver.
Definition at line 1261 of file btSequentialImpulseConstraintSolver.cpp.
|
protectedvirtual |
Definition at line 1809 of file btSequentialImpulseConstraintSolver.cpp.
|
protectedvirtual |
solve all joint constraints
solve all contact constraints
solve all friction constraints
Reimplemented in btNNCGConstraintSolver, and btMultiBodyConstraintSolver.
Definition at line 1631 of file btSequentialImpulseConstraintSolver.cpp.
m_btSeed2 is used for re-arranging the constraint rows. improves convergence/quality of friction
Definition at line 89 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 60 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 47 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 55 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 63 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 46 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 44 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 43 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 42 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 57 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 58 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 59 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 45 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 36 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 37 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 39 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 40 of file btSequentialImpulseConstraintSolver.h.
|
protected |
Definition at line 38 of file btSequentialImpulseConstraintSolver.h.