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

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.
### Methods
[`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)

Clone this wiki locally