T - The precise type of tree objectspublic final class OctTreeL<T> extends Object implements OctTreeLType<T>
OctTreeLType interface.| Modifier and Type | Class and Description |
|---|---|
protected class |
OctTreeL.Octant |
| Modifier and Type | Method and Description |
|---|---|
com.io7m.jregions.core.unparameterized.volumes.VolumeL |
bounds() |
void |
clear()
Remove all objects from the tree.
|
void |
containedBy(com.io7m.jregions.core.unparameterized.volumes.VolumeL volume,
Set<T> items)
Returns all objects in the tree that are completely contained within
volume, saving the results to items. |
boolean |
contains(T item)
Determine whether or not the object has already been inserted into the
tree.
|
static <T> OctTreeLType<T> |
create(OctTreeConfigurationL config)
Create a new empty tree with the given bounds.
|
boolean |
equals(Object o) |
int |
hashCode() |
boolean |
insert(T item,
com.io7m.jregions.core.unparameterized.volumes.VolumeL item_bounds)
Insert the object
item into the octtree. |
<C> void |
iterateOctants(C context,
OctTreeOctantIterationLType<T,C> f)
Iterate over all octants within the tree.
|
<U> OctTreeLType<U> |
map(BiFunction<T,com.io7m.jregions.core.unparameterized.volumes.VolumeL,U> f)
Apply
f to each element of the tree. |
void |
overlappedBy(com.io7m.jregions.core.unparameterized.volumes.VolumeL volume,
Set<T> items)
Returns all objects in the tree that are overlapped
volume, saving the results to items. |
void |
raycast(Ray3D ray,
SortedSet<OctTreeRaycastResultL<T>> items)
Returns all objects that are intersected by the given ray.
|
boolean |
remove(T item)
Remove the object
item from the octtree. |
long |
size() |
void |
trim()
Trim all empty quadrants from the tree.
|
com.io7m.jregions.core.unparameterized.volumes.VolumeL |
volumeFor(T item) |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitisEmptypublic static <T> OctTreeLType<T> create(OctTreeConfigurationL config)
T - The type of objects contained within the treeconfig - The tree configurationpublic void trim()
OctTreeLTypetrim in interface OctTreeLType<T>public long size()
size in interface OctTreeReadableTypepublic com.io7m.jregions.core.unparameterized.volumes.VolumeL bounds()
bounds in interface OctTreeReadableLType<T>public boolean insert(T item, com.io7m.jregions.core.unparameterized.volumes.VolumeL item_bounds)
OctTreeLTypeInsert the object item into the octtree.
The function returns false if the object could not be
inserted for any reason (perhaps due to being too large).
If the object is already in the tree, it is replaced. This can be used to update the bounds of an object within the tree.
insert in interface OctTreeLType<T>item - The object to insertitem_bounds - The object's boundstrue if the object was insertedpublic boolean contains(T item)
OctTreeReadableLTypecontains in interface OctTreeReadableLType<T>item - The objecttrue iff the object is in the treepublic boolean remove(T item)
OctTreeLTypeRemove the object item from the octtree.
The function returns false if the object could not be
removed for any reason (perhaps due to not being in the tree in the first
place).
remove in interface OctTreeLType<T>item - The object to removetrue if the object was removedpublic void clear()
OctTreeLTypeclear in interface OctTreeLType<T>public <U> OctTreeLType<U> map(BiFunction<T,com.io7m.jregions.core.unparameterized.volumes.VolumeL,U> f)
OctTreeLTypef to each element of the tree.map in interface OctTreeLType<T>map in interface OctTreeReadableLType<T>U - The type of result elementsf - A mapping functionpublic <C> void iterateOctants(C context,
OctTreeOctantIterationLType<T,C> f)
OctTreeReadableLTypeiterateOctants in interface OctTreeReadableLType<T>C - The type of context valuescontext - A contextual value passed to ff - An iteration functionpublic com.io7m.jregions.core.unparameterized.volumes.VolumeL volumeFor(T item)
volumeFor in interface OctTreeReadableLType<T>item - The itemitempublic void containedBy(com.io7m.jregions.core.unparameterized.volumes.VolumeL volume,
Set<T> items)
OctTreeReadableLTypevolume, saving the results to items.containedBy in interface OctTreeReadableLType<T>volume - The volume to examineitems - The returned itemspublic void overlappedBy(com.io7m.jregions.core.unparameterized.volumes.VolumeL volume,
Set<T> items)
OctTreeReadableLTypevolume, saving the results to items.overlappedBy in interface OctTreeReadableLType<T>volume - The volume to examineitems - The returned itemspublic void raycast(Ray3D ray, SortedSet<OctTreeRaycastResultL<T>> items)
OctTreeReadableLTyperaycast in interface OctTreeReadableLType<T>ray - The rayitems - The intersected itemsCopyright © 2017 <code@io7m.com> http://io7m.com