Blender V2.61 - r43446
|
#include <btOverlappingPairCache.h>
btSortedOverlappingPairCache maintains the objects with overlapping AABB Typically managed by the Broadphase, Axis3Sweep or btSimpleBroadphase
Definition at line 281 of file btOverlappingPairCache.h.
btSortedOverlappingPairCache::btSortedOverlappingPairCache | ( | ) |
Definition at line 541 of file btOverlappingPairCache.cpp.
References m_overlappingPairArray, and btAlignedObjectArray< T >::reserve().
btSortedOverlappingPairCache::~btSortedOverlappingPairCache | ( | ) | [virtual] |
Definition at line 551 of file btOverlappingPairCache.cpp.
btBroadphasePair * btSortedOverlappingPairCache::addOverlappingPair | ( | btBroadphaseProxy * | proxy0, |
btBroadphaseProxy * | proxy1 | ||
) | [virtual] |
Implements btOverlappingPairCallback.
Definition at line 462 of file btOverlappingPairCache.cpp.
References btOverlappingPairCallback::addOverlappingPair(), btAssert, btAlignedObjectArray< T >::expandNonInitializing(), gAddedPairs, gOverlappingPairs, m_ghostPairCallback, m_overlappingPairArray, and needsBroadphaseCollision().
void btSortedOverlappingPairCache::cleanOverlappingPair | ( | btBroadphasePair & | pair, |
btDispatcher * | dispatcher | ||
) | [virtual] |
Implements btOverlappingPairCache.
Definition at line 555 of file btOverlappingPairCache.cpp.
References btDispatcher::freeCollisionAlgorithm(), and gRemovePairs.
Referenced by processAllOverlappingPairs(), and removeOverlappingPair().
void btSortedOverlappingPairCache::cleanProxyFromPairs | ( | btBroadphaseProxy * | proxy, |
btDispatcher * | dispatcher | ||
) | [virtual] |
Implements btOverlappingPairCache.
Definition at line 569 of file btOverlappingPairCache.cpp.
References processAllOverlappingPairs().
btBroadphasePair * btSortedOverlappingPairCache::findPair | ( | btBroadphaseProxy * | proxy0, |
btBroadphaseProxy * | proxy1 | ||
) | [virtual] |
this findPair becomes really slow. Either sort the list to speedup the query, or use a different solution. It is mainly used for Removing overlapping pairs. Removal could be delayed. we could keep a linked list in each proxy, and store pair in one of the proxies (with lowest memory address) Also we can use a 2D bitmap, which can be useful for a future GPU implementation
Implements btOverlappingPairCache.
Definition at line 486 of file btOverlappingPairCache.cpp.
References btAlignedObjectArray< T >::findLinearSearch(), m_overlappingPairArray, needsBroadphaseCollision(), and btAlignedObjectArray< T >::size().
Referenced by removeOverlappingPair().
int btSortedOverlappingPairCache::getNumOverlappingPairs | ( | ) | const [inline, virtual] |
Implements btOverlappingPairCache.
Definition at line 353 of file btOverlappingPairCache.h.
References m_overlappingPairArray, and btAlignedObjectArray< T >::size().
btOverlapFilterCallback* btSortedOverlappingPairCache::getOverlapFilterCallback | ( | ) | [inline] |
Definition at line 358 of file btOverlappingPairCache.h.
References m_overlapFilterCallback.
btBroadphasePairArray& btSortedOverlappingPairCache::getOverlappingPairArray | ( | ) | [inline, virtual] |
Implements btOverlappingPairCache.
Definition at line 330 of file btOverlappingPairCache.h.
References m_overlappingPairArray.
const btBroadphasePairArray& btSortedOverlappingPairCache::getOverlappingPairArray | ( | ) | const [inline] |
Definition at line 335 of file btOverlappingPairCache.h.
References m_overlappingPairArray.
btBroadphasePair* btSortedOverlappingPairCache::getOverlappingPairArrayPtr | ( | ) | [inline, virtual] |
Implements btOverlappingPairCache.
Definition at line 343 of file btOverlappingPairCache.h.
References m_overlappingPairArray.
const btBroadphasePair* btSortedOverlappingPairCache::getOverlappingPairArrayPtr | ( | ) | const [inline, virtual] |
Implements btOverlappingPairCache.
Definition at line 348 of file btOverlappingPairCache.h.
References m_overlappingPairArray.
virtual bool btSortedOverlappingPairCache::hasDeferredRemoval | ( | ) | [inline, virtual] |
Implements btOverlappingPairCache.
Definition at line 368 of file btOverlappingPairCache.h.
References m_hasDeferredRemoval.
Referenced by removeOverlappingPair().
bool btSortedOverlappingPairCache::needsBroadphaseCollision | ( | btBroadphaseProxy * | proxy0, |
btBroadphaseProxy * | proxy1 | ||
) | const [inline] |
Definition at line 319 of file btOverlappingPairCache.h.
References m_overlapFilterCallback, and btOverlapFilterCallback::needBroadphaseCollision().
Referenced by addOverlappingPair(), and findPair().
void btSortedOverlappingPairCache::processAllOverlappingPairs | ( | btOverlapCallback * | callback, |
btDispatcher * | dispatcher | ||
) | [virtual] |
Implements btOverlappingPairCache.
Definition at line 514 of file btOverlappingPairCache.cpp.
References cleanOverlappingPair(), gOverlappingPairs, i, m_overlappingPairArray, btAlignedObjectArray< T >::pop_back(), btOverlapCallback::processOverlap(), btAlignedObjectArray< T >::size(), and btAlignedObjectArray< T >::swap().
Referenced by cleanProxyFromPairs(), and removeOverlappingPairsContainingProxy().
void * btSortedOverlappingPairCache::removeOverlappingPair | ( | btBroadphaseProxy * | proxy0, |
btBroadphaseProxy * | proxy1, | ||
btDispatcher * | dispatcher | ||
) | [virtual] |
Implements btOverlappingPairCallback.
Definition at line 430 of file btOverlappingPairCache.cpp.
References btAlignedObjectArray< T >::capacity(), cleanOverlappingPair(), btAlignedObjectArray< T >::findLinearSearch(), findPair(), gOverlappingPairs, hasDeferredRemoval(), m_ghostPairCallback, m_overlappingPairArray, btAlignedObjectArray< T >::pop_back(), btOverlappingPairCallback::removeOverlappingPair(), btAlignedObjectArray< T >::size(), and btAlignedObjectArray< T >::swap().
void btSortedOverlappingPairCache::removeOverlappingPairsContainingProxy | ( | btBroadphaseProxy * | proxy, |
btDispatcher * | dispatcher | ||
) | [virtual] |
Implements btOverlappingPairCallback.
Definition at line 604 of file btOverlappingPairCache.cpp.
References processAllOverlappingPairs().
virtual void btSortedOverlappingPairCache::setInternalGhostPairCallback | ( | btOverlappingPairCallback * | ghostPairCallback | ) | [inline, virtual] |
Implements btOverlappingPairCache.
Definition at line 373 of file btOverlappingPairCache.h.
References m_ghostPairCallback.
void btSortedOverlappingPairCache::setOverlapFilterCallback | ( | btOverlapFilterCallback * | callback | ) | [inline, virtual] |
Implements btOverlappingPairCache.
Definition at line 363 of file btOverlappingPairCache.h.
References m_overlapFilterCallback.
void btSortedOverlappingPairCache::sortOverlappingPairs | ( | btDispatcher * | dispatcher | ) | [virtual] |
Implements btOverlappingPairCache.
Definition at line 629 of file btOverlappingPairCache.cpp.
bool btSortedOverlappingPairCache::m_blockedForChanges [protected] |
Definition at line 288 of file btOverlappingPairCache.h.
Definition at line 296 of file btOverlappingPairCache.h.
Referenced by addOverlappingPair(), removeOverlappingPair(), and setInternalGhostPairCallback().
bool btSortedOverlappingPairCache::m_hasDeferredRemoval [protected] |
by default, do the removal during the pair traversal
Definition at line 291 of file btOverlappingPairCache.h.
Referenced by hasDeferredRemoval().
Definition at line 294 of file btOverlappingPairCache.h.
Referenced by getOverlapFilterCallback(), needsBroadphaseCollision(), and setOverlapFilterCallback().
Definition at line 285 of file btOverlappingPairCache.h.
Referenced by addOverlappingPair(), btSortedOverlappingPairCache(), findPair(), getNumOverlappingPairs(), getOverlappingPairArray(), getOverlappingPairArrayPtr(), processAllOverlappingPairs(), and removeOverlappingPair().