RectBVH3D<T>
public RectBVH3D()
Language: C#
Инициализирует новый экземпляр 3D BVH структуры с пустым корневым узлом.
public uint Depth()
Language: C#
Получает глубину BVH дерева (количество уровней от корня до самого глубокого листа).
Returns: Глубина дерева. Пустое дерево имеет глубину 1.
public void Add(T value)
Language: C#
Добавляет новый объект в 3D BVH структуру. Объект будет вставлен в соответствующее место в дереве на основе его AABB.
Операция потокобезопасна.
Parameters:
- value: Объект для добавления
public void OptimizedAdd(T value)
Language: C#
Оптимизированное добавление объекта в 3D BVH структуру. Этот метод может перестроить часть дерева для лучшей балансировки.
Использует балансировку для поддержания производительности структуры. Операция потокобезопасна.
Parameters:
- value: Объект для добавления
public void Remove(T value)
Language: C#
Удаляет объект из 3D BVH структуры. Операция потокобезопасна.
Parameters:
- value: Объект для удаления
public void Clear()
Language: C#
Полностью очищает 3D BVH структуру, удаляя все объекты.
Операция потокобезопасна.
public void FindNearest(FVector3 position, float radius, List<T> result)
Language: C#
Находит все объекты в пределах заданного радиуса от позиции и добавляет их в список результатов.
Операция потокобезопасна.
Parameters:
- position: 3D позиция для поиска
- radius: Радиус поиска
- result: Список для добавления найденных объектов
public void Raycast(FRay3 ray, List<T> result)
Language: C#
Выполняет трассировку 3D луча через BVH структуру и находит все объекты, которые пересекает луч.
Операция потокобезопасна.
Parameters:
- ray: 3D луч для трассировки
- result: Список для добавления найденных объектов
public void Linecast(FLine3 line, List<T> result)
Language: C#
Выполняет трассировку 3D линии через BVH структуру и находит все объекты, которые пересекает линия.
Операция потокобезопасна.
Parameters:
- line: 3D линия для трассировки
- result: Список для добавления найденных объектов
public List<T> FindNearest(FVector3 position, float radius)
Language: C#
Находит все объекты в пределах заданного радиуса от позиции и возвращает новый список результатов.
Операция потокобезопасна.
Parameters:
- position: 3D позиция для поиска
- radius: Радиус поиска
Returns: Новый список найденных объектов
public void Render(IVertexBuffer<float> vertices, IVertexBuffer<uint> triangles)
Language: C#
Отрисовывает структуру 3D BVH дерева в виде прямоугольников в буферы вершин и треугольников.
Каждый узел дерева отображается как 3D прямоугольник. Операция потокобезопасна.
Parameters:
- vertices: Буфер вершин для сохранения координат вершин
- triangles: Буфер индексов для сохранения треугольников
public void Collisions(FBox3 aabb, List<T> result)
Language: C#
Находит все объекты, которые пересекаются с заданным 3D прямоугольником (AABB), и добавляет их в список результатов.
Операция потокобезопасна.
Parameters:
- aabb: 3D прямоугольник для проверки столкновения
- result: Список для добавления найденных объектов
public List<T> Collisions(FBox3 aabb)
Language: C#
Находит все объекты, которые пересекаются с заданным 3D прямоугольником (AABB), и возвращает новый список результатов.
Операция потокобезопасна.
Parameters:
- aabb: 3D прямоугольник для проверки столкновения
Returns: Новый список найденных объектов
public FBox3 GetBoundaryBox()
Language: C#
Получает граничный прямоугольник (AABB), который охватывает все объекты в 3D BVH структуре.
Returns: 3D прямоугольник, охватывающий всё содержимое BVH
public abstract class Node
Language: C#
Абстрактный базовый класс для узлов 3D BVH дерева. Представляет узел в иерархии.
Может быть либо внутренней ветвью (Branch), либо листом (Leaf).
public class Branch : Node
Language: C#
Внутренний узел 3D BVH дерева, который содержит два подузла (левый и правый).
Используется для организации иерархии объектов.
public class Leaf : Node
Language: C#
Листовой узел 3D BVH дерева, который содержит конкретный объект.
Листовой узел не имеет подузлов и служит конечной точкой в иерархии.