Options
All
  • Public
  • Public/Protected
  • All
Menu

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.

Hierarchy

  • b2DynamicTree

Index

Constructors

constructor

  • Constructing the tree initializes the node pool.

    Returns b2DynamicTree

Methods

CreateProxy

  • Create a proxy. Provide a tight fitting AABB and a userData.

    Parameters

    • aabb: b2AABB

      AABB.

    • userData: any

    Returns b2DynamicTreeNode

    Dynamic tree node.

DestroyProxy

  • Destroy a proxy. This asserts if the id is invalid.

    Parameters

    Returns void

GetFatAABB

  • Gets the Fat AABB for the proxy.

    Parameters

    Returns b2AABB

    Fat AABB for proxy.

GetUserData

  • 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.

MoveProxy

  • 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

  • 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.

    aabb

    Proxies are query for overlap on this AABB.

    Parameters

    Returns void

RayCast

  • 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

    Returns void

Rebalance

  • Rebalance(iterations: number): void
  • Perform some iterations to re-balance the tree.

    Parameters

    • iterations: number

      Number of rebalance iterations to perform.

    Returns void

Generated using TypeDoc