mirror of
https://github.com/godotengine/godot-docs-l10n.git
synced 2025-12-31 09:49:22 +03:00
131 lines
6.8 KiB
ReStructuredText
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.)`
|