Home | History | Annotate | Download | only in equations
      1 package aurelienribon.tweenengine.equations;
      2 
      3 import 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  */
     10 public abstract class Expo extends TweenEquation {
     11 	public static final Expo IN = new Expo() {
     12 		@Override
     13 		public final float compute(float t) {
     14 			return (t==0) ? 0 : (float) Math.pow(2, 10 * (t - 1));
     15 		}
     16 
     17 		@Override
     18 		public String toString() {
     19 			return "Expo.IN";
     20 		}
     21 	};
     22 
     23 	public static final Expo OUT = new Expo() {
     24 		@Override
     25 		public final float compute(float t) {
     26 			return (t==1) ? 1 : -(float) Math.pow(2, -10 * t) + 1;
     27 		}
     28 
     29 		@Override
     30 		public String toString() {
     31 			return "Expo.OUT";
     32 		}
     33 	};
     34 
     35 	public static final Expo INOUT = new Expo() {
     36 		@Override
     37 		public final float compute(float t) {
     38 			if (t==0) return 0;
     39 			if (t==1) return 1;
     40 			if ((t*=2) < 1) return 0.5f * (float) Math.pow(2, 10 * (t - 1));
     41 			return 0.5f * (-(float)Math.pow(2, -10 * --t) + 2);
     42 		}
     43 
     44 		@Override
     45 		public String toString() {
     46 			return "Expo.INOUT";
     47 		}
     48 	};
     49 }