This repository was archived by the owner on Dec 13, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 123
VRageMath.MyDynamicAABBTree
Morten Aune Lyrstad edited this page Apr 16, 2022
·
54 revisions
← Index ← Namespace Index
public class MyDynamicAABBTreeDynamic aabb tree implementation as a prunning structure
Namespace: VRageMath
Assembly: VRage.Math.dll
| 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. |
| Member | Description |
|---|---|
| DictionaryValuesReader<int, DynamicTreeNode> Leaves { get; } | |
| ReadOnlySpan<DynamicTreeNode> Nodes { get; } |
| Member | Description |
|---|---|
| MyDynamicAABBTree() | |
| [MyDynamicAABBTree(Vector3, [float])](VRageMath.MyDynamicAABBTree..ctor) |
| Member | Description |
|---|---|
| static void Dispose() | |
| [int AddProxy(ref BoundingBox, object, uint, [bool])](VRageMath.MyDynamicAABBTree.AddProxy) | 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<T>(List<T>, bool, [List<BoundingBox>])](VRageMath.MyDynamicAABBTree.GetAll) | |
| void GetAllNodeBounds(List<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<int>) | |
| int GetRoot() | |
| T GetUserData<T>(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<T>(ref BoundingBox, List<T>, [uint], [bool])](VRageMath.MyDynamicAABBTree.OverlapAllBoundingBox) | |
| [void OverlapAllBoundingSphere<T>(ref BoundingSphere, List<T>, [bool])](VRageMath.MyDynamicAABBTree.OverlapAllBoundingSphere) | |
| [void OverlapAllFrustum<T>(ref BoundingFrustum, List<T>, [bool])](VRageMath.MyDynamicAABBTree.OverlapAllFrustum) | |
| [void OverlapAllFrustum<T>(ref BoundingFrustum, List<T>, uint, [bool])](VRageMath.MyDynamicAABBTree.OverlapAllFrustum) | |
| [void OverlapAllFrustum<T>(ref BoundingFrustum, List<T>, List<bool>, [bool])](VRageMath.MyDynamicAABBTree.OverlapAllFrustum) | |
| void OverlapAllFrustum<T>(ref BoundingFrustum, Action<T, bool>) | |
| void OverlapAllFrustum<T, Op>(ref BoundingFrustum, ref Op) | |
| [void OverlapAllFrustum<T>(ref BoundingFrustum, List<T>, List<bool>, float, [bool])](VRageMath.MyDynamicAABBTree.OverlapAllFrustum) | |
| void OverlapAllFrustum<T>(ref BoundingFrustum, Action<T, bool>, float) | |
| void OverlapAllFrustum<T, Op>(ref BoundingFrustum, float, ref Op) | |
| [void OverlapAllFrustumAny<T>(ref BoundingFrustum, List<T>, [bool])](VRageMath.MyDynamicAABBTree.OverlapAllFrustumAny) | |
| [void OverlapAllFrustumConservative<T>(ref BoundingFrustum, List<T>, uint, [bool])](VRageMath.MyDynamicAABBTree.OverlapAllFrustumConservative) | |
| void OverlapAllLineSegment<T>(ref Line, List<MyLineSegmentOverlapResult<T>>) | |
| void OverlapAllLineSegment<T>(ref Line, List<MyLineSegmentOverlapResult<T>>, uint) | |
| bool OverlapsAnyLeafBoundingBox(ref BoundingBox) | |
| void OverlapSizeableClusters(ref BoundingBox, List<BoundingBox>, double) | |
| void Query(Func<int, bool>, ref BoundingBox) | |
| void RemoveProxy(int) | Destroy a proxy. This asserts if the id is invalid. |
Do you have questions, comments, suggestions for improvements? Is there something I can do better? Did I make a mistake? Please add an issue here, and prefix your issue title with Wiki. Thank you, your help will be very appreciated!