#include <b2BroadPhase.h>
Public Types | |
enum | { e_nullProxy = -1 } |
Public Member Functions | |
int32 | CreateProxy (const b2AABB &aabb, void *userData) |
void | DestroyProxy (int32 proxyId) |
Destroy a proxy. It is up to the client to remove any pairs. | |
void | MoveProxy (int32 proxyId, const b2AABB &aabb, const b2Vec2 &displacement) |
void | TouchProxy (int32 proxyId) |
Call to trigger a re-processing of it's pairs on the next call to UpdatePairs. | |
const b2AABB & | GetFatAABB (int32 proxyId) const |
Get the fat AABB for a proxy. | |
void * | GetUserData (int32 proxyId) const |
Get user data from a proxy. Returns NULL if the id is invalid. | |
bool | TestOverlap (int32 proxyIdA, int32 proxyIdB) const |
Test overlap of fat AABBs. | |
int32 | GetProxyCount () const |
Get the number of proxies. | |
template<typename T > | |
void | UpdatePairs (T *callback) |
Update the pairs. This results in pair callbacks. This can only add pairs. | |
template<typename T > | |
void | Query (T *callback, const b2AABB &aabb) const |
template<typename T > | |
void | RayCast (T *callback, const b2RayCastInput &input) const |
int32 | GetTreeHeight () const |
Get the height of the embedded tree. | |
int32 | GetTreeBalance () const |
Get the balance of the embedded tree. | |
float32 | GetTreeQuality () const |
Get the quality metric of the embedded tree. | |
void | ShiftOrigin (const b2Vec2 &newOrigin) |
Friends | |
class | b2DynamicTree |
The broad-phase is used for computing pairs and performing volume queries and ray casts. This broad-phase does not persist pairs. Instead, this reports potentially new pairs. It is up to the client to consume the new pairs and to track subsequent overlap.
int32 b2BroadPhase::CreateProxy | ( | const b2AABB & | aabb, |
void * | userData | ||
) |
Create a proxy with an initial AABB. Pairs are not reported until UpdatePairs is called.
Call MoveProxy as many times as you like, then when you are done call UpdatePairs to finalized the proxy pairs (for your time step).
|
inline |
Query an AABB for overlapping proxies. The callback class is called for each proxy that overlaps the supplied AABB.
|
inline |
Ray-cast against the proxies in the tree. This relies on the callback to perform a exact ray-cast in the case were the proxy contains a shape. The callback also performs the any collision filtering. This has performance roughly equal to k * log(n), where k is the number of collisions and n is the number of proxies in the tree.
input | the ray-cast input data. The ray extends from p1 to p1 + maxFraction * (p2 - p1). |
callback | a callback class that is called for each proxy that is hit by the ray. |
|
inline |
Shift the world origin. Useful for large worlds. The shift formula is: position -= newOrigin
newOrigin | the new origin with respect to the old origin |