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]
int getDispatcherFlags() const
virtual void releaseManifold(btPersistentManifold *manifold)
void registerClosestPointsCreateFunc(int proxyType0, int proxyType1, btCollisionAlgorithmCreateFunc *createFunc)
const btPersistentManifold * getManifoldByIndexInternal(int index) const
btCollisionConfiguration * m_collisionConfiguration
virtual bool needsCollision(const btCollisionObject *body0, const btCollisionObject *body1)
void setCollisionConfiguration(btCollisionConfiguration *config)
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
const btCollisionConfiguration * getCollisionConfiguration() const
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)
btPersistentManifold ** getInternalManifoldPointer()
virtual const btPoolAllocator * getInternalManifoldPool() const
btAlignedObjectArray< btPersistentManifold * > m_manifoldsPtr
btPoolAllocator * m_persistentManifoldPoolAllocator
int getNumManifolds() const
btCollisionConfiguration * getCollisionConfiguration()
void registerCollisionCreateFunc(int proxyType0, int proxyType1, btCollisionAlgorithmCreateFunc *createFunc)
registerCollisionCreateFunc allows registration of custom/alternative collision create functions
void setDispatcherFlags(int flags)
virtual btPoolAllocator * getInternalManifoldPool()
btNearCallback m_nearCallback
btPersistentManifold * getManifoldByIndexInternal(int index)
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.