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.

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

int

bake_resolution

100

float

max_domain

1.0

float

max_value

1.0

float

min_domain

0.0

float

min_value

0.0

int

point_count

0

int

point_{index}/left_mode

0

float

point_{index}/left_tangent

0.0

Vector2

point_{index}/position

Vector2(0, 0)

int

point_{index}/right_mode

0

float

point_{index}/right_tangent

0.0

Métodos

int

add_point(position: Vector2, left_tangent: float = 0, right_tangent: float = 0, left_mode: TangentMode = 0, right_mode: TangentMode = 0)

void

bake()

void

clean_dupes()

void

clear_points()

float

get_domain_range() const

TangentMode

get_point_left_mode(index: int) const

float

get_point_left_tangent(index: int) const

Vector2

get_point_position(index: int) const

TangentMode

get_point_right_mode(index: int) const

float

get_point_right_tangent(index: int) const

float

get_value_range() const

void

remove_point(index: int)

float

sample(offset: float) const

float

sample_baked(offset: float) const

void

set_point_left_mode(index: int, mode: TangentMode)

void

set_point_left_tangent(index: int, tangent: float)

int

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() 🔗

Emitida cuando se cambia max_value o min_value.


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

int bake_resolution = 100 🔗

  • void set_bake_resolution(value: int)

  • int get_bake_resolution()

El número de puntos a incluir en los datos procesados (es decir, en caché) de la curva.


float max_domain = 1.0 🔗

  • void set_max_domain(value: float)

  • float get_max_domain()

El dominio máximo (coordenada X) que pueden tener los puntos.


float max_value = 1.0 🔗

  • void set_max_value(value: float)

  • float get_max_value()

El valor máximo (coordenada Y) que pueden tener los puntos. Las tangentes pueden causar valores más altos entre los puntos.


float min_domain = 0.0 🔗

  • void set_min_domain(value: float)

  • float get_min_domain()

El dominio mínimo (coordenada X) que pueden tener los puntos.


float min_value = 0.0 🔗

  • void set_min_value(value: float)

  • float get_min_value()

El valor mínimo (coordenada Y) que pueden tener los puntos. Las tangentes pueden causar valores más bajos entre los puntos.


int point_count = 0 🔗

  • void set_point_count(value: int)

  • int get_point_count()

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.