35 if (value == NULL || t <= 0)
37 double difference = target - *value;
38 double move = (gm_dt() * difference) / t;
39 if (
fabs(move) >=
fabs(difference)) {
57 if (value == NULL || t <= 0)
59 double difference = target - *value;
60 double speed_factor = 1.0 +
sqrt(
fabs(difference));
61 double move = (gm_dt() * difference * speed_factor) / t;
63 if (
fabs(move) >=
fabs(difference)) {
81 if (value == NULL || t <= 0)
83 double difference = target - *value;
84 double speed_factor = 1.0 +
fabs(difference);
85 double move = (gm_dt() * difference * speed_factor) / t;
87 if (
fabs(move) >=
fabs(difference)) {
105 if (value == NULL || t <= 0)
107 double difference = target - *value;
108 if (
fabs(difference) < 0.0001) {
112 double speed_factor = 1.0 / (1.0 +
sqrt(
fabs(difference)));
113 double move = (gm_dt() * difference * speed_factor) / t;
117 if (
fabs(move) < 0.0001) {
118 move = 0.0001 * (difference > 0 ? 1 : -1);
121 if (
fabs(move) >=
fabs(difference)) {
136static inline double gm_anim_sin(
double center,
double radius,
double speed,
138 return center + (radius *
sin(speed * (gm_t() + offset) *
M_PI * 2));
149static inline double gm_anim_cos(
double center,
double radius,
double speed,
151 return center + (radius *
cos(speed * (gm_t() + offset) *
M_PI * 2));
void gm_anim_spring(double *value, double target, double t)
Animates a value towards a target with a smooth, ease-out effect.
Definition animate.h:34
void gm_anim_ease_in_quad(double *value, double target, double t)
Animates a value towards a target with a quadratic ease-in effect.
Definition animate.h:104
void gm_anim_ease_out_cubic(double *value, double target, double t)
Animates a value towards a target with a cubic ease-out effect.
Definition animate.h:80
void gm_anim_ease_out_quad(double *value, const double target, double t)
Animates a value towards a target with a quadratic ease-out effect.
Definition animate.h:56
Graphics API (GAPI) abstraction layer for Gama.
double cos(double x)
Calculates the cosine of an angle (in radians).
Definition math.h:105
double fabs(double x)
Calculates the absolute value of a double.
Definition math.h:369
double sin(double x)
Calculates the sine of an angle (in radians).
Definition math.h:128
double sqrt(double x)
Calculates the square root of x.
Definition math.h:339
#define M_PI
Alias for the mathematical constant Pi (π).
Definition math.h:16