TriangleMesh

Наследует: RefCounted < Object

Геометрия треугольников для эффективных запросов на пересечения без учета физики.

Описание

Создает древовидную структуру иерархии ограничивающего объема (BVH) вокруг геометрии треугольника.

Дерево BVH треугольника можно использовать для эффективных запросов пересечения без привлечения физического движка.

Например, это можно использовать в инструментах редактора для выбора объектов со сложной формой на основе положения курсора мыши.

Производительность: Создание дерева BVH для сложной геометрии — медленный процесс, и лучше всего его выполнять в фоновом потоке.

Методы

bool

create_from_faces(faces: PackedVector3Array)

PackedVector3Array

get_faces() const

Dictionary

intersect_ray(begin: Vector3, dir: Vector3) const

Dictionary

intersect_segment(begin: Vector3, end: Vector3) const


Описания метода

bool create_from_faces(faces: PackedVector3Array) 🔗

Создает дерево BVH из массива граней. Каждые 3 вершины входного массива faces представляют один треугольник (грань).

Возвращает true, если дерево успешно построено, false в противном случае.


PackedVector3Array get_faces() const 🔗

Возвращает копию граней геометрии. Каждые 3 вершины массива представляют один треугольник (грань).


Dictionary intersect_ray(begin: Vector3, dir: Vector3) const 🔗

Проверяет пересечение с лучом, начинающимся в begin, направленным в dir и простирающимся в бесконечность.

Если происходит пересечение с треугольником, возвращает Dictionary со следующими полями:

position: Положение на пересекаемом треугольнике.

normal: Нормаль пересекаемого треугольника.

face_index: Индекс пересекаемого треугольника.

Возвращает пустой Dictionary, если пересечения не происходит.

См. также intersect_segment(), который похож, но использует сегмент конечной длины.


Dictionary intersect_segment(begin: Vector3, end: Vector3) const 🔗

Проверяет пересечение с сегментом, идущим от begin до end.

Если пересечение с треугольником происходит, возвращает Dictionary со следующими полями:

position: Положение на пересекаемом треугольнике.

normal: Нормаль пересекаемого треугольника.

face_index: Индекс пересекаемого треугольника.

Возвращает пустой Dictionary, если пересечения не происходит.

См. также intersect_ray(), который похож, но использует луч бесконечной длины.