Logo Search packages:      
Sourcecode: blender version File versions  Download package

btAxisSweep3 Class Reference

#include <btAxisSweep3.h>

Inheritance diagram for btAxisSweep3:

btAxisSweep3Internal< unsigned short int > btBroadphaseInterface

List of all members.


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 1004 of file btAxisSweep3.h.


Public Member Functions

unsigned short int addHandle (const btVector3 &aabbMin, const btVector3 &aabbMax, void *pOwner, short int collisionFilterGroup, short int collisionFilterMask, btDispatcher *dispatcher, void *multiSapProxy)
 BT_DECLARE_ALIGNED_ALLOCATOR ()
 btAxisSweep3 (const btVector3 &worldAabbMin, const btVector3 &worldAabbMax, unsigned short int maxHandles=16384, btOverlappingPairCache *pairCache=0, bool disableRaycastAccelerator=false)
virtual void calculateOverlappingPairs (btDispatcher *dispatcher)
 calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb
virtual btBroadphaseProxy * createProxy (const btVector3 &aabbMin, const btVector3 &aabbMax, int shapeType, void *userPtr, short int collisionFilterGroup, short int collisionFilterMask, btDispatcher *dispatcher, void *multiSapProxy)
virtual void destroyProxy (btBroadphaseProxy *proxy, btDispatcher *dispatcher)
virtual void getAabb (btBroadphaseProxy *proxy, btVector3 &aabbMin, btVector3 &aabbMax) const
virtual void getBroadphaseAabb (btVector3 &aabbMin, btVector3 &aabbMax) const
SIMD_FORCE_INLINE Handle * getHandle (unsigned short intindex) const
unsigned short int getNumHandles () const
const btOverlappingPairCachegetOverlappingPairCache () const
btOverlappingPairCachegetOverlappingPairCache ()
const btOverlappingPairCallbackgetOverlappingPairUserCallback () const
virtual void printStats ()
void processAllOverlappingPairs (btOverlapCallback *callback)
void quantize (unsigned short int *out, const btVector3 &point, int isMax) 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))
void removeHandle (unsigned short inthandle, btDispatcher *dispatcher)
virtual void resetPool (btDispatcher *dispatcher)
 reset broadphase internal structures, to ensure determinism/reproducability
virtual void setAabb (btBroadphaseProxy *proxy, const btVector3 &aabbMin, const btVector3 &aabbMax, btDispatcher *dispatcher)
void setOverlappingPairUserCallback (btOverlappingPairCallback *pairCallback)
bool testAabbOverlap (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1)
void unQuantize (btBroadphaseProxy *proxy, btVector3 &aabbMin, btVector3 &aabbMax) const
 unQuantize should be conservative: aabbMin/aabbMax should be larger then 'getAabb' result
void updateHandle (unsigned short inthandle, const btVector3 &aabbMin, const btVector3 &aabbMax, btDispatcher *dispatcher)

Protected Member Functions

unsigned short int allocHandle ()
void freeHandle (unsigned short inthandle)
void sortMaxDown (int axis, unsigned short intedge, btDispatcher *dispatcher, bool updateOverlaps)
void sortMaxUp (int axis, unsigned short intedge, btDispatcher *dispatcher, bool updateOverlaps)
void sortMinDown (int axis, unsigned short intedge, btDispatcher *dispatcher, bool updateOverlaps)
void sortMinUp (int axis, unsigned short intedge, btDispatcher *dispatcher, bool updateOverlaps)
bool testOverlap2D (const Handle *pHandleA, const Handle *pHandleB, int axis0, int axis1)

Protected Attributes

unsigned short int m_bpHandleMask
unsigned short int m_firstFreeHandle
unsigned short int m_handleSentinel
int m_invalidPair
unsigned short int m_maxHandles
btOverlappingPairCachem_nullPairCache
unsigned short int m_numHandles
bool m_ownsPairCache
btOverlappingPairCachem_pairCache
Edge * m_pEdges [3]
void * m_pEdgesRawPtr [3]
Handle * m_pHandles
btVector3 m_quantize
btDbvtBroadphasem_raycastAccelerator
btOverlappingPairCallbackm_userPairCallback
 btOverlappingPairCallback is an additional optional user callback for adding/removing overlapping pairs, similar interface to btOverlappingPairCache.
btVector3 m_worldAabbMax
btVector3 m_worldAabbMin

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

Generated by  Doxygen 1.6.0   Back to index