Bullet Collision Detection & Physics Library
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:
Inheritance graph
[legend]
Collaboration diagram for bt32BitAxisSweep3:
Collaboration graph
[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 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 btBroadphaseProxycreateProxy (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)
 
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 ()
 
virtual btBroadphaseProxycreateProxy (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 btOverlappingPairCachegetOverlappingPairCache ()=0
 
virtual const btOverlappingPairCachegetOverlappingPairCache () 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]
 
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 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: