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