haiku/src/apps/haiku3d/MathUtils.cpp
Alexandre Deckner 3904801c31 * Fix many style issues. Quaternion and Vector3 still show some of their foreign
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
2009-11-05 09:37:45 +00:00

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;
}