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
Malware edited this page Dec 21, 2018
·
54 revisions
← Index
Namespace: VRageMath
Assembly: VRage.Math.dll
Dynamic aabb tree implementation as a prunning structure
| static [`int NullNode`](VRageMath.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. |
| [`DictionaryValuesReader Leaves`](VRageMath.Leaves) |
| [`int AddProxy(ref BoundingBox aabb, Object userData, uint userFlags, bool rebalance)`](VRageMath.AddProxy) | Create a proxy. Provide a tight fitting BoundingBox and a userData pointer. |
| [`void RemoveProxy(int proxyId)`](VRageMath.RemoveProxy) | Destroy a proxy. This asserts if the id is invalid. |
| [`bool MoveProxy(int proxyId, ref BoundingBox aabb, Vector3 displacement)`](VRageMath.MoveProxy) | 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. |
| [`T GetUserData(int proxyId)`](VRageMath.GetUserData) | |
| [`int GetRoot()`](VRageMath.GetRoot) | |
| [`int GetLeafCount()`](VRageMath.GetLeafCount) | |
| [`int GetLeafCount(int proxyId)`](VRageMath.GetLeafCount) | |
| [`void GetNodeLeaves(int proxyId, List children)`](VRageMath.GetNodeLeaves) | |
| [`BoundingBox GetAabb(int proxyId)`](VRageMath.GetAabb) | |
| [`void GetChildren(int proxyId, ref int left, ref int right)`](VRageMath.GetChildren) | |
| [`void GetFatAABB(int proxyId, ref BoundingBox fatAABB)`](VRageMath.GetFatAABB) | Get the fat BoundingBox for a proxy. |
| [`void Query(Func callback, ref BoundingBox aabb)`](VRageMath.Query) | |
| [`int CountLeaves(int nodeId)`](VRageMath.CountLeaves) | |
| [`int GetHeight()`](VRageMath.GetHeight) | |
| [`int Balance(int iA)`](VRageMath.Balance) | |
| [`void OverlapAllFrustum(ref BoundingFrustum frustum, List elementsList, bool clear)`](VRageMath.OverlapAllFrustum) | |
| [`void OverlapAllFrustum(ref BoundingFrustum frustum, List elementsList, uint requiredFlags, bool clear)`](VRageMath.OverlapAllFrustum) | |
| [`void OverlapAllFrustum(ref BoundingFrustum frustum, List elementsList, List isInsideList, bool clear)`](VRageMath.OverlapAllFrustum) | |
| [`void OverlapAllFrustum(ref BoundingFrustum frustum, Action add)`](VRageMath.OverlapAllFrustum) | |
| [`void OverlapAllFrustum(ref BoundingFrustum frustum, ref Op add)`](VRageMath.OverlapAllFrustum) | |
| [`void OverlapAllFrustum(ref BoundingFrustum frustum, List elementsList, List isInsideList, float tSqr, bool clear)`](VRageMath.OverlapAllFrustum) | |
| [`void OverlapAllFrustum(ref BoundingFrustum frustum, Action add, float tSqr)`](VRageMath.OverlapAllFrustum) | |
| [`void OverlapAllFrustum(ref BoundingFrustum frustum, float tSqr, ref Op add)`](VRageMath.OverlapAllFrustum) | |
| [`void OverlapAllFrustumConservative(ref BoundingFrustum frustum, List elementsList, uint requiredFlags, bool clear)`](VRageMath.OverlapAllFrustumConservative) | |
| [`void OverlapAllFrustumAny(ref BoundingFrustum frustum, List elementsList, bool clear)`](VRageMath.OverlapAllFrustumAny) | |
| [`void OverlapAllLineSegment(ref Line line, List> elementsList)`](VRageMath.OverlapAllLineSegment) | |
| [`void OverlapAllLineSegment(ref Line line, List> elementsList, uint requiredFlags)`](VRageMath.OverlapAllLineSegment) | |
| [`void OverlapAllBoundingBox(ref BoundingBox bbox, List elementsList, uint requiredFlags, bool clear)`](VRageMath.OverlapAllBoundingBox) | |
| [`bool OverlapsAnyLeafBoundingBox(ref BoundingBox bbox)`](VRageMath.OverlapsAnyLeafBoundingBox) | |
| [`void OverlapSizeableClusters(ref BoundingBox bbox, List boundList, double minSize)`](VRageMath.OverlapSizeableClusters) | |
| [`void OverlapAllBoundingSphere(ref BoundingSphere sphere, List overlapElementsList, bool clear)`](VRageMath.OverlapAllBoundingSphere) | |
| [`void GetAll(List elementsList, bool clear, List boxsList)`](VRageMath.GetAll) | |
| [`void GetAllNodeBounds(List boxsList)`](VRageMath.GetAllNodeBounds) | |
| [`void Clear()`](VRageMath.Clear) | |
| static [`void Dispose()`](VRageMath.Dispose) |
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!