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

#include <btCollisionDispatcher.h>

Inheritance diagram for btCollisionDispatcher:
btDispatcher btCollisionDispatcherMt

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 ()
 

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

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)

◆ ~btCollisionDispatcher()

btCollisionDispatcher::~btCollisionDispatcher ( )
virtual

Definition at line 64 of file btCollisionDispatcher.cpp.

Member Function Documentation

◆ allocateCollisionAlgorithm()

void * btCollisionDispatcher::allocateCollisionAlgorithm ( int  size)
virtual

◆ clearManifold()

void btCollisionDispatcher::clearManifold ( btPersistentManifold *  manifold)
virtual

Implements btDispatcher.

Definition at line 101 of file btCollisionDispatcher.cpp.

Referenced by releaseManifold(), and btCollisionDispatcherMt::releaseManifold().

◆ defaultNearCallback()

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

◆ dispatchAllCollisionPairs()

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

◆ findAlgorithm()

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

◆ freeCollisionAlgorithm()

void btCollisionDispatcher::freeCollisionAlgorithm ( void *  ptr)
virtual

◆ getCollisionConfiguration() [1/2]

btCollisionConfiguration* btCollisionDispatcher::getCollisionConfiguration ( )
inline

Definition at line 143 of file btCollisionDispatcher.h.

References m_collisionConfiguration.

◆ getCollisionConfiguration() [2/2]

const btCollisionConfiguration* btCollisionDispatcher::getCollisionConfiguration ( ) const
inline

Definition at line 148 of file btCollisionDispatcher.h.

References m_collisionConfiguration.

◆ getDispatcherFlags()

int btCollisionDispatcher::getDispatcherFlags ( ) const
inline

Definition at line 69 of file btCollisionDispatcher.h.

References m_dispatcherFlags.

◆ getInternalManifoldPointer()

btPersistentManifold** btCollisionDispatcher::getInternalManifoldPointer ( )
inlinevirtual

Implements btDispatcher.

Definition at line 89 of file btCollisionDispatcher.h.

References m_manifoldsPtr, and btAlignedObjectArray< T >::size().

◆ getInternalManifoldPool() [1/2]

virtual btPoolAllocator* btCollisionDispatcher::getInternalManifoldPool ( )
inlinevirtual

Implements btDispatcher.

Definition at line 158 of file btCollisionDispatcher.h.

References m_persistentManifoldPoolAllocator.

◆ getInternalManifoldPool() [2/2]

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

Implements btDispatcher.

Definition at line 163 of file btCollisionDispatcher.h.

References m_persistentManifoldPoolAllocator.

◆ getManifoldByIndexInternal() [1/2]

btPersistentManifold* btCollisionDispatcher::getManifoldByIndexInternal ( int  index)
inlinevirtual

Implements btDispatcher.

Definition at line 94 of file btCollisionDispatcher.h.

References btAssert, m_manifoldsPtr, and btAlignedObjectArray< T >::size().

◆ getManifoldByIndexInternal() [2/2]

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

◆ getNearCallback()

btNearCallback btCollisionDispatcher::getNearCallback ( ) const
inline

◆ getNewManifold()

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

◆ getNumManifolds()

int btCollisionDispatcher::getNumManifolds ( ) const
inlinevirtual

Implements btDispatcher.

Definition at line 84 of file btCollisionDispatcher.h.

References m_manifoldsPtr, and btAlignedObjectArray< T >::size().

◆ needsCollision()

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

Implements btDispatcher.

Definition at line 158 of file btCollisionDispatcher.cpp.

References btAssert, CD_STATIC_STATIC_REPORTED, and m_dispatcherFlags.

Referenced by defaultNearCallback().

◆ 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.

References m_doubleDispatchClosestPoints.

◆ 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.

References m_doubleDispatchContactPoints.

Referenced by btGImpactCollisionAlgorithm::registerAlgorithm().

◆ releaseManifold()

void btCollisionDispatcher::releaseManifold ( btPersistentManifold *  manifold)
virtual

◆ setCollisionConfiguration()

void btCollisionDispatcher::setCollisionConfiguration ( btCollisionConfiguration *  config)
inline

Definition at line 153 of file btCollisionDispatcher.h.

References m_collisionConfiguration.

◆ setDispatcherFlags()

void btCollisionDispatcher::setDispatcherFlags ( int  flags)
inline

Definition at line 74 of file btCollisionDispatcher.h.

References m_dispatcherFlags.

◆ setNearCallback()

void btCollisionDispatcher::setNearCallback ( btNearCallback  nearCallback)
inline

Definition at line 126 of file btCollisionDispatcher.h.

References m_nearCallback.

Referenced by btCollisionDispatcher().

Member Data Documentation

◆ m_collisionAlgorithmPoolAllocator

btPoolAllocator* btCollisionDispatcher::m_collisionAlgorithmPoolAllocator
protected

◆ m_collisionConfiguration

btCollisionConfiguration* btCollisionDispatcher::m_collisionConfiguration
protected

◆ m_dispatcherFlags

int btCollisionDispatcher::m_dispatcherFlags
protected

◆ m_doubleDispatchClosestPoints

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

◆ m_doubleDispatchContactPoints

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

◆ m_manifoldsPtr

btAlignedObjectArray<btPersistentManifold*> btCollisionDispatcher::m_manifoldsPtr
protected

◆ m_nearCallback

btNearCallback btCollisionDispatcher::m_nearCallback
protected

Definition at line 49 of file btCollisionDispatcher.h.

Referenced by getNearCallback(), and setNearCallback().

◆ m_persistentManifoldPoolAllocator

btPoolAllocator* btCollisionDispatcher::m_persistentManifoldPoolAllocator
protected

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