aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutQuart.java
diff options
context:
space:
mode:
authornextdaydelivery <79922345+nxtdaydelivery@users.noreply.github.com>2022-06-01 18:03:12 +0100
committernextdaydelivery <79922345+nxtdaydelivery@users.noreply.github.com>2022-06-01 18:03:12 +0100
commitedcd817d9d6b2493ee76a15d12f21696a99a2d34 (patch)
treed1056ebe7abdff4c5f91a4b129c0d6a5684a8b77 /src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutQuart.java
parent68cc66b387a8a6a226289132dea331e6ecf3f76b (diff)
parent53494fad20feed812735b36dea31c6b0656bb104 (diff)
downloadOneConfig-edcd817d9d6b2493ee76a15d12f21696a99a2d34.tar.gz
OneConfig-edcd817d9d6b2493ee76a15d12f21696a99a2d34.tar.bz2
OneConfig-edcd817d9d6b2493ee76a15d12f21696a99a2d34.zip
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutQuart.java')
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutQuart.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutQuart.java b/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutQuart.java
new file mode 100644
index 0000000..55c1cad
--- /dev/null
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/animations/EaseInOutQuart.java
@@ -0,0 +1,23 @@
+package cc.polyfrost.oneconfig.gui.animations;
+
+public class EaseInOutQuart 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 EaseInOutQuart(int duration, float start, float end, boolean reverse) {
+ super(duration, start, end, reverse);
+ }
+
+ /**
+ * Adapted from <a href="https://github.com/jesusgollonet/processing-penner-easing">https://github.com/jesusgollonet/processing-penner-easing</a>
+ */
+ @Override
+ protected float animate(long timePassed, int duration, float start, float change) {
+ if ((timePassed /= duration / 2) < 1) return change / 2 * timePassed * timePassed * timePassed * timePassed + start;
+ return -change / 2 * ((timePassed -= 2) * timePassed * timePassed * timePassed - 2) + start;
+ }
+}