16#ifndef BT_COLLISION__DISPATCHER_H
17#define BT_COLLISION__DISPATCHER_H
34#define USE_DISPATCH_REGISTRY_ARRAY 1
@ MAX_BROADPHASE_COLLISION_TYPES
void(* btNearCallback)(btBroadphasePair &collisionPair, btCollisionDispatcher &dispatcher, const btDispatcherInfo &dispatchInfo)
user can override this nearcallback for collision filtering and more finegrained control over collisi...
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
int size() const
return the number of elements in the array
btCollisionAlgorithm is an collision interface that is compatible with the Broadphase and btDispatche...
btCollisionConfiguration allows to configure Bullet collision detection stack allocator size,...
btCollisionDispatcher supports algorithms that handle ConvexConvex and ConvexConcave collision pairs.
btCollisionAlgorithmCreateFunc * m_doubleDispatchClosestPoints[MAX_BROADPHASE_COLLISION_TYPES][MAX_BROADPHASE_COLLISION_TYPES]
const btPersistentManifold * getManifoldByIndexInternal(int index) const
int getDispatcherFlags() const
virtual const btPoolAllocator * getInternalManifoldPool() const
virtual void releaseManifold(btPersistentManifold *manifold)
void registerClosestPointsCreateFunc(int proxyType0, int proxyType1, btCollisionAlgorithmCreateFunc *createFunc)
btCollisionConfiguration * m_collisionConfiguration
virtual bool needsCollision(const btCollisionObject *body0, const btCollisionObject *body1)
btCollisionConfiguration * getCollisionConfiguration()
void setCollisionConfiguration(btCollisionConfiguration *config)
btPersistentManifold ** getInternalManifoldPointer()
btCollisionDispatcher(btCollisionConfiguration *collisionConfiguration)
btNearCallback getNearCallback() const
void setNearCallback(btNearCallback nearCallback)
virtual btPersistentManifold * getNewManifold(const btCollisionObject *b0, const btCollisionObject *b1)
virtual void freeCollisionAlgorithm(void *ptr)
virtual ~btCollisionDispatcher()
btCollisionAlgorithmCreateFunc * m_doubleDispatchContactPoints[MAX_BROADPHASE_COLLISION_TYPES][MAX_BROADPHASE_COLLISION_TYPES]
static void defaultNearCallback(btBroadphasePair &collisionPair, btCollisionDispatcher &dispatcher, const btDispatcherInfo &dispatchInfo)
virtual void dispatchAllCollisionPairs(btOverlappingPairCache *pairCache, const btDispatcherInfo &dispatchInfo, btDispatcher *dispatcher)
btPoolAllocator * m_collisionAlgorithmPoolAllocator
virtual void clearManifold(btPersistentManifold *manifold)
virtual bool needsResponse(const btCollisionObject *body0, const btCollisionObject *body1)
btCollisionAlgorithm * findAlgorithm(const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, btPersistentManifold *sharedManifold, ebtDispatcherQueryType queryType)
@ CD_STATIC_STATIC_REPORTED
@ CD_USE_RELATIVE_CONTACT_BREAKING_THRESHOLD
@ CD_DISABLE_CONTACTPOOL_DYNAMIC_ALLOCATION
virtual void * allocateCollisionAlgorithm(int size)
const btCollisionConfiguration * getCollisionConfiguration() const
btAlignedObjectArray< btPersistentManifold * > m_manifoldsPtr
btPersistentManifold * getManifoldByIndexInternal(int index)
btPoolAllocator * m_persistentManifoldPoolAllocator
int getNumManifolds() const
void registerCollisionCreateFunc(int proxyType0, int proxyType1, btCollisionAlgorithmCreateFunc *createFunc)
registerCollisionCreateFunc allows registration of custom/alternative collision create functions
void setDispatcherFlags(int flags)
btNearCallback m_nearCallback
virtual btPoolAllocator * getInternalManifoldPool()
btCollisionObject can be used to manage collision detection objects.
The btDispatcher interface class can be used in combination with broadphase to dispatch calculations ...
The btIDebugDraw interface class allows hooking up a debug renderer to visually debug simulations.
The btOverlappingPairCache provides an interface for overlapping pair management (add,...
btPersistentManifold is a contact point cache, it stays persistent as long as objects are overlapping...
The btPoolAllocator class allows to efficiently allocate a large pool of objects, instead of dynamica...
The btBroadphasePair class contains a pair of aabb-overlapping objects.
Used by the btCollisionDispatcher to register and create instances for btCollisionAlgorithm.