Bullet Collision Detection & Physics Library: bt32BitAxisSweep3 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
bt32BitAxisSweep3 Class Reference

The bt32BitAxisSweep3 allows higher precision quantization and more objects compared to the btAxisSweep3 sweep and prune. More...

`#include <btAxisSweep3.h>`

Inheritance diagram for bt32BitAxisSweep3:
[legend]
Collaboration diagram for bt32BitAxisSweep3:
[legend]

## Public Member Functions
| bt32BitAxisSweep3 (const btVector3 &worldAabbMin, const btVector3 &worldAabbMax, unsigned int maxHandles=1500000, btOverlappingPairCache *pairCache=0, bool disableRaycastAccelerator=false)
Public Member Functions inherited from btAxisSweep3Internal< unsigned int >
| BT_DECLARE_ALIGNED_ALLOCATOR ()
| btAxisSweep3Internal (const btVector3 &worldAabbMin, const btVector3 &worldAabbMax, unsigned int handleMask, unsigned int handleSentinel, unsigned int maxHandles=16384, btOverlappingPairCache *pairCache=0, bool disableRaycastAccelerator=false)
virtual | ~btAxisSweep3Internal ()
unsigned int | getNumHandles () const
virtual void | calculateOverlappingPairs (btDispatcher *dispatcher)
| calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb
unsigned int | addHandle (const btVector3 &aabbMin, const btVector3 &aabbMax, void *pOwner, int collisionFilterGroup, int collisionFilterMask, btDispatcher *dispatcher)
void | removeHandle (unsigned int handle, btDispatcher *dispatcher)
void | updateHandle (unsigned int handle, const btVector3 &aabbMin, const btVector3 &aabbMax, btDispatcher *dispatcher)
Handle * | getHandle (unsigned 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 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 int >
unsigned int | allocHandle ()
void | freeHandle (unsigned int handle)
bool | testOverlap2D (const Handle *pHandleA, const Handle *pHandleB, int axis0, int axis1)
void | sortMinDown (int axis, unsigned int edge, btDispatcher *dispatcher, bool updateOverlaps)
void | sortMinUp (int axis, unsigned int edge, btDispatcher *dispatcher, bool updateOverlaps)
void | sortMaxDown (int axis, unsigned int edge, btDispatcher *dispatcher, bool updateOverlaps)
void | sortMaxUp (int axis, unsigned int edge, btDispatcher *dispatcher, bool updateOverlaps)
Protected Attributes inherited from btAxisSweep3Internal< unsigned int >
unsigned int | m_bpHandleMask
unsigned int | m_handleSentinel
btVector3 | m_worldAabbMin
btVector3 | m_worldAabbMax
btVector3 | m_quantize
unsigned int | m_numHandles
unsigned int | m_maxHandles
Handle * | m_pHandles
unsigned 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 bt32BitAxisSweep3 allows higher precision quantization and more objects compared to the btAxisSweep3 sweep and prune.

This comes at the cost of more memory per handle, and a bit slower performance. It uses arrays rather then lists for storage of the 3 axis.

Definition at line 42 of file btAxisSweep3.h.

## Constructor & Destructor Documentation

## ◆ bt32BitAxisSweep3()

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

Definition at line 28 of file btAxisSweep3.cpp.

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

- btAxisSweep3.h
- btAxisSweep3.cpp