Blender  V3.3
Public Member Functions | List of all members
btAxisSweep3 Class Reference

#include <btAxisSweep3.h>

Inheritance diagram for btAxisSweep3:
btAxisSweep3Internal< unsigned short int > btBroadphaseInterface

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 More...
 
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)
 
SIMD_FORCE_INLINE Handle * getHandle (unsigned short 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 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 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
 
virtual void printStats ()
 
- Public Member Functions inherited from btBroadphaseInterface
virtual ~btBroadphaseInterface ()
 

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
 
Edgem_pEdges [3]
 
voidm_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
 
btOverlappingPairCachem_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.

References btAssert.


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