Classes | Public Member Functions | Protected Attributes | Private Attributes

btMultiSapBroadphase Class Reference

The btMultiSapBroadphase is a research project, not recommended to use in production. More...

#include <btMultiSapBroadphase.h>

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

List of all members.

Classes

struct  btBridgeProxy
struct  btMultiSapProxy

Public Member Functions

 btMultiSapBroadphase (int maxProxies=16384, btOverlappingPairCache *pairCache=0)
btSapBroadphaseArraygetBroadphaseArray ()
const btSapBroadphaseArraygetBroadphaseArray () const
virtual ~btMultiSapBroadphase ()
virtual btBroadphaseProxycreateProxy (const btVector3 &aabbMin, const btVector3 &aabbMax, int shapeType, void *userPtr, short int collisionFilterGroup, short int collisionFilterMask, btDispatcher *dispatcher, void *multiSapProxy)
virtual void destroyProxy (btBroadphaseProxy *proxy, btDispatcher *dispatcher)
virtual void setAabb (btBroadphaseProxy *proxy, const btVector3 &aabbMin, const btVector3 &aabbMax, btDispatcher *dispatcher)
virtual void getAabb (btBroadphaseProxy *proxy, btVector3 &aabbMin, btVector3 &aabbMax) const
virtual void rayTest (const btVector3 &rayFrom, const btVector3 &rayTo, btBroadphaseRayCallback &rayCallback, const btVector3 &aabbMin=btVector3(0, 0, 0), const btVector3 &aabbMax=btVector3(0, 0, 0))
void addToChildBroadphase (btMultiSapProxy *parentMultiSapProxy, btBroadphaseProxy *childProxy, btBroadphaseInterface *childBroadphase)
virtual void calculateOverlappingPairs (btDispatcher *dispatcher)
 calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb
bool testAabbOverlap (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1)
virtual btOverlappingPairCachegetOverlappingPairCache ()
virtual const
btOverlappingPairCache
getOverlappingPairCache () const
virtual void getBroadphaseAabb (btVector3 &aabbMin, btVector3 &aabbMax) const
 getAabb returns the axis aligned bounding box in the 'global' coordinate frame will add some transform later
void buildTree (const btVector3 &bvhAabbMin, const btVector3 &bvhAabbMax)
virtual void printStats ()
void quicksort (btBroadphasePairArray &a, int lo, int hi)
virtual void resetPool (btDispatcher *dispatcher)
 reset broadphase internal structures, to ensure determinism/reproducability

Protected Attributes

btAlignedObjectArray
< btMultiSapProxy * > 
m_multiSapProxies

Private Attributes

btSapBroadphaseArray m_sapBroadphases
btSimpleBroadphasem_simpleBroadphase
btOverlappingPairCachem_overlappingPairs
class btQuantizedBvhm_optimizedAabbTree
bool m_ownsPairCache
btOverlapFilterCallbackm_filterCallback
int m_invalidPair

Detailed Description

The btMultiSapBroadphase is a research project, not recommended to use in production.

Use btAxisSweep3 or btDbvtBroadphase instead. The btMultiSapBroadphase is a broadphase that contains multiple SAP broadphases. The user can add SAP broadphases that cover the world. A btBroadphaseProxy can be in multiple child broadphases at the same time. A btQuantizedBvh acceleration structures finds overlapping SAPs for each btBroadphaseProxy. See http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=328 and http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1329

Definition at line 35 of file btMultiSapBroadphase.h.


Constructor & Destructor Documentation

btMultiSapBroadphase::btMultiSapBroadphase ( int  maxProxies = 16384,
btOverlappingPairCache pairCache = 0 
)

Definition at line 40 of file btMultiSapBroadphase.cpp.

btMultiSapBroadphase::~btMultiSapBroadphase (  )  [virtual]

Definition at line 78 of file btMultiSapBroadphase.cpp.


Member Function Documentation

void btMultiSapBroadphase::addToChildBroadphase ( btMultiSapProxy parentMultiSapProxy,
btBroadphaseProxy childProxy,
btBroadphaseInterface childBroadphase 
)

Definition at line 128 of file btMultiSapBroadphase.cpp.

void btMultiSapBroadphase::buildTree ( const btVector3 bvhAabbMin,
const btVector3 bvhAabbMax 
)

Definition at line 88 of file btMultiSapBroadphase.cpp.

