17 #ifndef BT_DBVT_BROADPHASE_H
18 #define BT_DBVT_BROADPHASE_H
27 #define DBVT_BP_PROFILE 0
29 #define DBVT_BP_PREVENTFALSEUPDATE 0
30 #define DBVT_BP_ACCURATESLEEPING 0
31 #define DBVT_BP_ENABLE_BENCHMARK 0
32 #define DBVT_BP_MARGIN (btScalar)0.05
35 #define DBVT_BP_PROFILING_RATE 256
51 btBroadphaseProxy(aabbMin,aabbMax,userPtr,collisionFilterGroup,collisionFilterMask)
93 unsigned long m_total;
94 unsigned long m_ddcollide;
95 unsigned long m_fdcollide;
96 unsigned long m_cleanup;
97 unsigned long m_jobcount;
virtual void aabbTest(const btVector3 &aabbMin, const btVector3 &aabbMax, btBroadphaseAabbCallback &callback)
btBroadphaseProxy * createProxy(const btVector3 &aabbMin, const btVector3 &aabbMax, int shapeType, void *userPtr, short int collisionFilterGroup, short int collisionFilterMask, btDispatcher *dispatcher, void *multiSapProxy)
static void benchmark(btBroadphaseInterface *)
btAlignedObjectArray< btDbvtProxy * > btDbvtProxyArray
virtual void resetPool(btDispatcher *dispatcher)
reset broadphase internal structures, to ensure determinism/reproducability
The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods It...
btOverlappingPairCache * m_paircache
void setVelocityPrediction(btScalar prediction)
The btDbvt class implements a fast dynamic bounding volume tree based on axis aligned bounding boxes ...
The btClock is a portable basic clock that measures accurate time in seconds, use for profiling...
The btDbvtBroadphase implements a broadphase using two dynamic AABB bounding volume hierarchies/trees...
void performDeferredRemoval(btDispatcher *dispatcher)
void collide(btDispatcher *dispatcher)
The btOverlappingPairCache provides an interface for overlapping pair management (add, remove, storage), used by the btBroadphaseInterface broadphases.
btDbvtProxy * m_stageRoots[STAGECOUNT+1]
btDbvtBroadphase(btOverlappingPairCache *paircache=0)
virtual void setAabb(btBroadphaseProxy *proxy, const btVector3 &aabbMin, const btVector3 &aabbMax, btDispatcher *dispatcher)
virtual btOverlappingPairCache * getOverlappingPairCache()
virtual void destroyProxy(btBroadphaseProxy *proxy, btDispatcher *dispatcher)
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 printStats()
The btBroadphaseInterface class provides an interface to detect aabb-overlapping object pairs...
btScalar getVelocityPrediction() const
The btBroadphaseProxy is the main class that can be used with the Bullet broadphases.
btVector3 can be used to represent 3D points and vectors.
void setAabbForceUpdate(btBroadphaseProxy *absproxy, const btVector3 &aabbMin, const btVector3 &aabbMax, btDispatcher *)
this setAabbForceUpdate is similar to setAabb but always forces the aabb update.
virtual void getBroadphaseAabb(btVector3 &aabbMin, btVector3 &aabbMax) const
getAabb returns the axis aligned bounding box in the 'global' coordinate frame will add some transfor...
btDbvtProxy(const btVector3 &aabbMin, const btVector3 &aabbMax, void *userPtr, short int collisionFilterGroup, short int collisionFilterMask)
virtual void calculateOverlappingPairs(btDispatcher *dispatcher)
calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during th...
virtual void getAabb(btBroadphaseProxy *proxy, btVector3 &aabbMin, btVector3 &aabbMax) const
The btDispatcher interface class can be used in combination with broadphase to dispatch calculations ...
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...