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, totalElementsCache
geometry, 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 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) |
org.mini2Dx.gdx.utils.Array<T> |
getElementsContainingPoint(Point point) |
void |
getElementsIntersectingLineSegment(org.mini2Dx.gdx.utils.Array<T> result,
LineSegment lineSegment) |
org.mini2Dx.gdx.utils.Array<T> |
getElementsIntersectingLineSegment(LineSegment lineSegment) |
void |
getElementsWithinArea(org.mini2Dx.gdx.utils.Array<T> result,
Shape area) |
org.mini2Dx.gdx.utils.Array<T> |
getElementsWithinArea(Shape area) |
int |
getTotalElements() |
void |
positionChanged(T moved) |
boolean |
remove(T element)
Removes an element from this
QuadTree |
protected void |
subdivide() |
addElement, clearTotalElementsCache, getElementLimitPerQuad, getMergeWatermark, getMinimumQuadHeight, getMinimumQuadWidth, getParent, getTotalQuads, hasChildQuads, isMergable, merge, removeAll, removeElement, removeElementFromChild
contains, 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, translate
add, 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, subtract
public 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 RegionQuadTree
s will be
merged back togetherx
- The x coordinate of the RegionQuadTree
y
- The y coordiante of the RegionQuadTree
width
- The width of the RegionQuadTree
height
- The height of the RegionQuadTree
public 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
RegionQuadTree
s will not be merged back together.elementLimit
- The maximum number of elements in a quad before it is split
into 4 child RegionQuadTree
sx
- The x coordinate of the RegionQuadTree
y
- The y coordiante of the RegionQuadTree
width
- The width of the RegionQuadTree
height
- The height of the RegionQuadTree
public RegionQuadTree(RegionQuadTree<T> parent, float x, float y, float width, float height)
RegionQuadTree
as a child of another
RegionQuadTree
parent
- The parent RegionQuadTree
x
- The x coordinate of the RegionQuadTree
y
- The y coordiante of the RegionQuadTree
width
- The width of the RegionQuadTree
height
- The height of the RegionQuadTree
public 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 RegionQuadTree
smergeWatermark
- When a parent RegionQuadTree
's total elements go lower
than this mark, the child PointQuadTree
s will be
merged back togetherx
- The x coordinate of the RegionQuadTree
y
- The y coordiante of the RegionQuadTree
width
- The width of the RegionQuadTree
height
- The height of the RegionQuadTree
public 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)
QuadTree
QuadTree
. Note that if an element exists outside of this QuadTree's bounds, it will not be addedpublic boolean add(T element)
QuadTree
QuadTree
protected 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)
QuadTree
QuadTree
public void clear()
QuadTree
QuadTree.removeAll(Array)
except the results are not storedpublic org.mini2Dx.gdx.utils.Array<T> getElementsWithinArea(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)
getElementsWithinArea
in interface QuadTree<T extends Sizeable>
getElementsWithinArea
in class PointQuadTree<T extends Sizeable>
public org.mini2Dx.gdx.utils.Array<T> getElementsContainingPoint(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)
getElementsContainingPoint
in interface QuadTree<T extends Sizeable>
getElementsContainingPoint
in class PointQuadTree<T extends Sizeable>
public org.mini2Dx.gdx.utils.Array<T> getElementsIntersectingLineSegment(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)
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>