diff --git a/Dalamud/Interface/Animation/EasingFunctions/InCirc.cs b/Dalamud/Interface/Animation/EasingFunctions/InCirc.cs
new file mode 100644
index 000000000..952e3539d
--- /dev/null
+++ b/Dalamud/Interface/Animation/EasingFunctions/InCirc.cs
@@ -0,0 +1,27 @@
+using System;
+
+namespace Dalamud.Interface.Animation.EasingFunctions
+{
+ ///
+ /// Class providing an "InCirc" easing animation.
+ ///
+ public class InCirc : Easing
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The duration of the animation.
+ public InCirc(TimeSpan duration)
+ : base(duration)
+ {
+ // ignored
+ }
+
+ ///
+ public override void Update()
+ {
+ var p = this.Progress;
+ this.Value = 1 - Math.Sqrt(1 - Math.Pow(p, 2));
+ }
+ }
+}
diff --git a/Dalamud/Interface/Animation/EasingFunctions/InCubic.cs b/Dalamud/Interface/Animation/EasingFunctions/InCubic.cs
new file mode 100644
index 000000000..ebca3203d
--- /dev/null
+++ b/Dalamud/Interface/Animation/EasingFunctions/InCubic.cs
@@ -0,0 +1,27 @@
+using System;
+
+namespace Dalamud.Interface.Animation.EasingFunctions
+{
+ ///
+ /// Class providing an "InCubic" easing animation.
+ ///
+ public class InCubic : Easing
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The duration of the animation.
+ public InCubic(TimeSpan duration)
+ : base(duration)
+ {
+ // ignored
+ }
+
+ ///
+ public override void Update()
+ {
+ var p = this.Progress;
+ this.Value = p * p * p;
+ }
+ }
+}
diff --git a/Dalamud/Interface/Animation/EasingFunctions/InElastic.cs b/Dalamud/Interface/Animation/EasingFunctions/InElastic.cs
new file mode 100644
index 000000000..97159df47
--- /dev/null
+++ b/Dalamud/Interface/Animation/EasingFunctions/InElastic.cs
@@ -0,0 +1,33 @@
+using System;
+
+namespace Dalamud.Interface.Animation.EasingFunctions
+{
+ ///
+ /// Class providing an "InElastic" easing animation.
+ ///
+ public class InElastic : Easing
+ {
+ private const double Constant = (2 * Math.PI) / 3;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The duration of the animation.
+ public InElastic(TimeSpan duration)
+ : base(duration)
+ {
+ // ignored
+ }
+
+ ///
+ public override void Update()
+ {
+ var p = this.Progress;
+ this.Value = p == 0
+ ? 0
+ : p == 1
+ ? 1
+ : -Math.Pow(2, (10 * p) - 10) * Math.Sin(((p * 10) - 10.75) * Constant);
+ }
+ }
+}
diff --git a/Dalamud/Interface/Animation/EasingFunctions/InOutCubic.cs b/Dalamud/Interface/Animation/EasingFunctions/InOutCubic.cs
index c6e14c3a5..c075da538 100644
--- a/Dalamud/Interface/Animation/EasingFunctions/InOutCubic.cs
+++ b/Dalamud/Interface/Animation/EasingFunctions/InOutCubic.cs
@@ -1,5 +1,4 @@
using System;
-using Serilog;
namespace Dalamud.Interface.Animation.EasingFunctions
{
diff --git a/Dalamud/Interface/Animation/EasingFunctions/InOutElastic.cs b/Dalamud/Interface/Animation/EasingFunctions/InOutElastic.cs
index 1a99f2836..7bb36dd74 100644
--- a/Dalamud/Interface/Animation/EasingFunctions/InOutElastic.cs
+++ b/Dalamud/Interface/Animation/EasingFunctions/InOutElastic.cs
@@ -7,8 +7,8 @@ namespace Dalamud.Interface.Animation.EasingFunctions
///
public class InOutElastic : Easing
{
- private static readonly double Constant = (2 * Math.PI) / 4.5;
-
+ private const double Constant = (2 * Math.PI) / 4.5;
+
///
/// Initializes a new instance of the class.
///
diff --git a/Dalamud/Interface/Animation/EasingFunctions/InSine.cs b/Dalamud/Interface/Animation/EasingFunctions/InSine.cs
new file mode 100644
index 000000000..aaa19aa40
--- /dev/null
+++ b/Dalamud/Interface/Animation/EasingFunctions/InSine.cs
@@ -0,0 +1,27 @@
+using System;
+
+namespace Dalamud.Interface.Animation.EasingFunctions
+{
+ ///
+ /// Class providing an "InSine" easing animation.
+ ///
+ public class InSine : Easing
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The duration of the animation.
+ public InSine(TimeSpan duration)
+ : base(duration)
+ {
+ // ignored
+ }
+
+ ///
+ public override void Update()
+ {
+ var p = this.Progress;
+ this.Value = 1 - Math.Cos((p * Math.PI) / 2);
+ }
+ }
+}
diff --git a/Dalamud/Interface/Animation/EasingFunctions/OutCirc.cs b/Dalamud/Interface/Animation/EasingFunctions/OutCirc.cs
new file mode 100644
index 000000000..da7b0029a
--- /dev/null
+++ b/Dalamud/Interface/Animation/EasingFunctions/OutCirc.cs
@@ -0,0 +1,27 @@
+using System;
+
+namespace Dalamud.Interface.Animation.EasingFunctions
+{
+ ///
+ /// Class providing an "OutCirc" easing animation.
+ ///
+ public class OutCirc : Easing
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The duration of the animation.
+ public OutCirc(TimeSpan duration)
+ : base(duration)
+ {
+ // ignored
+ }
+
+ ///
+ public override void Update()
+ {
+ var p = this.Progress;
+ this.Value = Math.Sqrt(1 - Math.Pow(p - 1, 2));
+ }
+ }
+}
diff --git a/Dalamud/Interface/Animation/EasingFunctions/OutElastic.cs b/Dalamud/Interface/Animation/EasingFunctions/OutElastic.cs
new file mode 100644
index 000000000..3475c4a72
--- /dev/null
+++ b/Dalamud/Interface/Animation/EasingFunctions/OutElastic.cs
@@ -0,0 +1,33 @@
+using System;
+
+namespace Dalamud.Interface.Animation.EasingFunctions
+{
+ ///
+ /// Class providing an "OutElastic" easing animation.
+ ///
+ public class OutElastic : Easing
+ {
+ private const double Constant = (2 * Math.PI) / 3;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The duration of the animation.
+ public OutElastic(TimeSpan duration)
+ : base(duration)
+ {
+ // ignored
+ }
+
+ ///
+ public override void Update()
+ {
+ var p = this.Progress;
+ this.Value = p == 0
+ ? 0
+ : p == 1
+ ? 1
+ : (Math.Pow(2, -10 * p) * Math.Sin(((p * 10) - 0.75) * Constant)) + 1;
+ }
+ }
+}
diff --git a/Dalamud/Interface/Animation/EasingFunctions/OutQuint.cs b/Dalamud/Interface/Animation/EasingFunctions/OutQuint.cs
new file mode 100644
index 000000000..c99c77a57
--- /dev/null
+++ b/Dalamud/Interface/Animation/EasingFunctions/OutQuint.cs
@@ -0,0 +1,27 @@
+using System;
+
+namespace Dalamud.Interface.Animation.EasingFunctions
+{
+ ///
+ /// Class providing an "OutQuint" easing animation.
+ ///
+ public class OutQuint : Easing
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The duration of the animation.
+ public OutQuint(TimeSpan duration)
+ : base(duration)
+ {
+ // ignored
+ }
+
+ ///
+ public override void Update()
+ {
+ var p = this.Progress;
+ this.Value = 1 - Math.Pow(1 - p, 5);
+ }
+ }
+}
diff --git a/Dalamud/Interface/Animation/EasingFunctions/OutSine.cs b/Dalamud/Interface/Animation/EasingFunctions/OutSine.cs
new file mode 100644
index 000000000..c1becf81c
--- /dev/null
+++ b/Dalamud/Interface/Animation/EasingFunctions/OutSine.cs
@@ -0,0 +1,27 @@
+using System;
+
+namespace Dalamud.Interface.Animation.EasingFunctions
+{
+ ///
+ /// Class providing an "OutSine" easing animation.
+ ///
+ public class OutSine : Easing
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The duration of the animation.
+ public OutSine(TimeSpan duration)
+ : base(duration)
+ {
+ // ignored
+ }
+
+ ///
+ public override void Update()
+ {
+ var p = this.Progress;
+ this.Value = Math.Sin((p * Math.PI) / 2);
+ }
+ }
+}