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.
Checking the stable version of the documentation...
TriangleMesh
Hérite de : RefCounted < Object
Géométrie de triangles pour des requêtes d'intersection efficaces et sans physique.
Description
Crée un arbre de hiérarchie de volume englobant (Bounding Volume Hierarchy) autour de la géométrie en triangles.
L'arbre BVH des triangles peut être utilisé pour des requêtes d'intersection efficaces sans impliquer un moteur physique.
Par exemple, cela peut être utilisé dans des outils d'éditeur pour sélectionner des objets avec des formes complexes selon sur la position du curseur de la souris.
Performance : Créer l'arbre BVH pour une géométrie complexe est un processus lent et généralement fait dans un thread d'arrière-plan.
Méthodes
create_from_faces(faces: PackedVector3Array) |
|
get_faces() const |
|
intersect_ray(begin: Vector3, dir: Vector3) const |
|
intersect_segment(begin: Vector3, end: Vector3) const |
Descriptions des méthodes
bool create_from_faces(faces: PackedVector3Array) 🔗
Crée l'arbre BVH depuis un tableau de faces. Chaque 3 sommets du tableau d'entrée faces représentent un triangle (face).
Renvoie true si l'arbre est construit avec succès, false sinon.
PackedVector3Array get_faces() const 🔗
Renvoie une copie des faces de la géométrie. Chaque 3 sommets du tableau représentent un triangle (face).
Dictionary intersect_ray(begin: Vector3, dir: Vector3) const 🔗
Teste l'intersection avec un rayon commençant à begin, de direction dir et de longueur infinie.
Si une intersection avec un triangle se produit, renvoie un Dictionary avec les champs suivants :
position : La position sur le triangle intersecté.
normal : La normale du triangle intersecté.
face_index : L'index du triangle intersecté.
Renvoie un Dictionary vide si aucune intersection ne se produit.
Voir aussi intersect_segment(), qui est similaire mais utilise un segment de taille finie.
Dictionary intersect_segment(begin: Vector3, end: Vector3) const 🔗
Teste l'intersection avec un segment allant de begin à end.
Si une intersection avec un triangle se produit, renvoie un Dictionary avec les champs suivants :
position : La position sur le triangle intersecté.
normal : La normale du triangle intersecté.
face_index : L'index du triangle intersecté.
Renvoie un Dictionary vide si aucune intersection ne se produit.
Voir aussi intersect_ray(), qui est similaire mais utilise un rayon infini.