ELEC2645 (2018/19) / Mbed 2 deprecated el17ajf

Dependencies:   mbed

Fork of el17ajf by Angus Findlay

Revision:
29:d59fbe128d1f
Parent:
28:e09b7ac11dea
--- a/Math/Math.cpp	Fri Apr 12 20:53:00 2019 +0000
+++ b/Math/Math.cpp	Sat Apr 13 08:33:49 2019 +0000
@@ -1,10 +1,27 @@
 #include "Math.h"
 
 int Math::lerp(int a, int b) {
-    const double t = 0.6;
-    return (b * t) + (a * (1 - t)) + 0.5;
+    return lerp(a, b, 0.6);
 }
 
 int Math::lerp(int a, int b, double t) {
-    return (b * t) + (a * (1 - t)) + 0.5;
+    if (a < b) {
+        int lerped = (a * (1 - t)) + (b * t) + 0.5;
+        if (lerped > a + 1) {
+            return lerped;
+        } else if (a + 1 <= b) {
+            return a + 1;
+        } else {
+            return b;
+        }
+    } else {
+        int lerped = (a * (1 - t)) + (b * t);
+        if (lerped < a - 1) {
+            return lerped;
+        } else if (a - 1 >= b) {
+            return a - 1;
+        } else {
+            return b;
+        }
+    }
 }
\ No newline at end of file