Bullet Collision Detection & Physics Library
|
The bt32BitAxisSweep3 allows higher precision quantization and more objects compared to the btAxisSweep3 sweep and prune. More...
#include <btAxisSweep3.h>
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 More... | |
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 More... | |
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 More... | |
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 More... | |
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 More... | |
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 More... | |
virtual void | resetPool (btDispatcher *dispatcher) |
reset broadphase internal structures, to ensure determinism/reproducability More... | |
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. More... | |
bool | m_ownsPairCache |
int | m_invalidPair |
btDbvtBroadphase * | m_raycastAccelerator |
additional dynamic aabb structure, used to accelerate ray cast queries. More... | |
btOverlappingPairCache * | m_nullPairCache |
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.
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.