UNPKG

@tempots/std

Version:

Std library for TypeScript. Natural complement to the Tempo libraries.

45 lines (44 loc) 1.94 kB
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 };