Blender V2.61 - r43446
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

btSimpleBroadphase Class Reference

#include <btSimpleBroadphase.h>

Inheritance diagram for btSimpleBroadphase:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 btSimpleBroadphase (int maxProxies=16384, btOverlappingPairCache *overlappingPairCache=0)
virtual ~btSimpleBroadphase ()
virtual btBroadphaseProxy * createProxy (const btVector3 &aabbMin, const btVector3 &aabbMax, int shapeType, void *userPtr, short int collisionFilterGroup, short int collisionFilterMask, btDispatcher *dispatcher, void *multiSapProxy)
virtual void calculateOverlappingPairs (btDispatcher *dispatcher)
 calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb
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))
virtual void aabbTest (const btVector3 &aabbMin, const btVector3 &aabbMax, btBroadphaseAabbCallback &callback)
btOverlappingPairCachegetOverlappingPairCache ()
const btOverlappingPairCachegetOverlappingPairCache () const
bool testAabbOverlap (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1)
virtual void getBroadphaseAabb (btVector3 &aabbMin, btVector3 &aabbMax) const
virtual void printStats ()

Static Public Member Functions

static bool aabbOverlap (btSimpleBroadphaseProxy *proxy0, btSimpleBroadphaseProxy *proxy1)

Protected Member Functions

int allocHandle ()
void freeHandle (btSimpleBroadphaseProxy *proxy)
btSimpleBroadphaseProxygetSimpleProxyFromProxy (btBroadphaseProxy *proxy)
const btSimpleBroadphaseProxygetSimpleProxyFromProxy (btBroadphaseProxy *proxy) const
virtual void resetPool (btDispatcher *dispatcher)
 reset broadphase internal structures, to ensure determinism/reproducability
void validate ()

Protected Attributes

int m_numHandles
int m_maxHandles
int m_LastHandleIndex
btSimpleBroadphaseProxym_pHandles
void * m_pHandlesRawPtr
int m_firstFreeHandle
btOverlappingPairCachem_pairCache
bool m_ownsPairCache
int m_invalidPair

Detailed Description

The SimpleBroadphase is just a unit-test for btAxisSweep3, bt32BitAxisSweep3, or btDbvtBroadphase, so use those classes instead. It is a brute force aabb culling broadphase based on O(n^2) aabb checks

Definition at line 49 of file btSimpleBroadphase.h.


Constructor & Destructor Documentation

btSimpleBroadphase::btSimpleBroadphase ( int  maxProxies = 16384,
btOverlappingPairCache overlappingPairCache = 0 
)
btSimpleBroadphase::~btSimpleBroadphase ( ) [virtual]

Member Function Documentation

bool btSimpleBroadphase::aabbOverlap ( btSimpleBroadphaseProxy proxy0,
btSimpleBroadphaseProxy proxy1 
) [static]
void btSimpleBroadphase::aabbTest ( const btVector3 &  aabbMin,
const btVector3 &  aabbMax,
btBroadphaseAabbCallback callback 
) [virtual]
int btSimpleBroadphase::allocHandle ( ) [inline, protected]
void btSimpleBroadphase::calculateOverlappingPairs ( btDispatcher dispatcher) [virtual]
btBroadphaseProxy * btSimpleBroadphase::createProxy ( const btVector3 &  aabbMin,
const btVector3 &  aabbMax,
int  shapeType,
void *  userPtr,
short int  collisionFilterGroup,
short int  collisionFilterMask,
btDispatcher dispatcher,
void *  multiSapProxy 
) [virtual]

Implements btBroadphaseInterface.

Definition at line 87 of file btSimpleBroadphase.cpp.

References allocHandle(), btAssert, m_maxHandles, m_numHandles, and m_pHandles.

void btSimpleBroadphase::destroyProxy ( btBroadphaseProxy *  proxy,
btDispatcher dispatcher 
) [virtual]
void btSimpleBroadphase::freeHandle ( btSimpleBroadphaseProxy proxy) [inline, protected]
void btSimpleBroadphase::getAabb ( btBroadphaseProxy *  proxy,
btVector3 &  aabbMin,
btVector3 &  aabbMax 
) const [virtual]

Implements btBroadphaseInterface.

Definition at line 143 of file btSimpleBroadphase.cpp.

References getSimpleProxyFromProxy().

virtual void btSimpleBroadphase::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 155 of file btSimpleBroadphase.h.

References BT_LARGE_FLOAT.

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

Implements btBroadphaseInterface.

Definition at line 145 of file btSimpleBroadphase.h.

References m_pairCache.

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

Implements btBroadphaseInterface.

Definition at line 141 of file btSimpleBroadphase.h.

References m_pairCache.

btSimpleBroadphaseProxy* btSimpleBroadphase::getSimpleProxyFromProxy ( btBroadphaseProxy *  proxy) [inline, protected]

Definition at line 99 of file btSimpleBroadphase.h.

Referenced by calculateOverlappingPairs(), getAabb(), setAabb(), and testAabbOverlap().

const btSimpleBroadphaseProxy* btSimpleBroadphase::getSimpleProxyFromProxy ( btBroadphaseProxy *  proxy) const [inline, protected]

Definition at line 105 of file btSimpleBroadphase.h.

virtual void btSimpleBroadphase::printStats ( ) [inline, virtual]

Implements btBroadphaseInterface.

Definition at line 161 of file btSimpleBroadphase.h.

void btSimpleBroadphase::rayTest ( const btVector3 &  rayFrom,
const btVector3 &  rayTo,
btBroadphaseRayCallback rayCallback,
const btVector3 &  aabbMin = btVector3(0,0,0),
const btVector3 &  aabbMax = btVector3(0,0,0) 
) [virtual]
void btSimpleBroadphase::resetPool ( btDispatcher dispatcher) [protected, virtual]

reset broadphase internal structures, to ensure determinism/reproducability

Reimplemented from btBroadphaseInterface.

Definition at line 346 of file btSimpleBroadphase.cpp.

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

Implements btBroadphaseInterface.

Definition at line 150 of file btSimpleBroadphase.cpp.

References getSimpleProxyFromProxy().

bool btSimpleBroadphase::testAabbOverlap ( btBroadphaseProxy *  proxy0,
btBroadphaseProxy *  proxy1 
)

Definition at line 339 of file btSimpleBroadphase.cpp.

References aabbOverlap(), and getSimpleProxyFromProxy().

Referenced by calculateOverlappingPairs().

void btSimpleBroadphase::validate ( ) [protected]

Definition at line 29 of file btSimpleBroadphase.cpp.

References btAssert, i, m_numHandles, and m_pHandles.


Member Data Documentation

Definition at line 61 of file btSimpleBroadphase.h.

Referenced by allocHandle(), btSimpleBroadphase(), and freeHandle().

Definition at line 95 of file btSimpleBroadphase.h.

Referenced by calculateOverlappingPairs().

Definition at line 55 of file btSimpleBroadphase.h.

Referenced by allocHandle(), btSimpleBroadphase(), createProxy(), and freeHandle().

Definition at line 60 of file btSimpleBroadphase.h.

Referenced by btSimpleBroadphase(), and ~btSimpleBroadphase().


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