16#ifndef BT_COLLISION__DISPATCHER_H
17#define BT_COLLISION__DISPATCHER_H
34#define USE_DISPATCH_REGISTRY_ARRAY 1
120 virtual bool needsCollision(
const btCollisionObject* body0,
const btCollisionObject* body1);
122 virtual bool needsResponse(
const btCollisionObject* body0,
const btCollisionObject* body1);
@ 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...
SIMD_FORCE_INLINE void clearManifold()
SIMD_FORCE_INLINE int size() const
return the number of elements in the array
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 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()
The btPoolAllocator class allows to efficiently allocate a large pool of objects, instead of dynamica...
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
Used by the btCollisionDispatcher to register and create instances for btCollisionAlgorithm.