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

bt32BitAxisSweep3 Class Reference

#include <btAxisSweep3.h>

Inheritance diagram for bt32BitAxisSweep3:

btAxisSweep3Internal< unsigned int > btBroadphaseInterface

List of all members.

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

Public Member Functions

unsigned int addHandle (const btVector3 &aabbMin, const btVector3 &aabbMax, void *pOwner, short int collisionFilterGroup, short int collisionFilterMask, btDispatcher *dispatcher, void *multiSapProxy)
 bt32BitAxisSweep3 (const btVector3 &worldAabbMin, const btVector3 &worldAabbMax, unsigned int maxHandles=1500000, 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 intindex) const
unsigned int getNumHandles () const
const btOverlappingPairCachegetOverlappingPairCache () const
btOverlappingPairCachegetOverlappingPairCache ()
const btOverlappingPairCallbackgetOverlappingPairUserCallback () const
virtual void printStats ()
void processAllOverlappingPairs (btOverlapCallback *callback)
void quantize (unsigned 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 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 inthandle, const btVector3 &aabbMin, const btVector3 &aabbMax, btDispatcher *dispatcher)

Protected Member Functions

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

Protected Attributes

unsigned int m_bpHandleMask
unsigned int m_firstFreeHandle
unsigned int m_handleSentinel
int m_invalidPair
unsigned int m_maxHandles
unsigned int m_numHandles
bool m_ownsPairCache
Edge * m_pEdges [3]
void * m_pEdgesRawPtr [3]
Handle * m_pHandles
btVector3 m_quantize
 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