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

VRageMath.MyDynamicAABBTreeD

Malware edited this page Dec 21, 2018 · 54 revisions

Index

MyDynamicAABBTreeD Class

Namespace: VRageMath
Assembly: VRage.Math.dll

Summary

Dynamic aabb tree implementation as a prunning structure

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.

Methods

Member Description
int AddProxy(ref VRageMath.BoundingBoxD, System.Object, uint, bool) Create a proxy. Provide a tight fitting BoundingBox and a userData pointer.
void RemoveProxy(int) Destroy a proxy. This asserts if the id is invalid.
bool MoveProxy(int, ref VRageMath.BoundingBoxD, VRageMath.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.
VRageMath.T GetUserData<T>(int)
int GetRoot()
int GetLeafCount(int)
void GetNodeLeaves(int, List<System.Int32>)
VRageMath.BoundingBoxD GetAabb(int)
void GetChildren(int, ref int, ref int)
void GetFatAABB(int, ref VRageMath.BoundingBoxD) Get the fat BoundingBox for a proxy.
void Query(Func<System.Int32, System.Boolean>, ref VRageMath.BoundingBoxD)
void QueryPoint(Func<System.Int32, System.Boolean>, ref VRageMath.Vector3D)
int CountLeaves(int)
int GetHeight()
bool IsRootNull()
int Balance(int)
void OverlapAllFrustum<T>(ref VRageMath.BoundingFrustumD, List<T>, bool)
void OverlapAllFrustum<T>(ref VRageMath.BoundingFrustumD, List<T>, uint, bool)
void OverlapAllFrustumAny<T>(ref VRageMath.BoundingFrustumD, List<T>, bool)
void OverlapAllFrustum<T>(ref VRageMath.BoundingFrustumD, List<T>, List<System.Boolean>)
void OverlapAllFrustum<T>(ref VRageMath.BoundingFrustumD, VRageMath.T)
void OverlapAllFrustum<T>(ref VRageMath.BoundingFrustumD, List<T>, List<System.Boolean>, float, bool)
void OverlapAllFrustum<T>(ref VRageMath.BoundingFrustumD, Action<T, System.Boolean>, float)
void OverlapAllFrustum<T>(ref VRageMath.BoundingFrustumD, VRageMath.T, float)
void OverlapAllLineSegment<T>(ref VRageMath.LineD, List<>, bool)
void OverlapAllLineSegment<T>(ref VRageMath.LineD, List<>, uint, bool)
void OverlapAllBoundingBox<T>(ref VRageMath.BoundingBoxD, List<T>, uint, bool)
void OverlapAllBoundingBox<T>(ref VRageMath.MyOrientedBoundingBoxD, List<T>, uint, bool)
bool OverlapsAnyLeafBoundingBox(ref VRageMath.BoundingBoxD)
void GetAproximateClustersForAabb(ref VRageMath.BoundingBoxD, double, List<VRageMath.BoundingBoxD>)
void OverlapAllBoundingSphere<T>(ref VRageMath.BoundingSphereD, List<T>, bool)
void OverlapAllBoundingSphere<T>(ref VRageMath.BoundingSphereD, Action<T>)
void GetAll<T>(List<T>, bool, List<VRageMath.BoundingBoxD>)
void GetAll<T>(Action<T>)
void GetAll<T>(Action<T, VRageMath.BoundingBoxD>)
void GetAllNodeBounds(List<VRageMath.BoundingBoxD>)
void Clear()
static void Dispose()

Clone this wiki locally