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

btAxisSweep3 Class Reference

#include <btAxisSweep3.h>

Inheritance diagram for btAxisSweep3:

btOverlappingPairCache btBroadphaseInterface

List of all members.


Detailed Description

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 integer coordinates instead of floats. The testOverlap check is optimized to check the array index, rather then the actual AABB coordinates/pos

Definition at line 48 of file btAxisSweep3.h.


Public Member Functions

BP_FP_INT_TYPE addHandle (const btPoint3 &aabbMin, const btPoint3 &aabbMax, void *pOwner, short int collisionFilterGroup, short int collisionFilterMask)
void addOverlappingPair (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1)
 btAxisSweep3 (const btPoint3 &worldAabbMin, const btPoint3 &worldAabbMax, int maxHandles=16384)
void cleanOverlappingPair (btBroadphasePair &pair)
void cleanProxyFromPairs (btBroadphaseProxy *proxy)
virtual btBroadphaseProxycreateProxy (const btVector3 &min, const btVector3 &max, int shapeType, void *userPtr, short int collisionFilterGroup, short int collisionFilterMask)
virtual void destroyProxy (btBroadphaseProxy *proxy)
btBroadphasePairfindPair (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1)
Handle * getHandle (BP_FP_INT_TYPE index) const
int getNumOverlappingPairs () const
btOverlapFilterCallback * getOverlapFilterCallback ()
const btBroadphasePairgetOverlappingPairArrayPtr () const
btBroadphasePairgetOverlappingPairArrayPtr ()
bool needsBroadphaseCollision (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1) const
void processAllOverlappingPairs (btOverlapCallback *callback)
virtual void refreshOverlappingPairs ()
void removeHandle (BP_FP_INT_TYPE handle)
void removeOverlappingPair (btBroadphasePair &pair)
void removeOverlappingPairsContainingProxy (btBroadphaseProxy *proxy)
virtual void setAabb (btBroadphaseProxy *proxy, const btVector3 &aabbMin, const btVector3 &aabbMax)
void setOverlapFilterCallback (btOverlapFilterCallback *callback)
bool testOverlap (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1)
void updateHandle (BP_FP_INT_TYPE handle, const btPoint3 &aabbMin, const btPoint3 &aabbMax)

Protected Attributes

bool m_blockedForChanges
btOverlapFilterCallback * m_overlapFilterCallback
btAlignedObjectArray
< btBroadphasePair
m_overlappingPairArray

Private Member Functions

BP_FP_INT_TYPE allocHandle ()
void freeHandle (BP_FP_INT_TYPE handle)
void quantize (BP_FP_INT_TYPE *out, const btPoint3 &point, int isMax) const
void sortMaxDown (int axis, BP_FP_INT_TYPE edge, bool updateOverlaps=true)
void sortMaxUp (int axis, BP_FP_INT_TYPE edge, bool updateOverlaps=true)
void sortMinDown (int axis, BP_FP_INT_TYPE edge, bool updateOverlaps=true)
void sortMinUp (int axis, BP_FP_INT_TYPE edge, bool updateOverlaps=true)
bool testOverlap (int ignoreAxis, const Handle *pHandleA, const Handle *pHandleB)

Private Attributes

BP_FP_INT_TYPE m_firstFreeHandle
int m_invalidPair
int m_maxHandles
BP_FP_INT_TYPE m_numHandles
Edge * m_pEdges [3]
Handle * m_pHandles
btVector3 m_quantize
btPoint3 m_worldAabbMax
btPoint3 m_worldAabbMin

Classes

class  Edge
class  Handle

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

Generated by  Doxygen 1.6.0   Back to index