Bullet Collision Detection & Physics Library
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
btSimpleBroadphase Class Reference

The SimpleBroadphase is just a unit-test for btAxisSweep3, bt32BitAxisSweep3, or btDbvtBroadphase, so use those classes instead. More...

#include <btSimpleBroadphase.h>

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

Public Member Functions

 btSimpleBroadphase (int maxProxies=16384, btOverlappingPairCache *overlappingPairCache=0)
 
virtual ~btSimpleBroadphase ()
 
virtual btBroadphaseProxycreateProxy (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 More...
 
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
 getAabb returns the axis aligned bounding box in the 'global' coordinate frame will add some transform later More...
 
virtual void printStats ()
 
- Public Member Functions inherited from btBroadphaseInterface
virtual ~btBroadphaseInterface ()
 

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 More...
 
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 
)

Definition at line 41 of file btSimpleBroadphase.cpp.

btSimpleBroadphase::~btSimpleBroadphase ( )
virtual

Definition at line 75 of file btSimpleBroadphase.cpp.

Member Function Documentation

bool btSimpleBroadphase::aabbOverlap ( btSimpleBroadphaseProxy proxy0,
btSimpleBroadphaseProxy proxy1 
)
static

Definition at line 193 of file btSimpleBroadphase.cpp.

void btSimpleBroadphase::aabbTest ( const btVector3 aabbMin,
const btVector3 aabbMax,
btBroadphaseAabbCallback callback 
)
virtual

Implements btBroadphaseInterface.

Definition at line 171 of file btSimpleBroadphase.cpp.

int btSimpleBroadphase::allocHandle ( )
inlineprotected

Definition at line 63 of file btSimpleBroadphase.h.

void btSimpleBroadphase::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.

Reimplemented in btGpu3DGridBroadphase.

Definition at line 213 of file btSimpleBroadphase.cpp.

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.

Reimplemented in btGpu3DGridBroadphase.

Definition at line 87 of file btSimpleBroadphase.cpp.

void btSimpleBroadphase::destroyProxy ( btBroadphaseProxy proxy,
btDispatcher dispatcher 
)
virtual

Implements btBroadphaseInterface.

Reimplemented in btGpu3DGridBroadphase.

Definition at line 131 of file btSimpleBroadphase.cpp.

void btSimpleBroadphase::freeHandle ( btSimpleBroadphaseProxy proxy)
inlineprotected

Definition at line 76 of file btSimpleBroadphase.h.

void btSimpleBroadphase::getAabb ( btBroadphaseProxy proxy,
btVector3 aabbMin,
btVector3 aabbMax 
) const
virtual

Implements btBroadphaseInterface.

Definition at line 143 of file btSimpleBroadphase.cpp.

virtual void btSimpleBroadphase::getBroadphaseAabb ( btVector3 aabbMin,
btVector3 aabbMax 
) const
inlinevirtual

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.

btOverlappingPairCache* btSimpleBroadphase::getOverlappingPairCache ( )
inlinevirtual

Implements btBroadphaseInterface.

Definition at line 141 of file btSimpleBroadphase.h.

const btOverlappingPairCache* btSimpleBroadphase::getOverlappingPairCache ( ) const
inlinevirtual

Implements btBroadphaseInterface.

Definition at line 145 of file btSimpleBroadphase.h.

btSimpleBroadphaseProxy* btSimpleBroadphase::getSimpleProxyFromProxy ( btBroadphaseProxy proxy)
inlineprotected

Definition at line 99 of file btSimpleBroadphase.h.

const btSimpleBroadphaseProxy* btSimpleBroadphase::getSimpleProxyFromProxy ( btBroadphaseProxy proxy) const
inlineprotected

Definition at line 105 of file btSimpleBroadphase.h.

virtual void btSimpleBroadphase::printStats ( )
inlinevirtual

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

Implements btBroadphaseInterface.

Reimplemented in btGpu3DGridBroadphase.

Definition at line 157 of file btSimpleBroadphase.cpp.

void btSimpleBroadphase::resetPool ( btDispatcher dispatcher)
protectedvirtual

reset broadphase internal structures, to ensure determinism/reproducability

Reimplemented from btBroadphaseInterface.

Reimplemented in btGpu3DGridBroadphase.

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.

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

Definition at line 339 of file btSimpleBroadphase.cpp.

void btSimpleBroadphase::validate ( )
protected

Definition at line 29 of file btSimpleBroadphase.cpp.

Member Data Documentation

int btSimpleBroadphase::m_firstFreeHandle
protected

Definition at line 61 of file btSimpleBroadphase.h.

int btSimpleBroadphase::m_invalidPair
protected

Definition at line 95 of file btSimpleBroadphase.h.

int btSimpleBroadphase::m_LastHandleIndex
protected

Definition at line 56 of file btSimpleBroadphase.h.

int btSimpleBroadphase::m_maxHandles
protected

Definition at line 55 of file btSimpleBroadphase.h.

int btSimpleBroadphase::m_numHandles
protected

Definition at line 54 of file btSimpleBroadphase.h.

bool btSimpleBroadphase::m_ownsPairCache
protected

Definition at line 93 of file btSimpleBroadphase.h.

btOverlappingPairCache* btSimpleBroadphase::m_pairCache
protected

Definition at line 92 of file btSimpleBroadphase.h.

btSimpleBroadphaseProxy* btSimpleBroadphase::m_pHandles
protected

Definition at line 58 of file btSimpleBroadphase.h.

void* btSimpleBroadphase::m_pHandlesRawPtr
protected

Definition at line 60 of file btSimpleBroadphase.h.


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