UNPKG

@tempots/std

Version:

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

2 lines (1 loc) 1.62 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./string.cjs"),i=1e-9,l=(e,t,n=360)=>{let r=(t-e)%n;return r<0&&(r+=n),r>n/2&&(r-=n),r},f=(e,t)=>{const n=Math.pow(10,t);return Math.ceil(e*n)/n},c=(e,t,n)=>Math.min(Math.max(e,t),n),g=(e,t,n)=>Math.trunc(c(e,t,n)),u=(e,t)=>c(e,-t,t),M=(e,t)=>e<t?-1:e>t?1:0,h=(e,t)=>{const n=Math.pow(10,t);return Math.floor(e*n)/n},A=(e,t=0)=>p.lpad(e.toString(16),"0",t),s=(e,t,n)=>(t-e)*n+e,d=(e,t,n,r=360)=>o(s(e,e+l(e,t,r),n),r),a=(e,t,n=360)=>{let r=(t-e)%n;return r<0&&(r+=n),r>n/2&&(r-=n),r},w=(e,t,n,r=360)=>o(s(e,e+a(e,t,r),n),r),N=(e,t,n,r=360)=>(e=o(e,r),t=o(t,r),t<e&&(t+=r),o(s(e,t,n),r)),m=(e,t,n,r=360)=>(e=o(e,r),t=o(t,r),t>e&&(t-=r),o(s(e,t,n),r)),C=(e,t,n=i)=>isFinite(e)?isFinite(t)?Math.abs(e-t)<=n:!1:isNaN(e)?isNaN(t):isNaN(t)||isFinite(t)?!1:e>0==t>0,S=(e,t,n=360,r=i)=>Math.abs(l(e,t,n))<=r,T=(e,t=i)=>Math.abs(e)<=t,E=(e,t)=>Math.pow(e,1/t),W=(e,t)=>{const n=Math.pow(10,t);return Math.round(e*n)/n},q=e=>e<0?-1:1,y=(e,t,n)=>{const r=n-t+1;return e<t&&(e+=r*((t-e)/r+1)),t+(e-t)%r},o=(e,t)=>(e=e%t,e<0&&(e+=t),e);exports.EPSILON=i;exports.angleDifference=l;exports.ceilTo=f;exports.clamp=c;exports.clampInt=g;exports.clampSym=u;exports.compareNumbers=M;exports.floorTo=h;exports.interpolate=s;exports.interpolateAngle=d;exports.interpolateAngleCCW=m;exports.interpolateAngleCW=N;exports.interpolateWidestAngle=w;exports.nearEqualAngles=S;exports.nearEquals=C;exports.nearZero=T;exports.root=E;exports.roundTo=W;exports.sign=q;exports.toHex=A;exports.widestAngleDifference=a;exports.wrap=y;exports.wrapCircular=o;