diff options
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/gui/animations')
-rw-r--r-- | src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseOutBump.java | 23 | ||||
-rw-r--r-- | src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseOutExpo.java | 20 |
2 files changed, 43 insertions, 0 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseOutBump.java b/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseOutBump.java new file mode 100644 index 0000000..44fd56e --- /dev/null +++ b/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseOutBump.java @@ -0,0 +1,23 @@ +package cc.polyfrost.oneconfig.gui.animations; + +public class EaseOutBump extends Animation { + private static final double CONSTANT_1 = 1.7; + private static final double CONSTANT_2 = 2.7; + + /** + * @param duration The duration of the animation + * @param start The start of the animation + * @param end The end of the animation + * @param reverse Reverse the animation + */ + public EaseOutBump(int duration, float start, float end, boolean reverse) { + super(duration, start, end, reverse); + } + + // Courtesy of https://easings.net/ + @Override + protected float animate(float x) { + // return x == 0 ? 0 : (float) (x == 1 ? 1 : Math.pow(2, -0.5 * x) * Math.sin((x * 100 - 2) * c4) + 1); + return (float) (1 + CONSTANT_2 * Math.pow(x-1, 3) + CONSTANT_1 * 1.2 * Math.pow(x-1, 2)); + } +} diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseOutExpo.java b/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseOutExpo.java new file mode 100644 index 0000000..0f4cb68 --- /dev/null +++ b/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseOutExpo.java @@ -0,0 +1,20 @@ +package cc.polyfrost.oneconfig.gui.animations; + +public class EaseOutExpo extends Animation { + + /** + * @param duration The duration of the animation + * @param start The start of the animation + * @param end The end of the animation + * @param reverse Reverse the animation + */ + public EaseOutExpo(int duration, float start, float end, boolean reverse) { + super(duration, start, end, reverse); + } + + // Courtesy of https://easings.net/ + @Override + protected float animate(float x) { + return x == 1 ? 1 : 1 - (float) Math.pow(2, -10 * x); + } +} |