TriangleMesh
Успадковує: RefCounted < Object
Геометрія трикутників для ефективних запитів перетинів без фізичних обмежень.
Опис
Створює деревоподібну структуру ієрархії обмежувальних об'ємів (BVH) навколо геометрії трикутників.
Дерево BVH трикутників можна використовувати для ефективних запитів перетину без залучення фізичного движка.
Наприклад, це можна використовувати в інструментах редактора для вибору об'єктів зі складними формами на основі положення курсора миші.
Продуктивність: Створення дерева BVH для складної геометрії – це повільний процес, який найкраще виконувати у фоновому потоці.
Методи
create_from_faces(faces: PackedVector3Array) |
|
get_faces() const |
|
intersect_ray(begin: Vector3, dir: Vector3) const |
|
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(), який подібний, але використовує промінь нескінченної довжини.