#include <btDbvtBroadphase.h>
Public Types | |
enum | { DYNAMIC_SET = 0, FIXED_SET = 1, STAGECOUNT = 2 } |
Public Member Functions | |
virtual void | aabbTest (const btVector3 &aabbMin, const btVector3 &aabbMax, btBroadphaseAabbCallback &callback) |
btDbvtBroadphase (btOverlappingPairCache *paircache=0) | |
virtual void | calculateOverlappingPairs (btDispatcher *dispatcher) |
calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb | |
void | collide (btDispatcher *dispatcher) |
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 |
virtual const btOverlappingPairCache * | getOverlappingPairCache () const |
virtual btOverlappingPairCache * | getOverlappingPairCache () |
btScalar | getVelocityPrediction () const |
void | optimize () |
void | performDeferredRemoval (btDispatcher *dispatcher) |
virtual void | printStats () |
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 | 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 | setAabbForceUpdate (btBroadphaseProxy *absproxy, const btVector3 &aabbMin, const btVector3 &aabbMax, btDispatcher *) |
void | setVelocityPrediction (btScalar prediction) |
~btDbvtBroadphase () | |
Static Public Member Functions | |
static void | benchmark (btBroadphaseInterface *) |
Public Attributes | |
int | m_cid |
int | m_cupdates |
bool | m_deferedcollide |
int | m_dupdates |
int | m_fixedleft |
int | m_fupdates |
int | m_gid |
bool | m_needcleanup |
int | m_newpairs |
btOverlappingPairCache * | m_paircache |
int | m_pid |
btScalar | m_prediction |
bool | m_releasepaircache |
btDbvt | m_sets [2] |
int | m_stageCurrent |
btDbvtProxy * | m_stageRoots [STAGECOUNT+1] |
unsigned | m_updates_call |
unsigned | m_updates_done |
btScalar | m_updates_ratio |
The btDbvtBroadphase implements a broadphase using two dynamic AABB bounding volume hierarchies/trees (see btDbvt). One tree is used for static/non-moving objects, and another tree is used for dynamic objects. Objects can move from one tree to the other. This is a very fast broadphase, especially for very dynamic worlds where many objects are moving. Its insert/add and remove of objects is generally faster than the sweep and prune broadphases btAxisSweep3 and bt32BitAxisSweep3.
Definition at line 62 of file btDbvtBroadphase.h.
anonymous enum |
Definition at line 65 of file btDbvtBroadphase.h.
btDbvtBroadphase::btDbvtBroadphase | ( | btOverlappingPairCache * | paircache = 0 |
) |
btDbvtBroadphase::~btDbvtBroadphase | ( | ) |
virtual void btDbvtBroadphase::aabbTest | ( | const btVector3 & | aabbMin, | |
const btVector3 & | aabbMax, | |||
btBroadphaseAabbCallback & | callback | |||
) | [virtual] |
Implements btBroadphaseInterface.
static void btDbvtBroadphase::benchmark | ( | btBroadphaseInterface * | ) | [static] |
virtual void btDbvtBroadphase::calculateOverlappingPairs | ( | btDispatcher * | dispatcher | ) | [virtual] |
calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb
Implements btBroadphaseInterface.
void btDbvtBroadphase::collide | ( | btDispatcher * | dispatcher | ) |
btBroadphaseProxy* btDbvtBroadphase::createProxy | ( | const btVector3 & | aabbMin, | |
const btVector3 & | aabbMax, | |||
int | shapeType, | |||
void * | userPtr, | |||
short int | collisionFilterGroup, | |||
short int | collisionFilterMask, | |||
btDispatcher * | dispatcher, | |||
void * | multiSapProxy | |||
) | [virtual] |
Implements btBroadphaseInterface.
virtual void btDbvtBroadphase::destroyProxy | ( | btBroadphaseProxy * | proxy, | |
btDispatcher * | dispatcher | |||
) | [virtual] |
Implements btBroadphaseInterface.
virtual void btDbvtBroadphase::getAabb | ( | btBroadphaseProxy * | proxy, | |
btVector3 & | aabbMin, | |||
btVector3 & | aabbMax | |||
) | const [virtual] |
Implements btBroadphaseInterface.
virtual void btDbvtBroadphase::getBroadphaseAabb | ( | btVector3 & | aabbMin, | |
btVector3 & | aabbMax | |||
) | const [virtual] |
getAabb returns the axis aligned bounding box in the 'global' coordinate frame will add some transform later
Implements btBroadphaseInterface.
virtual const btOverlappingPairCache* btDbvtBroadphase::getOverlappingPairCache | ( | ) | const [virtual] |
Implements btBroadphaseInterface.
virtual btOverlappingPairCache* btDbvtBroadphase::getOverlappingPairCache | ( | ) | [virtual] |
Implements btBroadphaseInterface.
btScalar btDbvtBroadphase::getVelocityPrediction | ( | ) | const [inline] |
Definition at line 130 of file btDbvtBroadphase.h.
void btDbvtBroadphase::optimize | ( | ) |
void btDbvtBroadphase::performDeferredRemoval | ( | btDispatcher * | dispatcher | ) |
virtual void btDbvtBroadphase::printStats | ( | ) | [virtual] |
Implements btBroadphaseInterface.
virtual void btDbvtBroadphase::rayTest | ( | const btVector3 & | rayFrom, | |
const btVector3 & | rayTo, | |||
btBroadphaseRayCallback & | rayCallback, | |||
const btVector3 & | aabbMin = btVector3(0, 0, 0) , |
|||
const btVector3 & | aabbMax = btVector3(0, 0, 0) | |||
) | [virtual] |
Implements btBroadphaseInterface.
virtual void btDbvtBroadphase::resetPool | ( | btDispatcher * | dispatcher | ) | [virtual] |
reset broadphase internal structures, to ensure determinism/reproducability
Reimplemented from btBroadphaseInterface.
virtual void btDbvtBroadphase::setAabb | ( | btBroadphaseProxy * | proxy, | |
const btVector3 & | aabbMin, | |||
const btVector3 & | aabbMax, | |||
btDispatcher * | dispatcher | |||
) | [virtual] |
Implements btBroadphaseInterface.
void btDbvtBroadphase::setAabbForceUpdate | ( | btBroadphaseProxy * | absproxy, | |
const btVector3 & | aabbMin, | |||
const btVector3 & | aabbMax, | |||
btDispatcher * | ||||
) |
this setAabbForceUpdate is similar to setAabb but always forces the aabb update. it is not part of the btBroadphaseInterface but specific to btDbvtBroadphase. it bypasses certain optimizations that prevent aabb updates (when the aabb shrinks), see http://code.google.com/p/bullet/issues/detail?id=223
void btDbvtBroadphase::setVelocityPrediction | ( | btScalar | prediction | ) | [inline] |
Definition at line 126 of file btDbvtBroadphase.h.
Definition at line 85 of file btDbvtBroadphase.h.
Definition at line 78 of file btDbvtBroadphase.h.
Definition at line 88 of file btDbvtBroadphase.h.
Definition at line 77 of file btDbvtBroadphase.h.
Definition at line 80 of file btDbvtBroadphase.h.
Definition at line 76 of file btDbvtBroadphase.h.
Definition at line 86 of file btDbvtBroadphase.h.
Definition at line 89 of file btDbvtBroadphase.h.
Definition at line 79 of file btDbvtBroadphase.h.
Definition at line 73 of file btDbvtBroadphase.h.
Definition at line 84 of file btDbvtBroadphase.h.
Definition at line 74 of file btDbvtBroadphase.h.
Definition at line 87 of file btDbvtBroadphase.h.
Definition at line 71 of file btDbvtBroadphase.h.
Definition at line 75 of file btDbvtBroadphase.h.
btDbvtProxy* btDbvtBroadphase::m_stageRoots[STAGECOUNT+1] |
Definition at line 72 of file btDbvtBroadphase.h.
unsigned btDbvtBroadphase::m_updates_call |
Definition at line 81 of file btDbvtBroadphase.h.
unsigned btDbvtBroadphase::m_updates_done |
Definition at line 82 of file btDbvtBroadphase.h.
Definition at line 83 of file btDbvtBroadphase.h.