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

Hérite de : Resource < RefCounted < Object

Une courbe mathématique.

Description

Cette ressource décrit une courbe mathématique en définissant un ensemble de points et de tangentes à chaque point. Par défaut, elle s'étend entre 0 et 1 sur les axes X et Y, mais ces plages peuvent être modifiées.

Veuillez noter que de nombreuses ressources et nœuds supposent qu'ils reçoivent des courbes unitaires. Une courbe unitaire est une courbe dont le domaine (l'axe X) est compris entre 0 et 1. Certains exemples d'utilisation de courbes unitaires sont CPUParticles2D.angle_curve et Line2D.width_curve.

Propriétés

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éthodes

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)


Signaux

domain_changed() 🔗

Émis quand max_domain ou min_domain est changé.


range_changed() 🔗

Émis quand max_value ou min_value est changé.


Énumérations

enum TangentMode: 🔗

TangentMode TANGENT_FREE = 0

La tangente de ce côté du point est personnalisée.

TangentMode TANGENT_LINEAR = 1

La courbe calcule la tangente de ce côté du point comme la pente avec la demi-distance du point adjacent.

TangentMode TANGENT_MODE_COUNT = 2

Le nombre total de modes de tangentes disponibles.


Descriptions des propriétés

int bake_resolution = 100 🔗

  • void set_bake_resolution(value: int)

  • int get_bake_resolution()

Le nombre de points à inclure dans les données de cache de la courbe.


float max_domain = 1.0 🔗

  • void set_max_domain(value: float)

  • float get_max_domain()

Le domaine maximum (coordonnée en X) que les points peuvent avoir.


float max_value = 1.0 🔗

  • void set_max_value(value: float)

  • float get_max_value()

La valeur maximale (coordonnée en Y) que les points peuvent avoir. Les tangentes peuvent causer des valeurs plus élevées entre les points.


float min_domain = 0.0 🔗

  • void set_min_domain(value: float)

  • float get_min_domain()

Le domaine minimum (coordonnée en X) que les points peuvent avoir.


float min_value = 0.0 🔗

  • void set_min_value(value: float)

  • float get_min_value()

La valeur minimale (en coordonnée y) que les points peuvent avoir. Les tangentes peuvent causer des valeurs inférieures entre les points.


int point_count = 0 🔗

  • void set_point_count(value: int)

  • int get_point_count()

Le nombre de points décrivant la courbe.


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.


Descriptions des méthodes

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

Ajoute un point à la courbe. Pour chaque côté, si le *_mode est TANGENT_LINEAR, l'angle *_tangent (en degrés) utilise la pente de la courbe définie par rapport à la demi-distance du point adjacent. Permet des spécifier des tangentes personnalisées avec *_tangent si *_mode est défini à TANGENT_FREE.


void bake() 🔗

Recalcule le cache des points de la courbe.


void clean_dupes() 🔗

Retire les points dupliqués, c'est-à-dire les points qui sont moins de 0,00001 unités (valeur epsilon du moteur) de leur voisin sur la courbe.


void clear_points() 🔗

Supprime tous les points de la courbe.


float get_domain_range() const 🔗

Renvoie la différence entre min_domain et max_domain.


TangentMode get_point_left_mode(index: int) const 🔗

Renvoie le TangentMode de gauche pour le point à l'index index.


float get_point_left_tangent(index: int) const 🔗

Renvoie l'angle de la tangente gauche (en degrés) pour le point à l'index index.


Vector2 get_point_position(index: int) const 🔗

Renvoie les coordonnées de la courbe au point à l'index index.


TangentMode get_point_right_mode(index: int) const 🔗

Renvoie le TangentMode à droite du point à l'index index.


float get_point_right_tangent(index: int) const 🔗

Renvoie l'angle de la tangente droite (en degrés) pour le point à l'index index.


float get_value_range() const 🔗

Renvoie la différence entre min_value et max_value.


void remove_point(index: int) 🔗

Supprime le point à l'index index de la courbe.


float sample(offset: float) const 🔗

Renvoie la valeur Y pour un point qui existerait à la position X offset le long de la courbe.


float sample_baked(offset: float) const 🔗

Renvoie la valeur Y pour un point qui existerait à la position X offset le long de la courbe en utilisant le cache pré-calculé. Pré-calcule les points de la courbe si cela n'a pas déjà été fait.


void set_point_left_mode(index: int, mode: TangentMode) 🔗

Définit la TangentMode à gauche du point d'index index à mode.


void set_point_left_tangent(index: int, tangent: float) 🔗

Définit l'angle de la tangente gauche pour le point d'index index à 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) 🔗

Définit la TangentMode à droite du point d'index index à mode.


void set_point_right_tangent(index: int, tangent: float) 🔗

Définit l'angle de la tangente droite pour le point d'index index à tangent.


void set_point_value(index: int, y: float) 🔗

Assigne la position verticale y au point à l'index index.