wgpu-matrix
Advanced tools
Comparing version 2.9.0 to 2.9.1
@@ -1,72 +0,2 @@ | ||
/* wgpu-matrix@2.9.0, license MIT */ | ||
(function(M,aa){"object"===typeof exports&&"undefined"!==typeof module?aa(exports):"function"===typeof define&&define.amd?define(["exports"],aa):(M="undefined"!==typeof globalThis?globalThis:M||self,aa(M.wgpuMatrix={}))})(this,function(M){function aa(a){const b=y;y=a;return b}function ba(a=0,b=0){const c=new y(2);void 0!==a&&(c[0]=a,void 0!==b&&(c[1]=b));return c}function Da(a){const b=u;u=a;return b}function H(a,b,c){const d=new u(3);void 0!==a&&(d[0]=a,void 0!==b&&(d[1]=b,void 0!==c&&(d[2]=c))); | ||
return d}function Ea(a,b,c){c=c||new y(2);c[0]=a[0]-b[0];c[1]=a[1]-b[1];return c}function Fa(a,b,c,d){d=d||new y(2);d[0]=a[0]+c*(b[0]-a[0]);d[1]=a[1]+c*(b[1]-a[1]);return d}function qa(a,b,c){c=c||new y(2);c[0]=a[0]*b;c[1]=a[1]*b;return c}function Ga(a,b){b=b||new y(2);b[0]=1/a[0];b[1]=1/a[1];return b}function Ha(a,b){return a[0]*b[0]+a[1]*b[1]}function ra(a){const b=a[0];a=a[1];return Math.sqrt(b*b+a*a)}function Ia(a){const b=a[0];a=a[1];return b*b+a*a}function Ja(a,b){const c=a[0]-b[0];a=a[1]-b[1]; | ||
return Math.sqrt(c*c+a*a)}function Ka(a,b){const c=a[0]-b[0];a=a[1]-b[1];return c*c+a*a}function La(a,b){b=b||new y(2);const c=a[0];a=a[1];const d=Math.sqrt(c*c+a*a);1E-5<d?(b[0]=c/d,b[1]=a/d):(b[0]=0,b[1]=0);return b}function sa(a,b){b=b||new y(2);b[0]=a[0];b[1]=a[1];return b}function Ma(a,b,c){c=c||new y(2);c[0]=a[0]*b[0];c[1]=a[1]*b[1];return c}function Na(a,b,c){c=c||new y(2);c[0]=a[0]/b[0];c[1]=a[1]/b[1];return c}function Oa(a,b,c){c=c||new y(2);La(a,c);return qa(c,b,c)}function Pa(a){const b= | ||
Qa;Qa=a;G=Ra.get(a);return b}function ta(a,b){b=b||G();b[0]=a[0];b[1]=a[1];b[2]=a[2];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[8]=a[8];b[9]=a[9];b[10]=a[10];return b}function Sa(a){a=a||G();a[0]=1;a[1]=0;a[2]=0;a[4]=0;a[5]=1;a[6]=0;a[8]=0;a[9]=0;a[10]=1;return a}function Ta(a,b){b=b||G();const c=a[0],d=a[1],e=a[2],f=a[4],g=a[5],h=a[6],l=a[8],k=a[9];a=a[10];const m=a*g-h*k,n=-a*f+h*l,q=k*f-g*l,r=1/(c*m+d*n+e*q);b[0]=m*r;b[1]=(-a*d+e*k)*r;b[2]=(h*d-e*g)*r;b[4]=n*r;b[5]=(a*c-e*l)*r;b[6]=(-h*c+e*f)*r;b[8]=q*r; | ||
b[9]=(-k*c+d*l)*r;b[10]=(g*c-d*f)*r;return b}function Ua(a,b,c){c=c||G();const d=a[0],e=a[1],f=a[2],g=a[4],h=a[5],l=a[6],k=a[8],m=a[9];a=a[10];const n=b[0],q=b[1],r=b[2],w=b[4],v=b[5],p=b[6],E=b[8],F=b[9];b=b[10];c[0]=d*n+g*q+k*r;c[1]=e*n+h*q+m*r;c[2]=f*n+l*q+a*r;c[4]=d*w+g*v+k*p;c[5]=e*w+h*v+m*p;c[6]=f*w+l*v+a*p;c[8]=d*E+g*F+k*b;c[9]=e*E+h*F+m*b;c[10]=f*E+l*F+a*b;return c}function ca(a,b,c){c=c||new u(3);c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];return c}function Va(a,b,c,d){d=d||new u(3);d[0]= | ||
a[0]+c*(b[0]-a[0]);d[1]=a[1]+c*(b[1]-a[1]);d[2]=a[2]+c*(b[2]-a[2]);return d}function ua(a,b,c){c=c||new u(3);c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;return c}function Wa(a,b){b=b||new u(3);b[0]=1/a[0];b[1]=1/a[1];b[2]=1/a[2];return b}function P(a,b,c){c=c||new u(3);const d=a[2]*b[0]-a[0]*b[2],e=a[0]*b[1]-a[1]*b[0];c[0]=a[1]*b[2]-a[2]*b[1];c[1]=d;c[2]=e;return c}function va(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}function da(a){const b=a[0],c=a[1];a=a[2];return Math.sqrt(b*b+c*c+a*a)}function Xa(a){const b= | ||
a[0],c=a[1];a=a[2];return b*b+c*c+a*a}function Ya(a,b){const c=a[0]-b[0],d=a[1]-b[1];a=a[2]-b[2];return Math.sqrt(c*c+d*d+a*a)}function Za(a,b){const c=a[0]-b[0],d=a[1]-b[1];a=a[2]-b[2];return c*c+d*d+a*a}function N(a,b){b=b||new u(3);const c=a[0],d=a[1];a=a[2];const e=Math.sqrt(c*c+d*d+a*a);1E-5<e?(b[0]=c/e,b[1]=d/e,b[2]=a/e):(b[0]=0,b[1]=0,b[2]=0);return b}function wa(a,b){b=b||new u(3);b[0]=a[0];b[1]=a[1];b[2]=a[2];return b}function $a(a,b,c){c=c||new u(3);c[0]=a[0]*b[0];c[1]=a[1]*b[1];c[2]=a[2]* | ||
b[2];return c}function ab(a,b,c){c=c||new u(3);c[0]=a[0]/b[0];c[1]=a[1]/b[1];c[2]=a[2]/b[2];return c}function bb(a,b,c){c=c||new u(3);N(a,c);return ua(c,b,c)}function cb(a){const b=x;x=a;return b}function xa(a,b){b=b||new x(16);b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15];return b}function db(a){a=a||new x(16);a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0; | ||
a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a}function eb(a,b){b=b||new x(16);const c=a[0];var d=a[1];const e=a[2],f=a[3],g=a[4];var h=a[5];const l=a[6],k=a[7],m=a[8],n=a[9],q=a[10],r=a[11],w=a[12];var v=a[13];const p=a[14];a=a[15];const E=q*a,F=p*r,I=l*a,J=p*k,K=l*r,L=q*k,Q=e*a,R=p*f,S=e*r,T=q*f,U=e*k,V=l*f,W=m*v,X=w*n,Y=g*v,Z=w*h,ea=g*n,fa=m*h,ha=c*v,ia=w*d,ja=c*n,ka=m*d,la=c*h,ma=g*d,fb=E*h+J*n+K*v-(F*h+I*n+L*v),gb=F*d+Q*n+T*v-(E*d+R*n+S*v);v=I*d+R*h+U*v-(J*d+Q*h+V*v);d=L*d+S* | ||
h+V*n-(K*d+T*h+U*n);h=1/(c*fb+g*gb+m*v+w*d);b[0]=h*fb;b[1]=h*gb;b[2]=h*v;b[3]=h*d;b[4]=h*(F*g+I*m+L*w-(E*g+J*m+K*w));b[5]=h*(E*c+R*m+S*w-(F*c+Q*m+T*w));b[6]=h*(J*c+Q*g+V*w-(I*c+R*g+U*w));b[7]=h*(K*c+T*g+U*m-(L*c+S*g+V*m));b[8]=h*(W*k+Z*r+ea*a-(X*k+Y*r+fa*a));b[9]=h*(X*f+ha*r+ka*a-(W*f+ia*r+ja*a));b[10]=h*(Y*f+ia*k+la*a-(Z*f+ha*k+ma*a));b[11]=h*(fa*f+ja*k+ma*r-(ea*f+ka*k+la*r));b[12]=h*(Y*q+fa*p+X*l-(ea*p+W*l+Z*q));b[13]=h*(ja*p+W*e+ia*q-(ha*q+ka*p+X*e));b[14]=h*(ha*l+ma*p+Z*e-(la*p+Y*e+ia*l));b[15]= | ||
h*(la*q+ea*e+ka*l-(ja*l+ma*q+fa*e));return b}function hb(a,b,c){c=c||new x(16);const d=a[0],e=a[1],f=a[2],g=a[3],h=a[4],l=a[5],k=a[6],m=a[7],n=a[8],q=a[9],r=a[10],w=a[11],v=a[12],p=a[13],E=a[14];a=a[15];const F=b[0],I=b[1],J=b[2],K=b[3],L=b[4],Q=b[5],R=b[6],S=b[7],T=b[8],U=b[9],V=b[10],W=b[11],X=b[12],Y=b[13],Z=b[14];b=b[15];c[0]=d*F+h*I+n*J+v*K;c[1]=e*F+l*I+q*J+p*K;c[2]=f*F+k*I+r*J+E*K;c[3]=g*F+m*I+w*J+a*K;c[4]=d*L+h*Q+n*R+v*S;c[5]=e*L+l*Q+q*R+p*S;c[6]=f*L+k*Q+r*R+E*S;c[7]=g*L+m*Q+w*R+a*S;c[8]=d* | ||
T+h*U+n*V+v*W;c[9]=e*T+l*U+q*V+p*W;c[10]=f*T+k*U+r*V+E*W;c[11]=g*T+m*U+w*V+a*W;c[12]=d*X+h*Y+n*Z+v*b;c[13]=e*X+l*Y+q*Z+p*b;c[14]=f*X+k*Y+r*Z+E*b;c[15]=g*X+m*Y+w*Z+a*b;return c}function ib(a,b,c){c=c||new x(16);let d=a[0],e=a[1];a=a[2];var f=Math.sqrt(d*d+e*e+a*a);d/=f;e/=f;a/=f;f=d*d;const g=e*e,h=a*a,l=Math.cos(b);b=Math.sin(b);const k=1-l;c[0]=f+(1-f)*l;c[1]=d*e*k+a*b;c[2]=d*a*k-e*b;c[3]=0;c[4]=d*e*k-a*b;c[5]=g+(1-g)*l;c[6]=e*a*k+d*b;c[7]=0;c[8]=d*a*k+e*b;c[9]=e*a*k-d*b;c[10]=h+(1-h)*l;c[11]=0; | ||
c[12]=0;c[13]=0;c[14]=0;c[15]=1;return c}function jb(a,b,c,d){d=d||new x(16);var e=b[0],f=b[1],g=b[2];b=Math.sqrt(e*e+f*f+g*g);e/=b;f/=b;g/=b;b=e*e;var h=f*f,l=g*g,k=Math.cos(c),m=Math.sin(c),n=1-k;c=b+(1-b)*k;b=e*f*n+g*m;const q=e*g*n-f*m,r=e*f*n-g*m;h+=(1-h)*k;const w=f*g*n+e*m,v=e*g*n+f*m;e=f*g*n-e*m;f=l+(1-l)*k;g=a[0];l=a[1];k=a[2];m=a[3];n=a[4];const p=a[5],E=a[6],F=a[7],I=a[8],J=a[9],K=a[10],L=a[11];d[0]=c*g+b*n+q*I;d[1]=c*l+b*p+q*J;d[2]=c*k+b*E+q*K;d[3]=c*m+b*F+q*L;d[4]=r*g+h*n+w*I;d[5]=r* | ||
l+h*p+w*J;d[6]=r*k+h*E+w*K;d[7]=r*m+h*F+w*L;d[8]=v*g+e*n+f*I;d[9]=v*l+e*p+f*J;d[10]=v*k+e*E+f*K;d[11]=v*m+e*F+f*L;a!==d&&(d[12]=a[12],d[13]=a[13],d[14]=a[14],d[15]=a[15]);return d}function kb(a){const b=C;C=a;return b}function lb(a,b,c,d){const e=new C(4);void 0!==a&&(e[0]=a,void 0!==b&&(e[1]=b,void 0!==c&&(e[2]=c,void 0!==d&&(e[3]=d))));return e}function mb(a,b,c){c=c||new C(4);b*=.5;const d=Math.sin(b);c[0]=d*a[0];c[1]=d*a[1];c[2]=d*a[2];c[3]=Math.cos(b);return c}function nb(a,b,c){c=c||new C(4); | ||
const d=a[0],e=a[1],f=a[2];a=a[3];const g=b[0],h=b[1],l=b[2];b=b[3];c[0]=d*b+a*g+e*l-f*h;c[1]=e*b+a*h+f*g-d*l;c[2]=f*b+a*l+d*h-e*g;c[3]=a*b-d*g-e*h-f*l;return c}function na(a,b,c,d){d=d||new C(4);const e=a[0],f=a[1],g=a[2];a=a[3];let h=b[0],l=b[1],k=b[2];b=b[3];var m=e*h+f*l+g*k+a*b;0>m&&(m=-m,h=-h,l=-l,k=-k,b=-b);if(1-m>t){const n=Math.acos(m),q=Math.sin(n);m=Math.sin((1-c)*n)/q;c=Math.sin(c*n)/q}else m=1-c;d[0]=m*e+c*h;d[1]=m*f+c*l;d[2]=m*g+c*k;d[3]=m*a+c*b;return d}function ob(a,b){b=b||new C(4); | ||
b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];return b}function pb(a,b,c){c=c||new C(4);c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];c[3]=a[3]-b[3];return c}function qb(a,b,c){c=c||new C(4);c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;c[3]=a[3]*b;return c}function rb(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]}function sb(a){const b=a[0],c=a[1],d=a[2];a=a[3];return Math.sqrt(b*b+c*c+d*d+a*a)}function tb(a){const b=a[0],c=a[1],d=a[2];a=a[3];return b*b+c*c+d*d+a*a}function ub(a,b){b=b||new C(4);const c=a[0], | ||
d=a[1],e=a[2];a=a[3];const f=Math.sqrt(c*c+d*d+e*e+a*a);1E-5<f?(b[0]=c/f,b[1]=d/f,b[2]=e/f,b[3]=a/f):(b[0]=0,b[1]=0,b[2]=0,b[3]=0);return b}function vb(a){const b=A;A=a;return b}function wb(a,b,c,d){const e=new A(4);void 0!==a&&(e[0]=a,void 0!==b&&(e[1]=b,void 0!==c&&(e[2]=c,void 0!==d&&(e[3]=d))));return e}function xb(a,b,c){c=c||new A(4);c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];c[3]=a[3]-b[3];return c}function yb(a,b,c,d){d=d||new A(4);d[0]=a[0]+c*(b[0]-a[0]);d[1]=a[1]+c*(b[1]-a[1]);d[2]=a[2]+ | ||
c*(b[2]-a[2]);d[3]=a[3]+c*(b[3]-a[3]);return d}function ya(a,b,c){c=c||new A(4);c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;c[3]=a[3]*b;return c}function zb(a,b){b=b||new A(4);b[0]=1/a[0];b[1]=1/a[1];b[2]=1/a[2];b[3]=1/a[3];return b}function za(a){const b=a[0],c=a[1],d=a[2];a=a[3];return Math.sqrt(b*b+c*c+d*d+a*a)}function Ab(a){const b=a[0],c=a[1],d=a[2];a=a[3];return b*b+c*c+d*d+a*a}function Bb(a,b){const c=a[0]-b[0],d=a[1]-b[1],e=a[2]-b[2];a=a[3]-b[3];return Math.sqrt(c*c+d*d+e*e+a*a)}function Cb(a,b){const c= | ||
a[0]-b[0],d=a[1]-b[1],e=a[2]-b[2];a=a[3]-b[3];return c*c+d*d+e*e+a*a}function Db(a,b){b=b||new A(4);const c=a[0],d=a[1],e=a[2];a=a[3];const f=Math.sqrt(c*c+d*d+e*e+a*a);1E-5<f?(b[0]=c/f,b[1]=d/f,b[2]=e/f,b[3]=a/f):(b[0]=0,b[1]=0,b[2]=0,b[3]=0);return b}function Aa(a,b){b=b||new A(4);b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];return b}function Eb(a,b,c){c=c||new A(4);c[0]=a[0]*b[0];c[1]=a[1]*b[1];c[2]=a[2]*b[2];c[3]=a[3]*b[3];return c}function Fb(a,b,c){c=c||new A(4);c[0]=a[0]/b[0];c[1]=a[1]/b[1];c[2]= | ||
a[2]/b[2];c[3]=a[3]/b[3];return c}function Gb(a,b,c){c=c||new A(4);Db(a,c);return ya(c,b,c)}let t=1E-6,y=Float32Array,u=Float32Array;var Hb={__proto__:null,add:function(a,b,c){c=c||new y(2);c[0]=a[0]+b[0];c[1]=a[1]+b[1];return c},addScaled:function(a,b,c,d){d=d||new y(2);d[0]=a[0]+b[0]*c;d[1]=a[1]+b[1]*c;return d},angle:function(a,b){var c=a[0];const d=a[1],e=b[0],f=b[1];a=(c=Math.sqrt(c*c+d*d)*Math.sqrt(e*e+f*f))&&Ha(a,b)/c;return Math.acos(a)},ceil:function(a,b){b=b||new y(2);b[0]=Math.ceil(a[0]); | ||
b[1]=Math.ceil(a[1]);return b},clamp:function(a,b=0,c=1,d){d=d||new y(2);d[0]=Math.min(c,Math.max(b,a[0]));d[1]=Math.min(c,Math.max(b,a[1]));return d},clone:sa,copy:sa,create:ba,cross:function(a,b,c){c=c||new u(3);a=a[0]*b[1]-a[1]*b[0];c[0]=0;c[1]=0;c[2]=a;return c},dist:Ja,distSq:Ka,distance:Ja,distanceSq:Ka,div:Na,divScalar:function(a,b,c){c=c||new y(2);c[0]=a[0]/b;c[1]=a[1]/b;return c},divide:Na,dot:Ha,equals:function(a,b){return a[0]===b[0]&&a[1]===b[1]},equalsApproximately:function(a,b){return Math.abs(a[0]- | ||
b[0])<t&&Math.abs(a[1]-b[1])<t},floor:function(a,b){b=b||new y(2);b[0]=Math.floor(a[0]);b[1]=Math.floor(a[1]);return b},fromValues:ba,inverse:Ga,invert:Ga,len:ra,lenSq:Ia,length:ra,lengthSq:Ia,lerp:Fa,lerpV:function(a,b,c,d){d=d||new y(2);d[0]=a[0]+c[0]*(b[0]-a[0]);d[1]=a[1]+c[1]*(b[1]-a[1]);return d},max:function(a,b,c){c=c||new y(2);c[0]=Math.max(a[0],b[0]);c[1]=Math.max(a[1],b[1]);return c},midpoint:function(a,b,c){c=c||new y(2);return Fa(a,b,.5,c)},min:function(a,b,c){c=c||new y(2);c[0]=Math.min(a[0], | ||
b[0]);c[1]=Math.min(a[1],b[1]);return c},mul:Ma,mulScalar:qa,multiply:Ma,negate:function(a,b){b=b||new y(2);b[0]=-a[0];b[1]=-a[1];return b},normalize:La,random:function(a=1,b){b=b||new y(2);const c=2*Math.random()*Math.PI;b[0]=Math.cos(c)*a;b[1]=Math.sin(c)*a;return b},rotate:function(a,b,c,d){d=d||new y(2);const e=a[0]-b[0];a=a[1]-b[1];const f=Math.sin(c);c=Math.cos(c);d[0]=e*c-a*f+b[0];d[1]=e*f+a*c+b[1];return d},round:function(a,b){b=b||new y(2);b[0]=Math.round(a[0]);b[1]=Math.round(a[1]);return b}, | ||
scale:qa,set:function(a,b,c){c=c||new y(2);c[0]=a;c[1]=b;return c},setDefaultType:aa,setLength:Oa,sub:Ea,subtract:Ea,transformMat3:function(a,b,c){c=c||new y(2);const d=a[0];a=a[1];c[0]=b[0]*d+b[4]*a+b[8];c[1]=b[1]*d+b[5]*a+b[9];return c},transformMat4:function(a,b,c){c=c||new y(2);const d=a[0];a=a[1];c[0]=d*b[0]+a*b[4]+b[12];c[1]=d*b[1]+a*b[5]+b[13];return c},truncate:function(a,b,c){c=c||new y(2);return ra(a)>b?Oa(a,b,c):sa(a,c)},zero:function(a){a=a||new y(2);a[0]=0;a[1]=0;return a}};let Qa=Float32Array; | ||
const Ra=new Map([[Float32Array,()=>new Float32Array(12)],[Float64Array,()=>new Float64Array(12)],[Array,()=>Array(12).fill(0)]]);let G=Ra.get(Float32Array);var Ib={__proto__:null,add:function(a,b,c){c=c||new u(3);c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];return c},addScaled:function(a,b,c,d){d=d||new u(3);d[0]=a[0]+b[0]*c;d[1]=a[1]+b[1]*c;d[2]=a[2]+b[2]*c;return d},angle:function(a,b){var c=a[0];const d=a[1],e=a[2],f=b[0],g=b[1],h=b[2];a=(c=Math.sqrt(c*c+d*d+e*e)*Math.sqrt(f*f+g*g+h*h))&&va(a, | ||
b)/c;return Math.acos(a)},ceil:function(a,b){b=b||new u(3);b[0]=Math.ceil(a[0]);b[1]=Math.ceil(a[1]);b[2]=Math.ceil(a[2]);return b},clamp:function(a,b=0,c=1,d){d=d||new u(3);d[0]=Math.min(c,Math.max(b,a[0]));d[1]=Math.min(c,Math.max(b,a[1]));d[2]=Math.min(c,Math.max(b,a[2]));return d},clone:wa,copy:wa,create:H,cross:P,dist:Ya,distSq:Za,distance:Ya,distanceSq:Za,div:ab,divScalar:function(a,b,c){c=c||new u(3);c[0]=a[0]/b;c[1]=a[1]/b;c[2]=a[2]/b;return c},divide:ab,dot:va,equals:function(a,b){return a[0]=== | ||
b[0]&&a[1]===b[1]&&a[2]===b[2]},equalsApproximately:function(a,b){return Math.abs(a[0]-b[0])<t&&Math.abs(a[1]-b[1])<t&&Math.abs(a[2]-b[2])<t},floor:function(a,b){b=b||new u(3);b[0]=Math.floor(a[0]);b[1]=Math.floor(a[1]);b[2]=Math.floor(a[2]);return b},fromValues:H,getAxis:function(a,b,c){c=c||new u(3);b*=4;c[0]=a[b+0];c[1]=a[b+1];c[2]=a[b+2];return c},getScaling:function(a,b){b=b||new u(3);const c=a[0],d=a[1],e=a[2],f=a[4],g=a[5],h=a[6],l=a[8],k=a[9];a=a[10];b[0]=Math.sqrt(c*c+d*d+e*e);b[1]=Math.sqrt(f* | ||
f+g*g+h*h);b[2]=Math.sqrt(l*l+k*k+a*a);return b},getTranslation:function(a,b){b=b||new u(3);b[0]=a[12];b[1]=a[13];b[2]=a[14];return b},inverse:Wa,invert:Wa,len:da,lenSq:Xa,length:da,lengthSq:Xa,lerp:Va,lerpV:function(a,b,c,d){d=d||new u(3);d[0]=a[0]+c[0]*(b[0]-a[0]);d[1]=a[1]+c[1]*(b[1]-a[1]);d[2]=a[2]+c[2]*(b[2]-a[2]);return d},max:function(a,b,c){c=c||new u(3);c[0]=Math.max(a[0],b[0]);c[1]=Math.max(a[1],b[1]);c[2]=Math.max(a[2],b[2]);return c},midpoint:function(a,b,c){c=c||new u(3);return Va(a, | ||
b,.5,c)},min:function(a,b,c){c=c||new u(3);c[0]=Math.min(a[0],b[0]);c[1]=Math.min(a[1],b[1]);c[2]=Math.min(a[2],b[2]);return c},mul:$a,mulScalar:ua,multiply:$a,negate:function(a,b){b=b||new u(3);b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];return b},normalize:N,random:function(a=1,b){b=b||new u(3);const c=2*Math.random()*Math.PI,d=2*Math.random()-1,e=Math.sqrt(1-d*d)*a;b[0]=Math.cos(c)*e;b[1]=Math.sin(c)*e;b[2]=d*a;return b},rotateX:function(a,b,c,d){d=d||new u(3);const e=[],f=[];e[0]=a[0]-b[0];e[1]=a[1]-b[1]; | ||
e[2]=a[2]-b[2];f[0]=e[0];f[1]=e[1]*Math.cos(c)-e[2]*Math.sin(c);f[2]=e[1]*Math.sin(c)+e[2]*Math.cos(c);d[0]=f[0]+b[0];d[1]=f[1]+b[1];d[2]=f[2]+b[2];return d},rotateY:function(a,b,c,d){d=d||new u(3);const e=[],f=[];e[0]=a[0]-b[0];e[1]=a[1]-b[1];e[2]=a[2]-b[2];f[0]=e[2]*Math.sin(c)+e[0]*Math.cos(c);f[1]=e[1];f[2]=e[2]*Math.cos(c)-e[0]*Math.sin(c);d[0]=f[0]+b[0];d[1]=f[1]+b[1];d[2]=f[2]+b[2];return d},rotateZ:function(a,b,c,d){d=d||new u(3);const e=[],f=[];e[0]=a[0]-b[0];e[1]=a[1]-b[1];e[2]=a[2]-b[2]; | ||
f[0]=e[0]*Math.cos(c)-e[1]*Math.sin(c);f[1]=e[0]*Math.sin(c)+e[1]*Math.cos(c);f[2]=e[2];d[0]=f[0]+b[0];d[1]=f[1]+b[1];d[2]=f[2]+b[2];return d},round:function(a,b){b=b||new u(3);b[0]=Math.round(a[0]);b[1]=Math.round(a[1]);b[2]=Math.round(a[2]);return b},scale:ua,set:function(a,b,c,d){d=d||new u(3);d[0]=a;d[1]=b;d[2]=c;return d},setDefaultType:Da,setLength:bb,sub:ca,subtract:ca,transformMat3:function(a,b,c){c=c||new u(3);const d=a[0],e=a[1];a=a[2];c[0]=d*b[0]+e*b[4]+a*b[8];c[1]=d*b[1]+e*b[5]+a*b[9]; | ||
c[2]=d*b[2]+e*b[6]+a*b[10];return c},transformMat4:function(a,b,c){c=c||new u(3);const d=a[0],e=a[1];a=a[2];const f=b[3]*d+b[7]*e+b[11]*a+b[15]||1;c[0]=(b[0]*d+b[4]*e+b[8]*a+b[12])/f;c[1]=(b[1]*d+b[5]*e+b[9]*a+b[13])/f;c[2]=(b[2]*d+b[6]*e+b[10]*a+b[14])/f;return c},transformMat4Upper3x3:function(a,b,c){c=c||new u(3);const d=a[0],e=a[1];a=a[2];c[0]=d*b[0]+e*b[4]+a*b[8];c[1]=d*b[1]+e*b[5]+a*b[9];c[2]=d*b[2]+e*b[6]+a*b[10];return c},transformQuat:function(a,b,c){c=c||new u(3);const d=b[0],e=b[1],f=b[2]; | ||
b=2*b[3];const g=a[0],h=a[1];a=a[2];const l=e*a-f*h,k=f*g-d*a,m=d*h-e*g;c[0]=g+l*b+2*(e*m-f*k);c[1]=h+k*b+2*(f*l-d*m);c[2]=a+m*b+2*(d*k-e*l);return c},truncate:function(a,b,c){c=c||new u(3);return da(a)>b?bb(a,b,c):wa(a,c)},zero:function(a){a=a||new u(3);a[0]=0;a[1]=0;a[2]=0;return a}};let x=Float32Array,B,D,z;var Jb={__proto__:null,aim:function(a,b,c,d){d=d||new x(16);B=B||H();D=D||H();z=z||H();N(ca(b,a,z),z);N(P(c,z,B),B);N(P(z,B,D),D);d[0]=B[0];d[1]=B[1];d[2]=B[2];d[3]=0;d[4]=D[0];d[5]=D[1];d[6]= | ||
D[2];d[7]=0;d[8]=z[0];d[9]=z[1];d[10]=z[2];d[11]=0;d[12]=a[0];d[13]=a[1];d[14]=a[2];d[15]=1;return d},axisRotate:jb,axisRotation:ib,cameraAim:function(a,b,c,d){d=d||new x(16);B=B||H();D=D||H();z=z||H();N(ca(a,b,z),z);N(P(c,z,B),B);N(P(z,B,D),D);d[0]=B[0];d[1]=B[1];d[2]=B[2];d[3]=0;d[4]=D[0];d[5]=D[1];d[6]=D[2];d[7]=0;d[8]=z[0];d[9]=z[1];d[10]=z[2];d[11]=0;d[12]=a[0];d[13]=a[1];d[14]=a[2];d[15]=1;return d},clone:xa,copy:xa,create:function(a,b,c,d,e,f,g,h,l,k,m,n,q,r,w,v){const p=new x(16);void 0!== | ||
a&&(p[0]=a,void 0!==b&&(p[1]=b,void 0!==c&&(p[2]=c,void 0!==d&&(p[3]=d,void 0!==e&&(p[4]=e,void 0!==f&&(p[5]=f,void 0!==g&&(p[6]=g,void 0!==h&&(p[7]=h,void 0!==l&&(p[8]=l,void 0!==k&&(p[9]=k,void 0!==m&&(p[10]=m,void 0!==n&&(p[11]=n,void 0!==q&&(p[12]=q,void 0!==r&&(p[13]=r,void 0!==w&&(p[14]=w,void 0!==v&&(p[15]=v))))))))))))))));return p},determinant:function(a){const b=a[1];var c=a[2],d=a[3];const e=a[5],f=a[6],g=a[7],h=a[9];var l=a[10],k=a[11];const m=a[13];var n=a[14],q=a[15];const r=l*q,w=n* | ||
k,v=f*q,p=n*g,E=f*k,F=l*g;q*=c;n*=d;k*=c;l*=d;c*=g;d*=f;return a[0]*(r*e+p*h+E*m-(w*e+v*h+F*m))+a[4]*(w*b+q*h+l*m-(r*b+n*h+k*m))+a[8]*(v*b+n*e+c*m-(p*b+q*e+d*m))+a[12]*(F*b+k*e+d*h-(E*b+l*e+c*h))},equals:function(a,b){return a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]&&a[3]===b[3]&&a[4]===b[4]&&a[5]===b[5]&&a[6]===b[6]&&a[7]===b[7]&&a[8]===b[8]&&a[9]===b[9]&&a[10]===b[10]&&a[11]===b[11]&&a[12]===b[12]&&a[13]===b[13]&&a[14]===b[14]&&a[15]===b[15]},equalsApproximately:function(a,b){return Math.abs(a[0]-b[0])< | ||
t&&Math.abs(a[1]-b[1])<t&&Math.abs(a[2]-b[2])<t&&Math.abs(a[3]-b[3])<t&&Math.abs(a[4]-b[4])<t&&Math.abs(a[5]-b[5])<t&&Math.abs(a[6]-b[6])<t&&Math.abs(a[7]-b[7])<t&&Math.abs(a[8]-b[8])<t&&Math.abs(a[9]-b[9])<t&&Math.abs(a[10]-b[10])<t&&Math.abs(a[11]-b[11])<t&&Math.abs(a[12]-b[12])<t&&Math.abs(a[13]-b[13])<t&&Math.abs(a[14]-b[14])<t&&Math.abs(a[15]-b[15])<t},fromMat3:function(a,b){b=b||new x(16);b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=0;b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=0;b[8]=a[8];b[9]=a[9];b[10]=a[10]; | ||
b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b},fromQuat:function(a,b){b=b||new x(16);var c=a[0],d=a[1],e=a[2];a=a[3];var f=c+c,g=d+d;const h=e+e;c*=f;const l=d*f;d*=g;const k=e*f,m=e*g;e*=h;f*=a;g*=a;a*=h;b[0]=1-d-e;b[1]=l+a;b[2]=k-g;b[3]=0;b[4]=l-a;b[5]=1-c-e;b[6]=m+f;b[7]=0;b[8]=k+g;b[9]=m-f;b[10]=1-c-d;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b},frustum:function(a,b,c,d,e,f,g){g=g||new x(16);const h=b-a,l=d-c,k=e-f;g[0]=2*e/h;g[1]=0;g[2]=0;g[3]=0;g[4]=0;g[5]=2*e/l;g[6]=0;g[7]=0;g[8]=(a+ | ||
b)/h;g[9]=(d+c)/l;g[10]=f/k;g[11]=-1;g[12]=0;g[13]=0;g[14]=e*f/k;g[15]=0;return g},frustumReverseZ:function(a,b,c,d,e,f=Infinity,g){g=g||new x(16);const h=b-a,l=d-c;g[0]=2*e/h;g[1]=0;g[2]=0;g[3]=0;g[4]=0;g[5]=2*e/l;g[6]=0;g[7]=0;g[8]=(a+b)/h;g[9]=(d+c)/l;g[11]=-1;g[12]=0;g[13]=0;g[15]=0;Infinity===f?(g[10]=0,g[14]=e):(a=1/(f-e),g[10]=e*a,g[14]=f*e*a);return g},getAxis:function(a,b,c){c=c||H();b*=4;c[0]=a[b+0];c[1]=a[b+1];c[2]=a[b+2];return c},getScaling:function(a,b){b=b||H();const c=a[0],d=a[1], | ||
e=a[2],f=a[4],g=a[5],h=a[6],l=a[8],k=a[9];a=a[10];b[0]=Math.sqrt(c*c+d*d+e*e);b[1]=Math.sqrt(f*f+g*g+h*h);b[2]=Math.sqrt(l*l+k*k+a*a);return b},getTranslation:function(a,b){b=b||H();b[0]=a[12];b[1]=a[13];b[2]=a[14];return b},identity:db,inverse:eb,invert:eb,lookAt:function(a,b,c,d){d=d||new x(16);B=B||H();D=D||H();z=z||H();N(ca(a,b,z),z);N(P(c,z,B),B);N(P(z,B,D),D);d[0]=B[0];d[1]=D[0];d[2]=z[0];d[3]=0;d[4]=B[1];d[5]=D[1];d[6]=z[1];d[7]=0;d[8]=B[2];d[9]=D[2];d[10]=z[2];d[11]=0;d[12]=-(B[0]*a[0]+B[1]* | ||
a[1]+B[2]*a[2]);d[13]=-(D[0]*a[0]+D[1]*a[1]+D[2]*a[2]);d[14]=-(z[0]*a[0]+z[1]*a[1]+z[2]*a[2]);d[15]=1;return d},mul:hb,multiply:hb,negate:function(a,b){b=b||new x(16);b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];b[3]=-a[3];b[4]=-a[4];b[5]=-a[5];b[6]=-a[6];b[7]=-a[7];b[8]=-a[8];b[9]=-a[9];b[10]=-a[10];b[11]=-a[11];b[12]=-a[12];b[13]=-a[13];b[14]=-a[14];b[15]=-a[15];return b},ortho:function(a,b,c,d,e,f,g){g=g||new x(16);g[0]=2/(b-a);g[1]=0;g[2]=0;g[3]=0;g[4]=0;g[5]=2/(d-c);g[6]=0;g[7]=0;g[8]=0;g[9]=0;g[10]=1/(e- | ||
f);g[11]=0;g[12]=(b+a)/(a-b);g[13]=(d+c)/(c-d);g[14]=e/(e-f);g[15]=1;return g},perspective:function(a,b,c,d,e){e=e||new x(16);a=Math.tan(.5*Math.PI-.5*a);e[0]=a/b;e[1]=0;e[2]=0;e[3]=0;e[4]=0;e[5]=a;e[6]=0;e[7]=0;e[8]=0;e[9]=0;e[11]=-1;e[12]=0;e[13]=0;e[15]=0;Number.isFinite(d)?(b=1/(c-d),e[10]=d*b,e[14]=d*c*b):(e[10]=-1,e[14]=-c);return e},perspectiveReverseZ:function(a,b,c,d=Infinity,e){e=e||new x(16);a=1/Math.tan(.5*a);e[0]=a/b;e[1]=0;e[2]=0;e[3]=0;e[4]=0;e[5]=a;e[6]=0;e[7]=0;e[8]=0;e[9]=0;e[11]= | ||
-1;e[12]=0;e[13]=0;e[15]=0;Infinity===d?(e[10]=0,e[14]=c):(b=1/(d-c),e[10]=c*b,e[14]=d*c*b);return e},rotate:jb,rotateX:function(a,b,c){c=c||new x(16);const d=a[4],e=a[5],f=a[6],g=a[7],h=a[8],l=a[9],k=a[10],m=a[11],n=Math.cos(b);b=Math.sin(b);c[4]=n*d+b*h;c[5]=n*e+b*l;c[6]=n*f+b*k;c[7]=n*g+b*m;c[8]=n*h-b*d;c[9]=n*l-b*e;c[10]=n*k-b*f;c[11]=n*m-b*g;a!==c&&(c[0]=a[0],c[1]=a[1],c[2]=a[2],c[3]=a[3],c[12]=a[12],c[13]=a[13],c[14]=a[14],c[15]=a[15]);return c},rotateY:function(a,b,c){c=c||new x(16);const d= | ||
a[0],e=a[1],f=a[2],g=a[3],h=a[8],l=a[9],k=a[10],m=a[11],n=Math.cos(b);b=Math.sin(b);c[0]=n*d-b*h;c[1]=n*e-b*l;c[2]=n*f-b*k;c[3]=n*g-b*m;c[8]=n*h+b*d;c[9]=n*l+b*e;c[10]=n*k+b*f;c[11]=n*m+b*g;a!==c&&(c[4]=a[4],c[5]=a[5],c[6]=a[6],c[7]=a[7],c[12]=a[12],c[13]=a[13],c[14]=a[14],c[15]=a[15]);return c},rotateZ:function(a,b,c){c=c||new x(16);const d=a[0],e=a[1],f=a[2],g=a[3],h=a[4],l=a[5],k=a[6],m=a[7],n=Math.cos(b);b=Math.sin(b);c[0]=n*d+b*h;c[1]=n*e+b*l;c[2]=n*f+b*k;c[3]=n*g+b*m;c[4]=n*h-b*d;c[5]=n*l-b* | ||
e;c[6]=n*k-b*f;c[7]=n*m-b*g;a!==c&&(c[8]=a[8],c[9]=a[9],c[10]=a[10],c[11]=a[11],c[12]=a[12],c[13]=a[13],c[14]=a[14],c[15]=a[15]);return c},rotation:ib,rotationX:function(a,b){b=b||new x(16);const c=Math.cos(a);a=Math.sin(a);b[0]=1;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=c;b[6]=a;b[7]=0;b[8]=0;b[9]=-a;b[10]=c;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b},rotationY:function(a,b){b=b||new x(16);const c=Math.cos(a);a=Math.sin(a);b[0]=c;b[1]=0;b[2]=-a;b[3]=0;b[4]=0;b[5]=1;b[6]=0;b[7]=0;b[8]=a;b[9]=0;b[10]= | ||
c;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b},rotationZ:function(a,b){b=b||new x(16);const c=Math.cos(a);a=Math.sin(a);b[0]=c;b[1]=a;b[2]=0;b[3]=0;b[4]=-a;b[5]=c;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=1;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b},scale:function(a,b,c){c=c||new x(16);const d=b[0],e=b[1];b=b[2];c[0]=d*a[0];c[1]=d*a[1];c[2]=d*a[2];c[3]=d*a[3];c[4]=e*a[4];c[5]=e*a[5];c[6]=e*a[6];c[7]=e*a[7];c[8]=b*a[8];c[9]=b*a[9];c[10]=b*a[10];c[11]=b*a[11];a!==c&&(c[12]=a[12],c[13]=a[13],c[14]= | ||
a[14],c[15]=a[15]);return c},scaling:function(a,b){b=b||new x(16);b[0]=a[0];b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=a[1];b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=a[2];b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b},set:function(a,b,c,d,e,f,g,h,l,k,m,n,q,r,w,v,p){p=p||new x(16);p[0]=a;p[1]=b;p[2]=c;p[3]=d;p[4]=e;p[5]=f;p[6]=g;p[7]=h;p[8]=l;p[9]=k;p[10]=m;p[11]=n;p[12]=q;p[13]=r;p[14]=w;p[15]=v;return p},setAxis:function(a,b,c,d){d!==a&&(d=xa(a,d));a=4*c;d[a+0]=b[0];d[a+1]=b[1];d[a+2]=b[2];return d},setDefaultType:cb, | ||
setTranslation:function(a,b,c){c=c||db();a!==c&&(c[0]=a[0],c[1]=a[1],c[2]=a[2],c[3]=a[3],c[4]=a[4],c[5]=a[5],c[6]=a[6],c[7]=a[7],c[8]=a[8],c[9]=a[9],c[10]=a[10],c[11]=a[11]);c[12]=b[0];c[13]=b[1];c[14]=b[2];c[15]=1;return c},translate:function(a,b,c){c=c||new x(16);const d=b[0],e=b[1];b=b[2];const f=a[0],g=a[1],h=a[2],l=a[3],k=a[4],m=a[5],n=a[6],q=a[7],r=a[8],w=a[9],v=a[10],p=a[11],E=a[12],F=a[13],I=a[14],J=a[15];a!==c&&(c[0]=f,c[1]=g,c[2]=h,c[3]=l,c[4]=k,c[5]=m,c[6]=n,c[7]=q,c[8]=r,c[9]=w,c[10]= | ||
v,c[11]=p);c[12]=f*d+k*e+r*b+E;c[13]=g*d+m*e+w*b+F;c[14]=h*d+n*e+v*b+I;c[15]=l*d+q*e+p*b+J;return c},translation:function(a,b){b=b||new x(16);b[0]=1;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=1;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=1;b[11]=0;b[12]=a[0];b[13]=a[1];b[14]=a[2];b[15]=1;return b},transpose:function(a,b){b=b||new x(16);if(b===a){var c=a[1];a[1]=a[4];a[4]=c;c=a[2];a[2]=a[8];a[8]=c;c=a[3];a[3]=a[12];a[12]=c;c=a[6];a[6]=a[9];a[9]=c;c=a[7];a[7]=a[13];a[13]=c;c=a[11];a[11]=a[14];a[14]=c;return b}c=a[1];const d= | ||
a[2],e=a[3],f=a[4],g=a[5],h=a[6],l=a[7],k=a[8],m=a[9],n=a[10],q=a[11],r=a[12],w=a[13],v=a[14],p=a[15];b[0]=a[0];b[1]=f;b[2]=k;b[3]=r;b[4]=c;b[5]=g;b[6]=m;b[7]=w;b[8]=d;b[9]=h;b[10]=n;b[11]=v;b[12]=e;b[13]=l;b[14]=q;b[15]=p;return b},uniformScale:function(a,b,c){c=c||new x(16);c[0]=b*a[0];c[1]=b*a[1];c[2]=b*a[2];c[3]=b*a[3];c[4]=b*a[4];c[5]=b*a[5];c[6]=b*a[6];c[7]=b*a[7];c[8]=b*a[8];c[9]=b*a[9];c[10]=b*a[10];c[11]=b*a[11];a!==c&&(c[12]=a[12],c[13]=a[13],c[14]=a[14],c[15]=a[15]);return c},uniformScaling:function(a, | ||
b){b=b||new x(16);b[0]=a;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=a;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=a;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b}};let C=Float32Array,O,Ba,Ca,oa,pa;var Kb={__proto__:null,add:function(a,b,c){c=c||new C(4);c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];c[3]=a[3]+b[3];return c},angle:function(a,b){a=rb(a,b);return Math.acos(2*a*a-1)},clone:ob,conjugate:function(a,b){b=b||new C(4);b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];b[3]=a[3];return b},copy:ob,create:lb,divScalar:function(a, | ||
b,c){c=c||new C(4);c[0]=a[0]/b;c[1]=a[1]/b;c[2]=a[2]/b;c[3]=a[3]/b;return c},dot:rb,equals:function(a,b){return a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]&&a[3]===b[3]},equalsApproximately:function(a,b){return Math.abs(a[0]-b[0])<t&&Math.abs(a[1]-b[1])<t&&Math.abs(a[2]-b[2])<t&&Math.abs(a[3]-b[3])<t},fromAxisAngle:mb,fromEuler:function(a,b,c,d,e){e=e||new C(4);a*=.5;var f=.5*b;b=.5*c;c=Math.sin(a);a=Math.cos(a);const g=Math.sin(f);f=Math.cos(f);const h=Math.sin(b);b=Math.cos(b);switch(d){case "xyz":e[0]= | ||
c*f*b+a*g*h;e[1]=a*g*b-c*f*h;e[2]=a*f*h+c*g*b;e[3]=a*f*b-c*g*h;break;case "xzy":e[0]=c*f*b-a*g*h;e[1]=a*g*b-c*f*h;e[2]=a*f*h+c*g*b;e[3]=a*f*b+c*g*h;break;case "yxz":e[0]=c*f*b+a*g*h;e[1]=a*g*b-c*f*h;e[2]=a*f*h-c*g*b;e[3]=a*f*b+c*g*h;break;case "yzx":e[0]=c*f*b+a*g*h;e[1]=a*g*b+c*f*h;e[2]=a*f*h-c*g*b;e[3]=a*f*b-c*g*h;break;case "zxy":e[0]=c*f*b-a*g*h;e[1]=a*g*b+c*f*h;e[2]=a*f*h+c*g*b;e[3]=a*f*b-c*g*h;break;case "zyx":e[0]=c*f*b-a*g*h;e[1]=a*g*b+c*f*h;e[2]=a*f*h-c*g*b;e[3]=a*f*b+c*g*h;break;default:throw Error(`Unknown rotation order: ${d}`); | ||
}return e},fromMat:function(a,b){b=b||new C(4);var c=a[0]+a[5]+a[10];if(0<c)c=Math.sqrt(c+1),b[3]=.5*c,c=.5/c,b[0]=(a[6]-a[9])*c,b[1]=(a[8]-a[2])*c,b[2]=(a[1]-a[4])*c;else{c=0;a[5]>a[0]&&(c=1);a[10]>a[4*c+c]&&(c=2);const e=(c+1)%3,f=(c+2)%3;var d=Math.sqrt(a[4*c+c]-a[4*e+e]-a[4*f+f]+1);b[c]=.5*d;d=.5/d;b[3]=(a[4*e+f]-a[4*f+e])*d;b[e]=(a[4*e+c]+a[4*c+e])*d;b[f]=(a[4*f+c]+a[4*c+f])*d}return b},fromValues:lb,identity:function(a){a=a||new C(4);a[0]=0;a[1]=0;a[2]=0;a[3]=1;return a},inverse:function(a, | ||
b){b=b||new C(4);const c=a[0],d=a[1],e=a[2];a=a[3];var f=c*c+d*d+e*e+a*a;f=f?1/f:0;b[0]=-c*f;b[1]=-d*f;b[2]=-e*f;b[3]=a*f;return b},len:sb,lenSq:tb,length:sb,lengthSq:tb,lerp:function(a,b,c,d){d=d||new C(4);d[0]=a[0]+c*(b[0]-a[0]);d[1]=a[1]+c*(b[1]-a[1]);d[2]=a[2]+c*(b[2]-a[2]);d[3]=a[3]+c*(b[3]-a[3]);return d},mul:nb,mulScalar:qb,multiply:nb,normalize:ub,rotateX:function(a,b,c){c=c||new C(4);var d=.5*b;b=a[0];const e=a[1],f=a[2];a=a[3];const g=Math.sin(d);d=Math.cos(d);c[0]=b*d+a*g;c[1]=e*d+f*g; | ||
c[2]=f*d-e*g;c[3]=a*d-b*g;return c},rotateY:function(a,b,c){c=c||new C(4);var d=.5*b;b=a[0];const e=a[1],f=a[2];a=a[3];const g=Math.sin(d);d=Math.cos(d);c[0]=b*d-f*g;c[1]=e*d+a*g;c[2]=f*d+b*g;c[3]=a*d-e*g;return c},rotateZ:function(a,b,c){c=c||new C(4);var d=.5*b;b=a[0];const e=a[1],f=a[2];a=a[3];const g=Math.sin(d);d=Math.cos(d);c[0]=b*d+e*g;c[1]=e*d-b*g;c[2]=f*d+a*g;c[3]=a*d-f*g;return c},rotationTo:function(a,b,c){c=c||new C(4);O=O||H();Ba=Ba||H(1,0,0);Ca=Ca||H(0,1,0);const d=va(a,b);if(-.999999> | ||
d)return P(Ba,a,O),1E-6>da(O)&&P(Ca,a,O),N(O,O),mb(O,Math.PI,c),c;if(.999999<d)return c[0]=0,c[1]=0,c[2]=0,c[3]=1,c;P(a,b,O);c[0]=O[0];c[1]=O[1];c[2]=O[2];c[3]=1+d;return ub(c,c)},scale:qb,set:function(a,b,c,d,e){e=e||new C(4);e[0]=a;e[1]=b;e[2]=c;e[3]=d;return e},setDefaultType:kb,slerp:na,sqlerp:function(a,b,c,d,e,f){f=f||new C(4);oa=oa||new C(4);pa=pa||new C(4);na(a,d,e,oa);na(b,c,e,pa);na(oa,pa,2*e*(1-e),f);return f},sub:pb,subtract:pb,toAxisAngle:function(a,b){b=b||H(4);const c=2*Math.acos(a[3]), | ||
d=Math.sin(.5*c);d>t?(b[0]=a[0]/d,b[1]=a[1]/d,b[2]=a[2]/d):(b[0]=1,b[1]=0,b[2]=0);return{angle:c,axis:b}}};let A=Float32Array;var Lb={__proto__:null,add:function(a,b,c){c=c||new A(4);c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];c[3]=a[3]+b[3];return c},addScaled:function(a,b,c,d){d=d||new A(4);d[0]=a[0]+b[0]*c;d[1]=a[1]+b[1]*c;d[2]=a[2]+b[2]*c;d[3]=a[3]+b[3]*c;return d},ceil:function(a,b){b=b||new A(4);b[0]=Math.ceil(a[0]);b[1]=Math.ceil(a[1]);b[2]=Math.ceil(a[2]);b[3]=Math.ceil(a[3]);return b},clamp:function(a, | ||
b=0,c=1,d){d=d||new A(4);d[0]=Math.min(c,Math.max(b,a[0]));d[1]=Math.min(c,Math.max(b,a[1]));d[2]=Math.min(c,Math.max(b,a[2]));d[3]=Math.min(c,Math.max(b,a[3]));return d},clone:Aa,copy:Aa,create:wb,dist:Bb,distSq:Cb,distance:Bb,distanceSq:Cb,div:Fb,divScalar:function(a,b,c){c=c||new A(4);c[0]=a[0]/b;c[1]=a[1]/b;c[2]=a[2]/b;c[3]=a[3]/b;return c},divide:Fb,dot:function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]},equals:function(a,b){return a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]&&a[3]===b[3]}, | ||
equalsApproximately:function(a,b){return Math.abs(a[0]-b[0])<t&&Math.abs(a[1]-b[1])<t&&Math.abs(a[2]-b[2])<t&&Math.abs(a[3]-b[3])<t},floor:function(a,b){b=b||new A(4);b[0]=Math.floor(a[0]);b[1]=Math.floor(a[1]);b[2]=Math.floor(a[2]);b[3]=Math.floor(a[3]);return b},fromValues:wb,inverse:zb,invert:zb,len:za,lenSq:Ab,length:za,lengthSq:Ab,lerp:yb,lerpV:function(a,b,c,d){d=d||new A(4);d[0]=a[0]+c[0]*(b[0]-a[0]);d[1]=a[1]+c[1]*(b[1]-a[1]);d[2]=a[2]+c[2]*(b[2]-a[2]);d[3]=a[3]+c[3]*(b[3]-a[3]);return d}, | ||
max:function(a,b,c){c=c||new A(4);c[0]=Math.max(a[0],b[0]);c[1]=Math.max(a[1],b[1]);c[2]=Math.max(a[2],b[2]);c[3]=Math.max(a[3],b[3]);return c},midpoint:function(a,b,c){c=c||new A(4);return yb(a,b,.5,c)},min:function(a,b,c){c=c||new A(4);c[0]=Math.min(a[0],b[0]);c[1]=Math.min(a[1],b[1]);c[2]=Math.min(a[2],b[2]);c[3]=Math.min(a[3],b[3]);return c},mul:Eb,mulScalar:ya,multiply:Eb,negate:function(a,b){b=b||new A(4);b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];b[3]=-a[3];return b},normalize:Db,round:function(a,b){b= | ||
b||new A(4);b[0]=Math.round(a[0]);b[1]=Math.round(a[1]);b[2]=Math.round(a[2]);b[3]=Math.round(a[3]);return b},scale:ya,set:function(a,b,c,d,e){e=e||new A(4);e[0]=a;e[1]=b;e[2]=c;e[3]=d;return e},setDefaultType:vb,setLength:Gb,sub:xb,subtract:xb,transformMat4:function(a,b,c){c=c||new A(4);const d=a[0],e=a[1],f=a[2];a=a[3];c[0]=b[0]*d+b[4]*e+b[8]*f+b[12]*a;c[1]=b[1]*d+b[5]*e+b[9]*f+b[13]*a;c[2]=b[2]*d+b[6]*e+b[10]*f+b[14]*a;c[3]=b[3]*d+b[7]*e+b[11]*f+b[15]*a;return c},truncate:function(a,b,c){c=c|| | ||
new A(4);return za(a)>b?Gb(a,b,c):Aa(a,c)},zero:function(a){a=a||new A(4);a[0]=0;a[1]=0;a[2]=0;a[3]=0;return a}};M.mat3={__proto__:null,clone:ta,copy:ta,create:function(a,b,c,d,e,f,g,h,l){const k=G();k[3]=0;k[7]=0;k[11]=0;void 0!==a&&(k[0]=a,void 0!==b&&(k[1]=b,void 0!==c&&(k[2]=c,void 0!==d&&(k[4]=d,void 0!==e&&(k[5]=e,void 0!==f&&(k[6]=f,void 0!==g&&(k[8]=g,void 0!==h&&(k[9]=h,void 0!==l&&(k[10]=l)))))))));return k},determinant:function(a){const b=a[1],c=a[2],d=a[5],e=a[6],f=a[9],g=a[10];return a[0]* | ||
(d*g-f*e)-a[4]*(b*g-f*c)+a[8]*(b*e-d*c)},equals:function(a,b){return a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]&&a[4]===b[4]&&a[5]===b[5]&&a[6]===b[6]&&a[8]===b[8]&&a[9]===b[9]&&a[10]===b[10]},equalsApproximately:function(a,b){return Math.abs(a[0]-b[0])<t&&Math.abs(a[1]-b[1])<t&&Math.abs(a[2]-b[2])<t&&Math.abs(a[4]-b[4])<t&&Math.abs(a[5]-b[5])<t&&Math.abs(a[6]-b[6])<t&&Math.abs(a[8]-b[8])<t&&Math.abs(a[9]-b[9])<t&&Math.abs(a[10]-b[10])<t},fromMat4:function(a,b){b=b||G();b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]= | ||
0;b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=0;b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=0;return b},fromQuat:function(a,b){b=b||G();var c=a[0],d=a[1],e=a[2];a=a[3];var f=c+c,g=d+d;const h=e+e;c*=f;const l=d*f;d*=g;const k=e*f,m=e*g;e*=h;f*=a;g*=a;a*=h;b[0]=1-d-e;b[1]=l+a;b[2]=k-g;b[3]=0;b[4]=l-a;b[5]=1-c-e;b[6]=m+f;b[7]=0;b[8]=k+g;b[9]=m-f;b[10]=1-c-d;b[11]=0;return b},getAxis:function(a,b,c){c=c||ba();b*=4;c[0]=a[b+0];c[1]=a[b+1];return c},getScaling:function(a,b){b=b||ba();const c=a[0],d=a[1],e=a[4];a=a[5]; | ||
b[0]=Math.sqrt(c*c+d*d);b[1]=Math.sqrt(e*e+a*a);return b},getTranslation:function(a,b){b=b||ba();b[0]=a[8];b[1]=a[9];return b},identity:Sa,inverse:Ta,invert:Ta,mul:Ua,multiply:Ua,negate:function(a,b){b=b||G();b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];b[4]=-a[4];b[5]=-a[5];b[6]=-a[6];b[8]=-a[8];b[9]=-a[9];b[10]=-a[10];return b},rotate:function(a,b,c){c=c||G();const d=a[0],e=a[1],f=a[2],g=a[4],h=a[5],l=a[6],k=Math.cos(b);b=Math.sin(b);c[0]=k*d+b*g;c[1]=k*e+b*h;c[2]=k*f+b*l;c[4]=k*g-b*d;c[5]=k*h-b*e;c[6]=k*l- | ||
b*f;a!==c&&(c[8]=a[8],c[9]=a[9],c[10]=a[10]);return c},rotation:function(a,b){b=b||G();const c=Math.cos(a);a=Math.sin(a);b[0]=c;b[1]=a;b[2]=0;b[4]=-a;b[5]=c;b[6]=0;b[8]=0;b[9]=0;b[10]=1;return b},scale:function(a,b,c){c=c||G();const d=b[0];b=b[1];c[0]=d*a[0];c[1]=d*a[1];c[2]=d*a[2];c[4]=b*a[4];c[5]=b*a[5];c[6]=b*a[6];a!==c&&(c[8]=a[8],c[9]=a[9],c[10]=a[10]);return c},scaling:function(a,b){b=b||G();b[0]=a[0];b[1]=0;b[2]=0;b[4]=0;b[5]=a[1];b[6]=0;b[8]=0;b[9]=0;b[10]=1;return b},set:function(a,b,c,d, | ||
e,f,g,h,l,k){k=k||G();k[0]=a;k[1]=b;k[2]=c;k[3]=0;k[4]=d;k[5]=e;k[6]=f;k[7]=0;k[8]=g;k[9]=h;k[10]=l;k[11]=0;return k},setAxis:function(a,b,c,d){d!==a&&(d=ta(a,d));a=4*c;d[a+0]=b[0];d[a+1]=b[1];return d},setDefaultType:Pa,setTranslation:function(a,b,c){c=c||Sa();a!==c&&(c[0]=a[0],c[1]=a[1],c[2]=a[2],c[4]=a[4],c[5]=a[5],c[6]=a[6]);c[8]=b[0];c[9]=b[1];c[10]=1;return c},translate:function(a,b,c){c=c||G();const d=b[0];b=b[1];const e=a[0],f=a[1],g=a[2],h=a[4],l=a[5],k=a[6],m=a[8],n=a[9],q=a[10];a!==c&& | ||
(c[0]=e,c[1]=f,c[2]=g,c[4]=h,c[5]=l,c[6]=k);c[8]=e*d+h*b+m;c[9]=f*d+l*b+n;c[10]=g*d+k*b+q;return c},translation:function(a,b){b=b||G();b[0]=1;b[1]=0;b[2]=0;b[4]=0;b[5]=1;b[6]=0;b[8]=a[0];b[9]=a[1];b[10]=1;return b},transpose:function(a,b){b=b||G();if(b===a){var c=a[1];a[1]=a[4];a[4]=c;c=a[2];a[2]=a[8];a[8]=c;c=a[6];a[6]=a[9];a[9]=c;return b}c=a[1];const d=a[2],e=a[4],f=a[5],g=a[6],h=a[8],l=a[9],k=a[10];b[0]=a[0];b[1]=e;b[2]=h;b[4]=c;b[5]=f;b[6]=l;b[8]=d;b[9]=g;b[10]=k;return b},uniformScale:function(a, | ||
b,c){c=c||G();c[0]=b*a[0];c[1]=b*a[1];c[2]=b*a[2];c[4]=b*a[4];c[5]=b*a[5];c[6]=b*a[6];a!==c&&(c[8]=a[8],c[9]=a[9],c[10]=a[10]);return c},uniformScaling:function(a,b){b=b||G();b[0]=a;b[1]=0;b[2]=0;b[4]=0;b[5]=a;b[6]=0;b[8]=0;b[9]=0;b[10]=1;return b}};M.mat4=Jb;M.quat=Kb;M.setDefaultType=function(a){Pa(a);cb(a);kb(a);aa(a);Da(a);vb(a)};M.utils={__proto__:null,get EPSILON(){return t},degToRad:function(a){return a*Math.PI/180},euclideanModulo:function(a,b){return(a%b+b)%b},inverseLerp:function(a,b,c){return Math.abs(b- | ||
a)<t?a:(c-a)/(b-a)},lerp:function(a,b,c){return a+(b-a)*c},radToDeg:function(a){return 180*a/Math.PI},setEpsilon:function(a){const b=t;t=a;return b}};M.vec2=Hb;M.vec3=Ib;M.vec4=Lb}); | ||
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).wgpuMatrix={})}(this,(function(n){"use strict";let t=1e-6;var r={__proto__:null,get EPSILON(){return t},degToRad:function(n){return n*Math.PI/180},euclideanModulo:function(n,t){return(n%t+t)%t},inverseLerp:function(n,r,e){const o=r-n;return Math.abs(r-n)<t?n:(e-n)/o},lerp:function(n,t,r){return n+(t-n)*r},radToDeg:function(n){return 180*n/Math.PI},setEpsilon:function(n){const r=t;return t=n,r}};let e=Float32Array;function o(n){const t=e;return e=n,t}function u(n=0,t=0){const r=new e(2);return void 0!==n&&(r[0]=n,void 0!==t&&(r[1]=t)),r}let a=Float32Array;function i(n){const t=a;return a=n,t}function c(n,t,r){const e=new a(3);return void 0!==n&&(e[0]=n,void 0!==t&&(e[1]=t,void 0!==r&&(e[2]=r))),e}function s(n,t,r){return(r=r||new e(2))[0]=n[0]-t[0],r[1]=n[1]-t[1],r}function f(n,t,r,o){return(o=o||new e(2))[0]=n[0]+r*(t[0]-n[0]),o[1]=n[1]+r*(t[1]-n[1]),o}function h(n,t,r){return(r=r||new e(2))[0]=n[0]*t,r[1]=n[1]*t,r}function l(n,t){return(t=t||new e(2))[0]=1/n[0],t[1]=1/n[1],t}function M(n,t){return n[0]*t[0]+n[1]*t[1]}function w(n){const t=n[0],r=n[1];return Math.sqrt(t*t+r*r)}function d(n){const t=n[0],r=n[1];return t*t+r*r}function m(n,t){const r=n[0]-t[0],e=n[1]-t[1];return Math.sqrt(r*r+e*e)}function v(n,t){const r=n[0]-t[0],e=n[1]-t[1];return r*r+e*e}function p(n,t){t=t||new e(2);const r=n[0],o=n[1],u=Math.sqrt(r*r+o*o);return u>1e-5?(t[0]=r/u,t[1]=o/u):(t[0]=0,t[1]=0),t}function b(n,t){return(t=t||new e(2))[0]=n[0],t[1]=n[1],t}function q(n,t,r){return(r=r||new e(2))[0]=n[0]*t[0],r[1]=n[1]*t[1],r}function y(n,t,r){return(r=r||new e(2))[0]=n[0]/t[0],r[1]=n[1]/t[1],r}function x(n,t,r){return p(n,r=r||new e(2)),h(r,t,r)}var g={__proto__:null,add:function(n,t,r){return(r=r||new e(2))[0]=n[0]+t[0],r[1]=n[1]+t[1],r},addScaled:function(n,t,r,o){return(o=o||new e(2))[0]=n[0]+t[0]*r,o[1]=n[1]+t[1]*r,o},angle:function(n,t){const r=n[0],e=n[1],o=t[0],u=t[1],a=Math.sqrt(r*r+e*e)*Math.sqrt(o*o+u*u),i=a&&M(n,t)/a;return Math.acos(i)},ceil:function(n,t){return(t=t||new e(2))[0]=Math.ceil(n[0]),t[1]=Math.ceil(n[1]),t},clamp:function(n,t=0,r=1,o){return(o=o||new e(2))[0]=Math.min(r,Math.max(t,n[0])),o[1]=Math.min(r,Math.max(t,n[1])),o},clone:b,copy:b,create:u,cross:function(n,t,r){r=r||new a(3);const e=n[0]*t[1]-n[1]*t[0];return r[0]=0,r[1]=0,r[2]=e,r},dist:m,distSq:v,distance:m,distanceSq:v,div:y,divScalar:function(n,t,r){return(r=r||new e(2))[0]=n[0]/t,r[1]=n[1]/t,r},divide:y,dot:M,equals:function(n,t){return n[0]===t[0]&&n[1]===t[1]},equalsApproximately:function(n,r){return Math.abs(n[0]-r[0])<t&&Math.abs(n[1]-r[1])<t},floor:function(n,t){return(t=t||new e(2))[0]=Math.floor(n[0]),t[1]=Math.floor(n[1]),t},fromValues:u,inverse:l,invert:l,len:w,lenSq:d,length:w,lengthSq:d,lerp:f,lerpV:function(n,t,r,o){return(o=o||new e(2))[0]=n[0]+r[0]*(t[0]-n[0]),o[1]=n[1]+r[1]*(t[1]-n[1]),o},max:function(n,t,r){return(r=r||new e(2))[0]=Math.max(n[0],t[0]),r[1]=Math.max(n[1],t[1]),r},midpoint:function(n,t,r){return f(n,t,.5,r=r||new e(2))},min:function(n,t,r){return(r=r||new e(2))[0]=Math.min(n[0],t[0]),r[1]=Math.min(n[1],t[1]),r},mul:q,mulScalar:h,multiply:q,negate:function(n,t){return(t=t||new e(2))[0]=-n[0],t[1]=-n[1],t},normalize:p,random:function(n=1,t){t=t||new e(2);const r=2*Math.random()*Math.PI;return t[0]=Math.cos(r)*n,t[1]=Math.sin(r)*n,t},rotate:function(n,t,r,o){o=o||new e(2);const u=n[0]-t[0],a=n[1]-t[1],i=Math.sin(r),c=Math.cos(r);return o[0]=u*c-a*i+t[0],o[1]=u*i+a*c+t[1],o},round:function(n,t){return(t=t||new e(2))[0]=Math.round(n[0]),t[1]=Math.round(n[1]),t},scale:h,set:function(n,t,r){return(r=r||new e(2))[0]=n,r[1]=t,r},setDefaultType:o,setLength:x,sub:s,subtract:s,transformMat3:function(n,t,r){r=r||new e(2);const o=n[0],u=n[1];return r[0]=t[0]*o+t[4]*u+t[8],r[1]=t[1]*o+t[5]*u+t[9],r},transformMat4:function(n,t,r){r=r||new e(2);const o=n[0],u=n[1];return r[0]=o*t[0]+u*t[4]+t[12],r[1]=o*t[1]+u*t[5]+t[13],r},truncate:function(n,t,r){return r=r||new e(2),w(n)>t?x(n,t,r):b(n,r)},zero:function(n){return(n=n||new e(2))[0]=0,n[1]=0,n}};let S=Float32Array;const A=new Map([[Float32Array,()=>new Float32Array(12)],[Float64Array,()=>new Float64Array(12)],[Array,()=>new Array(12).fill(0)]]);let _=A.get(Float32Array);function T(n){const t=S;return S=n,_=A.get(n),t}function z(n,t){return(t=t||_())[0]=n[0],t[1]=n[1],t[2]=n[2],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[8]=n[8],t[9]=n[9],t[10]=n[10],t}function F(n){return(n=n||_())[0]=1,n[1]=0,n[2]=0,n[4]=0,n[5]=1,n[6]=0,n[8]=0,n[9]=0,n[10]=1,n}function k(n,t){t=t||_();const r=n[0],e=n[1],o=n[2],u=n[4],a=n[5],i=n[6],c=n[8],s=n[9],f=n[10],h=f*a-i*s,l=-f*u+i*c,M=s*u-a*c,w=1/(r*h+e*l+o*M);return t[0]=h*w,t[1]=(-f*e+o*s)*w,t[2]=(i*e-o*a)*w,t[4]=l*w,t[5]=(f*r-o*c)*w,t[6]=(-i*r+o*u)*w,t[8]=M*w,t[9]=(-s*r+e*c)*w,t[10]=(a*r-e*u)*w,t}function D(n,t,r){r=r||_();const e=n[0],o=n[1],u=n[2],a=n[4],i=n[5],c=n[6],s=n[8],f=n[9],h=n[10],l=t[0],M=t[1],w=t[2],d=t[4],m=t[5],v=t[6],p=t[8],b=t[9],q=t[10];return r[0]=e*l+a*M+s*w,r[1]=o*l+i*M+f*w,r[2]=u*l+c*M+h*w,r[4]=e*d+a*m+s*v,r[5]=o*d+i*m+f*v,r[6]=u*d+c*m+h*v,r[8]=e*p+a*b+s*q,r[9]=o*p+i*b+f*q,r[10]=u*p+c*b+h*q,r}var I={__proto__:null,clone:z,copy:z,create:function(n,t,r,e,o,u,a,i,c){const s=_();return s[3]=0,s[7]=0,s[11]=0,void 0!==n&&(s[0]=n,void 0!==t&&(s[1]=t,void 0!==r&&(s[2]=r,void 0!==e&&(s[4]=e,void 0!==o&&(s[5]=o,void 0!==u&&(s[6]=u,void 0!==a&&(s[8]=a,void 0!==i&&(s[9]=i,void 0!==c&&(s[10]=c))))))))),s},determinant:function(n){const t=n[0],r=n[1],e=n[2],o=n[4],u=n[5],a=n[6],i=n[8],c=n[9],s=n[10];return t*(u*s-c*a)-o*(r*s-c*e)+i*(r*a-u*e)},equals:function(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[4]===t[4]&&n[5]===t[5]&&n[6]===t[6]&&n[8]===t[8]&&n[9]===t[9]&&n[10]===t[10]},equalsApproximately:function(n,r){return Math.abs(n[0]-r[0])<t&&Math.abs(n[1]-r[1])<t&&Math.abs(n[2]-r[2])<t&&Math.abs(n[4]-r[4])<t&&Math.abs(n[5]-r[5])<t&&Math.abs(n[6]-r[6])<t&&Math.abs(n[8]-r[8])<t&&Math.abs(n[9]-r[9])<t&&Math.abs(n[10]-r[10])<t},fromMat4:function(n,t){return(t=t||_())[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=0,t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=0,t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=0,t},fromQuat:function(n,t){t=t||_();const r=n[0],e=n[1],o=n[2],u=n[3],a=r+r,i=e+e,c=o+o,s=r*a,f=e*a,h=e*i,l=o*a,M=o*i,w=o*c,d=u*a,m=u*i,v=u*c;return t[0]=1-h-w,t[1]=f+v,t[2]=l-m,t[3]=0,t[4]=f-v,t[5]=1-s-w,t[6]=M+d,t[7]=0,t[8]=l+m,t[9]=M-d,t[10]=1-s-h,t[11]=0,t},getAxis:function(n,t,r){const e=4*t;return(r=r||u())[0]=n[e+0],r[1]=n[e+1],r},getScaling:function(n,t){t=t||u();const r=n[0],e=n[1],o=n[4],a=n[5];return t[0]=Math.sqrt(r*r+e*e),t[1]=Math.sqrt(o*o+a*a),t},getTranslation:function(n,t){return(t=t||u())[0]=n[8],t[1]=n[9],t},identity:F,inverse:k,invert:k,mul:D,multiply:D,negate:function(n,t){return(t=t||_())[0]=-n[0],t[1]=-n[1],t[2]=-n[2],t[4]=-n[4],t[5]=-n[5],t[6]=-n[6],t[8]=-n[8],t[9]=-n[9],t[10]=-n[10],t},rotate:function(n,t,r){r=r||_();const e=n[0],o=n[1],u=n[2],a=n[4],i=n[5],c=n[6],s=Math.cos(t),f=Math.sin(t);return r[0]=s*e+f*a,r[1]=s*o+f*i,r[2]=s*u+f*c,r[4]=s*a-f*e,r[5]=s*i-f*o,r[6]=s*c-f*u,n!==r&&(r[8]=n[8],r[9]=n[9],r[10]=n[10]),r},rotation:function(n,t){t=t||_();const r=Math.cos(n),e=Math.sin(n);return t[0]=r,t[1]=e,t[2]=0,t[4]=-e,t[5]=r,t[6]=0,t[8]=0,t[9]=0,t[10]=1,t},scale:function(n,t,r){r=r||_();const e=t[0],o=t[1];return r[0]=e*n[0],r[1]=e*n[1],r[2]=e*n[2],r[4]=o*n[4],r[5]=o*n[5],r[6]=o*n[6],n!==r&&(r[8]=n[8],r[9]=n[9],r[10]=n[10]),r},scaling:function(n,t){return(t=t||_())[0]=n[0],t[1]=0,t[2]=0,t[4]=0,t[5]=n[1],t[6]=0,t[8]=0,t[9]=0,t[10]=1,t},set:function(n,t,r,e,o,u,a,i,c,s){return(s=s||_())[0]=n,s[1]=t,s[2]=r,s[3]=0,s[4]=e,s[5]=o,s[6]=u,s[7]=0,s[8]=a,s[9]=i,s[10]=c,s[11]=0,s},setAxis:function(n,t,r,e){e!==n&&(e=z(n,e));const o=4*r;return e[o+0]=t[0],e[o+1]=t[1],e},setDefaultType:T,setTranslation:function(n,t,r){return n!==(r=r||F())&&(r[0]=n[0],r[1]=n[1],r[2]=n[2],r[4]=n[4],r[5]=n[5],r[6]=n[6]),r[8]=t[0],r[9]=t[1],r[10]=1,r},translate:function(n,t,r){r=r||_();const e=t[0],o=t[1],u=n[0],a=n[1],i=n[2],c=n[4],s=n[5],f=n[6],h=n[8],l=n[9],M=n[10];return n!==r&&(r[0]=u,r[1]=a,r[2]=i,r[4]=c,r[5]=s,r[6]=f),r[8]=u*e+c*o+h,r[9]=a*e+s*o+l,r[10]=i*e+f*o+M,r},translation:function(n,t){return(t=t||_())[0]=1,t[1]=0,t[2]=0,t[4]=0,t[5]=1,t[6]=0,t[8]=n[0],t[9]=n[1],t[10]=1,t},transpose:function(n,t){if((t=t||_())===n){let r;return r=n[1],n[1]=n[4],n[4]=r,r=n[2],n[2]=n[8],n[8]=r,r=n[6],n[6]=n[9],n[9]=r,t}const r=n[0],e=n[1],o=n[2],u=n[4],a=n[5],i=n[6],c=n[8],s=n[9],f=n[10];return t[0]=r,t[1]=u,t[2]=c,t[4]=e,t[5]=a,t[6]=s,t[8]=o,t[9]=i,t[10]=f,t},uniformScale:function(n,t,r){return(r=r||_())[0]=t*n[0],r[1]=t*n[1],r[2]=t*n[2],r[4]=t*n[4],r[5]=t*n[5],r[6]=t*n[6],n!==r&&(r[8]=n[8],r[9]=n[9],r[10]=n[10]),r},uniformScaling:function(n,t){return(t=t||_())[0]=n,t[1]=0,t[2]=0,t[4]=0,t[5]=n,t[6]=0,t[8]=0,t[9]=0,t[10]=1,t}};function P(n,t,r){return(r=r||new a(3))[0]=n[0]-t[0],r[1]=n[1]-t[1],r[2]=n[2]-t[2],r}function V(n,t,r,e){return(e=e||new a(3))[0]=n[0]+r*(t[0]-n[0]),e[1]=n[1]+r*(t[1]-n[1]),e[2]=n[2]+r*(t[2]-n[2]),e}function Z(n,t,r){return(r=r||new a(3))[0]=n[0]*t,r[1]=n[1]*t,r[2]=n[2]*t,r}function L(n,t){return(t=t||new a(3))[0]=1/n[0],t[1]=1/n[1],t[2]=1/n[2],t}function R(n,t,r){r=r||new a(3);const e=n[2]*t[0]-n[0]*t[2],o=n[0]*t[1]-n[1]*t[0];return r[0]=n[1]*t[2]-n[2]*t[1],r[1]=e,r[2]=o,r}function E(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function X(n){const t=n[0],r=n[1],e=n[2];return Math.sqrt(t*t+r*r+e*e)}const Y=X;function Q(n){const t=n[0],r=n[1],e=n[2];return t*t+r*r+e*e}function j(n,t){const r=n[0]-t[0],e=n[1]-t[1],o=n[2]-t[2];return Math.sqrt(r*r+e*e+o*o)}function N(n,t){const r=n[0]-t[0],e=n[1]-t[1],o=n[2]-t[2];return r*r+e*e+o*o}function U(n,t){t=t||new a(3);const r=n[0],e=n[1],o=n[2],u=Math.sqrt(r*r+e*e+o*o);return u>1e-5?(t[0]=r/u,t[1]=e/u,t[2]=o/u):(t[0]=0,t[1]=0,t[2]=0),t}function O(n,t){return(t=t||new a(3))[0]=n[0],t[1]=n[1],t[2]=n[2],t}function $(n,t,r){return(r=r||new a(3))[0]=n[0]*t[0],r[1]=n[1]*t[1],r[2]=n[2]*t[2],r}function B(n,t,r){return(r=r||new a(3))[0]=n[0]/t[0],r[1]=n[1]/t[1],r[2]=n[2]/t[2],r}function C(n,t,r){return U(n,r=r||new a(3)),Z(r,t,r)}var G={__proto__:null,add:function(n,t,r){return(r=r||new a(3))[0]=n[0]+t[0],r[1]=n[1]+t[1],r[2]=n[2]+t[2],r},addScaled:function(n,t,r,e){return(e=e||new a(3))[0]=n[0]+t[0]*r,e[1]=n[1]+t[1]*r,e[2]=n[2]+t[2]*r,e},angle:function(n,t){const r=n[0],e=n[1],o=n[2],u=t[0],a=t[1],i=t[2],c=Math.sqrt(r*r+e*e+o*o)*Math.sqrt(u*u+a*a+i*i),s=c&&E(n,t)/c;return Math.acos(s)},ceil:function(n,t){return(t=t||new a(3))[0]=Math.ceil(n[0]),t[1]=Math.ceil(n[1]),t[2]=Math.ceil(n[2]),t},clamp:function(n,t=0,r=1,e){return(e=e||new a(3))[0]=Math.min(r,Math.max(t,n[0])),e[1]=Math.min(r,Math.max(t,n[1])),e[2]=Math.min(r,Math.max(t,n[2])),e},clone:O,copy:O,create:c,cross:R,dist:j,distSq:N,distance:j,distanceSq:N,div:B,divScalar:function(n,t,r){return(r=r||new a(3))[0]=n[0]/t,r[1]=n[1]/t,r[2]=n[2]/t,r},divide:B,dot:E,equals:function(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]},equalsApproximately:function(n,r){return Math.abs(n[0]-r[0])<t&&Math.abs(n[1]-r[1])<t&&Math.abs(n[2]-r[2])<t},floor:function(n,t){return(t=t||new a(3))[0]=Math.floor(n[0]),t[1]=Math.floor(n[1]),t[2]=Math.floor(n[2]),t},fromValues:c,getAxis:function(n,t,r){const e=4*t;return(r=r||new a(3))[0]=n[e+0],r[1]=n[e+1],r[2]=n[e+2],r},getScaling:function(n,t){t=t||new a(3);const r=n[0],e=n[1],o=n[2],u=n[4],i=n[5],c=n[6],s=n[8],f=n[9],h=n[10];return t[0]=Math.sqrt(r*r+e*e+o*o),t[1]=Math.sqrt(u*u+i*i+c*c),t[2]=Math.sqrt(s*s+f*f+h*h),t},getTranslation:function(n,t){return(t=t||new a(3))[0]=n[12],t[1]=n[13],t[2]=n[14],t},inverse:L,invert:L,len:Y,lenSq:Q,length:X,lengthSq:Q,lerp:V,lerpV:function(n,t,r,e){return(e=e||new a(3))[0]=n[0]+r[0]*(t[0]-n[0]),e[1]=n[1]+r[1]*(t[1]-n[1]),e[2]=n[2]+r[2]*(t[2]-n[2]),e},max:function(n,t,r){return(r=r||new a(3))[0]=Math.max(n[0],t[0]),r[1]=Math.max(n[1],t[1]),r[2]=Math.max(n[2],t[2]),r},midpoint:function(n,t,r){return V(n,t,.5,r=r||new a(3))},min:function(n,t,r){return(r=r||new a(3))[0]=Math.min(n[0],t[0]),r[1]=Math.min(n[1],t[1]),r[2]=Math.min(n[2],t[2]),r},mul:$,mulScalar:Z,multiply:$,negate:function(n,t){return(t=t||new a(3))[0]=-n[0],t[1]=-n[1],t[2]=-n[2],t},normalize:U,random:function(n=1,t){t=t||new a(3);const r=2*Math.random()*Math.PI,e=2*Math.random()-1,o=Math.sqrt(1-e*e)*n;return t[0]=Math.cos(r)*o,t[1]=Math.sin(r)*o,t[2]=e*n,t},rotateX:function(n,t,r,e){e=e||new a(3);const o=[],u=[];return o[0]=n[0]-t[0],o[1]=n[1]-t[1],o[2]=n[2]-t[2],u[0]=o[0],u[1]=o[1]*Math.cos(r)-o[2]*Math.sin(r),u[2]=o[1]*Math.sin(r)+o[2]*Math.cos(r),e[0]=u[0]+t[0],e[1]=u[1]+t[1],e[2]=u[2]+t[2],e},rotateY:function(n,t,r,e){e=e||new a(3);const o=[],u=[];return o[0]=n[0]-t[0],o[1]=n[1]-t[1],o[2]=n[2]-t[2],u[0]=o[2]*Math.sin(r)+o[0]*Math.cos(r),u[1]=o[1],u[2]=o[2]*Math.cos(r)-o[0]*Math.sin(r),e[0]=u[0]+t[0],e[1]=u[1]+t[1],e[2]=u[2]+t[2],e},rotateZ:function(n,t,r,e){e=e||new a(3);const o=[],u=[];return o[0]=n[0]-t[0],o[1]=n[1]-t[1],o[2]=n[2]-t[2],u[0]=o[0]*Math.cos(r)-o[1]*Math.sin(r),u[1]=o[0]*Math.sin(r)+o[1]*Math.cos(r),u[2]=o[2],e[0]=u[0]+t[0],e[1]=u[1]+t[1],e[2]=u[2]+t[2],e},round:function(n,t){return(t=t||new a(3))[0]=Math.round(n[0]),t[1]=Math.round(n[1]),t[2]=Math.round(n[2]),t},scale:Z,set:function(n,t,r,e){return(e=e||new a(3))[0]=n,e[1]=t,e[2]=r,e},setDefaultType:i,setLength:C,sub:P,subtract:P,transformMat3:function(n,t,r){r=r||new a(3);const e=n[0],o=n[1],u=n[2];return r[0]=e*t[0]+o*t[4]+u*t[8],r[1]=e*t[1]+o*t[5]+u*t[9],r[2]=e*t[2]+o*t[6]+u*t[10],r},transformMat4:function(n,t,r){r=r||new a(3);const e=n[0],o=n[1],u=n[2],i=t[3]*e+t[7]*o+t[11]*u+t[15]||1;return r[0]=(t[0]*e+t[4]*o+t[8]*u+t[12])/i,r[1]=(t[1]*e+t[5]*o+t[9]*u+t[13])/i,r[2]=(t[2]*e+t[6]*o+t[10]*u+t[14])/i,r},transformMat4Upper3x3:function(n,t,r){r=r||new a(3);const e=n[0],o=n[1],u=n[2];return r[0]=e*t[0]+o*t[4]+u*t[8],r[1]=e*t[1]+o*t[5]+u*t[9],r[2]=e*t[2]+o*t[6]+u*t[10],r},transformQuat:function(n,t,r){r=r||new a(3);const e=t[0],o=t[1],u=t[2],i=2*t[3],c=n[0],s=n[1],f=n[2],h=o*f-u*s,l=u*c-e*f,M=e*s-o*c;return r[0]=c+h*i+2*(o*M-u*l),r[1]=s+l*i+2*(u*h-e*M),r[2]=f+M*i+2*(e*l-o*h),r},truncate:function(n,t,r){return r=r||new a(3),X(n)>t?C(n,t,r):O(n,r)},zero:function(n){return(n=n||new a(3))[0]=0,n[1]=0,n[2]=0,n}};let H=Float32Array;function J(n){const t=H;return H=n,t}function K(n,t){return(t=t||new H(16))[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],t}function W(n){return(n=n||new H(16))[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function nn(n,t){t=t||new H(16);const r=n[0],e=n[1],o=n[2],u=n[3],a=n[4],i=n[5],c=n[6],s=n[7],f=n[8],h=n[9],l=n[10],M=n[11],w=n[12],d=n[13],m=n[14],v=n[15],p=l*v,b=m*M,q=c*v,y=m*s,x=c*M,g=l*s,S=o*v,A=m*u,_=o*M,T=l*u,z=o*s,F=c*u,k=f*d,D=w*h,I=a*d,P=w*i,V=a*h,Z=f*i,L=r*d,R=w*e,E=r*h,X=f*e,Y=r*i,Q=a*e,j=p*i+y*h+x*d-(b*i+q*h+g*d),N=b*e+S*h+T*d-(p*e+A*h+_*d),U=q*e+A*i+z*d-(y*e+S*i+F*d),O=g*e+_*i+F*h-(x*e+T*i+z*h),$=1/(r*j+a*N+f*U+w*O);return t[0]=$*j,t[1]=$*N,t[2]=$*U,t[3]=$*O,t[4]=$*(b*a+q*f+g*w-(p*a+y*f+x*w)),t[5]=$*(p*r+A*f+_*w-(b*r+S*f+T*w)),t[6]=$*(y*r+S*a+F*w-(q*r+A*a+z*w)),t[7]=$*(x*r+T*a+z*f-(g*r+_*a+F*f)),t[8]=$*(k*s+P*M+V*v-(D*s+I*M+Z*v)),t[9]=$*(D*u+L*M+X*v-(k*u+R*M+E*v)),t[10]=$*(I*u+R*s+Y*v-(P*u+L*s+Q*v)),t[11]=$*(Z*u+E*s+Q*M-(V*u+X*s+Y*M)),t[12]=$*(I*l+Z*m+D*c-(V*m+k*c+P*l)),t[13]=$*(E*m+k*o+R*l-(L*l+X*m+D*o)),t[14]=$*(L*c+Q*m+P*o-(Y*m+I*o+R*c)),t[15]=$*(Y*l+V*o+X*c-(E*c+Q*l+Z*o)),t}function tn(n,t,r){r=r||new H(16);const e=n[0],o=n[1],u=n[2],a=n[3],i=n[4],c=n[5],s=n[6],f=n[7],h=n[8],l=n[9],M=n[10],w=n[11],d=n[12],m=n[13],v=n[14],p=n[15],b=t[0],q=t[1],y=t[2],x=t[3],g=t[4],S=t[5],A=t[6],_=t[7],T=t[8],z=t[9],F=t[10],k=t[11],D=t[12],I=t[13],P=t[14],V=t[15];return r[0]=e*b+i*q+h*y+d*x,r[1]=o*b+c*q+l*y+m*x,r[2]=u*b+s*q+M*y+v*x,r[3]=a*b+f*q+w*y+p*x,r[4]=e*g+i*S+h*A+d*_,r[5]=o*g+c*S+l*A+m*_,r[6]=u*g+s*S+M*A+v*_,r[7]=a*g+f*S+w*A+p*_,r[8]=e*T+i*z+h*F+d*k,r[9]=o*T+c*z+l*F+m*k,r[10]=u*T+s*z+M*F+v*k,r[11]=a*T+f*z+w*F+p*k,r[12]=e*D+i*I+h*P+d*V,r[13]=o*D+c*I+l*P+m*V,r[14]=u*D+s*I+M*P+v*V,r[15]=a*D+f*I+w*P+p*V,r}let rn,en,on;function un(n,t,r){r=r||new H(16);let e=n[0],o=n[1],u=n[2];const a=Math.sqrt(e*e+o*o+u*u);e/=a,o/=a,u/=a;const i=e*e,c=o*o,s=u*u,f=Math.cos(t),h=Math.sin(t),l=1-f;return r[0]=i+(1-i)*f,r[1]=e*o*l+u*h,r[2]=e*u*l-o*h,r[3]=0,r[4]=e*o*l-u*h,r[5]=c+(1-c)*f,r[6]=o*u*l+e*h,r[7]=0,r[8]=e*u*l+o*h,r[9]=o*u*l-e*h,r[10]=s+(1-s)*f,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function an(n,t,r,e){e=e||new H(16);let o=t[0],u=t[1],a=t[2];const i=Math.sqrt(o*o+u*u+a*a);o/=i,u/=i,a/=i;const c=o*o,s=u*u,f=a*a,h=Math.cos(r),l=Math.sin(r),M=1-h,w=c+(1-c)*h,d=o*u*M+a*l,m=o*a*M-u*l,v=o*u*M-a*l,p=s+(1-s)*h,b=u*a*M+o*l,q=o*a*M+u*l,y=u*a*M-o*l,x=f+(1-f)*h,g=n[0],S=n[1],A=n[2],_=n[3],T=n[4],z=n[5],F=n[6],k=n[7],D=n[8],I=n[9],P=n[10],V=n[11];return e[0]=w*g+d*T+m*D,e[1]=w*S+d*z+m*I,e[2]=w*A+d*F+m*P,e[3]=w*_+d*k+m*V,e[4]=v*g+p*T+b*D,e[5]=v*S+p*z+b*I,e[6]=v*A+p*F+b*P,e[7]=v*_+p*k+b*V,e[8]=q*g+y*T+x*D,e[9]=q*S+y*z+x*I,e[10]=q*A+y*F+x*P,e[11]=q*_+y*k+x*V,n!==e&&(e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15]),e}var cn={__proto__:null,aim:function(n,t,r,e){return e=e||new H(16),rn=rn||c(),en=en||c(),on=on||c(),U(P(t,n,on),on),U(R(r,on,rn),rn),U(R(on,rn,en),en),e[0]=rn[0],e[1]=rn[1],e[2]=rn[2],e[3]=0,e[4]=en[0],e[5]=en[1],e[6]=en[2],e[7]=0,e[8]=on[0],e[9]=on[1],e[10]=on[2],e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e},axisRotate:an,axisRotation:un,cameraAim:function(n,t,r,e){return e=e||new H(16),rn=rn||c(),en=en||c(),on=on||c(),U(P(n,t,on),on),U(R(r,on,rn),rn),U(R(on,rn,en),en),e[0]=rn[0],e[1]=rn[1],e[2]=rn[2],e[3]=0,e[4]=en[0],e[5]=en[1],e[6]=en[2],e[7]=0,e[8]=on[0],e[9]=on[1],e[10]=on[2],e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e},clone:K,copy:K,create:function(n,t,r,e,o,u,a,i,c,s,f,h,l,M,w,d){const m=new H(16);return void 0!==n&&(m[0]=n,void 0!==t&&(m[1]=t,void 0!==r&&(m[2]=r,void 0!==e&&(m[3]=e,void 0!==o&&(m[4]=o,void 0!==u&&(m[5]=u,void 0!==a&&(m[6]=a,void 0!==i&&(m[7]=i,void 0!==c&&(m[8]=c,void 0!==s&&(m[9]=s,void 0!==f&&(m[10]=f,void 0!==h&&(m[11]=h,void 0!==l&&(m[12]=l,void 0!==M&&(m[13]=M,void 0!==w&&(m[14]=w,void 0!==d&&(m[15]=d)))))))))))))))),m},determinant:function(n){const t=n[0],r=n[1],e=n[2],o=n[3],u=n[4],a=n[5],i=n[6],c=n[7],s=n[8],f=n[9],h=n[10],l=n[11],M=n[12],w=n[13],d=n[14],m=n[15],v=h*m,p=d*l,b=i*m,q=d*c,y=i*l,x=h*c,g=e*m,S=d*o,A=e*l,_=h*o,T=e*c,z=i*o;return t*(v*a+q*f+y*w-(p*a+b*f+x*w))+u*(p*r+g*f+_*w-(v*r+S*f+A*w))+s*(b*r+S*a+T*w-(q*r+g*a+z*w))+M*(x*r+A*a+z*f-(y*r+_*a+T*f))},equals:function(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]&&n[6]===t[6]&&n[7]===t[7]&&n[8]===t[8]&&n[9]===t[9]&&n[10]===t[10]&&n[11]===t[11]&&n[12]===t[12]&&n[13]===t[13]&&n[14]===t[14]&&n[15]===t[15]},equalsApproximately:function(n,r){return Math.abs(n[0]-r[0])<t&&Math.abs(n[1]-r[1])<t&&Math.abs(n[2]-r[2])<t&&Math.abs(n[3]-r[3])<t&&Math.abs(n[4]-r[4])<t&&Math.abs(n[5]-r[5])<t&&Math.abs(n[6]-r[6])<t&&Math.abs(n[7]-r[7])<t&&Math.abs(n[8]-r[8])<t&&Math.abs(n[9]-r[9])<t&&Math.abs(n[10]-r[10])<t&&Math.abs(n[11]-r[11])<t&&Math.abs(n[12]-r[12])<t&&Math.abs(n[13]-r[13])<t&&Math.abs(n[14]-r[14])<t&&Math.abs(n[15]-r[15])<t},fromMat3:function(n,t){return(t=t||new H(16))[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=0,t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=0,t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},fromQuat:function(n,t){t=t||new H(16);const r=n[0],e=n[1],o=n[2],u=n[3],a=r+r,i=e+e,c=o+o,s=r*a,f=e*a,h=e*i,l=o*a,M=o*i,w=o*c,d=u*a,m=u*i,v=u*c;return t[0]=1-h-w,t[1]=f+v,t[2]=l-m,t[3]=0,t[4]=f-v,t[5]=1-s-w,t[6]=M+d,t[7]=0,t[8]=l+m,t[9]=M-d,t[10]=1-s-h,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},frustum:function(n,t,r,e,o,u,a){const i=t-n,c=e-r,s=o-u;return(a=a||new H(16))[0]=2*o/i,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=2*o/c,a[6]=0,a[7]=0,a[8]=(n+t)/i,a[9]=(e+r)/c,a[10]=u/s,a[11]=-1,a[12]=0,a[13]=0,a[14]=o*u/s,a[15]=0,a},frustumReverseZ:function(n,t,r,e,o,u=1/0,a){const i=t-n,c=e-r;if((a=a||new H(16))[0]=2*o/i,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=2*o/c,a[6]=0,a[7]=0,a[8]=(n+t)/i,a[9]=(e+r)/c,a[11]=-1,a[12]=0,a[13]=0,a[15]=0,u===1/0)a[10]=0,a[14]=o;else{const n=1/(u-o);a[10]=o*n,a[14]=u*o*n}return a},getAxis:function(n,t,r){const e=4*t;return(r=r||c())[0]=n[e+0],r[1]=n[e+1],r[2]=n[e+2],r},getScaling:function(n,t){t=t||c();const r=n[0],e=n[1],o=n[2],u=n[4],a=n[5],i=n[6],s=n[8],f=n[9],h=n[10];return t[0]=Math.sqrt(r*r+e*e+o*o),t[1]=Math.sqrt(u*u+a*a+i*i),t[2]=Math.sqrt(s*s+f*f+h*h),t},getTranslation:function(n,t){return(t=t||c())[0]=n[12],t[1]=n[13],t[2]=n[14],t},identity:W,inverse:nn,invert:nn,lookAt:function(n,t,r,e){return e=e||new H(16),rn=rn||c(),en=en||c(),on=on||c(),U(P(n,t,on),on),U(R(r,on,rn),rn),U(R(on,rn,en),en),e[0]=rn[0],e[1]=en[0],e[2]=on[0],e[3]=0,e[4]=rn[1],e[5]=en[1],e[6]=on[1],e[7]=0,e[8]=rn[2],e[9]=en[2],e[10]=on[2],e[11]=0,e[12]=-(rn[0]*n[0]+rn[1]*n[1]+rn[2]*n[2]),e[13]=-(en[0]*n[0]+en[1]*n[1]+en[2]*n[2]),e[14]=-(on[0]*n[0]+on[1]*n[1]+on[2]*n[2]),e[15]=1,e},mul:tn,multiply:tn,negate:function(n,t){return(t=t||new H(16))[0]=-n[0],t[1]=-n[1],t[2]=-n[2],t[3]=-n[3],t[4]=-n[4],t[5]=-n[5],t[6]=-n[6],t[7]=-n[7],t[8]=-n[8],t[9]=-n[9],t[10]=-n[10],t[11]=-n[11],t[12]=-n[12],t[13]=-n[13],t[14]=-n[14],t[15]=-n[15],t},ortho:function(n,t,r,e,o,u,a){return(a=a||new H(16))[0]=2/(t-n),a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=2/(e-r),a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=1/(o-u),a[11]=0,a[12]=(t+n)/(n-t),a[13]=(e+r)/(r-e),a[14]=o/(o-u),a[15]=1,a},perspective:function(n,t,r,e,o){o=o||new H(16);const u=Math.tan(.5*Math.PI-.5*n);if(o[0]=u/t,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=u,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[11]=-1,o[12]=0,o[13]=0,o[15]=0,Number.isFinite(e)){const n=1/(r-e);o[10]=e*n,o[14]=e*r*n}else o[10]=-1,o[14]=-r;return o},perspectiveReverseZ:function(n,t,r,e=1/0,o){o=o||new H(16);const u=1/Math.tan(.5*n);if(o[0]=u/t,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=u,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[11]=-1,o[12]=0,o[13]=0,o[15]=0,e===1/0)o[10]=0,o[14]=r;else{const n=1/(e-r);o[10]=r*n,o[14]=e*r*n}return o},rotate:an,rotateX:function(n,t,r){r=r||new H(16);const e=n[4],o=n[5],u=n[6],a=n[7],i=n[8],c=n[9],s=n[10],f=n[11],h=Math.cos(t),l=Math.sin(t);return r[4]=h*e+l*i,r[5]=h*o+l*c,r[6]=h*u+l*s,r[7]=h*a+l*f,r[8]=h*i-l*e,r[9]=h*c-l*o,r[10]=h*s-l*u,r[11]=h*f-l*a,n!==r&&(r[0]=n[0],r[1]=n[1],r[2]=n[2],r[3]=n[3],r[12]=n[12],r[13]=n[13],r[14]=n[14],r[15]=n[15]),r},rotateY:function(n,t,r){r=r||new H(16);const e=n[0],o=n[1],u=n[2],a=n[3],i=n[8],c=n[9],s=n[10],f=n[11],h=Math.cos(t),l=Math.sin(t);return r[0]=h*e-l*i,r[1]=h*o-l*c,r[2]=h*u-l*s,r[3]=h*a-l*f,r[8]=h*i+l*e,r[9]=h*c+l*o,r[10]=h*s+l*u,r[11]=h*f+l*a,n!==r&&(r[4]=n[4],r[5]=n[5],r[6]=n[6],r[7]=n[7],r[12]=n[12],r[13]=n[13],r[14]=n[14],r[15]=n[15]),r},rotateZ:function(n,t,r){r=r||new H(16);const e=n[0],o=n[1],u=n[2],a=n[3],i=n[4],c=n[5],s=n[6],f=n[7],h=Math.cos(t),l=Math.sin(t);return r[0]=h*e+l*i,r[1]=h*o+l*c,r[2]=h*u+l*s,r[3]=h*a+l*f,r[4]=h*i-l*e,r[5]=h*c-l*o,r[6]=h*s-l*u,r[7]=h*f-l*a,n!==r&&(r[8]=n[8],r[9]=n[9],r[10]=n[10],r[11]=n[11],r[12]=n[12],r[13]=n[13],r[14]=n[14],r[15]=n[15]),r},rotation:un,rotationX:function(n,t){t=t||new H(16);const r=Math.cos(n),e=Math.sin(n);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=r,t[6]=e,t[7]=0,t[8]=0,t[9]=-e,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},rotationY:function(n,t){t=t||new H(16);const r=Math.cos(n),e=Math.sin(n);return t[0]=r,t[1]=0,t[2]=-e,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=e,t[9]=0,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},rotationZ:function(n,t){t=t||new H(16);const r=Math.cos(n),e=Math.sin(n);return t[0]=r,t[1]=e,t[2]=0,t[3]=0,t[4]=-e,t[5]=r,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},scale:function(n,t,r){r=r||new H(16);const e=t[0],o=t[1],u=t[2];return r[0]=e*n[0],r[1]=e*n[1],r[2]=e*n[2],r[3]=e*n[3],r[4]=o*n[4],r[5]=o*n[5],r[6]=o*n[6],r[7]=o*n[7],r[8]=u*n[8],r[9]=u*n[9],r[10]=u*n[10],r[11]=u*n[11],n!==r&&(r[12]=n[12],r[13]=n[13],r[14]=n[14],r[15]=n[15]),r},scaling:function(n,t){return(t=t||new H(16))[0]=n[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=n[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},set:function(n,t,r,e,o,u,a,i,c,s,f,h,l,M,w,d,m){return(m=m||new H(16))[0]=n,m[1]=t,m[2]=r,m[3]=e,m[4]=o,m[5]=u,m[6]=a,m[7]=i,m[8]=c,m[9]=s,m[10]=f,m[11]=h,m[12]=l,m[13]=M,m[14]=w,m[15]=d,m},setAxis:function(n,t,r,e){e!==n&&(e=K(n,e));const o=4*r;return e[o+0]=t[0],e[o+1]=t[1],e[o+2]=t[2],e},setDefaultType:J,setTranslation:function(n,t,r){return n!==(r=r||W())&&(r[0]=n[0],r[1]=n[1],r[2]=n[2],r[3]=n[3],r[4]=n[4],r[5]=n[5],r[6]=n[6],r[7]=n[7],r[8]=n[8],r[9]=n[9],r[10]=n[10],r[11]=n[11]),r[12]=t[0],r[13]=t[1],r[14]=t[2],r[15]=1,r},translate:function(n,t,r){r=r||new H(16);const e=t[0],o=t[1],u=t[2],a=n[0],i=n[1],c=n[2],s=n[3],f=n[4],h=n[5],l=n[6],M=n[7],w=n[8],d=n[9],m=n[10],v=n[11],p=n[12],b=n[13],q=n[14],y=n[15];return n!==r&&(r[0]=a,r[1]=i,r[2]=c,r[3]=s,r[4]=f,r[5]=h,r[6]=l,r[7]=M,r[8]=w,r[9]=d,r[10]=m,r[11]=v),r[12]=a*e+f*o+w*u+p,r[13]=i*e+h*o+d*u+b,r[14]=c*e+l*o+m*u+q,r[15]=s*e+M*o+v*u+y,r},translation:function(n,t){return(t=t||new H(16))[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t},transpose:function(n,t){if((t=t||new H(16))===n){let r;return r=n[1],n[1]=n[4],n[4]=r,r=n[2],n[2]=n[8],n[8]=r,r=n[3],n[3]=n[12],n[12]=r,r=n[6],n[6]=n[9],n[9]=r,r=n[7],n[7]=n[13],n[13]=r,r=n[11],n[11]=n[14],n[14]=r,t}const r=n[0],e=n[1],o=n[2],u=n[3],a=n[4],i=n[5],c=n[6],s=n[7],f=n[8],h=n[9],l=n[10],M=n[11],w=n[12],d=n[13],m=n[14],v=n[15];return t[0]=r,t[1]=a,t[2]=f,t[3]=w,t[4]=e,t[5]=i,t[6]=h,t[7]=d,t[8]=o,t[9]=c,t[10]=l,t[11]=m,t[12]=u,t[13]=s,t[14]=M,t[15]=v,t},uniformScale:function(n,t,r){return(r=r||new H(16))[0]=t*n[0],r[1]=t*n[1],r[2]=t*n[2],r[3]=t*n[3],r[4]=t*n[4],r[5]=t*n[5],r[6]=t*n[6],r[7]=t*n[7],r[8]=t*n[8],r[9]=t*n[9],r[10]=t*n[10],r[11]=t*n[11],n!==r&&(r[12]=n[12],r[13]=n[13],r[14]=n[14],r[15]=n[15]),r},uniformScaling:function(n,t){return(t=t||new H(16))[0]=n,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}};let sn=Float32Array;function fn(n){const t=sn;return sn=n,t}function hn(n,t,r,e){const o=new sn(4);return void 0!==n&&(o[0]=n,void 0!==t&&(o[1]=t,void 0!==r&&(o[2]=r,void 0!==e&&(o[3]=e)))),o}function ln(n,t,r){r=r||new sn(4);const e=.5*t,o=Math.sin(e);return r[0]=o*n[0],r[1]=o*n[1],r[2]=o*n[2],r[3]=Math.cos(e),r}function Mn(n,t,r){r=r||new sn(4);const e=n[0],o=n[1],u=n[2],a=n[3],i=t[0],c=t[1],s=t[2],f=t[3];return r[0]=e*f+a*i+o*s-u*c,r[1]=o*f+a*c+u*i-e*s,r[2]=u*f+a*s+e*c-o*i,r[3]=a*f-e*i-o*c-u*s,r}function wn(n,r,e,o){o=o||new sn(4);const u=n[0],a=n[1],i=n[2],c=n[3];let s,f,h=r[0],l=r[1],M=r[2],w=r[3],d=u*h+a*l+i*M+c*w;if(d<0&&(d=-d,h=-h,l=-l,M=-M,w=-w),1-d>t){const n=Math.acos(d),t=Math.sin(n);s=Math.sin((1-e)*n)/t,f=Math.sin(e*n)/t}else s=1-e,f=e;return o[0]=s*u+f*h,o[1]=s*a+f*l,o[2]=s*i+f*M,o[3]=s*c+f*w,o}function dn(n,t){return(t=t||new sn(4))[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t}function mn(n,t,r){return(r=r||new sn(4))[0]=n[0]-t[0],r[1]=n[1]-t[1],r[2]=n[2]-t[2],r[3]=n[3]-t[3],r}function vn(n,t,r){return(r=r||new sn(4))[0]=n[0]*t,r[1]=n[1]*t,r[2]=n[2]*t,r[3]=n[3]*t,r}function pn(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function bn(n){const t=n[0],r=n[1],e=n[2],o=n[3];return Math.sqrt(t*t+r*r+e*e+o*o)}function qn(n){const t=n[0],r=n[1],e=n[2],o=n[3];return t*t+r*r+e*e+o*o}function yn(n,t){t=t||new sn(4);const r=n[0],e=n[1],o=n[2],u=n[3],a=Math.sqrt(r*r+e*e+o*o+u*u);return a>1e-5?(t[0]=r/a,t[1]=e/a,t[2]=o/a,t[3]=u/a):(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}let xn,gn,Sn,An,_n;var Tn={__proto__:null,add:function(n,t,r){return(r=r||new sn(4))[0]=n[0]+t[0],r[1]=n[1]+t[1],r[2]=n[2]+t[2],r[3]=n[3]+t[3],r},angle:function(n,t){const r=pn(n,t);return Math.acos(2*r*r-1)},clone:dn,conjugate:function(n,t){return(t=t||new sn(4))[0]=-n[0],t[1]=-n[1],t[2]=-n[2],t[3]=n[3],t},copy:dn,create:hn,divScalar:function(n,t,r){return(r=r||new sn(4))[0]=n[0]/t,r[1]=n[1]/t,r[2]=n[2]/t,r[3]=n[3]/t,r},dot:pn,equals:function(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]},equalsApproximately:function(n,r){return Math.abs(n[0]-r[0])<t&&Math.abs(n[1]-r[1])<t&&Math.abs(n[2]-r[2])<t&&Math.abs(n[3]-r[3])<t},fromAxisAngle:ln,fromEuler:function(n,t,r,e,o){o=o||new sn(4);const u=.5*n,a=.5*t,i=.5*r,c=Math.sin(u),s=Math.cos(u),f=Math.sin(a),h=Math.cos(a),l=Math.sin(i),M=Math.cos(i);switch(e){case"xyz":o[0]=c*h*M+s*f*l,o[1]=s*f*M-c*h*l,o[2]=s*h*l+c*f*M,o[3]=s*h*M-c*f*l;break;case"xzy":o[0]=c*h*M-s*f*l,o[1]=s*f*M-c*h*l,o[2]=s*h*l+c*f*M,o[3]=s*h*M+c*f*l;break;case"yxz":o[0]=c*h*M+s*f*l,o[1]=s*f*M-c*h*l,o[2]=s*h*l-c*f*M,o[3]=s*h*M+c*f*l;break;case"yzx":o[0]=c*h*M+s*f*l,o[1]=s*f*M+c*h*l,o[2]=s*h*l-c*f*M,o[3]=s*h*M-c*f*l;break;case"zxy":o[0]=c*h*M-s*f*l,o[1]=s*f*M+c*h*l,o[2]=s*h*l+c*f*M,o[3]=s*h*M-c*f*l;break;case"zyx":o[0]=c*h*M-s*f*l,o[1]=s*f*M+c*h*l,o[2]=s*h*l-c*f*M,o[3]=s*h*M+c*f*l;break;default:throw new Error(`Unknown rotation order: ${e}`)}return o},fromMat:function(n,t){t=t||new sn(4);const r=n[0]+n[5]+n[10];if(r>0){const e=Math.sqrt(r+1);t[3]=.5*e;const o=.5/e;t[0]=(n[6]-n[9])*o,t[1]=(n[8]-n[2])*o,t[2]=(n[1]-n[4])*o}else{let r=0;n[5]>n[0]&&(r=1),n[10]>n[4*r+r]&&(r=2);const e=(r+1)%3,o=(r+2)%3,u=Math.sqrt(n[4*r+r]-n[4*e+e]-n[4*o+o]+1);t[r]=.5*u;const a=.5/u;t[3]=(n[4*e+o]-n[4*o+e])*a,t[e]=(n[4*e+r]+n[4*r+e])*a,t[o]=(n[4*o+r]+n[4*r+o])*a}return t},fromValues:hn,identity:function(n){return(n=n||new sn(4))[0]=0,n[1]=0,n[2]=0,n[3]=1,n},inverse:function(n,t){t=t||new sn(4);const r=n[0],e=n[1],o=n[2],u=n[3],a=r*r+e*e+o*o+u*u,i=a?1/a:0;return t[0]=-r*i,t[1]=-e*i,t[2]=-o*i,t[3]=u*i,t},len:bn,lenSq:qn,length:bn,lengthSq:qn,lerp:function(n,t,r,e){return(e=e||new sn(4))[0]=n[0]+r*(t[0]-n[0]),e[1]=n[1]+r*(t[1]-n[1]),e[2]=n[2]+r*(t[2]-n[2]),e[3]=n[3]+r*(t[3]-n[3]),e},mul:Mn,mulScalar:vn,multiply:Mn,normalize:yn,rotateX:function(n,t,r){r=r||new sn(4);const e=.5*t,o=n[0],u=n[1],a=n[2],i=n[3],c=Math.sin(e),s=Math.cos(e);return r[0]=o*s+i*c,r[1]=u*s+a*c,r[2]=a*s-u*c,r[3]=i*s-o*c,r},rotateY:function(n,t,r){r=r||new sn(4);const e=.5*t,o=n[0],u=n[1],a=n[2],i=n[3],c=Math.sin(e),s=Math.cos(e);return r[0]=o*s-a*c,r[1]=u*s+i*c,r[2]=a*s+o*c,r[3]=i*s-u*c,r},rotateZ:function(n,t,r){r=r||new sn(4);const e=.5*t,o=n[0],u=n[1],a=n[2],i=n[3],c=Math.sin(e),s=Math.cos(e);return r[0]=o*s+u*c,r[1]=u*s-o*c,r[2]=a*s+i*c,r[3]=i*s-a*c,r},rotationTo:function(n,t,r){r=r||new sn(4),xn=xn||c(),gn=gn||c(1,0,0),Sn=Sn||c(0,1,0);const e=E(n,t);return e<-.999999?(R(gn,n,xn),Y(xn)<1e-6&&R(Sn,n,xn),U(xn,xn),ln(xn,Math.PI,r),r):e>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(R(n,t,xn),r[0]=xn[0],r[1]=xn[1],r[2]=xn[2],r[3]=1+e,yn(r,r))},scale:vn,set:function(n,t,r,e,o){return(o=o||new sn(4))[0]=n,o[1]=t,o[2]=r,o[3]=e,o},setDefaultType:fn,slerp:wn,sqlerp:function(n,t,r,e,o,u){return u=u||new sn(4),An=An||new sn(4),_n=_n||new sn(4),wn(n,e,o,An),wn(t,r,o,_n),wn(An,_n,2*o*(1-o),u),u},sub:mn,subtract:mn,toAxisAngle:function(n,r){r=r||c(4);const e=2*Math.acos(n[3]),o=Math.sin(.5*e);return o>t?(r[0]=n[0]/o,r[1]=n[1]/o,r[2]=n[2]/o):(r[0]=1,r[1]=0,r[2]=0),{angle:e,axis:r}}};let zn=Float32Array;function Fn(n){const t=zn;return zn=n,t}function kn(n,t,r,e){const o=new zn(4);return void 0!==n&&(o[0]=n,void 0!==t&&(o[1]=t,void 0!==r&&(o[2]=r,void 0!==e&&(o[3]=e)))),o}function Dn(n,t,r){return(r=r||new zn(4))[0]=n[0]-t[0],r[1]=n[1]-t[1],r[2]=n[2]-t[2],r[3]=n[3]-t[3],r}function In(n,t,r,e){return(e=e||new zn(4))[0]=n[0]+r*(t[0]-n[0]),e[1]=n[1]+r*(t[1]-n[1]),e[2]=n[2]+r*(t[2]-n[2]),e[3]=n[3]+r*(t[3]-n[3]),e}function Pn(n,t,r){return(r=r||new zn(4))[0]=n[0]*t,r[1]=n[1]*t,r[2]=n[2]*t,r[3]=n[3]*t,r}function Vn(n,t){return(t=t||new zn(4))[0]=1/n[0],t[1]=1/n[1],t[2]=1/n[2],t[3]=1/n[3],t}function Zn(n){const t=n[0],r=n[1],e=n[2],o=n[3];return Math.sqrt(t*t+r*r+e*e+o*o)}function Ln(n){const t=n[0],r=n[1],e=n[2],o=n[3];return t*t+r*r+e*e+o*o}function Rn(n,t){const r=n[0]-t[0],e=n[1]-t[1],o=n[2]-t[2],u=n[3]-t[3];return Math.sqrt(r*r+e*e+o*o+u*u)}function En(n,t){const r=n[0]-t[0],e=n[1]-t[1],o=n[2]-t[2],u=n[3]-t[3];return r*r+e*e+o*o+u*u}function Xn(n,t){t=t||new zn(4);const r=n[0],e=n[1],o=n[2],u=n[3],a=Math.sqrt(r*r+e*e+o*o+u*u);return a>1e-5?(t[0]=r/a,t[1]=e/a,t[2]=o/a,t[3]=u/a):(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function Yn(n,t){return(t=t||new zn(4))[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t}function Qn(n,t,r){return(r=r||new zn(4))[0]=n[0]*t[0],r[1]=n[1]*t[1],r[2]=n[2]*t[2],r[3]=n[3]*t[3],r}function jn(n,t,r){return(r=r||new zn(4))[0]=n[0]/t[0],r[1]=n[1]/t[1],r[2]=n[2]/t[2],r[3]=n[3]/t[3],r}function Nn(n,t,r){return Xn(n,r=r||new zn(4)),Pn(r,t,r)}var Un={__proto__:null,add:function(n,t,r){return(r=r||new zn(4))[0]=n[0]+t[0],r[1]=n[1]+t[1],r[2]=n[2]+t[2],r[3]=n[3]+t[3],r},addScaled:function(n,t,r,e){return(e=e||new zn(4))[0]=n[0]+t[0]*r,e[1]=n[1]+t[1]*r,e[2]=n[2]+t[2]*r,e[3]=n[3]+t[3]*r,e},ceil:function(n,t){return(t=t||new zn(4))[0]=Math.ceil(n[0]),t[1]=Math.ceil(n[1]),t[2]=Math.ceil(n[2]),t[3]=Math.ceil(n[3]),t},clamp:function(n,t=0,r=1,e){return(e=e||new zn(4))[0]=Math.min(r,Math.max(t,n[0])),e[1]=Math.min(r,Math.max(t,n[1])),e[2]=Math.min(r,Math.max(t,n[2])),e[3]=Math.min(r,Math.max(t,n[3])),e},clone:Yn,copy:Yn,create:kn,dist:Rn,distSq:En,distance:Rn,distanceSq:En,div:jn,divScalar:function(n,t,r){return(r=r||new zn(4))[0]=n[0]/t,r[1]=n[1]/t,r[2]=n[2]/t,r[3]=n[3]/t,r},divide:jn,dot:function(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]},equals:function(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]},equalsApproximately:function(n,r){return Math.abs(n[0]-r[0])<t&&Math.abs(n[1]-r[1])<t&&Math.abs(n[2]-r[2])<t&&Math.abs(n[3]-r[3])<t},floor:function(n,t){return(t=t||new zn(4))[0]=Math.floor(n[0]),t[1]=Math.floor(n[1]),t[2]=Math.floor(n[2]),t[3]=Math.floor(n[3]),t},fromValues:kn,inverse:Vn,invert:Vn,len:Zn,lenSq:Ln,length:Zn,lengthSq:Ln,lerp:In,lerpV:function(n,t,r,e){return(e=e||new zn(4))[0]=n[0]+r[0]*(t[0]-n[0]),e[1]=n[1]+r[1]*(t[1]-n[1]),e[2]=n[2]+r[2]*(t[2]-n[2]),e[3]=n[3]+r[3]*(t[3]-n[3]),e},max:function(n,t,r){return(r=r||new zn(4))[0]=Math.max(n[0],t[0]),r[1]=Math.max(n[1],t[1]),r[2]=Math.max(n[2],t[2]),r[3]=Math.max(n[3],t[3]),r},midpoint:function(n,t,r){return In(n,t,.5,r=r||new zn(4))},min:function(n,t,r){return(r=r||new zn(4))[0]=Math.min(n[0],t[0]),r[1]=Math.min(n[1],t[1]),r[2]=Math.min(n[2],t[2]),r[3]=Math.min(n[3],t[3]),r},mul:Qn,mulScalar:Pn,multiply:Qn,negate:function(n,t){return(t=t||new zn(4))[0]=-n[0],t[1]=-n[1],t[2]=-n[2],t[3]=-n[3],t},normalize:Xn,round:function(n,t){return(t=t||new zn(4))[0]=Math.round(n[0]),t[1]=Math.round(n[1]),t[2]=Math.round(n[2]),t[3]=Math.round(n[3]),t},scale:Pn,set:function(n,t,r,e,o){return(o=o||new zn(4))[0]=n,o[1]=t,o[2]=r,o[3]=e,o},setDefaultType:Fn,setLength:Nn,sub:Dn,subtract:Dn,transformMat4:function(n,t,r){r=r||new zn(4);const e=n[0],o=n[1],u=n[2],a=n[3];return r[0]=t[0]*e+t[4]*o+t[8]*u+t[12]*a,r[1]=t[1]*e+t[5]*o+t[9]*u+t[13]*a,r[2]=t[2]*e+t[6]*o+t[10]*u+t[14]*a,r[3]=t[3]*e+t[7]*o+t[11]*u+t[15]*a,r},truncate:function(n,t,r){return r=r||new zn(4),Zn(n)>t?Nn(n,t,r):Yn(n,r)},zero:function(n){return(n=n||new zn(4))[0]=0,n[1]=0,n[2]=0,n[3]=0,n}};n.mat3=I,n.mat4=cn,n.quat=Tn,n.setDefaultType=function(n){T(n),J(n),fn(n),o(n),i(n),Fn(n)},n.utils=r,n.vec2=g,n.vec3=G,n.vec4=Un})); | ||
//# sourceMappingURL=wgpu-matrix.min.js.map |
{ | ||
"name": "wgpu-matrix", | ||
"version": "2.9.0", | ||
"version": "2.9.1", | ||
"description": "fast matrix math library for WebGPU", | ||
@@ -14,5 +14,3 @@ "main": "dist/2.x/wgpu-matrix.module.js", | ||
"scripts": { | ||
"build": "npm run build-min", | ||
"build-normal": "rollup -c && tsc --emitDeclarationOnly --declaration", | ||
"build-min": "npm run build-normal && google-closure-compiler --warning_level=VERBOSE --jscomp_off=globalThis --jscomp_off=checkTypes --externs build/externs.js --language_in=ECMASCRIPT_2019 --language_out=ECMASCRIPT_2019 --js dist/2.x/wgpu-matrix.js --js_output_file dist/2.x/wgpu-matrix.min.js && node ./build/tools/append-banner.js dist/2.x/wgpu-matrix.min.js", | ||
"build": "rollup -c && tsc --emitDeclarationOnly --declaration", | ||
"build-ci": "npm run pre-push && node build/tools/prep-for-deploy.js", | ||
@@ -52,2 +50,3 @@ "check": "npm run lint", | ||
"devDependencies": { | ||
"@rollup/plugin-terser": "^0.4.4", | ||
"@rollup/plugin-typescript": "^11.1.6", | ||
@@ -54,0 +53,0 @@ "@tsconfig/recommended": "^1.0.6", |
@@ -104,3 +104,3 @@ # wgpu-matrix | ||
mat4, | ||
} from 'https://wgpu-matrix.org/dist/2.x/wgpu-matrix.module.js'; | ||
} from 'https://wgpu-matrix.org/dist/2.x/wgpu-matrix.module.min.js'; | ||
@@ -110,2 +110,20 @@ // ... etc ... | ||
and a UMD version | ||
```html | ||
<script src="https://wgpu-matrix.org/dist/2.x/wgpu-matrix.js"></script> | ||
<script> | ||
const { mat4, vec3 } = wgpuMatrix; | ||
const m = mat4.identity(); | ||
... | ||
</script> | ||
``` | ||
or UDM min version | ||
```html | ||
<script src="https://wgpu-matrix.org/dist/2.x/wgpu-matrix.min.js"></script> | ||
... | ||
``` | ||
or via npm | ||
@@ -112,0 +130,0 @@ |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
1727090
25
14293
297
18