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
| btActivatingCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo &ci)
| btActivatingCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap)
virtual | ~btActivatingCollisionAlgorithm ()
Public Member Functions inherited from btCollisionAlgorithm
| btCollisionAlgorithm ()
| btCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo &ci)
virtual | ~btCollisionAlgorithm ()

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

## Additional Inherited Members
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 33 of file btConvex2dConvex2dAlgorithm.h.

## Constructor & Destructor Documentation

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

Definition at line 58 of file btConvex2dConvex2dAlgorithm.cpp.

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

Definition at line 73 of file btConvex2dConvex2dAlgorithm.cpp.

## Member Function Documentation

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 151 of file btConvex2dConvex2dAlgorithm.cpp.

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

should we use m_ownManifold to avoid adding duplicates?

Implements btCollisionAlgorithm.

Definition at line 54 of file btConvex2dConvex2dAlgorithm.h.

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

Definition at line 65 of file btConvex2dConvex2dAlgorithm.h.

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

Implements btCollisionAlgorithm.

Definition at line 95 of file btConvex2dConvex2dAlgorithm.cpp.

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

Definition at line 82 of file btConvex2dConvex2dAlgorithm.cpp.

## Member Data Documentation

bool btConvex2dConvex2dAlgorithm::m_lowLevelOfDetail
| private

Definition at line 41 of file btConvex2dConvex2dAlgorithm.h.

btPersistentManifold* btConvex2dConvex2dAlgorithm::m_manifoldPtr
| private

Definition at line 40 of file btConvex2dConvex2dAlgorithm.h.

bool btConvex2dConvex2dAlgorithm::m_ownManifold
| private

Definition at line 39 of file btConvex2dConvex2dAlgorithm.h.

btConvexPenetrationDepthSolver* btConvex2dConvex2dAlgorithm::m_pdSolver
| private

Definition at line 36 of file btConvex2dConvex2dAlgorithm.h.

btSimplexSolverInterface* btConvex2dConvex2dAlgorithm::m_simplexSolver
| private

Definition at line 35 of file btConvex2dConvex2dAlgorithm.h.

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

- btConvex2dConvex2dAlgorithm.h
- btConvex2dConvex2dAlgorithm.cpp