|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.jbox2d.collision.broadphase.DynamicTree
public class DynamicTree
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 _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.
| Nested Class Summary | |
|---|---|
class |
DynamicTree.TreeNodeStack
|
| Field Summary | |
|---|---|
static int |
MAX_STACK_SIZE
|
static int |
NULL_NODE
|
| Constructor Summary | |
|---|---|
DynamicTree()
|
|
| Method Summary | |
|---|---|
int |
computeHeight()
Compute the height of the tree. |
int |
createProxy(AABB aabb,
Object userData)
Create a proxy. |
void |
destroyProxy(int proxyId)
Destroy a proxy |
void |
drawTree(DebugDraw argDraw)
|
void |
drawTree(DebugDraw argDraw,
DynamicTreeNode node,
int spot,
int height)
|
float |
getAreaRatio()
Get the ratio of the sum of the node areas to the root area. |
AABB |
getFatAABB(int proxyId)
|
int |
getHeight()
Compute the height of the binary tree in O(N) time. |
int |
getInsertionCount()
|
int |
getMaxBalance()
Get the maximum balance of an node in the tree. |
Object |
getUserData(int proxyId)
|
boolean |
moveProxy(int proxyId,
AABB aabb,
Vec2 displacement)
Move a proxy with a swepted AABB. |
void |
query(TreeCallback callback,
AABB aabb)
Query an AABB for overlapping proxies. |
void |
raycast(TreeRayCastCallback callback,
RayCastInput input)
Ray-cast against the proxies in the tree. |
void |
rebuildBottomUp()
Build an optimal tree. |
void |
validate()
Validate this tree. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int MAX_STACK_SIZE
public static final int NULL_NODE
| Constructor Detail |
|---|
public DynamicTree()
| Method Detail |
|---|
public final int createProxy(AABB aabb,
Object userData)
BroadPhaseStrategy
createProxy in interface BroadPhaseStrategypublic final void destroyProxy(int proxyId)
BroadPhaseStrategy
destroyProxy in interface BroadPhaseStrategy
public final boolean moveProxy(int proxyId,
AABB aabb,
Vec2 displacement)
BroadPhaseStrategy
moveProxy in interface BroadPhaseStrategypublic final Object getUserData(int proxyId)
getUserData in interface BroadPhaseStrategypublic final AABB getFatAABB(int proxyId)
getFatAABB in interface BroadPhaseStrategy
public final void query(TreeCallback callback,
AABB aabb)
BroadPhaseStrategy
query in interface BroadPhaseStrategy
public void raycast(TreeRayCastCallback callback,
RayCastInput input)
BroadPhaseStrategy
raycast in interface BroadPhaseStrategycallback - a callback class that is called for each proxy that is hit by the ray.input - the ray-cast input data. The ray extends from p1 to p1 + maxFraction * (p2 - p1).public final int computeHeight()
BroadPhaseStrategy
computeHeight in interface BroadPhaseStrategypublic void validate()
public int getHeight()
BroadPhaseStrategy
getHeight in interface BroadPhaseStrategypublic int getMaxBalance()
BroadPhaseStrategy
getMaxBalance in interface BroadPhaseStrategypublic float getAreaRatio()
BroadPhaseStrategy
getAreaRatio in interface BroadPhaseStrategypublic void rebuildBottomUp()
public int getInsertionCount()
getInsertionCount in interface BroadPhaseStrategypublic void drawTree(DebugDraw argDraw)
drawTree in interface BroadPhaseStrategy
public void drawTree(DebugDraw argDraw,
DynamicTreeNode node,
int spot,
int height)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||