Class BroadPhase
java.lang.Object
org.jbox2d.collision.broadphase.BroadPhase
- All Implemented Interfaces:
TreeCallback
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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate int[]private intprivate intprivate Pair[]private intprivate intprivate intprivate intprivate final BroadPhaseStrategystatic final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidbufferMove(int proxyId) final intcreateProxy(AABB aabb, java.lang.Object userData) Create a proxy with an initial AABB.final voiddestroyProxy(int proxyId) Destroy a proxy.voidgetFatAABB(int proxyId) final intGet the number of proxies.intfinal intGet the height of the embedded tree.floatjava.lang.ObjectgetUserData(int proxyId) final voidCall MoveProxy as many times as you like, then when you are done call UpdatePairs to finalized the proxy pairs (for your time step).final voidquery(TreeCallback callback, AABB aabb) Query an AABB for overlapping proxies.final voidraycast(TreeRayCastCallback callback, RayCastInput input) Ray-cast against the proxies in the tree.booleantestOverlap(int proxyIdA, int proxyIdB) voidtouchProxy(int proxyId) final booleantreeCallback(int proxyId) This is called from DynamicTree::query when we are gathering pairs.protected final voidunbufferMove(int proxyId) final voidupdatePairs(PairCallback callback) Update the pairs.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
NULL_PROXY
public static final int NULL_PROXY- See Also:
-
m_tree
-
m_proxyCount
private int m_proxyCount -
m_moveBuffer
private int[] m_moveBuffer -
m_moveCapacity
private int m_moveCapacity -
m_moveCount
private int m_moveCount -
m_pairBuffer
-
m_pairCapacity
private int m_pairCapacity -
m_pairCount
private int m_pairCount -
m_queryProxyId
private int m_queryProxyId
-
-
Constructor Details
-
BroadPhase
-
-
Method Details
-
createProxy
Create a proxy with an initial AABB. Pairs are not reported until updatePairs is called.- Parameters:
aabb-userData-- Returns:
-
destroyProxy
public final void destroyProxy(int proxyId) Destroy a proxy. It is up to the client to remove any pairs.- Parameters:
proxyId-
-
moveProxy
-
touchProxy
public void touchProxy(int proxyId) -
getUserData
public java.lang.Object getUserData(int proxyId) -
getFatAABB
-
testOverlap
public boolean testOverlap(int proxyIdA, int proxyIdB) -
getProxyCount
public final int getProxyCount()Get the number of proxies.- Returns:
-
drawTree
-
updatePairs
Update the pairs. This results in pair callbacks. This can only add pairs.- Parameters:
callback-
-
query
Query an AABB for overlapping proxies. The callback class is called for each proxy that overlaps the supplied AABB.- Parameters:
callback-aabb-
-
raycast
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- a callback class that is called for each proxy that is hit by the ray.input- 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.- Returns:
-
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.- Specified by:
treeCallbackin interfaceTreeCallback- Parameters:
proxyId- the id of the proxy- Returns:
- if the query should be continued
-