Public Member Functions | Protected Attributes

btSortedOverlappingPairCache Class Reference

btSortedOverlappingPairCache maintains the objects with overlapping AABB Typically managed by the Broadphase, Axis3Sweep or btSimpleBroadphase More...

#include <btOverlappingPairCache.h>

Inheritance diagram for btSortedOverlappingPairCache:
Inheritance graph
[legend]
Collaboration diagram for btSortedOverlappingPairCache:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 btSortedOverlappingPairCache ()
virtual ~btSortedOverlappingPairCache ()
virtual void processAllOverlappingPairs (btOverlapCallback *, btDispatcher *dispatcher)
void * removeOverlappingPair (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1, btDispatcher *dispatcher)
void cleanOverlappingPair (btBroadphasePair &pair, btDispatcher *dispatcher)
btBroadphasePairaddOverlappingPair (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1)
btBroadphasePairfindPair (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1)
 this findPair becomes really slow.
void cleanProxyFromPairs (btBroadphaseProxy *proxy, btDispatcher *dispatcher)
void removeOverlappingPairsContainingProxy (btBroadphaseProxy *proxy, btDispatcher *dispatcher)
bool needsBroadphaseCollision (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1) const
btBroadphasePairArraygetOverlappingPairArray ()
const btBroadphasePairArraygetOverlappingPairArray () const
btBroadphasePairgetOverlappingPairArrayPtr ()
const btBroadphasePairgetOverlappingPairArrayPtr () const
int getNumOverlappingPairs () const
btOverlapFilterCallbackgetOverlapFilterCallback ()
void setOverlapFilterCallback (btOverlapFilterCallback *callback)
virtual bool hasDeferredRemoval ()
virtual void setInternalGhostPairCallback (btOverlappingPairCallback *ghostPairCallback)
virtual void sortOverlappingPairs (btDispatcher *dispatcher)

Protected Attributes

btBroadphasePairArray m_overlappingPairArray
bool m_blockedForChanges
bool m_hasDeferredRemoval
 by default, do the removal during the pair traversal
btOverlapFilterCallbackm_overlapFilterCallback
btOverlappingPairCallbackm_ghostPairCallback

Detailed Description

btSortedOverlappingPairCache maintains the objects with overlapping AABB Typically managed by the Broadphase, Axis3Sweep or btSimpleBroadphase

Definition at line 281 of file btOverlappingPairCache.h.


Constructor & Destructor Documentation

btSortedOverlappingPairCache::btSortedOverlappingPairCache (  ) 

Definition at line 541 of file btOverlappingPairCache.cpp.

btSortedOverlappingPairCache::~btSortedOverlappingPairCache (  )  [virtual]

Definition at line 551 of file btOverlappingPairCache.cpp.


Member Function Documentation

btBroadphasePair * btSortedOverlappingPairCache::addOverlappingPair ( btBroadphaseProxy proxy0,
btBroadphaseProxy proxy1 
) [virtual]

Implements btOverlappingPairCallback.

Definition at line 462 of file btOverlappingPairCache.cpp.

void btSortedOverlappingPairCache::cleanOverlappingPair ( btBroadphasePair pair,
btDispatcher dispatcher 
) [virtual]

Implements btOverlappingPairCache.

Definition at line 555 of file btOverlappingPairCache.cpp.

void btSortedOverlappingPairCache::cleanProxyFromPairs ( btBroadphaseProxy proxy,
btDispatcher dispatcher 
) [virtual]

Implements btOverlappingPairCache.

Definition at line 569 of file btOverlappingPairCache.cpp.

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.

int btSortedOverlappingPairCache::getNumOverlappingPairs (  )  const [inline, virtual]

Implements btOverlappingPairCache.

Definition at line 353 of file btOverlappingPairCache.h.

btOverlapFilterCallback* btSortedOverlappingPairCache::getOverlapFilterCallback (  )  [inline]

Definition at line 358 of file btOverlappingPairCache.h.

btBroadphasePairArray& btSortedOverlappingPairCache::getOverlappingPairArray (  )  [inline, virtual]

Implements btOverlappingPairCache.

Definition at line 330 of file btOverlappingPairCache.h.

const btBroadphasePairArray& btSortedOverlappingPairCache::getOverlappingPairArray (  )  const [inline]

Definition at line 335 of file btOverlappingPairCache.h.

btBroadphasePair* btSortedOverlappingPairCache::getOverlappingPairArrayPtr (  )  [inline, virtual]

Implements btOverlappingPairCache.

Definition at line 343 of file btOverlappingPairCache.h.

const btBroadphasePair* btSortedOverlappingPairCache::getOverlappingPairArrayPtr (  )  const [inline, virtual]

Implements btOverlappingPairCache.

Definition at line 348 of file btOverlappingPairCache.h.

virtual bool btSortedOverlappingPairCache::hasDeferredRemoval (  )  [inline, virtual]

Implements btOverlappingPairCache.

Definition at line 368 of file btOverlappingPairCache.h.

bool btSortedOverlappingPairCache::needsBroadphaseCollision ( btBroadphaseProxy proxy0,
btBroadphaseProxy proxy1 
) const [inline]

Definition at line 319 of file btOverlappingPairCache.h.

void btSortedOverlappingPairCache::processAllOverlappingPairs ( btOverlapCallback callback,
btDispatcher dispatcher 
) [virtual]

Implements btOverlappingPairCache.

Definition at line 514 of file btOverlappingPairCache.cpp.

void * btSortedOverlappingPairCache::removeOverlappingPair ( btBroadphaseProxy proxy0,
btBroadphaseProxy proxy1,
btDispatcher dispatcher 
) [virtual]

Implements btOverlappingPairCallback.

Definition at line 430 of file btOverlappingPairCache.cpp.

void btSortedOverlappingPairCache::removeOverlappingPairsContainingProxy ( btBroadphaseProxy proxy,
btDispatcher dispatcher 
) [virtual]

Implements btOverlappingPairCallback.

Definition at line 604 of file btOverlappingPairCache.cpp.

virtual void btSortedOverlappingPairCache::setInternalGhostPairCallback ( btOverlappingPairCallback ghostPairCallback  )  [inline, virtual]

Implements btOverlappingPairCache.

Definition at line 373 of file btOverlappingPairCache.h.

void btSortedOverlappingPairCache::setOverlapFilterCallback ( btOverlapFilterCallback callback  )  [inline, virtual]

Implements btOverlappingPairCache.

Definition at line 363 of file btOverlappingPairCache.h.

void btSortedOverlappingPairCache::sortOverlappingPairs ( btDispatcher dispatcher  )  [virtual]

Implements btOverlappingPairCache.

Definition at line 629 of file btOverlappingPairCache.cpp.


Member Data Documentation

Definition at line 288 of file btOverlappingPairCache.h.

Definition at line 296 of file btOverlappingPairCache.h.

by default, do the removal during the pair traversal

Definition at line 291 of file btOverlappingPairCache.h.

Definition at line 294 of file btOverlappingPairCache.h.

Definition at line 285 of file btOverlappingPairCache.h.


The documentation for this class was generated from the following files: