1package aurelienribon.tweenengine.equations;
2
3import aurelienribon.tweenengine.TweenEquation;
4
5/**
6 * Easing equation based on Robert Penner's work:
7 * http://robertpenner.com/easing/
8 * @author Aurelien Ribon | http://www.aurelienribon.com/
9 */
10public abstract class Sine extends TweenEquation {
11	private static final float PI = 3.14159265f;
12
13	public static final Sine IN = new Sine() {
14		@Override
15		public final float compute(float t) {
16			return (float) -Math.cos(t * (PI/2)) + 1;
17		}
18
19		@Override
20		public String toString() {
21			return "Sine.IN";
22		}
23	};
24
25	public static final Sine OUT = new Sine() {
26		@Override
27		public final float compute(float t) {
28			return (float) Math.sin(t * (PI/2));
29		}
30
31		@Override
32		public String toString() {
33			return "Sine.OUT";
34		}
35	};
36
37	public static final Sine INOUT = new Sine() {
38		@Override
39		public final float compute(float t) {
40			return -0.5f * ((float) Math.cos(PI*t) - 1);
41		}
42
43		@Override
44		public String toString() {
45			return "Sine.INOUT";
46		}
47	};
48}