@tempots/std
Version:
Std library for TypeScript. Natural complement to the Tempo libraries.
45 lines (44 loc) • 1.94 kB
JavaScript
import { lpad as a } from "./string.js";
const i = 1e-9, c = (t, e, r = 360) => {
let n = (e - t) % r;
return n < 0 && (n += r), n > r / 2 && (n -= r), n;
}, h = (t, e) => {
const r = Math.pow(10, e);
return Math.ceil(t * r) / r;
}, l = (t, e, r) => Math.min(Math.max(t, e), r), u = (t, e, r) => Math.trunc(l(t, e, r)), M = (t, e) => l(t, -e, e), N = (t, e) => t < e ? -1 : t > e ? 1 : 0, g = (t, e) => {
const r = Math.pow(10, e);
return Math.floor(t * r) / r;
}, w = (t, e = 0) => a(t.toString(16), "0", e), s = (t, e, r) => (e - t) * r + t, A = (t, e, r, n = 360) => o(s(t, t + c(t, e, n), r), n), f = (t, e, r = 360) => {
let n = (e - t) % r;
return n < 0 && (n += r), n > r / 2 && (n -= r), n;
}, d = (t, e, r, n = 360) => o(s(t, t + f(t, e, n), r), n), m = (t, e, r, n = 360) => (t = o(t, n), e = o(e, n), e < t && (e += n), o(s(t, e, r), n)), C = (t, e, r, n = 360) => (t = o(t, n), e = o(e, n), e > t && (e -= n), o(s(t, e, r), n)), E = (t, e, r = i) => isFinite(t) ? isFinite(e) ? Math.abs(t - e) <= r : !1 : isNaN(t) && isNaN(e) ? !0 : isNaN(t) || isNaN(e) || isFinite(e) ? !1 : t > 0 == e > 0, F = (t, e, r = 360, n = i) => Math.abs(c(t, e, r)) <= n, S = (t, e = i) => Math.abs(t) <= e, T = (t, e) => Math.pow(t, 1 / e), W = (t, e) => {
const r = Math.pow(10, e);
return Math.round(t * r) / r;
}, q = (t, e, r) => {
const n = r - e + 1;
return t < e && (t += n * ((e - t) / n + 1)), e + (t - e) % n;
}, o = (t, e) => (t = t % e, t < 0 && (t += e), t);
export {
i as EPSILON,
c as angleDifference,
h as ceilTo,
l as clamp,
u as clampInt,
M as clampSym,
N as compareNumbers,
g as floorTo,
s as interpolate,
A as interpolateAngle,
C as interpolateAngleCCW,
m as interpolateAngleCW,
d as interpolateWidestAngle,
E as nearEqual,
F as nearEqualAngles,
S as nearZero,
T as root,
W as roundTo,
w as toHex,
f as widestAngleDifference,
q as wrap,
o as wrapCircular
};