Appearance
Class: BroadPhase
The broad-phase wraps and extends a dynamic-tree to keep track of moved objects and query them on update.
Constructors
Constructor
new BroadPhase():
BroadPhase
Returns
BroadPhase
Properties
m_callback()
m_callback: (
userDataA,userDataB) =>void
Parameters
userDataA
any
userDataB
any
Returns
void
m_moveBuffer
m_moveBuffer:
number[] =[]
m_queryProxyId
m_queryProxyId:
number
m_tree
m_tree:
DynamicTree<FixtureProxy>
Methods
bufferMove()
bufferMove(
proxyId):void
Parameters
proxyId
number
Returns
void
createProxy()
createProxy(
aabb,userData):number
Create a proxy with an initial AABB. Pairs are not reported until UpdatePairs is called.
Parameters
aabb
userData
Returns
number
destroyProxy()
destroyProxy(
proxyId):void
Destroy a proxy. It is up to the client to remove any pairs.
Parameters
proxyId
number
Returns
void
getFatAABB()
getFatAABB(
proxyId):AABB
Get the fat AABB for a proxy.
Parameters
proxyId
number
Returns
getProxyCount()
getProxyCount():
number
Get the number of proxies.
Returns
number
getTreeBalance()
getTreeBalance():
number
Get the balance (integer) of the embedded tree.
Returns
number
getTreeHeight()
getTreeHeight():
number
Get the height of the embedded tree.
Returns
number
getTreeQuality()
getTreeQuality():
number
Get the quality metric of the embedded tree.
Returns
number
getUserData()
getUserData(
proxyId):FixtureProxy
Get user data from a proxy. Returns null if the id is invalid.
Parameters
proxyId
number
Returns
moveProxy()
moveProxy(
proxyId,aabb,displacement):void
Call moveProxy as many times as you like, then when you are done call UpdatePairs to finalized the proxy pairs (for your time step).
Parameters
proxyId
number
aabb
displacement
Returns
void
query()
query(
aabb,queryCallback):void
Query an AABB for overlapping proxies. The callback class is called for each proxy that overlaps the supplied AABB.
Parameters
aabb
queryCallback
Returns
void
queryCallback()
queryCallback(
proxyId):boolean
Parameters
proxyId
number
Returns
boolean
rayCast()
rayCast(
input,rayCastCallback):void
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).
rayCastCallback
A function that is called for each proxy that is hit by the ray. If the return value is a positive number it will update the maxFraction of the ray cast input, and if it is zero it will terminate they ray cast.
Returns
void
shiftOrigin()
shiftOrigin(
newOrigin):void
Shift the world origin. Useful for large worlds. The shift formula is: position -= newOrigin
Parameters
newOrigin
The new origin with respect to the old origin
Returns
void
testOverlap()
testOverlap(
proxyIdA,proxyIdB):boolean
Test overlap of fat AABBs.
Parameters
proxyIdA
number
proxyIdB
number
Returns
boolean
touchProxy()
touchProxy(
proxyId):void
Call to trigger a re-processing of it's pairs on the next call to UpdatePairs.
Parameters
proxyId
number
Returns
void
unbufferMove()
unbufferMove(
proxyId):void
Parameters
proxyId
number
Returns
void
updatePairs()
updatePairs(
addPairCallback):void
Update the pairs. This results in pair callbacks. This can only add pairs.
Parameters
addPairCallback
(userDataA, userDataB) => void
Returns
void