|
| btAxisSweep3 (const btVector3 &worldAabbMin, const btVector3 &worldAabbMax, unsigned short int maxHandles=16384, btOverlappingPairCache *pairCache=0, bool disableRaycastAccelerator=false) |
|
| 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 () |
|
virtual | ~btBroadphaseInterface () |
|
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.