Class OctreeNode<T>
- Namespace
- NeoVeldrid.Utilities
- Assembly
- NeoVeldrid.Utilities.dll
public class OctreeNode<T>
Type Parameters
T
- Inheritance
-
OctreeNode<T>
- Inherited Members
Constructors
OctreeNode(BoundingBox, int)
public OctreeNode(BoundingBox box, int maxChildren)
Parameters
boxBoundingBoxmaxChildrenint
Properties
Bounds
public BoundingBox Bounds { get; set; }
Property Value
Children
public OctreeNode<T>[] Children { get; }
Property Value
- OctreeNode<T>[]
MaxChildren
public int MaxChildren { get; }
Property Value
Parent
public OctreeNode<T> Parent { get; }
Property Value
- OctreeNode<T>
Methods
AddItem(BoundingBox, T)
public OctreeNode<T> AddItem(BoundingBox itemBounds, T item)
Parameters
itemBoundsBoundingBoxitemT
Returns
- OctreeNode<T>
AddItem(BoundingBox, T, out OctreeItem<T>)
public OctreeNode<T> AddItem(BoundingBox itemBounds, T item, out OctreeItem<T> itemContainer)
Parameters
itemBoundsBoundingBoxitemTitemContainerOctreeItem<T>
Returns
- OctreeNode<T>
AddItem(ref BoundingBox, T)
public OctreeNode<T> AddItem(ref BoundingBox itemBounds, T item)
Parameters
itemBoundsBoundingBoxitemT
Returns
- OctreeNode<T>
AddItem(ref BoundingBox, T, out OctreeItem<T>)
public OctreeNode<T> AddItem(ref BoundingBox itemBounds, T item, out OctreeItem<T> octreeItem)
Parameters
itemBoundsBoundingBoxitemToctreeItemOctreeItem<T>
Returns
- OctreeNode<T>
Clear()
public void Clear()
CreateNewTree(ref BoundingBox, int)
public static OctreeNode<T> CreateNewTree(ref BoundingBox bounds, int maxChildren)
Parameters
boundsBoundingBoxmaxChildrenint
Returns
- OctreeNode<T>
GetAllContainedObjects(List<T>)
public void GetAllContainedObjects(List<T> results)
Parameters
resultsList<T>
GetAllContainedObjects(List<T>, Func<T, bool>)
public void GetAllContainedObjects(List<T> results, Func<T, bool> filter)
Parameters
GetAllOctreeItems()
public IEnumerable<OctreeItem<T>> GetAllOctreeItems()
Returns
GetContainedObjects(BoundingFrustum, List<T>)
public void GetContainedObjects(BoundingFrustum frustum, List<T> results)
Parameters
frustumBoundingFrustumresultsList<T>
GetContainedObjects(ref BoundingFrustum, List<T>)
public void GetContainedObjects(ref BoundingFrustum frustum, List<T> results)
Parameters
frustumBoundingFrustumresultsList<T>
GetContainedObjects(ref BoundingFrustum, List<T>, Func<T, bool>)
public void GetContainedObjects(ref BoundingFrustum frustum, List<T> results, Func<T, bool> filter)
Parameters
frustumBoundingFrustumresultsList<T>filterFunc<T, bool>
GetItemCount()
public int GetItemCount()
Returns
GetPreciseBounds()
public BoundingBox GetPreciseBounds()
Returns
MarkItemAsMoved(OctreeItem<T>, BoundingBox)
Mark an item as having moved, but do not alter the octree structure. Call ApplyPendingMoves() to update the octree structure.
public void MarkItemAsMoved(OctreeItem<T> octreeItem, BoundingBox newBounds)
Parameters
octreeItemOctreeItem<T>newBoundsBoundingBox
MoveContainedItem(OctreeItem<T>, BoundingBox)
Move a contained OctreeItem. If the root OctreeNode needs to be resized, the new root node is returned.
public OctreeNode<T> MoveContainedItem(OctreeItem<T> item, BoundingBox newBounds)
Parameters
itemOctreeItem<T>newBoundsBoundingBox
Returns
- OctreeNode<T>
RayCast(Ray, List<RayCastHit<T>>, RayCastFilter<T>)
public int RayCast(Ray ray, List<RayCastHit<T>> hits, RayCastFilter<T> filter)
Parameters
rayRayhitsList<RayCastHit<T>>filterRayCastFilter<T>
Returns
RemoveItem(OctreeItem<T>)
public void RemoveItem(OctreeItem<T> octreeItem)
Parameters
octreeItemOctreeItem<T>