Curve
Наследует: Resource < RefCounted < Object
Математическая кривая.
Описание
Этот ресурс описывает математическую кривую, определяя набор точек и касательных в каждой точке. По умолчанию он находится в диапазоне между 0 и 1 по осям X и Y, но эти диапазоны можно изменить.
Обратите внимание, что многие ресурсы и узлы предполагают, что им заданы единичные кривые. Единичная кривая — это кривая, область определения (ось X) которой находится между 0 и 1. Некоторые примеры использования единичной кривой: CPUParticles2D.angle_curve и Line2D.width_curve.
Свойства
|
||
|
||
|
||
|
||
|
||
|
Методы
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) |
Сигналы
domain_changed() 🔗
Вызывается при изменении max_domain или min_domain.
range_changed() 🔗
Перечисления
enum TangentMode: 🔗
TangentMode TANGENT_FREE = 0
Касательная по эту сторону точки определяется пользователем.
TangentMode TANGENT_LINEAR = 1
Кривая вычисляет касательную по эту сторону от точки как наклон на полпути к соседней точке.
TangentMode TANGENT_MODE_COUNT = 2
Общее количество доступных касательных мод.
Описания свойств
Количество точек, включаемых в запеченные (т.е. кэшированные) данные кривой.
Максимальный домен (координата x), который может иметь точка.
Максимальное значение (координата Y), которое могут иметь точки. Касательные могут вызывать более высокие значения между точками.
Минимальная область (координата x), которую могут иметь точки.
Минимальное значение (координата Y), которое могут иметь точки. Касательные могут вызывать более низкие значения между точками.
Количество точек, описывающих кривую.
Описания метода
int add_point(position: Vector2, left_tangent: float = 0, right_tangent: float = 0, left_mode: TangentMode = 0, right_mode: TangentMode = 0) 🔗
Добавляет точку к кривой. Для каждой стороны, если *_mode равно TANGENT_LINEAR, угол *_tangent (в градусах) использует наклон кривой на полпути к соседней точке. Позволяет настраивать назначения угла *_tangent, если *_mode равно TANGENT_FREE.
void bake() 🔗
Пересчитывает запеченный кэш точек для кривой.
void clean_dupes() 🔗
Удаляет дублирующиеся точки, т. е. точки, которые находятся на расстоянии менее 0,00001 единицы (значение эпсилон двигателя) от своего соседа на кривой.
void clear_points() 🔗
Удаляет все точки из кривой.
float get_domain_range() const 🔗
Возвращает разницу между min_domain и max_domain.
TangentMode get_point_left_mode(index: int) const 🔗
Возвращает левый TangentMode для точки с index.
float get_point_left_tangent(index: int) const 🔗
Возвращает левый угол касательной (в градусах) для точки с index.
Vector2 get_point_position(index: int) const 🔗
Возвращает координаты кривой для точки с index.
TangentMode get_point_right_mode(index: int) const 🔗
Возвращает правильный TangentMode для точки с index.
float get_point_right_tangent(index: int) const 🔗
Возвращает угол прямого тангенса (в градусах) для точки с index.
float get_value_range() const 🔗
Возвращает разницу между min_value] и max_value.
void remove_point(index: int) 🔗
Удаляет точку с index из кривой.
float sample(offset: float) const 🔗
Возвращает значение Y для точки, которая будет находиться в позиции X offset вдоль кривой.
float sample_baked(offset: float) const 🔗
Возвращает значение Y для точки, которая будет существовать в позиции X offset вдоль кривой, используя запеченный кэш. Запекает точки кривой, если они еще не запечены.
void set_point_left_mode(index: int, mode: TangentMode) 🔗
Устанавливает левый TangentMode для точки с index в mode.
void set_point_left_tangent(index: int, tangent: float) 🔗
Устанавливает левый угол касательной для точки с index на tangent.
int set_point_offset(index: int, offset: float) 🔗
Устанавливает смещение от 0.5.
void set_point_right_mode(index: int, mode: TangentMode) 🔗
Устанавливает правильный TangentMode для точки с index в mode.
void set_point_right_tangent(index: int, tangent: float) 🔗
Устанавливает прямой угол касательной для точки с index на tangent.
void set_point_value(index: int, y: float) 🔗
Присваивает вертикальное положение y точке с index.