Blender V2.61 - r43446
|
#include <btCollisionDispatcher.h>
Public Types | |
enum | DispatcherFlags { CD_STATIC_STATIC_REPORTED = 1, CD_USE_RELATIVE_CONTACT_BREAKING_THRESHOLD = 2 } |
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 | |
int | getNumManifolds () const |
btPersistentManifold ** | getInternalManifoldPointer () |
btPersistentManifold * | getManifoldByIndexInternal (int index) |
const btPersistentManifold * | getManifoldByIndexInternal (int index) const |
btCollisionDispatcher (btCollisionConfiguration *collisionConfiguration) | |
virtual | ~btCollisionDispatcher () |
virtual btPersistentManifold * | getNewManifold (void *b0, void *b1) |
virtual void | releaseManifold (btPersistentManifold *manifold) |
virtual void | clearManifold (btPersistentManifold *manifold) |
btCollisionAlgorithm * | findAlgorithm (btCollisionObject *body0, btCollisionObject *body1, btPersistentManifold *sharedManifold=0) |
virtual bool | needsCollision (btCollisionObject *body0, btCollisionObject *body1) |
virtual bool | needsResponse (btCollisionObject *body0, 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) |
Static Public Member Functions | |
static void | defaultNearCallback (btBroadphasePair &collisionPair, btCollisionDispatcher &dispatcher, const btDispatcherInfo &dispatchInfo) |
Protected Attributes | |
int | m_dispatcherFlags |
btAlignedObjectArray < btPersistentManifold * > | m_manifoldsPtr |
btManifoldResult | m_defaultManifoldResult |
btNearCallback | m_nearCallback |
btPoolAllocator * | m_collisionAlgorithmPoolAllocator |
btPoolAllocator * | m_persistentManifoldPoolAllocator |
btCollisionAlgorithmCreateFunc * | m_doubleDispatch [MAX_BROADPHASE_COLLISION_TYPES][MAX_BROADPHASE_COLLISION_TYPES] |
btCollisionConfiguration * | m_collisionConfiguration |
btCollisionDispatcher supports algorithms that handle ConvexConvex and ConvexConcave collision pairs. Time of Impact, Closest Points and Penetration Depth.
Definition at line 43 of file btCollisionDispatcher.h.
Definition at line 67 of file btCollisionDispatcher.h.
btCollisionDispatcher::btCollisionDispatcher | ( | btCollisionConfiguration * | collisionConfiguration | ) |
Definition at line 36 of file btCollisionDispatcher.cpp.
References btAssert, defaultNearCallback(), btCollisionConfiguration::getCollisionAlgorithmCreateFunc(), btCollisionConfiguration::getCollisionAlgorithmPool(), btCollisionConfiguration::getPersistentManifoldPool(), i, m_collisionAlgorithmPoolAllocator, m_collisionConfiguration, m_doubleDispatch, m_persistentManifoldPoolAllocator, MAX_BROADPHASE_COLLISION_TYPES, and setNearCallback().
btCollisionDispatcher::~btCollisionDispatcher | ( | ) | [virtual] |
Definition at line 66 of file btCollisionDispatcher.cpp.
void * btCollisionDispatcher::allocateCollisionAlgorithm | ( | int | size | ) | [virtual] |
Implements btDispatcher.
Definition at line 283 of file btCollisionDispatcher.cpp.
References btPoolAllocator::allocate(), btAlignedAlloc, btPoolAllocator::getFreeCount(), and m_collisionAlgorithmPoolAllocator.
void btCollisionDispatcher::clearManifold | ( | btPersistentManifold * | manifold | ) | [virtual] |
Implements btDispatcher.
Definition at line 105 of file btCollisionDispatcher.cpp.
Referenced by releaseManifold().
void btCollisionDispatcher::defaultNearCallback | ( | btBroadphasePair & | collisionPair, |
btCollisionDispatcher & | dispatcher, | ||
const btDispatcherInfo & | dispatchInfo | ||
) | [static] |
Definition at line 248 of file btCollisionDispatcher.cpp.
References btDispatcherInfo::DISPATCH_DISCRETE, findAlgorithm(), btDispatcherInfo::m_dispatchFunc, btDispatcherInfo::m_timeOfImpact, and needsCollision().
Referenced by btCollisionDispatcher().
void btCollisionDispatcher::dispatchAllCollisionPairs | ( | btOverlappingPairCache * | pairCache, |
const btDispatcherInfo & | dispatchInfo, | ||
btDispatcher * | dispatcher | ||
) | [virtual] |
Implements btDispatcher.
Definition at line 232 of file btCollisionDispatcher.cpp.
References btOverlappingPairCache::processAllOverlappingPairs().
btCollisionAlgorithm * btCollisionDispatcher::findAlgorithm | ( | btCollisionObject * | body0, |
btCollisionObject * | body1, | ||
btPersistentManifold * | sharedManifold = 0 |
||
) | [virtual] |
Implements btDispatcher.
Definition at line 138 of file btCollisionDispatcher.cpp.
References btCollisionAlgorithmCreateFunc::CreateCollisionAlgorithm(), btCollisionAlgorithmConstructionInfo::m_dispatcher1, m_doubleDispatch, and btCollisionAlgorithmConstructionInfo::m_manifold.
Referenced by defaultNearCallback().
void btCollisionDispatcher::freeCollisionAlgorithm | ( | void * | ptr | ) | [virtual] |
Implements btDispatcher.
Definition at line 294 of file btCollisionDispatcher.cpp.
References btAlignedFree, btPoolAllocator::freeMemory(), m_collisionAlgorithmPoolAllocator, and btPoolAllocator::validPtr().
btCollisionConfiguration* btCollisionDispatcher::getCollisionConfiguration | ( | ) | [inline] |
Definition at line 143 of file btCollisionDispatcher.h.
References m_collisionConfiguration.
const btCollisionConfiguration* btCollisionDispatcher::getCollisionConfiguration | ( | ) | const [inline] |
Definition at line 148 of file btCollisionDispatcher.h.
References m_collisionConfiguration.
int btCollisionDispatcher::getDispatcherFlags | ( | ) | const [inline] |
Definition at line 73 of file btCollisionDispatcher.h.
References m_dispatcherFlags.
btPersistentManifold** btCollisionDispatcher::getInternalManifoldPointer | ( | ) | [inline, virtual] |
Implements btDispatcher.
Definition at line 91 of file btCollisionDispatcher.h.
References m_manifoldsPtr.
btPersistentManifold* btCollisionDispatcher::getManifoldByIndexInternal | ( | int | index | ) | [inline, virtual] |
Implements btDispatcher.
Definition at line 96 of file btCollisionDispatcher.h.
References m_manifoldsPtr.
const btPersistentManifold* btCollisionDispatcher::getManifoldByIndexInternal | ( | int | index | ) | const [inline] |
Definition at line 101 of file btCollisionDispatcher.h.
References m_manifoldsPtr.
btNearCallback btCollisionDispatcher::getNearCallback | ( | ) | const [inline] |
Definition at line 131 of file btCollisionDispatcher.h.
References m_nearCallback.
Referenced by btCollisionPairCallback::processOverlap().
btPersistentManifold * btCollisionDispatcher::getNewManifold | ( | void * | b0, |
void * | b1 | ||
) | [virtual] |
Implements btDispatcher.
Definition at line 70 of file btCollisionDispatcher.cpp.
References btPoolAllocator::allocate(), btAlignedAlloc, btMin(), CD_USE_RELATIVE_CONTACT_BREAKING_THRESHOLD, gContactBreakingThreshold, btPoolAllocator::getFreeCount(), gNumManifold, m_dispatcherFlags, m_manifoldsPtr, m_persistentManifoldPoolAllocator, btAlignedObjectArray< T >::push_back(), and btAlignedObjectArray< T >::size().
int btCollisionDispatcher::getNumManifolds | ( | ) | const [inline, virtual] |
Implements btDispatcher.
Definition at line 86 of file btCollisionDispatcher.h.
References m_manifoldsPtr, and btAlignedObjectArray< T >::size().
bool btCollisionDispatcher::needsCollision | ( | btCollisionObject * | body0, |
btCollisionObject * | body1 | ||
) | [virtual] |
Implements btDispatcher.
Definition at line 164 of file btCollisionDispatcher.cpp.
References btAssert, CD_STATIC_STATIC_REPORTED, and m_dispatcherFlags.
Referenced by defaultNearCallback().
bool btCollisionDispatcher::needsResponse | ( | btCollisionObject * | body0, |
btCollisionObject * | body1 | ||
) | [virtual] |
Implements btDispatcher.
Definition at line 153 of file btCollisionDispatcher.cpp.
void btCollisionDispatcher::registerCollisionCreateFunc | ( | int | proxyType0, |
int | proxyType1, | ||
btCollisionAlgorithmCreateFunc * | createFunc | ||
) |
registerCollisionCreateFunc allows registration of custom/alternative collision create functions
Definition at line 61 of file btCollisionDispatcher.cpp.
References m_doubleDispatch.
Referenced by btGImpactCollisionAlgorithm::registerAlgorithm().
void btCollisionDispatcher::releaseManifold | ( | btPersistentManifold * | manifold | ) | [virtual] |
Implements btDispatcher.
Definition at line 111 of file btCollisionDispatcher.cpp.
References btAlignedFree, btAssert, clearManifold(), btPoolAllocator::freeMemory(), gNumManifold, m_manifoldsPtr, m_persistentManifoldPoolAllocator, btAlignedObjectArray< T >::pop_back(), btAlignedObjectArray< T >::size(), btAlignedObjectArray< T >::swap(), and btPoolAllocator::validPtr().
void btCollisionDispatcher::setCollisionConfiguration | ( | btCollisionConfiguration * | config | ) | [inline] |
Definition at line 153 of file btCollisionDispatcher.h.
References m_collisionConfiguration.
void btCollisionDispatcher::setDispatcherFlags | ( | int | flags | ) | [inline] |
Definition at line 78 of file btCollisionDispatcher.h.
References m_dispatcherFlags.
void btCollisionDispatcher::setNearCallback | ( | btNearCallback | nearCallback | ) | [inline] |
Definition at line 126 of file btCollisionDispatcher.h.
References m_nearCallback.
Referenced by btCollisionDispatcher().
Definition at line 56 of file btCollisionDispatcher.h.
Referenced by allocateCollisionAlgorithm(), btCollisionDispatcher(), and freeCollisionAlgorithm().
Definition at line 62 of file btCollisionDispatcher.h.
Referenced by btCollisionDispatcher(), getCollisionConfiguration(), and setCollisionConfiguration().
Definition at line 52 of file btCollisionDispatcher.h.
int btCollisionDispatcher::m_dispatcherFlags [protected] |
Definition at line 48 of file btCollisionDispatcher.h.
Referenced by getDispatcherFlags(), getNewManifold(), needsCollision(), and setDispatcherFlags().
btCollisionAlgorithmCreateFunc* btCollisionDispatcher::m_doubleDispatch[MAX_BROADPHASE_COLLISION_TYPES][MAX_BROADPHASE_COLLISION_TYPES] [protected] |
Definition at line 60 of file btCollisionDispatcher.h.
Referenced by btCollisionDispatcher(), findAlgorithm(), and registerCollisionCreateFunc().
btAlignedObjectArray<btPersistentManifold*> btCollisionDispatcher::m_manifoldsPtr [protected] |
Definition at line 50 of file btCollisionDispatcher.h.
Referenced by getInternalManifoldPointer(), getManifoldByIndexInternal(), getNewManifold(), getNumManifolds(), and releaseManifold().
btNearCallback btCollisionDispatcher::m_nearCallback [protected] |
Definition at line 54 of file btCollisionDispatcher.h.
Referenced by getNearCallback(), and setNearCallback().
Definition at line 58 of file btCollisionDispatcher.h.
Referenced by btCollisionDispatcher(), getNewManifold(), and releaseManifold().