public class PointQuadTree<T extends Positionable> extends Rectangle implements QuadTree<T>
| Modifier and Type | Field and Description | 
|---|---|
protected PointQuadTree<T> | 
bottomLeft  | 
protected PointQuadTree<T> | 
bottomRight  | 
static com.badlogic.gdx.graphics.Color | 
ELEMENT_COLOR  | 
protected int | 
elementLimitPerQuad  | 
protected java.util.List<T> | 
elements  | 
protected int | 
mergeWatermark  | 
protected PointQuadTree<T> | 
parent  | 
static com.badlogic.gdx.graphics.Color | 
QUAD_COLOR  | 
protected PointQuadTree<T> | 
topLeft  | 
protected PointQuadTree<T> | 
topRight  | 
protected int | 
totalElementsCache  | 
| Constructor and Description | 
|---|
PointQuadTree(int elementLimitPerQuad,
             float x,
             float y,
             float width,
             float height)
Constructs a  
PointQuadTree with a specified element limit and no
 merging watermark. | 
PointQuadTree(int elementLimitPerQuad,
             int mergeWatermark,
             float x,
             float y,
             float width,
             float height)
Constructs a  
PointQuadTree with a specified element limit and
 watermark | 
PointQuadTree(PointQuadTree<T> parent,
             float x,
             float y,
             float width,
             float height)
Constructs a  
PointQuadTree as a child of another
 PointQuadTree | 
| Modifier and Type | Method and Description | 
|---|---|
boolean | 
add(T element)  | 
void | 
addAll(java.util.List<T> elementsToAdd)  | 
protected boolean | 
addElement(T element)  | 
protected boolean | 
addElementToChild(T element)  | 
void | 
clear()  | 
protected void | 
clearTotalElementsCache()  | 
void | 
debugRender(Graphics g)  | 
int | 
getElementLimitPerQuad()  | 
java.util.List<T> | 
getElements()  | 
void | 
getElements(java.util.List<T> result)  | 
void | 
getElementsContainingPoint(java.util.Collection<T> result,
                          Point point)  | 
java.util.List<T> | 
getElementsContainingPoint(Point point)  | 
void | 
getElementsIntersectingLineSegment(java.util.Collection<T> result,
                                  LineSegment lineSegment)  | 
java.util.List<T> | 
getElementsIntersectingLineSegment(LineSegment lineSegment)  | 
void | 
getElementsWithinArea(java.util.Collection<T> result,
                     Shape area)  | 
java.util.List<T> | 
getElementsWithinArea(Shape area)  | 
int | 
getMergeWatermark()  | 
QuadTree<T> | 
getParent()  | 
int | 
getTotalElements()  | 
int | 
getTotalQuads()  | 
boolean | 
hasChildQuads()  | 
protected boolean | 
isMergable()  | 
protected void | 
merge()  | 
void | 
positionChanged(T moved)  | 
boolean | 
remove(T element)  | 
void | 
removeAll(java.util.List<T> elementsToRemove)  | 
protected boolean | 
removeElement(T element)  | 
protected boolean | 
removeElementFromChild(T element)  | 
protected void | 
subdivide()  | 
contains, contains, contains, contains, contains, contains, copy, draw, edgeIterator, fill, getCenterX, getCenterY, getDistanceTo, getDistanceTo, getHeight, getMaxX, getMaxY, getMinX, getMinY, getNumberOfSides, getOriginX, getOriginY, getPolygon, getRotation, getVertices, getWidth, getX, getY, intersection, intersects, intersects, intersects, intersects, intersects, intersects, intersects, intersectsLineSegment, intersectsLineSegment, intersectsLineSegment, isCircle, lerp, rotate, rotateAround, set, set, set, set, setHeight, setRotation, setRotationAround, setRotationAround, setSize, setSize, setWidth, setX, setY, toString, translateintersectsclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcontains, contains, getHeight, getMaxX, getMaxY, getRotation, getWidth, getX, getY, intersects, intersects, intersectsLineSegment, rotate, rotateAround, setRotation, setRotationAroundpublic static com.badlogic.gdx.graphics.Color QUAD_COLOR
public static com.badlogic.gdx.graphics.Color ELEMENT_COLOR
protected PointQuadTree<T extends Positionable> parent
protected PointQuadTree<T extends Positionable> topLeft
protected PointQuadTree<T extends Positionable> topRight
protected PointQuadTree<T extends Positionable> bottomLeft
protected PointQuadTree<T extends Positionable> bottomRight
protected java.util.List<T extends Positionable> elements
protected final int elementLimitPerQuad
protected final int mergeWatermark
protected int totalElementsCache
public PointQuadTree(int elementLimitPerQuad,
             int mergeWatermark,
             float x,
             float y,
             float width,
             float height)
