Files
godot-docs-l10n/classes/es/class_trianglemesh.rst
2025-09-30 13:31:55 +02:00

131 lines
6.8 KiB
ReStructuredText

:github_url: hide
.. _class_TriangleMesh:
TriangleMesh
============
**Hereda:** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
Geometría de triángulo para consultas de intersección eficientes y sin física.
.. rst-class:: classref-introduction-group
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.
.. rst-class:: classref-reftable-group
Métodos
--------------
.. table::
:widths: auto
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`create_from_faces<class_TriangleMesh_method_create_from_faces>`\ (\ faces\: :ref:`PackedVector3Array<class_PackedVector3Array>`\ ) |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`get_faces<class_TriangleMesh_method_get_faces>`\ (\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dictionary<class_Dictionary>` | :ref:`intersect_ray<class_TriangleMesh_method_intersect_ray>`\ (\ begin\: :ref:`Vector3<class_Vector3>`, dir\: :ref:`Vector3<class_Vector3>`\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dictionary<class_Dictionary>` | :ref:`intersect_segment<class_TriangleMesh_method_intersect_segment>`\ (\ begin\: :ref:`Vector3<class_Vector3>`, end\: :ref:`Vector3<class_Vector3>`\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Descripciones de Métodos
------------------------------------------------
.. _class_TriangleMesh_method_create_from_faces:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **create_from_faces**\ (\ faces\: :ref:`PackedVector3Array<class_PackedVector3Array>`\ ) :ref:`🔗<class_TriangleMesh_method_create_from_faces>`
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.
.. rst-class:: classref-item-separator
----
.. _class_TriangleMesh_method_get_faces:
.. rst-class:: classref-method
:ref:`PackedVector3Array<class_PackedVector3Array>` **get_faces**\ (\ ) |const| :ref:`🔗<class_TriangleMesh_method_get_faces>`
Devuelve una copia de las caras geométricas. Cada 3 vértices del array representan un triángulo (cara).
.. rst-class:: classref-item-separator
----
.. _class_TriangleMesh_method_intersect_ray:
.. rst-class:: classref-method
:ref:`Dictionary<class_Dictionary>` **intersect_ray**\ (\ begin\: :ref:`Vector3<class_Vector3>`, dir\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_TriangleMesh_method_intersect_ray>`
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 :ref:`Dictionary<class_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 :ref:`Dictionary<class_Dictionary>` vacío si no se produce ninguna intersección.
Véase también :ref:`intersect_segment()<class_TriangleMesh_method_intersect_segment>`, que es similar pero utiliza un segmento de longitud finita.
.. rst-class:: classref-item-separator
----
.. _class_TriangleMesh_method_intersect_segment:
.. rst-class:: classref-method
:ref:`Dictionary<class_Dictionary>` **intersect_segment**\ (\ begin\: :ref:`Vector3<class_Vector3>`, end\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_TriangleMesh_method_intersect_segment>`
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 :ref:`Dictionary<class_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 :ref:`Dictionary<class_Dictionary>` vacío si no se produce ninguna intersección.
Véase también :ref:`intersect_ray()<class_TriangleMesh_method_intersect_ray>`, que es similar pero utiliza un rayo de longitud infinita.
.. |virtual| replace:: :abbr:`virtual (Normalmente, este método debería ser sobreescrito por el usuario para que tenga algún efecto.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Este método no tiene efectos secundarios. No modifica ninguna de las variables miembro de la instancia.)`
.. |vararg| replace:: :abbr:`vararg (Este método permite agregar cualquier número de argumentos después de los descritos aquí.)`
.. |constructor| replace:: :abbr:`constructor (Este método se utiliza para construir un tipo.)`
.. |static| replace:: :abbr:`static (Este método no necesita una instancia para ser llamado, por lo que puede llamarse directamente utilizando el nombre de la clase.)`
.. |operator| replace:: :abbr:`operator (Este método describe un operador válido para usar con este tipo como operando izquierdo.)`
.. |bitfield| replace:: :abbr:`BitField (Este valor es un entero compuesto como una máscara de bits de las siguientes banderas.)`
.. |void| replace:: :abbr:`void (Sin valor de retorno.)`