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
Hereda: Resource < RefCounted < Object
Una curva matemática.
Descripción
Este recurso describe una curva matemática definiendo un conjunto de puntos y tangentes en cada punto. Por defecto, abarca entre 0 y 1 en los ejes X e Y, pero estos rangos pueden cambiarse.
Ten en cuenta que muchos recursos y nodos asumen que se les proporcionan curvas unitarias. Una curva unitaria es una curva cuyo dominio (el eje X) está entre 0 y 1. Algunos ejemplos de uso de curvas unitarias son CPUParticles2D.angle_curve y Line2D.width_curve.
Propiedades
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Métodos
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) |
Señales
domain_changed() 🔗
Emitida cuando se cambia max_domain o min_domain.
range_changed() 🔗
Enumeraciones
enum TangentMode: 🔗
TangentMode TANGENT_FREE = 0
La tangente de este lado del punto es definida por el usuario.
TangentMode TANGENT_LINEAR = 1
La curva calcula la tangente de este lado del punto como la pendiente a mitad de camino hacia el punto adyacente.
TangentMode TANGENT_MODE_COUNT = 2
El número total de modos tangentes disponibles.
Descripciones de Propiedades
El número de puntos a incluir en los datos procesados (es decir, en caché) de la curva.
El dominio máximo (coordenada X) que pueden tener los puntos.
El valor máximo (coordenada Y) que pueden tener los puntos. Las tangentes pueden causar valores más altos entre los puntos.
El dominio mínimo (coordenada X) que pueden tener los puntos.
El valor mínimo (coordenada Y) que pueden tener los puntos. Las tangentes pueden causar valores más bajos entre los puntos.
El número de puntos que describen 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 🔗
El ángulo de la tangente derecha (en grados) para el punto en index.
Nota: index es un valor en el rango 0 .. point_count - 1.
Descripciones de Métodos
int add_point(position: Vector2, left_tangent: float = 0, right_tangent: float = 0, left_mode: TangentMode = 0, right_mode: TangentMode = 0) 🔗
Añade un punto a la curva. Para cada lado, si el *_mode es TANGENT_LINEAR, el ángulo *_tangent (en grados) utiliza la pendiente de la curva a mitad de camino del punto adyacente. Permite asignaciones personalizadas al ángulo *_tangent si *_mode se establece en TANGENT_FREE.
void bake() 🔗
Recompone la caché de puntos cocinada para la curva.
void clean_dupes() 🔗
Elimina los puntos duplicados, es decir, aquellos que se encuentran a menos de 0.00001 unidades (valor epsilon del motor) de su punto vecino en la curva.
void clear_points() 🔗
Elimina todos los puntos de la curva.
float get_domain_range() const 🔗
Devuelve la diferencia entre min_domain y max_domain.
TangentMode get_point_left_mode(index: int) const 🔗
Devuelve el TangentMode izquierdo para el punto en index.
float get_point_left_tangent(index: int) const 🔗
Devuelve el ángulo de la tangente izquierda (en grados) para el punto en index.
Vector2 get_point_position(index: int) const 🔗
Devuelve las coordenadas de la curva para el punto en index.
TangentMode get_point_right_mode(index: int) const 🔗
Devuelve el TangentMode derecho para el punto en index.
float get_point_right_tangent(index: int) const 🔗
Devuelve el ángulo de la tangente derecha (en grados) para el punto en index.
float get_value_range() const 🔗
Devuelve la diferencia entre min_value y max_value.
void remove_point(index: int) 🔗
Elimina el punto en index de la curva.
float sample(offset: float) const 🔗
Devuelve el valor Y para el punto que existiría en la posición X offset a lo largo de la curva.
float sample_baked(offset: float) const 🔗
Devuelve el valor Y para el punto que existiría en la posición X offset a lo largo de la curva utilizando la caché procesada. Procesa los puntos de la curva si aún no están procesados.
void set_point_left_mode(index: int, mode: TangentMode) 🔗
Establece el TangentMode izquierdo para el punto en index a mode.
void set_point_left_tangent(index: int, tangent: float) 🔗
Establece el ángulo de la tangente izquierda para el punto en index a 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) 🔗
Establece el TangentMode derecho para el punto en index a mode.
void set_point_right_tangent(index: int, tangent: float) 🔗
Establece el ángulo de la tangente derecha para el punto en index a tangent.
void set_point_value(index: int, y: float) 🔗
Asigna la posición vertical y al punto en index.