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

VRageMath.MyDynamicAABBTreeD

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

IndexNamespace Index

MyDynamicAABBTreeD Class

public class MyDynamicAABBTreeD

Dynamic aabb tree implementation as a prunning structure

Namespace: VRageMath
Assembly: VRage.Math.dll

Fields

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

int ElementsCount { get; }

Constructors

MyDynamicAABBTreeD()

MyDynamicAABBTreeD(Vector3D, double = 1)

Methods

static void Dispose()

int AddProxy(ref BoundingBoxD, object, uint, bool = default)

Create a proxy. Provide a tight fitting BoundingBox and a userData pointer.

int Balance(int)

void Clear()

int CountLeaves(int)

BoundingBoxD GetAabb(int)

void GetAll<T>(List<T>, bool, List<BoundingBoxD> = null)

void GetAll<T>(Action<T>)

void GetAll<T>(Action<T, BoundingBoxD>)

void GetAllNodeBounds(List<BoundingBoxD>)

void GetAproximateClustersForAabb(ref BoundingBoxD, double, List<BoundingBoxD>)

void GetChildren(int, out int, out int)

void GetFatAABB(int, out BoundingBoxD)

Get the fat BoundingBox for a proxy.

int GetHeight()

int GetLeafCount(int)

void GetNodeLeaves(int, List<int>)

int GetRoot()

T GetUserData<T>(int)

bool IsRootNull()

bool MoveProxy(int, ref BoundingBoxD, Vector3D)

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<T>(ref BoundingBoxD, List<T>, uint = 0, bool = default)

void OverlapAllBoundingBox<T>(ref MyOrientedBoundingBoxD, List<T>, uint = 0, bool = default)

void OverlapAllBoundingSphere<T>(ref BoundingSphereD, List<T>, bool = default)

void OverlapAllBoundingSphere<T>(ref BoundingSphereD, Action<T>)

void OverlapAllFrustum<T>(ref BoundingFrustumD, List<T>, bool = default)

void OverlapAllFrustum<T>(ref BoundingFrustumD, List<T>, uint, bool = default)

void OverlapAllFrustum<T>(ref BoundingFrustumD, List<T>, List<bool>)

void OverlapAllFrustum<T>(ref BoundingFrustumD, T)

void OverlapAllFrustum<T>(ref BoundingFrustumD, List<T>, List<bool>, float, bool = default)

void OverlapAllFrustum<T>(ref BoundingFrustumD, Action<T, bool>, float)

void OverlapAllFrustum<T>(ref BoundingFrustumD, T, float)

void OverlapAllFrustumAny<T>(ref BoundingFrustumD, List<T>, bool = default)

void OverlapAllLineSegment<T>(ref LineD, List<MyLineSegmentOverlapResult<T>>, bool = default)

void OverlapAllLineSegment<T>(ref LineD, List<MyLineSegmentOverlapResult<T>>, uint, bool = default)

bool OverlapsAnyLeafBoundingBox(ref BoundingBoxD)

void Query(Func<int, bool>, ref BoundingBoxD)

void QueryPoint(Func<int, bool>, ref Vector3D)

void RemoveProxy(int)

Destroy a proxy. This asserts if the id is invalid.

Clone this wiki locally