PointQuadTree with a specified element limit and
 watermarkelementLimitPerQuad - The maximum number of elements in a quad before it is split
            into 4 child PointQuadTreesmergeWatermark - When a parent PointQuadTree's total elements go lower
            than this mark, the child PointQuadTrees will be
            merged back togetherx - The x coordinate of the PointQuadTreey - The y coordiante of the PointQuadTreewidth - The width of the PointQuadTreeheight - The height of the PointQuadTreepublic PointQuadTree(int elementLimitPerQuad,
             float x,
             float y,
             float width,
             float height)
PointQuadTree with a specified element limit and no
 merging watermark. As elements are removed, small sized child
 PointQuadTrees will not be merged back together.elementLimitPerQuad - The maximum number of elements in a quad before it is split
            into 4 child PointQuadTreesx - The x coordinate of the PointQuadTreey - The y coordiante of the PointQuadTreewidth - The width of the PointQuadTreeheight - The height of the PointQuadTreepublic PointQuadTree(PointQuadTree<T> parent, float x, float y, float width, float height)
PointQuadTree as a child of another
 PointQuadTreeparent - The parent PointQuadTreex - The x coordinate of the PointQuadTreey - The y coordiante of the PointQuadTreewidth - The width of the PointQuadTreeheight - The height of the PointQuadTreepublic void debugRender(Graphics g)
debugRender in interface QuadTree<T extends Positionable>public void addAll(java.util.List<T> elementsToAdd)
addAll in interface QuadTree<T extends Positionable>public boolean add(T element)
add in interface QuadTree<T extends Positionable>protected boolean addElement(T element)
protected boolean addElementToChild(T element)
protected void subdivide()
protected boolean isMergable()
protected void merge()
public void removeAll(java.util.List<T> elementsToRemove)
removeAll in interface QuadTree<T extends Positionable>public boolean remove(T element)
remove in interface QuadTree<T extends Positionable>public void clear()
protected boolean removeElementFromChild(T element)
protected boolean removeElement(T element)
public java.util.List<T> getElementsWithinArea(Shape area)
getElementsWithinArea in interface QuadTree<T extends Positionable>public void getElementsWithinArea(java.util.Collection<T> result, Shape area)
getElementsWithinArea in interface QuadTree<T extends Positionable>public java.util.List<T> getElementsContainingPoint(Point point)
getElementsContainingPoint in interface QuadTree<T extends Positionable>public void getElementsContainingPoint(java.util.Collection<T> result, Point point)
getElementsContainingPoint in interface QuadTree<T extends Positionable>public java.util.List<T> getElementsIntersectingLineSegment(LineSegment lineSegment)
getElementsIntersectingLineSegment in interface QuadTree<T extends Positionable>public void getElementsIntersectingLineSegment(java.util.Collection<T> result, LineSegment lineSegment)
getElementsIntersectingLineSegment in interface QuadTree<T extends Positionable>public java.util.List<T> getElements()
getElements in interface QuadTree<T extends Positionable>public void getElements(java.util.List<T> result)
getElements in interface QuadTree<T extends Positionable>public int getTotalQuads()
getTotalQuads in interface QuadTree<T extends Positionable>public int getTotalElements()
getTotalElements in interface QuadTree<T extends Positionable>protected void clearTotalElementsCache()
public void positionChanged(T moved)
positionChanged in interface PositionChangeListener<T extends Positionable>public QuadTree<T> getParent()
getParent in interface QuadTree<T extends Positionable>public int getElementLimitPerQuad()
public int getMergeWatermark()
public boolean hasChildQuads()