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

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
\int ElementsCount { get; }

Constructors

Member Description
\MyDynamicAABBTreeD()
\MyDynamicAABBTreeD(Vector3D, \[double])

Methods

Member Description
\static void Dispose()
\int AddProxy(ref BoundingBoxD, object, uint, \[bool]) 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\(List\, bool, \[List\])
\void GetAll\(Action\)
\void GetAll\(Action\<T, BoundingBoxD>)
\void GetAllNodeBounds(List\)
\void GetAproximateClustersForAabb(ref BoundingBoxD, double, List\)
\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 GetRoot()
\T GetUserData\(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\(ref BoundingBoxD, List\, \[uint], \[bool])
\void OverlapAllBoundingBox\(ref MyOrientedBoundingBoxD, List\, \[uint], \[bool])
\void OverlapAllBoundingSphere\(ref BoundingSphereD, List\, \[bool])
\void OverlapAllBoundingSphere\(ref BoundingSphereD, Action\)
\void OverlapAllFrustum\(ref BoundingFrustumD, List\, \[bool])
\void OverlapAllFrustum\(ref BoundingFrustumD, List\, uint, \[bool])
\void OverlapAllFrustum\(ref BoundingFrustumD, List\, List\)
\void OverlapAllFrustum\(ref BoundingFrustumD, T)
\void OverlapAllFrustum\(ref BoundingFrustumD, List\, List\, float, \[bool])
\void OverlapAllFrustum\(ref BoundingFrustumD, Action\<T, bool>, float)
\void OverlapAllFrustum\(ref BoundingFrustumD, T, float)
\void OverlapAllFrustumAny\(ref BoundingFrustumD, List\, \[bool])
\void OverlapAllLineSegment\(ref LineD, List\<MyLineSegmentOverlapResult\>, \[bool])
\void OverlapAllLineSegment\(ref LineD, List\<MyLineSegmentOverlapResult\>, uint, \[bool])
\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