Files
godot-docs-l10n/classes/it/class_curve3d.rst

496 lines
34 KiB
ReStructuredText

:github_url: hide
.. _class_Curve3D:
Curve3D
=======
**Eredita:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
Descrive una curva di Bézier nello spazio 3D.
.. rst-class:: classref-introduction-group
Descrizione
----------------------
Questa classe descrive una curva di Bézier nello spazio 3D. È usata principalmente per dare una forma a un :ref:`Path3D<class_Path3D>`, ma può essere campionata manualmente per altri motivi.
Mantiene una cache di punti precalcolati lungo la curva, per velocizzare ulteriori calcoli.
.. rst-class:: classref-reftable-group
Proprietà
------------------
.. table::
:widths: auto
+---------------------------+--------------------------------------------------------------------+-----------+
| :ref:`float<class_float>` | :ref:`bake_interval<class_Curve3D_property_bake_interval>` | ``0.2`` |
+---------------------------+--------------------------------------------------------------------+-----------+
| :ref:`bool<class_bool>` | :ref:`closed<class_Curve3D_property_closed>` | ``false`` |
+---------------------------+--------------------------------------------------------------------+-----------+
| :ref:`int<class_int>` | :ref:`point_count<class_Curve3D_property_point_count>` | ``0`` |
+---------------------------+--------------------------------------------------------------------+-----------+
| :ref:`bool<class_bool>` | :ref:`up_vector_enabled<class_Curve3D_property_up_vector_enabled>` | ``true`` |
+---------------------------+--------------------------------------------------------------------+-----------+
.. rst-class:: classref-reftable-group
Metodi
------------
.. table::
:widths: auto
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_point<class_Curve3D_method_add_point>`\ (\ position\: :ref:`Vector3<class_Vector3>`, in\: :ref:`Vector3<class_Vector3>` = Vector3(0, 0, 0), out\: :ref:`Vector3<class_Vector3>` = Vector3(0, 0, 0), index\: :ref:`int<class_int>` = -1\ ) |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`clear_points<class_Curve3D_method_clear_points>`\ (\ ) |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_baked_length<class_Curve3D_method_get_baked_length>`\ (\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`get_baked_points<class_Curve3D_method_get_baked_points>`\ (\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedFloat32Array<class_PackedFloat32Array>` | :ref:`get_baked_tilts<class_Curve3D_method_get_baked_tilts>`\ (\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`get_baked_up_vectors<class_Curve3D_method_get_baked_up_vectors>`\ (\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_closest_offset<class_Curve3D_method_get_closest_offset>`\ (\ to_point\: :ref:`Vector3<class_Vector3>`\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`get_closest_point<class_Curve3D_method_get_closest_point>`\ (\ to_point\: :ref:`Vector3<class_Vector3>`\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`get_point_in<class_Curve3D_method_get_point_in>`\ (\ idx\: :ref:`int<class_int>`\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`get_point_out<class_Curve3D_method_get_point_out>`\ (\ idx\: :ref:`int<class_int>`\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`get_point_position<class_Curve3D_method_get_point_position>`\ (\ idx\: :ref:`int<class_int>`\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_point_tilt<class_Curve3D_method_get_point_tilt>`\ (\ idx\: :ref:`int<class_int>`\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_point<class_Curve3D_method_remove_point>`\ (\ idx\: :ref:`int<class_int>`\ ) |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`sample<class_Curve3D_method_sample>`\ (\ idx\: :ref:`int<class_int>`, t\: :ref:`float<class_float>`\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`sample_baked<class_Curve3D_method_sample_baked>`\ (\ offset\: :ref:`float<class_float>` = 0.0, cubic\: :ref:`bool<class_bool>` = false\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`sample_baked_up_vector<class_Curve3D_method_sample_baked_up_vector>`\ (\ offset\: :ref:`float<class_float>`, apply_tilt\: :ref:`bool<class_bool>` = false\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Transform3D<class_Transform3D>` | :ref:`sample_baked_with_rotation<class_Curve3D_method_sample_baked_with_rotation>`\ (\ offset\: :ref:`float<class_float>` = 0.0, cubic\: :ref:`bool<class_bool>` = false, apply_tilt\: :ref:`bool<class_bool>` = false\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`samplef<class_Curve3D_method_samplef>`\ (\ fofs\: :ref:`float<class_float>`\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_point_in<class_Curve3D_method_set_point_in>`\ (\ idx\: :ref:`int<class_int>`, position\: :ref:`Vector3<class_Vector3>`\ ) |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_point_out<class_Curve3D_method_set_point_out>`\ (\ idx\: :ref:`int<class_int>`, position\: :ref:`Vector3<class_Vector3>`\ ) |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_point_position<class_Curve3D_method_set_point_position>`\ (\ idx\: :ref:`int<class_int>`, position\: :ref:`Vector3<class_Vector3>`\ ) |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_point_tilt<class_Curve3D_method_set_point_tilt>`\ (\ idx\: :ref:`int<class_int>`, tilt\: :ref:`float<class_float>`\ ) |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`tessellate<class_Curve3D_method_tessellate>`\ (\ max_stages\: :ref:`int<class_int>` = 5, tolerance_degrees\: :ref:`float<class_float>` = 4\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`tessellate_even_length<class_Curve3D_method_tessellate_even_length>`\ (\ max_stages\: :ref:`int<class_int>` = 5, tolerance_length\: :ref:`float<class_float>` = 0.2\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Descrizioni delle proprietà
------------------------------------------------------
.. _class_Curve3D_property_bake_interval:
.. rst-class:: classref-property
:ref:`float<class_float>` **bake_interval** = ``0.2`` :ref:`🔗<class_Curve3D_property_bake_interval>`
.. rst-class:: classref-property-setget
- |void| **set_bake_interval**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_bake_interval**\ (\ )
La distanza in metri tra due punti adiacenti memorizzati nella cache. Modificandola, la cache verrà ricalcolata la prossima volta che verrà chiamata la funzione :ref:`get_baked_points()<class_Curve3D_method_get_baked_points>` o :ref:`get_baked_length()<class_Curve3D_method_get_baked_length>`. Minore è la distanza, più punti ci saranno nella cache e più memoria consumerà, quindi usala con cautela.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_property_closed:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **closed** = ``false`` :ref:`🔗<class_Curve3D_property_closed>`
.. rst-class:: classref-property-setget
- |void| **set_closed**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_closed**\ (\ )
Se ``true`` e la curva ha più di 2 punti di controllo, l'ultimo punto e il primo saranno collegati in un ciclo.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_property_point_count:
.. rst-class:: classref-property
:ref:`int<class_int>` **point_count** = ``0`` :ref:`🔗<class_Curve3D_property_point_count>`
.. rst-class:: classref-property-setget
- |void| **set_point_count**\ (\ value\: :ref:`int<class_int>`\ )
- :ref:`int<class_int>` **get_point_count**\ (\ )
Il numero di punti che descrivono la curva.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_property_up_vector_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **up_vector_enabled** = ``true`` :ref:`🔗<class_Curve3D_property_up_vector_enabled>`
.. rst-class:: classref-property-setget
- |void| **set_up_vector_enabled**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_up_vector_enabled**\ (\ )
Se ``true``, la curva precalcolerà i vettori usati per l'orientamento. Questo viene usato quando :ref:`PathFollow3D.rotation_mode<class_PathFollow3D_property_rotation_mode>` è impostato su :ref:`PathFollow3D.ROTATION_ORIENTED<class_PathFollow3D_constant_ROTATION_ORIENTED>`. Modificandolo, si forza il ricalcolo della cache.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Descrizioni dei metodi
--------------------------------------------
.. _class_Curve3D_method_add_point:
.. rst-class:: classref-method
|void| **add_point**\ (\ position\: :ref:`Vector3<class_Vector3>`, in\: :ref:`Vector3<class_Vector3>` = Vector3(0, 0, 0), out\: :ref:`Vector3<class_Vector3>` = Vector3(0, 0, 0), index\: :ref:`int<class_int>` = -1\ ) :ref:`🔗<class_Curve3D_method_add_point>`
Aggiunge un punto con la posizione ``position``, relativa alla posizione della curva, con punti di controllo d'ingresso ``in`` e d'uscita ``out``. Aggiunge il nuovo punto alla fine della lista dei punti.
Se viene specificato ``index``, il nuovo punto viene inserito prima del punto esistente, identificato dall'indice ``index``. Ogni punto esistente a partire da ``index`` viene spostato più in basso nella lista dei punti. L'indice deve essere maggiore o uguale a ``0`` e non deve superare il numero di punti esistenti nella riga. Vedi :ref:`point_count<class_Curve3D_property_point_count>`.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_clear_points:
.. rst-class:: classref-method
|void| **clear_points**\ (\ ) :ref:`🔗<class_Curve3D_method_clear_points>`
Rimuove tutti i punti dalla curva.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_get_baked_length:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_baked_length**\ (\ ) |const| :ref:`🔗<class_Curve3D_method_get_baked_length>`
Restituisce la lunghezza totale della curva, in base ai punti memorizzati nella cache. Con una densità sufficiente (vedi :ref:`bake_interval<class_Curve3D_property_bake_interval>`), dovrebbe essere abbastanza approssimativa.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_get_baked_points:
.. rst-class:: classref-method
:ref:`PackedVector3Array<class_PackedVector3Array>` **get_baked_points**\ (\ ) |const| :ref:`🔗<class_Curve3D_method_get_baked_points>`
Restituisce i punti memorizzati nella cache come :ref:`PackedVector3Array<class_PackedVector3Array>`.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_get_baked_tilts:
.. rst-class:: classref-method
:ref:`PackedFloat32Array<class_PackedFloat32Array>` **get_baked_tilts**\ (\ ) |const| :ref:`🔗<class_Curve3D_method_get_baked_tilts>`
Restituisce le inclinazioni memorizzate nella cache come :ref:`PackedFloat32Array<class_PackedFloat32Array>`.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_get_baked_up_vectors:
.. rst-class:: classref-method
:ref:`PackedVector3Array<class_PackedVector3Array>` **get_baked_up_vectors**\ (\ ) |const| :ref:`🔗<class_Curve3D_method_get_baked_up_vectors>`
Restituisce i vettori alti memorizzati nella cache come :ref:`PackedVector3Array<class_PackedVector3Array>`.
Se :ref:`up_vector_enabled<class_Curve3D_property_up_vector_enabled>` è ``false``, la cache sarà vuota.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_get_closest_offset:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_closest_offset**\ (\ to_point\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_Curve3D_method_get_closest_offset>`
Restituisce l'offset più vicino a ``to_point``. Questo offset è pensato per essere utilizzato in :ref:`sample_baked()<class_Curve3D_method_sample_baked>` o :ref:`sample_baked_up_vector()<class_Curve3D_method_sample_baked_up_vector>`.
\ ``to_point`` deve essere nello spazio locale di questa curva.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_get_closest_point:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **get_closest_point**\ (\ to_point\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_Curve3D_method_get_closest_point>`
Restituisce il punto più vicino sui segmenti precalcolati (nello spazio locale della curva) a ``to_point``.
\ ``to_point`` deve essere nello spazio locale di questa curva.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_get_point_in:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **get_point_in**\ (\ idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_Curve3D_method_get_point_in>`
Restituisce la posizione del punto di controllo che porta verso il vertice all'indice ``idx``. La posizione è relativa al vertice all'indice ``idx``. Se l'indice è fuori dai limiti, la funzione invia un errore alla console e restituisce ``(0, 0, 0)``.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_get_point_out:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **get_point_out**\ (\ idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_Curve3D_method_get_point_out>`
Restituisce la posizione del punto di controllo che porta fuori dal vertice all'indice ``idx``. La posizione è relativa al vertice. Se l'indice è fuori dai limiti, la funzione invia un errore alla console e restituisce ``(0, 0, 0)``.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_get_point_position:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **get_point_position**\ (\ idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_Curve3D_method_get_point_position>`
Restituisce la posizione del vertice all'indice ``idx``. Se l'indice è fuori dai limiti, la funzione invia un errore alla console e restituisce ``(0, 0, 0)``.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_get_point_tilt:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_point_tilt**\ (\ idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_Curve3D_method_get_point_tilt>`
Restituisce l'angolo di inclinazione in radianti per il punto all'indice ``idx``. Se l'indice è fuori dai limiti, la funzione invia un errore alla console e restituisce ``0``.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_remove_point:
.. rst-class:: classref-method
|void| **remove_point**\ (\ idx\: :ref:`int<class_int>`\ ) :ref:`🔗<class_Curve3D_method_remove_point>`
Elimina il punto all'indice ``idx`` dalla curva. Invia un errore alla console se ``idx`` è fuori dai limiti.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_sample:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **sample**\ (\ idx\: :ref:`int<class_int>`, t\: :ref:`float<class_float>`\ ) |const| :ref:`🔗<class_Curve3D_method_sample>`
Restituisce la posizione tra il vertice all'indice ``idx`` e il vertice ``idx + 1``, dove ``t`` controlla se il punto è il primo vertice (``t = 0,0``), l'ultimo vertice (``t = 1,0``) o intermedio. I valori di ``t`` al di fuori dell'intervallo (``0,0 >= t <=1``) danno risultati strani, ma prevedibili.
Se ``idx`` è fuori dai limiti, viene troncato al primo o all'ultimo vertice e ``t`` viene ignorato. Se la curva non ha punti, la funzione invia un errore alla console e restituisce ``(0, 0, 0)``.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_sample_baked:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **sample_baked**\ (\ offset\: :ref:`float<class_float>` = 0.0, cubic\: :ref:`bool<class_bool>` = false\ ) |const| :ref:`🔗<class_Curve3D_method_sample_baked>`
Restituisce un punto all'interno della curva nella posizione ``offset``, dove ``offset`` è misurato come distanza in unità 3D lungo la curva. Per farlo, trova i due punti memorizzati nella cache tra cui si trova ``offset``, quindi interpola i valori. Questa interpolazione è cubica se ``cubic`` è impostato su ``true``, o lineare se impostato su ``false``.
L'interpolazione cubica tende a seguire meglio le curve, ma quella lineare è più veloce (e spesso, precisa abbastanza).
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_sample_baked_up_vector:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **sample_baked_up_vector**\ (\ offset\: :ref:`float<class_float>`, apply_tilt\: :ref:`bool<class_bool>` = false\ ) |const| :ref:`🔗<class_Curve3D_method_sample_baked_up_vector>`
Restituisce un vettore verso l'alto all'interno della curva nella posizione ``offset``, dove ``offset`` è misurato come distanza in unità 3D lungo la curva. Per farlo, trova i due vettori up memorizzati nella cache tra cui si trova ``offset``, quindi interpola i valori. Se ``apply_tilt`` è ``true``, un'inclinazione interpolata viene applicata al vettore verso l'alto interpolato.
Se la curva non ha vettori verso l'alto, la funzione invia un errore alla console e restituisce ``(0, 1, 0)``.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_sample_baked_with_rotation:
.. rst-class:: classref-method
:ref:`Transform3D<class_Transform3D>` **sample_baked_with_rotation**\ (\ offset\: :ref:`float<class_float>` = 0.0, cubic\: :ref:`bool<class_bool>` = false, apply_tilt\: :ref:`bool<class_bool>` = false\ ) |const| :ref:`🔗<class_Curve3D_method_sample_baked_with_rotation>`
Restituisce un :ref:`Transform3D<class_Transform3D>` con ``origin`` come posizione del punto, ``basis.x`` come vettore laterale, ``basis.y`` come vettore verso l'alto, ``basis.z`` come vettore in avanti. Quando la lunghezza della curva è 0, non esiste un modo ragionevole per calcolare la rotazione, tutti i vettori sono allineati con gli assi dello spazio globale. Vedi anche :ref:`sample_baked()<class_Curve3D_method_sample_baked>`.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_samplef:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **samplef**\ (\ fofs\: :ref:`float<class_float>`\ ) |const| :ref:`🔗<class_Curve3D_method_samplef>`
Restituisce la posizione sul vertice ``fofs``. Chiama :ref:`sample()<class_Curve3D_method_sample>` utilizzando la parte intera di ``fofs`` come indice (``idx``) e la sua parte frazionaria come ``t``.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_set_point_in:
.. rst-class:: classref-method
|void| **set_point_in**\ (\ idx\: :ref:`int<class_int>`, position\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_Curve3D_method_set_point_in>`
Imposta la posizione del punto di controllo che porta verso il vertice all'indice ``idx``. Se l'indice è fuori dai limiti, la funzione invia un errore alla console. La posizione è relativa al vertice.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_set_point_out:
.. rst-class:: classref-method
|void| **set_point_out**\ (\ idx\: :ref:`int<class_int>`, position\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_Curve3D_method_set_point_out>`
Imposta la posizione del punto di controllo che porta fuori dal vertice all'indice ``idx``. Se l'indice è fuori dai limiti, la funzione invia un errore alla console. La posizione è relativa al vertice.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_set_point_position:
.. rst-class:: classref-method
|void| **set_point_position**\ (\ idx\: :ref:`int<class_int>`, position\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_Curve3D_method_set_point_position>`
Imposta la posizione per il vertice all'indice ``idx``. Se l'indice è fuori dai limiti, la funzione invia un errore alla console.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_set_point_tilt:
.. rst-class:: classref-method
|void| **set_point_tilt**\ (\ idx\: :ref:`int<class_int>`, tilt\: :ref:`float<class_float>`\ ) :ref:`🔗<class_Curve3D_method_set_point_tilt>`
Imposta l'angolo di inclinazione in radianti per il punto all'indice ``idx``. Se l'indice è fuori dai limiti, la funzione invia un errore alla console.
L'inclinazione controlla la rotazione lungo l'asse di osservazione che avrebbe un oggetto percorrendo il percorso. Nel caso di una curva che controlla un :ref:`PathFollow3D<class_PathFollow3D>`, questa inclinazione è una deviazione relativa all'inclinazione naturale calcolata dal :ref:`PathFollow3D<class_PathFollow3D>`.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_tessellate:
.. rst-class:: classref-method
:ref:`PackedVector3Array<class_PackedVector3Array>` **tessellate**\ (\ max_stages\: :ref:`int<class_int>` = 5, tolerance_degrees\: :ref:`float<class_float>` = 4\ ) |const| :ref:`🔗<class_Curve3D_method_tessellate>`
Restituisce una lista di punti lungo la curva, con una densità di punti controllata dalla curvatura. Ovvero, le parti più curve avranno più punti rispetto alle parti più dritte.
Questa approssimazione crea segmenti dritti tra ogni punto, quindi suddivide tali segmenti finché la forma risultante non è abbastanza simile.
\ ``max_stages`` controlla quante suddivisioni può incontrare un segmento della curva prima di essere considerato abbastanza approssimativo. Ogni suddivisione divide il segmento a metà, quindi le 5 fasi predefinite possono significare fino a 32 suddivisioni per segmento della curva. Aumentare con cautela!
\ ``tolerance_degrees`` controlla di quanti gradi il punto medio di un segmento può deviare dalla curva reale, prima che il segmento debba essere suddiviso.
.. rst-class:: classref-item-separator
----
.. _class_Curve3D_method_tessellate_even_length:
.. rst-class:: classref-method
:ref:`PackedVector3Array<class_PackedVector3Array>` **tessellate_even_length**\ (\ max_stages\: :ref:`int<class_int>` = 5, tolerance_length\: :ref:`float<class_float>` = 0.2\ ) |const| :ref:`🔗<class_Curve3D_method_tessellate_even_length>`
Restituisce una lista di punti lungo la curva, con densità quasi uniforme. ``max_stages`` controlla quante suddivisioni può avere un segmento di curva prima di essere considerato abbastanza approssimativo. Ogni suddivisione divide il segmento a metà, quindi le 5 fasi predefiniti possono significare fino a 32 suddivisioni per segmento della curva. Aumentare con cautela!
\ ``tolerance_length`` controlla la distanza massima tra due punti adiacenti, prima che il segmento debba essere suddiviso.
.. |virtual| replace:: :abbr:`virtual (Questo metodo dovrebbe solitamente essere sovrascritto dall'utente per aver un effetto.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Questo metodo non ha effetti collaterali. Non modifica alcuna variabile appartenente all'istanza.)`
.. |vararg| replace:: :abbr:`vararg (Questo metodo accetta qualsiasi numero di argomenti oltre a quelli descritti qui.)`
.. |constructor| replace:: :abbr:`constructor (Questo metodo è utilizzato per creare un tipo.)`
.. |static| replace:: :abbr:`static (Questo metodo non necessita di alcun'istanza per essere chiamato, quindi può essere chiamato direttamente usando il nome della classe.)`
.. |operator| replace:: :abbr:`operator (Questo metodo descrive un operatore valido da usare con questo tipo come operando di sinistra.)`
.. |bitfield| replace:: :abbr:`BitField (Questo valore è un intero composto da una maschera di bit dei seguenti flag.)`
.. |void| replace:: :abbr:`void (Nessun valore restituito.)`