src/features/easing.c file

Functions

auto elastic_oscillation(const vm_float_t f, const vm_float_t exp_mult, const vm_float_t sin_mult, const vm_float_t sin_offset, const vm_float_t period) -> vm_float_t
Damped sine used by the elastic easing curves.
auto poly_ease_in(const vm_float_t f, const vm_float_t n) -> vm_float_t
Polynomial ease-in: f^n.
auto poly_ease_out(const vm_float_t f, const vm_float_t n) -> vm_float_t
Polynomial ease-out: 1 - (1-f)^n.
auto poly_ease_in_out(const vm_float_t f, const vm_float_t n) -> vm_float_t
Polynomial ease-in-out of degree n.
auto quadratic_ease_out(const vm_float_t f) -> vm_float_t
Quadratic ease-out.
auto quadratic_ease_in(const vm_float_t f) -> vm_float_t
Quadratic ease-in.
auto quadratic_ease_in_out(const vm_float_t f) -> vm_float_t
Quadratic ease-in-out.
auto cubic_ease_out(const vm_float_t f) -> vm_float_t
Cubic ease-out.
auto cubic_ease_in(const vm_float_t f) -> vm_float_t
Cubic ease-in.
auto cubic_ease_in_out(const vm_float_t f) -> vm_float_t
Cubic ease-in-out.
auto quartic_ease_out(const vm_float_t f) -> vm_float_t
Quartic ease-out.
auto quartic_ease_in(const vm_float_t f) -> vm_float_t
Quartic ease-in.
auto quartic_ease_in_out(const vm_float_t f) -> vm_float_t
Quartic ease-in-out.
auto quintic_ease_out(const vm_float_t f) -> vm_float_t
Quintic ease-out.
auto quintic_ease_in(const vm_float_t f) -> vm_float_t
Quintic ease-in.
auto quintic_ease_in_out(const vm_float_t f) -> vm_float_t
Quintic ease-in-out.
auto sine_ease_out(const vm_float_t f) -> vm_float_t
Sinusoidal ease-out.
auto sine_ease_in(const vm_float_t f) -> vm_float_t
Sinusoidal ease-in.
auto sine_ease_in_out(const vm_float_t f) -> vm_float_t
Sinusoidal ease-in-out.
auto circular_ease_out(const vm_float_t f) -> vm_float_t
Circular ease-out.
auto circular_ease_in(const vm_float_t f) -> vm_float_t
Circular ease-in.
auto circular_ease_in_out(const vm_float_t f) -> vm_float_t
Circular ease-in-out.
auto exponential_ease_out(const vm_float_t f) -> vm_float_t
Exponential ease-out.
auto exponential_ease_in(const vm_float_t f) -> vm_float_t
Exponential ease-in.
auto exponential_ease_in_out(const vm_float_t f) -> vm_float_t
Exponential ease-in-out.
auto elastic_ease_out(const vm_float_t f) -> vm_float_t
Elastic ease-out.
auto elastic_ease_in(const vm_float_t f) -> vm_float_t
Elastic ease-in.
auto elastic_ease_in_out(const vm_float_t f) -> vm_float_t
Elastic ease-in-out.
auto back_ease_out(const vm_float_t f) -> vm_float_t
Overshooting "back" ease-out.
auto back_ease_in(const vm_float_t f) -> vm_float_t
Overshooting "back" ease-in.
auto back_ease_in_out(const vm_float_t f) -> vm_float_t
Overshooting "back" ease-in-out.
auto bounce_ease_out(const vm_float_t f) -> vm_float_t
Bounce ease-out.
auto bounce_ease_in(const vm_float_t f) -> vm_float_t
Bounce ease-in.
auto bounce_ease_in_out(const vm_float_t f) -> vm_float_t
Bounce ease-in-out.

Function documentation

vm_float_t elastic_oscillation(const vm_float_t f, const vm_float_t exp_mult, const vm_float_t sin_mult, const vm_float_t sin_offset, const vm_float_t period)

Damped sine used by the elastic easing curves.

Parameters
f Normalized time in [0, 1].
exp_mult Exponent scale on 2^(exp_mult * f).
sin_mult Frequency scale of the sine wave.
sin_offset Phase offset of the sine wave.
period Oscillation period.
Returns Combined exponential-sine value.

vm_float_t poly_ease_in(const vm_float_t f, const vm_float_t n)

Polynomial ease-in: f^n.

Parameters
f Normalized time in [0, 1].
n Polynomial degree.
Returns Eased value.

vm_float_t poly_ease_out(const vm_float_t f, const vm_float_t n)

Polynomial ease-out: 1 - (1-f)^n.

Parameters
f Normalized time in [0, 1].
n Polynomial degree.
Returns Eased value.

vm_float_t poly_ease_in_out(const vm_float_t f, const vm_float_t n)

Polynomial ease-in-out of degree n.

Parameters
f Normalized time in [0, 1].
n Polynomial degree.
Returns Eased value.

vm_float_t quadratic_ease_out(const vm_float_t f)

Quadratic ease-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t quadratic_ease_in(const vm_float_t f)

Quadratic ease-in.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t quadratic_ease_in_out(const vm_float_t f)

Quadratic ease-in-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t cubic_ease_out(const vm_float_t f)

Cubic ease-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t cubic_ease_in(const vm_float_t f)

Cubic ease-in.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t cubic_ease_in_out(const vm_float_t f)

Cubic ease-in-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t quartic_ease_out(const vm_float_t f)

Quartic ease-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t quartic_ease_in(const vm_float_t f)

Quartic ease-in.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t quartic_ease_in_out(const vm_float_t f)

Quartic ease-in-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t quintic_ease_out(const vm_float_t f)

Quintic ease-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t quintic_ease_in(const vm_float_t f)

Quintic ease-in.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t quintic_ease_in_out(const vm_float_t f)

Quintic ease-in-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t sine_ease_out(const vm_float_t f)

Sinusoidal ease-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t sine_ease_in(const vm_float_t f)

Sinusoidal ease-in.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t sine_ease_in_out(const vm_float_t f)

Sinusoidal ease-in-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t circular_ease_out(const vm_float_t f)

Circular ease-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t circular_ease_in(const vm_float_t f)

Circular ease-in.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t circular_ease_in_out(const vm_float_t f)

Circular ease-in-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t exponential_ease_out(const vm_float_t f)

Exponential ease-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t exponential_ease_in(const vm_float_t f)

Exponential ease-in.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t exponential_ease_in_out(const vm_float_t f)

Exponential ease-in-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t elastic_ease_out(const vm_float_t f)

Elastic ease-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t elastic_ease_in(const vm_float_t f)

Elastic ease-in.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t elastic_ease_in_out(const vm_float_t f)

Elastic ease-in-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t back_ease_out(const vm_float_t f)

Overshooting "back" ease-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t back_ease_in(const vm_float_t f)

Overshooting "back" ease-in.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t back_ease_in_out(const vm_float_t f)

Overshooting "back" ease-in-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t bounce_ease_out(const vm_float_t f)

Bounce ease-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t bounce_ease_in(const vm_float_t f)

Bounce ease-in.

Parameters
f Normalized time in [0, 1].
Returns Eased value.

vm_float_t bounce_ease_in_out(const vm_float_t f)

Bounce ease-in-out.

Parameters
f Normalized time in [0, 1].
Returns Eased value.