Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2014-06-19 17:28:45 +0400
committerJoshua Leung <aligorith@gmail.com>2014-06-19 17:34:35 +0400
commit179e7eaf394481c10b66b4db762e8189aa5a0a2a (patch)
tree843c2d2b1b563238f94affba2c5faf447dfc1530 /source/blender/blenlib/intern/easing.c
parentf161695150bf3bfb4303b093838a628eeb40f5da (diff)
Bugfix for Elastic and Back easing types
** TO BE PORTED BACK TO 2.71 ** As pointed out by Thomas Beck (plasmasolutions), the current behaviour and/or default values for their parameters didn't quite make sense: 1) Back Easing - The old default value of 0.0 results in some overshoot being applied, while trying to tweak it up or down resulted in some odd jumps and discontinities. I've ended up removing some code here which forcibly using a "back" value of 1.7 when users wanted 0.0 instead. There doesn't seem to be any good reason for this. To ensure that there is still an effect initially, keyframes now get created with back set to 1.7 2) Elastic Easing - The old default settings of <amplitude = 0, period = 0> resulted in a curve without any elastic bounce, which wasn't very useful for motion graphics. Now, default values of amplitude = 0.8 and period = 4.1 get set. These were hand picked by Thomas to work well when the duration of the motion is 10 frames long (i.e. the typical length of such effects when doing motion graphics).
Diffstat (limited to 'source/blender/blenlib/intern/easing.c')
-rw-r--r--source/blender/blenlib/intern/easing.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/source/blender/blenlib/intern/easing.c b/source/blender/blenlib/intern/easing.c
index 1f39c2f57b5..80f02d54eaa 100644
--- a/source/blender/blenlib/intern/easing.c
+++ b/source/blender/blenlib/intern/easing.c
@@ -43,24 +43,18 @@
float BLI_easing_back_ease_in(float time, float begin, float change, float duration, float overshoot)
{
- if (overshoot == 0.0f)
- overshoot = 1.70158f;
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)
{
- if (overshoot == 0.0f)
- overshoot = 1.70158f;
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)
{
- if (overshoot == 0.0f)
- overshoot = 1.70158f;
overshoot *= 1.525f;
if ((time /= duration / 2) < 1.0f) {
return change / 2 * (time * time * ((overshoot + 1) * time - overshoot)) + begin;