Assembly: VRage.Math.dll

public class MyDynamicAABBTreeD

Dynamic aabb tree implementation as a prunning structure

Fields

Member Description
static 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
ElementsCount

Constructors

Member Description
MyDynamicAABBTreeD()
MyDynamicAABBTreeD(Vector3D, double)

Methods

Member Description
static Dispose()
AddProxy(ref BoundingBoxD, object, uint, bool) Create a proxy. Provide a tight fitting BoundingBox and a userData pointer.
Balance(int)
Clear()
CountLeaves(int)
GetAabb(int)
GetAll(List, bool, List)
GetAll(Action)
GetAll(Action<T, BoundingBoxD>)
GetAllNodeBounds(List)
GetAproximateClustersForAabb(ref BoundingBoxD, double, List)
GetAproximateClustersForAabbDebug(ref BoundingBoxD, double, List, List<MyTuple<bool, int, object>>)
GetChildren(int, out int, out int)
GetFatAABB(int, out BoundingBoxD) Get the fat BoundingBox for a proxy.
GetHeight()
GetLeafCount(int)
GetNodeLeaves(int, List)
GetRoot()
GetUserData(int)
IsRootNull()
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.
OverlapAllBoundingBox(ref BoundingBoxD, List, uint, bool)
OverlapAllBoundingBox(ref MyOrientedBoundingBoxD, List, uint, bool)
OverlapAllBoundingSphere(ref BoundingSphereD, List, bool)
OverlapAllBoundingSphere(ref BoundingSphereD, Action)
OverlapAllFrustum(ref BoundingFrustumD, List, bool)
OverlapAllFrustum(ref BoundingFrustumD, List, uint, bool)
OverlapAllFrustum(ref BoundingFrustumD, List, List)
OverlapAllFrustum(ref BoundingFrustumD, T)
OverlapAllFrustum(ref BoundingFrustumD, List, List, float, bool)
OverlapAllFrustum(ref BoundingFrustumD, Action<T, bool>, float)
OverlapAllFrustum(ref BoundingFrustumD, T, float)
OverlapAllFrustumAny(ref BoundingFrustumD, List, bool)
OverlapAllLineSegment(ref LineD, List<MyLineSegmentOverlapResult>, bool)
OverlapAllLineSegment(ref LineD, List<MyLineSegmentOverlapResult>, uint, bool)
OverlapsAnyLeafBoundingBox(ref BoundingBoxD)
Query(Func<int, bool>, ref BoundingBoxD)
QueryPoint(Func<int, bool>, ref Vector3D)
RemoveProxy(int) Destroy a proxy. This asserts if the id is invalid.