Leaf
public Leaf(Branch? parent, Branch root, T value)
Language: C#
Инициализирует листовой узел с объектом и ассоциирует себя с объектом.
Parameters:
- parent: Родительская ветвь
- root: Корневая ветвь дерева
- value: Объект для хранения в листе
public override uint Depth()
Language: C#
Листовой узел всегда имеет глубину 1.
Returns: Всегда возвращает 1
public override void Add(T value)
Language: C#
Добавляет новый объект рядом с текущим объектом в дереве.
Листовой узел делегирует это к оптимизированному добавлению.
Parameters:
- value: Объект для добавления
public override void Add(T value, Stack<Node> stack)
Language: C#
Добавляет новый объект итеративно через стек.
Parameters:
- value: Объект для добавления
- stack: Стек узлов
public void Relocate()
Language: C#
Перемещает объект в дереве при изменении его AABB.
Удаляет объект из текущего положения и добавляет его заново в оптимальное место.
public override void OptimizedAdd(T value)
Language: C#
Оптимизированное добавление нового объекта рядом с текущим.
Создаёт новую ветвь для содержания обоих объектов.
Parameters:
- value: Объект для добавления
public override void OptimizedAdd(T value, Stack<Node> stack)
Language: C#
Оптимизированное добавление итеративно через стек.
Parameters:
- value: Объект для добавления
- stack: Стек узлов
public override void Remove(T value)
Language: C#
Удаляет объект, если он совпадает с объектом этого листового узла.
Parameters:
- value: Объект для удаления
public override void Remove(T value, Stack<Node> stack)
Language: C#
Удаляет объект итеративно через стек.
Parameters:
- value: Объект для удаления
- stack: Стек узлов
public override void FindNearestFwd(FVector2 position, float radius, List<T> result)
Language: C#
Проверяет, находится ли объект в пределах радиуса от позиции поиска.
Parameters:
- position: 2D позиция поиска
- radius: Радиус поиска
- result: Список результатов
public override void FindNearestFwd(FVector2 position, float radius, List<T> result, Stack<Node> stack)
Language: C#
Проверяет, находится ли объект в пределах радиуса итеративно.
Parameters:
- position: 2D позиция поиска
- radius: Радиус поиска
- result: Список результатов
- stack: Стек узлов
public override void Raycast(FRay2 ray, List<T> result)
Language: C#
Проверяет пересечение луча с AABB объекта и добавляет объект в результаты при пересечении.
Parameters:
- ray: 2D луч для трассировки
- result: Список результатов
public override void Linecast(FLine2 line, List<T> result)
Language: C#
Проверяет пересечение линии с AABB объекта и добавляет объект в результаты при пересечении.
Parameters:
- line: 2D линия для трассировки
- result: Список результатов
public override void Render(IVertexBuffer<float> vertices, IVertexBuffer<uint> triangles)
Language: C#
Отрисовывает листовой узел как прямоугольник с координатами и UV координатами.
Parameters:
- vertices: Буфер вершин для сохранения координат
- triangles: Буфер индексов для сохранения треугольников
public override void CollisionsFwd(FBox2 aabb, List<T> result)
Language: C#
Проверяет столкновение с AABB и добавляет объект в результаты при столкновении.
Parameters:
- aabb: 2D прямоугольник для проверки столкновения
- result: Список результатов