github_url: | hide |
---|
Inherits: :ref:`Resource<class_Resource>` < :ref:`Reference<class_Reference>` < :ref:`Object<class_Object>`
A mathematic curve.
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.
- range_changed ( )
Emitted when :ref:`max_value<class_Curve_property_max_value>` or :ref:`min_value<class_Curve_property_min_value>` is changed.
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.
- :ref:`int<class_int>` bake_resolution
Default | 100 |
Setter | set_bake_resolution(value) |
Getter | get_bake_resolution() |
The number of points to include in the baked (i.e. cached) curve data.
- :ref:`float<class_float>` max_value
Default | 1.0 |
Setter | set_max_value(value) |
Getter | get_max_value() |
The maximum value the curve can reach.
- :ref:`float<class_float>` min_value
Default | 0.0 |
Setter | set_min_value(value) |
Getter | get_min_value() |
The minimum value the curve can reach.
- :ref:`int<class_int>` add_point ( :ref:`Vector2<class_Vector2>` position, :ref:`float<class_float>` left_tangent=0, :ref:`float<class_float>` right_tangent=0, :ref:`TangentMode<enum_Curve_TangentMode>` left_mode=0, :ref:`TangentMode<enum_Curve_TangentMode>` right_mode=0 )
Adds a point to the curve. For each side, if the *_mode
is :ref:`TANGENT_LINEAR<class_Curve_constant_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 :ref:`TANGENT_FREE<class_Curve_constant_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.
- :ref:`int<class_int>` get_point_count ( ) const
Returns the number of points describing the curve.
- :ref:`TangentMode<enum_Curve_TangentMode>` get_point_left_mode ( :ref:`int<class_int>` index ) const
Returns the left :ref:`TangentMode<enum_Curve_TangentMode>` for the point at index
.
- :ref:`float<class_float>` get_point_left_tangent ( :ref:`int<class_int>` index ) const
Returns the left tangent angle (in degrees) for the point at index
.
- :ref:`Vector2<class_Vector2>` get_point_position ( :ref:`int<class_int>` index ) const
Returns the curve coordinates for the point at index
.
- :ref:`TangentMode<enum_Curve_TangentMode>` get_point_right_mode ( :ref:`int<class_int>` index ) const
Returns the right :ref:`TangentMode<enum_Curve_TangentMode>` for the point at index
.
- :ref:`float<class_float>` get_point_right_tangent ( :ref:`int<class_int>` index ) const
Returns the right tangent angle (in degrees) for the point at index
.
- :ref:`float<class_float>` interpolate ( :ref:`float<class_float>` offset ) const
Returns the Y value for the point that would exist at the X position offset
along the curve.
- :ref:`float<class_float>` interpolate_baked ( :ref:`float<class_float>` offset )
Returns the Y value for the point that would exist at the X position offset
along the curve using the baked cache. Bakes the curve's points if not already baked.
- void remove_point ( :ref:`int<class_int>` index )
Removes the point at index
from the curve.
- void set_point_left_mode ( :ref:`int<class_int>` index, :ref:`TangentMode<enum_Curve_TangentMode>` mode )
Sets the left :ref:`TangentMode<enum_Curve_TangentMode>` for the point at index
to mode
.
- void set_point_left_tangent ( :ref:`int<class_int>` index, :ref:`float<class_float>` tangent )
Sets the left tangent angle for the point at index
to tangent
.
- :ref:`int<class_int>` set_point_offset ( :ref:`int<class_int>` index, :ref:`float<class_float>` offset )
Sets the offset from 0.5
.
- void set_point_right_mode ( :ref:`int<class_int>` index, :ref:`TangentMode<enum_Curve_TangentMode>` mode )
Sets the right :ref:`TangentMode<enum_Curve_TangentMode>` for the point at index
to mode
.
- void set_point_right_tangent ( :ref:`int<class_int>` index, :ref:`float<class_float>` tangent )
Sets the right tangent angle for the point at index
to tangent
.
- void set_point_value ( :ref:`int<class_int>` index, :ref:`float<class_float>` y )
Assigns the vertical position y
to the point at index
.