UNPKG

@tempots/std

Version:

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

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