UNPKG

@litecanvas/utils

Version:

Utilities to help build litecanvas games

2 lines (1 loc) 2.42 kB
(()=>{var C=Object.defineProperty;var I=(t,e)=>{for(var r in e)C(t,r,{get:e[r],enumerable:!0})};var f={};I(f,{DOWN:()=>tt,LEFT:()=>et,ONE:()=>Y,RIGHT:()=>v,UP:()=>_,Vector:()=>S,ZERO:()=>w,vec:()=>s,vecAbs:()=>j,vecAdd:()=>F,vecAngle:()=>U,vecAngleBetween:()=>V,vecCeil:()=>B,vecClamp:()=>k,vecCross:()=>Z,vecDist:()=>D,vecDist2:()=>H,vecDiv:()=>h,vecDot:()=>m,vecEq:()=>d,vecFloor:()=>G,vecHeading:()=>E,vecIsZero:()=>K,vecLerp:()=>$,vecLimit:()=>P,vecMag:()=>i,vecMag2:()=>T,vecMove:()=>J,vecMult:()=>p,vecNorm:()=>M,vecRand:()=>X,vecReflect:()=>L,vecRem:()=>z,vecRotate:()=>q,vecRound:()=>W,vecSet:()=>y,vecSetMag:()=>N,vecSub:()=>l,vecToArray:()=>Q});var x=(t,e,r)=>t<e?e:t>r?r:t;var R=Math.cos,A=Math.sin,O=2*Math.PI,g=parseFloat,a=class{constructor(e=0,r=e){this.x=g(e)||0,this.y=g(r)||0}toString(){return`Vector (${this.x}, ${this.y})`}},S=a,n=t=>t instanceof a,s=(t=0,e=t)=>(n(t)&&(e=t.y,t=t.x),new a(t,e)),y=(t,e,r=e)=>(n(e)?y(t,e.x,e.y):(t.x=e,t.y=r),t),F=(t,e,r=e)=>n(e)?F(t,e.x,e.y):(t.x+=e,t.y+=r,t),l=(t,e,r=e)=>n(e)?l(t,e.x,e.y):(t.x-=e,t.y-=r,t),p=(t,e,r=e)=>n(e)?p(t,e.x,e.y):(t.x*=e,t.y*=r,t),h=(t,e,r=e)=>n(e)?h(t,e.x,e.y):(t.x/=e||1,t.y/=r||1,t),q=(t,e)=>{let r=R(e),o=A(e);return t.x=r*t.x-o*t.y,t.y=o*t.x+r*t.y,t},L=(t,e)=>{let r=M(s(e));return l(t,p(r,2*m(t,r)))},N=(t,e)=>p(M(t),e),i=t=>Math.hypot(t.x,t.y),T=t=>t.x*t.x+t.y*t.y,M=t=>{let e=i(t);return e>0&&h(t,e),t},P=(t,e=1)=>(T(t)>e*e&&N(t,e),t),D=(t,e)=>Math.hypot(e.x-t.x,e.y-t.y),H=(t,e)=>{let r=t.x-e.x,o=t.y-e.y;return r*r+o*o},E=t=>Math.atan2(t.y,t.x),U=t=>E(t),m=(t,e)=>t.x*e.x+t.y*e.y,V=(t,e)=>{let r=i(t),o=i(e);return o-r?Math.acos(x(m(t,e)/(r*o),-1,1)):0},Z=(t,e)=>t.x*e.y-t.y*e.x,$=(t,e,r)=>(t.x+=(e.x-t.x)*r||0,t.y+=(e.y-t.y)*r||0,t),j=t=>(t.x=Math.abs(t.x),t.y=Math.abs(t.y),t),B=t=>(t.x=Math.ceil(t.x),t.y=Math.ceil(t.y),t),G=t=>(t.x=Math.floor(t.x),t.y=Math.floor(t.y),t),W=t=>(t.x=Math.round(t.x),t.y=Math.round(t.y),t),k=(t,e,r)=>y(t,x(t.x,e,r),x(t.y,e,r)),z=(t,e)=>(t.x%=e,t.y%=e,t),J=(t,e,r=1)=>{let o=e.x-t.x,c=e.y-t.y,u=Math.hypot(o,c);if(r=Math.abs(r),u<=r||u===0)t.x=e.x,t.y=e.y;else{let b=r/u;t.x=t.x+o*b,t.y=t.y+c*b}return t},d=(t,e,r=e,o=1e-5)=>n(e)?d(t,e.x,e.y,o):D(t,e,r)<=o,K=t=>d(t,w),Q=t=>[t.x,t.y],X=(t=1,e=t,r=globalThis.rand||Math.random)=>{let o=r()*O,c=r()*(e-t)+t;return s(R(o)*c,A(o)*c)},w=s(0,0),Y=s(1,1),_=s(0,-1),v=s(1,0),tt=s(0,1),et=s(-1,0);globalThis.utils=Object.assign(globalThis.utils||{},f);})();