Bullet Collision Detection & Physics Library: btNNCGConstraintSolver Class Reference

Bullet Collision Detection & Physics Library

Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
btNNCGConstraintSolver Class Reference

`#include <btNNCGConstraintSolver.h>`

Inheritance diagram for btNNCGConstraintSolver:
[legend]
Collaboration diagram for btNNCGConstraintSolver:
[legend]

## Public Member Functions
| BT_DECLARE_ALIGNED_ALLOCATOR ()
| btNNCGConstraintSolver ()
virtual btConstraintSolverType | getSolverType () const
Public Member Functions inherited from btSequentialImpulseConstraintSolver
| BT_DECLARE_ALIGNED_ALLOCATOR ()
| btSequentialImpulseConstraintSolver ()
virtual | ~btSequentialImpulseConstraintSolver ()
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...
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
btSingleConstraintRowSolver | getActiveConstraintRowSolverGeneric ()
void | setConstraintRowSolverGeneric (btSingleConstraintRowSolver rowSolver)
btSingleConstraintRowSolver | getActiveConstraintRowSolverLowerLimit ()
void | setConstraintRowSolverLowerLimit (btSingleConstraintRowSolver rowSolver)
btSingleConstraintRowSolver | getScalarConstraintRowSolverGeneric ()
| Various implementations of solving a single constraint row using a generic equality constraint, using scalar reference, SSE2 or SSE4. More...
btSingleConstraintRowSolver | getSSE2ConstraintRowSolverGeneric ()
btSingleConstraintRowSolver | getSSE4_1ConstraintRowSolverGeneric ()
btSingleConstraintRowSolver | getScalarConstraintRowSolverLowerLimit ()
| Various implementations of solving a single constraint row using an inequality (lower limit) constraint, using scalar reference, SSE2 or SSE4. More...
btSingleConstraintRowSolver | getSSE2ConstraintRowSolverLowerLimit ()
btSingleConstraintRowSolver | getSSE4_1ConstraintRowSolverLowerLimit ()
Public Member Functions inherited from btConstraintSolver
virtual | ~btConstraintSolver ()
virtual void | prepareSolve (int, int)
virtual void | allSolved (const btContactSolverInfo &, class btIDebugDraw *)

## Public Attributes
bool | m_onlyForNoneContact

