# Interface BroadPhaseStrategy

All Known Implementing Classes:
  `DynamicTree`

public interface BroadPhaseStrategy

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `computeHeight()`
  Compute the height of the tree.
  `int`
  `createProxy(AABB aabb, Object userData)`
  Create a proxy.
  `void`
  `destroyProxy(int proxyId)`
  Destroy a proxy
  `void`
  `drawTree(DebugDraw draw)`
  `float`
  `getAreaRatio()`
  Get the ratio of the sum of the node areas to the root area.
  `AABB`
  `getFatAABB(int proxyId)`
  `int`
  `getHeight()`
  Compute the height of the binary tree in O(N) time.
  `int`
  `getInsertionCount()`
  `int`
  `getMaxBalance()`
  Get the maximum balance of an node in the tree.
  `Object`
  `getUserData(int proxyId)`
  `boolean`
  `moveProxy(int proxyId, AABB aabb, Vec2 displacement)`
  Move a proxy with a swepted AABB.
  `void`
  `query(TreeCallback callback, AABB aabb)`
  Query an AABB for overlapping proxies.
  `void`
  `raycast(TreeRayCastCallback callback, RayCastInput input)`
  Ray-cast against the proxies in the tree.

- ## Method Details

  - ### createProxy

    int createProxy(AABB aabb, Object userData)
    Create a proxy. Provide a tight fitting AABB and a userData pointer.
    Parameters:
      `aabb` -
      `userData` -
    Returns:

  - ### destroyProxy

    void destroyProxy(int proxyId)
    Destroy a proxy
    Parameters:
      `proxyId` -

  - ### moveProxy

    boolean moveProxy(int proxyId, AABB aabb, Vec2 displacement)
    Move a proxy with a swepted AABB. If the proxy has moved outside of its fattened AABB, then the proxy is removed from the tree and re-inserted. Otherwise the function returns immediately.
    Returns:
      true if the proxy was re-inserted.

  - ### getUserData

    Object getUserData(int proxyId)

  - ### getFatAABB

    AABB getFatAABB(int proxyId)

  - ### query

    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.
    Parameters:
      `callback` -
      `araabbgAABB` -

  - ### raycast

    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` - 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).

  - ### 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.
    Returns:

  - ### getMaxBalance

    int getMaxBalance()
    Get the maximum balance of an node in the tree. The balance is the difference in height of the two children of a node.
    Returns:

  - ### getAreaRatio

    float getAreaRatio()
    Get the ratio of the sum of the node areas to the root area.
    Returns:

  - ### getInsertionCount

    int getInsertionCount()

  - ### drawTree

    void drawTree(DebugDraw draw)