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...
Curve
Eredita: Resource < RefCounted < Object
Una curva matematica.
Descrizione
Questa risorsa descrive una curva matematica definendo una serie di punti e tangenti in ogni punto. Come predefinito, varia tra 0 e 1 sugli assi X e Y, ma è possibile cambiare questi intervalli.
Si noti che molte risorse e nodi presumono di avere curve unitarie. Una curva unitaria è una curva il cui dominio (l'asse X) è compreso tra 0 e 1. Alcuni esempi di utilizzo di una curva unitaria sono CPUParticles2D.angle_curve e Line2D.width_curve.
Proprietà
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Metodi
add_point(position: Vector2, left_tangent: float = 0, right_tangent: float = 0, left_mode: TangentMode = 0, right_mode: TangentMode = 0) |
|
void |
bake() |
void |
|
void |
|
get_domain_range() const |
|
get_point_left_mode(index: int) const |
|
get_point_left_tangent(index: int) const |
|
get_point_position(index: int) const |
|
get_point_right_mode(index: int) const |
|
get_point_right_tangent(index: int) const |
|
get_value_range() const |
|
void |
remove_point(index: int) |
sample_baked(offset: float) const |
|
void |
set_point_left_mode(index: int, mode: TangentMode) |
void |
set_point_left_tangent(index: int, tangent: float) |
set_point_offset(index: int, offset: float) |
|
void |
set_point_right_mode(index: int, mode: TangentMode) |
void |
set_point_right_tangent(index: int, tangent: float) |
void |
set_point_value(index: int, y: float) |
Segnali
domain_changed() 🔗
Emesso quando max_domain o min_domain vengono modificati.
range_changed() 🔗
Enumerazioni
enum TangentMode: 🔗
TangentMode TANGENT_FREE = 0
La tangente su questo lato del punto è definita dall'utente.
TangentMode TANGENT_LINEAR = 1
La curva calcola la tangente su questo lato del punto come la pendenza a metà strada verso il punto adiacente.
TangentMode TANGENT_MODE_COUNT = 2
Il numero totale di modalità tangenti disponibili.
Descrizioni delle proprietà
Il numero di punti da includere nei dati della curva precalcolati (ovvero memorizzati nella cache).
Il dominio massimo (la coordinata x) che i punti possono avere.
Il valore massimo (coordinata y) che i punti possono avere. Le tangenti possono causare valori più alti tra i punti.
Il dominio minimo (la coordinata x) che i punti possono avere.
Il valore minimo (coordinata y) che i punti possono avere. Le tangenti possono causare valori più bassi tra i punti.
Il numero di punti che descrivono la curva.
int point_{index}/left_mode = 0 🔗
The left TangentMode for the point at index.
Note: index is a value in the 0 .. point_count - 1 range.
float point_{index}/left_tangent = 0.0 🔗
The left tangent angle (in degrees) for the point at index.
Note: index is a value in the 0 .. point_count - 1 range.
Vector2 point_{index}/position = Vector2(0, 0) 🔗
The position of the point at index.
Note: index is a value in the 0 .. point_count - 1 range.
int point_{index}/right_mode = 0 🔗
The right TangentMode for the point at index.
Note: index is a value in the 0 .. point_count - 1 range.
float point_{index}/right_tangent = 0.0 🔗
The right tangent angle (in degrees) for the point at index.
Note: index is a value in the 0 .. point_count - 1 range.
Descrizioni dei metodi
int add_point(position: Vector2, left_tangent: float = 0, right_tangent: float = 0, left_mode: TangentMode = 0, right_mode: TangentMode = 0) 🔗
Aggiunge un punto alla curva. Per ciascun lato, se il *_mode è TANGENT_LINEAR, l'angolo *_tangente (in gradi) utilizza la pendenza della curva definita rispetto alla semidistanza dal punto adiacente. Consente di specificare tangenti personalizzate con *_tangent se *_mode è impostato su TANGENT_FREE.
void bake() 🔗
Ricalcola la cache dei punti della curva.
void clean_dupes() 🔗
Rimuove i punti duplicati, ossia i punti che sono lontani meno di 0,00001 unità (valore epsilon del motore) dal loro vicino sulla curva.
void clear_points() 🔗
Rimuove tutti i punti dalla curva.
float get_domain_range() const 🔗
Restituisce la differenza tra min_domain e max_domain.
TangentMode get_point_left_mode(index: int) const 🔗
Restituisce il TangentMode sinistro per il punto all'indice index.
float get_point_left_tangent(index: int) const 🔗
Restituisce l'angolo tangente sinistro (in gradi) per il punto all'indice index.
Vector2 get_point_position(index: int) const 🔗
Restituisce le coordinate della curva per il punto all'indice index.
TangentMode get_point_right_mode(index: int) const 🔗
Restituisce il TangentMode destro per il punto all'indice index.
float get_point_right_tangent(index: int) const 🔗
Restituisce l'angolo tangente destro (in gradi) per il punto all'indice index.
float get_value_range() const 🔗
Restituisce la differenza tra min_value e max_value.
void remove_point(index: int) 🔗
Rimuove il punto all'indice index dalla curva.
float sample(offset: float) const 🔗
Restituisce il valore Y per il punto che esisterebbe nell'offset di posizione X lungo la curva.
float sample_baked(offset: float) const 🔗
Restituisce il valore Y per il punto che esisterebbe nell'offset di posizione X lungo la curva usando la cache precalcolata. Precalcola i punti della curva se non sono già stati calcolati.
void set_point_left_mode(index: int, mode: TangentMode) 🔗
Imposta il TangentMode sinistro per il punto all'indice index su mode.
void set_point_left_tangent(index: int, tangent: float) 🔗
Imposta l'angolo tangente sinistro per il punto all'indice index su tangent.
int set_point_offset(index: int, offset: float) 🔗
Assigns the horizontal position offset to the point at index.
void set_point_right_mode(index: int, mode: TangentMode) 🔗
Imposta il TangentMode destro per il punto all'indice index su mode.
void set_point_right_tangent(index: int, tangent: float) 🔗
Imposta l'angolo tangente destro per il punto all'indice index su tangent.
void set_point_value(index: int, y: float) 🔗
Assegna la posizione verticale y al punto all'indice index.