Interface BroadPhaseStrategy

All Known Implementing Classes:
DynamicTree, DynamicTreeFlatNodes

public interface BroadPhaseStrategy
Author:
Daniel Murphy
  • Method Details

    • createProxy

      int createProxy(AABB aabb, Object userData)
      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

      boolean moveProxy(int proxyId, AABB aabb, Vec2 displacement)
      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

      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:
      aabb - The axis-aligned bounding box.
    • raycast

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

      void drawTree(DebugDraw draw)