phaser-ce
Version:
Phaser CE (Community Edition) is a fast, free and fun HTML5 Game Framework for Desktop and Mobile web browsers.
3 lines (2 loc) • 113 kB
JavaScript
/* Phaser v2.20.2 Creature Build - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var a=e();for(var r in a)("object"==typeof exports?exports:t)[r]=a[r]}}(this,function(){return function(a){var r={};function n(t){if(r[t])return r[t].exports;var e=r[t]={exports:{},id:t,loaded:!1};return a[t].call(e.exports,e,e.exports,n),e.loaded=!0,e.exports}return n.m=a,n.c=r,n.p="",n(0)}([function(t,e,a){e.glMatrix=a(1),e.mat2=a(2),e.mat2d=a(3),e.mat3=a(4),e.mat4=a(5),e.quat=a(6),e.vec2=a(9),e.vec3=a(7),e.vec4=a(8)},function(t,e){var a={EPSILON:1e-6};a.ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,a.RANDOM=Math.random,a.ENABLE_SIMD=!1,a.SIMD_AVAILABLE=a.ARRAY_TYPE===this.Float32Array&&"SIMD"in this,a.USE_SIMD=a.ENABLE_SIMD&&a.SIMD_AVAILABLE,a.setMatrixArrayType=function(t){a.ARRAY_TYPE=t};var r=Math.PI/180;a.toRadian=function(t){return t*r},a.equals=function(t,e){return Math.abs(t-e)<=a.EPSILON*Math.max(1,Math.abs(t),Math.abs(e))},t.exports=a},function(t,e,a){var c=a(1),r={create:function(){var t=new c.ARRAY_TYPE(4);return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},clone:function(t){var e=new c.ARRAY_TYPE(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e},copy:function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t},identity:function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},fromValues:function(t,e,a,r){var n=new c.ARRAY_TYPE(4);return n[0]=t,n[1]=e,n[2]=a,n[3]=r,n},set:function(t,e,a,r,n){return t[0]=e,t[1]=a,t[2]=r,t[3]=n,t},transpose:function(t,e){if(t===e){var a=e[1];t[1]=e[2],t[2]=a}else t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3];return t},invert:function(t,e){var a=e[0],r=e[1],n=e[2],i=e[3],s=a*i-n*r;return s?(s=1/s,t[0]=i*s,t[1]=-r*s,t[2]=-n*s,t[3]=a*s,t):null},adjoint:function(t,e){var a=e[0];return t[0]=e[3],t[1]=-e[1],t[2]=-e[2],t[3]=a,t},determinant:function(t){return t[0]*t[3]-t[2]*t[1]},multiply:function(t,e,a){var r=e[0],n=e[1],i=e[2],s=e[3],o=a[0],l=a[1],u=a[2],c=a[3];return t[0]=r*o+i*l,t[1]=n*o+s*l,t[2]=r*u+i*c,t[3]=n*u+s*c,t}};r.mul=r.multiply,r.rotate=function(t,e,a){var r=e[0],n=e[1],i=e[2],s=e[3],o=Math.sin(a),l=Math.cos(a);return t[0]=r*l+i*o,t[1]=n*l+s*o,t[2]=r*-o+i*l,t[3]=n*-o+s*l,t},r.scale=function(t,e,a){var r=e[0],n=e[1],i=e[2],s=e[3],o=a[0],l=a[1];return t[0]=r*o,t[1]=n*o,t[2]=i*l,t[3]=s*l,t},r.fromRotation=function(t,e){var a=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=a,t[2]=-a,t[3]=r,t},r.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=e[1],t},r.str=function(t){return"mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},r.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2))},r.LDU=function(t,e,a,r){return t[2]=r[2]/r[0],a[0]=r[0],a[1]=r[1],a[3]=r[3]-t[2]*a[1],[t,e,a]},r.add=function(t,e,a){return t[0]=e[0]+a[0],t[1]=e[1]+a[1],t[2]=e[2]+a[2],t[3]=e[3]+a[3],t},r.subtract=function(t,e,a){return t[0]=e[0]-a[0],t[1]=e[1]-a[1],t[2]=e[2]-a[2],t[3]=e[3]-a[3],t},r.sub=r.subtract,r.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]},r.equals=function(t,e){var a=t[0],r=t[1],n=t[2],i=t[3],s=e[0],o=e[1],l=e[2],u=e[3];return Math.abs(a-s)<=c.EPSILON*Math.max(1,Math.abs(a),Math.abs(s))&&Math.abs(r-o)<=c.EPSILON*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-l)<=c.EPSILON*Math.max(1,Math.abs(n),Math.abs(l))&&Math.abs(i-u)<=c.EPSILON*Math.max(1,Math.abs(i),Math.abs(u))},r.multiplyScalar=function(t,e,a){return t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t[3]=e[3]*a,t},r.multiplyScalarAndAdd=function(t,e,a,r){return t[0]=e[0]+a[0]*r,t[1]=e[1]+a[1]*r,t[2]=e[2]+a[2]*r,t[3]=e[3]+a[3]*r,t},t.exports=r},function(t,e,a){var p=a(1),r={create:function(){var t=new p.ARRAY_TYPE(6);return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},clone:function(t){var e=new p.ARRAY_TYPE(6);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e},copy:function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t},identity:function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},fromValues:function(t,e,a,r,n,i){var s=new p.ARRAY_TYPE(6);return s[0]=t,s[1]=e,s[2]=a,s[3]=r,s[4]=n,s[5]=i,s},set:function(t,e,a,r,n,i,s){return t[0]=e,t[1]=a,t[2]=r,t[3]=n,t[4]=i,t[5]=s,t},invert:function(t,e){var a=e[0],r=e[1],n=e[2],i=e[3],s=e[4],o=e[5],l=a*i-r*n;return l?(l=1/l,t[0]=i*l,t[1]=-r*l,t[2]=-n*l,t[3]=a*l,t[4]=(n*o-i*s)*l,t[5]=(r*s-a*o)*l,t):null},determinant:function(t){return t[0]*t[3]-t[1]*t[2]},multiply:function(t,e,a){var r=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],u=a[0],c=a[1],h=a[2],_=a[3],d=a[4],p=a[5];return t[0]=r*u+i*c,t[1]=n*u+s*c,t[2]=r*h+i*_,t[3]=n*h+s*_,t[4]=r*d+i*p+o,t[5]=n*d+s*p+l,t}};r.mul=r.multiply,r.rotate=function(t,e,a){var r=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],u=Math.sin(a),c=Math.cos(a);return t[0]=r*c+i*u,t[1]=n*c+s*u,t[2]=r*-u+i*c,t[3]=n*-u+s*c,t[4]=o,t[5]=l,t},r.scale=function(t,e,a){var r=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],u=a[0],c=a[1];return t[0]=r*u,t[1]=n*u,t[2]=i*c,t[3]=s*c,t[4]=o,t[5]=l,t},r.translate=function(t,e,a){var r=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],u=a[0],c=a[1];return t[0]=r,t[1]=n,t[2]=i,t[3]=s,t[4]=r*u+i*c+o,t[5]=n*u+s*c+l,t},r.fromRotation=function(t,e){var a=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=a,t[2]=-a,t[3]=r,t[4]=0,t[5]=0,t},r.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=e[1],t[4]=0,t[5]=0,t},r.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=e[0],t[5]=e[1],t},r.str=function(t){return"mat2d("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+")"},r.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+1)},r.add=function(t,e,a){return t[0]=e[0]+a[0],t[1]=e[1]+a[1],t[2]=e[2]+a[2],t[3]=e[3]+a[3],t[4]=e[4]+a[4],t[5]=e[5]+a[5],t},r.subtract=function(t,e,a){return t[0]=e[0]-a[0],t[1]=e[1]-a[1],t[2]=e[2]-a[2],t[3]=e[3]-a[3],t[4]=e[4]-a[4],t[5]=e[5]-a[5],t},r.sub=r.subtract,r.multiplyScalar=function(t,e,a){return t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t[3]=e[3]*a,t[4]=e[4]*a,t[5]=e[5]*a,t},r.multiplyScalarAndAdd=function(t,e,a,r){return t[0]=e[0]+a[0]*r,t[1]=e[1]+a[1]*r,t[2]=e[2]+a[2]*r,t[3]=e[3]+a[3]*r,t[4]=e[4]+a[4]*r,t[5]=e[5]+a[5]*r,t},r.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]},r.equals=function(t,e){var a=t[0],r=t[1],n=t[2],i=t[3],s=t[4],o=t[5],l=e[0],u=e[1],c=e[2],h=e[3],_=e[4],d=e[5];return Math.abs(a-l)<=p.EPSILON*Math.max(1,Math.abs(a),Math.abs(l))&&Math.abs(r-u)<=p.EPSILON*Math.max(1,Math.abs(r),Math.abs(u))&&Math.abs(n-c)<=p.EPSILON*Math.max(1,Math.abs(n),Math.abs(c))&&Math.abs(i-h)<=p.EPSILON*Math.max(1,Math.abs(i),Math.abs(h))&&Math.abs(s-_)<=p.EPSILON*Math.max(1,Math.abs(s),Math.abs(_))&&Math.abs(o-d)<=p.EPSILON*Math.max(1,Math.abs(o),Math.abs(d))},t.exports=r},function(t,e,a){var y=a(1),r={create:function(){var t=new y.ARRAY_TYPE(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},fromMat4:function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t},clone:function(t){var e=new y.ARRAY_TYPE(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},copy:function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t},fromValues:function(t,e,a,r,n,i,s,o,l){var u=new y.ARRAY_TYPE(9);return u[0]=t,u[1]=e,u[2]=a,u[3]=r,u[4]=n,u[5]=i,u[6]=s,u[7]=o,u[8]=l,u},set:function(t,e,a,r,n,i,s,o,l,u){return t[0]=e,t[1]=a,t[2]=r,t[3]=n,t[4]=i,t[5]=s,t[6]=o,t[7]=l,t[8]=u,t},identity:function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},transpose:function(t,e){if(t===e){var a=e[1],r=e[2],n=e[5];t[1]=e[3],t[2]=e[6],t[3]=a,t[5]=e[7],t[6]=r,t[7]=n}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t},invert:function(t,e){var a=e[0],r=e[1],n=e[2],i=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8],h=c*s-o*u,_=-c*i+o*l,d=u*i-s*l,p=a*h+r*_+n*d;return p?(p=1/p,t[0]=h*p,t[1]=(-c*r+n*u)*p,t[2]=(o*r-n*s)*p,t[3]=_*p,t[4]=(c*a-n*l)*p,t[5]=(-o*a+n*i)*p,t[6]=d*p,t[7]=(-u*a+r*l)*p,t[8]=(s*a-r*i)*p,t):null},adjoint:function(t,e){var a=e[0],r=e[1],n=e[2],i=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8];return t[0]=s*c-o*u,t[1]=n*u-r*c,t[2]=r*o-n*s,t[3]=o*l-i*c,t[4]=a*c-n*l,t[5]=n*i-a*o,t[6]=i*u-s*l,t[7]=r*l-a*u,t[8]=a*s-r*i,t},determinant:function(t){var e=t[0],a=t[1],r=t[2],n=t[3],i=t[4],s=t[5],o=t[6],l=t[7],u=t[8];return e*(u*i-s*l)+a*(-u*n+s*o)+r*(l*n-i*o)},multiply:function(t,e,a){var r=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],_=a[0],d=a[1],p=a[2],m=a[3],M=a[4],f=a[5],v=a[6],g=a[7],y=a[8];return t[0]=_*r+d*s+p*u,t[1]=_*n+d*o+p*c,t[2]=_*i+d*l+p*h,t[3]=m*r+M*s+f*u,t[4]=m*n+M*o+f*c,t[5]=m*i+M*l+f*h,t[6]=v*r+g*s+y*u,t[7]=v*n+g*o+y*c,t[8]=v*i+g*l+y*h,t}};r.mul=r.multiply,r.translate=function(t,e,a){var r=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],_=a[0],d=a[1];return t[0]=r,t[1]=n,t[2]=i,t[3]=s,t[4]=o,t[5]=l,t[6]=_*r+d*s+u,t[7]=_*n+d*o+c,t[8]=_*i+d*l+h,t},r.rotate=function(t,e,a){var r=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],_=Math.sin(a),d=Math.cos(a);return t[0]=d*r+_*s,t[1]=d*n+_*o,t[2]=d*i+_*l,t[3]=d*s-_*r,t[4]=d*o-_*n,t[5]=d*l-_*i,t[6]=u,t[7]=c,t[8]=h,t},r.scale=function(t,e,a){var r=a[0],n=a[1];return t[0]=r*e[0],t[1]=r*e[1],t[2]=r*e[2],t[3]=n*e[3],t[4]=n*e[4],t[5]=n*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t},r.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=e[0],t[7]=e[1],t[8]=1,t},r.fromRotation=function(t,e){var a=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=a,t[2]=0,t[3]=-a,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},r.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=e[1],t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},r.fromMat2d=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=0,t[3]=e[2],t[4]=e[3],t[5]=0,t[6]=e[4],t[7]=e[5],t[8]=1,t},r.fromQuat=function(t,e){var a=e[0],r=e[1],n=e[2],i=e[3],s=a+a,o=r+r,l=n+n,u=a*s,c=r*s,h=r*o,_=n*s,d=n*o,p=n*l,m=i*s,M=i*o,f=i*l;return t[0]=1-h-p,t[3]=c-f,t[6]=_+M,t[1]=c+f,t[4]=1-u-p,t[7]=d-m,t[2]=_-M,t[5]=d+m,t[8]=1-u-h,t},r.normalFromMat4=function(t,e){var a=e[0],r=e[1],n=e[2],i=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8],h=e[9],_=e[10],d=e[11],p=e[12],m=e[13],M=e[14],f=e[15],v=a*o-r*s,g=a*l-n*s,y=a*u-i*s,S=r*l-n*o,I=r*u-i*o,D=n*u-i*l,x=c*m-h*p,b=c*M-_*p,F=c*f-d*p,C=h*M-_*m,R=h*f-d*m,w=_*f-d*M,U=v*w-g*R+y*C+S*F-I*b+D*x;return U?(U=1/U,t[0]=(o*w-l*R+u*C)*U,t[1]=(l*F-s*w-u*b)*U,t[2]=(s*R-o*F+u*x)*U,t[3]=(n*R-r*w-i*C)*U,t[4]=(a*w-n*F+i*b)*U,t[5]=(r*F-a*R-i*x)*U,t[6]=(m*D-M*I+f*S)*U,t[7]=(M*y-p*D-f*g)*U,t[8]=(p*I-m*y+f*v)*U,t):null},r.str=function(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"},r.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+Math.pow(t[6],2)+Math.pow(t[7],2)+Math.pow(t[8],2))},r.add=function(t,e,a){return t[0]=e[0]+a[0],t[1]=e[1]+a[1],t[2]=e[2]+a[2],t[3]=e[3]+a[3],t[4]=e[4]+a[4],t[5]=e[5]+a[5],t[6]=e[6]+a[6],t[7]=e[7]+a[7],t[8]=e[8]+a[8],t},r.subtract=function(t,e,a){return t[0]=e[0]-a[0],t[1]=e[1]-a[1],t[2]=e[2]-a[2],t[3]=e[3]-a[3],t[4]=e[4]-a[4],t[5]=e[5]-a[5],t[6]=e[6]-a[6],t[7]=e[7]-a[7],t[8]=e[8]-a[8],t},r.sub=r.subtract,r.multiplyScalar=function(t,e,a){return t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t[3]=e[3]*a,t[4]=e[4]*a,t[5]=e[5]*a,t[6]=e[6]*a,t[7]=e[7]*a,t[8]=e[8]*a,t},r.multiplyScalarAndAdd=function(t,e,a,r){return t[0]=e[0]+a[0]*r,t[1]=e[1]+a[1]*r,t[2]=e[2]+a[2]*r,t[3]=e[3]+a[3]*r,t[4]=e[4]+a[4]*r,t[5]=e[5]+a[5]*r,t[6]=e[6]+a[6]*r,t[7]=e[7]+a[7]*r,t[8]=e[8]+a[8]*r,t},r.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]},r.equals=function(t,e){var a=t[0],r=t[1],n=t[2],i=t[3],s=t[4],o=t[5],l=t[6],u=t[7],c=t[8],h=e[0],_=e[1],d=e[2],p=e[3],m=e[4],M=e[5],f=t[6],v=e[7],g=e[8];return Math.abs(a-h)<=y.EPSILON*Math.max(1,Math.abs(a),Math.abs(h))&&Math.abs(r-_)<=y.EPSILON*Math.max(1,Math.abs(r),Math.abs(_))&&Math.abs(n-d)<=y.EPSILON*Math.max(1,Math.abs(n),Math.abs(d))&&Math.abs(i-p)<=y.EPSILON*Math.max(1,Math.abs(i),Math.abs(p))&&Math.abs(s-m)<=y.EPSILON*Math.max(1,Math.abs(s),Math.abs(m))&&Math.abs(o-M)<=y.EPSILON*Math.max(1,Math.abs(o),Math.abs(M))&&Math.abs(l-f)<=y.EPSILON*Math.max(1,Math.abs(l),Math.abs(f))&&Math.abs(u-v)<=y.EPSILON*Math.max(1,Math.abs(u),Math.abs(v))&&Math.abs(c-g)<=y.EPSILON*Math.max(1,Math.abs(c),Math.abs(g))},t.exports=r},function(t,e,a){var E=a(1),D={scalar:{},SIMD:{},create:function(){var t=new E.ARRAY_TYPE(16);return 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,t},clone:function(t){var e=new E.ARRAY_TYPE(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},copy:function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},fromValues:function(t,e,a,r,n,i,s,o,l,u,c,h,_,d,p,m){var M=new E.ARRAY_TYPE(16);return M[0]=t,M[1]=e,M[2]=a,M[3]=r,M[4]=n,M[5]=i,M[6]=s,M[7]=o,M[8]=l,M[9]=u,M[10]=c,M[11]=h,M[12]=_,M[13]=d,M[14]=p,M[15]=m,M},set:function(t,e,a,r,n,i,s,o,l,u,c,h,_,d,p,m,M){return t[0]=e,t[1]=a,t[2]=r,t[3]=n,t[4]=i,t[5]=s,t[6]=o,t[7]=l,t[8]=u,t[9]=c,t[10]=h,t[11]=_,t[12]=d,t[13]=p,t[14]=m,t[15]=M,t},identity:function(t){return 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,t}};D.scalar.transpose=function(t,e){if(t===e){var a=e[1],r=e[2],n=e[3],i=e[6],s=e[7],o=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=a,t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=i,t[11]=e[14],t[12]=n,t[13]=s,t[14]=o}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t},D.SIMD.transpose=function(t,e){var a,r,n,i,s,o,l,u,c,h;return a=SIMD.Float32x4.load(e,0),r=SIMD.Float32x4.load(e,4),n=SIMD.Float32x4.load(e,8),i=SIMD.Float32x4.load(e,12),s=SIMD.Float32x4.shuffle(a,r,0,1,4,5),o=SIMD.Float32x4.shuffle(n,i,0,1,4,5),l=SIMD.Float32x4.shuffle(s,o,0,2,4,6),u=SIMD.Float32x4.shuffle(s,o,1,3,5,7),SIMD.Float32x4.store(t,0,l),SIMD.Float32x4.store(t,4,u),s=SIMD.Float32x4.shuffle(a,r,2,3,6,7),o=SIMD.Float32x4.shuffle(n,i,2,3,6,7),c=SIMD.Float32x4.shuffle(s,o,0,2,4,6),h=SIMD.Float32x4.shuffle(s,o,1,3,5,7),SIMD.Float32x4.store(t,8,c),SIMD.Float32x4.store(t,12,h),t},D.transpose=E.USE_SIMD?D.SIMD.transpose:D.scalar.transpose,D.scalar.invert=function(t,e){var a=e[0],r=e[1],n=e[2],i=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8],h=e[9],_=e[10],d=e[11],p=e[12],m=e[13],M=e[14],f=e[15],v=a*o-r*s,g=a*l-n*s,y=a*u-i*s,S=r*l-n*o,I=r*u-i*o,D=n*u-i*l,x=c*m-h*p,b=c*M-_*p,F=c*f-d*p,C=h*M-_*m,R=h*f-d*m,w=_*f-d*M,U=v*w-g*R+y*C+S*F-I*b+D*x;return U?(U=1/U,t[0]=(o*w-l*R+u*C)*U,t[1]=(n*R-r*w-i*C)*U,t[2]=(m*D-M*I+f*S)*U,t[3]=(_*I-h*D-d*S)*U,t[4]=(l*F-s*w-u*b)*U,t[5]=(a*w-n*F+i*b)*U,t[6]=(M*y-p*D-f*g)*U,t[7]=(c*D-_*y+d*g)*U,t[8]=(s*R-o*F+u*x)*U,t[9]=(r*F-a*R-i*x)*U,t[10]=(p*I-m*y+f*v)*U,t[11]=(h*y-c*I-d*v)*U,t[12]=(o*b-s*C-l*x)*U,t[13]=(a*C-r*b+n*x)*U,t[14]=(m*g-p*S-M*v)*U,t[15]=(c*S-h*g+_*v)*U,t):null},D.SIMD.invert=function(t,e){var a,r,n,i,s,o,l,u,c,h,_=SIMD.Float32x4.load(e,0),d=SIMD.Float32x4.load(e,4),p=SIMD.Float32x4.load(e,8),m=SIMD.Float32x4.load(e,12);return s=SIMD.Float32x4.shuffle(_,d,0,1,4,5),r=SIMD.Float32x4.shuffle(p,m,0,1,4,5),a=SIMD.Float32x4.shuffle(s,r,0,2,4,6),r=SIMD.Float32x4.shuffle(r,s,1,3,5,7),s=SIMD.Float32x4.shuffle(_,d,2,3,6,7),i=SIMD.Float32x4.shuffle(p,m,2,3,6,7),n=SIMD.Float32x4.shuffle(s,i,0,2,4,6),i=SIMD.Float32x4.shuffle(i,s,1,3,5,7),s=SIMD.Float32x4.mul(n,i),s=SIMD.Float32x4.swizzle(s,1,0,3,2),o=SIMD.Float32x4.mul(r,s),l=SIMD.Float32x4.mul(a,s),s=SIMD.Float32x4.swizzle(s,2,3,0,1),o=SIMD.Float32x4.sub(SIMD.Float32x4.mul(r,s),o),l=SIMD.Float32x4.sub(SIMD.Float32x4.mul(a,s),l),l=SIMD.Float32x4.swizzle(l,2,3,0,1),s=SIMD.Float32x4.mul(r,n),s=SIMD.Float32x4.swizzle(s,1,0,3,2),o=SIMD.Float32x4.add(SIMD.Float32x4.mul(i,s),o),c=SIMD.Float32x4.mul(a,s),s=SIMD.Float32x4.swizzle(s,2,3,0,1),o=SIMD.Float32x4.sub(o,SIMD.Float32x4.mul(i,s)),c=SIMD.Float32x4.sub(SIMD.Float32x4.mul(a,s),c),c=SIMD.Float32x4.swizzle(c,2,3,0,1),s=SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(r,2,3,0,1),i),s=SIMD.Float32x4.swizzle(s,1,0,3,2),n=SIMD.Float32x4.swizzle(n,2,3,0,1),o=SIMD.Float32x4.add(SIMD.Float32x4.mul(n,s),o),u=SIMD.Float32x4.mul(a,s),s=SIMD.Float32x4.swizzle(s,2,3,0,1),o=SIMD.Float32x4.sub(o,SIMD.Float32x4.mul(n,s)),u=SIMD.Float32x4.sub(SIMD.Float32x4.mul(a,s),u),u=SIMD.Float32x4.swizzle(u,2,3,0,1),s=SIMD.Float32x4.mul(a,r),s=SIMD.Float32x4.swizzle(s,1,0,3,2),u=SIMD.Float32x4.add(SIMD.Float32x4.mul(i,s),u),c=SIMD.Float32x4.sub(SIMD.Float32x4.mul(n,s),c),s=SIMD.Float32x4.swizzle(s,2,3,0,1),u=SIMD.Float32x4.sub(SIMD.Float32x4.mul(i,s),u),c=SIMD.Float32x4.sub(c,SIMD.Float32x4.mul(n,s)),s=SIMD.Float32x4.mul(a,i),s=SIMD.Float32x4.swizzle(s,1,0,3,2),l=SIMD.Float32x4.sub(l,SIMD.Float32x4.mul(n,s)),u=SIMD.Float32x4.add(SIMD.Float32x4.mul(r,s),u),s=SIMD.Float32x4.swizzle(s,2,3,0,1),l=SIMD.Float32x4.add(SIMD.Float32x4.mul(n,s),l),u=SIMD.Float32x4.sub(u,SIMD.Float32x4.mul(r,s)),s=SIMD.Float32x4.mul(a,n),s=SIMD.Float32x4.swizzle(s,1,0,3,2),l=SIMD.Float32x4.add(SIMD.Float32x4.mul(i,s),l),c=SIMD.Float32x4.sub(c,SIMD.Float32x4.mul(r,s)),s=SIMD.Float32x4.swizzle(s,2,3,0,1),l=SIMD.Float32x4.sub(l,SIMD.Float32x4.mul(i,s)),c=SIMD.Float32x4.add(SIMD.Float32x4.mul(r,s),c),h=SIMD.Float32x4.mul(a,o),h=SIMD.Float32x4.add(SIMD.Float32x4.swizzle(h,2,3,0,1),h),h=SIMD.Float32x4.add(SIMD.Float32x4.swizzle(h,1,0,3,2),h),s=SIMD.Float32x4.reciprocalApproximation(h),h=SIMD.Float32x4.sub(SIMD.Float32x4.add(s,s),SIMD.Float32x4.mul(h,SIMD.Float32x4.mul(s,s))),(h=SIMD.Float32x4.swizzle(h,0,0,0,0))?(SIMD.Float32x4.store(t,0,SIMD.Float32x4.mul(h,o)),SIMD.Float32x4.store(t,4,SIMD.Float32x4.mul(h,l)),SIMD.Float32x4.store(t,8,SIMD.Float32x4.mul(h,u)),SIMD.Float32x4.store(t,12,SIMD.Float32x4.mul(h,c)),t):null},D.invert=E.USE_SIMD?D.SIMD.invert:D.scalar.invert,D.scalar.adjoint=function(t,e){var a=e[0],r=e[1],n=e[2],i=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8],h=e[9],_=e[10],d=e[11],p=e[12],m=e[13],M=e[14],f=e[15];return t[0]=o*(_*f-d*M)-h*(l*f-u*M)+m*(l*d-u*_),t[1]=-(r*(_*f-d*M)-h*(n*f-i*M)+m*(n*d-i*_)),t[2]=r*(l*f-u*M)-o*(n*f-i*M)+m*(n*u-i*l),t[3]=-(r*(l*d-u*_)-o*(n*d-i*_)+h*(n*u-i*l)),t[4]=-(s*(_*f-d*M)-c*(l*f-u*M)+p*(l*d-u*_)),t[5]=a*(_*f-d*M)-c*(n*f-i*M)+p*(n*d-i*_),t[6]=-(a*(l*f-u*M)-s*(n*f-i*M)+p*(n*u-i*l)),t[7]=a*(l*d-u*_)-s*(n*d-i*_)+c*(n*u-i*l),t[8]=s*(h*f-d*m)-c*(o*f-u*m)+p*(o*d-u*h),t[9]=-(a*(h*f-d*m)-c*(r*f-i*m)+p*(r*d-i*h)),t[10]=a*(o*f-u*m)-s*(r*f-i*m)+p*(r*u-i*o),t[11]=-(a*(o*d-u*h)-s*(r*d-i*h)+c*(r*u-i*o)),t[12]=-(s*(h*M-_*m)-c*(o*M-l*m)+p*(o*_-l*h)),t[13]=a*(h*M-_*m)-c*(r*M-n*m)+p*(r*_-n*h),t[14]=-(a*(o*M-l*m)-s*(r*M-n*m)+p*(r*l-n*o)),t[15]=a*(o*_-l*h)-s*(r*_-n*h)+c*(r*l-n*o),t},D.SIMD.adjoint=function(t,e){var a,r,n,i,s,o,l,u,c,h,_,d,p;return a=SIMD.Float32x4.load(e,0),r=SIMD.Float32x4.load(e,4),n=SIMD.Float32x4.load(e,8),i=SIMD.Float32x4.load(e,12),c=SIMD.Float32x4.shuffle(a,r,0,1,4,5),o=SIMD.Float32x4.shuffle(n,i,0,1,4,5),s=SIMD.Float32x4.shuffle(c,o,0,2,4,6),o=SIMD.Float32x4.shuffle(o,c,1,3,5,7),c=SIMD.Float32x4.shuffle(a,r,2,3,6,7),u=SIMD.Float32x4.shuffle(n,i,2,3,6,7),l=SIMD.Float32x4.shuffle(c,u,0,2,4,6),u=SIMD.Float32x4.shuffle(u,c,1,3,5,7),c=SIMD.Float32x4.mul(l,u),c=SIMD.Float32x4.swizzle(c,1,0,3,2),h=SIMD.Float32x4.mul(o,c),_=SIMD.Float32x4.mul(s,c),c=SIMD.Float32x4.swizzle(c,2,3,0,1),h=SIMD.Float32x4.sub(SIMD.Float32x4.mul(o,c),h),_=SIMD.Float32x4.sub(SIMD.Float32x4.mul(s,c),_),_=SIMD.Float32x4.swizzle(_,2,3,0,1),c=SIMD.Float32x4.mul(o,l),c=SIMD.Float32x4.swizzle(c,1,0,3,2),h=SIMD.Float32x4.add(SIMD.Float32x4.mul(u,c),h),p=SIMD.Float32x4.mul(s,c),c=SIMD.Float32x4.swizzle(c,2,3,0,1),h=SIMD.Float32x4.sub(h,SIMD.Float32x4.mul(u,c)),p=SIMD.Float32x4.sub(SIMD.Float32x4.mul(s,c),p),p=SIMD.Float32x4.swizzle(p,2,3,0,1),c=SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(o,2,3,0,1),u),c=SIMD.Float32x4.swizzle(c,1,0,3,2),l=SIMD.Float32x4.swizzle(l,2,3,0,1),h=SIMD.Float32x4.add(SIMD.Float32x4.mul(l,c),h),d=SIMD.Float32x4.mul(s,c),c=SIMD.Float32x4.swizzle(c,2,3,0,1),h=SIMD.Float32x4.sub(h,SIMD.Float32x4.mul(l,c)),d=SIMD.Float32x4.sub(SIMD.Float32x4.mul(s,c),d),d=SIMD.Float32x4.swizzle(d,2,3,0,1),c=SIMD.Float32x4.mul(s,o),c=SIMD.Float32x4.swizzle(c,1,0,3,2),d=SIMD.Float32x4.add(SIMD.Float32x4.mul(u,c),d),p=SIMD.Float32x4.sub(SIMD.Float32x4.mul(l,c),p),c=SIMD.Float32x4.swizzle(c,2,3,0,1),d=SIMD.Float32x4.sub(SIMD.Float32x4.mul(u,c),d),p=SIMD.Float32x4.sub(p,SIMD.Float32x4.mul(l,c)),c=SIMD.Float32x4.mul(s,u),c=SIMD.Float32x4.swizzle(c,1,0,3,2),_=SIMD.Float32x4.sub(_,SIMD.Float32x4.mul(l,c)),d=SIMD.Float32x4.add(SIMD.Float32x4.mul(o,c),d),c=SIMD.Float32x4.swizzle(c,2,3,0,1),_=SIMD.Float32x4.add(SIMD.Float32x4.mul(l,c),_),d=SIMD.Float32x4.sub(d,SIMD.Float32x4.mul(o,c)),c=SIMD.Float32x4.mul(s,l),c=SIMD.Float32x4.swizzle(c,1,0,3,2),_=SIMD.Float32x4.add(SIMD.Float32x4.mul(u,c),_),p=SIMD.Float32x4.sub(p,SIMD.Float32x4.mul(o,c)),c=SIMD.Float32x4.swizzle(c,2,3,0,1),_=SIMD.Float32x4.sub(_,SIMD.Float32x4.mul(u,c)),p=SIMD.Float32x4.add(SIMD.Float32x4.mul(o,c),p),SIMD.Float32x4.store(t,0,h),SIMD.Float32x4.store(t,4,_),SIMD.Float32x4.store(t,8,d),SIMD.Float32x4.store(t,12,p),t},D.adjoint=E.USE_SIMD?D.SIMD.adjoint:D.scalar.adjoint,D.determinant=function(t){var e=t[0],a=t[1],r=t[2],n=t[3],i=t[4],s=t[5],o=t[6],l=t[7],u=t[8],c=t[9],h=t[10],_=t[11],d=t[12],p=t[13],m=t[14],M=t[15];return(e*s-a*i)*(h*M-_*m)-(e*o-r*i)*(c*M-_*p)+(e*l-n*i)*(c*m-h*p)+(a*o-r*s)*(u*M-_*d)-(a*l-n*s)*(u*m-h*d)+(r*l-n*o)*(u*p-c*d)},D.SIMD.multiply=function(t,e,a){var r=SIMD.Float32x4.load(e,0),n=SIMD.Float32x4.load(e,4),i=SIMD.Float32x4.load(e,8),s=SIMD.Float32x4.load(e,12),o=SIMD.Float32x4.load(a,0),l=SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(o,0,0,0,0),r),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(o,1,1,1,1),n),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(o,2,2,2,2),i),SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(o,3,3,3,3),s))));SIMD.Float32x4.store(t,0,l);var u=SIMD.Float32x4.load(a,4),c=SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(u,0,0,0,0),r),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(u,1,1,1,1),n),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(u,2,2,2,2),i),SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(u,3,3,3,3),s))));SIMD.Float32x4.store(t,4,c);var h=SIMD.Float32x4.load(a,8),_=SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(h,0,0,0,0),r),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(h,1,1,1,1),n),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(h,2,2,2,2),i),SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(h,3,3,3,3),s))));SIMD.Float32x4.store(t,8,_);var d=SIMD.Float32x4.load(a,12),p=SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(d,0,0,0,0),r),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(d,1,1,1,1),n),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(d,2,2,2,2),i),SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(d,3,3,3,3),s))));return SIMD.Float32x4.store(t,12,p),t},D.scalar.multiply=function(t,e,a){var r=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],_=e[9],d=e[10],p=e[11],m=e[12],M=e[13],f=e[14],v=e[15],g=a[0],y=a[1],S=a[2],I=a[3];return t[0]=g*r+y*o+S*h+I*m,t[1]=g*n+y*l+S*_+I*M,t[2]=g*i+y*u+S*d+I*f,t[3]=g*s+y*c+S*p+I*v,g=a[4],y=a[5],S=a[6],I=a[7],t[4]=g*r+y*o+S*h+I*m,t[5]=g*n+y*l+S*_+I*M,t[6]=g*i+y*u+S*d+I*f,t[7]=g*s+y*c+S*p+I*v,g=a[8],y=a[9],S=a[10],I=a[11],t[8]=g*r+y*o+S*h+I*m,t[9]=g*n+y*l+S*_+I*M,t[10]=g*i+y*u+S*d+I*f,t[11]=g*s+y*c+S*p+I*v,g=a[12],y=a[13],S=a[14],I=a[15],t[12]=g*r+y*o+S*h+I*m,t[13]=g*n+y*l+S*_+I*M,t[14]=g*i+y*u+S*d+I*f,t[15]=g*s+y*c+S*p+I*v,t},D.multiply=E.USE_SIMD?D.SIMD.multiply:D.scalar.multiply,D.mul=D.multiply,D.scalar.translate=function(t,e,a){var r,n,i,s,o,l,u,c,h,_,d,p,m=a[0],M=a[1],f=a[2];return e===t?(t[12]=e[0]*m+e[4]*M+e[8]*f+e[12],t[13]=e[1]*m+e[5]*M+e[9]*f+e[13],t[14]=e[2]*m+e[6]*M+e[10]*f+e[14],t[15]=e[3]*m+e[7]*M+e[11]*f+e[15]):(r=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],_=e[9],d=e[10],p=e[11],t[0]=r,t[1]=n,t[2]=i,t[3]=s,t[4]=o,t[5]=l,t[6]=u,t[7]=c,t[8]=h,t[9]=_,t[10]=d,t[11]=p,t[12]=r*m+o*M+h*f+e[12],t[13]=n*m+l*M+_*f+e[13],t[14]=i*m+u*M+d*f+e[14],t[15]=s*m+c*M+p*f+e[15]),t},D.SIMD.translate=function(t,e,a){var r=SIMD.Float32x4.load(e,0),n=SIMD.Float32x4.load(e,4),i=SIMD.Float32x4.load(e,8),s=SIMD.Float32x4.load(e,12),o=SIMD.Float32x4(a[0],a[1],a[2],0);e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11]),r=SIMD.Float32x4.mul(r,SIMD.Float32x4.swizzle(o,0,0,0,0)),n=SIMD.Float32x4.mul(n,SIMD.Float32x4.swizzle(o,1,1,1,1)),i=SIMD.Float32x4.mul(i,SIMD.Float32x4.swizzle(o,2,2,2,2));var l=SIMD.Float32x4.add(r,SIMD.Float32x4.add(n,SIMD.Float32x4.add(i,s)));return SIMD.Float32x4.store(t,12,l),t},D.translate=E.USE_SIMD?D.SIMD.translate:D.scalar.translate,D.scalar.scale=function(t,e,a){var r=a[0],n=a[1],i=a[2];return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t[8]=e[8]*i,t[9]=e[9]*i,t[10]=e[10]*i,t[11]=e[11]*i,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},D.SIMD.scale=function(t,e,a){var r,n,i,s=SIMD.Float32x4(a[0],a[1],a[2],0);return r=SIMD.Float32x4.load(e,0),SIMD.Float32x4.store(t,0,SIMD.Float32x4.mul(r,SIMD.Float32x4.swizzle(s,0,0,0,0))),n=SIMD.Float32x4.load(e,4),SIMD.Float32x4.store(t,4,SIMD.Float32x4.mul(n,SIMD.Float32x4.swizzle(s,1,1,1,1))),i=SIMD.Float32x4.load(e,8),SIMD.Float32x4.store(t,8,SIMD.Float32x4.mul(i,SIMD.Float32x4.swizzle(s,2,2,2,2))),t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},D.scale=E.USE_SIMD?D.SIMD.scale:D.scalar.scale,D.rotate=function(t,e,a,r){var n,i,s,o,l,u,c,h,_,d,p,m,M,f,v,g,y,S,I,D,x,b,F,C,R=r[0],w=r[1],U=r[2],P=Math.sqrt(R*R+w*w+U*U);return Math.abs(P)<E.EPSILON?null:(R*=P=1/P,w*=P,U*=P,n=Math.sin(a),s=1-(i=Math.cos(a)),o=e[0],l=e[1],u=e[2],c=e[3],h=e[4],_=e[5],d=e[6],p=e[7],m=e[8],M=e[9],f=e[10],v=e[11],g=R*R*s+i,y=w*R*s+U*n,S=U*R*s-w*n,I=R*w*s-U*n,D=w*w*s+i,x=U*w*s+R*n,b=R*U*s+w*n,F=w*U*s-R*n,C=U*U*s+i,t[0]=o*g+h*y+m*S,t[1]=l*g+_*y+M*S,t[2]=u*g+d*y+f*S,t[3]=c*g+p*y+v*S,t[4]=o*I+h*D+m*x,t[5]=l*I+_*D+M*x,t[6]=u*I+d*D+f*x,t[7]=c*I+p*D+v*x,t[8]=o*b+h*F+m*C,t[9]=l*b+_*F+M*C,t[10]=u*b+d*F+f*C,t[11]=c*b+p*F+v*C,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)},D.scalar.rotateX=function(t,e,a){var r=Math.sin(a),n=Math.cos(a),i=e[4],s=e[5],o=e[6],l=e[7],u=e[8],c=e[9],h=e[10],_=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=i*n+u*r,t[5]=s*n+c*r,t[6]=o*n+h*r,t[7]=l*n+_*r,t[8]=u*n-i*r,t[9]=c*n-s*r,t[10]=h*n-o*r,t[11]=_*n-l*r,t},D.SIMD.rotateX=function(t,e,a){var r=SIMD.Float32x4.splat(Math.sin(a)),n=SIMD.Float32x4.splat(Math.cos(a));e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);var i=SIMD.Float32x4.load(e,4),s=SIMD.Float32x4.load(e,8);return SIMD.Float32x4.store(t,4,SIMD.Float32x4.add(SIMD.Float32x4.mul(i,n),SIMD.Float32x4.mul(s,r))),SIMD.Float32x4.store(t,8,SIMD.Float32x4.sub(SIMD.Float32x4.mul(s,n),SIMD.Float32x4.mul(i,r))),t},D.rotateX=E.USE_SIMD?D.SIMD.rotateX:D.scalar.rotateX,D.scalar.rotateY=function(t,e,a){var r=Math.sin(a),n=Math.cos(a),i=e[0],s=e[1],o=e[2],l=e[3],u=e[8],c=e[9],h=e[10],_=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=i*n-u*r,t[1]=s*n-c*r,t[2]=o*n-h*r,t[3]=l*n-_*r,t[8]=i*r+u*n,t[9]=s*r+c*n,t[10]=o*r+h*n,t[11]=l*r+_*n,t},D.SIMD.rotateY=function(t,e,a){var r=SIMD.Float32x4.splat(Math.sin(a)),n=SIMD.Float32x4.splat(Math.cos(a));e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);var i=SIMD.Float32x4.load(e,0),s=SIMD.Float32x4.load(e,8);return SIMD.Float32x4.store(t,0,SIMD.Float32x4.sub(SIMD.Float32x4.mul(i,n),SIMD.Float32x4.mul(s,r))),SIMD.Float32x4.store(t,8,SIMD.Float32x4.add(SIMD.Float32x4.mul(i,r),SIMD.Float32x4.mul(s,n))),t},D.rotateY=E.USE_SIMD?D.SIMD.rotateY:D.scalar.rotateY,D.scalar.rotateZ=function(t,e,a){var r=Math.sin(a),n=Math.cos(a),i=e[0],s=e[1],o=e[2],l=e[3],u=e[4],c=e[5],h=e[6],_=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=i*n+u*r,t[1]=s*n+c*r,t[2]=o*n+h*r,t[3]=l*n+_*r,t[4]=u*n-i*r,t[5]=c*n-s*r,t[6]=h*n-o*r,t[7]=_*n-l*r,t},D.SIMD.rotateZ=function(t,e,a){var r=SIMD.Float32x4.splat(Math.sin(a)),n=SIMD.Float32x4.splat(Math.cos(a));e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);var i=SIMD.Float32x4.load(e,0),s=SIMD.Float32x4.load(e,4);return SIMD.Float32x4.store(t,0,SIMD.Float32x4.add(SIMD.Float32x4.mul(i,n),SIMD.Float32x4.mul(s,r))),SIMD.Float32x4.store(t,4,SIMD.Float32x4.sub(SIMD.Float32x4.mul(s,n),SIMD.Float32x4.mul(i,r))),t},D.rotateZ=E.USE_SIMD?D.SIMD.rotateZ:D.scalar.rotateZ,D.fromTranslation=function(t,e){return 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]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t},D.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},D.fromRotation=function(t,e,a){var r,n,i,s=a[0],o=a[1],l=a[2],u=Math.sqrt(s*s+o*o+l*l);return Math.abs(u)<E.EPSILON?null:(s*=u=1/u,o*=u,l*=u,r=Math.sin(e),i=1-(n=Math.cos(e)),t[0]=s*s*i+n,t[1]=o*s*i+l*r,t[2]=l*s*i-o*r,t[3]=0,t[4]=s*o*i-l*r,t[5]=o*o*i+n,t[6]=l*o*i+s*r,t[7]=0,t[8]=s*l*i+o*r,t[9]=o*l*i-s*r,t[10]=l*l*i+n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)},D.fromXRotation=function(t,e){var a=Math.sin(e),r=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=r,t[6]=a,t[7]=0,t[8]=0,t[9]=-a,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},D.fromYRotation=function(t,e){var a=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=0,t[2]=-a,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=a,t[9]=0,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},D.fromZRotation=function(t,e){var a=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=a,t[2]=0,t[3]=0,t[4]=-a,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},D.fromRotationTranslation=function(t,e,a){var r=e[0],n=e[1],i=e[2],s=e[3],o=r+r,l=n+n,u=i+i,c=r*o,h=r*l,_=r*u,d=n*l,p=n*u,m=i*u,M=s*o,f=s*l,v=s*u;return t[0]=1-(d+m),t[1]=h+v,t[2]=_-f,t[3]=0,t[4]=h-v,t[5]=1-(c+m),t[6]=p+M,t[7]=0,t[8]=_+f,t[9]=p-M,t[10]=1-(c+d),t[11]=0,t[12]=a[0],t[13]=a[1],t[14]=a[2],t[15]=1,t},D.getTranslation=function(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t},D.getRotation=function(t,e){var a=e[0]+e[5]+e[10],r=0;return 0<a?(r=2*Math.sqrt(a+1),t[3]=.25*r,t[0]=(e[6]-e[9])/r,t[1]=(e[8]-e[2])/r,t[2]=(e[1]-e[4])/r):e[0]>e[5]&e[0]>e[10]?(r=2*Math.sqrt(1+e[0]-e[5]-e[10]),t[3]=(e[6]-e[9])/r,t[0]=.25*r,t[1]=(e[1]+e[4])/r,t[2]=(e[8]+e[2])/r):e[5]>e[10]?(r=2*Math.sqrt(1+e[5]-e[0]-e[10]),t[3]=(e[8]-e[2])/r,t[0]=(e[1]+e[4])/r,t[1]=.25*r,t[2]=(e[6]+e[9])/r):(r=2*Math.sqrt(1+e[10]-e[0]-e[5]),t[3]=(e[1]-e[4])/r,t[0]=(e[8]+e[2])/r,t[1]=(e[6]+e[9])/r,t[2]=.25*r),t},D.fromRotationTranslationScale=function(t,e,a,r){var n=e[0],i=e[1],s=e[2],o=e[3],l=n+n,u=i+i,c=s+s,h=n*l,_=n*u,d=n*c,p=i*u,m=i*c,M=s*c,f=o*l,v=o*u,g=o*c,y=r[0],S=r[1],I=r[2];return t[0]=(1-(p+M))*y,t[1]=(_+g)*y,t[2]=(d-v)*y,t[3]=0,t[4]=(_-g)*S,t[5]=(1-(h+M))*S,t[6]=(m+f)*S,t[7]=0,t[8]=(d+v)*I,t[9]=(m-f)*I,t[10]=(1-(h+p))*I,t[11]=0,t[12]=a[0],t[13]=a[1],t[14]=a[2],t[15]=1,t},D.fromRotationTranslationScaleOrigin=function(t,e,a,r,n){var i=e[0],s=e[1],o=e[2],l=e[3],u=i+i,c=s+s,h=o+o,_=i*u,d=i*c,p=i*h,m=s*c,M=s*h,f=o*h,v=l*u,g=l*c,y=l*h,S=r[0],I=r[1],D=r[2],x=n[0],b=n[1],F=n[2];return t[0]=(1-(m+f))*S,t[1]=(d+y)*S,t[2]=(p-g)*S,t[3]=0,t[4]=(d-y)*I,t[5]=(1-(_+f))*I,t[6]=(M+v)*I,t[7]=0,t[8]=(p+g)*D,t[9]=(M-v)*D,t[10]=(1-(_+m))*D,t[11]=0,t[12]=a[0]+x-(t[0]*x+t[4]*b+t[8]*F),t[13]=a[1]+b-(t[1]*x+t[5]*b+t[9]*F),t[14]=a[2]+F-(t[2]*x+t[6]*b+t[10]*F),t[15]=1,t},D.fromQuat=function(t,e){var a=e[0],r=e[1],n=e[2],i=e[3],s=a+a,o=r+r,l=n+n,u=a*s,c=r*s,h=r*o,_=n*s,d=n*o,p=n*l,m=i*s,M=i*o,f=i*l;return t[0]=1-h-p,t[1]=c+f,t[2]=_-M,t[3]=0,t[4]=c-f,t[5]=1-u-p,t[6]=d+m,t[7]=0,t[8]=_+M,t[9]=d-m,t[10]=1-u-h,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},D.frustum=function(t,e,a,r,n,i,s){var o=1/(a-e),l=1/(n-r),u=1/(i-s);return t[0]=2*i*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*i*l,t[6]=0,t[7]=0,t[8]=(a+e)*o,t[9]=(n+r)*l,t[10]=(s+i)*u,t[11]=-1,t[12]=0,t[13]=0,t[14]=s*i*2*u,t[15]=0,t},D.perspective=function(t,e,a,r,n){var i=1/Math.tan(e/2),s=1/(r-n);return t[0]=i/a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=i,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=(n+r)*s,t[11]=-1,t[12]=0,t[13]=0,t[14]=2*n*r*s,t[15]=0,t},D.perspectiveFromFieldOfView=function(t,e,a,r){var n=Math.tan(e.upDegrees*Math.PI/180),i=Math.tan(e.downDegrees*Math.PI/180),s=Math.tan(e.leftDegrees*Math.PI/180),o=Math.tan(e.rightDegrees*Math.PI/180),l=2/(s+o),u=2/(n+i);return t[0]=l,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=u,t[6]=0,t[7]=0,t[8]=-(s-o)*l*.5,t[9]=(n-i)*u*.5,t[10]=r/(a-r),t[11]=-1,t[12]=0,t[13]=0,t[14]=r*a/(a-r),t[15]=0,t},D.ortho=function(t,e,a,r,n,i,s){var o=1/(e-a),l=1/(r-n),u=1/(i-s);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*u,t[11]=0,t[12]=(e+a)*o,t[13]=(n+r)*l,t[14]=(s+i)*u,t[15]=1,t},D.lookAt=function(t,e,a,r){var n,i,s,o,l,u,c,h,_,d,p=e[0],m=e[1],M=e[2],f=r[0],v=r[1],g=r[2],y=a[0],S=a[1],I=a[2];return Math.abs(p-y)<E.EPSILON&&Math.abs(m-S)<E.EPSILON&&Math.abs(M-I)<E.EPSILON?D.identity(t):(c=p-y,h=m-S,_=M-I,n=v*(_*=d=1/Math.sqrt(c*c+h*h+_*_))-g*(h*=d),i=g*(c*=d)-f*_,s=f*h-v*c,(d=Math.sqrt(n*n+i*i+s*s))?(n*=d=1/d,i*=d,s*=d):s=i=n=0,o=h*s-_*i,l=_*n-c*s,u=c*i-h*n,(d=Math.sqrt(o*o+l*l+u*u))?(o*=d=1/d,l*=d,u*=d):u=l=o=0,t[0]=n,t[1]=o,t[2]=c,t[3]=0,t[4]=i,t[5]=l,t[6]=h,t[7]=0,t[8]=s,t[9]=u,t[10]=_,t[11]=0,t[12]=-(n*p+i*m+s*M),t[13]=-(o*p+l*m+u*M),t[14]=-(c*p+h*m+_*M),t[15]=1,t)},D.str=function(t){return"mat4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"},D.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+Math.pow(t[6],2)+Math.pow(t[7],2)+Math.pow(t[8],2)+Math.pow(t[9],2)+Math.pow(t[10],2)+Math.pow(t[11],2)+Math.pow(t[12],2)+Math.pow(t[13],2)+Math.pow(t[14],2)+Math.pow(t[15],2))},D.add=function(t,e,a){return t[0]=e[0]+a[0],t[1]=e[1]+a[1],t[2]=e[2]+a[2],t[3]=e[3]+a[3],t[4]=e[4]+a[4],t[5]=e[5]+a[5],t[6]=e[6]+a[6],t[7]=e[7]+a[7],t[8]=e[8]+a[8],t[9]=e[9]+a[9],t[10]=e[10]+a[10],t[11]=e[11]+a[11],t[12]=e[12]+a[12],t[13]=e[13]+a[13],t[14]=e[14]+a[14],t[15]=e[15]+a[15],t},D.subtract=function(t,e,a){return t[0]=e[0]-a[0],t[1]=e[1]-a[1],t[2]=e[2]-a[2],t[3]=e[3]-a[3],t[4]=e[4]-a[4],t[5]=e[5]-a[5],t[6]=e[6]-a[6],t[7]=e[7]-a[7],t[8]=e[8]-a[8],t[9]=e[9]-a[9],t[10]=e[10]-a[10],t[11]=e[11]-a[11],t[12]=e[12]-a[12],t[13]=e[13]-a[13],t[14]=e[14]-a[14],t[15]=e[15]-a[15],t},D.sub=D.subtract,D.multiplyScalar=function(t,e,a){return t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t[3]=e[3]*a,t[4]=e[4]*a,t[5]=e[5]*a,t[6]=e[6]*a,t[7]=e[7]*a,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12]*a,t[13]=e[13]*a,t[14]=e[14]*a,t[15]=e[15]*a,t},D.multiplyScalarAndAdd=function(t,e,a,r){return t[0]=e[0]+a[0]*r,t[1]=e[1]+a[1]*r,t[2]=e[2]+a[2]*r,t[3]=e[3]+a[3]*r,t[4]=e[4]+a[4]*r,t[5]=e[5]+a[5]*r,t[6]=e[6]+a[6]*r,t[7]=e[7]+a[7]*r,t[8]=e[8]+a[8]*r,t[9]=e[9]+a[9]*r,t[10]=e[10]+a[10]*r,t[11]=e[11]+a[11]*r,t[12]=e[12]+a[12]*r,t[13]=e[13]+a[13]*r,t[14]=e[14]+a[14]*r,t[15]=e[15]+a[15]*r,t},D.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[11]===e[11]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]},D.equals=function(t,e){var a=t[0],r=t[1],n=t[2],i=t[3],s=t[4],o=t[5],l=t[6],u=t[7],c=t[8],h=t[9],_=t[10],d=t[11],p=t[12],m=t[13],M=t[14],f=t[15],v=e[0],g=e[1],y=e[2],S=e[3],I=e[4],D=e[5],x=e[6],b=e[7],F=e[8],C=e[9],R=e[10],w=e[11],U=e[12],P=e[13],A=e[14],B=e[15];return Math.abs(a-v)<=E.EPSILON*Math.max(1,Math.abs(a),Math.abs(v))&&Math.abs(r-g)<=E.EPSILON*Math.max(1,Math.abs(r),Math.abs(g))&&Math.abs(n-y)<=E.EPSILON*Math.max(1,Math.abs(n),Math.abs(y))&&Math.abs(i-S)<=E.EPSILON*Math.max(1,Math.abs(i),Math.abs(S))&&Math.abs(s-I)<=E.EPSILON*Math.max(1,Math.abs(s),Math.abs(I))&&Math.abs(o-D)<=E.EPSILON*Math.max(1,Math.abs(o),Math.abs(D))&&Math.abs(l-x)<=E.EPSILON*Math.max(1,Math.abs(l),Math.abs(x))&&Math.abs(u-b)<=E.EPSILON*Math.max(1,Math.abs(u),Math.abs(b))&&Math.abs(c-F)<=E.EPSILON*Math.max(1,Math.abs(c),Math.abs(F))&&Math.abs(h-C)<=E.EPSILON*Math.max(1,Math.abs(h),Math.abs(C))&&Math.abs(_-R)<=E.EPSILON*Math.max(1,Math.abs(_),Math.abs(R))&&Math.abs(d-w)<=E.EPSILON*Math.max(1,Math.abs(d),Math.abs(w))&&Math.abs(p-U)<=E.EPSILON*Math.max(1,Math.abs(p),Math.abs(U))&&Math.abs(m-P)<=E.EPSILON*Math.max(1,Math.abs(m),Math.abs(P))&&Math.abs(M-A)<=E.EPSILON*Math.max(1,Math.abs(M),Math.abs(A))&&Math.abs(f-B)<=E.EPSILON*Math.max(1,Math.abs(f),Math.abs(B))},t.exports=D},function(t,e,a){var n,i,s,o,l,u,r=a(1),c=a(4),h=a(7),_=a(8),d={};d.create=function(){var t=new r.ARRAY_TYPE(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},d.rotationTo=(n=h.create(),i=h.fromValues(1,0,0),s=h.fromValues(0,1,0),function(t,e,a){var r=h.dot(e,a);return r<-.999999?(h.cross(n,i,e),h.length(n)<1e-6&&h.cross(n,s,e),h.normalize(n,n),d.setAxisAngle(t,n,Math.PI),t):.999999<r?(t[0]=0,t[1]=0,t[2]=0,t[3]=1,t):(h.cross(n,e,a),t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=1+r,d.normalize(t,t))}),d.setAxes=(o=c.create(),function(t,e,a,r){return o[0]=a[0],o[3]=a[1],o[6]=a[2],o[1]=r[0],o[4]=r[1],o[7]=r[2],o[2]=-e[0],o[5]=-e[1],o[8]=-e[2],d.normalize(t,d.fromMat3(t,o))}),d.clone=_.clone,d.fromValues=_.fromValues,d.copy=_.copy,d.set=_.set,d.identity=function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},d.setAxisAngle=function(t,e,a){a*=.5;var r=Math.sin(a);return t[0]=r*e[0],t[1]=r*e[1],t[2]=r*e[2],t[3]=Math.cos(a),t},d.getAxisAngle=function(t,e){var a=2*Math.acos(e[3]),r=Math.sin(a/2);return 0!=r?(t[0]=e[0]/r,t[1]=e[1]/r,t[2]=e[2]/r):(t[0]=1,t[1]=0,t[2]=0),a},d.add=_.add,d.multiply=function(t,e,a){var r=e[0],n=e[1],i=e[2],s=e[3],o=a[0],l=a[1],u=a[2],c=a[3];return t[0]=r*c+s*o+n*u-i*l,t[1]=n*c+s*l+i*o-r*u,t[2]=i*c+s*u+r*l-n*o,t[3]=s*c-r*o-n*l-i*u,t},d.mul=d.multiply,d.scale=_.scale,d.rotateX=function(t,e,a){a*=.5;var r=e[0],n=e[1],i=e[2],s=e[3],o=Math.sin(a),l=Math.cos(a);return t[0]=r*l+s*o,t[1]=n*l+i*o,t[2]=i*l-n*o,t[3]=s*l-r*o,t},d.rotateY=function(t,e,a){a*=.5;var r=e[0],n=e[1],i=e[2],s=e[3],o=Math.sin(a),l=Math.cos(a);return t[0]=r*l-i*o,t[1]=n*l+s*o,t[2]=i*l+r*o,t[3]=s*l-n*o,t},d.rotateZ=function(t,e,a){a*=.5;var r=e[0],n=e[1],i=e[2],s=e[3],o=Math.sin(a),l=Math.cos(a);return t[0]=r*l+n*o,t[1]=n*l-r*o,t[2]=i*l+s*o,t[3]=s*l-i*o,t},d.calculateW=function(t,e){var a=e[0],r=e[1],n=e[2];return t[0]=a,t[1]=r,t[2]=n,t[3]=Math.sqrt(Math.abs(1-a*a-r*r-n*n)),t},d.dot=_.dot,d.lerp=_.lerp,d.slerp=function(t,e,a,r){var n,i,s,o,l,u=e[0],c=e[1],h=e[2],_=e[3],d=a[0],p=a[1],m=a[2],M=a[3];return(i=u*d+c*p+h*m+_*M)<0&&(i=-i,d=-d,p=-p,m=-m,M=-M),l=1e-6<1-i?(n=Math.acos(i),s=Math.sin(n),o=Math.sin((1-r)*n)/s,Math.sin(r*n)/s):(o=1-r,r),t[0]=o*u+l*d,t[1]=o*c+l*p,t[2]=o*h+l*m,t[3]=o*_+l*M,t},d.sqlerp=(l=d.create(),u=d.create(),function(t,e,a,r,n,i){return d.slerp(l,e,n,i),d.slerp(u,a,r,i),d.slerp(t,l,u,2*i*(1-i)),t}),d.invert=function(t,e){var a=e[0],r=e[1],n=e[2],i=e[3],s=a*a+r*r+n*n+i*i,o=s?1/s:0;return t[0]=-a*o,t[1]=-r*o,t[2]=-n*o,t[3]=i*o,t},d.conjugate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t},d.length=_.length,d.len=d.length,d.squaredLength=_.squaredLength,d.sqrLen=d.squaredLength,d.normalize=_.normalize,d.fromMat3=function(t,e){var a,r=e[0]+e[4]+e[8];if(0<r)a=Math.sqrt(r+1),t[3]=.5*a,a=.5/a,t[0]=(e[5]-e[7])*a,t[1]=(e[6]-e[2])*a,t[2]=(e[1]-e[3])*a;else{var n=0;e[4]>e[0]&&(n=1),e[8]>e[3*n+n]&&(n=2);var i=(n+1)%3,s=(n+2)%3;a=Math.sqrt(e[3*n+n]-e[3*i+i]-e[3*s+s]+1),t[n]=.5*a,a=.5/a,t[3]=(e[3*i+s]-e[3*s+i])*a,t[i]=(e[3*i+n]+e[3*n+i])*a,t[s]=(e[3*s+n]+e[3*n+s])*a}return t},d.str=function(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},d.exactEquals=_.exactEquals,d.equals=_.equals,t.exports=d},function(t,e,a){var l,u=a(1),i={};i.create=function(){var t=new u.ARRAY_TYPE(3);return t[0]=0,t[1]=0,t[2]=0,t},i.clone=function(t){var e=new u.ARRAY_TYPE(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e},i.fromValues=function(t,e,a){var r=new u.ARRAY_TYPE(3);return r[0]=t,r[1]=e,r[2]=a,r},i.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t},i.set=function(t,e,a,r){return t[0]=e,t[1]=a,t[2]=r,t},i.add=function(t,e,a){return t[0]=e[0]+a[0],t[1]=e[1]+a[1],t[2]=e[2]+a[2],t},i.subtract=function(t,e,a){return t[0]=e[0]-a[0],t[1]=e[1]-a[1],t[2]=e[2]-a[2],t},i.sub=i.subtract,i.multiply=function(t,e,a){return t[0]=e[0]*a[0],t[1]=e[1]*a[1],t[2]=e[2]*a[2],t},i.mul=i.multiply,i.divide=function(t,e,a){return t[0]=e[0]/a[0],t[1]=e[1]/a[1],t[2]=e[2]/a[2],t},i.div=i.divide,i.ceil=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t},i.floor=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t},i.min=function(t,e,a){return t[0]=Math.min(e[0],a[0]),t[1]=Math.min(e[1],a[1]),t[2]=Math.min(e[2],a[2]),t},i.max=function(t,e,a){return t[0]=Math.max(e[0],a[0]),t[1]=Math.max(e[1],a[1]),t[2]=Math.max(e[2],a[2]),t},i.round=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t},i.scale=function(t,e,a){return t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t},i.scaleAndAdd=function(t,e,a,r){return t[0]=e[0]+a[0]*r,t[1]=e[1]+a[1]*r,t[2]=e[2]+a[2]*r,t},i.distance=function(t,e){var a=e[0]-t[0],r=e[1]-t[1],n=e[2]-t[2];return Math.sqrt(a*a+r*r+n*n)},i.dist=i.distance,i.squaredDistance=function(t,e){var a=e[0]-t[0],r=e[1]-t[1],n=e[2]-t[2];return a*a+r*r+n*n},i.sqrDist=i.squaredDistance,i.length=function(t){var e=t[0],a=t[1],r=t[2];return Math.sqrt(e*e+a*a+r*r)},i.len=i.length,i.squaredLength=function(t){var e=t[0],a=t[1],r=t[2];return e*e+a*a+r*r},i.sqrLen=i.squaredLength,i.negate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t},i.inverse=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t},i.normalize=function(t,e){var a=e[0],r=e[1],n=e[2],i=a*a+r*r+n*n;return 0<i&&(i=1/Math.sqrt(i),t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i),t},i.dot=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},i.cross=function(t,e,a){var r=e[0],n=e[1],i=e[2],s=a[0],o=a[1],l=a[2];return t[0]=n*l-i*o,t[1]=i*s-r*l,t[2]=r*o-n*s,t},i.lerp=function(t,e,a,r){var n=e[0],i=e[1],s=e[2];return t[0]=n+r*(a[0]-n),t[1]=i+r*(a[1]-i),t[2]=s+r*(a[2]-s),t},i.hermite=function(t,e,a,r,n,i){var s=i*i,o=s*(2*i-3)+1,l=s*(i-2)+i,u=s*(i-1),c=s*(3-2*i);return t[0]=e[0]*o+a[0]*l+r[0]*u+n[0]*c,t[1]=e[1]*o+a[1]*l+r[1]*u+n[1]*c,t[2]=e[2]*o+a[2]*l+r[2]*u+n[2]*c,t},i.bezier=function(t,e,a,r,n,i){var s=1-i,o=s*s,l=i*i,u=o*s,c=3*i*o,h=3*l*s,_=l*i;return t[0]=e[0]*u+a[0]*c+r[0]*h+n[0]*_,t[1]=e[1]*u+a[1]*c+r[1]*h+n[1]*_,t[2]=e[2]*u+a[2]*c+r[2]*h+n[2]*_,t},i.random=function(t,e){e=e||1;var a=2*u.RANDOM()*Math.PI,r=2*u.RANDOM()-1,n=Math.sqrt(1-r*r)*e;return t[0]=Math.cos(a)*n,t[1]=Math.sin(a)*n,t[2]=r*e,t},i.transformMat4=function(t,e,a){var r=e[0],n=e[1],i=e[2],s=a[3]*r+a[7]*n+a[11]*i+a[15];return s=s||1,t[0]=(a[0]*r+a[4]*n+a[8]*i+a[12])/s,t[1]=(a[1]*r+a[5]*n+a[9]*i+a[13])/s,t[2]=(a[2]*r+a[6]*n+a[10]*i+a[14])/s,t},i.transformMat3=function(t,e,a){var r=e[0],n=e[1],i=e[2];return t[0]=r*a[0]+n*a[3]+i*a[6],t[1]=r*a[1]+n*a[4]+i*a[7],t[2]=r*a[2]+n*a[5]+i*a[8],t},i.transformQuat=function(t,e,a){var r=e[0],n=e[1],i=e[2],s=a[0],o=a[1],l=a[2],u=a[3],c=u*r+o*i-l*n,h=u*n+l*r-s*i,_=u*i+s*n-o*r,d=-s*r-o*n-l*i;return t[0]=c*u+d*-s+h*-l-_*-o,t[1]=h*u+d*-o+_*-s-c*-l,t[2]=_*u+d*-l+c*-o-h*-s,t},i.rotateX=function(t,e,a,r){var n=[],i=[];return n[0]=e[0]-a[0],n[1]=e[1]-a[1],n[2]=e[2]-a[2],i[0]=n[0],i[1]=n[1]*Math.cos(r)-n[2]*Math.sin(r),i[2]=n[1]*Math.sin(r)+n[2]*Math.cos(r),t[0]=i[0]+a[0],t[1]=i[1]+a[1],t[2]=i[2]+a[2],t},i.rotateY=function(t,e,a,r){var n=[],i=[];return n[0]=e[0]-a[0],n[1]=e[1]-a[1],n[2]=e[2]-a[2],i[0]=n[2]*Math.sin(r)+n[0]*Math.cos(r),i[1]=n[1],i[2]=n[2]*Math.cos(r)-n[0]*Math.sin(r),t[0]=i[0]+a[0],t[1]=i[1]+a[1],t[2]=i[2]+a[2],t},i.rotateZ=function(t,e,a,r){var n=[],i=[];return n[0]=e[0]-a[0],n[1]=e[1]-a[1],n[2]=e[2]-a[2],i[0]=n[0]*Math.cos(r)-n[1]*Math.sin(r),i[1]=n[0]*Math.sin(r)+n[1]*Math.cos(r),i[2]=n[2],t[0]=i[0]+a[0],t[1]=i[1]+a[1],t[2]=i[2]+a[2],t},i.forEach=(l=i.create(),function(t,e,a,r,n,i){var s,o;for(e||(e=3),a||(a=0),o=r?Math.min(r*e+a,t.length):t.length,s=a;s<o;s+=e)l[0]=t[s],l[1]=t[s+1],l[2]=t[s+2],n(l,l,i),t[s]=l[0],t[s+1]=l[1],t[s+2]=l[2];return t}),i.angle=function(t,e){var a=i.fromValues(t[0],t[1],t[2]),r=i.fromValues(e[0],e[1],e[2]);i.normalize(a,a),i.normalize(r,r);var n=i.dot(a,r);return 1<n?0:Math.acos(n)},i.str=function(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"},i.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]},i.equals=function(t,e){var a=t[0],r=t[1],n=t[2],i=e[0],s=e[1],o=e[2];return Math.abs(a-i)<=u.EPSILON*Math.max(1,Math.abs(a),Math.abs(i))&&Math.abs(r-s)<=u.EPSILON*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-o)<=u.EPSILON*Math.max(1,Math.abs(n),Math.abs(o))},t.exports=i},function(t,e,a){var l,c=a(1),r={};r.create=function(){var t=new c.ARRAY_TYPE(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t},r.clone=function(t){var e=new c.ARRAY_TYPE(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e},r.fromValues=function(t,e,a,r){var n=new c.ARRAY_TYPE(4);return n[0]=t,n[1]=e,n[2]=a,n[3]=r,n},r.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t},r.set=function(t,e,a,r,n){return t[0]=e,t[1]=a,t[2]=r,t[3]=n,t},r.add=function(t,e,a){return t[0]=e[0]+a[0],t[1]=e[1]+a[1],t[2]=e[2]+a[2],t[3]=e[3]+a[3],t},r.subtract=function(t,e,a){return t[0]=e[0]-a[0],t[1]=e[1]-a[1],t[2]=e[2]-a[2],t[3]=e[3]-a[3],t},r.sub=r.subtract,r.multiply=function(t,e,a){return t[0]=e[0]*a[0],t[1]=e[1]*a[1],t[2]=e[2]*a[2],t[3]=e[3]*a[3],t},r.mul=r.multiply,r.divide=function(t,e,a){return t[0]=e[0]/a[0],t[1]=e[1]/a[1],t[2]=e[2]/a[2],t[3]=e[3]/a[3],t},r.div=r.divide,r.ceil=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t[3]=Math.ceil(e[3]),t},r.floor=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t[3]=Math.floor(e[3]),t},r.min=function(t,e,a){return t[0]=Math.min(e[0],a[0]),t[1]=Math.min(e[1],a[1]),t[2]=Math.min(e[2],a[2]),t[3]=Math.min(e[3],a[3]),t},r.max=function(t,e,a){return t[0]=Math.max(e[0],a[0]),t[1]=Math.max(e[1],a[1]),t[2]=Math.max(e[2],a[2]),t[3]=Math.max(e[3],a[3]),t},r.round=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t[3]=Math.round(e[3]),t},r.scale=function(t,e,a){return t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t[3]=e[3]*a,t},r.scaleAndAdd=function(t,e,a,r){return t[0]=e[0]+a[0]*r,t[1]=e[1]+a[1]*r,t[2]=e[2]+a[2]*r,t[3]=e[3]+a[3]*r,t},r.distance=function(t,e){var a=e[0]-t[0],r=e[1]-t[1],n=e[2]-t[2],i=e[3]-t[3];return Math.sqrt(a*a+r*r+n*n+i*i)},r.dist=r.distance,r.squaredDistance=function(t,e){var a=e[0]-t[0],r=e[1]-t[1],n=e[2]-t[2],i=e[3]-t[3];return a*a+r*r+n*n+i*i},r.sqrDist=r.squaredDistance,r.length=function(t){var e=t[0],a=t[1],r=t[2],n=t[3];return Math.sqrt(e*e+a*a+r*r+n*n)},r.len=r.length,r.squaredLength=function(t){var e=t[0],a=t[1],r=t[2],n=t[3];return e*e+a*a+r*r+n*n},r.sqrLen=r.squaredLength,r.negate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},r.inverse=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t[3]=1/e[3],t},r.normalize=function(t,e){var a=e[0],r=e[1],n=e[2],i=e[3],s=a*a+r*r+n*n+i*i;return 0<s&&(s=1/Math.sqrt(s),t[0]=a*s,t[1]=r*s,t[2]=n*s,t[3]=i*s),t},r.dot=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]},r.lerp=function(t,e,a,r){var n=e[0],i=e[1],s=e[2],o=e[3];return t[0]=n+r*(a[0]-n),t[1]=i+r*(a[1]-i),t[2]=s+r*(a[2]-s),t[3]=o+r*(a[3]-o),t},r.random=function(t,e){return e=e||1,t[0]=c.RANDOM(),t[1]=c.RANDOM(),t[2]=c.RANDOM(),t[3]=c.RANDOM(),r.normalize(t,t),r.scale(t,t,e),t},r.transformMat4=function(t,e,a){var r=e[0],n=e[1],i=e[2],s=e[3];return t[0]=a[0]*r+a[4]*n+a[8]*i+a[12]*s,t[1]=a[1]*r+a[5]*n+a[9]*i+a[13]*s,t[2]=a[2]*r+a[6]*n+a[10]*i+a[14]*s,t[3]=a[3]*r+a[7]*n+a[11]*i+a[15]*s,t},r.transformQuat=function(t,e,a){var r=e[0],n=e[1],i=e[2],s=a[0],o=a[1],l=a[2],u=a[3],c=u*r+o*i-l*n,h=u*n+l*r-s*i,_=u*i+s*n-o*r,d=-s*r-o*n-l*i;return t[0]=c*u+d*-s+h*-l-_*-o,t[1]=h*u+d*-o+_*-s-c*-l,t[2]=_*u+d*-l+c*-o-h*-s,t[3]=e[3],t},r.forEach=(l=r.create(),function(t,e,a,r,n,i){var s,o;for(e||(e=4),a||(a=0),o=r?Math.min(r*e+a,t.length):t.length,s=a;s<o;s+=e)l[0]=t[s],l[1]=t[s+1],l[2]=t[s+2],l[3]=t[s+3],n(l,l,i),t[s]=l[0],t[s+1]=l[1],t[s+2]=l[2],t[s+3]=l[3];return t}),r.str=function(t){return"vec4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},r.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]},r.equals=function(t,e){var a=t[0],r=t[1],n=t[2],i=t[3],s=e[0],o=e[1],l=e[2],u=e[3];return Math.abs(a-s)<=c.EPSILON*Math.max(1,Math.abs(a),Math.abs(s))&&Math.abs(r-o)<=c.EPSILON*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-l)<=c.EPSILON*Math.max(1,Math.abs(n),Math.abs(l))&&Math.abs(i-u)<=c.EPSILON*Math.max(1,Math.abs(i),Math.abs(u))},t.exports=r},function(t,e,a){var l,s=a(1),r={};r.create=function(){var t=new s.ARRAY_TYPE(2);return t[0]=0,t[1]=0,t},r.clone=function(t){var e=new s.ARRAY_TYPE(2);return e[0]=t[0],e[1]=t[1],e},r.fromValues=function(t,e){var a=new s.A