void btMultiSapBroadphase::calculateOverlappingPairs ( btDispatcher dispatcher  )  [virtual]

calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb

if you don't like to skip the invalid pairs in the array, execute following code:

Implements btBroadphaseInterface.

Definition at line 359 of file btMultiSapBroadphase.cpp.

btBroadphaseProxy * btMultiSapBroadphase::createProxy ( const btVector3 aabbMin,
const btVector3 aabbMax,
int  shapeType,
void *  userPtr,
short int  collisionFilterGroup,
short int  collisionFilterMask,
btDispatcher dispatcher,
void *  multiSapProxy 
) [virtual]

this should deal with inserting/removal into child broadphases

Implements btBroadphaseInterface.

Definition at line 107 of file btMultiSapBroadphase.cpp.

void btMultiSapBroadphase::destroyProxy ( btBroadphaseProxy proxy,
btDispatcher dispatcher 
) [virtual]

not yet

Implements btBroadphaseInterface.

Definition at line 120 of file btMultiSapBroadphase.cpp.

void btMultiSapBroadphase::getAabb ( btBroadphaseProxy proxy,
btVector3 aabbMin,
btVector3 aabbMax 
) const [virtual]

Implements btBroadphaseInterface.

Definition at line 152 of file btMultiSapBroadphase.cpp.

virtual void btMultiSapBroadphase::getBroadphaseAabb ( btVector3 aabbMin,
btVector3 aabbMax 
) const [inline, virtual]

getAabb returns the axis aligned bounding box in the 'global' coordinate frame will add some transform later

Implements btBroadphaseInterface.

Definition at line 134 of file btMultiSapBroadphase.h.

const btSapBroadphaseArray& btMultiSapBroadphase::getBroadphaseArray (  )  const [inline]

Definition at line 102 of file btMultiSapBroadphase.h.

btSapBroadphaseArray& btMultiSapBroadphase::getBroadphaseArray (  )  [inline]

Definition at line 97 of file btMultiSapBroadphase.h.

virtual btOverlappingPairCache* btMultiSapBroadphase::getOverlappingPairCache (  )  [inline, virtual]

Implements btBroadphaseInterface.

Definition at line 123 of file btMultiSapBroadphase.h.

virtual const btOverlappingPairCache* btMultiSapBroadphase::getOverlappingPairCache (  )  const [inline, virtual]

Implements btBroadphaseInterface.

Definition at line 127 of file btMultiSapBroadphase.h.

void btMultiSapBroadphase::printStats (  )  [virtual]

Implements btBroadphaseInterface.

Definition at line 467 of file btMultiSapBroadphase.cpp.

void btMultiSapBroadphase::quicksort ( btBroadphasePairArray a,
int  lo,
int  hi 
)
void btMultiSapBroadphase::rayTest ( const btVector3 rayFrom,
const btVector3 rayTo,
btBroadphaseRayCallback rayCallback,
const btVector3 aabbMin = btVector3(0,0,0),
const btVector3 aabbMax = btVector3(0,0,0) 
) [virtual]

Implements btBroadphaseInterface.

Definition at line 159 of file btMultiSapBroadphase.cpp.

void btMultiSapBroadphase::resetPool ( btDispatcher dispatcher  )  [virtual]

reset broadphase internal structures, to ensure determinism/reproducability

Reimplemented from btBroadphaseInterface.

Definition at line 486 of file btMultiSapBroadphase.cpp.

void btMultiSapBroadphase::setAabb ( btBroadphaseProxy proxy,
const btVector3 aabbMin,
const btVector3 aabbMax,
btDispatcher dispatcher 
) [virtual]

Implements btBroadphaseInterface.

Definition at line 170 of file btMultiSapBroadphase.cpp.

bool btMultiSapBroadphase::testAabbOverlap ( btBroadphaseProxy proxy0,
btBroadphaseProxy proxy1 
)

Definition at line 456 of file btMultiSapBroadphase.cpp.


Member Data Documentation

Definition at line 48 of file btMultiSapBroadphase.h.

Definition at line 50 of file btMultiSapBroadphase.h.

Definition at line 90 of file btMultiSapBroadphase.h.

Definition at line 43 of file btMultiSapBroadphase.h.

Definition at line 41 of file btMultiSapBroadphase.h.

Definition at line 46 of file btMultiSapBroadphase.h.

Definition at line 37 of file btMultiSapBroadphase.h.

Definition at line 39 of file btMultiSapBroadphase.h.


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