Interface BroadPhaseStrategy

  • All Known Implementing Classes:
    DynamicTree

    public interface BroadPhaseStrategy
    • Method Detail

      • createProxy

        int createProxy​(AABB aabb,
                        java.lang.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

        java.lang.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:
        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.
        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)