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 дерева, который содержит конкретный объект.

Листовой узел не имеет подузлов и служит конечной точкой в иерархии.