package kornell.gui.client.util.easing;
import com.google.gwt.animation.client.Animation;
public class Ease {
public static Animation in(final Transition t, final Updater updater) {
return new Animation() {
@Override
protected void onUpdate(double progress) {
updater.update(progress);
}
@Override
protected double interpolate(double p) {
return t.transition(p);
}
};
}
public static Animation out(final Transition t, final Updater updater) {
return new Animation() {
@Override
protected void onUpdate(double progress) {
updater.update(progress);
}
@Override
protected double interpolate(double p) {
return 1 - t.transition(1 - p);
}
};
}
public static Animation inOut(final Transition t, final Updater updater) {
return new Animation() {
@Override
protected void onUpdate(double progress) {
updater.update(progress);
}
@Override
protected double interpolate(double p) {
return (p <= 0.5) ? t.transition(2 * p) / 2 : (2 - t.transition(2 * (1 - p))) / 2;
}
};
}
}