## Protected Member Functions
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)
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 | setupTorsionalFrictionConstraint (btSolverConstraint &solverConstraint, const btVector3 &normalAxis, int solverBodyIdA, int solverBodyIdB, btManifoldPoint &cp, btScalar combinedTorsionalFriction, 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 & | addTorsionalFrictionConstraint (const btVector3 &normalAxis, int solverBodyIdA, int solverBodyIdB, int frictionIndex, btManifoldPoint &cp, btScalar torsionalFriction, 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)
btSimdScalar | resolveSingleConstraintRowGeneric (btSolverBody &bodyA, btSolverBody &bodyB, const btSolverConstraint &contactConstraint)
btSimdScalar | resolveSingleConstraintRowGenericSIMD (btSolverBody &bodyA, btSolverBody &bodyB, const btSolverConstraint &contactConstraint)
btSimdScalar | resolveSingleConstraintRowLowerLimit (btSolverBody &bodyA, btSolverBody &bodyB, const btSolverConstraint &contactConstraint)
btSimdScalar | 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 | solveGroupCacheFriendlyIterations (btCollisionObject **bodies, int numBodies, btPersistentManifold **manifoldPtr, int numManifolds, btTypedConstraint **constraints, int numConstraints, const btContactSolverInfo &infoGlobal, btIDebugDraw *debugDrawer)

## Protected Attributes
btScalar | m_deltafLengthSqrPrev
btAlignedObjectArray< btScalar > | m_pNC
btAlignedObjectArray< btScalar > | m_pC
btAlignedObjectArray< btScalar > | m_pCF
btAlignedObjectArray< btScalar > | m_pCRF
btAlignedObjectArray< btScalar > | m_deltafNC
btAlignedObjectArray< btScalar > | m_deltafC
btAlignedObjectArray< btScalar > | m_deltafCF
btAlignedObjectArray< btScalar > | m_deltafCRF
Protected Attributes inherited from btSequentialImpulseConstraintSolver
btAlignedObjectArray< btSolverBody > | m_tmpSolverBodyPool
btConstraintArray | m_tmpSolverContactConstraintPool
btConstraintArray | m_tmpSolverNonContactConstraintPool
btConstraintArray | m_tmpSolverContactFrictionConstraintPool
btConstraintArray | m_tmpSolverContactRollingFrictionConstraintPool
btAlignedObjectArray< int > | m_orderTmpConstraintPool
btAlignedObjectArray< int > | m_orderNonContactConstraintPool
btAlignedObjectArray< int > | m_orderFrictionConstraintPool
btAlignedObjectArray< btTypedConstraint::btConstraintInfo1 > | m_tmpConstraintSizesPool
int | m_maxOverrideNumSolverIterations
int | m_fixedBodyId
btSingleConstraintRowSolver | m_resolveSingleConstraintRowGeneric
btSingleConstraintRowSolver | m_resolveSingleConstraintRowLowerLimit
unsigned long | m_btSeed2
| m_btSeed2 is used for re-arranging the constraint rows. improves convergence/quality of friction More...

## Additional Inherited Members
Static Protected Member Functions inherited from btSequentialImpulseConstraintSolver
static void | applyAnisotropicFriction (btCollisionObject *colObj, btVector3 &frictionDirection, int frictionMode)

## Detailed Description

Definition at line 21 of file btNNCGConstraintSolver.h.

## Constructor & Destructor Documentation

## § btNNCGConstraintSolver()

btNNCGConstraintSolver::btNNCGConstraintSolver | ( |  | ) |
| inline

Definition at line 50 of file btNNCGConstraintSolver.h.

## Member Function Documentation

## § BT_DECLARE_ALIGNED_ALLOCATOR()

btNNCGConstraintSolver::BT_DECLARE_ALIGNED_ALLOCATOR | ( |  | ) |

## § getSolverType()

virtual btConstraintSolverType btNNCGConstraintSolver::getSolverType | ( |  | ) | const
| inlinevirtual

Reimplemented from btSequentialImpulseConstraintSolver.

Definition at line 52 of file btNNCGConstraintSolver.h.

## § solveGroupCacheFriendlyFinish()

btScalar btNNCGConstraintSolver::solveGroupCacheFriendlyFinish | ( | btCollisionObject ** | bodies,
|  | int | numBodies,
|  | const btContactSolverInfo & | infoGlobal
| ) |  |
| protectedvirtual

Reimplemented from btSequentialImpulseConstraintSolver.

Definition at line 447 of file btNNCGConstraintSolver.cpp.

## § solveGroupCacheFriendlySetup()

btScalar btNNCGConstraintSolver::solveGroupCacheFriendlySetup | ( | btCollisionObject ** | bodies,
|  | int | numBodies,
|  | btPersistentManifold ** | manifoldPtr,
|  | int | numManifolds,
|  | btTypedConstraint ** | constraints,
|  | int | numConstraints,
|  | const btContactSolverInfo & | infoGlobal,
|  | btIDebugDraw * | debugDrawer
| ) |  |
| protectedvirtual

Reimplemented from btSequentialImpulseConstraintSolver.

Definition at line 23 of file btNNCGConstraintSolver.cpp.

## § solveSingleIteration()

btScalar btNNCGConstraintSolver::solveSingleIteration | ( | int | iteration,
|  | btCollisionObject ** | bodies,
|  | int | numBodies,
|  | btPersistentManifold ** | manifoldPtr,
|  | int | numManifolds,
|  | btTypedConstraint ** | constraints,
|  | int | numConstraints,
|  | const btContactSolverInfo & | infoGlobal,
|  | btIDebugDraw * | debugDrawer
| ) |  |
| protectedvirtual

solve all contact constraints using SIMD, if available

solve all friction constraints, using SIMD, if available

solve all contact constraints

solve all friction constraints

Reimplemented from btSequentialImpulseConstraintSolver.

Definition at line 40 of file btNNCGConstraintSolver.cpp.

## Member Data Documentation

## § m_deltafC

btAlignedObjectArray<btScalar> btNNCGConstraintSolver::m_deltafC
| protected

Definition at line 34 of file btNNCGConstraintSolver.h.

## § m_deltafCF

btAlignedObjectArray<btScalar> btNNCGConstraintSolver::m_deltafCF
| protected

Definition at line 35 of file btNNCGConstraintSolver.h.

## § m_deltafCRF

btAlignedObjectArray<btScalar> btNNCGConstraintSolver::m_deltafCRF
| protected

Definition at line 36 of file btNNCGConstraintSolver.h.

## § m_deltafLengthSqrPrev

btScalar btNNCGConstraintSolver::m_deltafLengthSqrPrev
| protected

Definition at line 25 of file btNNCGConstraintSolver.h.

## § m_deltafNC

btAlignedObjectArray<btScalar> btNNCGConstraintSolver::m_deltafNC
| protected

Definition at line 33 of file btNNCGConstraintSolver.h.

## § m_onlyForNoneContact

bool btNNCGConstraintSolver::m_onlyForNoneContact

Definition at line 57 of file btNNCGConstraintSolver.h.

## § m_pC

btAlignedObjectArray<btScalar> btNNCGConstraintSolver::m_pC
| protected

Definition at line 28 of file btNNCGConstraintSolver.h.

## § m_pCF

btAlignedObjectArray<btScalar> btNNCGConstraintSolver::m_pCF
| protected

Definition at line 29 of file btNNCGConstraintSolver.h.

## § m_pCRF

btAlignedObjectArray<btScalar> btNNCGConstraintSolver::m_pCRF
| protected

Definition at line 30 of file btNNCGConstraintSolver.h.

## § m_pNC

btAlignedObjectArray<btScalar> btNNCGConstraintSolver::m_pNC
| protected

Definition at line 27 of file btNNCGConstraintSolver.h.

The documentation for this class was generated from the following files:

- btNNCGConstraintSolver.h
- btNNCGConstraintSolver.cpp