Skip to content
This repository was archived by the owner on Dec 13, 2025. It is now read-only.

VRageMath.MyDynamicAABBTree

Morten Aune Lyrstad edited this page Apr 16, 2022 · 54 revisions

IndexNamespace Index

MyDynamicAABBTree Class

public class MyDynamicAABBTree

Dynamic aabb tree implementation as a prunning structure

Namespace: VRageMath
Assembly: VRage.Math.dll

Fields

Member Description
static int NullNode A dynamic tree arranges data in a binary tree to accelerate queries such as volume queries and ray casts. Leafs are proxies with an BoundingBox. In the tree we expand the proxy BoundingBox by Settings.b2_fatAABBFactor so that the proxy BoundingBox is bigger than the client object. This allows the client object to move by small amounts without triggering a tree update. Nodes are pooled and relocatable, so we use node indices rather than pointers.

Properties

Member Description
DictionaryValuesReader<System.Int32, VRageMath.MyDynamicAABBTree+DynamicTreeNode> Leaves { get; }
ReadOnlySpan<VRageMath.MyDynamicAABBTree+DynamicTreeNode> Nodes { get; }

Constructors

Member Description
MyDynamicAABBTree()
MyDynamicAABBTree(Vector3, [float])

Methods

Member Description
static void Dispose()
int AddProxy(ref BoundingBox, object, uint, [bool]) Create a proxy. Provide a tight fitting BoundingBox and a userData pointer.
int Balance(int)
void Clear()
int CountLeaves(int)
BoundingBox GetAabb(int)
void GetAll(List, bool, [List<VRageMath.BoundingBox>])
void GetAllNodeBounds(List<VRageMath.BoundingBox>)
void GetChildren(int, out int, out int)
void GetFatAABB(int, out BoundingBox) Get the fat BoundingBox for a proxy.
int GetHeight()
int GetLeafCount()
int GetLeafCount(int)
void GetNodeLeaves(int, List<System.Int32>)
int GetRoot()
T GetUserData(int)
bool MoveProxy(int, ref BoundingBox, Vector3) Move a proxy with a swepted BoundingBox. If the proxy has moved outside of its fattened BoundingBox, then the proxy is removed from the tree and re-inserted. Otherwise the function returns immediately.
void OverlapAllBoundingBox(ref BoundingBox, List, [uint], [bool])
void OverlapAllBoundingSphere(ref BoundingSphere, List, [bool])
void OverlapAllFrustum(ref BoundingFrustum, List, [bool])
void OverlapAllFrustum(ref BoundingFrustum, List, uint, [bool])
void OverlapAllFrustum(ref BoundingFrustum, List, List<System.Boolean>, [bool])
void OverlapAllFrustum(ref BoundingFrustum, Action<T, System.Boolean>)
void OverlapAllFrustum(ref BoundingFrustum, ref Op)
void OverlapAllFrustum(ref BoundingFrustum, List, List<System.Boolean>, float, [bool])
void OverlapAllFrustum(ref BoundingFrustum, Action<T, System.Boolean>, float)
void OverlapAllFrustum(ref BoundingFrustum, float, ref Op)
void OverlapAllFrustumAny(ref BoundingFrustum, List, [bool])
void OverlapAllFrustumConservative(ref BoundingFrustum, List, uint, [bool])
void OverlapAllLineSegment(ref Line, List<>)
void OverlapAllLineSegment(ref Line, List<>, uint)
bool OverlapsAnyLeafBoundingBox(ref BoundingBox)
void OverlapSizeableClusters(ref BoundingBox, List<VRageMath.BoundingBox>, double)
void Query(Func<System.Int32, System.Boolean>, ref BoundingBox)
void RemoveProxy(int) Destroy a proxy. This asserts if the id is invalid.

Clone this wiki locally