Table of Contents

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

box BoundingBox
maxChildren int

Properties

Bounds

public BoundingBox Bounds { get; set; }

Property Value

BoundingBox

Children

public OctreeNode<T>[] Children { get; }

Property Value

OctreeNode<T>[]

MaxChildren

public int MaxChildren { get; }

Property Value

int

Parent

public OctreeNode<T> Parent { get; }

Property Value

OctreeNode<T>

Methods

AddItem(BoundingBox, T)

public OctreeNode<T> AddItem(BoundingBox itemBounds, T item)

Parameters

itemBounds BoundingBox
item T

Returns

OctreeNode<T>

AddItem(BoundingBox, T, out OctreeItem<T>)

public OctreeNode<T> AddItem(BoundingBox itemBounds, T item, out OctreeItem<T> itemContainer)

Parameters

itemBounds BoundingBox
item T
itemContainer OctreeItem<T>

Returns

OctreeNode<T>

AddItem(ref BoundingBox, T)

public OctreeNode<T> AddItem(ref BoundingBox itemBounds, T item)

Parameters

itemBounds BoundingBox
item T

Returns

OctreeNode<T>

AddItem(ref BoundingBox, T, out OctreeItem<T>)

public OctreeNode<T> AddItem(ref BoundingBox itemBounds, T item, out OctreeItem<T> octreeItem)

Parameters

itemBounds BoundingBox
item T
octreeItem OctreeItem<T>

Returns

OctreeNode<T>

Clear()

public void Clear()

CreateNewTree(ref BoundingBox, int)

public static OctreeNode<T> CreateNewTree(ref BoundingBox bounds, int maxChildren)

Parameters

bounds BoundingBox
maxChildren int

Returns

OctreeNode<T>

GetAllContainedObjects(List<T>)

public void GetAllContainedObjects(List<T> results)

Parameters

results List<T>

GetAllContainedObjects(List<T>, Func<T, bool>)

public void GetAllContainedObjects(List<T> results, Func<T, bool> filter)

Parameters

results List<T>
filter Func<T, bool>

GetAllOctreeItems()

public IEnumerable<OctreeItem<T>> GetAllOctreeItems()

Returns

IEnumerable<OctreeItem<T>>

GetContainedObjects(BoundingFrustum, List<T>)

public void GetContainedObjects(BoundingFrustum frustum, List<T> results)

Parameters

frustum BoundingFrustum
results List<T>

GetContainedObjects(ref BoundingFrustum, List<T>)

public void GetContainedObjects(ref BoundingFrustum frustum, List<T> results)

Parameters

frustum BoundingFrustum
results List<T>

GetContainedObjects(ref BoundingFrustum, List<T>, Func<T, bool>)

public void GetContainedObjects(ref BoundingFrustum frustum, List<T> results, Func<T, bool> filter)

Parameters

frustum BoundingFrustum
results List<T>
filter Func<T, bool>

GetItemCount()

public int GetItemCount()

Returns

int

GetPreciseBounds()

public BoundingBox GetPreciseBounds()

Returns

BoundingBox

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

octreeItem OctreeItem<T>
newBounds BoundingBox

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

item OctreeItem<T>
newBounds BoundingBox

Returns

OctreeNode<T>

RayCast(Ray, List<RayCastHit<T>>, RayCastFilter<T>)

public int RayCast(Ray ray, List<RayCastHit<T>> hits, RayCastFilter<T> filter)

Parameters

ray Ray
hits List<RayCastHit<T>>
filter RayCastFilter<T>

Returns

int

RemoveItem(OctreeItem<T>)

public void RemoveItem(OctreeItem<T> octreeItem)

Parameters

octreeItem OctreeItem<T>