Maven module :un.api : api-geometry :
Class :
un.api.geometry.index.quadtrees.QuadTreeSDBasic
Extends/Implements :
un.api.geometry.index.quadtrees.QuadTreeSDType
Subclasses : -
Variables : -
Functions :
newQuadTree,
quadTreeClear,
quadTreeGetPositionX,
quadTreeGetPositionY,
quadTreeGetSizeX,
quadTreeGetSizeY,
quadTreeInsert,
quadTreeInsertSD,
quadTreeIterateObjects,
quadTreeQueryAreaContaining,
quadTreeQueryAreaOverlapping,
quadTreeQueryRaycast,
quadTreeQueryRaycastQuadrants,
quadTreeRemove,
quadTreeSDClearDynamic,
quadTreeTraverse,
toString
public QuadTreeSDType
newQuadTree (Vector size, Vector position)
public void
quadTreeClear ()
public double
quadTreeGetPositionX ()
public double
quadTreeGetPositionY ()
public double
quadTreeGetSizeX ()
public double
quadTreeGetSizeY ()
public boolean
quadTreeInsert (T item)
public boolean
quadTreeInsertSD (T item, SDType type)
public void
quadTreeIterateObjects (Predicate f)
public void
quadTreeQueryAreaContaining (BBox area, SortedSet items)
public void
quadTreeQueryAreaOverlapping (BBox area, SortedSet items)
public void
quadTreeQueryRaycast (Ray ray, SortedSet> items)
public void
quadTreeQueryRaycastQuadrants (Ray ray, SortedSet> items)
public boolean
quadTreeRemove (T item)
public void
quadTreeSDClearDynamic ()
public void
quadTreeTraverse (QuadTreeTraversalType traversal)
public String
toString ()
A quadtree implementation based on {@link QuadTreeBasic}, but extended with
the concept of static/dynamic categorization for inserted objects.
As mentioned in {@link QuadTreeBasic}, many games/simulations populate a
quadtree once per frame with all of the objects in a scene. As many of
these objects are immovable, they are inserted into the exact same place in
the tree every frame, which is wasteful and redundant.
This implementation essentially allows the programmer to insert all
immovable objects into the tree once and then simply remove and replace the
movable objects once per frame, saving much CPU time.
@param
@author Mark Raynsford