public abstract class QuadTree<B extends IBounds,T extends ISpatialItem<B>> extends java.lang.Object implements IBounds
| Modifier and Type | Class and Description |
|---|---|
class |
QuadTree.QuadTreeNode |
| Modifier and Type | Field and Description |
|---|---|
protected static int |
LEVEL_MAX_DEFAULT |
protected static int |
LEVEL_ROOT |
protected B |
mBounds |
protected int |
mMaxLevel |
protected QuadTree.QuadTreeNode |
mRoot |
| Modifier | Constructor and Description |
|---|---|
|
QuadTree(B pBounds) |
protected |
QuadTree(B pBounds,
int pMaxLevel) |
| Modifier and Type | Method and Description |
|---|---|
void |
add(T pItem) |
void |
add(T pItem,
B pBounds)
Deprecated.
|
void |
addAll(java.util.ArrayList<T> pItems) |
void |
addAll(java.util.Collection<T> pItems) |
void |
addAll(T... pItems) |
void |
callItems(ParameterCallable<T> pParameterCallable) |
void |
callNodes(ParameterCallable<QuadTree.QuadTreeNode> pParameterCallable) |
void |
clear() |
boolean |
containsAny(B pBounds) |
boolean |
containsAny(B pBounds,
IMatcher<T> pMatcher) |
B |
getBounds() |
int |
getItemCount() |
int |
getMaxLevel() |
protected abstract QuadTree.QuadTreeNode |
getRoot() |
protected abstract QuadTree.QuadTreeNode |
initRoot(B pBounds) |
boolean |
isEmpty() |
void |
move(T pItem,
B pBounds)
Shorthand for
remove(pItem, pBounds) followed by a add(pItem). |
void |
move(T pItem,
B pOldBounds,
B pNewBounds)
Deprecated.
|
java.util.ArrayList<T> |
query(B pBounds) |
java.util.ArrayList<T> |
query(B pBounds,
IMatcher<T> pMatcher) |
<L extends java.util.List<T>> |
query(B pBounds,
IMatcher<T> pMatcher,
L pResult) |
<L extends java.util.List<T>> |
query(B pBounds,
L pResult) |
<L extends java.util.List<S>,S extends T> |
queryForSubclass(B pBounds,
IMatcher<T> pMatcher,
L pResult) |
boolean |
remove(T pItem) |
boolean |
remove(T pItem,
B pBounds) |
java.lang.String |
toString() |
protected static final int LEVEL_ROOT
protected static final int LEVEL_MAX_DEFAULT
protected final QuadTree.QuadTreeNode mRoot
protected final int mMaxLevel
public QuadTree(B pBounds)
protected QuadTree(B pBounds, int pMaxLevel)
protected abstract QuadTree.QuadTreeNode initRoot(B pBounds)
public int getMaxLevel()
public B getBounds()
protected abstract QuadTree.QuadTreeNode getRoot()
public java.lang.String toString()
toString in class java.lang.Objectpublic int getItemCount()
public boolean isEmpty()
public void add(T pItem)
public void addAll(T... pItems)
public void addAll(java.util.ArrayList<T> pItems)
public void addAll(java.util.Collection<T> pItems)
public void move(T pItem, B pBounds) throws AndEngineRuntimeException
remove(pItem, pBounds) followed by a add(pItem).pItem - to be freshly added.pBounds - to remove pItem with.AndEngineRuntimeException@Deprecated public void move(T pItem, B pOldBounds, B pNewBounds) throws AndEngineRuntimeException
remove(pItem, pOldBounds) followed by a add(pItem, pNewBounds).pItem - to be freshly added.pOldBounds - to remove pItem with.pNewBounds - to add pItem with.AndEngineRuntimeExceptionpublic boolean remove(T pItem)
public <L extends java.util.List<S>,S extends T> L queryForSubclass(B pBounds, IMatcher<T> pMatcher, L pResult) throws java.lang.ClassCastException
pBounds - pMatcher - must only IMatcher#matches(T) when the item is instanceof S, otherwise it will an ClassCastException.pResult - java.lang.ClassCastException - when pMatcher matched an item that was not instanceof S.public boolean containsAny(B pBounds)
public void callItems(ParameterCallable<T> pParameterCallable)
public void callNodes(ParameterCallable<QuadTree.QuadTreeNode> pParameterCallable)
public void clear()