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)
 
btBroadphasePair * addOverlappingPair (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1)
 
btBroadphasePair * findPair (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
 
btBroadphasePairArray & getOverlappingPairArray ()
 
const btBroadphasePairArray & getOverlappingPairArray () const
 
btBroadphasePair * getOverlappingPairArrayPtr ()
 
const btBroadphasePair * getOverlappingPairArrayPtr () const
 
int getNumOverlappingPairs () const
 
btOverlapFilterCallback * getOverlapFilterCallback ()
 
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 ()
 
virtual void processAllOverlappingPairs (btOverlapCallback *callback, btDispatcher *dispatcher, const struct btDispatcherInfo &dispatchInfo)
 
- 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...
 
btOverlapFilterCallback * m_overlapFilterCallback
 
btOverlappingPairCallback * m_ghostPairCallback
 

Additional Inherited Members

- Protected Member Functions inherited from btOverlappingPairCallback
 btOverlappingPairCallback ()
 

Detailed Description

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

Definition at line 257 of file btOverlappingPairCache.h.

Constructor & Destructor Documentation

◆ btSortedOverlappingPairCache()

btSortedOverlappingPairCache::btSortedOverlappingPairCache ( )

Definition at line 529 of file btOverlappingPairCache.cpp.

◆ ~btSortedOverlappingPairCache()

btSortedOverlappingPairCache::~btSortedOverlappingPairCache ( )
virtual

Definition at line 538 of file btOverlappingPairCache.cpp.

Member Function Documentation

◆ addOverlappingPair()

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

Implements btOverlappingPairCallback.

Definition at line 468 of file btOverlappingPairCache.cpp.

◆ cleanOverlappingPair()

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

Implements btOverlappingPairCache.

Definition at line 542 of file btOverlappingPairCache.cpp.

◆ cleanProxyFromPairs()

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

Implements btOverlappingPairCache.

Definition at line 554 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 488 of file btOverlappingPairCache.cpp.

◆ getNumOverlappingPairs()

int btSortedOverlappingPairCache::getNumOverlappingPairs ( ) const
inlinevirtual

Implements btOverlappingPairCache.

Definition at line 323 of file btOverlappingPairCache.h.

◆ getOverlapFilterCallback()

btOverlapFilterCallback* btSortedOverlappingPairCache::getOverlapFilterCallback ( )
inline

Definition at line 328 of file btOverlappingPairCache.h.

◆ getOverlappingPairArray() [1/2]

btBroadphasePairArray& btSortedOverlappingPairCache::getOverlappingPairArray ( )
inlinevirtual

Implements btOverlappingPairCache.

Definition at line 303 of file btOverlappingPairCache.h.

◆ getOverlappingPairArray() [2/2]

const btBroadphasePairArray& btSortedOverlappingPairCache::getOverlappingPairArray ( ) const
inline

Definition at line 308 of file btOverlappingPairCache.h.

◆ getOverlappingPairArrayPtr() [1/2]

btBroadphasePair* btSortedOverlappingPairCache::getOverlappingPairArrayPtr ( )
inlinevirtual

Implements btOverlappingPairCache.

Definition at line 313 of file btOverlappingPairCache.h.

◆ getOverlappingPairArrayPtr() [2/2]

const btBroadphasePair* btSortedOverlappingPairCache::getOverlappingPairArrayPtr ( ) const
inlinevirtual

Implements btOverlappingPairCache.

Definition at line 318 of file btOverlappingPairCache.h.

◆ hasDeferredRemoval()

virtual bool btSortedOverlappingPairCache::hasDeferredRemoval ( )
inlinevirtual

Implements btOverlappingPairCache.

Definition at line 338 of file btOverlappingPairCache.h.

◆ needsBroadphaseCollision()

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

Definition at line 292 of file btOverlappingPairCache.h.

◆ processAllOverlappingPairs()

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

Implements btOverlappingPairCache.

Definition at line 507 of file btOverlappingPairCache.cpp.

◆ removeOverlappingPair()

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

Implements btOverlappingPairCallback.

Definition at line 444 of file btOverlappingPairCache.cpp.

◆ removeOverlappingPairsContainingProxy()

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

Implements btOverlappingPairCallback.

Definition at line 585 of file btOverlappingPairCache.cpp.

◆ setInternalGhostPairCallback()

virtual void btSortedOverlappingPairCache::setInternalGhostPairCallback ( btOverlappingPairCallback *  ghostPairCallback)
inlinevirtual

Implements btOverlappingPairCache.

Definition at line 343 of file btOverlappingPairCache.h.

◆ setOverlapFilterCallback()

void btSortedOverlappingPairCache::setOverlapFilterCallback ( btOverlapFilterCallback *  callback)
inlinevirtual

Implements btOverlappingPairCache.

Definition at line 333 of file btOverlappingPairCache.h.

◆ sortOverlappingPairs()

void btSortedOverlappingPairCache::sortOverlappingPairs ( btDispatcher *  dispatcher)
virtual

Implements btOverlappingPairCache.

Definition at line 608 of file btOverlappingPairCache.cpp.

Member Data Documentation

◆ m_blockedForChanges

bool btSortedOverlappingPairCache::m_blockedForChanges
protected

Definition at line 264 of file btOverlappingPairCache.h.

◆ m_ghostPairCallback

btOverlappingPairCallback* btSortedOverlappingPairCache::m_ghostPairCallback
protected

Definition at line 272 of file btOverlappingPairCache.h.

◆ m_hasDeferredRemoval

bool btSortedOverlappingPairCache::m_hasDeferredRemoval
protected

by default, do the removal during the pair traversal

Definition at line 267 of file btOverlappingPairCache.h.

◆ m_overlapFilterCallback

btOverlapFilterCallback* btSortedOverlappingPairCache::m_overlapFilterCallback
protected

Definition at line 270 of file btOverlappingPairCache.h.

◆ m_overlappingPairArray

btBroadphasePairArray btSortedOverlappingPairCache::m_overlappingPairArray
protected

Definition at line 261 of file btOverlappingPairCache.h.


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