summaryrefslogtreecommitdiff
path: root/tools/mq_editor/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/mq_editor/utils.js')
-rw-r--r--tools/mq_editor/utils.js6
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/mq_editor/utils.js b/tools/mq_editor/utils.js
index 2c6b2f5..ed34b8e 100644
--- a/tools/mq_editor/utils.js
+++ b/tools/mq_editor/utils.js
@@ -8,7 +8,7 @@ function evalBezier(curve, t) {
const dt = curve.t3 - curve.t0;
if (dt <= 0) return curve.v0;
let u = (t - curve.t0) / dt;
- u = Math.max(0, Math.min(1, u));
+ u = clamp(u, 0, 1);
const u1 = (curve.t1 - curve.t0) / dt;
const u2 = (curve.t2 - curve.t0) / dt;
const d0 = (-u1) * (-u2) * (-1);
@@ -29,7 +29,7 @@ function evalBezierAmp(curve, t) {
const dt = curve.t3 - curve.t0;
if (dt <= 0) return curve.a0;
let u = (t - curve.t0) / dt;
- u = Math.max(0, Math.min(1, u));
+ u = clamp(u, 0, 1);
const u1 = (curve.t1 - curve.t0) / dt;
const u2 = (curve.t2 - curve.t0) / dt;
const d0 = (-u1) * (-u2) * (-1);
@@ -45,6 +45,8 @@ function evalBezierAmp(curve, t) {
return l0 * curve.a0 + l1 * curve.a1 + l2 * curve.a2 + l3 * curve.a3;
}
+function clamp(v, lo, hi) { return v < lo ? lo : v > hi ? hi : v; }
+
// Get canvas-relative {x, y} from a mouse event
function getCanvasCoords(e, canvas) {
const rect = canvas.getBoundingClientRect();