Blender V2.61 - r43446
|
Hash-space based Pair Cache, thanks to Erin Catto, Box2D, http://www.box2d.org, and Pierre Terdiman, Codercorner, http://codercorner.com. More...
#include <btOverlappingPairCache.h>
Public Member Functions | |
btHashedOverlappingPairCache () | |
virtual | ~btHashedOverlappingPairCache () |
void | removeOverlappingPairsContainingProxy (btBroadphaseProxy *proxy, btDispatcher *dispatcher) |
virtual void * | removeOverlappingPair (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1, btDispatcher *dispatcher) |
SIMD_FORCE_INLINE bool | needsBroadphaseCollision (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1) const |
virtual btBroadphasePair * | addOverlappingPair (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1) |
void | cleanProxyFromPairs (btBroadphaseProxy *proxy, btDispatcher *dispatcher) |
virtual void | processAllOverlappingPairs (btOverlapCallback *, btDispatcher *dispatcher) |
virtual btBroadphasePair * | getOverlappingPairArrayPtr () |
const btBroadphasePair * | getOverlappingPairArrayPtr () const |
btBroadphasePairArray & | getOverlappingPairArray () |
const btBroadphasePairArray & | getOverlappingPairArray () const |
void | cleanOverlappingPair (btBroadphasePair &pair, btDispatcher *dispatcher) |
btBroadphasePair * | findPair (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1) |
int | GetCount () const |
btOverlapFilterCallback * | getOverlapFilterCallback () |
void | setOverlapFilterCallback (btOverlapFilterCallback *callback) |
int | getNumOverlappingPairs () const |
Protected Attributes | |
btAlignedObjectArray< int > | m_hashTable |
btAlignedObjectArray< int > | m_next |
btOverlappingPairCallback * | m_ghostPairCallback |
Hash-space based Pair Cache, thanks to Erin Catto, Box2D, http://www.box2d.org, and Pierre Terdiman, Codercorner, http://codercorner.com.
Definition at line 93 of file btOverlappingPairCache.h.
btHashedOverlappingPairCache::btHashedOverlappingPairCache | ( | ) |
Definition at line 35 of file btOverlappingPairCache.cpp.
References btAlignedObjectArray< T >::reserve().
btHashedOverlappingPairCache::~btHashedOverlappingPairCache | ( | ) | [virtual] |
Definition at line 48 of file btOverlappingPairCache.cpp.
Referenced by btPairCachingGhostObject::~btPairCachingGhostObject().
virtual btBroadphasePair* btHashedOverlappingPairCache::addOverlappingPair | ( | btBroadphaseProxy * | proxy0, |
btBroadphaseProxy * | proxy1 | ||
) | [inline, virtual] |
Implements btOverlappingPairCallback.
Definition at line 122 of file btOverlappingPairCache.h.
References gAddedPairs, and needsBroadphaseCollision().
Referenced by btPairCachingGhostObject::addOverlappingObjectInternal().
void btHashedOverlappingPairCache::cleanOverlappingPair | ( | btBroadphasePair & | pair, |
btDispatcher * | dispatcher | ||
) | [virtual] |
Implements btOverlappingPairCache.
Definition at line 54 of file btOverlappingPairCache.cpp.
References btDispatcher::freeCollisionAlgorithm().
Referenced by removeOverlappingPair().
void btHashedOverlappingPairCache::cleanProxyFromPairs | ( | btBroadphaseProxy * | proxy, |
btDispatcher * | dispatcher | ||
) | [virtual] |
Implements btOverlappingPairCache.
Definition at line 69 of file btOverlappingPairCache.cpp.
References processAllOverlappingPairs().
btBroadphasePair * btHashedOverlappingPairCache::findPair | ( | btBroadphaseProxy * | proxy0, |
btBroadphaseProxy * | proxy1 | ||
) | [virtual] |
Implements btOverlappingPairCache.
Definition at line 136 of file btOverlappingPairCache.cpp.
References BT_NULL_PAIR, btAssert, btSwap(), btAlignedObjectArray< T >::capacity(), gFindPairs, hash, m_hashTable, m_next, NULL, and btAlignedObjectArray< T >::size().
int btHashedOverlappingPairCache::GetCount | ( | ) | const [inline] |
Definition at line 165 of file btOverlappingPairCache.h.
References btAlignedObjectArray< T >::size().
int btHashedOverlappingPairCache::getNumOverlappingPairs | ( | ) | const [inline, virtual] |
Implements btOverlappingPairCache.
Definition at line 178 of file btOverlappingPairCache.h.
References btAlignedObjectArray< T >::size().
Referenced by btKinematicCharacterController::recoverFromPenetration().
btOverlapFilterCallback* btHashedOverlappingPairCache::getOverlapFilterCallback | ( | ) | [inline] |
Definition at line 168 of file btOverlappingPairCache.h.
btBroadphasePairArray& btHashedOverlappingPairCache::getOverlappingPairArray | ( | ) | [inline, virtual] |
Implements btOverlappingPairCache.
Definition at line 149 of file btOverlappingPairCache.h.
Referenced by btKinematicCharacterController::recoverFromPenetration().
const btBroadphasePairArray& btHashedOverlappingPairCache::getOverlappingPairArray | ( | ) | const [inline] |
Definition at line 154 of file btOverlappingPairCache.h.
const btBroadphasePair* btHashedOverlappingPairCache::getOverlappingPairArrayPtr | ( | ) | const [inline, virtual] |
Implements btOverlappingPairCache.
Definition at line 144 of file btOverlappingPairCache.h.
virtual btBroadphasePair* btHashedOverlappingPairCache::getOverlappingPairArrayPtr | ( | ) | [inline, virtual] |
Implements btOverlappingPairCache.
Definition at line 139 of file btOverlappingPairCache.h.
SIMD_FORCE_INLINE bool btHashedOverlappingPairCache::needsBroadphaseCollision | ( | btBroadphaseProxy * | proxy0, |
btBroadphaseProxy * | proxy1 | ||
) | const [inline] |
Definition at line 109 of file btOverlappingPairCache.h.
References btOverlapFilterCallback::needBroadphaseCollision().
Referenced by addOverlappingPair().
void btHashedOverlappingPairCache::processAllOverlappingPairs | ( | btOverlapCallback * | callback, |
btDispatcher * | dispatcher | ||
) | [virtual] |
Implements btOverlappingPairCache.
Definition at line 377 of file btOverlappingPairCache.cpp.
References gOverlappingPairs, i, btOverlapCallback::processOverlap(), removeOverlappingPair(), and btAlignedObjectArray< T >::size().
Referenced by cleanProxyFromPairs(), and removeOverlappingPairsContainingProxy().
void * btHashedOverlappingPairCache::removeOverlappingPair | ( | btBroadphaseProxy * | proxy0, |
btBroadphaseProxy * | proxy1, | ||
btDispatcher * | dispatcher | ||
) | [virtual] |
Implements btOverlappingPairCallback.
Definition at line 273 of file btOverlappingPairCache.cpp.
References BT_NULL_PAIR, btAssert, btSwap(), btAlignedObjectArray< T >::capacity(), cleanOverlappingPair(), gRemovePairs, hash, m_ghostPairCallback, m_hashTable, m_next, NULL, btAlignedObjectArray< T >::pop_back(), btOverlappingPairCallback::removeOverlappingPair(), and btAlignedObjectArray< T >::size().
Referenced by processAllOverlappingPairs(), and btPairCachingGhostObject::removeOverlappingObjectInternal().
void btHashedOverlappingPairCache::removeOverlappingPairsContainingProxy | ( | btBroadphaseProxy * | proxy, |
btDispatcher * | dispatcher | ||
) | [virtual] |
Implements btOverlappingPairCallback.
Definition at line 106 of file btOverlappingPairCache.cpp.
References processAllOverlappingPairs().
void btHashedOverlappingPairCache::setOverlapFilterCallback | ( | btOverlapFilterCallback * | callback | ) | [inline, virtual] |
Implements btOverlappingPairCache.
Definition at line 173 of file btOverlappingPairCache.h.
Definition at line 272 of file btOverlappingPairCache.h.
Referenced by removeOverlappingPair().
btAlignedObjectArray<int> btHashedOverlappingPairCache::m_hashTable [protected] |
Definition at line 270 of file btOverlappingPairCache.h.
Referenced by findPair(), and removeOverlappingPair().
btAlignedObjectArray<int> btHashedOverlappingPairCache::m_next [protected] |
Definition at line 271 of file btOverlappingPairCache.h.
Referenced by findPair(), and removeOverlappingPair().