mat4.js
Version:
High-performance 4x4 matrix library with multi-precision support for 3D graphics development
2 lines (1 loc) • 26.5 kB
JavaScript
var K=Object.defineProperty;var Jr=Object.getOwnPropertyDescriptor;var Qr=Object.getOwnPropertyNames;var Rr=Object.prototype.hasOwnProperty;var o=(n,r)=>K(n,"name",{value:r,configurable:!0});var Wr=(n,r)=>{for(var s in r)K(n,s,{get:r[s],enumerable:!0})},$r=(n,r,s,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of Qr(r))!Rr.call(n,e)&&e!==s&&K(n,e,{get:()=>r[e],enumerable:!(c=Jr(r,e))||c.enumerable});return n};var ur=n=>$r(K({},"__esModule",{value:!0}),n);var Jn={};Wr(Jn,{EPSILON:()=>x0,EPSILON64:()=>A0,EPSILONArray:()=>P0,PI:()=>l0,PI64:()=>y0,PIArray:()=>h0,PI_2:()=>i0,PI_2_64:()=>a0,PI_2_Array:()=>M0,PI_HALF:()=>f0,PI_HALF_64:()=>b0,copy:()=>_0,copy64:()=>J0,copyArray:()=>vn,create:()=>o0,create64:()=>j0,createArray:()=>In,identity:()=>I0,identity64:()=>G0,identityArray:()=>_n,invert:()=>E0,invert64:()=>tn,invertArray:()=>Nn,lookAt:()=>X0,lookAt64:()=>pn,lookAtArray:()=>Yn,mul:()=>g0,mul64:()=>an,mulArray:()=>Cn,mulBulk:()=>D0,mulBulk64:()=>on,mulBulkArray:()=>Gn,multiply:()=>v0,multiply64:()=>Q0,multiplyArray:()=>On,multiplyBulk:()=>H0,multiplyBulk64:()=>yn,multiplyBulkArray:()=>gn,multiplyUnit:()=>O0,multiplyUnit64:()=>R0,multiplyUnitArray:()=>Ln,ortho:()=>q0,ortho64:()=>mn,orthoArray:()=>Xn,perspective:()=>z0,perspective64:()=>cn,perspectiveArray:()=>qn,resetPoolArray:()=>Vn,rotX:()=>V0,rotX64:()=>bn,rotXArray:()=>Kn,rotY:()=>C0,rotY64:()=>Pn,rotYArray:()=>Tn,rotZ:()=>K0,rotZ64:()=>hn,rotZArray:()=>Dn,rotateX:()=>S0,rotateX64:()=>u0,rotateXArray:()=>Bn,rotateY:()=>B0,rotateY64:()=>rn,rotateYArray:()=>dn,rotateZ:()=>d0,rotateZ64:()=>nn,rotateZArray:()=>En,scale:()=>k0,scale64:()=>$0,scaleArray:()=>Sn,tempMat4:()=>w0,tempMat464:()=>fn,tempMat4Array:()=>Un,tempMat4Bulk:()=>U0,tempMat4Bulk64:()=>An,tempMat4BulkArray:()=>Hn,trans:()=>T0,trans64:()=>Mn,transArray:()=>jn,transformPoint:()=>Y0,transformPoint64:()=>xn,transformPointArray:()=>Fn,transformVector:()=>F0,transformVector64:()=>ln,transformVectorArray:()=>wn,translate:()=>L0,translate64:()=>W0,translateArray:()=>kn,transpose:()=>N0,transpose64:()=>en,transposeArray:()=>Zn,transposeOrthogonal:()=>Z0,transposeOrthogonal64:()=>sn,transposeOrthogonalArray:()=>zn});module.exports=ur(Jn);var T=Math.PI,O1=T*2,L1=T/2,k1=8,V=1024,R=k1*V,W=new Array(R),Q=0;o((function(){let r=new ArrayBuffer(V*16*4);for(let s=0;s<k1;s++)for(let c=0;c<V;c++){let e=(s*V+c)*16,t=new Float32Array(r,e*4,16);t[0]=1,t[5]=1,t[10]=1,t[15]=1,W[s*V+c]=t}}),"initPool")();function S1(){let n=Q++,r=W[n&R-1];return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}o(S1,"tempMat4");function B1(n){let r=new Array(n),s=Q;for(let c=0;c<n;c++){let e=s+c&R-1,t=W[e];t[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]=0,t[13]=0,t[14]=0,t[15]=1,r[c]=t}return Q+=n,r}o(B1,"tempMat4Bulk");function d1(){let n=new Float32Array(16);return n[0]=1,n[5]=1,n[10]=1,n[15]=1,n}o(d1,"create");function E1(n,r){return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n}o(E1,"copy");function N1(n){return n[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}o(N1,"identity");function $(n,r,s){let c=r[0],e=r[4],t=r[8],p=r[12],m=r[1],x=r[5],l=r[9],i=r[13],A=r[2],f=r[6],y=r[10],a=r[14],b=r[3],P=r[7],h=r[11],I=r[15],_=s[0],v=s[1],O=s[2],L=s[3],M=s[4],k=s[5],S=s[6],B=s[7],d=s[8],E=s[9],N=s[10],Z=s[11],z=s[12],q=s[13],X=s[14],Y=s[15],F=c*_+e*M+t*d+p*z,w=m*_+x*M+l*d+i*z,U=A*_+f*M+y*d+a*z,H=b*_+P*M+h*d+I*z,g=c*v+e*k+t*E+p*q,wr=m*v+x*k+l*E+i*q,Ur=A*v+f*k+y*E+a*q,Hr=b*v+P*k+h*E+I*q,gr=c*O+e*S+t*N+p*X,Vr=m*O+x*S+l*N+i*X,Cr=A*O+f*S+y*N+a*X,Kr=b*O+P*S+h*N+I*X,Tr=c*L+e*B+t*Z+p*Y,Dr=m*L+x*B+l*Z+i*Y,jr=A*L+f*B+y*Z+a*Y,Gr=b*L+P*B+h*Z+I*Y;return n[0]=F,n[1]=w,n[2]=U,n[3]=H,n[4]=g,n[5]=wr,n[6]=Ur,n[7]=Hr,n[8]=gr,n[9]=Vr,n[10]=Cr,n[11]=Kr,n[12]=Tr,n[13]=Dr,n[14]=jr,n[15]=Gr,n}o($,"multiply");function Z1(n,r){return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n}o(Z1,"multiplyUnit");function z1(n,r,s){let c=s[0],e=s[1],t=s[2];return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[0]*c+r[4]*e+r[8]*t+r[12],n[13]=r[1]*c+r[5]*e+r[9]*t+r[13],n[14]=r[2]*c+r[6]*e+r[10]*t+r[14],n[15]=r[3]*c+r[7]*e+r[11]*t+r[15],n}o(z1,"translate");function q1(n,r,s){let c=s[0],e=s[1],t=s[2];return r[1]===0&&r[2]===0&&r[3]===0&&r[4]===0&&r[6]===0&&r[7]===0&&r[8]===0&&r[9]===0&&r[11]===0&&r[12]===0&&r[13]===0&&r[14]===0?(n[0]=r[0]*c,n[5]=r[5]*e,n[10]=r[10]*t,n[15]=r[15],n):(n[0]=r[0]*c,n[1]=r[1]*c,n[2]=r[2]*c,n[3]=r[3]*c,n[4]=r[4]*e,n[5]=r[5]*e,n[6]=r[6]*e,n[7]=r[7]*e,n[8]=r[8]*t,n[9]=r[9]*t,n[10]=r[10]*t,n[11]=r[11]*t,n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n)}o(q1,"scale");function u(n,r,s){let c=Math.cos(s),e=Math.sin(s),t=r[4],p=r[5],m=r[6],x=r[7],l=r[8],i=r[9],A=r[10],f=r[11];return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n[4]=t*c+l*e,n[5]=p*c+i*e,n[6]=m*c+A*e,n[7]=x*c+f*e,n[8]=t*-e+l*c,n[9]=p*-e+i*c,n[10]=m*-e+A*c,n[11]=x*-e+f*c,n}o(u,"rotateX");function r1(n,r,s){let c=Math.cos(s),e=Math.sin(s),t=r[0],p=r[1],m=r[2],x=r[3],l=r[8],i=r[9],A=r[10],f=r[11];return n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n[0]=t*c+l*e,n[1]=p*c+i*e,n[2]=m*c+A*e,n[3]=x*c+f*e,n[8]=t*-e+l*c,n[9]=p*-e+i*c,n[10]=m*-e+A*c,n[11]=x*-e+f*c,n}o(r1,"rotateY");function n1(n,r,s){let c=Math.cos(s),e=Math.sin(s),t=r[0],p=r[1],m=r[2],x=r[3],l=r[4],i=r[5],A=r[6],f=r[7];return n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n[0]=t*c+l*-e,n[1]=p*c+i*-e,n[2]=m*c+A*-e,n[3]=x*c+f*-e,n[4]=t*e+l*c,n[5]=p*e+i*c,n[6]=m*e+A*c,n[7]=x*e+f*c,n}o(n1,"rotateZ");function X1(n,r){if(Math.abs(r[0]*r[4]+r[1]*r[5]+r[2]*r[6]+r[3]*r[7])<1e-6&&Math.abs(r[0]*r[8]+r[1]*r[9]+r[2]*r[10]+r[3]*r[11])<1e-6&&Math.abs(r[4]*r[8]+r[5]*r[9]+r[6]*r[10]+r[7]*r[11])<1e-6)return t1(n,r);let s=r[0],c=r[1],e=r[2],t=r[3],p=r[4],m=r[5],x=r[6],l=r[7],i=r[8],A=r[9],f=r[10],y=r[11],a=r[12],b=r[13],P=r[14],h=r[15],I=m*f*h+x*y*b+l*A*P-l*f*b-x*A*h-m*y*P,_=p*f*h+x*y*a+l*i*P-l*f*a-x*i*h-p*y*P,v=p*A*h+m*y*a+l*i*b-l*A*a-m*i*h-p*y*b,O=p*A*P+m*f*a+x*i*b-x*A*a-m*i*P-p*f*b,L=s*I-c*_+e*v-t*O;if(Math.abs(L)<1e-6)return null;let M=1/L;return n[0]=I*M,n[1]=(c*y*P+e*A*h+t*f*b-c*f*h-e*y*b-t*A*P)*M,n[2]=(c*l*P+e*m*h+t*x*b-c*x*h-e*l*b-t*m*P)*M,n[3]=(c*x*y+e*l*A+t*m*f-c*l*f-e*m*y-t*x*A)*M,n[4]=-_*M,n[5]=(s*f*h+e*y*a+t*i*P-s*y*P-e*i*h-t*f*a)*M,n[6]=(s*l*P+e*p*h+t*x*a-s*x*h-e*l*a-t*p*P)*M,n[7]=(s*x*y+e*l*i+t*p*f-s*l*f-e*p*y-t*x*i)*M,n[8]=v*M,n[9]=(s*y*b+c*i*h+t*f*a-s*f*b-c*y*a-t*i*h)*M,n[10]=(s*m*h+c*l*a+t*p*b-s*l*b-c*p*h-t*m*a)*M,n[11]=(s*l*A+c*p*y+t*m*i-s*m*y-c*l*i-t*p*A)*M,n[12]=-O*M,n[13]=(s*A*P+c*f*a+e*i*b-s*f*b-c*i*P-e*A*a)*M,n[14]=(s*x*b+c*p*P+e*m*a-s*m*P-c*x*a-e*p*b)*M,n[15]=(s*m*f+c*x*i+e*p*A-s*x*A-c*p*f-e*m*i)*M,n}o(X1,"invert");function t1(n,r){return n[0]=r[0],n[1]=r[4],n[2]=r[8],n[3]=0,n[4]=r[1],n[5]=r[5],n[6]=r[9],n[7]=0,n[8]=r[2],n[9]=r[6],n[10]=r[10],n[11]=0,n[12]=-(r[12]*r[0]+r[13]*r[4]+r[14]*r[8]),n[13]=-(r[12]*r[1]+r[13]*r[5]+r[14]*r[9]),n[14]=-(r[12]*r[2]+r[13]*r[6]+r[14]*r[10]),n[15]=1,n}o(t1,"transposeOrthogonal");function e1(n,r){if(n!==r)n[0]=r[0],n[1]=r[4],n[2]=r[8],n[3]=r[12],n[4]=r[1],n[5]=r[5],n[6]=r[9],n[7]=r[13],n[8]=r[2],n[9]=r[6],n[10]=r[10],n[11]=r[14],n[12]=r[3],n[13]=r[7],n[14]=r[11],n[15]=r[15];else{let s=r[1];n[1]=r[4],n[4]=s,s=r[2],n[2]=r[8],n[8]=s,s=r[3],n[3]=r[12],n[12]=s,s=r[6],n[6]=r[9],n[9]=s,s=r[7],n[7]=r[13],n[13]=s,s=r[11],n[11]=r[14],n[14]=s}return n}o(e1,"transpose");function Y1(n,r,s,c,e){let t=1/Math.tan(r*.5),p=1/(c-e),m=2*e*c*p;return n[0]=t/s,n[5]=t,n[10]=(e+c)*p,n[11]=-1,n[14]=m,n[15]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[12]=0,n[13]=0,n}o(Y1,"perspective");function F1(n,r,s,c,e,t,p){let m=s-r,x=e-c,l=p-t;return n[0]=2/m,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=2/x,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=-2/l,n[11]=0,n[12]=-(s+r)/m,n[13]=-(e+c)/x,n[14]=-(p+t)/l,n[15]=1,n}o(F1,"ortho");function w1(n,r,s,c){let e=s[0]-r[0],t=s[1]-r[1],p=s[2]-r[2],m=Math.sqrt(e*e+t*t+p*p);m>0&&(m=1/m,e*=m,t*=m,p*=m);let x=t*c[2]-p*c[1],l=p*c[0]-e*c[2],i=e*c[1]-t*c[0];m=Math.sqrt(x*x+l*l+i*i),m>0&&(m=1/m,x*=m,l*=m,i*=m);let A=l*p-i*t,f=i*e-x*p,y=x*t-l*e;return n[0]=x,n[1]=A,n[2]=-e,n[3]=0,n[4]=l,n[5]=f,n[6]=-t,n[7]=0,n[8]=i,n[9]=y,n[10]=-p,n[11]=0,n[12]=-(x*r[0]+l*r[1]+i*r[2]),n[13]=-(A*r[0]+f*r[1]+y*r[2]),n[14]=e*r[0]+t*r[1]+p*r[2],n[15]=1,n}o(w1,"lookAt");function U1(n,r,s){let c=s[0],e=s[1],t=s[2];return n[0]=r[0]*c+r[4]*e+r[8]*t+r[12],n[1]=r[1]*c+r[5]*e+r[9]*t+r[13],n[2]=r[2]*c+r[6]*e+r[10]*t+r[14],n}o(U1,"transformPoint");function H1(n,r,s){let c=s[0],e=s[1],t=s[2];return n[0]=r[0]*c+r[4]*e+r[8]*t,n[1]=r[1]*c+r[5]*e+r[9]*t,n[2]=r[2]*c+r[6]*e+r[10]*t,n}o(H1,"transformVector");function s1(n,r,s,c){for(let e=0;e<c;e++){let t=r[e],p=s[e],m=n[e],x=t[0],l=t[4],i=t[8],A=t[12],f=t[1],y=t[5],a=t[9],b=t[13],P=t[2],h=t[6],I=t[10],_=t[14],v=t[3],O=t[7],L=t[11],M=t[15],k=p[0],S=p[1],B=p[2],d=p[3],E=p[4],N=p[5],Z=p[6],z=p[7],q=p[8],X=p[9],Y=p[10],F=p[11],w=p[12],U=p[13],H=p[14],g=p[15];m[0]=x*k+l*E+i*q+A*w,m[1]=f*k+y*E+a*q+b*w,m[2]=P*k+h*E+I*q+_*w,m[3]=v*k+O*E+L*q+M*w,m[4]=x*S+l*N+i*X+A*U,m[5]=f*S+y*N+a*X+b*U,m[6]=P*S+h*N+I*X+_*U,m[7]=v*S+O*N+L*X+M*U,m[8]=x*B+l*Z+i*Y+A*H,m[9]=f*B+y*Z+a*Y+b*H,m[10]=P*B+h*Z+I*Y+_*H,m[11]=v*B+O*Z+L*Y+M*H,m[12]=x*d+l*z+i*F+A*g,m[13]=f*d+y*z+a*F+b*g,m[14]=P*d+h*z+I*F+_*g,m[15]=v*d+O*z+L*F+M*g}}o(s1,"multiplyBulk");var g1=$,V1=s1,C1=u,K1=r1,T1=n1,D1=e1;var D=Math.PI,j1=D*2,G1=D/2,J1=8,C=1024,m1=J1*C,p1=new Array(m1),c1=0;o((function(){let r=new ArrayBuffer(C*16*8);for(let s=0;s<J1;s++)for(let c=0;c<C;c++){let e=(s*C+c)*16,t=new Float64Array(r,e*8,16);t[0]=1,t[5]=1,t[10]=1,t[15]=1,p1[s*C+c]=t}}),"initPool")();function Q1(){let n=c1++,r=p1[n&m1-1];return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}o(Q1,"tempMat4");function R1(n){let r=new Array(n),s=c1;for(let c=0;c<n;c++){let e=s+c&m1-1,t=p1[e];t[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]=0,t[13]=0,t[14]=0,t[15]=1,r[c]=t}return c1+=n,r}o(R1,"tempMat4Bulk");function W1(){let n=new Float64Array(16);return n[0]=1,n[5]=1,n[10]=1,n[15]=1,n}o(W1,"create");function $1(n,r){return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n}o($1,"copy");function u1(n){return n[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}o(u1,"identity");function x1(n,r,s){let c=r[0],e=r[4],t=r[8],p=r[12],m=r[1],x=r[5],l=r[9],i=r[13],A=r[2],f=r[6],y=r[10],a=r[14],b=r[3],P=r[7],h=r[11],I=r[15],_=s[0],v=s[1],O=s[2],L=s[3],M=s[4],k=s[5],S=s[6],B=s[7],d=s[8],E=s[9],N=s[10],Z=s[11],z=s[12],q=s[13],X=s[14],Y=s[15];return n[0]=c*_+e*M+t*d+p*z,n[1]=m*_+x*M+l*d+i*z,n[2]=A*_+f*M+y*d+a*z,n[3]=b*_+P*M+h*d+I*z,n[4]=c*v+e*k+t*E+p*q,n[5]=m*v+x*k+l*E+i*q,n[6]=A*v+f*k+y*E+a*q,n[7]=b*v+P*k+h*E+I*q,n[8]=c*O+e*S+t*N+p*X,n[9]=m*O+x*S+l*N+i*X,n[10]=A*O+f*S+y*N+a*X,n[11]=b*O+P*S+h*N+I*X,n[12]=c*L+e*B+t*Z+p*Y,n[13]=m*L+x*B+l*Z+i*Y,n[14]=A*L+f*B+y*Z+a*Y,n[15]=b*L+P*B+h*Z+I*Y,n}o(x1,"multiply");function rr(n,r){return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n}o(rr,"multiplyUnit");function nr(n,r,s){let c=s[0],e=s[1],t=s[2];return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[0]*c+r[4]*e+r[8]*t+r[12],n[13]=r[1]*c+r[5]*e+r[9]*t+r[13],n[14]=r[2]*c+r[6]*e+r[10]*t+r[14],n[15]=r[3]*c+r[7]*e+r[11]*t+r[15],n}o(nr,"translate");function tr(n,r,s){let c=s[0],e=s[1],t=s[2];return r[1]===0&&r[2]===0&&r[3]===0&&r[4]===0&&r[6]===0&&r[7]===0&&r[8]===0&&r[9]===0&&r[11]===0&&r[12]===0&&r[13]===0&&r[14]===0?(n[0]=r[0]*c,n[5]=r[5]*e,n[10]=r[10]*t,n[15]=r[15],n):(n[0]=r[0]*c,n[1]=r[1]*c,n[2]=r[2]*c,n[3]=r[3]*c,n[4]=r[4]*e,n[5]=r[5]*e,n[6]=r[6]*e,n[7]=r[7]*e,n[8]=r[8]*t,n[9]=r[9]*t,n[10]=r[10]*t,n[11]=r[11]*t,n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n)}o(tr,"scale");function l1(n,r,s){let c=Math.cos(s),e=Math.sin(s),t=r[4],p=r[5],m=r[6],x=r[7],l=r[8],i=r[9],A=r[10],f=r[11];return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n[4]=t*c+l*e,n[5]=p*c+i*e,n[6]=m*c+A*e,n[7]=x*c+f*e,n[8]=t*-e+l*c,n[9]=p*-e+i*c,n[10]=m*-e+A*c,n[11]=x*-e+f*c,n}o(l1,"rotateX");function i1(n,r,s){let c=Math.cos(s),e=Math.sin(s),t=r[0],p=r[1],m=r[2],x=r[3],l=r[8],i=r[9],A=r[10],f=r[11];return n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n[0]=t*c+l*e,n[1]=p*c+i*e,n[2]=m*c+A*e,n[3]=x*c+f*e,n[8]=t*-e+l*c,n[9]=p*-e+i*c,n[10]=m*-e+A*c,n[11]=x*-e+f*c,n}o(i1,"rotateY");function f1(n,r,s){let c=Math.cos(s),e=Math.sin(s),t=r[0],p=r[1],m=r[2],x=r[3],l=r[4],i=r[5],A=r[6],f=r[7];return n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n[0]=t*c+l*-e,n[1]=p*c+i*-e,n[2]=m*c+A*-e,n[3]=x*c+f*-e,n[4]=t*e+l*c,n[5]=p*e+i*c,n[6]=m*e+A*c,n[7]=x*e+f*c,n}o(f1,"rotateZ");function er(n,r){if(Math.abs(r[0]*r[4]+r[1]*r[5]+r[2]*r[6]+r[3]*r[7])<1e-12&&Math.abs(r[0]*r[8]+r[1]*r[9]+r[2]*r[10]+r[3]*r[11])<1e-12&&Math.abs(r[4]*r[8]+r[5]*r[9]+r[6]*r[10]+r[7]*r[11])<1e-12)return A1(n,r);let s=r[0],c=r[1],e=r[2],t=r[3],p=r[4],m=r[5],x=r[6],l=r[7],i=r[8],A=r[9],f=r[10],y=r[11],a=r[12],b=r[13],P=r[14],h=r[15],I=m*f*h+x*y*b+l*A*P-l*f*b-x*A*h-m*y*P,_=p*f*h+x*y*a+l*i*P-l*f*a-x*i*h-p*y*P,v=p*A*h+m*y*a+l*i*b-l*A*a-m*i*h-p*y*b,O=p*A*P+m*f*a+x*i*b-x*A*a-m*i*P-p*f*b,L=s*I-c*_+e*v-t*O;if(Math.abs(L)<1e-12)return null;let M=1/L;return n[0]=I*M,n[1]=(c*y*P+e*A*h+t*f*b-c*f*h-e*y*b-t*A*P)*M,n[2]=(c*l*P+e*m*h+t*x*b-c*x*h-e*l*b-t*m*P)*M,n[3]=(c*x*y+e*l*A+t*m*f-c*l*f-e*m*y-t*x*A)*M,n[4]=-_*M,n[5]=(s*f*h+e*y*a+t*i*P-s*y*P-e*i*h-t*f*a)*M,n[6]=(s*l*P+e*p*h+t*x*a-s*x*h-e*l*a-t*p*P)*M,n[7]=(s*x*y+e*l*i+t*p*f-s*l*f-e*p*y-t*x*i)*M,n[8]=v*M,n[9]=(s*y*b+c*i*h+t*f*a-s*f*b-c*y*a-t*i*h)*M,n[10]=(s*m*h+c*l*a+t*p*b-s*l*b-c*p*h-t*m*a)*M,n[11]=(s*l*A+c*p*y+t*m*i-s*m*y-c*l*i-t*p*A)*M,n[12]=-O*M,n[13]=(s*A*P+c*f*a+e*i*b-s*f*b-c*i*P-e*A*a)*M,n[14]=(s*x*b+c*p*P+e*m*a-s*m*P-c*x*a-e*p*b)*M,n[15]=(s*m*f+c*x*i+e*p*A-s*x*A-c*p*f-e*m*i)*M,n}o(er,"invert");function A1(n,r){return n[0]=r[0],n[1]=r[4],n[2]=r[8],n[3]=0,n[4]=r[1],n[5]=r[5],n[6]=r[9],n[7]=0,n[8]=r[2],n[9]=r[6],n[10]=r[10],n[11]=0,n[12]=-(r[12]*r[0]+r[13]*r[4]+r[14]*r[8]),n[13]=-(r[12]*r[1]+r[13]*r[5]+r[14]*r[9]),n[14]=-(r[12]*r[2]+r[13]*r[6]+r[14]*r[10]),n[15]=1,n}o(A1,"transposeOrthogonal");function y1(n,r){if(n!==r)n[0]=r[0],n[1]=r[4],n[2]=r[8],n[3]=r[12],n[4]=r[1],n[5]=r[5],n[6]=r[9],n[7]=r[13],n[8]=r[2],n[9]=r[6],n[10]=r[10],n[11]=r[14],n[12]=r[3],n[13]=r[7],n[14]=r[11],n[15]=r[15];else{let s=r[1];n[1]=r[4],n[4]=s,s=r[2],n[2]=r[8],n[8]=s,s=r[3],n[3]=r[12],n[12]=s,s=r[6],n[6]=r[9],n[9]=s,s=r[7],n[7]=r[13],n[13]=s,s=r[11],n[11]=r[14],n[14]=s}return n}o(y1,"transpose");function sr(n,r,s,c,e){let t=1/Math.tan(r*.5),p=1/(c-e),m=2*e*c*p;return n[0]=t/s,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=t,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=(e+c)*p,n[11]=-1,n[12]=0,n[13]=0,n[14]=m,n[15]=0,n}o(sr,"perspective");function cr(n,r,s,c,e,t,p){let m=s-r,x=e-c,l=p-t;return n[0]=2/m,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=2/x,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=-2/l,n[11]=0,n[12]=-(s+r)/m,n[13]=-(e+c)/x,n[14]=-(p+t)/l,n[15]=1,n}o(cr,"ortho");function mr(n,r,s,c){let e=s[0]-r[0],t=s[1]-r[1],p=s[2]-r[2],m=Math.sqrt(e*e+t*t+p*p);m>0&&(m=1/m,e*=m,t*=m,p*=m);let x=t*c[2]-p*c[1],l=p*c[0]-e*c[2],i=e*c[1]-t*c[0];m=Math.sqrt(x*x+l*l+i*i),m>0&&(m=1/m,x*=m,l*=m,i*=m);let A=l*p-i*t,f=i*e-x*p,y=x*t-l*e;return n[0]=x,n[1]=A,n[2]=-e,n[3]=0,n[4]=l,n[5]=f,n[6]=-t,n[7]=0,n[8]=i,n[9]=y,n[10]=-p,n[11]=0,n[12]=-(x*r[0]+l*r[1]+i*r[2]),n[13]=-(A*r[0]+f*r[1]+y*r[2]),n[14]=e*r[0]+t*r[1]+p*r[2],n[15]=1,n}o(mr,"lookAt");function pr(n,r,s){let c=s[0],e=s[1],t=s[2];return n[0]=r[0]*c+r[4]*e+r[8]*t+r[12],n[1]=r[1]*c+r[5]*e+r[9]*t+r[13],n[2]=r[2]*c+r[6]*e+r[10]*t+r[14],n}o(pr,"transformPoint");function xr(n,r,s){let c=s[0],e=s[1],t=s[2];return n[0]=r[0]*c+r[4]*e+r[8]*t,n[1]=r[1]*c+r[5]*e+r[9]*t,n[2]=r[2]*c+r[6]*e+r[10]*t,n}o(xr,"transformVector");function a1(n,r,s,c){for(let e=0;e<c;e++){let t=r[e],p=s[e],m=n[e],x=t[0],l=t[4],i=t[8],A=t[12],f=t[1],y=t[5],a=t[9],b=t[13],P=t[2],h=t[6],I=t[10],_=t[14],v=t[3],O=t[7],L=t[11],M=t[15],k=p[0],S=p[1],B=p[2],d=p[3],E=p[4],N=p[5],Z=p[6],z=p[7],q=p[8],X=p[9],Y=p[10],F=p[11],w=p[12],U=p[13],H=p[14],g=p[15];m[0]=x*k+l*E+i*q+A*w,m[1]=f*k+y*E+a*q+b*w,m[2]=P*k+h*E+I*q+_*w,m[3]=v*k+O*E+L*q+M*w,m[4]=x*S+l*N+i*X+A*U,m[5]=f*S+y*N+a*X+b*U,m[6]=P*S+h*N+I*X+_*U,m[7]=v*S+O*N+L*X+M*U,m[8]=x*B+l*Z+i*Y+A*H,m[9]=f*B+y*Z+a*Y+b*H,m[10]=P*B+h*Z+I*Y+_*H,m[11]=v*B+O*Z+L*Y+M*H,m[12]=x*d+l*z+i*F+A*g,m[13]=f*d+y*z+a*F+b*g,m[14]=P*d+h*z+I*F+_*g,m[15]=v*d+O*z+L*F+M*g}}o(a1,"multiplyBulk");var lr=x1,ir=a1,fr=l1,Ar=i1,yr=f1,ar=y1;var G=Math.PI,br=G*2,$n=G/2,t0=4,e0=512,J=t0*e0,b1=new Array(J),j=0;o((function(){for(let r=0;r<J;r++){let s=new Array(16);s[0]=1,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=1,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=1,s[11]=0,s[12]=0,s[13]=0,s[14]=0,s[15]=1,b1[r]=s}}),"initPool")();function Pr(){let n=j++,r=b1[n&J-1];return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}o(Pr,"tempMat4");function hr(n){let r=new Array(n),s=j;for(let c=0;c<n;c++){let e=s+c&J-1,t=b1[e];t[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]=0,t[13]=0,t[14]=0,t[15]=1,r[c]=t}return j+=n,r}o(hr,"tempMat4Bulk");function Mr(){j=0}o(Mr,"resetPool");function or(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}o(or,"create");function Ir(n,r){return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n}o(Ir,"copy");function _r(n){return n[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}o(_r,"identity");function P1(n,r,s){let c=r[0],e=r[1],t=r[2],p=r[3],m=r[4],x=r[5],l=r[6],i=r[7],A=r[8],f=r[9],y=r[10],a=r[11],b=r[12],P=r[13],h=r[14],I=r[15],_=s[0],v=s[1],O=s[2],L=s[3],M=s[4],k=s[5],S=s[6],B=s[7],d=s[8],E=s[9],N=s[10],Z=s[11],z=s[12],q=s[13],X=s[14],Y=s[15];return n[0]=c*_+m*M+A*d+b*z,n[1]=e*_+x*M+f*d+P*z,n[2]=t*_+l*M+y*d+h*z,n[3]=p*_+i*M+a*d+I*z,n[4]=c*v+m*k+A*E+b*q,n[5]=e*v+x*k+f*E+P*q,n[6]=t*v+l*k+y*E+h*q,n[7]=p*v+i*k+a*E+I*q,n[8]=c*O+m*S+A*N+b*X,n[9]=e*O+x*S+f*N+P*X,n[10]=t*O+l*S+y*N+h*X,n[11]=p*O+i*S+a*N+I*X,n[12]=c*L+m*B+A*Z+b*Y,n[13]=e*L+x*B+f*Z+P*Y,n[14]=t*L+l*B+y*Z+h*Y,n[15]=p*L+i*B+a*Z+I*Y,n}o(P1,"multiply");function vr(n,r){return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n}o(vr,"multiplyUnit");function Or(n,r,s){let c=s[0],e=s[1],t=s[2];return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[0]*c+r[4]*e+r[8]*t+r[12],n[13]=r[1]*c+r[5]*e+r[9]*t+r[13],n[14]=r[2]*c+r[6]*e+r[10]*t+r[14],n[15]=r[3]*c+r[7]*e+r[11]*t+r[15],n}o(Or,"translate");function Lr(n,r,s){let c=s[0],e=s[1],t=s[2];return r[1]===0&&r[2]===0&&r[3]===0&&r[4]===0&&r[6]===0&&r[7]===0&&r[8]===0&&r[9]===0&&r[11]===0&&r[12]===0&&r[13]===0&&r[14]===0?(n[0]=r[0]*c,n[5]=r[5]*e,n[10]=r[10]*t,n[15]=r[15],n):(n[0]=r[0]*c,n[1]=r[1]*c,n[2]=r[2]*c,n[3]=r[3]*c,n[4]=r[4]*e,n[5]=r[5]*e,n[6]=r[6]*e,n[7]=r[7]*e,n[8]=r[8]*t,n[9]=r[9]*t,n[10]=r[10]*t,n[11]=r[11]*t,n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n)}o(Lr,"scale");function h1(n,r,s){let c=Math.cos(s),e=Math.sin(s),t=r[4],p=r[5],m=r[6],x=r[7],l=r[8],i=r[9],A=r[10],f=r[11];return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n[4]=t*c+l*e,n[5]=p*c+i*e,n[6]=m*c+A*e,n[7]=x*c+f*e,n[8]=t*-e+l*c,n[9]=p*-e+i*c,n[10]=m*-e+A*c,n[11]=x*-e+f*c,n}o(h1,"rotateX");function M1(n,r,s){let c=Math.cos(s),e=Math.sin(s),t=r[0],p=r[1],m=r[2],x=r[3],l=r[8],i=r[9],A=r[10],f=r[11];return n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n[0]=t*c+l*e,n[1]=p*c+i*e,n[2]=m*c+A*e,n[3]=x*c+f*e,n[8]=t*-e+l*c,n[9]=p*-e+i*c,n[10]=m*-e+A*c,n[11]=x*-e+f*c,n}o(M1,"rotateY");function o1(n,r,s){let c=Math.cos(s),e=Math.sin(s),t=r[0],p=r[1],m=r[2],x=r[3],l=r[4],i=r[5],A=r[6],f=r[7];return n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n[0]=t*c+l*-e,n[1]=p*c+i*-e,n[2]=m*c+A*-e,n[3]=x*c+f*-e,n[4]=t*e+l*c,n[5]=p*e+i*c,n[6]=m*e+A*c,n[7]=x*e+f*c,n}o(o1,"rotateZ");function kr(n,r){if(Math.abs(r[0]*r[4]+r[1]*r[5]+r[2]*r[6]+r[3]*r[7])<1e-6&&Math.abs(r[0]*r[8]+r[1]*r[9]+r[2]*r[10]+r[3]*r[11])<1e-6&&Math.abs(r[4]*r[8]+r[5]*r[9]+r[6]*r[10]+r[7]*r[11])<1e-6)return I1(n,r);let s=r[0],c=r[1],e=r[2],t=r[3],p=r[4],m=r[5],x=r[6],l=r[7],i=r[8],A=r[9],f=r[10],y=r[11],a=r[12],b=r[13],P=r[14],h=r[15],I=m*f*h+x*y*b+l*A*P-l*f*b-x*A*h-m*y*P,_=p*f*h+x*y*a+l*i*P-l*f*a-x*i*h-p*y*P,v=p*A*h+m*y*a+l*i*b-l*A*a-m*i*h-p*y*b,O=p*A*P+m*f*a+x*i*b-x*A*a-m*i*P-p*f*b,L=s*I-c*_+e*v-t*O;if(Math.abs(L)<1e-6)return null;let M=1/L;return n[0]=I*M,n[1]=(c*y*P+e*A*h+t*f*b-c*f*h-e*y*b-t*A*P)*M,n[2]=(c*l*P+e*m*h+t*x*b-c*x*h-e*l*b-t*m*P)*M,n[3]=(c*x*y+e*l*A+t*m*f-c*l*f-e*m*y-t*x*A)*M,n[4]=-_*M,n[5]=(s*f*h+e*y*a+t*i*P-s*y*P-e*i*h-t*f*a)*M,n[6]=(s*l*P+e*p*h+t*x*a-s*x*h-e*l*a-t*p*P)*M,n[7]=(s*x*y+e*l*i+t*p*f-s*l*f-e*p*y-t*x*i)*M,n[8]=v*M,n[9]=(s*y*b+c*i*h+t*f*a-s*f*b-c*y*a-t*i*h)*M,n[10]=(s*m*h+c*l*a+t*p*b-s*l*b-c*p*h-t*m*a)*M,n[11]=(s*l*A+c*p*y+t*m*i-s*m*y-c*l*i-t*p*A)*M,n[12]=-O*M,n[13]=(s*A*P+c*f*a+e*i*b-s*f*b-c*i*P-e*A*a)*M,n[14]=(s*x*b+c*p*P+e*m*a-s*m*P-c*x*a-e*p*b)*M,n[15]=(s*m*f+c*x*i+e*p*A-s*x*A-c*p*f-e*m*i)*M,n}o(kr,"invert");function I1(n,r){return n[0]=r[0],n[1]=r[4],n[2]=r[8],n[3]=0,n[4]=r[1],n[5]=r[5],n[6]=r[9],n[7]=0,n[8]=r[2],n[9]=r[6],n[10]=r[10],n[11]=0,n[12]=-(r[12]*r[0]+r[13]*r[4]+r[14]*r[8]),n[13]=-(r[12]*r[1]+r[13]*r[5]+r[14]*r[9]),n[14]=-(r[12]*r[2]+r[13]*r[6]+r[14]*r[10]),n[15]=1,n}o(I1,"transposeOrthogonal");function _1(n,r){if(n!==r)n[0]=r[0],n[1]=r[4],n[2]=r[8],n[3]=r[12],n[4]=r[1],n[5]=r[5],n[6]=r[9],n[7]=r[13],n[8]=r[2],n[9]=r[6],n[10]=r[10],n[11]=r[14],n[12]=r[3],n[13]=r[7],n[14]=r[11],n[15]=r[15];else{let s=r[1];n[1]=r[4],n[4]=s,s=r[2],n[2]=r[8],n[8]=s,s=r[3],n[3]=r[12],n[12]=s,s=r[6],n[6]=r[9],n[9]=s,s=r[7],n[7]=r[13],n[13]=s,s=r[11],n[11]=r[14],n[14]=s}return n}o(_1,"transpose");function Sr(n,r,s,c,e){let t=1/Math.tan(r*.5),p=1/(c-e),m=2*e*c*p;return n[0]=t/s,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=t,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=(e+c)*p,n[11]=-1,n[12]=0,n[13]=0,n[14]=m,n[15]=0,n}o(Sr,"perspective");function Br(n,r,s,c,e,t,p){let m=s-r,x=e-c,l=p-t;return n[0]=2/m,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=2/x,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=-2/l,n[11]=0,n[12]=-(s+r)/m,n[13]=-(e+c)/x,n[14]=-(p+t)/l,n[15]=1,n}o(Br,"ortho");function dr(n,r,s,c){let e=s[0]-r[0],t=s[1]-r[1],p=s[2]-r[2],m=Math.sqrt(e*e+t*t+p*p);m>0&&(m=1/m,e*=m,t*=m,p*=m);let x=t*c[2]-p*c[1],l=p*c[0]-e*c[2],i=e*c[1]-t*c[0];m=Math.sqrt(x*x+l*l+i*i),m>0&&(m=1/m,x*=m,l*=m,i*=m);let A=l*p-i*t,f=i*e-x*p,y=x*t-l*e;return n[0]=x,n[1]=A,n[2]=-e,n[3]=0,n[4]=l,n[5]=f,n[6]=-t,n[7]=0,n[8]=i,n[9]=y,n[10]=-p,n[11]=0,n[12]=-(x*r[0]+l*r[1]+i*r[2]),n[13]=-(A*r[0]+f*r[1]+y*r[2]),n[14]=e*r[0]+t*r[1]+p*r[2],n[15]=1,n}o(dr,"lookAt");function Er(n,r,s){let c=s[0],e=s[1],t=s[2];return n[0]=r[0]*c+r[4]*e+r[8]*t+r[12],n[1]=r[1]*c+r[5]*e+r[9]*t+r[13],n[2]=r[2]*c+r[6]*e+r[10]*t+r[14],n}o(Er,"transformPoint");function Nr(n,r,s){let c=s[0],e=s[1],t=s[2];return n[0]=r[0]*c+r[4]*e+r[8]*t,n[1]=r[1]*c+r[5]*e+r[9]*t,n[2]=r[2]*c+r[6]*e+r[10]*t,n}o(Nr,"transformVector");function v1(n,r,s,c){for(let e=0;e<c;e++){let t=r[e],p=s[e],m=n[e],x=t[0],l=t[4],i=t[8],A=t[12],f=t[1],y=t[5],a=t[9],b=t[13],P=t[2],h=t[6],I=t[10],_=t[14],v=t[3],O=t[7],L=t[11],M=t[15],k=p[0],S=p[1],B=p[2],d=p[3],E=p[4],N=p[5],Z=p[6],z=p[7],q=p[8],X=p[9],Y=p[10],F=p[11],w=p[12],U=p[13],H=p[14],g=p[15];m[0]=x*k+l*E+i*q+A*w,m[1]=f*k+y*E+a*q+b*w,m[2]=P*k+h*E+I*q+_*w,m[3]=v*k+O*E+L*q+M*w,m[4]=x*S+l*N+i*X+A*U,m[5]=f*S+y*N+a*X+b*U,m[6]=P*S+h*N+I*X+_*U,m[7]=v*S+O*N+L*X+M*U,m[8]=x*B+l*Z+i*Y+A*H,m[9]=f*B+y*Z+a*Y+b*H,m[10]=P*B+h*Z+I*Y+_*H,m[11]=v*B+O*Z+L*Y+M*H,m[12]=x*d+l*z+i*F+A*g,m[13]=f*d+y*z+a*F+b*g,m[14]=P*d+h*z+I*F+_*g,m[15]=v*d+O*z+L*F+M*g}}o(v1,"multiplyBulk");var Zr=P1,zr=v1,qr=h1,Xr=M1,Yr=o1,Fr=_1;var x0=1e-6,l0=T,i0=O1,f0=L1,A0=1e-12,y0=D,a0=j1,b0=G1,P0=1e-6,h0=G,M0=br,o0=d1,I0=N1,_0=E1,v0=$,O0=Z1,L0=z1,k0=q1,S0=u,B0=r1,d0=n1,E0=X1,N0=e1,Z0=t1,z0=Y1,q0=F1,X0=w1,Y0=U1,F0=H1,w0=S1,U0=B1,H0=s1,g0=g1,V0=C1,C0=K1,K0=T1,T0=D1,D0=V1,j0=W1,G0=u1,J0=$1,Q0=x1,R0=rr,W0=nr,$0=tr,u0=l1,rn=i1,nn=f1,tn=er,en=y1,sn=A1,cn=sr,mn=cr,pn=mr,xn=pr,ln=xr,fn=Q1,An=R1,yn=a1,an=lr,bn=fr,Pn=Ar,hn=yr,Mn=ar,on=ir,In=or,_n=_r,vn=Ir,On=P1,Ln=vr,kn=Or,Sn=Lr,Bn=h1,dn=M1,En=o1,Nn=kr,Zn=_1,zn=I1,qn=Sr,Xn=Br,Yn=dr,Fn=Er,wn=Nr,Un=Pr,Hn=hr,gn=v1,Vn=Mr,Cn=Zr,Kn=qr,Tn=Xr,Dn=Yr,jn=Fr,Gn=zr;0&&(module.exports={EPSILON,EPSILON64,EPSILONArray,PI,PI64,PIArray,PI_2,PI_2_64,PI_2_Array,PI_HALF,PI_HALF_64,copy,copy64,copyArray,create,create64,createArray,identity,identity64,identityArray,invert,invert64,invertArray,lookAt,lookAt64,lookAtArray,mul,mul64,mulArray,mulBulk,mulBulk64,mulBulkArray,multiply,multiply64,multiplyArray,multiplyBulk,multiplyBulk64,multiplyBulkArray,multiplyUnit,multiplyUnit64,multiplyUnitArray,ortho,ortho64,orthoArray,perspective,perspective64,perspectiveArray,resetPoolArray,rotX,rotX64,rotXArray,rotY,rotY64,rotYArray,rotZ,rotZ64,rotZArray,rotateX,rotateX64,rotateXArray,rotateY,rotateY64,rotateYArray,rotateZ,rotateZ64,rotateZArray,scale,scale64,scaleArray,tempMat4,tempMat464,tempMat4Array,tempMat4Bulk,tempMat4Bulk64,tempMat4BulkArray,trans,trans64,transArray,transformPoint,transformPoint64,transformPointArray,transformVector,transformVector64,transformVectorArray,translate,translate64,translateArray,transpose,transpose64,transposeArray,transposeOrthogonal,transposeOrthogonal64,transposeOrthogonalArray});