public class ConcurrentRegionQuadTree<T extends CollisionShape> extends ConcurrentPointQuadTree<T>
bottomLeft, bottomRight, ELEMENT_COLOR, elementLimitPerQuad, elements, lock, mergeWatermark, minimumQuadHeight, minimumQuadWidth, parent, QUAD_COLOR, topLeft, topRight, totalElementsCache| Constructor and Description |
|---|
ConcurrentRegionQuadTree(ConcurrentRegionQuadTree<T> parent,
float x,
float y,
float width,
float height)
Constructs a
ConcurrentRegionQuadTree as a child of another
ConcurrentRegionQuadTree |
ConcurrentRegionQuadTree(float minimumQuadWidth,
float minimumQuadHeight,
int elementLimitPerQuad,
int mergeWatermark,
float x,
float y,
float width,
float height)
Constructs a
ConcurrentRegionQuadTree with a specified minimum
quad size, element limit and watermark |
ConcurrentRegionQuadTree(int elementLimit,
float x,
float y,
float width,
float height)
Constructs a
ConcurrentRegionQuadTree with a specified element
limit and no merging watermark. |
ConcurrentRegionQuadTree(int elementLimit,
int mergeWatermark,
float x,
float y,
float width,
float height)
Constructs a
ConcurrentRegionQuadTree with a specified element
limit and watermark |
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(T element) |
void |
addAll(java.util.List<T> elements) |
protected boolean |
addElement(T element) |
protected boolean |
addElementToChild(T element) |
void |
debugRender(Graphics g) |
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 |
getTotalElements() |
void |
positionChanged(T moved) |
boolean |
remove(T element) |
void |
removeAll(java.util.List<T> elementsToRemove) |
protected boolean |
removeElement(T element) |
protected void |
subdivide() |
clearTotalElementsCache, getElementLimitPerQuad, getMergeWatermark, getMinimumQuadHeight, getMinimumQuadWidth, getParent, getTotalQuads, isMergable, merge, removeElementFromChildcontains, contains, contains, contains, contains, contains, copy, draw, edgeIterator, fill, getCenterX, getCenterY, getDistanceTo, getDistanceTo, getHeight, getMaxX, getMaxY, getMinX, getMinY, getNumberOfSides, getPolygon, getRotation, getVertices, getWidth, getX, getY, intersection, intersects, intersects, intersects, intersects, intersects, intersects, intersects, intersectsLineSegment, intersectsLineSegment, intersectsLineSegment, isCircle, lerp, rotate, rotateAround, scale, set, set, set, set, setHeight, setRadius, setRotation, setRotationAround, setRotationAround, setSize, setSize, setWidth, setX, setY, toString, translateadd, intersects, subtractclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcontains, contains, getHeight, getMaxX, getMaxY, getRotation, getWidth, getX, getY, intersects, intersects, intersectsLineSegment, rotate, rotateAround, setRotation, setRotationAroundpublic ConcurrentRegionQuadTree(int elementLimit,
int mergeWatermark,
float x,
float y,
float width,
float height)
ConcurrentRegionQuadTree with a specified element
limit and watermarkelementLimit - The maximum number of elements in a
ConcurrentRegionQuadTree before it is split into 4
child quadsmergeWatermark - When a parent ConcurrentRegionQuadTree's total
elements go lower than this mark, the child
ConcurrentRegionQuadTrees will be merged back togetherx - The x coordinate of the ConcurrentRegionQuadTreey - The y coordiante of the ConcurrentRegionQuadTreewidth - The width of the ConcurrentRegionQuadTreeheight - The height of the ConcurrentRegionQuadTreepublic ConcurrentRegionQuadTree(int elementLimit,
float x,
float y,
float width,
float height)
ConcurrentRegionQuadTree with a specified element
limit and no merging watermark. As elements are removed, small sized
child ConcurrentRegionQuadTrees will not be merged back together.elementLimit - The maximum number of elements in a quad before it is split
into 4 child ConcurrentRegionQuadTreesx - The x coordinate of the ConcurrentRegionQuadTreey - The y coordiante of the ConcurrentRegionQuadTreewidth - The width of the ConcurrentRegionQuadTreeheight - The height of the ConcurrentRegionQuadTreepublic ConcurrentRegionQuadTree(ConcurrentRegionQuadTree<T> parent, float x, float y, float width, float height)
ConcurrentRegionQuadTree as a child of another
ConcurrentRegionQuadTreeparent - The parent ConcurrentRegionQuadTreex - The x coordinate of the ConcurrentRegionQuadTreey - The y coordiante of the ConcurrentRegionQuadTreewidth - The width of the ConcurrentRegionQuadTreeheight - The height of the ConcurrentRegionQuadTreepublic ConcurrentRegionQuadTree(float minimumQuadWidth,
float minimumQuadHeight,
int elementLimitPerQuad,
int mergeWatermark,
float x,
float y,
float width,
float height)
ConcurrentRegionQuadTree 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 ConcurrentRegionQuadTreesmergeWatermark - When a parent ConcurrentRegionQuadTree's total elements
go lower than this mark, the child
ConcurrentRegionQuadTrees will be merged back togetherx - The x coordinate of the ConcurrentRegionQuadTreey - The y coordiante of the ConcurrentRegionQuadTreewidth - The width of the ConcurrentRegionQuadTreeheight - The height of the ConcurrentRegionQuadTreepublic void debugRender(Graphics g)
debugRender in interface QuadTree<T extends CollisionShape>debugRender in class ConcurrentPointQuadTree<T extends CollisionShape>public void addAll(java.util.List<T> elements)
addAll in interface QuadTree<T extends CollisionShape>addAll in class ConcurrentPointQuadTree<T extends CollisionShape>public boolean add(T element)
add in interface QuadTree<T extends CollisionShape>add in class ConcurrentPointQuadTree<T extends CollisionShape>protected boolean addElement(T element)
addElement in class ConcurrentPointQuadTree<T extends CollisionShape>protected boolean addElementToChild(T element)
addElementToChild in class ConcurrentPointQuadTree<T extends CollisionShape>protected void subdivide()
subdivide in class ConcurrentPointQuadTree<T extends CollisionShape>public void removeAll(java.util.List<T> elementsToRemove)
removeAll in interface QuadTree<T extends CollisionShape>removeAll in class ConcurrentPointQuadTree<T extends CollisionShape>public boolean remove(T element)
remove in interface QuadTree<T extends CollisionShape>remove in class ConcurrentPointQuadTree<T extends CollisionShape>protected boolean removeElement(T element)
removeElement in class ConcurrentPointQuadTree<T extends CollisionShape>public java.util.List<T> getElementsWithinArea(Shape area)
getElementsWithinArea in interface QuadTree<T extends CollisionShape>getElementsWithinArea in class ConcurrentPointQuadTree<T extends CollisionShape>public void getElementsWithinArea(java.util.Collection<T> result, Shape area)
getElementsWithinArea in interface QuadTree<T extends CollisionShape>getElementsWithinArea in class ConcurrentPointQuadTree<T extends CollisionShape>public java.util.List<T> getElementsContainingPoint(Point point)
getElementsContainingPoint in interface QuadTree<T extends CollisionShape>getElementsContainingPoint in class ConcurrentPointQuadTree<T extends CollisionShape>public void getElementsContainingPoint(java.util.Collection<T> result, Point point)
getElementsContainingPoint in interface QuadTree<T extends CollisionShape>getElementsContainingPoint in class ConcurrentPointQuadTree<T extends CollisionShape>public java.util.List<T> getElementsIntersectingLineSegment(LineSegment lineSegment)
getElementsIntersectingLineSegment in interface QuadTree<T extends CollisionShape>getElementsIntersectingLineSegment in class ConcurrentPointQuadTree<T extends CollisionShape>public void getElementsIntersectingLineSegment(java.util.Collection<T> result, LineSegment lineSegment)
getElementsIntersectingLineSegment in interface QuadTree<T extends CollisionShape>getElementsIntersectingLineSegment in class ConcurrentPointQuadTree<T extends CollisionShape>public java.util.List<T> getElements()
getElements in interface QuadTree<T extends CollisionShape>getElements in class ConcurrentPointQuadTree<T extends CollisionShape>public void getElements(java.util.List<T> result)
getElements in interface QuadTree<T extends CollisionShape>getElements in class ConcurrentPointQuadTree<T extends CollisionShape>public int getTotalElements()
getTotalElements in interface QuadTree<T extends CollisionShape>getTotalElements in class ConcurrentPointQuadTree<T extends CollisionShape>public void positionChanged(T moved)
positionChanged in interface PositionChangeListener<T extends CollisionShape>positionChanged in class ConcurrentPointQuadTree<T extends CollisionShape>