Blender
V3.3
|
#include <btBroadphaseInterface.h>
Public Member Functions | |
virtual | ~btBroadphaseInterface () |
virtual btBroadphaseProxy * | createProxy (const btVector3 &aabbMin, const btVector3 &aabbMax, int shapeType, void *userPtr, int collisionFilterGroup, int collisionFilterMask, btDispatcher *dispatcher)=0 |
virtual void | destroyProxy (btBroadphaseProxy *proxy, btDispatcher *dispatcher)=0 |
virtual void | setAabb (btBroadphaseProxy *proxy, const btVector3 &aabbMin, const btVector3 &aabbMax, btDispatcher *dispatcher)=0 |
virtual void | getAabb (btBroadphaseProxy *proxy, btVector3 &aabbMin, btVector3 &aabbMax) const =0 |
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))=0 |
virtual void | aabbTest (const btVector3 &aabbMin, const btVector3 &aabbMax, btBroadphaseAabbCallback &callback)=0 |
virtual void | calculateOverlappingPairs (btDispatcher *dispatcher)=0 |
calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb More... | |
virtual btOverlappingPairCache * | getOverlappingPairCache ()=0 |
virtual const btOverlappingPairCache * | getOverlappingPairCache () const =0 |
virtual void | getBroadphaseAabb (btVector3 &aabbMin, btVector3 &aabbMax) const =0 |
virtual void | resetPool (btDispatcher *dispatcher) |
reset broadphase internal structures, to ensure determinism/reproducability More... | |
virtual void | printStats ()=0 |
The btBroadphaseInterface class provides an interface to detect aabb-overlapping object pairs. Some implementations for this broadphase interface include btAxisSweep3, bt32BitAxisSweep3 and btDbvtBroadphase. The actual overlapping pair management, storage, adding and removing of pairs is dealt by the btOverlappingPairCache class.
Definition at line 49 of file btBroadphaseInterface.h.
|
inlinevirtual |
Definition at line 52 of file btBroadphaseInterface.h.
|
pure virtual |
|
pure virtual |
calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb
Implemented in btSimpleBroadphase, btDbvtBroadphase, btAxisSweep3Internal< BP_FP_INT_TYPE >, btAxisSweep3Internal< unsigned int >, and btAxisSweep3Internal< unsigned short int >.
Referenced by btCollisionWorld::computeOverlappingPairs().
|
pure virtual |
|
pure virtual |
Implemented in btSimpleBroadphase, btDbvtBroadphase, btAxisSweep3Internal< BP_FP_INT_TYPE >, btAxisSweep3Internal< unsigned int >, and btAxisSweep3Internal< unsigned short int >.
Referenced by btCollisionWorld::refreshBroadphaseProxy(), btCollisionWorld::removeCollisionObject(), and btCollisionWorld::~btCollisionWorld().
|
pure virtual |
|
pure virtual |
getAabb returns the axis aligned bounding box in the 'global' coordinate frame will add some transform later
Implemented in btSimpleBroadphase, btDbvtBroadphase, btAxisSweep3Internal< BP_FP_INT_TYPE >, btAxisSweep3Internal< unsigned int >, and btAxisSweep3Internal< unsigned short int >.
|
pure virtual |
|
pure virtual |
Implemented in btSimpleBroadphase, btDbvtBroadphase, btAxisSweep3Internal< BP_FP_INT_TYPE >, btAxisSweep3Internal< unsigned int >, and btAxisSweep3Internal< unsigned short int >.
Referenced by btCollisionWorld::getPairCache(), btCollisionWorld::performDiscreteCollisionDetection(), btCollisionWorld::removeCollisionObject(), and btCollisionWorld::~btCollisionWorld().
|
pure virtual |
|
inlinevirtual |
reset broadphase internal structures, to ensure determinism/reproducability
Reimplemented in btSimpleBroadphase, btDbvtBroadphase, btAxisSweep3Internal< BP_FP_INT_TYPE >, btAxisSweep3Internal< unsigned int >, and btAxisSweep3Internal< unsigned short int >.
Definition at line 74 of file btBroadphaseInterface.h.
References void.
|
pure virtual |
Implemented in btSimpleBroadphase, btDbvtBroadphase, btAxisSweep3Internal< BP_FP_INT_TYPE >, btAxisSweep3Internal< unsigned int >, and btAxisSweep3Internal< unsigned short int >.
Referenced by recoverFromPenetration(), btSimpleDynamicsWorld::updateAabbs(), btSoftBody::updateBounds(), and btCollisionWorld::updateSingleAabb().