Package org.jbox2d.collision.broadphase
Interface BroadPhaseStrategy
- All Known Implementing Classes:
DynamicTree,DynamicTreeFlatNodes
public interface BroadPhaseStrategy
- Author:
- Daniel Murphy
-
Method Summary
Modifier and TypeMethodDescriptionintCompute the height of the tree.intcreateProxy(AABB aabb, Object userData) Create a proxy.voiddestroyProxy(int proxyId) Destroy a proxyvoidfloatGet the ratio of the sum of the node areas to the root area.getFatAABB(int proxyId) intCompute the height of the binary tree in O(N) time.intGet the maximum balance of a node in the tree.getUserData(int proxyId) booleanMove a proxy with a swepted AABB.voidquery(TreeCallback callback, AABB aabb) Query an AABB for overlapping proxies.voidraycast(TreeRayCastCallback callback, RayCastInput input) Ray-cast against the proxies in the tree.
-
Method Details
-
createProxy
Create a proxy. Provide a tight-fitting AABB and a userData pointer.- Parameters:
aabb- The axis-aligned bounding box.
-
destroyProxy
void destroyProxy(int proxyId) Destroy a proxy -
moveProxy
Move a proxy with a swepted AABB. If the proxy has moved outside its fattened AABB, then the proxy is removed from the tree and re-inserted. Otherwise, the function returns immediately.- Parameters:
aabb- The axis-aligned bounding box.- Returns:
- true if the proxy was re-inserted.
-
getUserData
-
getFatAABB
-
query
Query an AABB for overlapping proxies. The callback class is called for each proxy that overlaps the supplied AABB.- Parameters:
aabb- The axis-aligned bounding box.
-
raycast
Ray-cast against the proxies in the tree. This relies on the callback to perform an exact ray-cast in the case were the proxy contains a shape. The callback also performs 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:
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.
-
computeHeight
int computeHeight()Compute the height of the tree. -
getHeight
int getHeight()Compute the height of the binary tree in O(N) time. Should not be called often. -
getMaxBalance
int getMaxBalance()Get the maximum balance of a node in the tree. The balance is the difference in height of the two children of a node. -
getAreaRatio
float getAreaRatio()Get the ratio of the sum of the node areas to the root area. -
drawTree
-