public class RegionQuadTree<T extends Sizeable> extends PointQuadTree<T>
bottomLeft, bottomRight, DEFAULT_MINIMUM_QUAD_SIZE, ELEMENT_COLOR, elementLimitPerQuad, elements, mergeWatermark, minimumQuadHeight, minimumQuadWidth, parent, QUAD_COLOR, topLeft, topRight, totalElementsCachegeometry, positionChangeListeners, sizeChangeListeners| Constructor and Description |
|---|
RegionQuadTree(float minimumQuadWidth,
float minimumQuadHeight,
int elementLimitPerQuad,
int mergeWatermark,
float x,
float y,
float width,
float height)
Constructs a
RegionQuadTree with a specified minimum quad size,
element limit and watermark |
RegionQuadTree(int elementLimit,
float x,
float y,
float width,
float height)
Constructs a
RegionQuadTree with a specified element limit and no
merging watermark. |
RegionQuadTree(int elementLimit,
int mergeWatermark,
float x,
float y,
float width,
float height)
Constructs a
RegionQuadTree with a specified element limit and
watermark |
RegionQuadTree(RegionQuadTree<T> parent,
float x,
float y,
float width,
float height)
Constructs a
RegionQuadTree as a child of another
RegionQuadTree |
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(T element)
Adds an element to this
QuadTree |
void |
addAll(org.mini2Dx.gdx.utils.Array<T> elementsToAdd)
Adds all element to this
QuadTree. |
protected void |
addElementsContainingPoint(org.mini2Dx.gdx.utils.Array<T> result,
Point point) |
protected void |
addElementsIntersectingLineSegment(org.mini2Dx.gdx.utils.Array<T> result,
LineSegment lineSegment) |
protected void |
addElementsWithinArea(org.mini2Dx.gdx.utils.Array<T> result,
Shape area) |
protected boolean |
addElementToChild(T element) |
void |
clear()
Same a
QuadTree.removeAll(Array) except the results are not stored |
void |
debugRender(Graphics g) |
org.mini2Dx.gdx.utils.Array<T> |
getElements() |
void |
getElements(org.mini2Dx.gdx.utils.Array<T> result) |
void |
getElementsContainingPoint(org.mini2Dx.gdx.utils.Array<T> result,
Point point) |
void |
getElementsContainingPoint(org.mini2Dx.gdx.utils.Array<T> result,
Point point,
QuadTreeSearchDirection searchDirection) |
void |
getElementsIntersectingLineSegment(org.mini2Dx.gdx.utils.Array<T> result,
LineSegment lineSegment) |
void |
getElementsIntersectingLineSegment(org.mini2Dx.gdx.utils.Array<T> result,
LineSegment lineSegment,
QuadTreeSearchDirection searchDirection) |
void |
getElementsWithinArea(org.mini2Dx.gdx.utils.Array<T> result,
Shape area) |
void |
getElementsWithinArea(org.mini2Dx.gdx.utils.Array<T> result,
Shape area,
QuadTreeSearchDirection searchDirection) |
int |
getTotalElements() |
void |
positionChanged(T moved) |
boolean |
remove(T element)
Removes an element from this
QuadTree |
protected void |
subdivide() |
addElement, clearTotalElementsCache, getElementLimitPerQuad, getElementsContainingPoint, getElementsContainingPoint, getElementsIntersectingLineSegment, getElementsIntersectingLineSegment, getElementsWithinArea, getElementsWithinArea, getMergeWatermark, getMinimumQuadHeight, getMinimumQuadWidth, getParent, getTotalQuads, hasChildQuads, intersects, isMergable, merge, removeAll, removeElement, removeElementFromChildcontains, contains, contains, contains, contains, copy, dispose, draw, edgeIterator, equals, fill, getCenterX, getCenterY, getDistanceTo, getHeight, getMaxX, getMaxY, getMinX, getMinY, getNumberOfSides, getPolygon, getRotation, getVertices, getWidth, getX, getY, hashCode, intersection, intersects, intersects, intersects, intersects, intersects, intersects, intersectsLineSegment, intersectsLineSegment, isCircle, lerp, rotate, rotateAround, scale, set, set, setCenter, setCenterX, setCenterY, setHeight, setRadius, setRotation, setRotationAround, setSize, setSize, setWidth, setX, setXY, setXY, setY, toString, translateadd, addPostionChangeListener, addSizeChangeListener, clearPositionChangeListeners, clearPositionListeners, clearPositionListeners, clearSizeChangeListeners, clearSizeListeners, clearSizeListeners, getDistanceTo, intersects, moveTowards, moveTowards, notifyPositionChangeListeners, notifyPositionListeners, notifyPositionListeners, notifySizeChangeListeners, notifySizeListeners, notifySizeListeners, removePositionChangeListener, removePositionListener, removePositionListener, removeSizeChangeListener, removeSizeListener, removeSizeListener, setRotationAround, subtractpublic RegionQuadTree(int elementLimit,
int mergeWatermark,
float x,
float y,
float width,
float height)
RegionQuadTree with a specified element limit and
watermarkelementLimit - The maximum number of elements in a RegionQuadTree
before it is split into 4 child quadsmergeWatermark - When a parent RegionQuadTree's total elements go lower
than this mark, the child RegionQuadTrees will be
merged back togetherx - The x coordinate of the RegionQuadTreey - The y coordiante of the RegionQuadTreewidth - The width of the RegionQuadTreeheight - The height of the RegionQuadTreepublic RegionQuadTree(int elementLimit,
float x,
float y,
float width,
float height)
RegionQuadTree with a specified element limit and no
merging watermark. As elements are removed, small sized child
RegionQuadTrees will not be merged back together.elementLimit - The maximum number of elements in a quad before it is split
into 4 child RegionQuadTreesx - The x coordinate of the RegionQuadTreey - The y coordiante of the RegionQuadTreewidth - The width of the RegionQuadTreeheight - The height of the RegionQuadTreepublic RegionQuadTree(RegionQuadTree<T> parent, float x, float y, float width, float height)
RegionQuadTree as a child of another
RegionQuadTreeparent - The parent RegionQuadTreex - The x coordinate of the RegionQuadTreey - The y coordiante of the RegionQuadTreewidth - The width of the RegionQuadTreeheight - The height of the RegionQuadTreepublic RegionQuadTree(float minimumQuadWidth,
float minimumQuadHeight,
int elementLimitPerQuad,
int mergeWatermark,
float x,
float y,
float width,
float height)
RegionQuadTree with a specified minimum quad size,
element limit and watermarkminimumQuadWidth - The minimum width of quads. Quads will not subdivide smaller
than this width.minimumQuadHeight - The minimum height of quads. Quads will not subdivide smaller
than this height.elementLimitPerQuad - The maximum number of elements in a quad before it is split
into 4 child RegionQuadTreesmergeWatermark - When a parent RegionQuadTree's total elements go lower
than this mark, the child PointQuadTrees will be
merged back togetherx - The x coordinate of the RegionQuadTreey - The y coordiante of the RegionQuadTreewidth - The width of the RegionQuadTreeheight - The height of the RegionQuadTreepublic void debugRender(Graphics g)
debugRender in interface QuadTree<T extends Sizeable>debugRender in class PointQuadTree<T extends Sizeable>public void addAll(org.mini2Dx.gdx.utils.Array<T> elementsToAdd)
QuadTreeQuadTree. Note that if an element exists outside of this QuadTree's bounds, it will not be addedpublic boolean add(T element)
QuadTreeQuadTreeprotected boolean addElementToChild(T element)
addElementToChild in class PointQuadTree<T extends Sizeable>protected void subdivide()
subdivide in class PointQuadTree<T extends Sizeable>public boolean remove(T element)
QuadTreeQuadTreepublic void clear()
QuadTreeQuadTree.removeAll(Array) except the results are not storedprotected void addElementsWithinArea(org.mini2Dx.gdx.utils.Array<T> result, Shape area)
addElementsWithinArea in class PointQuadTree<T extends Sizeable>public void getElementsWithinArea(org.mini2Dx.gdx.utils.Array<T> result, Shape area)
getElementsWithinArea in interface QuadTree<T extends Sizeable>getElementsWithinArea in class PointQuadTree<T extends Sizeable>public void getElementsWithinArea(org.mini2Dx.gdx.utils.Array<T> result, Shape area, QuadTreeSearchDirection searchDirection)
getElementsWithinArea in interface QuadTree<T extends Sizeable>getElementsWithinArea in class PointQuadTree<T extends Sizeable>protected void addElementsContainingPoint(org.mini2Dx.gdx.utils.Array<T> result, Point point)
addElementsContainingPoint in class PointQuadTree<T extends Sizeable>public void getElementsContainingPoint(org.mini2Dx.gdx.utils.Array<T> result, Point point)
getElementsContainingPoint in interface QuadTree<T extends Sizeable>getElementsContainingPoint in class PointQuadTree<T extends Sizeable>public void getElementsContainingPoint(org.mini2Dx.gdx.utils.Array<T> result, Point point, QuadTreeSearchDirection searchDirection)
getElementsContainingPoint in interface QuadTree<T extends Sizeable>getElementsContainingPoint in class PointQuadTree<T extends Sizeable>protected void addElementsIntersectingLineSegment(org.mini2Dx.gdx.utils.Array<T> result, LineSegment lineSegment)
addElementsIntersectingLineSegment in class PointQuadTree<T extends Sizeable>public void getElementsIntersectingLineSegment(org.mini2Dx.gdx.utils.Array<T> result, LineSegment lineSegment)
getElementsIntersectingLineSegment in interface QuadTree<T extends Sizeable>getElementsIntersectingLineSegment in class PointQuadTree<T extends Sizeable>public void getElementsIntersectingLineSegment(org.mini2Dx.gdx.utils.Array<T> result, LineSegment lineSegment, QuadTreeSearchDirection searchDirection)
getElementsIntersectingLineSegment in interface QuadTree<T extends Sizeable>getElementsIntersectingLineSegment in class PointQuadTree<T extends Sizeable>public org.mini2Dx.gdx.utils.Array<T> getElements()
getElements in interface QuadTree<T extends Sizeable>getElements in class PointQuadTree<T extends Sizeable>public void getElements(org.mini2Dx.gdx.utils.Array<T> result)
getElements in interface QuadTree<T extends Sizeable>getElements in class PointQuadTree<T extends Sizeable>public int getTotalElements()
getTotalElements in interface QuadTree<T extends Sizeable>getTotalElements in class PointQuadTree<T extends Sizeable>public void positionChanged(T moved)
positionChanged in interface PositionChangeListener<T extends Sizeable>positionChanged in class PointQuadTree<T extends Sizeable>