diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:17:24 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:21:24 +0300 |
commit | e12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch) | |
tree | 8cf3453d12edb177a218ef8009357518ec6cab6a /source/blender/blenlib/intern/easing.c | |
parent | b3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff) |
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211.
For details on usage and instructions for migrating branches
without conflicts, see:
https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'source/blender/blenlib/intern/easing.c')
-rw-r--r-- | source/blender/blenlib/intern/easing.c | 441 |
1 files changed, 227 insertions, 214 deletions
diff --git a/source/blender/blenlib/intern/easing.c b/source/blender/blenlib/intern/easing.c index 99077eddc4e..9532f78bd44 100644 --- a/source/blender/blenlib/intern/easing.c +++ b/source/blender/blenlib/intern/easing.c @@ -34,111 +34,114 @@ #include "BLI_math_base.h" -#include "BLI_easing.h" /* own include */ +#include "BLI_easing.h" /* own include */ #include "BLI_strict_flags.h" /* blend if (amplitude < fabsf(change) */ #define USE_ELASTIC_BLEND -float BLI_easing_back_ease_in(float time, float begin, float change, float duration, float overshoot) +float BLI_easing_back_ease_in( + float time, float begin, float change, float duration, float overshoot) { - time /= duration; - return change * time * time * ((overshoot + 1) * time - overshoot) + begin; + time /= duration; + return change * time * time * ((overshoot + 1) * time - overshoot) + begin; } -float BLI_easing_back_ease_out(float time, float begin, float change, float duration, float overshoot) +float BLI_easing_back_ease_out( + float time, float begin, float change, float duration, float overshoot) { - time = time / duration - 1; - return change * (time * time * ((overshoot + 1) * time + overshoot) + 1) + begin; + time = time / duration - 1; + return change * (time * time * ((overshoot + 1) * time + overshoot) + 1) + begin; } -float BLI_easing_back_ease_in_out(float time, float begin, float change, float duration, float overshoot) +float BLI_easing_back_ease_in_out( + float time, float begin, float change, float duration, float overshoot) { - overshoot *= 1.525f; - if ((time /= duration / 2) < 1.0f) { - return change / 2 * (time * time * ((overshoot + 1) * time - overshoot)) + begin; - } - time -= 2.0f; - return change / 2 * (time * time * ((overshoot + 1) * time + overshoot) + 2) + begin; - + overshoot *= 1.525f; + if ((time /= duration / 2) < 1.0f) { + return change / 2 * (time * time * ((overshoot + 1) * time - overshoot)) + begin; + } + time -= 2.0f; + return change / 2 * (time * time * ((overshoot + 1) * time + overshoot) + 2) + begin; } float BLI_easing_bounce_ease_out(float time, float begin, float change, float duration) { - time /= duration; - if (time < (1 / 2.75f)) { - return change * (7.5625f * time * time) + begin; - } - else if (time < (2 / 2.75f)) { - time -= (1.5f / 2.75f); - return change * ((7.5625f * time) * time + 0.75f) + begin; - } - else if (time < (2.5f / 2.75f)) { - time -= (2.25f / 2.75f); - return change * ((7.5625f * time) * time + 0.9375f) + begin; - } - else { - time -= (2.625f / 2.75f); - return change * ((7.5625f * time) * time + 0.984375f) + begin; - } + time /= duration; + if (time < (1 / 2.75f)) { + return change * (7.5625f * time * time) + begin; + } + else if (time < (2 / 2.75f)) { + time -= (1.5f / 2.75f); + return change * ((7.5625f * time) * time + 0.75f) + begin; + } + else if (time < (2.5f / 2.75f)) { + time -= (2.25f / 2.75f); + return change * ((7.5625f * time) * time + 0.9375f) + begin; + } + else { + time -= (2.625f / 2.75f); + return change * ((7.5625f * time) * time + 0.984375f) + begin; + } } float BLI_easing_bounce_ease_in(float time, float begin, float change, float duration) { - return change - BLI_easing_bounce_ease_out(duration - time, 0, change, duration) + begin; + return change - BLI_easing_bounce_ease_out(duration - time, 0, change, duration) + begin; } float BLI_easing_bounce_ease_in_out(float time, float begin, float change, float duration) { - if (time < duration / 2) { - return BLI_easing_bounce_ease_in(time * 2, 0, change, duration) * 0.5f + begin; - } - else { - return BLI_easing_bounce_ease_out(time * 2 - duration, 0, change, duration) * 0.5f + change * 0.5f + begin; - } + if (time < duration / 2) { + return BLI_easing_bounce_ease_in(time * 2, 0, change, duration) * 0.5f + begin; + } + else { + return BLI_easing_bounce_ease_out(time * 2 - duration, 0, change, duration) * 0.5f + + change * 0.5f + begin; + } } float BLI_easing_circ_ease_in(float time, float begin, float change, float duration) { - time /= duration; - return -change * (sqrtf(1 - time * time) - 1) + begin; + time /= duration; + return -change * (sqrtf(1 - time * time) - 1) + begin; } float BLI_easing_circ_ease_out(float time, float begin, float change, float duration) { - time = time / duration - 1; - return change * sqrtf(1 - time * time) + begin; + time = time / duration - 1; + return change * sqrtf(1 - time * time) + begin; } float BLI_easing_circ_ease_in_out(float time, float begin, float change, float duration) { - if ((time /= duration / 2) < 1.0f) { - return -change / 2 * (sqrtf(1 - time * time) - 1) + begin; - } - time -= 2.0f; - return change / 2 * (sqrtf(1 - time * time) + 1) + begin; + if ((time /= duration / 2) < 1.0f) { + return -change / 2 * (sqrtf(1 - time * time) - 1) + begin; + } + time -= 2.0f; + return change / 2 * (sqrtf(1 - time * time) + 1) + begin; } float BLI_easing_cubic_ease_in(float time, float begin, float change, float duration) { - time /= duration; - return change * time * time * time + begin; + time /= duration; + return change * time * time * time + begin; } float BLI_easing_cubic_ease_out(float time, float begin, float change, float duration) { - time = time / duration - 1; - return change * (time * time * time + 1) + begin; + time = time / duration - 1; + return change * (time * time * time + 1) + begin; } float BLI_easing_cubic_ease_in_out(float time, float begin, float change, float duration) { - if ((time /= duration / 2) < 1.0f) { - return change / 2 * time * time * time + begin; - } - time -= 2.0f; - return change / 2 * (time * time * time + 2) + begin; + if ((time /= duration / 2) < 1.0f) { + return change / 2 * time * time * time + begin; + } + time -= 2.0f; + return change / 2 * (time * time * time + 2) + begin; } #ifdef USE_ELASTIC_BLEND @@ -146,123 +149,135 @@ float BLI_easing_cubic_ease_in_out(float time, float begin, float change, float * When the amplitude is less than the change, we need to blend * \a f when we're close to the crossing point (int time), else we get an ugly sharp falloff. */ -static float elastic_blend(float time, float change, float duration, float amplitude, float s, float f) -{ - if (change) { - /* Looks like a magic number, - * but this is a part of the sine curve we need to blend from */ - const float t = fabsf(s); - if (amplitude) { - f *= amplitude / fabsf(change); - } - else { - f = 0.0f; - } - - if (fabsf(time * duration) < t) { - float l = fabsf(time * duration) / t; - f = (f * l) + (1.0f - l); - } - } - - return f; +static float elastic_blend( + float time, float change, float duration, float amplitude, float s, float f) +{ + if (change) { + /* Looks like a magic number, + * but this is a part of the sine curve we need to blend from */ + const float t = fabsf(s); + if (amplitude) { + f *= amplitude / fabsf(change); + } + else { + f = 0.0f; + } + + if (fabsf(time * duration) < t) { + float l = fabsf(time * duration) / t; + f = (f * l) + (1.0f - l); + } + } + + return f; } #endif -float BLI_easing_elastic_ease_in(float time, float begin, float change, float duration, float amplitude, float period) -{ - float s; - float f = 1.0f; - - if (time == 0.0f) { - return begin; - } - - if ((time /= duration) == 1.0f) { - return begin + change; - } - time -= 1.0f; - if (!period) { - period = duration * 0.3f; - } - if (!amplitude || amplitude < fabsf(change)) { - s = period / 4; +float BLI_easing_elastic_ease_in( + float time, float begin, float change, float duration, float amplitude, float period) +{ + float s; + float f = 1.0f; + + if (time == 0.0f) { + return begin; + } + + if ((time /= duration) == 1.0f) { + return begin + change; + } + time -= 1.0f; + if (!period) { + period = duration * 0.3f; + } + if (!amplitude || amplitude < fabsf(change)) { + s = period / 4; #ifdef USE_ELASTIC_BLEND - f = elastic_blend(time, change, duration, amplitude, s, f); + f = elastic_blend(time, change, duration, amplitude, s, f); #endif - amplitude = change; - } - else { - s = period / (2 * (float)M_PI) * asinf(change / amplitude); - } - - return (-f * (amplitude * powf(2, 10 * time) * sinf((time * duration - s) * (2 * (float)M_PI) / period))) + begin; -} - -float BLI_easing_elastic_ease_out(float time, float begin, float change, float duration, float amplitude, float period) -{ - float s; - float f = 1.0f; - - if (time == 0.0f) { - return begin; - } - if ((time /= duration) == 1.0f) { - return begin + change; - } - time = -time; - if (!period) { - period = duration * 0.3f; - } - if (!amplitude || amplitude < fabsf(change)) { - s = period / 4; + amplitude = change; + } + else { + s = period / (2 * (float)M_PI) * asinf(change / amplitude); + } + + return (-f * (amplitude * powf(2, 10 * time) * + sinf((time * duration - s) * (2 * (float)M_PI) / period))) + + begin; +} + +float BLI_easing_elastic_ease_out( + float time, float begin, float change, float duration, float amplitude, float period) +{ + float s; + float f = 1.0f; + + if (time == 0.0f) { + return begin; + } + if ((time /= duration) == 1.0f) { + return begin + change; + } + time = -time; + if (!period) { + period = duration * 0.3f; + } + if (!amplitude || amplitude < fabsf(change)) { + s = period / 4; #ifdef USE_ELASTIC_BLEND - f = elastic_blend(time, change, duration, amplitude, s, f); + f = elastic_blend(time, change, duration, amplitude, s, f); #endif - amplitude = change; - } - else { - s = period / (2 * (float)M_PI) * asinf(change / amplitude); - } - - return (f * (amplitude * powf(2, 10 * time) * sinf((time * duration - s) * (2 * (float)M_PI) / period))) + change + begin; -} - -float BLI_easing_elastic_ease_in_out(float time, float begin, float change, float duration, float amplitude, float period) -{ - float s; - float f = 1.0f; - - if (time == 0.0f) { - return begin; - } - if ((time /= duration / 2) == 2.0f) { - return begin + change; - } - time -= 1.0f; - if (!period) { - period = duration * (0.3f * 1.5f); - } - if (!amplitude || amplitude < fabsf(change)) { - s = period / 4; + amplitude = change; + } + else { + s = period / (2 * (float)M_PI) * asinf(change / amplitude); + } + + return (f * (amplitude * powf(2, 10 * time) * + sinf((time * duration - s) * (2 * (float)M_PI) / period))) + + change + begin; +} + +float BLI_easing_elastic_ease_in_out( + float time, float begin, float change, float duration, float amplitude, float period) +{ + float s; + float f = 1.0f; + + if (time == 0.0f) { + return begin; + } + if ((time /= duration / 2) == 2.0f) { + return begin + change; + } + time -= 1.0f; + if (!period) { + period = duration * (0.3f * 1.5f); + } + if (!amplitude || amplitude < fabsf(change)) { + s = period / 4; #ifdef USE_ELASTIC_BLEND - f = elastic_blend(time, change, duration, amplitude, s, f); + f = elastic_blend(time, change, duration, amplitude, s, f); #endif - amplitude = change; - } - else { - s = period / (2 * (float)M_PI) * asinf(change / amplitude); - } - - if (time < 0.0f) { - f *= -0.5f; - return (f * (amplitude * powf(2, 10 * time) * sinf((time * duration - s) * (2 * (float)M_PI) / period))) + begin; - } - else { - time = -time; - f *= 0.5f; - return (f * (amplitude * powf(2, 10 * time) * sinf((time * duration - s) * (2 * (float)M_PI) / period))) + change + begin; - } + amplitude = change; + } + else { + s = period / (2 * (float)M_PI) * asinf(change / amplitude); + } + + if (time < 0.0f) { + f *= -0.5f; + return (f * (amplitude * powf(2, 10 * time) * + sinf((time * duration - s) * (2 * (float)M_PI) / period))) + + begin; + } + else { + time = -time; + f *= 0.5f; + return (f * (amplitude * powf(2, 10 * time) * + sinf((time * duration - s) * (2 * (float)M_PI) / period))) + + change + begin; + } } static const float pow_min = 0.0009765625f; /* = 2^(-10) */ @@ -270,112 +285,110 @@ static const float pow_scale = 1.0f / (1.0f - 0.0009765625f); float BLI_easing_expo_ease_in(float time, float begin, float change, float duration) { - if (time == 0.0) { - return begin; - } - return change * (powf(2, 10 * (time / duration - 1)) - pow_min) * pow_scale + begin; + if (time == 0.0) { + return begin; + } + return change * (powf(2, 10 * (time / duration - 1)) - pow_min) * pow_scale + begin; } float BLI_easing_expo_ease_out(float time, float begin, float change, float duration) { - if (time == 0.0) { - return begin; - } - return change * (1 - (powf(2, -10 * time / duration) - pow_min) * pow_scale) + begin; + if (time == 0.0) { + return begin; + } + return change * (1 - (powf(2, -10 * time / duration) - pow_min) * pow_scale) + begin; } float BLI_easing_expo_ease_in_out(float time, float begin, float change, float duration) { - float duration_half = duration / 2.0f; - float change_half = change / 2.0f; - if (time <= duration_half) { - return BLI_easing_expo_ease_in( - time, begin, change_half, duration_half); - } - else { - return BLI_easing_expo_ease_out( - time - duration_half, begin + change_half, change_half, duration_half); - } + float duration_half = duration / 2.0f; + float change_half = change / 2.0f; + if (time <= duration_half) { + return BLI_easing_expo_ease_in(time, begin, change_half, duration_half); + } + else { + return BLI_easing_expo_ease_out( + time - duration_half, begin + change_half, change_half, duration_half); + } } float BLI_easing_linear_ease(float time, float begin, float change, float duration) { - return change * time / duration + begin; + return change * time / duration + begin; } float BLI_easing_quad_ease_in(float time, float begin, float change, float duration) { - time /= duration; - return change * time * time + begin; + time /= duration; + return change * time * time + begin; } float BLI_easing_quad_ease_out(float time, float begin, float change, float duration) { - time /= duration; - return -change * time * (time - 2) + begin; + time /= duration; + return -change * time * (time - 2) + begin; } float BLI_easing_quad_ease_in_out(float time, float begin, float change, float duration) { - if ((time /= duration / 2) < 1.0f) { - return change / 2 * time * time + begin; - } - time -= 1.0f; - return -change / 2 * (time * (time - 2) - 1) + begin; + if ((time /= duration / 2) < 1.0f) { + return change / 2 * time * time + begin; + } + time -= 1.0f; + return -change / 2 * (time * (time - 2) - 1) + begin; } - float BLI_easing_quart_ease_in(float time, float begin, float change, float duration) { - time /= duration; - return change * time * time * time * time + begin; + time /= duration; + return change * time * time * time * time + begin; } float BLI_easing_quart_ease_out(float time, float begin, float change, float duration) { - time = time / duration - 1; - return -change * (time * time * time * time - 1) + begin; + time = time / duration - 1; + return -change * (time * time * time * time - 1) + begin; } float BLI_easing_quart_ease_in_out(float time, float begin, float change, float duration) { - if ((time /= duration / 2) < 1.0f) { - return change / 2 * time * time * time * time + begin; - } - time -= 2.0f; - return -change / 2 * ( time * time * time * time - 2) + begin; + if ((time /= duration / 2) < 1.0f) { + return change / 2 * time * time * time * time + begin; + } + time -= 2.0f; + return -change / 2 * (time * time * time * time - 2) + begin; } float BLI_easing_quint_ease_in(float time, float begin, float change, float duration) { - time /= duration; - return change * time * time * time * time * time + begin; + time /= duration; + return change * time * time * time * time * time + begin; } float BLI_easing_quint_ease_out(float time, float begin, float change, float duration) { - time = time / duration - 1; - return change * (time * time * time * time * time + 1) + begin; + time = time / duration - 1; + return change * (time * time * time * time * time + 1) + begin; } float BLI_easing_quint_ease_in_out(float time, float begin, float change, float duration) { - if ((time /= duration / 2) < 1.0f) { - return change / 2 * time * time * time * time * time + begin; - } - time -= 2.0f; - return change / 2 * (time * time * time * time * time + 2) + begin; + if ((time /= duration / 2) < 1.0f) { + return change / 2 * time * time * time * time * time + begin; + } + time -= 2.0f; + return change / 2 * (time * time * time * time * time + 2) + begin; } float BLI_easing_sine_ease_in(float time, float begin, float change, float duration) { - return -change * cosf(time / duration * (float)M_PI_2) + change + begin; + return -change * cosf(time / duration * (float)M_PI_2) + change + begin; } float BLI_easing_sine_ease_out(float time, float begin, float change, float duration) { - return change * sinf(time / duration * (float)M_PI_2) + begin; + return change * sinf(time / duration * (float)M_PI_2) + begin; } float BLI_easing_sine_ease_in_out(float time, float begin, float change, float duration) { - return -change / 2 * (cosf((float)M_PI * time / duration) - 1) + begin; + return -change / 2 * (cosf((float)M_PI * time / duration) - 1) + begin; } |