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

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.

Methods

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

Clone this wiki locally