UNPKG

@litecanvas/utils

Version:

Utilities to help build litecanvas games

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