Blender  V3.3
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
btMLCPSolver Class Reference

original version written by Erwin Coumans, October 2013 More...

#include <btMLCPSolver.h>

Inheritance diagram for btMLCPSolver:

Public Member Functions

 btMLCPSolver (btMLCPSolverInterface *solver)
 original version written by Erwin Coumans, October 2013 More...
 
virtual ~btMLCPSolver ()
 
void setMLCPSolver (btMLCPSolverInterface *solver)
 
int getNumFallbacks () const
 
void setNumFallbacks (int num)
 
virtual btConstraintSolverType getSolverType () const
 

Protected Member Functions

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)
 
virtual void createMLCP (const btContactSolverInfo &infoGlobal)
 
virtual void createMLCPFast (const btContactSolverInfo &infoGlobal)
 
virtual bool solveMLCP (const btContactSolverInfo &infoGlobal)
 

Protected Attributes

btMatrixXu m_A
 
btVectorXu m_b
 
btVectorXu m_x
 
btVectorXu m_lo
 
btVectorXu m_hi
 
btVectorXu m_bSplit
 when using 'split impulse' we solve two separate (M)LCPs More...
 
btVectorXu m_xSplit
 
btVectorXu m_bSplit1
 
btVectorXu m_xSplit2
 
btAlignedObjectArray< int > m_limitDependencies
 
btAlignedObjectArray< btSolverConstraint * > m_allConstraintPtrArray
 
btMLCPSolverInterfacem_solver
 
int m_fallback
 
btMatrixXu m_scratchJ3
 
btMatrixXu m_scratchJInvM3
 
btAlignedObjectArray< int > m_scratchOfs
 
btMatrixXu m_scratchMInv
 
btMatrixXu m_scratchJ
 
btMatrixXu m_scratchJTranspose
 
btMatrixXu m_scratchTmp
 

Detailed Description

original version written by Erwin Coumans, October 2013

Definition at line 24 of file btMLCPSolver.h.

Constructor & Destructor Documentation

◆ btMLCPSolver()

btMLCPSolver::btMLCPSolver ( btMLCPSolverInterface solver)

original version written by Erwin Coumans, October 2013

Definition at line 22 of file btMLCPSolver.cpp.

◆ ~btMLCPSolver()

btMLCPSolver::~btMLCPSolver ( )
virtual

Definition at line 28 of file btMLCPSolver.cpp.

Member Function Documentation

◆ createMLCP()

void btMLCPSolver::createMLCP ( const btContactSolverInfo infoGlobal)
protectedvirtual

◆ createMLCPFast()

void btMLCPSolver::createMLCPFast ( const btContactSolverInfo infoGlobal)
protectedvirtual

◆ getNumFallbacks()

int btMLCPSolver::getNumFallbacks ( ) const
inline

Definition at line 73 of file btMLCPSolver.h.

References m_fallback.

◆ getSolverType()

virtual btConstraintSolverType btMLCPSolver::getSolverType ( ) const
inlinevirtual

Definition at line 82 of file btMLCPSolver.h.

References BT_MLCP_SOLVER.

◆ setMLCPSolver()

void btMLCPSolver::setMLCPSolver ( btMLCPSolverInterface solver)
inline

Definition at line 68 of file btMLCPSolver.h.

References m_solver.

◆ setNumFallbacks()

void btMLCPSolver::setNumFallbacks ( int  num)
inline

Definition at line 77 of file btMLCPSolver.h.

References m_fallback.

◆ solveGroupCacheFriendlyIterations()

btScalar btMLCPSolver::solveGroupCacheFriendlyIterations ( btCollisionObject **  bodies,
int  numBodies,
btPersistentManifold **  manifoldPtr,
int  numManifolds,
btTypedConstraint **  constraints,
int  numConstraints,
const btContactSolverInfo infoGlobal,
btIDebugDraw debugDrawer 
)
protectedvirtual

◆ solveGroupCacheFriendlySetup()

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

◆ solveMLCP()

bool btMLCPSolver::solveMLCP ( const btContactSolverInfo infoGlobal)
protectedvirtual

