Bullet Collision Detection & Physics Library: btAxisSweep3 Class Reference

Bullet Collision Detection & Physics Library

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

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:
[legend]
Collaboration diagram for btAxisSweep3:
[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 int handleMask, unsigned short int handleSentinel, unsigned short int maxHandles=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
unsigned short int | addHandle (const btVector3 &aabbMin, const btVector3 &aabbMax, void *pOwner, int collisionFilterGroup, int collisionFilterMask, btDispatcher *dispatcher)
void | removeHandle (unsigned short int handle, btDispatcher *dispatcher)
void | updateHandle (unsigned short int handle, const btVector3 &aabbMin, const btVector3 &aabbMax, btDispatcher *dispatcher)
Handle * | getHandle (unsigned short int index) const
virtual void | resetPool (btDispatcher *dispatcher)
| reset broadphase internal structures, to ensure determinism/reproducability
void | processAllOverlappingPairs (btOverlapCallback *callback)
virtual btBroadphaseProxy * | createProxy (const btVector3 &aabbMin, const btVector3 &aabbMax, int shapeType, void *userPtr, int collisionFilterGroup, int collisionFilterMask, btDispatcher *dispatcher)
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
bool | testAabbOverlap (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1)
btOverlappingPairCache * | getOverlappingPairCache ()
const btOverlappingPairCache * | getOverlappingPairCache () const
void | setOverlappingPairUserCallback (btOverlappingPairCallback *pairCallback)
const btOverlappingPairCallback * | getOverlappingPairUserCallback () 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
virtual void | printStats ()
Public Member Functions inherited from btBroadphaseInterface
virtual | ~btBroadphaseInterface ()
virtual btBroadphaseProxy * | createProxy (const btVector3 &aabbMin, const btVector3 &aabbMax, int shapeType, void *userPtr, int collisionFilterGroup, int collisionFilterMask, btDispatcher *dispatcher)=0
virtual void | destroyProxy (btBroadphaseProxy *proxy, btDispatcher *dispatcher)=0
virtual void | setAabb (btBroadphaseProxy *proxy, const btVector3 &aabbMin, const btVector3 &aabbMax, btDispatcher *dispatcher)=0
virtual void | getAabb (btBroadphaseProxy *proxy, btVector3 &aabbMin, btVector3 &aabbMax) const =0
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))=0
virtual void | aabbTest (const btVector3 &aabbMin, const btVector3 &aabbMax, btBroadphaseAabbCallback &callback)=0
virtual void | calculateOverlappingPairs (btDispatcher *dispatcher)=0
| calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb
virtual btOverlappingPairCache * | getOverlappingPairCache ()=0
virtual const btOverlappingPairCache * | getOverlappingPairCache () const =0
virtual void | getBroadphaseAabb (btVector3 &aabbMin, btVector3 &aabbMax) const =0
| getAabb returns the axis aligned bounding box in the 'global' coordinate frame will add some transform later
virtual void | resetPool (btDispatcher *dispatcher)
| reset broadphase internal structures, to ensure determinism/reproducability
virtual void | printStats ()=0

## Additional Inherited Members
Protected Member Functions inherited from btAxisSweep3Internal< unsigned short int >
unsigned short int | allocHandle ()
void | freeHandle (unsigned short int handle)
bool | testOverlap2D (const Handle *pHandleA, const Handle *pHandleB, int axis0, int axis1)
void | sortMinDown (int axis, unsigned short int edge, btDispatcher *dispatcher, bool updateOverlaps)
void | sortMinUp (int axis, unsigned short int edge, btDispatcher *dispatcher, bool updateOverlaps)
void | sortMaxDown (int axis, unsigned short int edge, btDispatcher *dispatcher, bool updateOverlaps)
void | sortMaxUp (int axis, unsigned short int edge, 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]
btOverlappingPairCache * | m_pairCache
btOverlappingPairCallback * | m_userPairCallback
| btOverlappingPairCallback is an additional optional user callback for adding/removing overlapping pairs, similar interface to btOverlappingPairCache.
bool | m_ownsPairCache
int | m_invalidPair
btDbvtBroadphase * | m_raycastAccelerator
| additional dynamic aabb structure, used to accelerate ray cast queries.
btOverlappingPairCache * | m_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 33 of file btAxisSweep3.h.

## Constructor & Destructor Documentation

## ◆ btAxisSweep3()

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

Definition at line 21 of file btAxisSweep3.cpp.

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

- btAxisSweep3.h
- btAxisSweep3.cpp