Maven module :un.api : api-geometry :
Class : un.api.geometry.index.quadtrees.QuadTreeSDBasic
Extends/Implements : un.api.geometry.index.quadtrees.QuadTreeSDType
Subclasses : -


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 The type of objects contained within the tree.
@author Mark Raynsford


Variables : -
Functions : newQuadTree, quadTreeClear, quadTreeGetPositionX, quadTreeGetPositionY, quadTreeGetSizeX, quadTreeGetSizeY, quadTreeInsert, quadTreeInsertSD, quadTreeIterateObjects, quadTreeQueryAreaContaining, quadTreeQueryAreaOverlapping, quadTreeQueryRaycast, quadTreeQueryRaycastQuadrants, quadTreeRemove, quadTreeSDClearDynamic, quadTreeTraverse, toString




Construct a new quadtree with the given size and position.
param  size
The size.
param  position
The position.
return  A new quadtree.
param  
The precise type of quadtree members.
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 ()