Bullet Collision Detection & Physics Library
Public Member Functions | Protected Attributes | List of all members
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]

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. More...
 
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)
 
- Public Member Functions inherited from btOverlappingPairCache
virtual ~btOverlappingPairCache ()
 
- Public Member Functions inherited from btOverlappingPairCallback
virtual ~btOverlappingPairCallback ()
 

Protected Attributes

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

Detailed Description

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

Definition at line 284 of file btOverlappingPairCache.h.

Constructor & Destructor Documentation

§ btSortedOverlappingPairCache()

btSortedOverlappingPairCache::btSortedOverlappingPairCache ( )

Definition at line 540 of file btOverlappingPairCache.cpp.

§ ~btSortedOverlappingPairCache()

btSortedOverlappingPairCache::~btSortedOverlappingPairCache ( )
virtual

Definition at line 550 of file btOverlappingPairCache.cpp.

Member Function Documentation

§ addOverlappingPair()

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

Implements btOverlappingPairCallback.

Definition at line 461 of file btOverlappingPairCache.cpp.

§ cleanOverlappingPair()

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

Implements btOverlappingPairCache.

Definition at line 554 of file btOverlappingPairCache.cpp.

§ cleanProxyFromPairs()

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

Implements btOverlappingPairCache.

Definition at line 568 of file btOverlappingPairCache.cpp.

§ findPair()

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 485 of file btOverlappingPairCache.cpp.

§ getNumOverlappingPairs()

int btSortedOverlappingPairCache::getNumOverlappingPairs ( ) const
inlinevirtual

Implements btOverlappingPairCache.

Definition at line 356 of file btOverlappingPairCache.h.

§ getOverlapFilterCallback()

btOverlapFilterCallback* btSortedOverlappingPairCache::getOverlapFilterCallback ( )
inline

Definition at line 361 of file btOverlappingPairCache.h.

§ getOverlappingPairArray() [1/2]

btBroadphasePairArray& btSortedOverlappingPairCache::getOverlappingPairArray ( )
inlinevirtual

Implements btOverlappingPairCache.

Definition at line 333 of file btOverlappingPairCache.h.

§ getOverlappingPairArray() [2/2]

const btBroadphasePairArray& btSortedOverlappingPairCache::getOverlappingPairArray ( ) const
inline

Definition at line 338 of file btOverlappingPairCache.h.

§ getOverlappingPairArrayPtr() [1/2]

btBroadphasePair* btSortedOverlappingPairCache::getOverlappingPairArrayPtr ( )
inlinevirtual

Implements btOverlappingPairCache.

Definition at line 346 of file btOverlappingPairCache.h.

§ getOverlappingPairArrayPtr() [2/2]

const btBroadphasePair* btSortedOverlappingPairCache::getOverlappingPairArrayPtr ( ) const
inlinevirtual

Implements btOverlappingPairCache.

Definition at line 351 of file btOverlappingPairCache.h.

§ hasDeferredRemoval()

virtual bool btSortedOverlappingPairCache::hasDeferredRemoval ( )
inlinevirtual

Implements btOverlappingPairCache.

Definition at line 371 of file btOverlappingPairCache.h.

§ needsBroadphaseCollision()

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

Definition at line 322 of file btOverlappingPairCache.h.

§ processAllOverlappingPairs()

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

Implements btOverlappingPairCache.

Definition at line 513 of file btOverlappingPairCache.cpp.

§ removeOverlappingPair()

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

Implements btOverlappingPairCallback.

Definition at line 429 of file btOverlappingPairCache.cpp.

§ removeOverlappingPairsContainingProxy()

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

Implements btOverlappingPairCallback.

Definition at line 603 of file btOverlappingPairCache.cpp.

§ setInternalGhostPairCallback()

virtual void btSortedOverlappingPairCache::setInternalGhostPairCallback ( btOverlappingPairCallback ghostPairCallback)
inlinevirtual

Implements btOverlappingPairCache.

Definition at line 376 of file btOverlappingPairCache.h.

§ setOverlapFilterCallback()

void btSortedOverlappingPairCache::setOverlapFilterCallback ( btOverlapFilterCallback callback)
inlinevirtual

Implements btOverlappingPairCache.

Definition at line 366 of file btOverlappingPairCache.h.

§ sortOverlappingPairs()

void btSortedOverlappingPairCache::sortOverlappingPairs ( btDispatcher dispatcher)
virtual

Implements btOverlappingPairCache.

Definition at line 628 of file btOverlappingPairCache.cpp.

Member Data Documentation

§ m_blockedForChanges

bool btSortedOverlappingPairCache::m_blockedForChanges
protected

Definition at line 291 of file btOverlappingPairCache.h.

§ m_ghostPairCallback

btOverlappingPairCallback* btSortedOverlappingPairCache::m_ghostPairCallback
protected

Definition at line 299 of file btOverlappingPairCache.h.

§ m_hasDeferredRemoval

bool btSortedOverlappingPairCache::m_hasDeferredRemoval
protected

by default, do the removal during the pair traversal

Definition at line 294 of file btOverlappingPairCache.h.

§ m_overlapFilterCallback

btOverlapFilterCallback* btSortedOverlappingPairCache::m_overlapFilterCallback
protected

Definition at line 297 of file btOverlappingPairCache.h.

§ m_overlappingPairArray

btBroadphasePairArray btSortedOverlappingPairCache::m_overlappingPairArray
protected

Definition at line 288 of file btOverlappingPairCache.h.


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