Bullet Collision Detection & Physics Library
Public Member Functions | List of all members
btAxisSweep3 Class Reference

The btAxisSweep3 is an efficient implementation of the 3d axis sweep and prune broadphase. More...

#include <btAxisSweep3.h>

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

Public Member Functions

 btAxisSweep3 (const btVector3 &worldAabbMin, const btVector3 &worldAabbMax, unsigned short int maxHandles=16384, btOverlappingPairCache *pairCache=0, bool disableRaycastAccelerator=false)
 
- Public Member Functions inherited from btAxisSweep3Internal< unsigned short int >
 BT_DECLARE_ALIGNED_ALLOCATOR ()
 
 btAxisSweep3Internal (const btVector3 &worldAabbMin, const btVector3 &worldAabbMax, unsigned short inthandleMask, unsigned short inthandleSentinel, unsigned short intmaxHandles=16384, btOverlappingPairCache *pairCache=0, bool disableRaycastAccelerator=false)
 
virtual ~btAxisSweep3Internal ()
 
unsigned short int getNumHandles () const
 
virtual void calculateOverlappingPairs (btDispatcher *dispatcher)
 calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb More...
 
unsigned short int addHandle (const btVector3 &aabbMin, const btVector3 &aabbMax, void *pOwner, short int collisionFilterGroup, short int collisionFilterMask, btDispatcher *dispatcher, void *multiSapProxy)
 
void removeHandle (unsigned short inthandle, btDispatcher *dispatcher)
 
void updateHandle (unsigned short inthandle, const btVector3 &aabbMin, const btVector3 &aabbMax, btDispatcher *dispatcher)
 
Handle * getHandle (unsigned short intindex) const
 
virtual void resetPool (btDispatcher *dispatcher)
 reset broadphase internal structures, to ensure determinism/reproducability More...
 
void processAllOverlappingPairs (btOverlapCallback *callback)
 
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))
 
virtual void aabbTest (const btVector3 &aabbMin, const btVector3 &aabbMax, btBroadphaseAabbCallback &callback)
 
void quantize (unsigned short int *out, const btVector3 &point, int isMax) const
 
void unQuantize (btBroadphaseProxy *proxy, btVector3 &aabbMin, btVector3 &aabbMax) const
 unQuantize should be conservative: aabbMin/aabbMax should be larger then 'getAabb' result More...
 
bool testAabbOverlap (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1)
 
btOverlappingPairCachegetOverlappingPairCache ()
 
const btOverlappingPairCachegetOverlappingPairCache () const
 
void setOverlappingPairUserCallback (btOverlappingPairCallback *pairCallback)
 
const btOverlappingPairCallbackgetOverlappingPairUserCallback () 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 More...
 
virtual void printStats ()
 
- Public Member Functions inherited from btBroadphaseInterface
virtual ~btBroadphaseInterface ()
 

Additional Inherited Members

- Protected Member Functions inherited from btAxisSweep3Internal< unsigned short int >
unsigned short int allocHandle ()
 
void freeHandle (unsigned short inthandle)
 
bool testOverlap2D (const Handle *pHandleA, const Handle *pHandleB, int axis0, int axis1)
 
void sortMinDown (int axis, unsigned short intedge, btDispatcher *dispatcher, bool updateOverlaps)
 
void sortMinUp (int axis, unsigned short intedge, btDispatcher *dispatcher, bool updateOverlaps)
 
void sortMaxDown (int axis, unsigned short intedge, btDispatcher *dispatcher, bool updateOverlaps)
 
void sortMaxUp (int axis, unsigned short intedge, btDispatcher *dispatcher, bool updateOverlaps)
 
- Protected Attributes inherited from btAxisSweep3Internal< unsigned short int >
unsigned short int m_bpHandleMask
 
unsigned short int m_handleSentinel
 
btVector3 m_worldAabbMin
 
btVector3 m_worldAabbMax
 
btVector3 m_quantize
 
unsigned short int m_numHandles
 
unsigned short int m_maxHandles
 
Handle * m_pHandles
 
unsigned short int m_firstFreeHandle
 
Edge * m_pEdges [3]
 
void * m_pEdgesRawPtr [3]
 
btOverlappingPairCachem_pairCache
 
btOverlappingPairCallbackm_userPairCallback
 btOverlappingPairCallback is an additional optional user callback for adding/removing overlapping pairs, similar interface to btOverlappingPairCache. More...
 
bool m_ownsPairCache
 
int m_invalidPair
 
btDbvtBroadphasem_raycastAccelerator
 additional dynamic aabb structure, used to accelerate ray cast queries. More...
 
btOverlappingPairCachem_nullPairCache
 

Detailed Description

The btAxisSweep3 is an efficient implementation of the 3d axis sweep and prune broadphase.

It uses arrays rather then lists for storage of the 3 axis. Also it operates using 16 bit integer coordinates instead of floats. For large worlds and many objects, use bt32BitAxisSweep3 or btDbvtBroadphase instead. bt32BitAxisSweep3 has higher precision and allows more then 16384 objects at the cost of more memory and bit of performance.

Definition at line 1031 of file btAxisSweep3.h.

Constructor & Destructor Documentation

btAxisSweep3::btAxisSweep3 ( const btVector3 worldAabbMin,
const btVector3 worldAabbMax,
unsigned short int  maxHandles = 16384,
btOverlappingPairCache pairCache = 0,
bool  disableRaycastAccelerator = false 
)

Definition at line 23 of file btAxisSweep3.cpp.


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