Bullet Collision Detection & Physics Library: btConvex2dConvex2dAlgorithm Class Reference

Bullet Collision Detection & Physics Library

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Classes | Public Member Functions | Private Attributes | List of all members
btConvex2dConvex2dAlgorithm Class Reference

The convex2dConvex2dAlgorithm collision algorithm support 2d collision detection for btConvex2dShape Currently it requires the btMinkowskiPenetrationDepthSolver, it has support for 2d penetration depth computation. More...

`#include <btConvex2dConvex2dAlgorithm.h>`

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

## Classes
struct | CreateFunc

## Public Member Functions
| btConvex2dConvex2dAlgorithm (btPersistentManifold *mf, const btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, btSimplexSolverInterface *simplexSolver, btConvexPenetrationDepthSolver *pdSolver, int numPerturbationIterations, int minimumPointsPerturbationThreshold)
virtual | ~btConvex2dConvex2dAlgorithm ()
virtual void | processCollision (const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
virtual btScalar | calculateTimeOfImpact (btCollisionObject *body0, btCollisionObject *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
virtual void | getAllContactManifolds (btManifoldArray &manifoldArray)
void | setLowLevelOfDetail (bool useLowLevel)
const btPersistentManifold * | getManifold ()
Public Member Functions inherited from btActivatingCollisionAlgorithm
virtual | ~btActivatingCollisionAlgorithm ()
Public Member Functions inherited from btCollisionAlgorithm
| btCollisionAlgorithm ()
| btCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo &ci)
virtual | ~btCollisionAlgorithm ()
virtual void | processCollision (const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)=0
virtual btScalar | calculateTimeOfImpact (btCollisionObject *body0, btCollisionObject *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)=0
virtual void | getAllContactManifolds (btManifoldArray &manifoldArray)=0

## Private Attributes
btSimplexSolverInterface * | m_simplexSolver
btConvexPenetrationDepthSolver * | m_pdSolver
bool | m_ownManifold
btPersistentManifold * | m_manifoldPtr
bool | m_lowLevelOfDetail

## Additional Inherited Members
Protected Member Functions inherited from btActivatingCollisionAlgorithm
| btActivatingCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo &ci)
| btActivatingCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap)
Protected Attributes inherited from btCollisionAlgorithm
btDispatcher * | m_dispatcher

## Detailed Description

The convex2dConvex2dAlgorithm collision algorithm support 2d collision detection for btConvex2dShape Currently it requires the btMinkowskiPenetrationDepthSolver, it has support for 2d penetration depth computation.

Definition at line 32 of file btConvex2dConvex2dAlgorithm.h.

## Constructor & Destructor Documentation

## ◆ btConvex2dConvex2dAlgorithm()

btConvex2dConvex2dAlgorithm::btConvex2dConvex2dAlgorithm | ( | btPersistentManifold * | mf,
|  | const btCollisionAlgorithmConstructionInfo & | ci,
|  | const btCollisionObjectWrapper * | body0Wrap,
|  | const btCollisionObjectWrapper * | body1Wrap,
|  | btSimplexSolverInterface * | simplexSolver,
|  | btConvexPenetrationDepthSolver * | pdSolver,
|  | int | numPerturbationIterations,
|  | int | minimumPointsPerturbationThreshold
| ) |  |

Definition at line 55 of file btConvex2dConvex2dAlgorithm.cpp.

## ◆ ~btConvex2dConvex2dAlgorithm()

btConvex2dConvex2dAlgorithm::~btConvex2dConvex2dAlgorithm | ( |  | ) |
| virtual

Definition at line 67 of file btConvex2dConvex2dAlgorithm.cpp.

## Member Function Documentation

## ◆ calculateTimeOfImpact()

btScalar btConvex2dConvex2dAlgorithm::calculateTimeOfImpact | ( | btCollisionObject * | body0,
|  | btCollisionObject * | body1,
|  | const btDispatcherInfo & | dispatchInfo,
|  | btManifoldResult * | resultOut
| ) |  |
| virtual

Rather then checking ALL pairs, only calculate TOI when motion exceeds threshold

Linear motion for one of objects needs to exceed m_ccdSquareMotionThreshold col0->m_worldTransform,

Convex0 against sphere for Convex1

Simplification, one object is simplified as a sphere

Sphere (for convex0) against Convex1

Simplification, one object is simplified as a sphere

Implements btCollisionAlgorithm.

Definition at line 133 of file btConvex2dConvex2dAlgorithm.cpp.

## ◆ getAllContactManifolds()

virtual void btConvex2dConvex2dAlgorithm::getAllContactManifolds | ( | btManifoldArray & | manifoldArray | ) |
| inlinevirtual

should we use m_ownManifold to avoid adding duplicates?

Implements btCollisionAlgorithm.

Definition at line 50 of file btConvex2dConvex2dAlgorithm.h.

## ◆ getManifold()

const btPersistentManifold * btConvex2dConvex2dAlgorithm::getManifold | ( |  | ) |
| inline

Definition at line 59 of file btConvex2dConvex2dAlgorithm.h.

## ◆ processCollision()

void btConvex2dConvex2dAlgorithm::processCollision | ( | const btCollisionObjectWrapper * | body0Wrap,
|  | const btCollisionObjectWrapper * | body1Wrap,
|  | const btDispatcherInfo & | dispatchInfo,
|  | btManifoldResult * | resultOut
| ) |  |
| virtual

Implements btCollisionAlgorithm.

Definition at line 86 of file btConvex2dConvex2dAlgorithm.cpp.

## ◆ setLowLevelOfDetail()

void btConvex2dConvex2dAlgorithm::setLowLevelOfDetail | ( | bool | useLowLevel | ) |

Definition at line 76 of file btConvex2dConvex2dAlgorithm.cpp.

## Member Data Documentation

## ◆ m_lowLevelOfDetail

bool btConvex2dConvex2dAlgorithm::m_lowLevelOfDetail
| private

Definition at line 39 of file btConvex2dConvex2dAlgorithm.h.

## ◆ m_manifoldPtr

btPersistentManifold* btConvex2dConvex2dAlgorithm::m_manifoldPtr
| private

Definition at line 38 of file btConvex2dConvex2dAlgorithm.h.

## ◆ m_ownManifold

bool btConvex2dConvex2dAlgorithm::m_ownManifold
| private

Definition at line 37 of file btConvex2dConvex2dAlgorithm.h.

## ◆ m_pdSolver

btConvexPenetrationDepthSolver* btConvex2dConvex2dAlgorithm::m_pdSolver
| private

Definition at line 35 of file btConvex2dConvex2dAlgorithm.h.

## ◆ m_simplexSolver

btSimplexSolverInterface* btConvex2dConvex2dAlgorithm::m_simplexSolver
| private

Definition at line 34 of file btConvex2dConvex2dAlgorithm.h.

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

- btConvex2dConvex2dAlgorithm.h
- btConvex2dConvex2dAlgorithm.cpp