mirror of
https://review.haiku-os.org/haiku
synced 2025-02-07 06:16:11 +01:00
origin. Yes.. shame on me, i had even imported their non unix line endings :) Will make them BCitizens soon. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33890 a95241bf-73f2-0310-859d-f6bbb57e9c96
62 lines
1.2 KiB
C++
62 lines
1.2 KiB
C++
/*
|
|
* Copyright 2008, Haiku Inc. All rights reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*
|
|
* Authors:
|
|
* Alexandre Deckner <alex@zappotek.com>
|
|
*/
|
|
|
|
// Some math utils, useful for animation
|
|
|
|
|
|
#include "MathUtils.h"
|
|
|
|
#include <math.h>
|
|
|
|
|
|
float
|
|
MathUtils::EaseInOutCubic(float time, float start, float distance,
|
|
float duration)
|
|
{
|
|
time /= duration / 2.0;
|
|
if (time < 1.0)
|
|
return distance / 2.0 * time * time * time + start;
|
|
time -= 2.0;
|
|
return distance / 2.0 * (time * time * time + 2.0) + start;
|
|
}
|
|
|
|
|
|
float
|
|
MathUtils::EaseInOutQuart(float time, float start, float distance,
|
|
float duration)
|
|
{
|
|
time /= duration / 2;
|
|
|
|
if (time < 1)
|
|
return distance / 2 * time * time * time * time + start;
|
|
|
|
time -= 2;
|
|
|
|
return -distance / 2 * (time * time * time * time - 2) + start;
|
|
}
|
|
|
|
|
|
float
|
|
MathUtils::EaseInOutQuint(float time, float start, float distance,
|
|
float duration)
|
|
{
|
|
time /= duration / 2;
|
|
if (time < 1)
|
|
return distance / 2 * time * time * time * time * time + start;
|
|
time -= 2;
|
|
return distance / 2 *(time * time * time * time * time + 2) + start;
|
|
}
|
|
|
|
|
|
float
|
|
MathUtils::EaseInOutSine(float time, float start, float distance,
|
|
float duration)
|
|
{
|
|
return -distance / 2 * (cos(3.14159 * time / distance) - 1) + start;
|
|
}
|