Bullet Collision Detection & Physics Library: btCollisionDispatcher Class Reference

Bullet Collision Detection & Physics Library

Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
btCollisionDispatcher Class Reference

btCollisionDispatcher supports algorithms that handle ConvexConvex and ConvexConcave collision pairs. More...

`#include <btCollisionDispatcher.h>`

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

## Public Types
enum | DispatcherFlags { CD_STATIC_STATIC_REPORTED = 1 , CD_USE_RELATIVE_CONTACT_BREAKING_THRESHOLD = 2 , CD_DISABLE_CONTACTPOOL_DYNAMIC_ALLOCATION = 4 }

## Public Member Functions
int | getDispatcherFlags () const
void | setDispatcherFlags (int flags)
void | registerCollisionCreateFunc (int proxyType0, int proxyType1, btCollisionAlgorithmCreateFunc *createFunc)
| registerCollisionCreateFunc allows registration of custom/alternative collision create functions More...
void | registerClosestPointsCreateFunc (int proxyType0, int proxyType1, btCollisionAlgorithmCreateFunc *createFunc)
int | getNumManifolds () const
btPersistentManifold ** | getInternalManifoldPointer ()
btPersistentManifold * | getManifoldByIndexInternal (int index)
const btPersistentManifold * | getManifoldByIndexInternal (int index) const
| btCollisionDispatcher (btCollisionConfiguration *collisionConfiguration)
virtual | ~btCollisionDispatcher ()
virtual btPersistentManifold * | getNewManifold (const btCollisionObject *b0, const btCollisionObject *b1)
virtual void | releaseManifold (btPersistentManifold *manifold)
virtual void | clearManifold (btPersistentManifold *manifold)
btCollisionAlgorithm * | findAlgorithm (const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, btPersistentManifold *sharedManifold, ebtDispatcherQueryType queryType)
virtual bool | needsCollision (const btCollisionObject *body0, const btCollisionObject *body1)
virtual bool | needsResponse (const btCollisionObject *body0, const btCollisionObject *body1)
virtual void | dispatchAllCollisionPairs (btOverlappingPairCache *pairCache, const btDispatcherInfo &dispatchInfo, btDispatcher *dispatcher)
void | setNearCallback (btNearCallback nearCallback)
btNearCallback | getNearCallback () const
virtual void * | allocateCollisionAlgorithm (int size)
virtual void | freeCollisionAlgorithm (void *ptr)
btCollisionConfiguration * | getCollisionConfiguration ()
const btCollisionConfiguration * | getCollisionConfiguration () const
void | setCollisionConfiguration (btCollisionConfiguration *config)
virtual btPoolAllocator * | getInternalManifoldPool ()
virtual const btPoolAllocator * | getInternalManifoldPool () const
Public Member Functions inherited from btDispatcher
virtual | ~btDispatcher ()
virtual btCollisionAlgorithm * | findAlgorithm (const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, btPersistentManifold *sharedManifold, ebtDispatcherQueryType queryType)=0
virtual btPersistentManifold * | getNewManifold (const btCollisionObject *b0, const btCollisionObject *b1)=0
virtual void | releaseManifold (btPersistentManifold *manifold)=0
virtual void | clearManifold (btPersistentManifold *manifold)=0
virtual bool | needsCollision (const btCollisionObject *body0, const btCollisionObject *body1)=0
virtual bool | needsResponse (const btCollisionObject *body0, const btCollisionObject *body1)=0
virtual void | dispatchAllCollisionPairs (btOverlappingPairCache *pairCache, const btDispatcherInfo &dispatchInfo, btDispatcher *dispatcher)=0
virtual int | getNumManifolds () const =0
virtual btPersistentManifold * | getManifoldByIndexInternal (int index)=0
virtual btPersistentManifold ** | getInternalManifoldPointer ()=0
virtual btPoolAllocator * | getInternalManifoldPool ()=0
virtual const btPoolAllocator * | getInternalManifoldPool () const =0
virtual void * | allocateCollisionAlgorithm (int size)=0
virtual void | freeCollisionAlgorithm (void *ptr)=0

## Static Public Member Functions
static void | defaultNearCallback (btBroadphasePair &collisionPair, btCollisionDispatcher &dispatcher, const btDispatcherInfo &dispatchInfo)

## Protected Attributes
int | m_dispatcherFlags
btAlignedObjectArray< btPersistentManifold * > | m_manifoldsPtr
btNearCallback | m_nearCallback
btPoolAllocator * | m_collisionAlgorithmPoolAllocator
btPoolAllocator * | m_persistentManifoldPoolAllocator
btCollisionAlgorithmCreateFunc * | m_doubleDispatchContactPoints [MAX_BROADPHASE_COLLISION_TYPES][MAX_BROADPHASE_COLLISION_TYPES]
btCollisionAlgorithmCreateFunc * | m_doubleDispatchClosestPoints [MAX_BROADPHASE_COLLISION_TYPES][MAX_BROADPHASE_COLLISION_TYPES]
btCollisionConfiguration * | m_collisionConfiguration

## Detailed Description

