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.MyDynamicAABBTreeD
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. |
| [`int AddProxy(ref BoundingBoxD 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 BoundingBoxD aabb, Vector3D 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(int proxyId)`](VRageMath.GetLeafCount) | |
| [`void GetNodeLeaves(int proxyId, List children)`](VRageMath.GetNodeLeaves) | |
| [`BoundingBoxD GetAabb(int proxyId)`](VRageMath.GetAabb) | |
| [`void GetChildren(int proxyId, ref int left, ref int right)`](VRageMath.GetChildren) | |
| [`void GetFatAABB(int proxyId, ref BoundingBoxD fatAABB)`](VRageMath.GetFatAABB) | Get the fat BoundingBox for a proxy. |
| [`void Query(Func callback, ref BoundingBoxD aabb)`](VRageMath.Query) | |
| [`void QueryPoint(Func callback, ref Vector3D point)`](VRageMath.QueryPoint) | |
| [`int CountLeaves(int nodeId)`](VRageMath.CountLeaves) | |
| [`int GetHeight()`](VRageMath.GetHeight) | |
| [`bool IsRootNull()`](VRageMath.IsRootNull) | |
| [`int Balance(int iA)`](VRageMath.Balance) | |
| [`void OverlapAllFrustum(ref BoundingFrustumD frustum, List elementsList, bool clear)`](VRageMath.OverlapAllFrustum) | |
| [`void OverlapAllFrustum(ref BoundingFrustumD frustum, List elementsList, uint requiredFlags, bool clear)`](VRageMath.OverlapAllFrustum) | |
| [`void OverlapAllFrustumAny(ref BoundingFrustumD frustum, List elementsList, bool clear)`](VRageMath.OverlapAllFrustumAny) | |
| [`void OverlapAllFrustum(ref BoundingFrustumD frustum, List elementsList, List isInsideList)`](VRageMath.OverlapAllFrustum) | |
| [`void OverlapAllFrustum(ref BoundingFrustumD frustum, T results)`](VRageMath.OverlapAllFrustum) | |
| [`void OverlapAllFrustum(ref BoundingFrustumD frustum, List elementsList, List isInsideList, float tSqr, bool clear)`](VRageMath.OverlapAllFrustum) | |
| [`void OverlapAllFrustum(ref BoundingFrustumD frustum, Action add, float tSqr)`](VRageMath.OverlapAllFrustum) | |
| [`void OverlapAllFrustum(ref BoundingFrustumD frustum, T results, float tSqr)`](VRageMath.OverlapAllFrustum) | |
| [`void OverlapAllLineSegment(ref LineD line, List> elementsList, bool clear)`](VRageMath.OverlapAllLineSegment) | |
| [`void OverlapAllLineSegment(ref LineD line, List> elementsList, uint requiredFlags, bool clear)`](VRageMath.OverlapAllLineSegment) | |
| [`void OverlapAllBoundingBox(ref BoundingBoxD bbox, List elementsList, uint requiredFlags, bool clear)`](VRageMath.OverlapAllBoundingBox) | |
| [`void OverlapAllBoundingBox(ref MyOrientedBoundingBoxD obb, List elementsList, uint requiredFlags, bool clear)`](VRageMath.OverlapAllBoundingBox) | |
| [`bool OverlapsAnyLeafBoundingBox(ref BoundingBoxD bbox)`](VRageMath.OverlapsAnyLeafBoundingBox) | |
| [`void GetAproximateClustersForAabb(ref BoundingBoxD bbox, double minSize, List boundList)`](VRageMath.GetAproximateClustersForAabb) | |
| [`void OverlapAllBoundingSphere(ref BoundingSphereD sphere, List overlapElementsList, bool clear)`](VRageMath.OverlapAllBoundingSphere) | |
| [`void OverlapAllBoundingSphere(ref BoundingSphereD sphere, Action addAction)`](VRageMath.OverlapAllBoundingSphere) | |
| [`void GetAll(List elementsList, bool clear, List boxsList)`](VRageMath.GetAll) | |
| [`void GetAll(Action add)`](VRageMath.GetAll) | |
| [`void GetAll(Action add)`](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!