geom3
Version:
A JavaScript Computational Library for 3D Modeling
2 lines • 68.2 kB
JavaScript
!function(t,a){"object"==typeof exports&&"object"==typeof module?module.exports=a():"function"==typeof define&&define.amd?define("Geom3",[],a):"object"==typeof exports?exports.Geom3=a():t.Geom3=a()}(this,function(){return function(t){function __webpack_require__(r){if(a[r])return a[r].exports;var n=a[r]={exports:{},id:r,loaded:!1};return t[r].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}var a={};return __webpack_require__.m=t,__webpack_require__.c=a,__webpack_require__.p="",__webpack_require__(0)}([function(t,a,r){var n,e,o;!function(u,l){e=[t,r(1),r(13),r(14),r(16),r(17),r(18),r(19),r(20),r(30),r(21),r(22),r(23),r(15),r(24),r(26),r(28),r(29),r(2)],n=l,o="function"==typeof n?n.apply(a,e):n,!(void 0!==o&&(t.exports=o))}(this,function(t,a,r,n,e,o,u,l,i,s,c,M,f,h,d,x,S,I,D){"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _interopRequireWildcard(t){if(t&&t.__esModule)return t;var a={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(a[r]=t[r]);return a.default=t,a}var p=_interopRequireWildcard(a),v=_interopRequireWildcard(r),m=_interopRequireDefault(n),F=_interopRequireDefault(e),b=_interopRequireDefault(o),_=_interopRequireDefault(u),y=_interopRequireDefault(l),w=_interopRequireDefault(i),q=_interopRequireDefault(s),P=_interopRequireDefault(c),z=_interopRequireDefault(M),R=_interopRequireDefault(f),O=_interopRequireDefault(h),A=_interopRequireDefault(d),E=_interopRequireDefault(x),L=_interopRequireDefault(S),g=_interopRequireDefault(I),N=Object.assign||function(t){for(var a=1;a<arguments.length;a++){var r=arguments[a];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Y=[0,0,0],j=[1,0,0],T=[0,1,0],V=[0,0,1],W=[-1,0,0],Z=[0,-1,0],X=[0,0,-1],U={ORIGIN:Y,X_AXIS:j,Y_AXIS:T,Z_AXIS:V,NX_AXIS:W,NY_AXIS:Z,NZ_AXIS:X};t.exports=N({intersectLinePlane:m.default,intersectLineLine:F.default,distBetweenLines:b.default,distBetweenPoints:_.default,projVecVec:y.default,projPointPlane:w.default,pointOnLine:q.default,pointOnSegment:P.default,pointOnSegmentStrict:z.default,coplanar:R.default,planeCoef:O.default,view2world:A.default,world2view:E.default,sph2cart:L.default,cart2sph:g.default,DCM:v,eq:p.eq,eql:p.eql,sub:p.sub,scale:p.scale,dot:p.dot,cross:p.cross,norm:p.norm,isZeroVec:p.isZeroVec,isParallel:p.isParallel,sameDir:p.sameDir},U,{quat:D.quat,vec3:D.vec3,vec4:D.vec4,mat3:D.mat3,mat4:D.mat4})})},function(t,a,r){var n,e,o;!function(u,l){e=[a,r(2)],n=l,o="function"==typeof n?n.apply(a,e):n,!(void 0!==o&&(t.exports=o))}(this,function(t,a){"use strict";function eq(t,a){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r;return Math.abs(t-a)<n}function eql(t,a){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r;return eq(t[0],a[0],n)&&eq(t[1],a[1],n)&&eq(t[2],a[2],n)}function mag(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])}function add(){return a.vec3.add.apply(a.vec3,arguments)}function sub(){return a.vec3.sub.apply(a.vec3,arguments)}function mul(){return a.vec3.scale.apply(a.vec3,arguments)}function scale(){return a.vec3.scale.apply(a.vec3,arguments)}function dot(){return a.vec3.dot.apply(a.vec3,arguments)}function cross(){return a.vec3.cross.apply(a.vec3,arguments)}function norm(){return a.vec3.normalize.apply(a.vec3,arguments)}function isZeroVec(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r;return eql(t,[0,0,0],a)}function isParallel(t,a){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r;return isZeroVec(cross([],t,a),n)}function sameDir(t,a){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r;if(isZeroVec(a)||isZeroVec(t))throw"Error";return eql(norm([],t),norm([],a),n)}Object.defineProperty(t,"__esModule",{value:!0}),t.eq=eq,t.eql=eql,t.mag=mag,t.add=add,t.sub=sub,t.mul=mul,t.scale=scale,t.dot=dot,t.cross=cross,t.norm=norm,t.isZeroVec=isZeroVec,t.isParallel=isParallel,t.sameDir=sameDir;var r=1e-6})},function(t,a,r){var n,e,o;!function(u,l){e=[t,r(3)],n=l,o="function"==typeof n?n.apply(a,e):n,!(void 0!==o&&(t.exports=o))}(this,function(t,a){"use strict";t.exports={quat:a.quat,vec3:a.vec3,vec4:a.vec4,mat3:a.mat3,mat4:a.mat4}})},function(t,a,r){a.glMatrix=r(4),a.mat2=r(5),a.mat2d=r(6),a.mat3=r(7),a.mat4=r(8),a.quat=r(9),a.vec2=r(12),a.vec3=r(10),a.vec4=r(11)},function(t,a){var r={};r.EPSILON=1e-6,r.ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,r.RANDOM=Math.random,r.ENABLE_SIMD=!1,r.SIMD_AVAILABLE=r.ARRAY_TYPE===Float32Array&&"SIMD"in this,r.USE_SIMD=r.ENABLE_SIMD&&r.SIMD_AVAILABLE,r.setMatrixArrayType=function(t){r.ARRAY_TYPE=t};var n=Math.PI/180;r.toRadian=function(t){return t*n},r.equals=function(t,a){return Math.abs(t-a)<=r.EPSILON*Math.max(1,Math.abs(t),Math.abs(a))},t.exports=r},function(t,a,r){var n=r(4),e={};e.create=function(){var t=new n.ARRAY_TYPE(4);return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},e.clone=function(t){var a=new n.ARRAY_TYPE(4);return a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=t[3],a},e.copy=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},e.fromValues=function(t,a,r,e){var o=new n.ARRAY_TYPE(4);return o[0]=t,o[1]=a,o[2]=r,o[3]=e,o},e.set=function(t,a,r,n,e){return t[0]=a,t[1]=r,t[2]=n,t[3]=e,t},e.transpose=function(t,a){if(t===a){var r=a[1];t[1]=a[2],t[2]=r}else t[0]=a[0],t[1]=a[2],t[2]=a[1],t[3]=a[3];return t},e.invert=function(t,a){var r=a[0],n=a[1],e=a[2],o=a[3],u=r*o-e*n;return u?(u=1/u,t[0]=o*u,t[1]=-n*u,t[2]=-e*u,t[3]=r*u,t):null},e.adjoint=function(t,a){var r=a[0];return t[0]=a[3],t[1]=-a[1],t[2]=-a[2],t[3]=r,t},e.determinant=function(t){return t[0]*t[3]-t[2]*t[1]},e.multiply=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=a[3],l=r[0],i=r[1],s=r[2],c=r[3];return t[0]=n*l+o*i,t[1]=e*l+u*i,t[2]=n*s+o*c,t[3]=e*s+u*c,t},e.mul=e.multiply,e.rotate=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=a[3],l=Math.sin(r),i=Math.cos(r);return t[0]=n*i+o*l,t[1]=e*i+u*l,t[2]=n*-l+o*i,t[3]=e*-l+u*i,t},e.scale=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=a[3],l=r[0],i=r[1];return t[0]=n*l,t[1]=e*l,t[2]=o*i,t[3]=u*i,t},e.fromRotation=function(t,a){var r=Math.sin(a),n=Math.cos(a);return t[0]=n,t[1]=r,t[2]=-r,t[3]=n,t},e.fromScaling=function(t,a){return t[0]=a[0],t[1]=0,t[2]=0,t[3]=a[1],t},e.str=function(t){return"mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},e.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))},e.LDU=function(t,a,r,n){return t[2]=n[2]/n[0],r[0]=n[0],r[1]=n[1],r[3]=n[3]-t[2]*r[1],[t,a,r]},e.add=function(t,a,r){return t[0]=a[0]+r[0],t[1]=a[1]+r[1],t[2]=a[2]+r[2],t[3]=a[3]+r[3],t},e.subtract=function(t,a,r){return t[0]=a[0]-r[0],t[1]=a[1]-r[1],t[2]=a[2]-r[2],t[3]=a[3]-r[3],t},e.sub=e.subtract,e.exactEquals=function(t,a){return t[0]===a[0]&&t[1]===a[1]&&t[2]===a[2]&&t[3]===a[3]},e.equals=function(t,a){var r=t[0],e=t[1],o=t[2],u=t[3],l=a[0],i=a[1],s=a[2],c=a[3];return Math.abs(r-l)<=n.EPSILON*Math.max(1,Math.abs(r),Math.abs(l))&&Math.abs(e-i)<=n.EPSILON*Math.max(1,Math.abs(e),Math.abs(i))&&Math.abs(o-s)<=n.EPSILON*Math.max(1,Math.abs(o),Math.abs(s))&&Math.abs(u-c)<=n.EPSILON*Math.max(1,Math.abs(u),Math.abs(c))},e.multiplyScalar=function(t,a,r){return t[0]=a[0]*r,t[1]=a[1]*r,t[2]=a[2]*r,t[3]=a[3]*r,t},e.multiplyScalarAndAdd=function(t,a,r,n){return t[0]=a[0]+r[0]*n,t[1]=a[1]+r[1]*n,t[2]=a[2]+r[2]*n,t[3]=a[3]+r[3]*n,t},t.exports=e},function(t,a,r){var n=r(4),e={};e.create=function(){var t=new n.ARRAY_TYPE(6);return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},e.clone=function(t){var a=new n.ARRAY_TYPE(6);return a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=t[3],a[4]=t[4],a[5]=t[5],a},e.copy=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[4]=a[4],t[5]=a[5],t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},e.fromValues=function(t,a,r,e,o,u){var l=new n.ARRAY_TYPE(6);return l[0]=t,l[1]=a,l[2]=r,l[3]=e,l[4]=o,l[5]=u,l},e.set=function(t,a,r,n,e,o,u){return t[0]=a,t[1]=r,t[2]=n,t[3]=e,t[4]=o,t[5]=u,t},e.invert=function(t,a){var r=a[0],n=a[1],e=a[2],o=a[3],u=a[4],l=a[5],i=r*o-n*e;return i?(i=1/i,t[0]=o*i,t[1]=-n*i,t[2]=-e*i,t[3]=r*i,t[4]=(e*l-o*u)*i,t[5]=(n*u-r*l)*i,t):null},e.determinant=function(t){return t[0]*t[3]-t[1]*t[2]},e.multiply=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=a[3],l=a[4],i=a[5],s=r[0],c=r[1],M=r[2],f=r[3],h=r[4],d=r[5];return t[0]=n*s+o*c,t[1]=e*s+u*c,t[2]=n*M+o*f,t[3]=e*M+u*f,t[4]=n*h+o*d+l,t[5]=e*h+u*d+i,t},e.mul=e.multiply,e.rotate=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=a[3],l=a[4],i=a[5],s=Math.sin(r),c=Math.cos(r);return t[0]=n*c+o*s,t[1]=e*c+u*s,t[2]=n*-s+o*c,t[3]=e*-s+u*c,t[4]=l,t[5]=i,t},e.scale=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=a[3],l=a[4],i=a[5],s=r[0],c=r[1];return t[0]=n*s,t[1]=e*s,t[2]=o*c,t[3]=u*c,t[4]=l,t[5]=i,t},e.translate=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=a[3],l=a[4],i=a[5],s=r[0],c=r[1];return t[0]=n,t[1]=e,t[2]=o,t[3]=u,t[4]=n*s+o*c+l,t[5]=e*s+u*c+i,t},e.fromRotation=function(t,a){var r=Math.sin(a),n=Math.cos(a);return t[0]=n,t[1]=r,t[2]=-r,t[3]=n,t[4]=0,t[5]=0,t},e.fromScaling=function(t,a){return t[0]=a[0],t[1]=0,t[2]=0,t[3]=a[1],t[4]=0,t[5]=0,t},e.fromTranslation=function(t,a){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=a[0],t[5]=a[1],t},e.str=function(t){return"mat2d("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+")"},e.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)},e.add=function(t,a,r){return t[0]=a[0]+r[0],t[1]=a[1]+r[1],t[2]=a[2]+r[2],t[3]=a[3]+r[3],t[4]=a[4]+r[4],t[5]=a[5]+r[5],t},e.subtract=function(t,a,r){return t[0]=a[0]-r[0],t[1]=a[1]-r[1],t[2]=a[2]-r[2],t[3]=a[3]-r[3],t[4]=a[4]-r[4],t[5]=a[5]-r[5],t},e.sub=e.subtract,e.multiplyScalar=function(t,a,r){return t[0]=a[0]*r,t[1]=a[1]*r,t[2]=a[2]*r,t[3]=a[3]*r,t[4]=a[4]*r,t[5]=a[5]*r,t},e.multiplyScalarAndAdd=function(t,a,r,n){return t[0]=a[0]+r[0]*n,t[1]=a[1]+r[1]*n,t[2]=a[2]+r[2]*n,t[3]=a[3]+r[3]*n,t[4]=a[4]+r[4]*n,t[5]=a[5]+r[5]*n,t},e.exactEquals=function(t,a){return t[0]===a[0]&&t[1]===a[1]&&t[2]===a[2]&&t[3]===a[3]&&t[4]===a[4]&&t[5]===a[5]},e.equals=function(t,a){var r=t[0],e=t[1],o=t[2],u=t[3],l=t[4],i=t[5],s=a[0],c=a[1],M=a[2],f=a[3],h=a[4],d=a[5];return Math.abs(r-s)<=n.EPSILON*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(e-c)<=n.EPSILON*Math.max(1,Math.abs(e),Math.abs(c))&&Math.abs(o-M)<=n.EPSILON*Math.max(1,Math.abs(o),Math.abs(M))&&Math.abs(u-f)<=n.EPSILON*Math.max(1,Math.abs(u),Math.abs(f))&&Math.abs(l-h)<=n.EPSILON*Math.max(1,Math.abs(l),Math.abs(h))&&Math.abs(i-d)<=n.EPSILON*Math.max(1,Math.abs(i),Math.abs(d))},t.exports=e},function(t,a,r){var n=r(4),e={};e.create=function(){var t=new n.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},e.fromMat4=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[4],t[4]=a[5],t[5]=a[6],t[6]=a[8],t[7]=a[9],t[8]=a[10],t},e.clone=function(t){var a=new n.ARRAY_TYPE(9);return a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=t[3],a[4]=t[4],a[5]=t[5],a[6]=t[6],a[7]=t[7],a[8]=t[8],a},e.copy=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[4]=a[4],t[5]=a[5],t[6]=a[6],t[7]=a[7],t[8]=a[8],t},e.fromValues=function(t,a,r,e,o,u,l,i,s){var c=new n.ARRAY_TYPE(9);return c[0]=t,c[1]=a,c[2]=r,c[3]=e,c[4]=o,c[5]=u,c[6]=l,c[7]=i,c[8]=s,c},e.set=function(t,a,r,n,e,o,u,l,i,s){return t[0]=a,t[1]=r,t[2]=n,t[3]=e,t[4]=o,t[5]=u,t[6]=l,t[7]=i,t[8]=s,t},e.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},e.transpose=function(t,a){if(t===a){var r=a[1],n=a[2],e=a[5];t[1]=a[3],t[2]=a[6],t[3]=r,t[5]=a[7],t[6]=n,t[7]=e}else t[0]=a[0],t[1]=a[3],t[2]=a[6],t[3]=a[1],t[4]=a[4],t[5]=a[7],t[6]=a[2],t[7]=a[5],t[8]=a[8];return t},e.invert=function(t,a){var r=a[0],n=a[1],e=a[2],o=a[3],u=a[4],l=a[5],i=a[6],s=a[7],c=a[8],M=c*u-l*s,f=-c*o+l*i,h=s*o-u*i,d=r*M+n*f+e*h;return d?(d=1/d,t[0]=M*d,t[1]=(-c*n+e*s)*d,t[2]=(l*n-e*u)*d,t[3]=f*d,t[4]=(c*r-e*i)*d,t[5]=(-l*r+e*o)*d,t[6]=h*d,t[7]=(-s*r+n*i)*d,t[8]=(u*r-n*o)*d,t):null},e.adjoint=function(t,a){var r=a[0],n=a[1],e=a[2],o=a[3],u=a[4],l=a[5],i=a[6],s=a[7],c=a[8];return t[0]=u*c-l*s,t[1]=e*s-n*c,t[2]=n*l-e*u,t[3]=l*i-o*c,t[4]=r*c-e*i,t[5]=e*o-r*l,t[6]=o*s-u*i,t[7]=n*i-r*s,t[8]=r*u-n*o,t},e.determinant=function(t){var a=t[0],r=t[1],n=t[2],e=t[3],o=t[4],u=t[5],l=t[6],i=t[7],s=t[8];return a*(s*o-u*i)+r*(-s*e+u*l)+n*(i*e-o*l)},e.multiply=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=a[3],l=a[4],i=a[5],s=a[6],c=a[7],M=a[8],f=r[0],h=r[1],d=r[2],x=r[3],S=r[4],I=r[5],D=r[6],p=r[7],v=r[8];return t[0]=f*n+h*u+d*s,t[1]=f*e+h*l+d*c,t[2]=f*o+h*i+d*M,t[3]=x*n+S*u+I*s,t[4]=x*e+S*l+I*c,t[5]=x*o+S*i+I*M,t[6]=D*n+p*u+v*s,t[7]=D*e+p*l+v*c,t[8]=D*o+p*i+v*M,t},e.mul=e.multiply,e.translate=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=a[3],l=a[4],i=a[5],s=a[6],c=a[7],M=a[8],f=r[0],h=r[1];return t[0]=n,t[1]=e,t[2]=o,t[3]=u,t[4]=l,t[5]=i,t[6]=f*n+h*u+s,t[7]=f*e+h*l+c,t[8]=f*o+h*i+M,t},e.rotate=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=a[3],l=a[4],i=a[5],s=a[6],c=a[7],M=a[8],f=Math.sin(r),h=Math.cos(r);return t[0]=h*n+f*u,t[1]=h*e+f*l,t[2]=h*o+f*i,t[3]=h*u-f*n,t[4]=h*l-f*e,t[5]=h*i-f*o,t[6]=s,t[7]=c,t[8]=M,t},e.scale=function(t,a,r){var n=r[0],e=r[1];return t[0]=n*a[0],t[1]=n*a[1],t[2]=n*a[2],t[3]=e*a[3],t[4]=e*a[4],t[5]=e*a[5],t[6]=a[6],t[7]=a[7],t[8]=a[8],t},e.fromTranslation=function(t,a){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=a[0],t[7]=a[1],t[8]=1,t},e.fromRotation=function(t,a){var r=Math.sin(a),n=Math.cos(a);return t[0]=n,t[1]=r,t[2]=0,t[3]=-r,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromScaling=function(t,a){return t[0]=a[0],t[1]=0,t[2]=0,t[3]=0,t[4]=a[1],t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromMat2d=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=0,t[3]=a[2],t[4]=a[3],t[5]=0,t[6]=a[4],t[7]=a[5],t[8]=1,t},e.fromQuat=function(t,a){var r=a[0],n=a[1],e=a[2],o=a[3],u=r+r,l=n+n,i=e+e,s=r*u,c=n*u,M=n*l,f=e*u,h=e*l,d=e*i,x=o*u,S=o*l,I=o*i;return t[0]=1-M-d,t[3]=c-I,t[6]=f+S,t[1]=c+I,t[4]=1-s-d,t[7]=h-x,t[2]=f-S,t[5]=h+x,t[8]=1-s-M,t},e.normalFromMat4=function(t,a){var r=a[0],n=a[1],e=a[2],o=a[3],u=a[4],l=a[5],i=a[6],s=a[7],c=a[8],M=a[9],f=a[10],h=a[11],d=a[12],x=a[13],S=a[14],I=a[15],D=r*l-n*u,p=r*i-e*u,v=r*s-o*u,m=n*i-e*l,F=n*s-o*l,b=e*s-o*i,_=c*x-M*d,y=c*S-f*d,w=c*I-h*d,q=M*S-f*x,P=M*I-h*x,z=f*I-h*S,R=D*z-p*P+v*q+m*w-F*y+b*_;return R?(R=1/R,t[0]=(l*z-i*P+s*q)*R,t[1]=(i*w-u*z-s*y)*R,t[2]=(u*P-l*w+s*_)*R,t[3]=(e*P-n*z-o*q)*R,t[4]=(r*z-e*w+o*y)*R,t[5]=(n*w-r*P-o*_)*R,t[6]=(x*b-S*F+I*m)*R,t[7]=(S*v-d*b-I*p)*R,t[8]=(d*F-x*v+I*D)*R,t):null},e.str=function(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"},e.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))},e.add=function(t,a,r){return t[0]=a[0]+r[0],t[1]=a[1]+r[1],t[2]=a[2]+r[2],t[3]=a[3]+r[3],t[4]=a[4]+r[4],t[5]=a[5]+r[5],t[6]=a[6]+r[6],t[7]=a[7]+r[7],t[8]=a[8]+r[8],t},e.subtract=function(t,a,r){return t[0]=a[0]-r[0],t[1]=a[1]-r[1],t[2]=a[2]-r[2],t[3]=a[3]-r[3],t[4]=a[4]-r[4],t[5]=a[5]-r[5],t[6]=a[6]-r[6],t[7]=a[7]-r[7],t[8]=a[8]-r[8],t},e.sub=e.subtract,e.multiplyScalar=function(t,a,r){return t[0]=a[0]*r,t[1]=a[1]*r,t[2]=a[2]*r,t[3]=a[3]*r,t[4]=a[4]*r,t[5]=a[5]*r,t[6]=a[6]*r,t[7]=a[7]*r,t[8]=a[8]*r,t},e.multiplyScalarAndAdd=function(t,a,r,n){return t[0]=a[0]+r[0]*n,t[1]=a[1]+r[1]*n,t[2]=a[2]+r[2]*n,t[3]=a[3]+r[3]*n,t[4]=a[4]+r[4]*n,t[5]=a[5]+r[5]*n,t[6]=a[6]+r[6]*n,t[7]=a[7]+r[7]*n,t[8]=a[8]+r[8]*n,t},e.exactEquals=function(t,a){return t[0]===a[0]&&t[1]===a[1]&&t[2]===a[2]&&t[3]===a[3]&&t[4]===a[4]&&t[5]===a[5]&&t[6]===a[6]&&t[7]===a[7]&&t[8]===a[8]},e.equals=function(t,a){var r=t[0],e=t[1],o=t[2],u=t[3],l=t[4],i=t[5],s=t[6],c=t[7],M=t[8],f=a[0],h=a[1],d=a[2],x=a[3],S=a[4],I=a[5],D=t[6],p=a[7],v=a[8];return Math.abs(r-f)<=n.EPSILON*Math.max(1,Math.abs(r),Math.abs(f))&&Math.abs(e-h)<=n.EPSILON*Math.max(1,Math.abs(e),Math.abs(h))&&Math.abs(o-d)<=n.EPSILON*Math.max(1,Math.abs(o),Math.abs(d))&&Math.abs(u-x)<=n.EPSILON*Math.max(1,Math.abs(u),Math.abs(x))&&Math.abs(l-S)<=n.EPSILON*Math.max(1,Math.abs(l),Math.abs(S))&&Math.abs(i-I)<=n.EPSILON*Math.max(1,Math.abs(i),Math.abs(I))&&Math.abs(s-D)<=n.EPSILON*Math.max(1,Math.abs(s),Math.abs(D))&&Math.abs(c-p)<=n.EPSILON*Math.max(1,Math.abs(c),Math.abs(p))&&Math.abs(M-v)<=n.EPSILON*Math.max(1,Math.abs(M),Math.abs(v))},t.exports=e},function(t,a,r){var n=r(4),e={scalar:{},SIMD:{}};e.create=function(){var t=new n.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},e.clone=function(t){var a=new n.ARRAY_TYPE(16);return a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=t[3],a[4]=t[4],a[5]=t[5],a[6]=t[6],a[7]=t[7],a[8]=t[8],a[9]=t[9],a[10]=t[10],a[11]=t[11],a[12]=t[12],a[13]=t[13],a[14]=t[14],a[15]=t[15],a},e.copy=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[4]=a[4],t[5]=a[5],t[6]=a[6],t[7]=a[7],t[8]=a[8],t[9]=a[9],t[10]=a[10],t[11]=a[11],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15],t},e.fromValues=function(t,a,r,e,o,u,l,i,s,c,M,f,h,d,x,S){var I=new n.ARRAY_TYPE(16);return I[0]=t,I[1]=a,I[2]=r,I[3]=e,I[4]=o,I[5]=u,I[6]=l,I[7]=i,I[8]=s,I[9]=c,I[10]=M,I[11]=f,I[12]=h,I[13]=d,I[14]=x,I[15]=S,I},e.set=function(t,a,r,n,e,o,u,l,i,s,c,M,f,h,d,x,S){return t[0]=a,t[1]=r,t[2]=n,t[3]=e,t[4]=o,t[5]=u,t[6]=l,t[7]=i,t[8]=s,t[9]=c,t[10]=M,t[11]=f,t[12]=h,t[13]=d,t[14]=x,t[15]=S,t},e.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},e.scalar.transpose=function(t,a){if(t===a){var r=a[1],n=a[2],e=a[3],o=a[6],u=a[7],l=a[11];t[1]=a[4],t[2]=a[8],t[3]=a[12],t[4]=r,t[6]=a[9],t[7]=a[13],t[8]=n,t[9]=o,t[11]=a[14],t[12]=e,t[13]=u,t[14]=l}else t[0]=a[0],t[1]=a[4],t[2]=a[8],t[3]=a[12],t[4]=a[1],t[5]=a[5],t[6]=a[9],t[7]=a[13],t[8]=a[2],t[9]=a[6],t[10]=a[10],t[11]=a[14],t[12]=a[3],t[13]=a[7],t[14]=a[11],t[15]=a[15];return t},e.SIMD.transpose=function(t,a){var r,n,e,o,u,l,i,s,c,M;return r=SIMD.Float32x4.load(a,0),n=SIMD.Float32x4.load(a,4),e=SIMD.Float32x4.load(a,8),o=SIMD.Float32x4.load(a,12),u=SIMD.Float32x4.shuffle(r,n,0,1,4,5),l=SIMD.Float32x4.shuffle(e,o,0,1,4,5),i=SIMD.Float32x4.shuffle(u,l,0,2,4,6),s=SIMD.Float32x4.shuffle(u,l,1,3,5,7),SIMD.Float32x4.store(t,0,i),SIMD.Float32x4.store(t,4,s),u=SIMD.Float32x4.shuffle(r,n,2,3,6,7),l=SIMD.Float32x4.shuffle(e,o,2,3,6,7),c=SIMD.Float32x4.shuffle(u,l,0,2,4,6),M=SIMD.Float32x4.shuffle(u,l,1,3,5,7),SIMD.Float32x4.store(t,8,c),SIMD.Float32x4.store(t,12,M),t},e.transpose=n.USE_SIMD?e.SIMD.transpose:e.scalar.transpose,e.scalar.invert=function(t,a){var r=a[0],n=a[1],e=a[2],o=a[3],u=a[4],l=a[5],i=a[6],s=a[7],c=a[8],M=a[9],f=a[10],h=a[11],d=a[12],x=a[13],S=a[14],I=a[15],D=r*l-n*u,p=r*i-e*u,v=r*s-o*u,m=n*i-e*l,F=n*s-o*l,b=e*s-o*i,_=c*x-M*d,y=c*S-f*d,w=c*I-h*d,q=M*S-f*x,P=M*I-h*x,z=f*I-h*S,R=D*z-p*P+v*q+m*w-F*y+b*_;return R?(R=1/R,t[0]=(l*z-i*P+s*q)*R,t[1]=(e*P-n*z-o*q)*R,t[2]=(x*b-S*F+I*m)*R,t[3]=(f*F-M*b-h*m)*R,t[4]=(i*w-u*z-s*y)*R,t[5]=(r*z-e*w+o*y)*R,t[6]=(S*v-d*b-I*p)*R,t[7]=(c*b-f*v+h*p)*R,t[8]=(u*P-l*w+s*_)*R,t[9]=(n*w-r*P-o*_)*R,t[10]=(d*F-x*v+I*D)*R,t[11]=(M*v-c*F-h*D)*R,t[12]=(l*y-u*q-i*_)*R,t[13]=(r*q-n*y+e*_)*R,t[14]=(x*p-d*m-S*D)*R,t[15]=(c*m-M*p+f*D)*R,t):null},e.SIMD.invert=function(t,a){var r,n,e,o,u,l,i,s,c,M,f=SIMD.Float32x4.load(a,0),h=SIMD.Float32x4.load(a,4),d=SIMD.Float32x4.load(a,8),x=SIMD.Float32x4.load(a,12);return u=SIMD.Float32x4.shuffle(f,h,0,1,4,5),n=SIMD.Float32x4.shuffle(d,x,0,1,4,5),r=SIMD.Float32x4.shuffle(u,n,0,2,4,6),n=SIMD.Float32x4.shuffle(n,u,1,3,5,7),u=SIMD.Float32x4.shuffle(f,h,2,3,6,7),o=SIMD.Float32x4.shuffle(d,x,2,3,6,7),e=SIMD.Float32x4.shuffle(u,o,0,2,4,6),o=SIMD.Float32x4.shuffle(o,u,1,3,5,7),u=SIMD.Float32x4.mul(e,o),u=SIMD.Float32x4.swizzle(u,1,0,3,2),l=SIMD.Float32x4.mul(n,u),i=SIMD.Float32x4.mul(r,u),u=SIMD.Float32x4.swizzle(u,2,3,0,1),l=SIMD.Float32x4.sub(SIMD.Float32x4.mul(n,u),l),i=SIMD.Float32x4.sub(SIMD.Float32x4.mul(r,u),i),i=SIMD.Float32x4.swizzle(i,2,3,0,1),u=SIMD.Float32x4.mul(n,e),u=SIMD.Float32x4.swizzle(u,1,0,3,2),l=SIMD.Float32x4.add(SIMD.Float32x4.mul(o,u),l),c=SIMD.Float32x4.mul(r,u),u=SIMD.Float32x4.swizzle(u,2,3,0,1),l=SIMD.Float32x4.sub(l,SIMD.Float32x4.mul(o,u)),c=SIMD.Float32x4.sub(SIMD.Float32x4.mul(r,u),c),c=SIMD.Float32x4.swizzle(c,2,3,0,1),u=SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(n,2,3,0,1),o),u=SIMD.Float32x4.swizzle(u,1,0,3,2),e=SIMD.Float32x4.swizzle(e,2,3,0,1),l=SIMD.Float32x4.add(SIMD.Float32x4.mul(e,u),l),s=SIMD.Float32x4.mul(r,u),u=SIMD.Float32x4.swizzle(u,2,3,0,1),l=SIMD.Float32x4.sub(l,SIMD.Float32x4.mul(e,u)),s=SIMD.Float32x4.sub(SIMD.Float32x4.mul(r,u),s),s=SIMD.Float32x4.swizzle(s,2,3,0,1),u=SIMD.Float32x4.mul(r,n),u=SIMD.Float32x4.swizzle(u,1,0,3,2),s=SIMD.Float32x4.add(SIMD.Float32x4.mul(o,u),s),c=SIMD.Float32x4.sub(SIMD.Float32x4.mul(e,u),c),u=SIMD.Float32x4.swizzle(u,2,3,0,1),s=SIMD.Float32x4.sub(SIMD.Float32x4.mul(o,u),s),c=SIMD.Float32x4.sub(c,SIMD.Float32x4.mul(e,u)),u=SIMD.Float32x4.mul(r,o),u=SIMD.Float32x4.swizzle(u,1,0,3,2),i=SIMD.Float32x4.sub(i,SIMD.Float32x4.mul(e,u)),s=SIMD.Float32x4.add(SIMD.Float32x4.mul(n,u),s),u=SIMD.Float32x4.swizzle(u,2,3,0,1),i=SIMD.Float32x4.add(SIMD.Float32x4.mul(e,u),i),s=SIMD.Float32x4.sub(s,SIMD.Float32x4.mul(n,u)),u=SIMD.Float32x4.mul(r,e),u=SIMD.Float32x4.swizzle(u,1,0,3,2),i=SIMD.Float32x4.add(SIMD.Float32x4.mul(o,u),i),c=SIMD.Float32x4.sub(c,SIMD.Float32x4.mul(n,u)),u=SIMD.Float32x4.swizzle(u,2,3,0,1),i=SIMD.Float32x4.sub(i,SIMD.Float32x4.mul(o,u)),c=SIMD.Float32x4.add(SIMD.Float32x4.mul(n,u),c),M=SIMD.Float32x4.mul(r,l),M=SIMD.Float32x4.add(SIMD.Float32x4.swizzle(M,2,3,0,1),M),M=SIMD.Float32x4.add(SIMD.Float32x4.swizzle(M,1,0,3,2),M),u=SIMD.Float32x4.reciprocalApproximation(M),M=SIMD.Float32x4.sub(SIMD.Float32x4.add(u,u),SIMD.Float32x4.mul(M,SIMD.Float32x4.mul(u,u))),(M=SIMD.Float32x4.swizzle(M,0,0,0,0))?(SIMD.Float32x4.store(t,0,SIMD.Float32x4.mul(M,l)),SIMD.Float32x4.store(t,4,SIMD.Float32x4.mul(M,i)),SIMD.Float32x4.store(t,8,SIMD.Float32x4.mul(M,s)),SIMD.Float32x4.store(t,12,SIMD.Float32x4.mul(M,c)),t):null},e.invert=n.USE_SIMD?e.SIMD.invert:e.scalar.invert,e.scalar.adjoint=function(t,a){var r=a[0],n=a[1],e=a[2],o=a[3],u=a[4],l=a[5],i=a[6],s=a[7],c=a[8],M=a[9],f=a[10],h=a[11],d=a[12],x=a[13],S=a[14],I=a[15];return t[0]=l*(f*I-h*S)-M*(i*I-s*S)+x*(i*h-s*f),t[1]=-(n*(f*I-h*S)-M*(e*I-o*S)+x*(e*h-o*f)),t[2]=n*(i*I-s*S)-l*(e*I-o*S)+x*(e*s-o*i),t[3]=-(n*(i*h-s*f)-l*(e*h-o*f)+M*(e*s-o*i)),t[4]=-(u*(f*I-h*S)-c*(i*I-s*S)+d*(i*h-s*f)),t[5]=r*(f*I-h*S)-c*(e*I-o*S)+d*(e*h-o*f),t[6]=-(r*(i*I-s*S)-u*(e*I-o*S)+d*(e*s-o*i)),t[7]=r*(i*h-s*f)-u*(e*h-o*f)+c*(e*s-o*i),t[8]=u*(M*I-h*x)-c*(l*I-s*x)+d*(l*h-s*M),t[9]=-(r*(M*I-h*x)-c*(n*I-o*x)+d*(n*h-o*M)),t[10]=r*(l*I-s*x)-u*(n*I-o*x)+d*(n*s-o*l),t[11]=-(r*(l*h-s*M)-u*(n*h-o*M)+c*(n*s-o*l)),t[12]=-(u*(M*S-f*x)-c*(l*S-i*x)+d*(l*f-i*M)),t[13]=r*(M*S-f*x)-c*(n*S-e*x)+d*(n*f-e*M),t[14]=-(r*(l*S-i*x)-u*(n*S-e*x)+d*(n*i-e*l)),t[15]=r*(l*f-i*M)-u*(n*f-e*M)+c*(n*i-e*l),t},e.SIMD.adjoint=function(t,a){var r,n,e,o,u,l,i,s,c,M,f,h,d,r=SIMD.Float32x4.load(a,0),n=SIMD.Float32x4.load(a,4),e=SIMD.Float32x4.load(a,8),o=SIMD.Float32x4.load(a,12);return c=SIMD.Float32x4.shuffle(r,n,0,1,4,5),l=SIMD.Float32x4.shuffle(e,o,0,1,4,5),u=SIMD.Float32x4.shuffle(c,l,0,2,4,6),l=SIMD.Float32x4.shuffle(l,c,1,3,5,7),c=SIMD.Float32x4.shuffle(r,n,2,3,6,7),s=SIMD.Float32x4.shuffle(e,o,2,3,6,7),i=SIMD.Float32x4.shuffle(c,s,0,2,4,6),s=SIMD.Float32x4.shuffle(s,c,1,3,5,7),c=SIMD.Float32x4.mul(i,s),c=SIMD.Float32x4.swizzle(c,1,0,3,2),M=SIMD.Float32x4.mul(l,c),f=SIMD.Float32x4.mul(u,c),c=SIMD.Float32x4.swizzle(c,2,3,0,1),M=SIMD.Float32x4.sub(SIMD.Float32x4.mul(l,c),M),f=SIMD.Float32x4.sub(SIMD.Float32x4.mul(u,c),f),f=SIMD.Float32x4.swizzle(f,2,3,0,1),c=SIMD.Float32x4.mul(l,i),c=SIMD.Float32x4.swizzle(c,1,0,3,2),M=SIMD.Float32x4.add(SIMD.Float32x4.mul(s,c),M),d=SIMD.Float32x4.mul(u,c),c=SIMD.Float32x4.swizzle(c,2,3,0,1),M=SIMD.Float32x4.sub(M,SIMD.Float32x4.mul(s,c)),d=SIMD.Float32x4.sub(SIMD.Float32x4.mul(u,c),d),d=SIMD.Float32x4.swizzle(d,2,3,0,1),c=SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(l,2,3,0,1),s),c=SIMD.Float32x4.swizzle(c,1,0,3,2),i=SIMD.Float32x4.swizzle(i,2,3,0,1),M=SIMD.Float32x4.add(SIMD.Float32x4.mul(i,c),M),h=SIMD.Float32x4.mul(u,c),c=SIMD.Float32x4.swizzle(c,2,3,0,1),M=SIMD.Float32x4.sub(M,SIMD.Float32x4.mul(i,c)),h=SIMD.Float32x4.sub(SIMD.Float32x4.mul(u,c),h),h=SIMD.Float32x4.swizzle(h,2,3,0,1),c=SIMD.Float32x4.mul(u,l),c=SIMD.Float32x4.swizzle(c,1,0,3,2),h=SIMD.Float32x4.add(SIMD.Float32x4.mul(s,c),h),d=SIMD.Float32x4.sub(SIMD.Float32x4.mul(i,c),d),c=SIMD.Float32x4.swizzle(c,2,3,0,1),h=SIMD.Float32x4.sub(SIMD.Float32x4.mul(s,c),h),d=SIMD.Float32x4.sub(d,SIMD.Float32x4.mul(i,c)),c=SIMD.Float32x4.mul(u,s),c=SIMD.Float32x4.swizzle(c,1,0,3,2),f=SIMD.Float32x4.sub(f,SIMD.Float32x4.mul(i,c)),h=SIMD.Float32x4.add(SIMD.Float32x4.mul(l,c),h),c=SIMD.Float32x4.swizzle(c,2,3,0,1),f=SIMD.Float32x4.add(SIMD.Float32x4.mul(i,c),f),h=SIMD.Float32x4.sub(h,SIMD.Float32x4.mul(l,c)),c=SIMD.Float32x4.mul(u,i),c=SIMD.Float32x4.swizzle(c,1,0,3,2),f=SIMD.Float32x4.add(SIMD.Float32x4.mul(s,c),f),d=SIMD.Float32x4.sub(d,SIMD.Float32x4.mul(l,c)),c=SIMD.Float32x4.swizzle(c,2,3,0,1),f=SIMD.Float32x4.sub(f,SIMD.Float32x4.mul(s,c)),d=SIMD.Float32x4.add(SIMD.Float32x4.mul(l,c),d),SIMD.Float32x4.store(t,0,M),SIMD.Float32x4.store(t,4,f),SIMD.Float32x4.store(t,8,h),SIMD.Float32x4.store(t,12,d),t},e.adjoint=n.USE_SIMD?e.SIMD.adjoint:e.scalar.adjoint,e.determinant=function(t){var a=t[0],r=t[1],n=t[2],e=t[3],o=t[4],u=t[5],l=t[6],i=t[7],s=t[8],c=t[9],M=t[10],f=t[11],h=t[12],d=t[13],x=t[14],S=t[15],I=a*u-r*o,D=a*l-n*o,p=a*i-e*o,v=r*l-n*u,m=r*i-e*u,F=n*i-e*l,b=s*d-c*h,_=s*x-M*h,y=s*S-f*h,w=c*x-M*d,q=c*S-f*d,P=M*S-f*x;return I*P-D*q+p*w+v*y-m*_+F*b},e.SIMD.multiply=function(t,a,r){var n=SIMD.Float32x4.load(a,0),e=SIMD.Float32x4.load(a,4),o=SIMD.Float32x4.load(a,8),u=SIMD.Float32x4.load(a,12),l=SIMD.Float32x4.load(r,0),i=SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(l,0,0,0,0),n),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(l,1,1,1,1),e),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(l,2,2,2,2),o),SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(l,3,3,3,3),u))));SIMD.Float32x4.store(t,0,i);var s=SIMD.Float32x4.load(r,4),c=SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(s,0,0,0,0),n),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(s,1,1,1,1),e),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(s,2,2,2,2),o),SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(s,3,3,3,3),u))));SIMD.Float32x4.store(t,4,c);var M=SIMD.Float32x4.load(r,8),f=SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(M,0,0,0,0),n),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(M,1,1,1,1),e),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(M,2,2,2,2),o),SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(M,3,3,3,3),u))));SIMD.Float32x4.store(t,8,f);var h=SIMD.Float32x4.load(r,12),d=SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(h,0,0,0,0),n),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(h,1,1,1,1),e),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(h,2,2,2,2),o),SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(h,3,3,3,3),u))));return SIMD.Float32x4.store(t,12,d),t},e.scalar.multiply=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=a[3],l=a[4],i=a[5],s=a[6],c=a[7],M=a[8],f=a[9],h=a[10],d=a[11],x=a[12],S=a[13],I=a[14],D=a[15],p=r[0],v=r[1],m=r[2],F=r[3];return t[0]=p*n+v*l+m*M+F*x,t[1]=p*e+v*i+m*f+F*S,t[2]=p*o+v*s+m*h+F*I,t[3]=p*u+v*c+m*d+F*D,p=r[4],v=r[5],m=r[6],F=r[7],t[4]=p*n+v*l+m*M+F*x,t[5]=p*e+v*i+m*f+F*S,t[6]=p*o+v*s+m*h+F*I,t[7]=p*u+v*c+m*d+F*D,p=r[8],v=r[9],m=r[10],F=r[11],t[8]=p*n+v*l+m*M+F*x,t[9]=p*e+v*i+m*f+F*S,t[10]=p*o+v*s+m*h+F*I,t[11]=p*u+v*c+m*d+F*D,p=r[12],v=r[13],m=r[14],F=r[15],t[12]=p*n+v*l+m*M+F*x,t[13]=p*e+v*i+m*f+F*S,t[14]=p*o+v*s+m*h+F*I,t[15]=p*u+v*c+m*d+F*D,t},e.multiply=n.USE_SIMD?e.SIMD.multiply:e.scalar.multiply,e.mul=e.multiply,e.scalar.translate=function(t,a,r){var n,e,o,u,l,i,s,c,M,f,h,d,x=r[0],S=r[1],I=r[2];return a===t?(t[12]=a[0]*x+a[4]*S+a[8]*I+a[12],t[13]=a[1]*x+a[5]*S+a[9]*I+a[13],t[14]=a[2]*x+a[6]*S+a[10]*I+a[14],t[15]=a[3]*x+a[7]*S+a[11]*I+a[15]):(n=a[0],e=a[1],o=a[2],u=a[3],l=a[4],i=a[5],s=a[6],c=a[7],M=a[8],f=a[9],h=a[10],d=a[11],t[0]=n,t[1]=e,t[2]=o,t[3]=u,t[4]=l,t[5]=i,t[6]=s,t[7]=c,t[8]=M,t[9]=f,t[10]=h,t[11]=d,t[12]=n*x+l*S+M*I+a[12],t[13]=e*x+i*S+f*I+a[13],t[14]=o*x+s*S+h*I+a[14],t[15]=u*x+c*S+d*I+a[15]),t},e.SIMD.translate=function(t,a,r){var n=SIMD.Float32x4.load(a,0),e=SIMD.Float32x4.load(a,4),o=SIMD.Float32x4.load(a,8),u=SIMD.Float32x4.load(a,12),l=SIMD.Float32x4(r[0],r[1],r[2],0);a!==t&&(t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[4]=a[4],t[5]=a[5],t[6]=a[6],t[7]=a[7],t[8]=a[8],t[9]=a[9],t[10]=a[10],t[11]=a[11]),n=SIMD.Float32x4.mul(n,SIMD.Float32x4.swizzle(l,0,0,0,0)),e=SIMD.Float32x4.mul(e,SIMD.Float32x4.swizzle(l,1,1,1,1)),o=SIMD.Float32x4.mul(o,SIMD.Float32x4.swizzle(l,2,2,2,2));var i=SIMD.Float32x4.add(n,SIMD.Float32x4.add(e,SIMD.Float32x4.add(o,u)));return SIMD.Float32x4.store(t,12,i),t},e.translate=n.USE_SIMD?e.SIMD.translate:e.scalar.translate,e.scalar.scale=function(t,a,r){var n=r[0],e=r[1],o=r[2];return t[0]=a[0]*n,t[1]=a[1]*n,t[2]=a[2]*n,t[3]=a[3]*n,t[4]=a[4]*e,t[5]=a[5]*e,t[6]=a[6]*e,t[7]=a[7]*e,t[8]=a[8]*o,t[9]=a[9]*o,t[10]=a[10]*o,t[11]=a[11]*o,t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15],t},e.SIMD.scale=function(t,a,r){var n,e,o,u=SIMD.Float32x4(r[0],r[1],r[2],0);return n=SIMD.Float32x4.load(a,0),SIMD.Float32x4.store(t,0,SIMD.Float32x4.mul(n,SIMD.Float32x4.swizzle(u,0,0,0,0))),e=SIMD.Float32x4.load(a,4),SIMD.Float32x4.store(t,4,SIMD.Float32x4.mul(e,SIMD.Float32x4.swizzle(u,1,1,1,1))),o=SIMD.Float32x4.load(a,8),SIMD.Float32x4.store(t,8,SIMD.Float32x4.mul(o,SIMD.Float32x4.swizzle(u,2,2,2,2))),t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15],t},e.scale=n.USE_SIMD?e.SIMD.scale:e.scalar.scale,e.rotate=function(t,a,r,e){var o,u,l,i,s,c,M,f,h,d,x,S,I,D,p,v,m,F,b,_,y,w,q,P,z=e[0],R=e[1],O=e[2],A=Math.sqrt(z*z+R*R+O*O);return Math.abs(A)<n.EPSILON?null:(A=1/A,z*=A,R*=A,O*=A,o=Math.sin(r),u=Math.cos(r),l=1-u,i=a[0],s=a[1],c=a[2],M=a[3],f=a[4],h=a[5],d=a[6],x=a[7],S=a[8],I=a[9],D=a[10],p=a[11],v=z*z*l+u,m=R*z*l+O*o,F=O*z*l-R*o,b=z*R*l-O*o,_=R*R*l+u,y=O*R*l+z*o,w=z*O*l+R*o,q=R*O*l-z*o,P=O*O*l+u,t[0]=i*v+f*m+S*F,t[1]=s*v+h*m+I*F,t[2]=c*v+d*m+D*F,t[3]=M*v+x*m+p*F,t[4]=i*b+f*_+S*y,t[5]=s*b+h*_+I*y,t[6]=c*b+d*_+D*y,t[7]=M*b+x*_+p*y,t[8]=i*w+f*q+S*P,t[9]=s*w+h*q+I*P,t[10]=c*w+d*q+D*P,t[11]=M*w+x*q+p*P,a!==t&&(t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15]),t)},e.scalar.rotateX=function(t,a,r){var n=Math.sin(r),e=Math.cos(r),o=a[4],u=a[5],l=a[6],i=a[7],s=a[8],c=a[9],M=a[10],f=a[11];return a!==t&&(t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15]),t[4]=o*e+s*n,t[5]=u*e+c*n,t[6]=l*e+M*n,t[7]=i*e+f*n,t[8]=s*e-o*n,t[9]=c*e-u*n,t[10]=M*e-l*n,t[11]=f*e-i*n,t},e.SIMD.rotateX=function(t,a,r){var n=SIMD.Float32x4.splat(Math.sin(r)),e=SIMD.Float32x4.splat(Math.cos(r));a!==t&&(t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15]);var o=SIMD.Float32x4.load(a,4),u=SIMD.Float32x4.load(a,8);return SIMD.Float32x4.store(t,4,SIMD.Float32x4.add(SIMD.Float32x4.mul(o,e),SIMD.Float32x4.mul(u,n))),SIMD.Float32x4.store(t,8,SIMD.Float32x4.sub(SIMD.Float32x4.mul(u,e),SIMD.Float32x4.mul(o,n))),t},e.rotateX=n.USE_SIMD?e.SIMD.rotateX:e.scalar.rotateX,e.scalar.rotateY=function(t,a,r){var n=Math.sin(r),e=Math.cos(r),o=a[0],u=a[1],l=a[2],i=a[3],s=a[8],c=a[9],M=a[10],f=a[11];return a!==t&&(t[4]=a[4],t[5]=a[5],t[6]=a[6],t[7]=a[7],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15]),t[0]=o*e-s*n,t[1]=u*e-c*n,t[2]=l*e-M*n,t[3]=i*e-f*n,t[8]=o*n+s*e,t[9]=u*n+c*e,t[10]=l*n+M*e,t[11]=i*n+f*e,t},e.SIMD.rotateY=function(t,a,r){var n=SIMD.Float32x4.splat(Math.sin(r)),e=SIMD.Float32x4.splat(Math.cos(r));a!==t&&(t[4]=a[4],t[5]=a[5],t[6]=a[6],t[7]=a[7],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15]);
var o=SIMD.Float32x4.load(a,0),u=SIMD.Float32x4.load(a,8);return SIMD.Float32x4.store(t,0,SIMD.Float32x4.sub(SIMD.Float32x4.mul(o,e),SIMD.Float32x4.mul(u,n))),SIMD.Float32x4.store(t,8,SIMD.Float32x4.add(SIMD.Float32x4.mul(o,n),SIMD.Float32x4.mul(u,e))),t},e.rotateY=n.USE_SIMD?e.SIMD.rotateY:e.scalar.rotateY,e.scalar.rotateZ=function(t,a,r){var n=Math.sin(r),e=Math.cos(r),o=a[0],u=a[1],l=a[2],i=a[3],s=a[4],c=a[5],M=a[6],f=a[7];return a!==t&&(t[8]=a[8],t[9]=a[9],t[10]=a[10],t[11]=a[11],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15]),t[0]=o*e+s*n,t[1]=u*e+c*n,t[2]=l*e+M*n,t[3]=i*e+f*n,t[4]=s*e-o*n,t[5]=c*e-u*n,t[6]=M*e-l*n,t[7]=f*e-i*n,t},e.SIMD.rotateZ=function(t,a,r){var n=SIMD.Float32x4.splat(Math.sin(r)),e=SIMD.Float32x4.splat(Math.cos(r));a!==t&&(t[8]=a[8],t[9]=a[9],t[10]=a[10],t[11]=a[11],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15]);var o=SIMD.Float32x4.load(a,0),u=SIMD.Float32x4.load(a,4);return SIMD.Float32x4.store(t,0,SIMD.Float32x4.add(SIMD.Float32x4.mul(o,e),SIMD.Float32x4.mul(u,n))),SIMD.Float32x4.store(t,4,SIMD.Float32x4.sub(SIMD.Float32x4.mul(u,e),SIMD.Float32x4.mul(o,n))),t},e.rotateZ=n.USE_SIMD?e.SIMD.rotateZ:e.scalar.rotateZ,e.fromTranslation=function(t,a){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]=a[0],t[13]=a[1],t[14]=a[2],t[15]=1,t},e.fromScaling=function(t,a){return t[0]=a[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=a[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.fromRotation=function(t,a,r){var e,o,u,l=r[0],i=r[1],s=r[2],c=Math.sqrt(l*l+i*i+s*s);return Math.abs(c)<n.EPSILON?null:(c=1/c,l*=c,i*=c,s*=c,e=Math.sin(a),o=Math.cos(a),u=1-o,t[0]=l*l*u+o,t[1]=i*l*u+s*e,t[2]=s*l*u-i*e,t[3]=0,t[4]=l*i*u-s*e,t[5]=i*i*u+o,t[6]=s*i*u+l*e,t[7]=0,t[8]=l*s*u+i*e,t[9]=i*s*u-l*e,t[10]=s*s*u+o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)},e.fromXRotation=function(t,a){var r=Math.sin(a),n=Math.cos(a);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.fromYRotation=function(t,a){var r=Math.sin(a),n=Math.cos(a);return t[0]=n,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.fromZRotation=function(t,a){var r=Math.sin(a),n=Math.cos(a);return t[0]=n,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=n,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},e.fromRotationTranslation=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=a[3],l=n+n,i=e+e,s=o+o,c=n*l,M=n*i,f=n*s,h=e*i,d=e*s,x=o*s,S=u*l,I=u*i,D=u*s;return t[0]=1-(h+x),t[1]=M+D,t[2]=f-I,t[3]=0,t[4]=M-D,t[5]=1-(c+x),t[6]=d+S,t[7]=0,t[8]=f+I,t[9]=d-S,t[10]=1-(c+h),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t},e.getTranslation=function(t,a){return t[0]=a[12],t[1]=a[13],t[2]=a[14],t},e.getRotation=function(t,a){var r=a[0]+a[5]+a[10],n=0;return r>0?(n=2*Math.sqrt(r+1),t[3]=.25*n,t[0]=(a[6]-a[9])/n,t[1]=(a[8]-a[2])/n,t[2]=(a[1]-a[4])/n):a[0]>a[5]&a[0]>a[10]?(n=2*Math.sqrt(1+a[0]-a[5]-a[10]),t[3]=(a[6]-a[9])/n,t[0]=.25*n,t[1]=(a[1]+a[4])/n,t[2]=(a[8]+a[2])/n):a[5]>a[10]?(n=2*Math.sqrt(1+a[5]-a[0]-a[10]),t[3]=(a[8]-a[2])/n,t[0]=(a[1]+a[4])/n,t[1]=.25*n,t[2]=(a[6]+a[9])/n):(n=2*Math.sqrt(1+a[10]-a[0]-a[5]),t[3]=(a[1]-a[4])/n,t[0]=(a[8]+a[2])/n,t[1]=(a[6]+a[9])/n,t[2]=.25*n),t},e.fromRotationTranslationScale=function(t,a,r,n){var e=a[0],o=a[1],u=a[2],l=a[3],i=e+e,s=o+o,c=u+u,M=e*i,f=e*s,h=e*c,d=o*s,x=o*c,S=u*c,I=l*i,D=l*s,p=l*c,v=n[0],m=n[1],F=n[2];return t[0]=(1-(d+S))*v,t[1]=(f+p)*v,t[2]=(h-D)*v,t[3]=0,t[4]=(f-p)*m,t[5]=(1-(M+S))*m,t[6]=(x+I)*m,t[7]=0,t[8]=(h+D)*F,t[9]=(x-I)*F,t[10]=(1-(M+d))*F,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t},e.fromRotationTranslationScaleOrigin=function(t,a,r,n,e){var o=a[0],u=a[1],l=a[2],i=a[3],s=o+o,c=u+u,M=l+l,f=o*s,h=o*c,d=o*M,x=u*c,S=u*M,I=l*M,D=i*s,p=i*c,v=i*M,m=n[0],F=n[1],b=n[2],_=e[0],y=e[1],w=e[2];return t[0]=(1-(x+I))*m,t[1]=(h+v)*m,t[2]=(d-p)*m,t[3]=0,t[4]=(h-v)*F,t[5]=(1-(f+I))*F,t[6]=(S+D)*F,t[7]=0,t[8]=(d+p)*b,t[9]=(S-D)*b,t[10]=(1-(f+x))*b,t[11]=0,t[12]=r[0]+_-(t[0]*_+t[4]*y+t[8]*w),t[13]=r[1]+y-(t[1]*_+t[5]*y+t[9]*w),t[14]=r[2]+w-(t[2]*_+t[6]*y+t[10]*w),t[15]=1,t},e.fromQuat=function(t,a){var r=a[0],n=a[1],e=a[2],o=a[3],u=r+r,l=n+n,i=e+e,s=r*u,c=n*u,M=n*l,f=e*u,h=e*l,d=e*i,x=o*u,S=o*l,I=o*i;return t[0]=1-M-d,t[1]=c+I,t[2]=f-S,t[3]=0,t[4]=c-I,t[5]=1-s-d,t[6]=h+x,t[7]=0,t[8]=f+S,t[9]=h-x,t[10]=1-s-M,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.frustum=function(t,a,r,n,e,o,u){var l=1/(r-a),i=1/(e-n),s=1/(o-u);return t[0]=2*o*l,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*o*i,t[6]=0,t[7]=0,t[8]=(r+a)*l,t[9]=(e+n)*i,t[10]=(u+o)*s,t[11]=-1,t[12]=0,t[13]=0,t[14]=u*o*2*s,t[15]=0,t},e.perspective=function(t,a,r,n,e){var o=1/Math.tan(a/2),u=1/(n-e);return t[0]=o/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=o,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=(e+n)*u,t[11]=-1,t[12]=0,t[13]=0,t[14]=2*e*n*u,t[15]=0,t},e.perspectiveFromFieldOfView=function(t,a,r,n){var e=Math.tan(a.upDegrees*Math.PI/180),o=Math.tan(a.downDegrees*Math.PI/180),u=Math.tan(a.leftDegrees*Math.PI/180),l=Math.tan(a.rightDegrees*Math.PI/180),i=2/(u+l),s=2/(e+o);return t[0]=i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=-((u-l)*i*.5),t[9]=(e-o)*s*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t},e.ortho=function(t,a,r,n,e,o,u){var l=1/(a-r),i=1/(n-e),s=1/(o-u);return t[0]=-2*l,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*i,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*s,t[11]=0,t[12]=(a+r)*l,t[13]=(e+n)*i,t[14]=(u+o)*s,t[15]=1,t},e.lookAt=function(t,a,r,o){var u,l,i,s,c,M,f,h,d,x,S=a[0],I=a[1],D=a[2],p=o[0],v=o[1],m=o[2],F=r[0],b=r[1],_=r[2];return Math.abs(S-F)<n.EPSILON&&Math.abs(I-b)<n.EPSILON&&Math.abs(D-_)<n.EPSILON?e.identity(t):(f=S-F,h=I-b,d=D-_,x=1/Math.sqrt(f*f+h*h+d*d),f*=x,h*=x,d*=x,u=v*d-m*h,l=m*f-p*d,i=p*h-v*f,x=Math.sqrt(u*u+l*l+i*i),x?(x=1/x,u*=x,l*=x,i*=x):(u=0,l=0,i=0),s=h*i-d*l,c=d*u-f*i,M=f*l-h*u,x=Math.sqrt(s*s+c*c+M*M),x?(x=1/x,s*=x,c*=x,M*=x):(s=0,c=0,M=0),t[0]=u,t[1]=s,t[2]=f,t[3]=0,t[4]=l,t[5]=c,t[6]=h,t[7]=0,t[8]=i,t[9]=M,t[10]=d,t[11]=0,t[12]=-(u*S+l*I+i*D),t[13]=-(s*S+c*I+M*D),t[14]=-(f*S+h*I+d*D),t[15]=1,t)},e.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]+")"},e.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))},e.add=function(t,a,r){return t[0]=a[0]+r[0],t[1]=a[1]+r[1],t[2]=a[2]+r[2],t[3]=a[3]+r[3],t[4]=a[4]+r[4],t[5]=a[5]+r[5],t[6]=a[6]+r[6],t[7]=a[7]+r[7],t[8]=a[8]+r[8],t[9]=a[9]+r[9],t[10]=a[10]+r[10],t[11]=a[11]+r[11],t[12]=a[12]+r[12],t[13]=a[13]+r[13],t[14]=a[14]+r[14],t[15]=a[15]+r[15],t},e.subtract=function(t,a,r){return t[0]=a[0]-r[0],t[1]=a[1]-r[1],t[2]=a[2]-r[2],t[3]=a[3]-r[3],t[4]=a[4]-r[4],t[5]=a[5]-r[5],t[6]=a[6]-r[6],t[7]=a[7]-r[7],t[8]=a[8]-r[8],t[9]=a[9]-r[9],t[10]=a[10]-r[10],t[11]=a[11]-r[11],t[12]=a[12]-r[12],t[13]=a[13]-r[13],t[14]=a[14]-r[14],t[15]=a[15]-r[15],t},e.sub=e.subtract,e.multiplyScalar=function(t,a,r){return t[0]=a[0]*r,t[1]=a[1]*r,t[2]=a[2]*r,t[3]=a[3]*r,t[4]=a[4]*r,t[5]=a[5]*r,t[6]=a[6]*r,t[7]=a[7]*r,t[8]=a[8]*r,t[9]=a[9]*r,t[10]=a[10]*r,t[11]=a[11]*r,t[12]=a[12]*r,t[13]=a[13]*r,t[14]=a[14]*r,t[15]=a[15]*r,t},e.multiplyScalarAndAdd=function(t,a,r,n){return t[0]=a[0]+r[0]*n,t[1]=a[1]+r[1]*n,t[2]=a[2]+r[2]*n,t[3]=a[3]+r[3]*n,t[4]=a[4]+r[4]*n,t[5]=a[5]+r[5]*n,t[6]=a[6]+r[6]*n,t[7]=a[7]+r[7]*n,t[8]=a[8]+r[8]*n,t[9]=a[9]+r[9]*n,t[10]=a[10]+r[10]*n,t[11]=a[11]+r[11]*n,t[12]=a[12]+r[12]*n,t[13]=a[13]+r[13]*n,t[14]=a[14]+r[14]*n,t[15]=a[15]+r[15]*n,t},e.exactEquals=function(t,a){return t[0]===a[0]&&t[1]===a[1]&&t[2]===a[2]&&t[3]===a[3]&&t[4]===a[4]&&t[5]===a[5]&&t[6]===a[6]&&t[7]===a[7]&&t[8]===a[8]&&t[9]===a[9]&&t[10]===a[10]&&t[11]===a[11]&&t[12]===a[12]&&t[13]===a[13]&&t[14]===a[14]&&t[15]===a[15]},e.equals=function(t,a){var r=t[0],e=t[1],o=t[2],u=t[3],l=t[4],i=t[5],s=t[6],c=t[7],M=t[8],f=t[9],h=t[10],d=t[11],x=t[12],S=t[13],I=t[14],D=t[15],p=a[0],v=a[1],m=a[2],F=a[3],b=a[4],_=a[5],y=a[6],w=a[7],q=a[8],P=a[9],z=a[10],R=a[11],O=a[12],A=a[13],E=a[14],L=a[15];return Math.abs(r-p)<=n.EPSILON*Math.max(1,Math.abs(r),Math.abs(p))&&Math.abs(e-v)<=n.EPSILON*Math.max(1,Math.abs(e),Math.abs(v))&&Math.abs(o-m)<=n.EPSILON*Math.max(1,Math.abs(o),Math.abs(m))&&Math.abs(u-F)<=n.EPSILON*Math.max(1,Math.abs(u),Math.abs(F))&&Math.abs(l-b)<=n.EPSILON*Math.max(1,Math.abs(l),Math.abs(b))&&Math.abs(i-_)<=n.EPSILON*Math.max(1,Math.abs(i),Math.abs(_))&&Math.abs(s-y)<=n.EPSILON*Math.max(1,Math.abs(s),Math.abs(y))&&Math.abs(c-w)<=n.EPSILON*Math.max(1,Math.abs(c),Math.abs(w))&&Math.abs(M-q)<=n.EPSILON*Math.max(1,Math.abs(M),Math.abs(q))&&Math.abs(f-P)<=n.EPSILON*Math.max(1,Math.abs(f),Math.abs(P))&&Math.abs(h-z)<=n.EPSILON*Math.max(1,Math.abs(h),Math.abs(z))&&Math.abs(d-R)<=n.EPSILON*Math.max(1,Math.abs(d),Math.abs(R))&&Math.abs(x-O)<=n.EPSILON*Math.max(1,Math.abs(x),Math.abs(O))&&Math.abs(S-A)<=n.EPSILON*Math.max(1,Math.abs(S),Math.abs(A))&&Math.abs(I-E)<=n.EPSILON*Math.max(1,Math.abs(I),Math.abs(E))&&Math.abs(D-L)<=n.EPSILON*Math.max(1,Math.abs(D),Math.abs(L))},t.exports=e},function(t,a,r){var n=r(4),e=r(7),o=r(10),u=r(11),l={};l.create=function(){var t=new n.ARRAY_TYPE(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},l.rotationTo=function(){var t=o.create(),a=o.fromValues(1,0,0),r=o.fromValues(0,1,0);return function(n,e,u){var i=o.dot(e,u);return i<-.999999?(o.cross(t,a,e),o.length(t)<1e-6&&o.cross(t,r,e),o.normalize(t,t),l.setAxisAngle(n,t,Math.PI),n):i>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(o.cross(t,e,u),n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=1+i,l.normalize(n,n))}}(),l.setAxes=function(){var t=e.create();return function(a,r,n,e){return t[0]=n[0],t[3]=n[1],t[6]=n[2],t[1]=e[0],t[4]=e[1],t[7]=e[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],l.normalize(a,l.fromMat3(a,t))}}(),l.clone=u.clone,l.fromValues=u.fromValues,l.copy=u.copy,l.set=u.set,l.identity=function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},l.setAxisAngle=function(t,a,r){r*=.5;var n=Math.sin(r);return t[0]=n*a[0],t[1]=n*a[1],t[2]=n*a[2],t[3]=Math.cos(r),t},l.getAxisAngle=function(t,a){var r=2*Math.acos(a[3]),n=Math.sin(r/2);return 0!=n?(t[0]=a[0]/n,t[1]=a[1]/n,t[2]=a[2]/n):(t[0]=1,t[1]=0,t[2]=0),r},l.add=u.add,l.multiply=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=a[3],l=r[0],i=r[1],s=r[2],c=r[3];return t[0]=n*c+u*l+e*s-o*i,t[1]=e*c+u*i+o*l-n*s,t[2]=o*c+u*s+n*i-e*l,t[3]=u*c-n*l-e*i-o*s,t},l.mul=l.multiply,l.scale=u.scale,l.rotateX=function(t,a,r){r*=.5;var n=a[0],e=a[1],o=a[2],u=a[3],l=Math.sin(r),i=Math.cos(r);return t[0]=n*i+u*l,t[1]=e*i+o*l,t[2]=o*i-e*l,t[3]=u*i-n*l,t},l.rotateY=function(t,a,r){r*=.5;var n=a[0],e=a[1],o=a[2],u=a[3],l=Math.sin(r),i=Math.cos(r);return t[0]=n*i-o*l,t[1]=e*i+u*l,t[2]=o*i+n*l,t[3]=u*i-e*l,t},l.rotateZ=function(t,a,r){r*=.5;var n=a[0],e=a[1],o=a[2],u=a[3],l=Math.sin(r),i=Math.cos(r);return t[0]=n*i+e*l,t[1]=e*i-n*l,t[2]=o*i+u*l,t[3]=u*i-o*l,t},l.calculateW=function(t,a){var r=a[0],n=a[1],e=a[2];return t[0]=r,t[1]=n,t[2]=e,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-e*e)),t},l.dot=u.dot,l.lerp=u.lerp,l.slerp=function(t,a,r,n){var e,o,u,l,i,s=a[0],c=a[1],M=a[2],f=a[3],h=r[0],d=r[1],x=r[2],S=r[3];return o=s*h+c*d+M*x+f*S,o<0&&(o=-o,h=-h,d=-d,x=-x,S=-S),1-o>1e-6?(e=Math.acos(o),u=Math.sin(e),l=Math.sin((1-n)*e)/u,i=Math.sin(n*e)/u):(l=1-n,i=n),t[0]=l*s+i*h,t[1]=l*c+i*d,t[2]=l*M+i*x,t[3]=l*f+i*S,t},l.sqlerp=function(){var t=l.create(),a=l.create();return function(r,n,e,o,u,i){return l.slerp(t,n,u,i),l.slerp(a,e,o,i),l.slerp(r,t,a,2*i*(1-i)),r}}(),l.invert=function(t,a){var r=a[0],n=a[1],e=a[2],o=a[3],u=r*r+n*n+e*e+o*o,l=u?1/u:0;return t[0]=-r*l,t[1]=-n*l,t[2]=-e*l,t[3]=o*l,t},l.conjugate=function(t,a){return t[0]=-a[0],t[1]=-a[1],t[2]=-a[2],t[3]=a[3],t},l.length=u.length,l.len=l.length,l.squaredLength=u.squaredLength,l.sqrLen=l.squaredLength,l.normalize=u.normalize,l.fromMat3=function(t,a){var r,n=a[0]+a[4]+a[8];if(n>0)r=Math.sqrt(n+1),t[3]=.5*r,r=.5/r,t[0]=(a[5]-a[7])*r,t[1]=(a[6]-a[2])*r,t[2]=(a[1]-a[3])*r;else{var e=0;a[4]>a[0]&&(e=1),a[8]>a[3*e+e]&&(e=2);var o=(e+1)%3,u=(e+2)%3;r=Math.sqrt(a[3*e+e]-a[3*o+o]-a[3*u+u]+1),t[e]=.5*r,r=.5/r,t[3]=(a[3*o+u]-a[3*u+o])*r,t[o]=(a[3*o+e]+a[3*e+o])*r,t[u]=(a[3*u+e]+a[3*e+u])*r}return t},l.str=function(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},l.exactEquals=u.exactEquals,l.equals=u.equals,t.exports=l},function(t,a,r){var n=r(4),e={};e.create=function(){var t=new n.ARRAY_TYPE(3);return t[0]=0,t[1]=0,t[2]=0,t},e.clone=function(t){var a=new n.ARRAY_TYPE(3);return a[0]=t[0],a[1]=t[1],a[2]=t[2],a},e.fromValues=function(t,a,r){var e=new n.ARRAY_TYPE(3);return e[0]=t,e[1]=a,e[2]=r,e},e.copy=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t},e.set=function(t,a,r,n){return t[0]=a,t[1]=r,t[2]=n,t},e.add=function(t,a,r){return t[0]=a[0]+r[0],t[1]=a[1]+r[1],t[2]=a[2]+r[2],t},e.subtract=function(t,a,r){return t[0]=a[0]-r[0],t[1]=a[1]-r[1],t[2]=a[2]-r[2],t},e.sub=e.subtract,e.multiply=function(t,a,r){return t[0]=a[0]*r[0],t[1]=a[1]*r[1],t[2]=a[2]*r[2],t},e.mul=e.multiply,e.divide=function(t,a,r){return t[0]=a[0]/r[0],t[1]=a[1]/r[1],t[2]=a[2]/r[2],t},e.div=e.divide,e.ceil=function(t,a){return t[0]=Math.ceil(a[0]),t[1]=Math.ceil(a[1]),t[2]=Math.ceil(a[2]),t},e.floor=function(t,a){return t[0]=Math.floor(a[0]),t[1]=Math.floor(a[1]),t[2]=Math.floor(a[2]),t},e.min=function(t,a,r){return t[0]=Math.min(a[0],r[0]),t[1]=Math.min(a[1],r[1]),t[2]=Math.min(a[2],r[2]),t},e.max=function(t,a,r){return t[0]=Math.max(a[0],r[0]),t[1]=Math.max(a[1],r[1]),t[2]=Math.max(a[2],r[2]),t},e.round=function(t,a){return t[0]=Math.round(a[0]),t[1]=Math.round(a[1]),t[2]=Math.round(a[2]),t},e.scale=function(t,a,r){return t[0]=a[0]*r,t[1]=a[1]*r,t[2]=a[2]*r,t},e.scaleAndAdd=function(t,a,r,n){return t[0]=a[0]+r[0]*n,t[1]=a[1]+r[1]*n,t[2]=a[2]+r[2]*n,t},e.distance=function(t,a){var r=a[0]-t[0],n=a[1]-t[1],e=a[2]-t[2];return Math.sqrt(r*r+n*n+e*e)},e.dist=e.distance,e.squaredDistance=function(t,a){var r=a[0]-t[0],n=a[1]-t[1],e=a[2]-t[2];return r*r+n*n+e*e},e.sqrDist=e.squaredDistance,e.length=function(t){var a=t[0],r=t[1],n=t[2];return Math.sqrt(a*a+r*r+n*n)},e.len=e.length,e.squaredLength=function(t){var a=t[0],r=t[1],n=t[2];return a*a+r*r+n*n},e.sqrLen=e.squaredLength,e.negate=function(t,a){return t[0]=-a[0],t[1]=-a[1],t[2]=-a[2],t},e.inverse=function(t,a){return t[0]=1/a[0],t[1]=1/a[1],t[2]=1/a[2],t},e.normalize=function(t,a){var r=a[0],n=a[1],e=a[2],o=r*r+n*n+e*e;return o>0&&(o=1/Math.sqrt(o),t[0]=a[0]*o,t[1]=a[1]*o,t[2]=a[2]*o),t},e.dot=function(t,a){return t[0]*a[0]+t[1]*a[1]+t[2]*a[2]},e.cross=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=r[0],l=r[1],i=r[2];return t[0]=e*i-o*l,t[1]=o*u-n*i,t[2]=n*l-e*u,t},e.lerp=function(t,a,r,n){var e=a[0],o=a[1],u=a[2];return t[0]=e+n*(r[0]-e),t[1]=o+n*(r[1]-o),t[2]=u+n*(r[2]-u),t},e.hermite=function(t,a,r,n,e,o){var u=o*o,l=u*(2*o-3)+1,i=u*(o-2)+o,s=u*(o-1),c=u*(3-2*o);return t[0]=a[0]*l+r[0]*i+n[0]*s+e[0]*c,t[1]=a[1]*l+r[1]*i+n[1]*s+e[1]*c,t[2]=a[2]*l+r[2]*i+n[2]*s+e[2]*c,t},e.bezier=function(t,a,r,n,e,o){var u=1-o,l=u*u,i=o*o,s=l*u,c=3*o*l,M=3*i*u,f=i*o;return t[0]=a[0]*s+r[0]*c+n[0]*M+e[0]*f,t[1]=a[1]*s+r[1]*c+n[1]*M+e[1]*f,t[2]=a[2]*s+r[2]*c+n[2]*M+e[2]*f,t},e.random=function(t,a){a=a||1;var r=2*n.RANDOM()*Math.PI,e=2*n.RANDOM()-1,o=Math.sqrt(1-e*e)*a;return t[0]=Math.cos(r)*o,t[1]=Math.sin(r)*o,t[2]=e*a,t},e.transformMat4=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=r[3]*n+r[7]*e+r[11]*o+r[15];return u=u||1,t[0]=(r[0]*n+r[4]*e+r[8]*o+r[12])/u,t[1]=(r[1]*n+r[5]*e+r[9]*o+r[13])/u,t[2]=(r[2]*n+r[6]*e+r[10]*o+r[14])/u,t},e.transformMat3=function(t,a,r){var n=a[0],e=a[1],o=a[2];return t[0]=n*r[0]+e*r[3]+o*r[6],t[1]=n*r[1]+e*r[4]+o*r[7],t[2]=n*r[2]+e*r[5]+o*r[8],t},e.transformQuat=function(t,a,r){var n=a[0],e=a[1],o=a[2],u=r[0],l=r[1],i=r[2],s=r[3],c=s*n+l*o-i*e,M=s*e+i*n-u*o,f=s*o+u*e-l*n,h=-u*n-l*e-i*o;return t[0]=c*s+h*-u+M*-i-f*-l,t[1]=M*s+h*-l+f*-u-c*-i,t[2]=f*s+h*-i+c*-l-M*-u,t},e.rotateX=function(t,a,r,n){var e=[],o=[];return e[0]=a[0]-r[0],e[1]=a[1]-r[1],e[2]=a[2]-r[2],o[0]=e[0],o[1]=e[1]*Math.cos(n)-e[2]*Math.sin(n),o[2]=e[1]*Math.sin(n)+e[2]*Math.cos(n),t[0]=o[0]+r[0],t[1]=o[1]+r[1],t[2]=o[2]+r[2],t},e.rotateY=function(t,a,r,n){var e=[],o=[];return e[0]=a[0]-r[0],e[1]=a[1]-r[1],e[2]=a[2]-r[2],o[0]=e[2]*Math.sin(n)+e[0]*Math.cos(n),o[1]=e[1],o[2]=e[2]*Math.cos(n)-e[0]*Math.sin(n),t[0]=o[0]+r[0],t[1]=o[1]+r[1],t[2]=o[2]+r[2],t},e.rotateZ=function(t,a,r,n){var e=[],o=[];return e[0]=a[0]-r[0],e[1]=a[1]-r[1],e[2]=a[2]-r[2],o[0]=e[0]*Math.cos(n)-e[1]*Math.sin(n),o[1]=e[0]*Math.sin(n)+e[1]*Math.cos(n),o[2]=e[2],t[0]=o[0]+r[0],t[1]=o[1]+r[1],t[2]=o[2]+r[2],t},e.forEach=function(){var t=e.create();return function(a,r,n,e,o,u){var l,i;for(r||(r=3),n||(n=0),i=e?Math.min(e*r+n,a.length):a.length,l=n;l<i;l+=r)t[0]=a[l],t[1]=a[l+1],t[2]=a[l+2],o(t,t,u),a[l]=t[0],a[l+1]=t[1],a[l+2]=t[2];return a}}(),e.angle=function(t,a){var r=e.fromValues(t[0],t[1],t[2]),n=e.fromValues(a[0],a[1],a[2]);e.normalize(r,r),e.normalize(n,n);var o=e.dot(r,n);return o>1?0:Math.acos(o)},e.str=function(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"},e.exactEquals=function(t,a){return t[0]===a[0]&&t[1]===a[1]&&t[2]===a[2]},e.equals=function(t,a){var r=t[0],e=t[1],o=t[2],u=a[0],l=a[1],i=a[2];return Math.abs(r-u)<=n.EPSILON*Math.max(1,Math.abs(r),Math.abs(u))&&Math.abs(e-l)<=n.EPSILON*Math.max(1,Math.abs(e),Math.abs(l))&&Math.abs(o-i)<=n.EPSILON*Math.max(1,Math.abs(o),Math.abs(i))},t.exports=e},function(t,a,r){var n=r(4),e={};e.create=function(){var t=new n.ARRAY_TYPE(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t},e.clone=function(t){var a=new n.ARRAY_TYPE(4);return a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=t[3],a},e.fromValues=function(t,a,r,e){var o=new n.ARRAY_TYPE(4);return o[0]=t,o[1]=a,o[2]=r,o[3]=e,o},e.copy=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t},e