aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/util/render/LerpUtils.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/util/render/LerpUtils.kt')
-rw-r--r--src/main/kotlin/util/render/LerpUtils.kt33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/main/kotlin/util/render/LerpUtils.kt b/src/main/kotlin/util/render/LerpUtils.kt
new file mode 100644
index 0000000..f2c2f25
--- /dev/null
+++ b/src/main/kotlin/util/render/LerpUtils.kt
@@ -0,0 +1,33 @@
+
+package moe.nea.firmament.util.render
+
+import me.shedaniel.math.Color
+
+val pi = Math.PI
+val tau = Math.PI * 2
+fun lerpAngle(a: Float, b: Float, progress: Float): Float {
+ // TODO: there is at least 10 mods to many in here lol
+ val shortestAngle = ((((b.mod(tau) - a.mod(tau)).mod(tau)) + tau + pi).mod(tau)) - pi
+ return ((a + (shortestAngle) * progress).mod(tau)).toFloat()
+}
+
+fun lerp(a: Float, b: Float, progress: Float): Float {
+ return a + (b - a) * progress
+}
+fun lerp(a: Int, b: Int, progress: Float): Int {
+ return (a + (b - a) * progress).toInt()
+}
+
+fun ilerp(a: Float, b: Float, value: Float): Float {
+ return (value - a) / (b - a)
+}
+
+fun lerp(a: Color, b: Color, progress: Float): Color {
+ return Color.ofRGBA(
+ lerp(a.red, b.red, progress),
+ lerp(a.green, b.green, progress),
+ lerp(a.blue, b.blue, progress),
+ lerp(a.alpha, b.alpha, progress),
+ )
+}
+