btCollisionDispatcher supports algorithms that handle ConvexConvex and ConvexConcave collision pairs.

Time of Impact, Closest Points and Penetration Depth.

Definition at line 42 of file btCollisionDispatcher.h.

## Member Enumeration Documentation

## ◆ DispatcherFlags

enum btCollisionDispatcher::DispatcherFlags

Enumerator
CD_STATIC_STATIC_REPORTED |
CD_USE_RELATIVE_CONTACT_BREAKING_THRESHOLD |
CD_DISABLE_CONTACTPOOL_DYNAMIC_ALLOCATION |

Definition at line 62 of file btCollisionDispatcher.h.

## Constructor & Destructor Documentation

## ◆ btCollisionDispatcher()

btCollisionDispatcher::btCollisionDispatcher | ( | btCollisionConfiguration * | collisionConfiguration | ) |

Definition at line 32 of file btCollisionDispatcher.cpp.

## ◆ ~btCollisionDispatcher()

btCollisionDispatcher::~btCollisionDispatcher | ( |  | ) |
| virtual

Definition at line 64 of file btCollisionDispatcher.cpp.

## Member Function Documentation

## ◆ allocateCollisionAlgorithm()

void * btCollisionDispatcher::allocateCollisionAlgorithm | ( | int | size | ) |
| virtual

Implements btDispatcher.

Definition at line 268 of file btCollisionDispatcher.cpp.

## ◆ clearManifold()

void btCollisionDispatcher::clearManifold | ( | btPersistentManifold * | manifold | ) |
| virtual

Implements btDispatcher.

Definition at line 101 of file btCollisionDispatcher.cpp.

## ◆ defaultNearCallback()

void btCollisionDispatcher::defaultNearCallback | ( | btBroadphasePair & | collisionPair,
|  | btCollisionDispatcher & | dispatcher,
|  | const btDispatcherInfo & | dispatchInfo
| ) |  |
| static

Definition at line 231 of file btCollisionDispatcher.cpp.

## ◆ dispatchAllCollisionPairs()

void btCollisionDispatcher::dispatchAllCollisionPairs | ( | btOverlappingPairCache * | pairCache,
|  | const btDispatcherInfo & | dispatchInfo,
|  | btDispatcher * | dispatcher
| ) |  |
| virtual

Implements btDispatcher.

Reimplemented in btCollisionDispatcherMt.

Definition at line 216 of file btCollisionDispatcher.cpp.

## ◆ findAlgorithm()

btCollisionAlgorithm * btCollisionDispatcher::findAlgorithm | ( | const btCollisionObjectWrapper * | body0Wrap,
|  | const btCollisionObjectWrapper * | body1Wrap,
|  | btPersistentManifold * | sharedManifold,
|  | ebtDispatcherQueryType | queryType
| ) |  |
| virtual

Implements btDispatcher.

Definition at line 128 of file btCollisionDispatcher.cpp.

## ◆ freeCollisionAlgorithm()

void btCollisionDispatcher::freeCollisionAlgorithm | ( | void * | ptr | ) |
| virtual

Implements btDispatcher.

Definition at line 279 of file btCollisionDispatcher.cpp.

## ◆ getCollisionConfiguration() [1/2]

btCollisionConfiguration * btCollisionDispatcher::getCollisionConfiguration | ( |  | ) |
| inline

Definition at line 143 of file btCollisionDispatcher.h.

## ◆ getCollisionConfiguration() [2/2]

const btCollisionConfiguration * btCollisionDispatcher::getCollisionConfiguration | ( |  | ) | const
| inline

Definition at line 148 of file btCollisionDispatcher.h.

## ◆ getDispatcherFlags()

int btCollisionDispatcher::getDispatcherFlags | ( |  | ) | const
| inline

Definition at line 69 of file btCollisionDispatcher.h.

## ◆ getInternalManifoldPointer()

btPersistentManifold ** btCollisionDispatcher::getInternalManifoldPointer | ( |  | ) |
| inlinevirtual

Implements btDispatcher.

Definition at line 89 of file btCollisionDispatcher.h.

## ◆ getInternalManifoldPool() [1/2]

virtual btPoolAllocator * btCollisionDispatcher::getInternalManifoldPool | ( |  | ) |
| inlinevirtual

Implements btDispatcher.

Definition at line 158 of file btCollisionDispatcher.h.

## ◆ getInternalManifoldPool() [2/2]

virtual const btPoolAllocator * btCollisionDispatcher::getInternalManifoldPool | ( |  | ) | const
| inlinevirtual

Implements btDispatcher.

Definition at line 163 of file btCollisionDispatcher.h.

## ◆ getManifoldByIndexInternal() [1/2]

btPersistentManifold * btCollisionDispatcher::getManifoldByIndexInternal | ( | int | index | ) |
| inlinevirtual

Implements btDispatcher.

Definition at line 94 of file btCollisionDispatcher.h.

## ◆ getManifoldByIndexInternal() [2/2]

const btPersistentManifold * btCollisionDispatcher::getManifoldByIndexInternal | ( | int | index | ) | const
| inline

