Curve
Inherits: Resource < Reference < Object
Category: Core
Brief Description
A mathematic curve.
Properties
int | bake_resolution |
float | max_value |
float | min_value |
Methods
int | add_point ( Vector2 position, float left_tangent=0, float right_tangent=0, TangentMode left_mode=0, TangentMode right_mode=0 ) |
void | bake ( ) |
void | clean_dupes ( ) |
void | clear_points ( ) |
int | get_point_count ( ) const |
TangentMode | get_point_left_mode ( int index ) const |
float | get_point_left_tangent ( int index ) const |
Vector2 | get_point_position ( int index ) const |
TangentMode | get_point_right_mode ( int index ) const |
float | get_point_right_tangent ( int index ) const |
float | interpolate ( float offset ) const |
float | interpolate_baked ( float offset ) |
void | remove_point ( int index ) |
void | set_point_left_mode ( int index, TangentMode mode ) |
void | set_point_left_tangent ( int index, float tangent ) |
int | set_point_offset ( int index, float offset ) |
void | set_point_right_mode ( int index, TangentMode mode ) |
void | set_point_right_tangent ( int index, float tangent ) |
void | set_point_value ( int index, float y ) |
Signals
- range_changed ( )
Emitted when max_value or min_value is changed.
Enumerations
enum TangentMode:
- TANGENT_FREE = 0 — The tangent on this side of the point is user-defined.
- TANGENT_LINEAR = 1 — The curve calculates the tangent on this side of the point as the slope halfway towards the adjacent point.
- TANGENT_MODE_COUNT = 2 — The total number of available tangent modes.
Description
A curve that can be saved and re-used for other objects. By default it ranges between 0
and 1
on the y-axis and positions points relative to the 0.5
y-position.
Property Descriptions
- int bake_resolution
Setter | set_bake_resolution(value) |
Getter | get_bake_resolution() |
The number of points to include in the baked (i.e. cached) curve data.
- float max_value
Setter | set_max_value(value) |
Getter | get_max_value() |
The maximum value the curve can reach. Default value: 1
.
- float min_value
Setter | set_min_value(value) |
Getter | get_min_value() |
The minimum value the curve can reach. Default value: 0
.
Method Descriptions
- int add_point ( Vector2 position, float left_tangent=0, float right_tangent=0, TangentMode left_mode=0, TangentMode right_mode=0 )
Adds a point to the curve. For each side, if the *_mode
is TANGENT_LINEAR, the *_tangent
angle (in degrees) uses the slope of the curve halfway to the adjacent point. Allows custom assignments to the *_tangent
angle if *_mode
is set to TANGENT_FREE.
- void bake ( )
Recomputes the baked cache of points for the curve.
- void clean_dupes ( )
Removes points that are closer than CMP_EPSILON
(0.00001) units to their neighbor on the curve.
- void clear_points ( )
Removes all points from the curve.
- int get_point_count ( ) const
Returns the number of points describing the curve.
- TangentMode get_point_left_mode ( int index ) const
Returns the left TangentMode
for the point at index
.
Returns the left tangent angle (in degrees) for the point at index
.
Returns the curve coordinates for the point at index
.
- TangentMode get_point_right_mode ( int index ) const
Returns the right TangentMode
for the point at index
.
Returns the right tangent angle (in degrees) for the point at index
.
Returns the y value for the point that would exist at x-position offset
along the curve.
Returns the y value for the point that would exist at x-position offset
along the curve using the baked cache. Bakes the curve’s points if not already baked.
- void remove_point ( int index )
Removes the point at index
from the curve.
- void set_point_left_mode ( int index, TangentMode mode )
Sets the left TangentMode
for the point at index
to mode
.
Sets the left tangent angle for the point at index
to tangent
.
Sets the offset from 0.5
- void set_point_right_mode ( int index, TangentMode mode )
Sets the right TangentMode
for the point at index
to mode
.
Sets the right tangent angle for the point at index
to tangent
.
Assigns the vertical position y
to the point at index
.