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
Eredita: RefCounted < Object
Geometria triangolare per ricerche di intersezione efficienti e senza fisica.
Descrizione
Crea una struttura ad albero BVH (bounding volume hierarchy) attorno alla geometria triangolare.
L'albero BVH triangolare si può utilizzare per query di intersezione efficienti senza aver bisogno di un motore fisico.
Ad esempio, è possibile utilizzarlo negli strumenti dell'editor per selezionare oggetti con forme complesse in base alla posizione del cursore del mouse.
Prestazioni: La creazione dell'albero BVH per geometrie complesse è un processo lento ed è meglio eseguirlo in un thread in background.
Metodi
create_from_faces(faces: PackedVector3Array) |
|
get_faces() const |
|
intersect_ray(begin: Vector3, dir: Vector3) const |
|
intersect_segment(begin: Vector3, end: Vector3) const |
Descrizioni dei metodi
bool create_from_faces(faces: PackedVector3Array) 🔗
Crea l'albero BVH da un array di facce. Ogni 3 vertici dell'array faces rappresentano un triangolo (faccia).
Restituisce true se l'albero è costruito correttamente, false altrimenti.
PackedVector3Array get_faces() const 🔗
Restituisce una copia delle facce della geometria. Ogni tre vertici rappresentano un triangolo (faccia).
Dictionary intersect_ray(begin: Vector3, dir: Vector3) const 🔗
Verifica l'intersezione con un raggio che inizia in begin ed è rivolto verso dir, estendendosi verso l'infinito.
Se si verifica un'intersezione con un triangolo, restituisce un Dictionary con i seguenti campi:
position: la posizione sul triangolo intersecato.
normal: la normale del triangolo intersecato.
face_index: l'indice del triangolo intersecato.
Restituisce un Dictionary vuoto se non si verifica alcuna intersezione.
Vedi anche intersect_segment(), che è simile ma utilizza un segmento di lunghezza finita.
Dictionary intersect_segment(begin: Vector3, end: Vector3) const 🔗
Verifica l'intersezione con un segmento che va da begin a end.
Se si verifica un'intersezione con un triangolo, restituisce un Dictionary con i seguenti campi:
position: la posizione sul triangolo intersecato.
normal: la normale del triangolo intersecato.
face_index: l'indice del triangolo intersecato.
Restituisce un Dictionary vuoto se non si verifica alcuna intersezione.
Vedi anche intersect_ray(), che è simile ma utilizza un raggio di lunghezza infinita.