Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

TriangleMesh

Hereda: RefCounted < Object

Geometría de triángulo para consultas de intersección eficientes y sin física.

Descripción

Crea una estructura de árbol de jerarquía de volúmenes delimitadores (BVH) alrededor de la geometría del triángulo.

El árbol BVH del triángulo se puede utilizar para consultas de intersección eficientes sin involucrar un motor de física.

Por ejemplo, esto se puede utilizar en herramientas de edición para seleccionar objetos con formas complejas según la posición del cursor del ratón.

Rendimiento: Crear el árbol BVH para geometrías complejas es un proceso lento y se hace mejor en un hilo en segundo plano.

Métodos

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


Descripciones de Métodos

bool create_from_faces(faces: PackedVector3Array) 🔗

Crea el árbol BVH a partir de un array de caras. Cada 3 vértices del array de entrada faces representan un triángulo (cara).

Devuelve true si el árbol se construye con éxito, false en caso contrario.


PackedVector3Array get_faces() const 🔗

Devuelve una copia de las caras geométricas. Cada 3 vértices del array representan un triángulo (cara).


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

Prueba la intersección con un rayo que comienza en begin y mira hacia dir y se extiende hacia el infinito.

Si se produce una intersección con un triángulo, devuelve un Dictionary con los siguientes campos:

position: La posición en el triángulo intersecado.

normal: La normal del triángulo intersecado.

face_index: El índice del triángulo intersecado.

Devuelve un Dictionary vacío si no se produce ninguna intersección.

Véase también intersect_segment(), que es similar pero utiliza un segmento de longitud finita.


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

Prueba la intersección con un segmento que va desde begin hasta end.

Si se produce una intersección con un triángulo, devuelve un Dictionary con los siguientes campos:

position: La posición en el triángulo intersecado.

normal: La normal del triángulo intersecado.

face_index: El índice del triángulo intersecado.

Devuelve un Dictionary vacío si no se produce ninguna intersección.

Véase también intersect_ray(), que es similar pero utiliza un rayo de longitud infinita.