Member Data Documentation

◆ m_A

btMatrixXu btMLCPSolver::m_A
protected

Definition at line 27 of file btMLCPSolver.h.

Referenced by createMLCP(), createMLCPFast(), solveGroupCacheFriendlySetup(), and solveMLCP().

◆ m_allConstraintPtrArray

btAlignedObjectArray<btSolverConstraint*> btMLCPSolver::m_allConstraintPtrArray
protected

◆ m_b

btVectorXu btMLCPSolver::m_b
protected

Definition at line 28 of file btMLCPSolver.h.

Referenced by createMLCP(), createMLCPFast(), solveGroupCacheFriendlySetup(), and solveMLCP().

◆ m_bSplit

btVectorXu btMLCPSolver::m_bSplit
protected

when using 'split impulse' we solve two separate (M)LCPs

Definition at line 34 of file btMLCPSolver.h.

Referenced by createMLCP(), createMLCPFast(), and solveMLCP().

◆ m_bSplit1

btVectorXu btMLCPSolver::m_bSplit1
protected

Definition at line 36 of file btMLCPSolver.h.

◆ m_fallback

int btMLCPSolver::m_fallback
protected

◆ m_hi

btVectorXu btMLCPSolver::m_hi
protected

Definition at line 31 of file btMLCPSolver.h.

Referenced by createMLCP(), createMLCPFast(), solveGroupCacheFriendlySetup(), and solveMLCP().

◆ m_limitDependencies

btAlignedObjectArray<int> btMLCPSolver::m_limitDependencies
protected

Definition at line 39 of file btMLCPSolver.h.

Referenced by solveGroupCacheFriendlySetup(), and solveMLCP().

◆ m_lo

btVectorXu btMLCPSolver::m_lo
protected

Definition at line 30 of file btMLCPSolver.h.

Referenced by createMLCP(), createMLCPFast(), solveGroupCacheFriendlySetup(), and solveMLCP().

◆ m_scratchJ

btMatrixXu btMLCPSolver::m_scratchJ
protected

Definition at line 51 of file btMLCPSolver.h.

Referenced by createMLCP().

◆ m_scratchJ3

btMatrixXu btMLCPSolver::m_scratchJ3
protected

The following scratch variables are not stateful – contents are cleared prior to each use. They are only cached here to avoid extra memory allocations and deallocations and to ensure that multiple instances of the solver can be run in parallel.

Definition at line 47 of file btMLCPSolver.h.

Referenced by createMLCPFast().

◆ m_scratchJInvM3

btMatrixXu btMLCPSolver::m_scratchJInvM3
protected

Definition at line 48 of file btMLCPSolver.h.

Referenced by createMLCPFast().

◆ m_scratchJTranspose

btMatrixXu btMLCPSolver::m_scratchJTranspose
protected

Definition at line 52 of file btMLCPSolver.h.

Referenced by createMLCP().

◆ m_scratchMInv

btMatrixXu btMLCPSolver::m_scratchMInv
protected

Definition at line 50 of file btMLCPSolver.h.

Referenced by createMLCP().

◆ m_scratchOfs

btAlignedObjectArray<int> btMLCPSolver::m_scratchOfs
protected

Definition at line 49 of file btMLCPSolver.h.

Referenced by createMLCPFast().

◆ m_scratchTmp

btMatrixXu btMLCPSolver::m_scratchTmp
protected

Definition at line 53 of file btMLCPSolver.h.

Referenced by createMLCP().

◆ m_solver

btMLCPSolverInterface* btMLCPSolver::m_solver
protected

Definition at line 41 of file btMLCPSolver.h.

Referenced by setMLCPSolver(), and solveMLCP().

◆ m_x

btVectorXu btMLCPSolver::m_x
protected

◆ m_xSplit

btVectorXu btMLCPSolver::m_xSplit
protected

◆ m_xSplit2

btVectorXu btMLCPSolver::m_xSplit2
protected

Definition at line 37 of file btMLCPSolver.h.


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