@litecanvas/utils
Version:
Utilities to help build litecanvas games
2 lines (1 loc) • 1.31 kB
JavaScript
(()=>{var v=Object.defineProperty;var w=(e,t)=>{for(var r in t)v(e,r,{get:t[r],enumerable:!0})};window.utils=window.utils||{};window.utils.global=(e=!0)=>{for(let t in window.utils)t!=="global"&&(e||globalThis[t]===void 0)&&(globalThis[t]=window.utils[t])};var o={};w(o,{advance:()=>m,almost:()=>N,clamp:()=>a,copysign:()=>M,diff:()=>n,dist:()=>l,fract:()=>u,lerpAngle:()=>d,mag:()=>p,mean:()=>b,median:()=>f,mod:()=>c,move:()=>h,percent:()=>x,smoothstep:()=>g,sum:()=>i,wave:()=>y});var n=(e,t)=>Math.abs(t-e);var u=e=>e%1;var a=(e,t,r)=>e<t?t:e>r?r:e;var H=2*Math.PI;var m=(e,t,r,s=1)=>{r&&(t.x+=r.x*s,t.y+=r.y*s),e.x+=t.x*s,e.y+=t.y*s};var c=(e,t)=>(e%t+t)%t||0;var l=(e,t,r,s)=>Math.hypot(r-e,s-t)||0;var p=(e,t)=>Math.hypot(e,t);var i=e=>{let t=0;for(let r=0;r<e.length;r++)t+=e[r];return t};var b=e=>i(e)/e.length;var f=e=>{let t=e.sort((s,F)=>s-F),r=Math.floor(t.length/2);return t.length%2===0?(t[r-1]+t[r])/2:t[r]};var d=(e,t,r)=>{let s=(t-e)%360;return s>180?s-=360:s<-180&&(s+=360),e+s*r};var x=(e,t,r)=>a((e-t)/(r-t),0,1);var y=(e,t,r,s=Math.sin)=>e+(s(r)+1)/2*(t-e);var h=(e,t,r)=>Math.abs(t-e)<=r?t:e+Math.sign(t-e)*r;var N=(e,t,r=1e-5)=>n(e,t)<=r;var g=(e,t,r)=>{let s=a((r-e)/(t-e),0,1);return s*s*(3-2*s)};var M=(e,t)=>Math.sign(t)*Math.abs(e);window.utils=Object.assign(window.utils||{},o);})();