Definition at line 101 of file btCollisionDispatcher.h.

## ◆ getNearCallback()

btNearCallback btCollisionDispatcher::getNearCallback | ( |  | ) | const
| inline

Definition at line 131 of file btCollisionDispatcher.h.

## ◆ getNewManifold()

btPersistentManifold * btCollisionDispatcher::getNewManifold | ( | const btCollisionObject * | b0,
|  | const btCollisionObject * | b1
| ) |  |
| virtual

Implements btDispatcher.

Reimplemented in btCollisionDispatcherMt.

Definition at line 68 of file btCollisionDispatcher.cpp.

## ◆ getNumManifolds()

int btCollisionDispatcher::getNumManifolds | ( |  | ) | const
| inlinevirtual

Implements btDispatcher.

Definition at line 84 of file btCollisionDispatcher.h.

## ◆ needsCollision()

bool btCollisionDispatcher::needsCollision | ( | const btCollisionObject * | body0,
|  | const btCollisionObject * | body1
| ) |  |
| virtual

Implements btDispatcher.

Definition at line 158 of file btCollisionDispatcher.cpp.

## ◆ needsResponse()

bool btCollisionDispatcher::needsResponse | ( | const btCollisionObject * | body0,
|  | const btCollisionObject * | body1
| ) |  |
| virtual

Implements btDispatcher.

Definition at line 147 of file btCollisionDispatcher.cpp.

## ◆ registerClosestPointsCreateFunc()

void btCollisionDispatcher::registerClosestPointsCreateFunc | ( | int | proxyType0,
|  | int | proxyType1,
|  | btCollisionAlgorithmCreateFunc * | createFunc
| ) |  |

Definition at line 59 of file btCollisionDispatcher.cpp.

## ◆ registerCollisionCreateFunc()

void btCollisionDispatcher::registerCollisionCreateFunc | ( | int | proxyType0,
|  | int | proxyType1,
|  | btCollisionAlgorithmCreateFunc * | createFunc
| ) |  |

registerCollisionCreateFunc allows registration of custom/alternative collision create functions

Definition at line 54 of file btCollisionDispatcher.cpp.

## ◆ releaseManifold()

void btCollisionDispatcher::releaseManifold | ( | btPersistentManifold * | manifold | ) |
| virtual

Implements btDispatcher.

Reimplemented in btCollisionDispatcherMt.

Definition at line 106 of file btCollisionDispatcher.cpp.

## ◆ setCollisionConfiguration()

void btCollisionDispatcher::setCollisionConfiguration | ( | btCollisionConfiguration * | config | ) |
| inline

Definition at line 153 of file btCollisionDispatcher.h.

## ◆ setDispatcherFlags()

void btCollisionDispatcher::setDispatcherFlags | ( | int | flags | ) |
| inline

Definition at line 74 of file btCollisionDispatcher.h.

## ◆ setNearCallback()

void btCollisionDispatcher::setNearCallback | ( | btNearCallback | nearCallback | ) |
| inline

Definition at line 126 of file btCollisionDispatcher.h.

## Member Data Documentation

## ◆ m_collisionAlgorithmPoolAllocator

btPoolAllocator* btCollisionDispatcher::m_collisionAlgorithmPoolAllocator
| protected

Definition at line 51 of file btCollisionDispatcher.h.

## ◆ m_collisionConfiguration

btCollisionConfiguration* btCollisionDispatcher::m_collisionConfiguration
| protected

Definition at line 59 of file btCollisionDispatcher.h.

## ◆ m_dispatcherFlags

int btCollisionDispatcher::m_dispatcherFlags
| protected

Definition at line 45 of file btCollisionDispatcher.h.

## ◆ m_doubleDispatchClosestPoints

btCollisionAlgorithmCreateFunc* btCollisionDispatcher::m_doubleDispatchClosestPoints[MAX_BROADPHASE_COLLISION_TYPES][MAX_BROADPHASE_COLLISION_TYPES]
| protected

Definition at line 57 of file btCollisionDispatcher.h.

## ◆ m_doubleDispatchContactPoints

btCollisionAlgorithmCreateFunc* btCollisionDispatcher::m_doubleDispatchContactPoints[MAX_BROADPHASE_COLLISION_TYPES][MAX_BROADPHASE_COLLISION_TYPES]
| protected

Definition at line 55 of file btCollisionDispatcher.h.

## ◆ m_manifoldsPtr

btAlignedObjectArray<btPersistentManifold*> btCollisionDispatcher::m_manifoldsPtr
| protected

Definition at line 47 of file btCollisionDispatcher.h.

## ◆ m_nearCallback

btNearCallback btCollisionDispatcher::m_nearCallback
| protected

Definition at line 49 of file btCollisionDispatcher.h.

## ◆ m_persistentManifoldPoolAllocator

btPoolAllocator* btCollisionDispatcher::m_persistentManifoldPoolAllocator
| protected

Definition at line 53 of file btCollisionDispatcher.h.

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

- btCollisionDispatcher.h
- btCollisionDispatcher.cpp