@Override public final void query(TreeCallback callback, AABB aabb) { assert(aabb.isValid()); nodeStackIndex = 0; nodeStack[nodeStackIndex++] = m_root; while (nodeStackIndex > 0) { DynamicTreeNode node = nodeStack[--nodeStackIndex]; if (node == null) { continue; } if (AABB.testOverlap(node.aabb, aabb)) { if (node.child1 == null) { boolean proceed = callback.treeCallback(node.id); if (!proceed) { return; } } else { if (nodeStack.length - nodeStackIndex - 2 <= 0) { DynamicTreeNode[] newBuffer = new DynamicTreeNode[nodeStack.length * 2]; System.arraycopy(nodeStack, 0, newBuffer, 0, nodeStack.length); nodeStack = newBuffer; } nodeStack[nodeStackIndex++] = node.child1; nodeStack[nodeStackIndex++] = node.child2; } } } }
@Override public final void query(TreeCallback callback, AABB aabb) { nodeStackIndex = 0; nodeStack[nodeStackIndex++] = m_root; while (nodeStackIndex > 0) { int node = nodeStack[--nodeStackIndex]; if (node == NULL_NODE) { continue; } if (AABB.testOverlap(m_aabb[node], aabb)) { int child1 = m_child1[node]; if (child1 == NULL_NODE) { boolean proceed = callback.treeCallback(node); if (!proceed) { return; } } else { if (nodeStack.length - nodeStackIndex - 2 <= 0) { nodeStack = BufferUtils.reallocateBuffer(nodeStack, nodeStack.length, nodeStack.length * 2); } nodeStack[nodeStackIndex++] = child1; nodeStack[nodeStackIndex++] = m_child2[node]; } } } }
if (!AABB.testOverlap(nodeAABB, segAABB)) { continue;
if (!AABB.testOverlap(nodeAABB, segAABB)) { continue;
public boolean treeCallback(int proxyId) { Actor actor = (Actor) m_tree.getUserData(proxyId); actor.overlap = AABB.testOverlap(m_queryAABB, actor.aabb); return true; }
public void Query() { m_tree.query(this, m_queryAABB); for (int i = 0; i < e_actorCount; ++i) { if (m_actors[i].proxyId == -1) { continue; } boolean overlap = AABB.testOverlap(m_queryAABB, m_actors[i].aabb); assert (overlap == m_actors[i].overlap); } }
@Override public final void query(TreeCallback callback, AABB aabb) { assert(aabb.isValid()); nodeStackIndex = 0; nodeStack[nodeStackIndex++] = m_root; while (nodeStackIndex > 0) { DynamicTreeNode node = nodeStack[--nodeStackIndex]; if (node == null) { continue; } if (AABB.testOverlap(node.aabb, aabb)) { if (node.child1 == null) { boolean proceed = callback.treeCallback(node.id); if (!proceed) { return; } } else { if (nodeStack.length - nodeStackIndex - 2 <= 0) { DynamicTreeNode[] newBuffer = new DynamicTreeNode[nodeStack.length * 2]; System.arraycopy(nodeStack, 0, newBuffer, 0, nodeStack.length); nodeStack = newBuffer; } nodeStack[nodeStackIndex++] = node.child1; nodeStack[nodeStackIndex++] = node.child2; } } } }
@Override public final void query(TreeCallback callback, AABB aabb) { nodeStackIndex = 0; nodeStack[nodeStackIndex++] = m_root; while (nodeStackIndex > 0) { int node = nodeStack[--nodeStackIndex]; if (node == NULL_NODE) { continue; } if (AABB.testOverlap(m_aabb[node], aabb)) { int child1 = m_child1[node]; if (child1 == NULL_NODE) { boolean proceed = callback.treeCallback(node); if (!proceed) { return; } } else { if (nodeStack.length - nodeStackIndex - 2 <= 0) { nodeStack = BufferUtils.reallocateBuffer(nodeStack, nodeStack.length, nodeStack.length * 2); } nodeStack[nodeStackIndex++] = child1; nodeStack[nodeStackIndex++] = m_child2[node]; } } } }
if (!AABB.testOverlap(nodeAABB, segAABB)) { continue;
if (!AABB.testOverlap(nodeAABB, segAABB)) { continue;
public void Query() { m_tree.query(this, m_queryAABB); for (int i = 0; i < e_actorCount; ++i) { if (m_actors[i].proxyId == -1) { continue; } boolean overlap = AABB.testOverlap(m_queryAABB, m_actors[i].aabb); assert (overlap == m_actors[i].overlap); } }
public boolean treeCallback(int proxyId) { Actor actor = (Actor) m_tree.getUserData(proxyId); actor.overlap = AABB.testOverlap(m_queryAABB, actor.aabb); return true; }
@Override public final void query(TreeCallback callback, AABB aabb) { assert(aabb.isValid()); nodeStackIndex = 0; nodeStack[nodeStackIndex++] = m_root; while (nodeStackIndex > 0) { DynamicTreeNode node = nodeStack[--nodeStackIndex]; if (node == null) { continue; } if (AABB.testOverlap(node.aabb, aabb)) { if (node.child1 == null) { boolean proceed = callback.treeCallback(node.id); if (!proceed) { return; } } else { if (nodeStack.length - nodeStackIndex - 2 <= 0) { DynamicTreeNode[] newBuffer = new DynamicTreeNode[nodeStack.length * 2]; System.arraycopy(nodeStack, 0, newBuffer, 0, nodeStack.length); nodeStack = newBuffer; } nodeStack[nodeStackIndex++] = node.child1; nodeStack[nodeStackIndex++] = node.child2; } } } }
@Override public final void query(TreeCallback callback, AABB aabb) { assert (aabb.isValid()); nodeStackIndex = 0; nodeStack[nodeStackIndex++] = m_root; while (nodeStackIndex > 0) { DynamicTreeNode node = nodeStack[--nodeStackIndex]; if (node == null) { continue; } if (AABB.testOverlap(node.aabb, aabb)) { if (node.child1 == null) { boolean proceed = callback.treeCallback(node.id); if (!proceed) { return; } } else { if (nodeStack.length - nodeStackIndex - 2 <= 0) { DynamicTreeNode[] newBuffer = new DynamicTreeNode[nodeStack.length * 2]; System.arraycopy(nodeStack, 0, newBuffer, 0, nodeStack.length); nodeStack = newBuffer; } nodeStack[nodeStackIndex++] = node.child1; nodeStack[nodeStackIndex++] = node.child2; } } } }
@Override public final void query(TreeCallback callback, AABB aabb) { nodeStackIndex = 0; nodeStack[nodeStackIndex++] = m_root; while (nodeStackIndex > 0) { int node = nodeStack[--nodeStackIndex]; if (node == NULL_NODE) { continue; } if (AABB.testOverlap(m_aabb[node], aabb)) { int child1 = m_child1[node]; if (child1 == NULL_NODE) { boolean proceed = callback.treeCallback(node); if (!proceed) { return; } } else { if (nodeStack.length - nodeStackIndex - 2 <= 0) { nodeStack = BufferUtils.reallocateBuffer(nodeStack, nodeStack.length, nodeStack.length * 2); } nodeStack[nodeStackIndex++] = child1; nodeStack[nodeStackIndex++] = m_child2[node]; } } } }
@Override public final void query(TreeCallback callback, AABB aabb) { nodeStackIndex = 0; nodeStack[nodeStackIndex++] = m_root; while (nodeStackIndex > 0) { int node = nodeStack[--nodeStackIndex]; if (node == NULL_NODE) { continue; } if (AABB.testOverlap(m_aabb[node], aabb)) { int child1 = m_child1[node]; if (child1 == NULL_NODE) { boolean proceed = callback.treeCallback(node); if (!proceed) { return; } } else { if (nodeStack.length - nodeStackIndex - 2 <= 0) { nodeStack = BufferUtils.reallocateBuffer(nodeStack, nodeStack.length, nodeStack.length * 2); } nodeStack[nodeStackIndex++] = child1; nodeStack[nodeStackIndex++] = m_child2[node]; } } } }
if (!AABB.testOverlap(nodeAABB, segAABB)) { continue;
if (!AABB.testOverlap(nodeAABB, segAABB)) { continue;
@Override public final void query(TreeCallback callback, AABB aabb) { nodeStack.reset(); nodeStack.push(m_root); while (nodeStack.getCount() > 0) { DynamicTreeNode node = nodeStack.pop(); if (node == null) { continue; } if (AABB.testOverlap(node.aabb, aabb)) { if (node.child1 == null) { boolean proceed = callback.treeCallback(node.id); if (!proceed) { return; } } else { nodeStack.push(node.child1); nodeStack.push(node.child2); } } } }
if (!AABB.testOverlap(nodeAABB, segAABB)) { continue;