A dynamic tree arranges data in a binary tree to accelerate queries such as volume queries and ray casts. Leafs are proxies with an AABB. In the tree we expand the proxy AABB by b2_fatAABBFactor so that the proxy AABB is bigger than the client object. This allows the client object to move by small amounts without triggering a tree update. Nodes are pooled.

Constructors

Methods

  • Get user data from a proxy. Returns null if the proxy is invalid. Cast to your type on return.

    Parameters

    Returns any

    User data for proxy or null if proxy is invalid.

  • Move a proxy with a swept 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.

    Parameters

    Returns boolean

  • Query an AABB for overlapping proxies. The callback is called for each proxy that overlaps the supplied AABB. The callback should match function signature fuction callback(proxy:b2DynamicTreeNode):Boolean and should return false to trigger premature termination.

    Parameters

    • callback: (proxy: b2DynamicTreeNode) => boolean

      Called for each proxy that overlaps the supplied AABB. param proxy Proxy overlapping the supplied AABB.

    • aabb: b2AABB

    Returns void

    Proxies are query for overlap on this AABB.

  • 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: (input: b2RayCastInput, proxy: b2DynamicTreeNode) => number

      Called for each proxy that is hit by the ray. param input Ray cast input data. param proxy The proxy hit by the ray cast. return Return value is the new value for maxFraction.

    • input: b2RayCastInput

      Ray cast input data. Query all proxies along this ray cast.

    Returns void

  • Perform some iterations to re-balance the tree.

    Parameters

    • iterations: number

      Number of rebalance iterations to perform.

    Returns void