public class BroadPhase

  1. Object
  2. BroadPhase

ImplementsTreeCallback

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.

Fields

public static final int NULL_PROXY = -1

Constructors

public BroadPhase(BroadPhaseStrategy strategy)

Methods

public final int createProxy(AABB aabb, Object userData)Create a proxy with an initial AABB.
public final void destroyProxy(int proxyId)Destroy a proxy.
public final void moveProxy(int proxyId, AABB aabb, Vec2 displacement)Call MoveProxy as many times as you like, then when you are done call UpdatePairs to finalized the proxy pairs (for your time step).
public void touchProxy(int proxyId)
public Object getUserData(int proxyId)
public AABB getFatAABB(int proxyId)
public boolean testOverlap(int proxyIdA, int proxyIdB)
public final int getProxyCount()Get the number of proxies.
public void drawTree(DebugDraw argDraw)
public final void updatePairs(PairCallback callback)Update the pairs.
public final void query(TreeCallback callback, AABB aabb)Query an AABB for overlapping proxies.
public final void raycast(TreeRayCastCallback callback, RayCastInput input)Ray-cast against the proxies in the tree.
public final int getTreeHeight()Get the height of the embedded tree.
public int getTreeBalance()
public float getTreeQuality()
protected final void bufferMove(int proxyId)
protected final void unbufferMove(int proxyId)
public final boolean treeCallback(int proxyId)This is called from DynamicTree::query when we are gathering pairs.

Inherited methods

Field details

NULL_PROXY

public static final int NULL_PROXY = -1

Constructor details

BroadPhase

public BroadPhase(BroadPhaseStrategy strategy)

Method details

createProxy

public final int createProxy(AABB aabb, Object userData)
Create a proxy with an initial AABB. Pairs are not reported until updatePairs is called.

destroyProxy

public final void destroyProxy(int proxyId)
Destroy a proxy. It is up to the client to remove any pairs.

moveProxy

public final void moveProxy(int proxyId, AABB aabb, Vec2 displacement)
Call MoveProxy as many times as you like, then when you are done call UpdatePairs to finalized the proxy pairs (for your time step).

touchProxy

public void touchProxy(int proxyId)

getUserData

public Object getUserData(int proxyId)

getFatAABB

public AABB getFatAABB(int proxyId)

testOverlap

public boolean testOverlap(int proxyIdA, int proxyIdB)

getProxyCount

public final int getProxyCount()
Get the number of proxies.

drawTree

public void drawTree(DebugDraw argDraw)

updatePairs

public final void updatePairs(PairCallback callback)
Update the pairs. This results in pair callbacks. This can only add pairs.

query

public final void query(TreeCallback callback, AABB aabb)
Query an AABB for overlapping proxies. The callback class is called for each proxy that overlaps the supplied AABB.

raycast

public final void raycast(TreeRayCastCallback callback, RayCastInput input)
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.

Parameters

callback TreeRayCastCallback
a callback class that is called for each proxy that is hit by the ray.
input RayCastInput
the ray-cast input data. The ray extends from p1 to p1 + maxFraction * (p2 - p1).

getTreeHeight

public final int getTreeHeight()
Get the height of the embedded tree.

getTreeBalance

public int getTreeBalance()

getTreeQuality

public float getTreeQuality()

bufferMove

protected final void bufferMove(int proxyId)

unbufferMove

protected final void unbufferMove(int proxyId)

treeCallback

public final boolean treeCallback(int proxyId)
This is called from DynamicTree::query when we are gathering pairs.

Parameters

proxyId int
the id of the proxy

Returns

if the query should be continued