aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseOutBump.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseOutBump.java')
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseOutBump.java23
1 files changed, 23 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));
+ }
+}