Bullet Collision Detection & Physics Library
|
The btParallelConstraintSolver performs computations on constraint rows in parallel Using the cross-platform threading it supports Windows, Linux, Mac OSX and PlayStation 3 Cell SPUs. More...
#include <btParallelConstraintSolver.h>
Public Member Functions | |
btParallelConstraintSolver (class btThreadSupportInterface *solverThreadSupport) | |
virtual | ~btParallelConstraintSolver () |
virtual btScalar | solveGroup (btCollisionObject **bodies, int numBodies, btPersistentManifold **manifold, int numManifolds, btTypedConstraint **constraints, int numConstraints, const btContactSolverInfo &info, btIDebugDraw *debugDrawer, btDispatcher *dispatcher) |
btSequentialImpulseConstraintSolver Sequentially applies impulses More... | |
Public Member Functions inherited from btSequentialImpulseConstraintSolver | |
BT_DECLARE_ALIGNED_ALLOCATOR () | |
btSequentialImpulseConstraintSolver () | |
virtual | ~btSequentialImpulseConstraintSolver () |
virtual void | reset () |
clear internal cached data and reset random seed More... | |
unsigned long | btRand2 () |
int | btRandInt2 (int n) |
void | setRandSeed (unsigned long seed) |
unsigned long | getRandSeed () const |
virtual btConstraintSolverType | getSolverType () const |
Public Member Functions inherited from btConstraintSolver | |
virtual | ~btConstraintSolver () |
virtual void | prepareSolve (int, int) |
virtual void | allSolved (const btContactSolverInfo &, class btIDebugDraw *) |
Additional Inherited Members | |
Protected Member Functions inherited from btSequentialImpulseConstraintSolver | |
void | setupFrictionConstraint (btSolverConstraint &solverConstraint, const btVector3 &normalAxis, int solverBodyIdA, int solverBodyIdB, btManifoldPoint &cp, const btVector3 &rel_pos1, const btVector3 &rel_pos2, btCollisionObject *colObj0, btCollisionObject *colObj1, btScalar relaxation, btScalar desiredVelocity=0., btScalar cfmSlip=0.) |
void | setupRollingFrictionConstraint (btSolverConstraint &solverConstraint, const btVector3 &normalAxis, int solverBodyIdA, int solverBodyIdB, btManifoldPoint &cp, const btVector3 &rel_pos1, const btVector3 &rel_pos2, btCollisionObject *colObj0, btCollisionObject *colObj1, btScalar relaxation, btScalar desiredVelocity=0., btScalar cfmSlip=0.) |
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.) |
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) |
void | setupContactConstraint (btSolverConstraint &solverConstraint, int solverBodyIdA, int solverBodyIdB, btManifoldPoint &cp, const btContactSolverInfo &infoGlobal, btScalar &relaxation, const btVector3 &rel_pos1, const btVector3 &rel_pos2) |
void | setFrictionConstraintImpulse (btSolverConstraint &solverConstraint, int solverBodyIdA, int solverBodyIdB, btManifoldPoint &cp, const btContactSolverInfo &infoGlobal) |
btScalar | restitutionCurve (btScalar rel_vel, btScalar restitution) |
virtual void | convertContacts (btPersistentManifold **manifoldPtr, int numManifolds, const btContactSolverInfo &infoGlobal) |
void | convertContact (btPersistentManifold *manifold, const btContactSolverInfo &infoGlobal) |
void | resolveSplitPenetrationSIMD (btSolverBody &bodyA, btSolverBody &bodyB, const btSolverConstraint &contactConstraint) |
void | resolveSplitPenetrationImpulseCacheFriendly (btSolverBody &bodyA, btSolverBody &bodyB, const btSolverConstraint &contactConstraint) |
int | getOrInitSolverBody (btCollisionObject &body, btScalar timeStep) |
void | initSolverBody (btSolverBody *solverBody, btCollisionObject *collisionObject, btScalar timeStep) |
void | resolveSingleConstraintRowGeneric (btSolverBody &bodyA, btSolverBody &bodyB, const btSolverConstraint &contactConstraint) |
void | resolveSingleConstraintRowGenericSIMD (btSolverBody &bodyA, btSolverBody &bodyB, const btSolverConstraint &contactConstraint) |
void | resolveSingleConstraintRowLowerLimit (btSolverBody &bodyA, btSolverBody &bodyB, const btSolverConstraint &contactConstraint) |
void | resolveSingleConstraintRowLowerLimitSIMD (btSolverBody &bodyA, btSolverBody &bodyB, const btSolverConstraint &contactConstraint) |
virtual void | solveGroupCacheFriendlySplitImpulseIterations (btCollisionObject **bodies, int numBodies, btPersistentManifold **manifoldPtr, int numManifolds, btTypedConstraint **constraints, int numConstraints, const btContactSolverInfo &infoGlobal, btIDebugDraw *debugDrawer) |
virtual btScalar | solveGroupCacheFriendlyFinish (btCollisionObject **bodies, int numBodies, const btContactSolverInfo &infoGlobal) |
virtual btScalar | solveSingleIteration (int iteration, btCollisionObject **bodies, int numBodies, btPersistentManifold **manifoldPtr, int numManifolds, btTypedConstraint **constraints, int numConstraints, const btContactSolverInfo &infoGlobal, btIDebugDraw *debugDrawer) |
virtual btScalar | solveGroupCacheFriendlySetup (btCollisionObject **bodies, int numBodies, btPersistentManifold **manifoldPtr, int numManifolds, btTypedConstraint **constraints, int numConstraints, const btContactSolverInfo &infoGlobal, btIDebugDraw *debugDrawer) |
virtual btScalar | solveGroupCacheFriendlyIterations (btCollisionObject **bodies, int numBodies, btPersistentManifold **manifoldPtr, int numManifolds, btTypedConstraint **constraints, int numConstraints, const btContactSolverInfo &infoGlobal, btIDebugDraw *debugDrawer) |
Static Protected Member Functions inherited from btSequentialImpulseConstraintSolver | |
static void | applyAnisotropicFriction (btCollisionObject *colObj, btVector3 &frictionDirection, int frictionMode) |
The btParallelConstraintSolver performs computations on constraint rows in parallel Using the cross-platform threading it supports Windows, Linux, Mac OSX and PlayStation 3 Cell SPUs.
Definition at line 263 of file btParallelConstraintSolver.h.
btParallelConstraintSolver::btParallelConstraintSolver | ( | class btThreadSupportInterface * | solverThreadSupport | ) |
Definition at line 1144 of file btParallelConstraintSolver.cpp.
|
virtual |
Definition at line 1156 of file btParallelConstraintSolver.cpp.
|
virtual |
btSequentialImpulseConstraintSolver Sequentially applies impulses
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 from btSequentialImpulseConstraintSolver.
Definition at line 1166 of file btParallelConstraintSolver.cpp.
|
protected |
Definition at line 272 of file btParallelConstraintSolver.h.
|
protected |
Definition at line 273 of file btParallelConstraintSolver.h.
|
protected |
Definition at line 267 of file btParallelConstraintSolver.h.
|
protected |
Definition at line 271 of file btParallelConstraintSolver.h.
|
protected |
Definition at line 269 of file btParallelConstraintSolver.h.