diff --git a/.size-snapshot.json b/.size-snapshot.json
index 65c976dc..96342512 100644
--- a/.size-snapshot.json
+++ b/.size-snapshot.json
@@ -1,7 +1,7 @@
{
"dist/gl-matrix-min.js": {
- "bundled": 195495,
- "minified": 48824,
- "gzipped": 11860
+ "bundled": 197064,
+ "minified": 49236,
+ "gzipped": 11970
}
}
diff --git a/LICENSE.md b/LICENSE.md
index c74d17fa..83502b36 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,4 +1,4 @@
-Copyright (c) 2015-2018, Brandon Jones, Colin MacKenzie IV.
+Copyright (c) 2015-2019, Brandon Jones, Colin MacKenzie IV.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/dist/gl-matrix-min.js b/dist/gl-matrix-min.js
index bbbfb3c6..e1517df7 100644
--- a/dist/gl-matrix-min.js
+++ b/dist/gl-matrix-min.js
@@ -4,7 +4,7 @@
@author Colin MacKenzie IV
@version 3.0.0-0
-Copyright (c) 2015-2018, Brandon Jones, Colin MacKenzie IV.
+Copyright (c) 2015-2019, Brandon Jones, Colin MacKenzie IV.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -25,4 +25,4 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
-!function(t,a){"object"==typeof exports&&"undefined"!=typeof module?a(exports):"function"==typeof define&&define.amd?define(["exports"],a):a(t.glMatrix={})}(this,function(t){"use strict";var a=1e-6,n="undefined"!=typeof Float32Array?Float32Array:Array,r=Math.random;var u=Math.PI/180;var e=Object.freeze({EPSILON:a,get ARRAY_TYPE(){return n},RANDOM:r,setMatrixArrayType:function(t){n=t},toRadian:function(t){return t*u},equals:function(t,n){return Math.abs(t-n)<=a*Math.max(1,Math.abs(t),Math.abs(n))}});function o(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=n[0],h=n[1],M=n[2],c=n[3];return t[0]=r*i+e*h,t[1]=u*i+o*h,t[2]=r*M+e*c,t[3]=u*M+o*c,t}function i(t,a,n){return t[0]=a[0]-n[0],t[1]=a[1]-n[1],t[2]=a[2]-n[2],t[3]=a[3]-n[3],t}var h=o,M=i,c=Object.freeze({create:function(){var t=new n(4);return n!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t},clone:function(t){var a=new n(4);return a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=t[3],a},copy:function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t},identity:function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},fromValues:function(t,a,r,u){var e=new n(4);return e[0]=t,e[1]=a,e[2]=r,e[3]=u,e},set:function(t,a,n,r,u){return t[0]=a,t[1]=n,t[2]=r,t[3]=u,t},transpose:function(t,a){if(t===a){var n=a[1];t[1]=a[2],t[2]=n}else t[0]=a[0],t[1]=a[2],t[2]=a[1],t[3]=a[3];return t},invert:function(t,a){var n=a[0],r=a[1],u=a[2],e=a[3],o=n*e-u*r;return o?(o=1/o,t[0]=e*o,t[1]=-r*o,t[2]=-u*o,t[3]=n*o,t):null},adjoint:function(t,a){var n=a[0];return t[0]=a[3],t[1]=-a[1],t[2]=-a[2],t[3]=n,t},determinant:function(t){return t[0]*t[3]-t[2]*t[1]},multiply:o,rotate:function(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=Math.sin(n),h=Math.cos(n);return t[0]=r*h+e*i,t[1]=u*h+o*i,t[2]=r*-i+e*h,t[3]=u*-i+o*h,t},scale:function(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=n[0],h=n[1];return t[0]=r*i,t[1]=u*i,t[2]=e*h,t[3]=o*h,t},fromRotation:function(t,a){var n=Math.sin(a),r=Math.cos(a);return t[0]=r,t[1]=n,t[2]=-n,t[3]=r,t},fromScaling:function(t,a){return t[0]=a[0],t[1]=0,t[2]=0,t[3]=a[1],t},str:function(t){return"mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},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))},LDU:function(t,a,n,r){return t[2]=r[2]/r[0],n[0]=r[0],n[1]=r[1],n[3]=r[3]-t[2]*n[1],[t,a,n]},add:function(t,a,n){return t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t[3]=a[3]+n[3],t},subtract:i,exactEquals:function(t,a){return t[0]===a[0]&&t[1]===a[1]&&t[2]===a[2]&&t[3]===a[3]},equals:function(t,n){var r=t[0],u=t[1],e=t[2],o=t[3],i=n[0],h=n[1],M=n[2],c=n[3];return Math.abs(r-i)<=a*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(u-h)<=a*Math.max(1,Math.abs(u),Math.abs(h))&&Math.abs(e-M)<=a*Math.max(1,Math.abs(e),Math.abs(M))&&Math.abs(o-c)<=a*Math.max(1,Math.abs(o),Math.abs(c))},multiplyScalar:function(t,a,n){return t[0]=a[0]*n,t[1]=a[1]*n,t[2]=a[2]*n,t[3]=a[3]*n,t},multiplyScalarAndAdd:function(t,a,n,r){return t[0]=a[0]+n[0]*r,t[1]=a[1]+n[1]*r,t[2]=a[2]+n[2]*r,t[3]=a[3]+n[3]*r,t},mul:h,sub:M});function s(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=a[4],h=a[5],M=n[0],c=n[1],s=n[2],f=n[3],l=n[4],v=n[5];return t[0]=r*M+e*c,t[1]=u*M+o*c,t[2]=r*s+e*f,t[3]=u*s+o*f,t[4]=r*l+e*v+i,t[5]=u*l+o*v+h,t}function f(t,a,n){return t[0]=a[0]-n[0],t[1]=a[1]-n[1],t[2]=a[2]-n[2],t[3]=a[3]-n[3],t[4]=a[4]-n[4],t[5]=a[5]-n[5],t}var l=s,v=f,b=Object.freeze({create:function(){var t=new n(6);return n!=Float32Array&&(t[1]=0,t[2]=0,t[4]=0,t[5]=0),t[0]=1,t[3]=1,t},clone:function(t){var a=new n(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},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},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,a,r,u,e,o){var i=new n(6);return i[0]=t,i[1]=a,i[2]=r,i[3]=u,i[4]=e,i[5]=o,i},set:function(t,a,n,r,u,e,o){return t[0]=a,t[1]=n,t[2]=r,t[3]=u,t[4]=e,t[5]=o,t},invert:function(t,a){var n=a[0],r=a[1],u=a[2],e=a[3],o=a[4],i=a[5],h=n*e-r*u;return h?(h=1/h,t[0]=e*h,t[1]=-r*h,t[2]=-u*h,t[3]=n*h,t[4]=(u*i-e*o)*h,t[5]=(r*o-n*i)*h,t):null},determinant:function(t){return t[0]*t[3]-t[1]*t[2]},multiply:s,rotate:function(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=a[4],h=a[5],M=Math.sin(n),c=Math.cos(n);return t[0]=r*c+e*M,t[1]=u*c+o*M,t[2]=r*-M+e*c,t[3]=u*-M+o*c,t[4]=i,t[5]=h,t},scale:function(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=a[4],h=a[5],M=n[0],c=n[1];return t[0]=r*M,t[1]=u*M,t[2]=e*c,t[3]=o*c,t[4]=i,t[5]=h,t},translate:function(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=a[4],h=a[5],M=n[0],c=n[1];return t[0]=r,t[1]=u,t[2]=e,t[3]=o,t[4]=r*M+e*c+i,t[5]=u*M+o*c+h,t},fromRotation:function(t,a){var n=Math.sin(a),r=Math.cos(a);return t[0]=r,t[1]=n,t[2]=-n,t[3]=r,t[4]=0,t[5]=0,t},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},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},str:function(t){return"mat2d("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+")"},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)},add:function(t,a,n){return t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t[3]=a[3]+n[3],t[4]=a[4]+n[4],t[5]=a[5]+n[5],t},subtract:f,multiplyScalar:function(t,a,n){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]*n,t[5]=a[5]*n,t},multiplyScalarAndAdd:function(t,a,n,r){return t[0]=a[0]+n[0]*r,t[1]=a[1]+n[1]*r,t[2]=a[2]+n[2]*r,t[3]=a[3]+n[3]*r,t[4]=a[4]+n[4]*r,t[5]=a[5]+n[5]*r,t},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]},equals:function(t,n){var r=t[0],u=t[1],e=t[2],o=t[3],i=t[4],h=t[5],M=n[0],c=n[1],s=n[2],f=n[3],l=n[4],v=n[5];return Math.abs(r-M)<=a*Math.max(1,Math.abs(r),Math.abs(M))&&Math.abs(u-c)<=a*Math.max(1,Math.abs(u),Math.abs(c))&&Math.abs(e-s)<=a*Math.max(1,Math.abs(e),Math.abs(s))&&Math.abs(o-f)<=a*Math.max(1,Math.abs(o),Math.abs(f))&&Math.abs(i-l)<=a*Math.max(1,Math.abs(i),Math.abs(l))&&Math.abs(h-v)<=a*Math.max(1,Math.abs(h),Math.abs(v))},mul:l,sub:v});function m(){var t=new n(9);return n!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function d(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=a[4],h=a[5],M=a[6],c=a[7],s=a[8],f=n[0],l=n[1],v=n[2],b=n[3],m=n[4],d=n[5],p=n[6],x=n[7],q=n[8];return t[0]=f*r+l*o+v*M,t[1]=f*u+l*i+v*c,t[2]=f*e+l*h+v*s,t[3]=b*r+m*o+d*M,t[4]=b*u+m*i+d*c,t[5]=b*e+m*h+d*s,t[6]=p*r+x*o+q*M,t[7]=p*u+x*i+q*c,t[8]=p*e+x*h+q*s,t}function p(t,a,n){return t[0]=a[0]-n[0],t[1]=a[1]-n[1],t[2]=a[2]-n[2],t[3]=a[3]-n[3],t[4]=a[4]-n[4],t[5]=a[5]-n[5],t[6]=a[6]-n[6],t[7]=a[7]-n[7],t[8]=a[8]-n[8],t}var x=d,q=p,w=Object.freeze({create:m,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},clone:function(t){var a=new n(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},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},fromValues:function(t,a,r,u,e,o,i,h,M){var c=new n(9);return c[0]=t,c[1]=a,c[2]=r,c[3]=u,c[4]=e,c[5]=o,c[6]=i,c[7]=h,c[8]=M,c},set:function(t,a,n,r,u,e,o,i,h,M){return t[0]=a,t[1]=n,t[2]=r,t[3]=u,t[4]=e,t[5]=o,t[6]=i,t[7]=h,t[8]=M,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,a){if(t===a){var n=a[1],r=a[2],u=a[5];t[1]=a[3],t[2]=a[6],t[3]=n,t[5]=a[7],t[6]=r,t[7]=u}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},invert:function(t,a){var n=a[0],r=a[1],u=a[2],e=a[3],o=a[4],i=a[5],h=a[6],M=a[7],c=a[8],s=c*o-i*M,f=-c*e+i*h,l=M*e-o*h,v=n*s+r*f+u*l;return v?(v=1/v,t[0]=s*v,t[1]=(-c*r+u*M)*v,t[2]=(i*r-u*o)*v,t[3]=f*v,t[4]=(c*n-u*h)*v,t[5]=(-i*n+u*e)*v,t[6]=l*v,t[7]=(-M*n+r*h)*v,t[8]=(o*n-r*e)*v,t):null},adjoint:function(t,a){var n=a[0],r=a[1],u=a[2],e=a[3],o=a[4],i=a[5],h=a[6],M=a[7],c=a[8];return t[0]=o*c-i*M,t[1]=u*M-r*c,t[2]=r*i-u*o,t[3]=i*h-e*c,t[4]=n*c-u*h,t[5]=u*e-n*i,t[6]=e*M-o*h,t[7]=r*h-n*M,t[8]=n*o-r*e,t},determinant:function(t){var a=t[0],n=t[1],r=t[2],u=t[3],e=t[4],o=t[5],i=t[6],h=t[7],M=t[8];return a*(M*e-o*h)+n*(-M*u+o*i)+r*(h*u-e*i)},multiply:d,translate:function(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=a[4],h=a[5],M=a[6],c=a[7],s=a[8],f=n[0],l=n[1];return t[0]=r,t[1]=u,t[2]=e,t[3]=o,t[4]=i,t[5]=h,t[6]=f*r+l*o+M,t[7]=f*u+l*i+c,t[8]=f*e+l*h+s,t},rotate:function(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=a[4],h=a[5],M=a[6],c=a[7],s=a[8],f=Math.sin(n),l=Math.cos(n);return t[0]=l*r+f*o,t[1]=l*u+f*i,t[2]=l*e+f*h,t[3]=l*o-f*r,t[4]=l*i-f*u,t[5]=l*h-f*e,t[6]=M,t[7]=c,t[8]=s,t},scale:function(t,a,n){var r=n[0],u=n[1];return t[0]=r*a[0],t[1]=r*a[1],t[2]=r*a[2],t[3]=u*a[3],t[4]=u*a[4],t[5]=u*a[5],t[6]=a[6],t[7]=a[7],t[8]=a[8],t},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},fromRotation:function(t,a){var n=Math.sin(a),r=Math.cos(a);return t[0]=r,t[1]=n,t[2]=0,t[3]=-n,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},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},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},fromQuat:function(t,a){var n=a[0],r=a[1],u=a[2],e=a[3],o=n+n,i=r+r,h=u+u,M=n*o,c=r*o,s=r*i,f=u*o,l=u*i,v=u*h,b=e*o,m=e*i,d=e*h;return t[0]=1-s-v,t[3]=c-d,t[6]=f+m,t[1]=c+d,t[4]=1-M-v,t[7]=l-b,t[2]=f-m,t[5]=l+b,t[8]=1-M-s,t},normalFromMat4:function(t,a){var n=a[0],r=a[1],u=a[2],e=a[3],o=a[4],i=a[5],h=a[6],M=a[7],c=a[8],s=a[9],f=a[10],l=a[11],v=a[12],b=a[13],m=a[14],d=a[15],p=n*i-r*o,x=n*h-u*o,q=n*M-e*o,w=r*h-u*i,y=r*M-e*i,g=u*M-e*h,A=c*b-s*v,R=c*m-f*v,P=c*d-l*v,j=s*m-f*b,z=s*d-l*b,I=f*d-l*m,S=p*I-x*z+q*j+w*P-y*R+g*A;return S?(S=1/S,t[0]=(i*I-h*z+M*j)*S,t[1]=(h*P-o*I-M*R)*S,t[2]=(o*z-i*P+M*A)*S,t[3]=(u*z-r*I-e*j)*S,t[4]=(n*I-u*P+e*R)*S,t[5]=(r*P-n*z-e*A)*S,t[6]=(b*g-m*y+d*w)*S,t[7]=(m*q-v*g-d*x)*S,t[8]=(v*y-b*q+d*p)*S,t):null},projection:function(t,a,n){return t[0]=2/a,t[1]=0,t[2]=0,t[3]=0,t[4]=-2/n,t[5]=0,t[6]=-1,t[7]=1,t[8]=1,t},str:function(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"},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))},add:function(t,a,n){return t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t[3]=a[3]+n[3],t[4]=a[4]+n[4],t[5]=a[5]+n[5],t[6]=a[6]+n[6],t[7]=a[7]+n[7],t[8]=a[8]+n[8],t},subtract:p,multiplyScalar:function(t,a,n){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]*n,t[5]=a[5]*n,t[6]=a[6]*n,t[7]=a[7]*n,t[8]=a[8]*n,t},multiplyScalarAndAdd:function(t,a,n,r){return t[0]=a[0]+n[0]*r,t[1]=a[1]+n[1]*r,t[2]=a[2]+n[2]*r,t[3]=a[3]+n[3]*r,t[4]=a[4]+n[4]*r,t[5]=a[5]+n[5]*r,t[6]=a[6]+n[6]*r,t[7]=a[7]+n[7]*r,t[8]=a[8]+n[8]*r,t},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]},equals:function(t,n){var r=t[0],u=t[1],e=t[2],o=t[3],i=t[4],h=t[5],M=t[6],c=t[7],s=t[8],f=n[0],l=n[1],v=n[2],b=n[3],m=n[4],d=n[5],p=n[6],x=n[7],q=n[8];return Math.abs(r-f)<=a*Math.max(1,Math.abs(r),Math.abs(f))&&Math.abs(u-l)<=a*Math.max(1,Math.abs(u),Math.abs(l))&&Math.abs(e-v)<=a*Math.max(1,Math.abs(e),Math.abs(v))&&Math.abs(o-b)<=a*Math.max(1,Math.abs(o),Math.abs(b))&&Math.abs(i-m)<=a*Math.max(1,Math.abs(i),Math.abs(m))&&Math.abs(h-d)<=a*Math.max(1,Math.abs(h),Math.abs(d))&&Math.abs(M-p)<=a*Math.max(1,Math.abs(M),Math.abs(p))&&Math.abs(c-x)<=a*Math.max(1,Math.abs(c),Math.abs(x))&&Math.abs(s-q)<=a*Math.max(1,Math.abs(s),Math.abs(q))},mul:x,sub:q});function y(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}function g(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=a[4],h=a[5],M=a[6],c=a[7],s=a[8],f=a[9],l=a[10],v=a[11],b=a[12],m=a[13],d=a[14],p=a[15],x=n[0],q=n[1],w=n[2],y=n[3];return t[0]=x*r+q*i+w*s+y*b,t[1]=x*u+q*h+w*f+y*m,t[2]=x*e+q*M+w*l+y*d,t[3]=x*o+q*c+w*v+y*p,x=n[4],q=n[5],w=n[6],y=n[7],t[4]=x*r+q*i+w*s+y*b,t[5]=x*u+q*h+w*f+y*m,t[6]=x*e+q*M+w*l+y*d,t[7]=x*o+q*c+w*v+y*p,x=n[8],q=n[9],w=n[10],y=n[11],t[8]=x*r+q*i+w*s+y*b,t[9]=x*u+q*h+w*f+y*m,t[10]=x*e+q*M+w*l+y*d,t[11]=x*o+q*c+w*v+y*p,x=n[12],q=n[13],w=n[14],y=n[15],t[12]=x*r+q*i+w*s+y*b,t[13]=x*u+q*h+w*f+y*m,t[14]=x*e+q*M+w*l+y*d,t[15]=x*o+q*c+w*v+y*p,t}function A(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=r+r,h=u+u,M=e+e,c=r*i,s=r*h,f=r*M,l=u*h,v=u*M,b=e*M,m=o*i,d=o*h,p=o*M;return t[0]=1-(l+b),t[1]=s+p,t[2]=f-d,t[3]=0,t[4]=s-p,t[5]=1-(c+b),t[6]=v+m,t[7]=0,t[8]=f+d,t[9]=v-m,t[10]=1-(c+l),t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t}function R(t,a){return t[0]=a[12],t[1]=a[13],t[2]=a[14],t}function P(t,a){var n=a[0]+a[5]+a[10],r=0;return n>0?(r=2*Math.sqrt(n+1),t[3]=.25*r,t[0]=(a[6]-a[9])/r,t[1]=(a[8]-a[2])/r,t[2]=(a[1]-a[4])/r):a[0]>a[5]&&a[0]>a[10]?(r=2*Math.sqrt(1+a[0]-a[5]-a[10]),t[3]=(a[6]-a[9])/r,t[0]=.25*r,t[1]=(a[1]+a[4])/r,t[2]=(a[8]+a[2])/r):a[5]>a[10]?(r=2*Math.sqrt(1+a[5]-a[0]-a[10]),t[3]=(a[8]-a[2])/r,t[0]=(a[1]+a[4])/r,t[1]=.25*r,t[2]=(a[6]+a[9])/r):(r=2*Math.sqrt(1+a[10]-a[0]-a[5]),t[3]=(a[1]-a[4])/r,t[0]=(a[8]+a[2])/r,t[1]=(a[6]+a[9])/r,t[2]=.25*r),t}function j(t,a,n){return t[0]=a[0]-n[0],t[1]=a[1]-n[1],t[2]=a[2]-n[2],t[3]=a[3]-n[3],t[4]=a[4]-n[4],t[5]=a[5]-n[5],t[6]=a[6]-n[6],t[7]=a[7]-n[7],t[8]=a[8]-n[8],t[9]=a[9]-n[9],t[10]=a[10]-n[10],t[11]=a[11]-n[11],t[12]=a[12]-n[12],t[13]=a[13]-n[13],t[14]=a[14]-n[14],t[15]=a[15]-n[15],t}var z=g,I=j,S=Object.freeze({create:function(){var t=new n(16);return n!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},clone:function(t){var a=new n(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},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},fromValues:function(t,a,r,u,e,o,i,h,M,c,s,f,l,v,b,m){var d=new n(16);return d[0]=t,d[1]=a,d[2]=r,d[3]=u,d[4]=e,d[5]=o,d[6]=i,d[7]=h,d[8]=M,d[9]=c,d[10]=s,d[11]=f,d[12]=l,d[13]=v,d[14]=b,d[15]=m,d},set:function(t,a,n,r,u,e,o,i,h,M,c,s,f,l,v,b,m){return t[0]=a,t[1]=n,t[2]=r,t[3]=u,t[4]=e,t[5]=o,t[6]=i,t[7]=h,t[8]=M,t[9]=c,t[10]=s,t[11]=f,t[12]=l,t[13]=v,t[14]=b,t[15]=m,t},identity:y,transpose:function(t,a){if(t===a){var n=a[1],r=a[2],u=a[3],e=a[6],o=a[7],i=a[11];t[1]=a[4],t[2]=a[8],t[3]=a[12],t[4]=n,t[6]=a[9],t[7]=a[13],t[8]=r,t[9]=e,t[11]=a[14],t[12]=u,t[13]=o,t[14]=i}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},invert:function(t,a){var n=a[0],r=a[1],u=a[2],e=a[3],o=a[4],i=a[5],h=a[6],M=a[7],c=a[8],s=a[9],f=a[10],l=a[11],v=a[12],b=a[13],m=a[14],d=a[15],p=n*i-r*o,x=n*h-u*o,q=n*M-e*o,w=r*h-u*i,y=r*M-e*i,g=u*M-e*h,A=c*b-s*v,R=c*m-f*v,P=c*d-l*v,j=s*m-f*b,z=s*d-l*b,I=f*d-l*m,S=p*I-x*z+q*j+w*P-y*R+g*A;return S?(S=1/S,t[0]=(i*I-h*z+M*j)*S,t[1]=(u*z-r*I-e*j)*S,t[2]=(b*g-m*y+d*w)*S,t[3]=(f*y-s*g-l*w)*S,t[4]=(h*P-o*I-M*R)*S,t[5]=(n*I-u*P+e*R)*S,t[6]=(m*q-v*g-d*x)*S,t[7]=(c*g-f*q+l*x)*S,t[8]=(o*z-i*P+M*A)*S,t[9]=(r*P-n*z-e*A)*S,t[10]=(v*y-b*q+d*p)*S,t[11]=(s*q-c*y-l*p)*S,t[12]=(i*R-o*j-h*A)*S,t[13]=(n*j-r*R+u*A)*S,t[14]=(b*x-v*w-m*p)*S,t[15]=(c*w-s*x+f*p)*S,t):null},adjoint:function(t,a){var n=a[0],r=a[1],u=a[2],e=a[3],o=a[4],i=a[5],h=a[6],M=a[7],c=a[8],s=a[9],f=a[10],l=a[11],v=a[12],b=a[13],m=a[14],d=a[15];return t[0]=i*(f*d-l*m)-s*(h*d-M*m)+b*(h*l-M*f),t[1]=-(r*(f*d-l*m)-s*(u*d-e*m)+b*(u*l-e*f)),t[2]=r*(h*d-M*m)-i*(u*d-e*m)+b*(u*M-e*h),t[3]=-(r*(h*l-M*f)-i*(u*l-e*f)+s*(u*M-e*h)),t[4]=-(o*(f*d-l*m)-c*(h*d-M*m)+v*(h*l-M*f)),t[5]=n*(f*d-l*m)-c*(u*d-e*m)+v*(u*l-e*f),t[6]=-(n*(h*d-M*m)-o*(u*d-e*m)+v*(u*M-e*h)),t[7]=n*(h*l-M*f)-o*(u*l-e*f)+c*(u*M-e*h),t[8]=o*(s*d-l*b)-c*(i*d-M*b)+v*(i*l-M*s),t[9]=-(n*(s*d-l*b)-c*(r*d-e*b)+v*(r*l-e*s)),t[10]=n*(i*d-M*b)-o*(r*d-e*b)+v*(r*M-e*i),t[11]=-(n*(i*l-M*s)-o*(r*l-e*s)+c*(r*M-e*i)),t[12]=-(o*(s*m-f*b)-c*(i*m-h*b)+v*(i*f-h*s)),t[13]=n*(s*m-f*b)-c*(r*m-u*b)+v*(r*f-u*s),t[14]=-(n*(i*m-h*b)-o*(r*m-u*b)+v*(r*h-u*i)),t[15]=n*(i*f-h*s)-o*(r*f-u*s)+c*(r*h-u*i),t},determinant:function(t){var a=t[0],n=t[1],r=t[2],u=t[3],e=t[4],o=t[5],i=t[6],h=t[7],M=t[8],c=t[9],s=t[10],f=t[11],l=t[12],v=t[13],b=t[14],m=t[15];return(a*o-n*e)*(s*m-f*b)-(a*i-r*e)*(c*m-f*v)+(a*h-u*e)*(c*b-s*v)+(n*i-r*o)*(M*m-f*l)-(n*h-u*o)*(M*b-s*l)+(r*h-u*i)*(M*v-c*l)},multiply:g,translate:function(t,a,n){var r,u,e,o,i,h,M,c,s,f,l,v,b=n[0],m=n[1],d=n[2];return a===t?(t[12]=a[0]*b+a[4]*m+a[8]*d+a[12],t[13]=a[1]*b+a[5]*m+a[9]*d+a[13],t[14]=a[2]*b+a[6]*m+a[10]*d+a[14],t[15]=a[3]*b+a[7]*m+a[11]*d+a[15]):(r=a[0],u=a[1],e=a[2],o=a[3],i=a[4],h=a[5],M=a[6],c=a[7],s=a[8],f=a[9],l=a[10],v=a[11],t[0]=r,t[1]=u,t[2]=e,t[3]=o,t[4]=i,t[5]=h,t[6]=M,t[7]=c,t[8]=s,t[9]=f,t[10]=l,t[11]=v,t[12]=r*b+i*m+s*d+a[12],t[13]=u*b+h*m+f*d+a[13],t[14]=e*b+M*m+l*d+a[14],t[15]=o*b+c*m+v*d+a[15]),t},scale:function(t,a,n){var r=n[0],u=n[1],e=n[2];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]*u,t[5]=a[5]*u,t[6]=a[6]*u,t[7]=a[7]*u,t[8]=a[8]*e,t[9]=a[9]*e,t[10]=a[10]*e,t[11]=a[11]*e,t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15],t},rotate:function(t,n,r,u){var e,o,i,h,M,c,s,f,l,v,b,m,d,p,x,q,w,y,g,A,R,P,j,z,I=u[0],S=u[1],E=u[2],O=Math.sqrt(I*I+S*S+E*E);return O0?(r[0]=2*(h*i+s*u+M*o-c*e)/f,r[1]=2*(M*i+s*e+c*u-h*o)/f,r[2]=2*(c*i+s*o+h*e-M*u)/f):(r[0]=2*(h*i+s*u+M*o-c*e),r[1]=2*(M*i+s*e+c*u-h*o),r[2]=2*(c*i+s*o+h*e-M*u)),A(t,a,r),t},getTranslation:R,getScaling:function(t,a){var n=a[0],r=a[1],u=a[2],e=a[4],o=a[5],i=a[6],h=a[8],M=a[9],c=a[10];return t[0]=Math.sqrt(n*n+r*r+u*u),t[1]=Math.sqrt(e*e+o*o+i*i),t[2]=Math.sqrt(h*h+M*M+c*c),t},getRotation:P,fromRotationTranslationScale:function(t,a,n,r){var u=a[0],e=a[1],o=a[2],i=a[3],h=u+u,M=e+e,c=o+o,s=u*h,f=u*M,l=u*c,v=e*M,b=e*c,m=o*c,d=i*h,p=i*M,x=i*c,q=r[0],w=r[1],y=r[2];return t[0]=(1-(v+m))*q,t[1]=(f+x)*q,t[2]=(l-p)*q,t[3]=0,t[4]=(f-x)*w,t[5]=(1-(s+m))*w,t[6]=(b+d)*w,t[7]=0,t[8]=(l+p)*y,t[9]=(b-d)*y,t[10]=(1-(s+v))*y,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t},fromRotationTranslationScaleOrigin:function(t,a,n,r,u){var e=a[0],o=a[1],i=a[2],h=a[3],M=e+e,c=o+o,s=i+i,f=e*M,l=e*c,v=e*s,b=o*c,m=o*s,d=i*s,p=h*M,x=h*c,q=h*s,w=r[0],y=r[1],g=r[2],A=u[0],R=u[1],P=u[2],j=(1-(b+d))*w,z=(l+q)*w,I=(v-x)*w,S=(l-q)*y,E=(1-(f+d))*y,O=(m+p)*y,T=(v+x)*g,D=(m-p)*g,F=(1-(f+b))*g;return t[0]=j,t[1]=z,t[2]=I,t[3]=0,t[4]=S,t[5]=E,t[6]=O,t[7]=0,t[8]=T,t[9]=D,t[10]=F,t[11]=0,t[12]=n[0]+A-(j*A+S*R+T*P),t[13]=n[1]+R-(z*A+E*R+D*P),t[14]=n[2]+P-(I*A+O*R+F*P),t[15]=1,t},fromQuat:function(t,a){var n=a[0],r=a[1],u=a[2],e=a[3],o=n+n,i=r+r,h=u+u,M=n*o,c=r*o,s=r*i,f=u*o,l=u*i,v=u*h,b=e*o,m=e*i,d=e*h;return t[0]=1-s-v,t[1]=c+d,t[2]=f-m,t[3]=0,t[4]=c-d,t[5]=1-M-v,t[6]=l+b,t[7]=0,t[8]=f+m,t[9]=l-b,t[10]=1-M-s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},frustum:function(t,a,n,r,u,e,o){var i=1/(n-a),h=1/(u-r),M=1/(e-o);return t[0]=2*e*i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*e*h,t[6]=0,t[7]=0,t[8]=(n+a)*i,t[9]=(u+r)*h,t[10]=(o+e)*M,t[11]=-1,t[12]=0,t[13]=0,t[14]=o*e*2*M,t[15]=0,t},perspective:function(t,a,n,r,u){var e,o=1/Math.tan(a/2);return t[0]=o/n,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[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=u&&u!==1/0?(e=1/(r-u),t[10]=(u+r)*e,t[14]=2*u*r*e):(t[10]=-1,t[14]=-2*r),t},perspectiveFromFieldOfView:function(t,a,n,r){var u=Math.tan(a.upDegrees*Math.PI/180),e=Math.tan(a.downDegrees*Math.PI/180),o=Math.tan(a.leftDegrees*Math.PI/180),i=Math.tan(a.rightDegrees*Math.PI/180),h=2/(o+i),M=2/(u+e);return t[0]=h,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=M,t[6]=0,t[7]=0,t[8]=-(o-i)*h*.5,t[9]=(u-e)*M*.5,t[10]=r/(n-r),t[11]=-1,t[12]=0,t[13]=0,t[14]=r*n/(n-r),t[15]=0,t},ortho:function(t,a,n,r,u,e,o){var i=1/(a-n),h=1/(r-u),M=1/(e-o);return t[0]=-2*i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*h,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*M,t[11]=0,t[12]=(a+n)*i,t[13]=(u+r)*h,t[14]=(o+e)*M,t[15]=1,t},lookAt:function(t,n,r,u){var e,o,i,h,M,c,s,f,l,v,b=n[0],m=n[1],d=n[2],p=u[0],x=u[1],q=u[2],w=r[0],g=r[1],A=r[2];return Math.abs(b-w)0&&(c*=l=1/Math.sqrt(l),s*=l,f*=l);var v=h*f-M*s,b=M*c-i*f,m=i*s-h*c;return(l=v*v+b*b+m*m)>0&&(v*=l=1/Math.sqrt(l),b*=l,m*=l),t[0]=v,t[1]=b,t[2]=m,t[3]=0,t[4]=s*m-f*b,t[5]=f*v-c*m,t[6]=c*b-s*v,t[7]=0,t[8]=c,t[9]=s,t[10]=f,t[11]=0,t[12]=u,t[13]=e,t[14]=o,t[15]=1,t},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]+")"},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))},add:function(t,a,n){return t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t[3]=a[3]+n[3],t[4]=a[4]+n[4],t[5]=a[5]+n[5],t[6]=a[6]+n[6],t[7]=a[7]+n[7],t[8]=a[8]+n[8],t[9]=a[9]+n[9],t[10]=a[10]+n[10],t[11]=a[11]+n[11],t[12]=a[12]+n[12],t[13]=a[13]+n[13],t[14]=a[14]+n[14],t[15]=a[15]+n[15],t},subtract:j,multiplyScalar:function(t,a,n){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]*n,t[5]=a[5]*n,t[6]=a[6]*n,t[7]=a[7]*n,t[8]=a[8]*n,t[9]=a[9]*n,t[10]=a[10]*n,t[11]=a[11]*n,t[12]=a[12]*n,t[13]=a[13]*n,t[14]=a[14]*n,t[15]=a[15]*n,t},multiplyScalarAndAdd:function(t,a,n,r){return t[0]=a[0]+n[0]*r,t[1]=a[1]+n[1]*r,t[2]=a[2]+n[2]*r,t[3]=a[3]+n[3]*r,t[4]=a[4]+n[4]*r,t[5]=a[5]+n[5]*r,t[6]=a[6]+n[6]*r,t[7]=a[7]+n[7]*r,t[8]=a[8]+n[8]*r,t[9]=a[9]+n[9]*r,t[10]=a[10]+n[10]*r,t[11]=a[11]+n[11]*r,t[12]=a[12]+n[12]*r,t[13]=a[13]+n[13]*r,t[14]=a[14]+n[14]*r,t[15]=a[15]+n[15]*r,t},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]},equals:function(t,n){var r=t[0],u=t[1],e=t[2],o=t[3],i=t[4],h=t[5],M=t[6],c=t[7],s=t[8],f=t[9],l=t[10],v=t[11],b=t[12],m=t[13],d=t[14],p=t[15],x=n[0],q=n[1],w=n[2],y=n[3],g=n[4],A=n[5],R=n[6],P=n[7],j=n[8],z=n[9],I=n[10],S=n[11],E=n[12],O=n[13],T=n[14],D=n[15];return Math.abs(r-x)<=a*Math.max(1,Math.abs(r),Math.abs(x))&&Math.abs(u-q)<=a*Math.max(1,Math.abs(u),Math.abs(q))&&Math.abs(e-w)<=a*Math.max(1,Math.abs(e),Math.abs(w))&&Math.abs(o-y)<=a*Math.max(1,Math.abs(o),Math.abs(y))&&Math.abs(i-g)<=a*Math.max(1,Math.abs(i),Math.abs(g))&&Math.abs(h-A)<=a*Math.max(1,Math.abs(h),Math.abs(A))&&Math.abs(M-R)<=a*Math.max(1,Math.abs(M),Math.abs(R))&&Math.abs(c-P)<=a*Math.max(1,Math.abs(c),Math.abs(P))&&Math.abs(s-j)<=a*Math.max(1,Math.abs(s),Math.abs(j))&&Math.abs(f-z)<=a*Math.max(1,Math.abs(f),Math.abs(z))&&Math.abs(l-I)<=a*Math.max(1,Math.abs(l),Math.abs(I))&&Math.abs(v-S)<=a*Math.max(1,Math.abs(v),Math.abs(S))&&Math.abs(b-E)<=a*Math.max(1,Math.abs(b),Math.abs(E))&&Math.abs(m-O)<=a*Math.max(1,Math.abs(m),Math.abs(O))&&Math.abs(d-T)<=a*Math.max(1,Math.abs(d),Math.abs(T))&&Math.abs(p-D)<=a*Math.max(1,Math.abs(p),Math.abs(D))},mul:z,sub:I});function E(){var t=new n(3);return n!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function O(t){var a=t[0],n=t[1],r=t[2];return Math.sqrt(a*a+n*n+r*r)}function T(t,a,r){var u=new n(3);return u[0]=t,u[1]=a,u[2]=r,u}function D(t,a,n){return t[0]=a[0]-n[0],t[1]=a[1]-n[1],t[2]=a[2]-n[2],t}function F(t,a,n){return t[0]=a[0]*n[0],t[1]=a[1]*n[1],t[2]=a[2]*n[2],t}function L(t,a,n){return t[0]=a[0]/n[0],t[1]=a[1]/n[1],t[2]=a[2]/n[2],t}function V(t,a){var n=a[0]-t[0],r=a[1]-t[1],u=a[2]-t[2];return Math.sqrt(n*n+r*r+u*u)}function Q(t,a){var n=a[0]-t[0],r=a[1]-t[1],u=a[2]-t[2];return n*n+r*r+u*u}function Y(t){var a=t[0],n=t[1],r=t[2];return a*a+n*n+r*r}function X(t,a){var n=a[0],r=a[1],u=a[2],e=n*n+r*r+u*u;return e>0&&(e=1/Math.sqrt(e)),t[0]=a[0]*e,t[1]=a[1]*e,t[2]=a[2]*e,t}function Z(t,a){return t[0]*a[0]+t[1]*a[1]+t[2]*a[2]}function _(t,a,n){var r=a[0],u=a[1],e=a[2],o=n[0],i=n[1],h=n[2];return t[0]=u*h-e*i,t[1]=e*o-r*h,t[2]=r*i-u*o,t}var B,N=D,k=F,U=L,W=V,C=Q,G=O,H=Y,J=(B=E(),function(t,a,n,r,u,e){var o,i;for(a||(a=3),n||(n=0),i=r?Math.min(r*a+n,t.length):t.length,o=n;o1?0:u<-1?Math.PI:Math.acos(u)},str:function(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"},exactEquals:function(t,a){return t[0]===a[0]&&t[1]===a[1]&&t[2]===a[2]},equals:function(t,n){var r=t[0],u=t[1],e=t[2],o=n[0],i=n[1],h=n[2];return Math.abs(r-o)<=a*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(u-i)<=a*Math.max(1,Math.abs(u),Math.abs(i))&&Math.abs(e-h)<=a*Math.max(1,Math.abs(e),Math.abs(h))},sub:N,mul:k,div:U,dist:W,sqrDist:C,len:G,sqrLen:H,forEach:J});function $(){var t=new n(4);return n!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function tt(t){var a=new n(4);return a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=t[3],a}function at(t,a,r,u){var e=new n(4);return e[0]=t,e[1]=a,e[2]=r,e[3]=u,e}function nt(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t}function rt(t,a,n,r,u){return t[0]=a,t[1]=n,t[2]=r,t[3]=u,t}function ut(t,a,n){return t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t[3]=a[3]+n[3],t}function et(t,a,n){return t[0]=a[0]-n[0],t[1]=a[1]-n[1],t[2]=a[2]-n[2],t[3]=a[3]-n[3],t}function ot(t,a,n){return t[0]=a[0]*n[0],t[1]=a[1]*n[1],t[2]=a[2]*n[2],t[3]=a[3]*n[3],t}function it(t,a,n){return t[0]=a[0]/n[0],t[1]=a[1]/n[1],t[2]=a[2]/n[2],t[3]=a[3]/n[3],t}function ht(t,a,n){return t[0]=a[0]*n,t[1]=a[1]*n,t[2]=a[2]*n,t[3]=a[3]*n,t}function Mt(t,a){var n=a[0]-t[0],r=a[1]-t[1],u=a[2]-t[2],e=a[3]-t[3];return Math.sqrt(n*n+r*r+u*u+e*e)}function ct(t,a){var n=a[0]-t[0],r=a[1]-t[1],u=a[2]-t[2],e=a[3]-t[3];return n*n+r*r+u*u+e*e}function st(t){var a=t[0],n=t[1],r=t[2],u=t[3];return Math.sqrt(a*a+n*n+r*r+u*u)}function ft(t){var a=t[0],n=t[1],r=t[2],u=t[3];return a*a+n*n+r*r+u*u}function lt(t,a){var n=a[0],r=a[1],u=a[2],e=a[3],o=n*n+r*r+u*u+e*e;return o>0&&(o=1/Math.sqrt(o)),t[0]=n*o,t[1]=r*o,t[2]=u*o,t[3]=e*o,t}function vt(t,a){return t[0]*a[0]+t[1]*a[1]+t[2]*a[2]+t[3]*a[3]}function bt(t,a,n,r){var u=a[0],e=a[1],o=a[2],i=a[3];return t[0]=u+r*(n[0]-u),t[1]=e+r*(n[1]-e),t[2]=o+r*(n[2]-o),t[3]=i+r*(n[3]-i),t}function mt(t,a){return t[0]===a[0]&&t[1]===a[1]&&t[2]===a[2]&&t[3]===a[3]}function dt(t,n){var r=t[0],u=t[1],e=t[2],o=t[3],i=n[0],h=n[1],M=n[2],c=n[3];return Math.abs(r-i)<=a*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(u-h)<=a*Math.max(1,Math.abs(u),Math.abs(h))&&Math.abs(e-M)<=a*Math.max(1,Math.abs(e),Math.abs(M))&&Math.abs(o-c)<=a*Math.max(1,Math.abs(o),Math.abs(c))}var pt=et,xt=ot,qt=it,wt=Mt,yt=ct,gt=st,At=ft,Rt=function(){var t=$();return function(a,n,r,u,e,o){var i,h;for(n||(n=4),r||(r=0),h=u?Math.min(u*n+r,a.length):a.length,i=r;i=1);do{h=(e=2*r()-1)*e+(o=2*r()-1)*o}while(h>=1);var M=Math.sqrt((1-i)/h);return t[0]=a*n,t[1]=a*u,t[2]=a*e*M,t[3]=a*o*M,t},transformMat4:function(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3];return t[0]=n[0]*r+n[4]*u+n[8]*e+n[12]*o,t[1]=n[1]*r+n[5]*u+n[9]*e+n[13]*o,t[2]=n[2]*r+n[6]*u+n[10]*e+n[14]*o,t[3]=n[3]*r+n[7]*u+n[11]*e+n[15]*o,t},transformQuat:function(t,a,n){var r=a[0],u=a[1],e=a[2],o=n[0],i=n[1],h=n[2],M=n[3],c=M*r+i*e-h*u,s=M*u+h*r-o*e,f=M*e+o*u-i*r,l=-o*r-i*u-h*e;return t[0]=c*M+l*-o+s*-h-f*-i,t[1]=s*M+l*-i+f*-o-c*-h,t[2]=f*M+l*-h+c*-i-s*-o,t[3]=a[3],t},str:function(t){return"vec4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},exactEquals:mt,equals:dt,sub:pt,mul:xt,div:qt,dist:wt,sqrDist:yt,len:gt,sqrLen:At,forEach:Rt});function jt(){var t=new n(4);return n!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function zt(t,a,n){n*=.5;var r=Math.sin(n);return t[0]=r*a[0],t[1]=r*a[1],t[2]=r*a[2],t[3]=Math.cos(n),t}function It(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=n[0],h=n[1],M=n[2],c=n[3];return t[0]=r*c+o*i+u*M-e*h,t[1]=u*c+o*h+e*i-r*M,t[2]=e*c+o*M+r*h-u*i,t[3]=o*c-r*i-u*h-e*M,t}function St(t,a,n){n*=.5;var r=a[0],u=a[1],e=a[2],o=a[3],i=Math.sin(n),h=Math.cos(n);return t[0]=r*h+o*i,t[1]=u*h+e*i,t[2]=e*h-u*i,t[3]=o*h-r*i,t}function Et(t,a,n){n*=.5;var r=a[0],u=a[1],e=a[2],o=a[3],i=Math.sin(n),h=Math.cos(n);return t[0]=r*h-e*i,t[1]=u*h+o*i,t[2]=e*h+r*i,t[3]=o*h-u*i,t}function Ot(t,a,n){n*=.5;var r=a[0],u=a[1],e=a[2],o=a[3],i=Math.sin(n),h=Math.cos(n);return t[0]=r*h+u*i,t[1]=u*h-r*i,t[2]=e*h+o*i,t[3]=o*h-e*i,t}function Tt(t,n,r,u){var e,o,i,h,M,c=n[0],s=n[1],f=n[2],l=n[3],v=r[0],b=r[1],m=r[2],d=r[3];return(o=c*v+s*b+f*m+l*d)<0&&(o=-o,v=-v,b=-b,m=-m,d=-d),1-o>a?(e=Math.acos(o),i=Math.sin(e),h=Math.sin((1-u)*e)/i,M=Math.sin(u*e)/i):(h=1-u,M=u),t[0]=h*c+M*v,t[1]=h*s+M*b,t[2]=h*f+M*m,t[3]=h*l+M*d,t}function Dt(t,a){var n,r=a[0]+a[4]+a[8];if(r>0)n=Math.sqrt(r+1),t[3]=.5*n,n=.5/n,t[0]=(a[5]-a[7])*n,t[1]=(a[6]-a[2])*n,t[2]=(a[1]-a[3])*n;else{var u=0;a[4]>a[0]&&(u=1),a[8]>a[3*u+u]&&(u=2);var e=(u+1)%3,o=(u+2)%3;n=Math.sqrt(a[3*u+u]-a[3*e+e]-a[3*o+o]+1),t[u]=.5*n,n=.5/n,t[3]=(a[3*e+o]-a[3*o+e])*n,t[e]=(a[3*e+u]+a[3*u+e])*n,t[o]=(a[3*o+u]+a[3*u+o])*n}return t}var Ft,Lt,Vt,Qt,Yt,Xt,Zt=tt,_t=at,Bt=nt,Nt=rt,kt=ut,Ut=It,Wt=ht,Ct=vt,Gt=bt,Ht=st,Jt=Ht,Kt=ft,$t=Kt,ta=lt,aa=mt,na=dt,ra=(Ft=E(),Lt=T(1,0,0),Vt=T(0,1,0),function(t,a,n){var r=Z(a,n);return r<-.999999?(_(Ft,Lt,a),G(Ft)<1e-6&&_(Ft,Vt,a),X(Ft,Ft),zt(t,Ft,Math.PI),t):r>.999999?(t[0]=0,t[1]=0,t[2]=0,t[3]=1,t):(_(Ft,a,n),t[0]=Ft[0],t[1]=Ft[1],t[2]=Ft[2],t[3]=1+r,ta(t,t))}),ua=(Qt=jt(),Yt=jt(),function(t,a,n,r,u,e){return Tt(Qt,a,u,e),Tt(Yt,n,r,e),Tt(t,Qt,Yt,2*e*(1-e)),t}),ea=(Xt=m(),function(t,a,n,r){return Xt[0]=n[0],Xt[3]=n[1],Xt[6]=n[2],Xt[1]=r[0],Xt[4]=r[1],Xt[7]=r[2],Xt[2]=-a[0],Xt[5]=-a[1],Xt[8]=-a[2],ta(t,Dt(t,Xt))}),oa=Object.freeze({create:jt,identity:function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},setAxisAngle:zt,getAxisAngle:function(t,n){var r=2*Math.acos(n[3]),u=Math.sin(r/2);return u>a?(t[0]=n[0]/u,t[1]=n[1]/u,t[2]=n[2]/u):(t[0]=1,t[1]=0,t[2]=0),r},multiply:It,rotateX:St,rotateY:Et,rotateZ:Ot,calculateW:function(t,a){var n=a[0],r=a[1],u=a[2];return t[0]=n,t[1]=r,t[2]=u,t[3]=Math.sqrt(Math.abs(1-n*n-r*r-u*u)),t},slerp:Tt,random:function(t){var a=r(),n=r(),u=r(),e=Math.sqrt(1-a),o=Math.sqrt(a);return t[0]=e*Math.sin(2*Math.PI*n),t[1]=e*Math.cos(2*Math.PI*n),t[2]=o*Math.sin(2*Math.PI*u),t[3]=o*Math.cos(2*Math.PI*u),t},invert:function(t,a){var n=a[0],r=a[1],u=a[2],e=a[3],o=n*n+r*r+u*u+e*e,i=o?1/o:0;return t[0]=-n*i,t[1]=-r*i,t[2]=-u*i,t[3]=e*i,t},conjugate:function(t,a){return t[0]=-a[0],t[1]=-a[1],t[2]=-a[2],t[3]=a[3],t},fromMat3:Dt,fromEuler:function(t,a,n,r){var u=.5*Math.PI/180;a*=u,n*=u,r*=u;var e=Math.sin(a),o=Math.cos(a),i=Math.sin(n),h=Math.cos(n),M=Math.sin(r),c=Math.cos(r);return t[0]=e*h*c-o*i*M,t[1]=o*i*c+e*h*M,t[2]=o*h*M-e*i*c,t[3]=o*h*c+e*i*M,t},str:function(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},clone:Zt,fromValues:_t,copy:Bt,set:Nt,add:kt,mul:Ut,scale:Wt,dot:Ct,lerp:Gt,length:Ht,len:Jt,squaredLength:Kt,sqrLen:$t,normalize:ta,exactEquals:aa,equals:na,rotationTo:ra,sqlerp:ua,setAxes:ea});function ia(t,a,n){var r=.5*n[0],u=.5*n[1],e=.5*n[2],o=a[0],i=a[1],h=a[2],M=a[3];return t[0]=o,t[1]=i,t[2]=h,t[3]=M,t[4]=r*M+u*h-e*i,t[5]=u*M+e*o-r*h,t[6]=e*M+r*i-u*o,t[7]=-r*o-u*i-e*h,t}function ha(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}var Ma=Bt;var ca=Bt;function sa(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=n[4],h=n[5],M=n[6],c=n[7],s=a[4],f=a[5],l=a[6],v=a[7],b=n[0],m=n[1],d=n[2],p=n[3];return t[0]=r*p+o*b+u*d-e*m,t[1]=u*p+o*m+e*b-r*d,t[2]=e*p+o*d+r*m-u*b,t[3]=o*p-r*b-u*m-e*d,t[4]=r*c+o*i+u*M-e*h+s*p+v*b+f*d-l*m,t[5]=u*c+o*h+e*i-r*M+f*p+v*m+l*b-s*d,t[6]=e*c+o*M+r*h-u*i+l*p+v*d+s*m-f*b,t[7]=o*c-r*i-u*h-e*M+v*p-s*b-f*m-l*d,t}var fa=sa;var la=Ct;var va=Ht,ba=va,ma=Kt,da=ma;var pa=Object.freeze({create:function(){var t=new n(8);return n!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[4]=0,t[5]=0,t[6]=0,t[7]=0),t[3]=1,t},clone:function(t){var a=new n(8);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},fromValues:function(t,a,r,u,e,o,i,h){var M=new n(8);return M[0]=t,M[1]=a,M[2]=r,M[3]=u,M[4]=e,M[5]=o,M[6]=i,M[7]=h,M},fromRotationTranslationValues:function(t,a,r,u,e,o,i){var h=new n(8);h[0]=t,h[1]=a,h[2]=r,h[3]=u;var M=.5*e,c=.5*o,s=.5*i;return h[4]=M*u+c*r-s*a,h[5]=c*u+s*t-M*r,h[6]=s*u+M*a-c*t,h[7]=-M*t-c*a-s*r,h},fromRotationTranslation:ia,fromTranslation:function(t,a){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t[4]=.5*a[0],t[5]=.5*a[1],t[6]=.5*a[2],t[7]=0,t},fromRotation:function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[4]=0,t[5]=0,t[6]=0,t[7]=0,t},fromMat4:function(t,a){var r=jt();P(r,a);var u=new n(3);return R(u,a),ia(t,r,u),t},copy:ha,identity:function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t},set:function(t,a,n,r,u,e,o,i,h){return t[0]=a,t[1]=n,t[2]=r,t[3]=u,t[4]=e,t[5]=o,t[6]=i,t[7]=h,t},getReal:Ma,getDual:function(t,a){return t[0]=a[4],t[1]=a[5],t[2]=a[6],t[3]=a[7],t},setReal:ca,setDual:function(t,a){return t[4]=a[0],t[5]=a[1],t[6]=a[2],t[7]=a[3],t},getTranslation:function(t,a){var n=a[4],r=a[5],u=a[6],e=a[7],o=-a[0],i=-a[1],h=-a[2],M=a[3];return t[0]=2*(n*M+e*o+r*h-u*i),t[1]=2*(r*M+e*i+u*o-n*h),t[2]=2*(u*M+e*h+n*i-r*o),t},translate:function(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=.5*n[0],h=.5*n[1],M=.5*n[2],c=a[4],s=a[5],f=a[6],l=a[7];return t[0]=r,t[1]=u,t[2]=e,t[3]=o,t[4]=o*i+u*M-e*h+c,t[5]=o*h+e*i-r*M+s,t[6]=o*M+r*h-u*i+f,t[7]=-r*i-u*h-e*M+l,t},rotateX:function(t,a,n){var r=-a[0],u=-a[1],e=-a[2],o=a[3],i=a[4],h=a[5],M=a[6],c=a[7],s=i*o+c*r+h*e-M*u,f=h*o+c*u+M*r-i*e,l=M*o+c*e+i*u-h*r,v=c*o-i*r-h*u-M*e;return St(t,a,n),r=t[0],u=t[1],e=t[2],o=t[3],t[4]=s*o+v*r+f*e-l*u,t[5]=f*o+v*u+l*r-s*e,t[6]=l*o+v*e+s*u-f*r,t[7]=v*o-s*r-f*u-l*e,t},rotateY:function(t,a,n){var r=-a[0],u=-a[1],e=-a[2],o=a[3],i=a[4],h=a[5],M=a[6],c=a[7],s=i*o+c*r+h*e-M*u,f=h*o+c*u+M*r-i*e,l=M*o+c*e+i*u-h*r,v=c*o-i*r-h*u-M*e;return Et(t,a,n),r=t[0],u=t[1],e=t[2],o=t[3],t[4]=s*o+v*r+f*e-l*u,t[5]=f*o+v*u+l*r-s*e,t[6]=l*o+v*e+s*u-f*r,t[7]=v*o-s*r-f*u-l*e,t},rotateZ:function(t,a,n){var r=-a[0],u=-a[1],e=-a[2],o=a[3],i=a[4],h=a[5],M=a[6],c=a[7],s=i*o+c*r+h*e-M*u,f=h*o+c*u+M*r-i*e,l=M*o+c*e+i*u-h*r,v=c*o-i*r-h*u-M*e;return Ot(t,a,n),r=t[0],u=t[1],e=t[2],o=t[3],t[4]=s*o+v*r+f*e-l*u,t[5]=f*o+v*u+l*r-s*e,t[6]=l*o+v*e+s*u-f*r,t[7]=v*o-s*r-f*u-l*e,t},rotateByQuatAppend:function(t,a,n){var r=n[0],u=n[1],e=n[2],o=n[3],i=a[0],h=a[1],M=a[2],c=a[3];return t[0]=i*o+c*r+h*e-M*u,t[1]=h*o+c*u+M*r-i*e,t[2]=M*o+c*e+i*u-h*r,t[3]=c*o-i*r-h*u-M*e,i=a[4],h=a[5],M=a[6],c=a[7],t[4]=i*o+c*r+h*e-M*u,t[5]=h*o+c*u+M*r-i*e,t[6]=M*o+c*e+i*u-h*r,t[7]=c*o-i*r-h*u-M*e,t},rotateByQuatPrepend:function(t,a,n){var r=a[0],u=a[1],e=a[2],o=a[3],i=n[0],h=n[1],M=n[2],c=n[3];return t[0]=r*c+o*i+u*M-e*h,t[1]=u*c+o*h+e*i-r*M,t[2]=e*c+o*M+r*h-u*i,t[3]=o*c-r*i-u*h-e*M,i=n[4],h=n[5],M=n[6],c=n[7],t[4]=r*c+o*i+u*M-e*h,t[5]=u*c+o*h+e*i-r*M,t[6]=e*c+o*M+r*h-u*i,t[7]=o*c-r*i-u*h-e*M,t},rotateAroundAxis:function(t,n,r,u){if(Math.abs(u)0){n=Math.sqrt(n);var r=a[0]/n,u=a[1]/n,e=a[2]/n,o=a[3]/n,i=a[4],h=a[5],M=a[6],c=a[7],s=r*i+u*h+e*M+o*c;t[0]=r,t[1]=u,t[2]=e,t[3]=o,t[4]=(i-r*s)/n,t[5]=(h-u*s)/n,t[6]=(M-e*s)/n,t[7]=(c-o*s)/n}return t},str:function(t){return"quat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+")"},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]},equals:function(t,n){var r=t[0],u=t[1],e=t[2],o=t[3],i=t[4],h=t[5],M=t[6],c=t[7],s=n[0],f=n[1],l=n[2],v=n[3],b=n[4],m=n[5],d=n[6],p=n[7];return Math.abs(r-s)<=a*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(u-f)<=a*Math.max(1,Math.abs(u),Math.abs(f))&&Math.abs(e-l)<=a*Math.max(1,Math.abs(e),Math.abs(l))&&Math.abs(o-v)<=a*Math.max(1,Math.abs(o),Math.abs(v))&&Math.abs(i-b)<=a*Math.max(1,Math.abs(i),Math.abs(b))&&Math.abs(h-m)<=a*Math.max(1,Math.abs(h),Math.abs(m))&&Math.abs(M-d)<=a*Math.max(1,Math.abs(M),Math.abs(d))&&Math.abs(c-p)<=a*Math.max(1,Math.abs(c),Math.abs(p))}});function xa(){var t=new n(2);return n!=Float32Array&&(t[0]=0,t[1]=0),t}function qa(t,a,n){return t[0]=a[0]-n[0],t[1]=a[1]-n[1],t}function wa(t,a,n){return t[0]=a[0]*n[0],t[1]=a[1]*n[1],t}function ya(t,a,n){return t[0]=a[0]/n[0],t[1]=a[1]/n[1],t}function ga(t,a){var n=a[0]-t[0],r=a[1]-t[1];return Math.sqrt(n*n+r*r)}function Aa(t,a){var n=a[0]-t[0],r=a[1]-t[1];return n*n+r*r}function Ra(t){var a=t[0],n=t[1];return Math.sqrt(a*a+n*n)}function Pa(t){var a=t[0],n=t[1];return a*a+n*n}var ja=Ra,za=qa,Ia=wa,Sa=ya,Ea=ga,Oa=Aa,Ta=Pa,Da=function(){var t=xa();return function(a,n,r,u,e,o){var i,h;for(n||(n=2),r||(r=0),h=u?Math.min(u*n+r,a.length):a.length,i=r;i0&&(u=1/Math.sqrt(u)),t[0]=a[0]*u,t[1]=a[1]*u,t},dot:function(t,a){return t[0]*a[0]+t[1]*a[1]},cross:function(t,a,n){var r=a[0]*n[1]-a[1]*n[0];return t[0]=t[1]=0,t[2]=r,t},lerp:function(t,a,n,r){var u=a[0],e=a[1];return t[0]=u+r*(n[0]-u),t[1]=e+r*(n[1]-e),t},random:function(t,a){a=a||1;var n=2*r()*Math.PI;return t[0]=Math.cos(n)*a,t[1]=Math.sin(n)*a,t},transformMat2:function(t,a,n){var r=a[0],u=a[1];return t[0]=n[0]*r+n[2]*u,t[1]=n[1]*r+n[3]*u,t},transformMat2d:function(t,a,n){var r=a[0],u=a[1];return t[0]=n[0]*r+n[2]*u+n[4],t[1]=n[1]*r+n[3]*u+n[5],t},transformMat3:function(t,a,n){var r=a[0],u=a[1];return t[0]=n[0]*r+n[3]*u+n[6],t[1]=n[1]*r+n[4]*u+n[7],t},transformMat4:function(t,a,n){var r=a[0],u=a[1];return t[0]=n[0]*r+n[4]*u+n[12],t[1]=n[1]*r+n[5]*u+n[13],t},rotate:function(t,a,n,r){var u=a[0]-n[0],e=a[1]-n[1],o=Math.sin(r),i=Math.cos(r);return t[0]=u*i-e*o+n[0],t[1]=u*o+e*i+n[1],t},angle:function(t,a){var n=t[0],r=t[1],u=a[0],e=a[1],o=n*n+r*r;o>0&&(o=1/Math.sqrt(o));var i=u*u+e*e;i>0&&(i=1/Math.sqrt(i));var h=(n*u+r*e)*o*i;return h>1?0:h<-1?Math.PI:Math.acos(h)},str:function(t){return"vec2("+t[0]+", "+t[1]+")"},exactEquals:function(t,a){return t[0]===a[0]&&t[1]===a[1]},equals:function(t,n){var r=t[0],u=t[1],e=n[0],o=n[1];return Math.abs(r-e)<=a*Math.max(1,Math.abs(r),Math.abs(e))&&Math.abs(u-o)<=a*Math.max(1,Math.abs(u),Math.abs(o))},len:ja,sub:za,mul:Ia,div:Sa,dist:Ea,sqrDist:Oa,sqrLen:Ta,forEach:Da});t.glMatrix=e,t.mat2=c,t.mat2d=b,t.mat3=w,t.mat4=S,t.quat=oa,t.quat2=pa,t.vec2=Fa,t.vec3=K,t.vec4=Pt,Object.defineProperty(t,"__esModule",{value:!0})});
+!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.glMatrix={})}(this,function(t){"use strict";var n=1e-6,a="undefined"!=typeof Float32Array?Float32Array:Array,r=Math.random;var u=Math.PI/180;var e=Object.freeze({EPSILON:n,get ARRAY_TYPE(){return a},RANDOM:r,setMatrixArrayType:function(t){a=t},toRadian:function(t){return t*u},equals:function(t,a){return Math.abs(t-a)<=n*Math.max(1,Math.abs(t),Math.abs(a))}});function o(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=a[0],h=a[1],c=a[2],M=a[3];return t[0]=r*i+e*h,t[1]=u*i+o*h,t[2]=r*c+e*M,t[3]=u*c+o*M,t}function i(t,n,a){return t[0]=n[0]-a[0],t[1]=n[1]-a[1],t[2]=n[2]-a[2],t[3]=n[3]-a[3],t}var h=o,c=i,M=Object.freeze({create:function(){var t=new a(4);return a!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t},clone:function(t){var n=new a(4);return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n},copy:function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t},identity:function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},fromValues:function(t,n,r,u){var e=new a(4);return e[0]=t,e[1]=n,e[2]=r,e[3]=u,e},set:function(t,n,a,r,u){return t[0]=n,t[1]=a,t[2]=r,t[3]=u,t},transpose:function(t,n){if(t===n){var a=n[1];t[1]=n[2],t[2]=a}else t[0]=n[0],t[1]=n[2],t[2]=n[1],t[3]=n[3];return t},invert:function(t,n){var a=n[0],r=n[1],u=n[2],e=n[3],o=a*e-u*r;return o?(o=1/o,t[0]=e*o,t[1]=-r*o,t[2]=-u*o,t[3]=a*o,t):null},adjoint:function(t,n){var a=n[0];return t[0]=n[3],t[1]=-n[1],t[2]=-n[2],t[3]=a,t},determinant:function(t){return t[0]*t[3]-t[2]*t[1]},multiply:o,rotate:function(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=Math.sin(a),h=Math.cos(a);return t[0]=r*h+e*i,t[1]=u*h+o*i,t[2]=r*-i+e*h,t[3]=u*-i+o*h,t},scale:function(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=a[0],h=a[1];return t[0]=r*i,t[1]=u*i,t[2]=e*h,t[3]=o*h,t},fromRotation:function(t,n){var a=Math.sin(n),r=Math.cos(n);return t[0]=r,t[1]=a,t[2]=-a,t[3]=r,t},fromScaling:function(t,n){return t[0]=n[0],t[1]=0,t[2]=0,t[3]=n[1],t},str:function(t){return"mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},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))},LDU:function(t,n,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,n,a]},add:function(t,n,a){return t[0]=n[0]+a[0],t[1]=n[1]+a[1],t[2]=n[2]+a[2],t[3]=n[3]+a[3],t},subtract:i,exactEquals:function(t,n){return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]},equals:function(t,a){var r=t[0],u=t[1],e=t[2],o=t[3],i=a[0],h=a[1],c=a[2],M=a[3];return Math.abs(r-i)<=n*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(u-h)<=n*Math.max(1,Math.abs(u),Math.abs(h))&&Math.abs(e-c)<=n*Math.max(1,Math.abs(e),Math.abs(c))&&Math.abs(o-M)<=n*Math.max(1,Math.abs(o),Math.abs(M))},multiplyScalar:function(t,n,a){return t[0]=n[0]*a,t[1]=n[1]*a,t[2]=n[2]*a,t[3]=n[3]*a,t},multiplyScalarAndAdd:function(t,n,a,r){return t[0]=n[0]+a[0]*r,t[1]=n[1]+a[1]*r,t[2]=n[2]+a[2]*r,t[3]=n[3]+a[3]*r,t},mul:h,sub:c});function s(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=n[4],h=n[5],c=a[0],M=a[1],s=a[2],f=a[3],l=a[4],v=a[5];return t[0]=r*c+e*M,t[1]=u*c+o*M,t[2]=r*s+e*f,t[3]=u*s+o*f,t[4]=r*l+e*v+i,t[5]=u*l+o*v+h,t}function f(t,n,a){return t[0]=n[0]-a[0],t[1]=n[1]-a[1],t[2]=n[2]-a[2],t[3]=n[3]-a[3],t[4]=n[4]-a[4],t[5]=n[5]-a[5],t}var l=s,v=f,b=Object.freeze({create:function(){var t=new a(6);return a!=Float32Array&&(t[1]=0,t[2]=0,t[4]=0,t[5]=0),t[0]=1,t[3]=1,t},clone:function(t){var n=new a(6);return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n},copy:function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[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,n,r,u,e,o){var i=new a(6);return i[0]=t,i[1]=n,i[2]=r,i[3]=u,i[4]=e,i[5]=o,i},set:function(t,n,a,r,u,e,o){return t[0]=n,t[1]=a,t[2]=r,t[3]=u,t[4]=e,t[5]=o,t},invert:function(t,n){var a=n[0],r=n[1],u=n[2],e=n[3],o=n[4],i=n[5],h=a*e-r*u;return h?(h=1/h,t[0]=e*h,t[1]=-r*h,t[2]=-u*h,t[3]=a*h,t[4]=(u*i-e*o)*h,t[5]=(r*o-a*i)*h,t):null},determinant:function(t){return t[0]*t[3]-t[1]*t[2]},multiply:s,rotate:function(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=n[4],h=n[5],c=Math.sin(a),M=Math.cos(a);return t[0]=r*M+e*c,t[1]=u*M+o*c,t[2]=r*-c+e*M,t[3]=u*-c+o*M,t[4]=i,t[5]=h,t},scale:function(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=n[4],h=n[5],c=a[0],M=a[1];return t[0]=r*c,t[1]=u*c,t[2]=e*M,t[3]=o*M,t[4]=i,t[5]=h,t},translate:function(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=n[4],h=n[5],c=a[0],M=a[1];return t[0]=r,t[1]=u,t[2]=e,t[3]=o,t[4]=r*c+e*M+i,t[5]=u*c+o*M+h,t},fromRotation:function(t,n){var a=Math.sin(n),r=Math.cos(n);return t[0]=r,t[1]=a,t[2]=-a,t[3]=r,t[4]=0,t[5]=0,t},fromScaling:function(t,n){return t[0]=n[0],t[1]=0,t[2]=0,t[3]=n[1],t[4]=0,t[5]=0,t},fromTranslation:function(t,n){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=n[0],t[5]=n[1],t},str:function(t){return"mat2d("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+")"},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)},add:function(t,n,a){return t[0]=n[0]+a[0],t[1]=n[1]+a[1],t[2]=n[2]+a[2],t[3]=n[3]+a[3],t[4]=n[4]+a[4],t[5]=n[5]+a[5],t},subtract:f,multiplyScalar:function(t,n,a){return t[0]=n[0]*a,t[1]=n[1]*a,t[2]=n[2]*a,t[3]=n[3]*a,t[4]=n[4]*a,t[5]=n[5]*a,t},multiplyScalarAndAdd:function(t,n,a,r){return t[0]=n[0]+a[0]*r,t[1]=n[1]+a[1]*r,t[2]=n[2]+a[2]*r,t[3]=n[3]+a[3]*r,t[4]=n[4]+a[4]*r,t[5]=n[5]+a[5]*r,t},exactEquals:function(t,n){return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]&&t[4]===n[4]&&t[5]===n[5]},equals:function(t,a){var r=t[0],u=t[1],e=t[2],o=t[3],i=t[4],h=t[5],c=a[0],M=a[1],s=a[2],f=a[3],l=a[4],v=a[5];return Math.abs(r-c)<=n*Math.max(1,Math.abs(r),Math.abs(c))&&Math.abs(u-M)<=n*Math.max(1,Math.abs(u),Math.abs(M))&&Math.abs(e-s)<=n*Math.max(1,Math.abs(e),Math.abs(s))&&Math.abs(o-f)<=n*Math.max(1,Math.abs(o),Math.abs(f))&&Math.abs(i-l)<=n*Math.max(1,Math.abs(i),Math.abs(l))&&Math.abs(h-v)<=n*Math.max(1,Math.abs(h),Math.abs(v))},mul:l,sub:v});function m(){var t=new a(9);return a!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function d(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=n[4],h=n[5],c=n[6],M=n[7],s=n[8],f=a[0],l=a[1],v=a[2],b=a[3],m=a[4],d=a[5],p=a[6],x=a[7],q=a[8];return t[0]=f*r+l*o+v*c,t[1]=f*u+l*i+v*M,t[2]=f*e+l*h+v*s,t[3]=b*r+m*o+d*c,t[4]=b*u+m*i+d*M,t[5]=b*e+m*h+d*s,t[6]=p*r+x*o+q*c,t[7]=p*u+x*i+q*M,t[8]=p*e+x*h+q*s,t}function p(t,n,a){return t[0]=n[0]-a[0],t[1]=n[1]-a[1],t[2]=n[2]-a[2],t[3]=n[3]-a[3],t[4]=n[4]-a[4],t[5]=n[5]-a[5],t[6]=n[6]-a[6],t[7]=n[7]-a[7],t[8]=n[8]-a[8],t}var x=d,q=p,w=Object.freeze({create:m,fromMat4:function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[4],t[4]=n[5],t[5]=n[6],t[6]=n[8],t[7]=n[9],t[8]=n[10],t},clone:function(t){var n=new a(9);return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n},copy:function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t},fromValues:function(t,n,r,u,e,o,i,h,c){var M=new a(9);return M[0]=t,M[1]=n,M[2]=r,M[3]=u,M[4]=e,M[5]=o,M[6]=i,M[7]=h,M[8]=c,M},set:function(t,n,a,r,u,e,o,i,h,c){return t[0]=n,t[1]=a,t[2]=r,t[3]=u,t[4]=e,t[5]=o,t[6]=i,t[7]=h,t[8]=c,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,n){if(t===n){var a=n[1],r=n[2],u=n[5];t[1]=n[3],t[2]=n[6],t[3]=a,t[5]=n[7],t[6]=r,t[7]=u}else t[0]=n[0],t[1]=n[3],t[2]=n[6],t[3]=n[1],t[4]=n[4],t[5]=n[7],t[6]=n[2],t[7]=n[5],t[8]=n[8];return t},invert:function(t,n){var a=n[0],r=n[1],u=n[2],e=n[3],o=n[4],i=n[5],h=n[6],c=n[7],M=n[8],s=M*o-i*c,f=-M*e+i*h,l=c*e-o*h,v=a*s+r*f+u*l;return v?(v=1/v,t[0]=s*v,t[1]=(-M*r+u*c)*v,t[2]=(i*r-u*o)*v,t[3]=f*v,t[4]=(M*a-u*h)*v,t[5]=(-i*a+u*e)*v,t[6]=l*v,t[7]=(-c*a+r*h)*v,t[8]=(o*a-r*e)*v,t):null},adjoint:function(t,n){var a=n[0],r=n[1],u=n[2],e=n[3],o=n[4],i=n[5],h=n[6],c=n[7],M=n[8];return t[0]=o*M-i*c,t[1]=u*c-r*M,t[2]=r*i-u*o,t[3]=i*h-e*M,t[4]=a*M-u*h,t[5]=u*e-a*i,t[6]=e*c-o*h,t[7]=r*h-a*c,t[8]=a*o-r*e,t},determinant:function(t){var n=t[0],a=t[1],r=t[2],u=t[3],e=t[4],o=t[5],i=t[6],h=t[7],c=t[8];return n*(c*e-o*h)+a*(-c*u+o*i)+r*(h*u-e*i)},multiply:d,translate:function(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=n[4],h=n[5],c=n[6],M=n[7],s=n[8],f=a[0],l=a[1];return t[0]=r,t[1]=u,t[2]=e,t[3]=o,t[4]=i,t[5]=h,t[6]=f*r+l*o+c,t[7]=f*u+l*i+M,t[8]=f*e+l*h+s,t},rotate:function(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=n[4],h=n[5],c=n[6],M=n[7],s=n[8],f=Math.sin(a),l=Math.cos(a);return t[0]=l*r+f*o,t[1]=l*u+f*i,t[2]=l*e+f*h,t[3]=l*o-f*r,t[4]=l*i-f*u,t[5]=l*h-f*e,t[6]=c,t[7]=M,t[8]=s,t},scale:function(t,n,a){var r=a[0],u=a[1];return t[0]=r*n[0],t[1]=r*n[1],t[2]=r*n[2],t[3]=u*n[3],t[4]=u*n[4],t[5]=u*n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t},fromTranslation:function(t,n){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=n[0],t[7]=n[1],t[8]=1,t},fromRotation:function(t,n){var a=Math.sin(n),r=Math.cos(n);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},fromScaling:function(t,n){return t[0]=n[0],t[1]=0,t[2]=0,t[3]=0,t[4]=n[1],t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},fromMat2d:function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=0,t[3]=n[2],t[4]=n[3],t[5]=0,t[6]=n[4],t[7]=n[5],t[8]=1,t},fromQuat:function(t,n){var a=n[0],r=n[1],u=n[2],e=n[3],o=a+a,i=r+r,h=u+u,c=a*o,M=r*o,s=r*i,f=u*o,l=u*i,v=u*h,b=e*o,m=e*i,d=e*h;return t[0]=1-s-v,t[3]=M-d,t[6]=f+m,t[1]=M+d,t[4]=1-c-v,t[7]=l-b,t[2]=f-m,t[5]=l+b,t[8]=1-c-s,t},normalFromMat4:function(t,n){var a=n[0],r=n[1],u=n[2],e=n[3],o=n[4],i=n[5],h=n[6],c=n[7],M=n[8],s=n[9],f=n[10],l=n[11],v=n[12],b=n[13],m=n[14],d=n[15],p=a*i-r*o,x=a*h-u*o,q=a*c-e*o,w=r*h-u*i,y=r*c-e*i,g=u*c-e*h,A=M*b-s*v,R=M*m-f*v,z=M*d-l*v,P=s*m-f*b,j=s*d-l*b,I=f*d-l*m,S=p*I-x*j+q*P+w*z-y*R+g*A;return S?(S=1/S,t[0]=(i*I-h*j+c*P)*S,t[1]=(h*z-o*I-c*R)*S,t[2]=(o*j-i*z+c*A)*S,t[3]=(u*j-r*I-e*P)*S,t[4]=(a*I-u*z+e*R)*S,t[5]=(r*z-a*j-e*A)*S,t[6]=(b*g-m*y+d*w)*S,t[7]=(m*q-v*g-d*x)*S,t[8]=(v*y-b*q+d*p)*S,t):null},projection:function(t,n,a){return t[0]=2/n,t[1]=0,t[2]=0,t[3]=0,t[4]=-2/a,t[5]=0,t[6]=-1,t[7]=1,t[8]=1,t},str:function(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"},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))},add:function(t,n,a){return t[0]=n[0]+a[0],t[1]=n[1]+a[1],t[2]=n[2]+a[2],t[3]=n[3]+a[3],t[4]=n[4]+a[4],t[5]=n[5]+a[5],t[6]=n[6]+a[6],t[7]=n[7]+a[7],t[8]=n[8]+a[8],t},subtract:p,multiplyScalar:function(t,n,a){return t[0]=n[0]*a,t[1]=n[1]*a,t[2]=n[2]*a,t[3]=n[3]*a,t[4]=n[4]*a,t[5]=n[5]*a,t[6]=n[6]*a,t[7]=n[7]*a,t[8]=n[8]*a,t},multiplyScalarAndAdd:function(t,n,a,r){return t[0]=n[0]+a[0]*r,t[1]=n[1]+a[1]*r,t[2]=n[2]+a[2]*r,t[3]=n[3]+a[3]*r,t[4]=n[4]+a[4]*r,t[5]=n[5]+a[5]*r,t[6]=n[6]+a[6]*r,t[7]=n[7]+a[7]*r,t[8]=n[8]+a[8]*r,t},exactEquals:function(t,n){return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]&&t[4]===n[4]&&t[5]===n[5]&&t[6]===n[6]&&t[7]===n[7]&&t[8]===n[8]},equals:function(t,a){var r=t[0],u=t[1],e=t[2],o=t[3],i=t[4],h=t[5],c=t[6],M=t[7],s=t[8],f=a[0],l=a[1],v=a[2],b=a[3],m=a[4],d=a[5],p=a[6],x=a[7],q=a[8];return Math.abs(r-f)<=n*Math.max(1,Math.abs(r),Math.abs(f))&&Math.abs(u-l)<=n*Math.max(1,Math.abs(u),Math.abs(l))&&Math.abs(e-v)<=n*Math.max(1,Math.abs(e),Math.abs(v))&&Math.abs(o-b)<=n*Math.max(1,Math.abs(o),Math.abs(b))&&Math.abs(i-m)<=n*Math.max(1,Math.abs(i),Math.abs(m))&&Math.abs(h-d)<=n*Math.max(1,Math.abs(h),Math.abs(d))&&Math.abs(c-p)<=n*Math.max(1,Math.abs(c),Math.abs(p))&&Math.abs(M-x)<=n*Math.max(1,Math.abs(M),Math.abs(x))&&Math.abs(s-q)<=n*Math.max(1,Math.abs(s),Math.abs(q))},mul:x,sub:q});function y(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}function g(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=n[4],h=n[5],c=n[6],M=n[7],s=n[8],f=n[9],l=n[10],v=n[11],b=n[12],m=n[13],d=n[14],p=n[15],x=a[0],q=a[1],w=a[2],y=a[3];return t[0]=x*r+q*i+w*s+y*b,t[1]=x*u+q*h+w*f+y*m,t[2]=x*e+q*c+w*l+y*d,t[3]=x*o+q*M+w*v+y*p,x=a[4],q=a[5],w=a[6],y=a[7],t[4]=x*r+q*i+w*s+y*b,t[5]=x*u+q*h+w*f+y*m,t[6]=x*e+q*c+w*l+y*d,t[7]=x*o+q*M+w*v+y*p,x=a[8],q=a[9],w=a[10],y=a[11],t[8]=x*r+q*i+w*s+y*b,t[9]=x*u+q*h+w*f+y*m,t[10]=x*e+q*c+w*l+y*d,t[11]=x*o+q*M+w*v+y*p,x=a[12],q=a[13],w=a[14],y=a[15],t[12]=x*r+q*i+w*s+y*b,t[13]=x*u+q*h+w*f+y*m,t[14]=x*e+q*c+w*l+y*d,t[15]=x*o+q*M+w*v+y*p,t}function A(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=r+r,h=u+u,c=e+e,M=r*i,s=r*h,f=r*c,l=u*h,v=u*c,b=e*c,m=o*i,d=o*h,p=o*c;return t[0]=1-(l+b),t[1]=s+p,t[2]=f-d,t[3]=0,t[4]=s-p,t[5]=1-(M+b),t[6]=v+m,t[7]=0,t[8]=f+d,t[9]=v-m,t[10]=1-(M+l),t[11]=0,t[12]=a[0],t[13]=a[1],t[14]=a[2],t[15]=1,t}function R(t,n){return t[0]=n[12],t[1]=n[13],t[2]=n[14],t}function z(t,n){var a=n[0]+n[5]+n[10],r=0;return a>0?(r=2*Math.sqrt(a+1),t[3]=.25*r,t[0]=(n[6]-n[9])/r,t[1]=(n[8]-n[2])/r,t[2]=(n[1]-n[4])/r):n[0]>n[5]&&n[0]>n[10]?(r=2*Math.sqrt(1+n[0]-n[5]-n[10]),t[3]=(n[6]-n[9])/r,t[0]=.25*r,t[1]=(n[1]+n[4])/r,t[2]=(n[8]+n[2])/r):n[5]>n[10]?(r=2*Math.sqrt(1+n[5]-n[0]-n[10]),t[3]=(n[8]-n[2])/r,t[0]=(n[1]+n[4])/r,t[1]=.25*r,t[2]=(n[6]+n[9])/r):(r=2*Math.sqrt(1+n[10]-n[0]-n[5]),t[3]=(n[1]-n[4])/r,t[0]=(n[8]+n[2])/r,t[1]=(n[6]+n[9])/r,t[2]=.25*r),t}function P(t,n,a){return t[0]=n[0]-a[0],t[1]=n[1]-a[1],t[2]=n[2]-a[2],t[3]=n[3]-a[3],t[4]=n[4]-a[4],t[5]=n[5]-a[5],t[6]=n[6]-a[6],t[7]=n[7]-a[7],t[8]=n[8]-a[8],t[9]=n[9]-a[9],t[10]=n[10]-a[10],t[11]=n[11]-a[11],t[12]=n[12]-a[12],t[13]=n[13]-a[13],t[14]=n[14]-a[14],t[15]=n[15]-a[15],t}var j=g,I=P,S=Object.freeze({create:function(){var t=new a(16);return a!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},clone:function(t){var n=new a(16);return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n},copy:function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],t},fromValues:function(t,n,r,u,e,o,i,h,c,M,s,f,l,v,b,m){var d=new a(16);return d[0]=t,d[1]=n,d[2]=r,d[3]=u,d[4]=e,d[5]=o,d[6]=i,d[7]=h,d[8]=c,d[9]=M,d[10]=s,d[11]=f,d[12]=l,d[13]=v,d[14]=b,d[15]=m,d},set:function(t,n,a,r,u,e,o,i,h,c,M,s,f,l,v,b,m){return t[0]=n,t[1]=a,t[2]=r,t[3]=u,t[4]=e,t[5]=o,t[6]=i,t[7]=h,t[8]=c,t[9]=M,t[10]=s,t[11]=f,t[12]=l,t[13]=v,t[14]=b,t[15]=m,t},identity:y,transpose:function(t,n){if(t===n){var a=n[1],r=n[2],u=n[3],e=n[6],o=n[7],i=n[11];t[1]=n[4],t[2]=n[8],t[3]=n[12],t[4]=a,t[6]=n[9],t[7]=n[13],t[8]=r,t[9]=e,t[11]=n[14],t[12]=u,t[13]=o,t[14]=i}else t[0]=n[0],t[1]=n[4],t[2]=n[8],t[3]=n[12],t[4]=n[1],t[5]=n[5],t[6]=n[9],t[7]=n[13],t[8]=n[2],t[9]=n[6],t[10]=n[10],t[11]=n[14],t[12]=n[3],t[13]=n[7],t[14]=n[11],t[15]=n[15];return t},invert:function(t,n){var a=n[0],r=n[1],u=n[2],e=n[3],o=n[4],i=n[5],h=n[6],c=n[7],M=n[8],s=n[9],f=n[10],l=n[11],v=n[12],b=n[13],m=n[14],d=n[15],p=a*i-r*o,x=a*h-u*o,q=a*c-e*o,w=r*h-u*i,y=r*c-e*i,g=u*c-e*h,A=M*b-s*v,R=M*m-f*v,z=M*d-l*v,P=s*m-f*b,j=s*d-l*b,I=f*d-l*m,S=p*I-x*j+q*P+w*z-y*R+g*A;return S?(S=1/S,t[0]=(i*I-h*j+c*P)*S,t[1]=(u*j-r*I-e*P)*S,t[2]=(b*g-m*y+d*w)*S,t[3]=(f*y-s*g-l*w)*S,t[4]=(h*z-o*I-c*R)*S,t[5]=(a*I-u*z+e*R)*S,t[6]=(m*q-v*g-d*x)*S,t[7]=(M*g-f*q+l*x)*S,t[8]=(o*j-i*z+c*A)*S,t[9]=(r*z-a*j-e*A)*S,t[10]=(v*y-b*q+d*p)*S,t[11]=(s*q-M*y-l*p)*S,t[12]=(i*R-o*P-h*A)*S,t[13]=(a*P-r*R+u*A)*S,t[14]=(b*x-v*w-m*p)*S,t[15]=(M*w-s*x+f*p)*S,t):null},adjoint:function(t,n){var a=n[0],r=n[1],u=n[2],e=n[3],o=n[4],i=n[5],h=n[6],c=n[7],M=n[8],s=n[9],f=n[10],l=n[11],v=n[12],b=n[13],m=n[14],d=n[15];return t[0]=i*(f*d-l*m)-s*(h*d-c*m)+b*(h*l-c*f),t[1]=-(r*(f*d-l*m)-s*(u*d-e*m)+b*(u*l-e*f)),t[2]=r*(h*d-c*m)-i*(u*d-e*m)+b*(u*c-e*h),t[3]=-(r*(h*l-c*f)-i*(u*l-e*f)+s*(u*c-e*h)),t[4]=-(o*(f*d-l*m)-M*(h*d-c*m)+v*(h*l-c*f)),t[5]=a*(f*d-l*m)-M*(u*d-e*m)+v*(u*l-e*f),t[6]=-(a*(h*d-c*m)-o*(u*d-e*m)+v*(u*c-e*h)),t[7]=a*(h*l-c*f)-o*(u*l-e*f)+M*(u*c-e*h),t[8]=o*(s*d-l*b)-M*(i*d-c*b)+v*(i*l-c*s),t[9]=-(a*(s*d-l*b)-M*(r*d-e*b)+v*(r*l-e*s)),t[10]=a*(i*d-c*b)-o*(r*d-e*b)+v*(r*c-e*i),t[11]=-(a*(i*l-c*s)-o*(r*l-e*s)+M*(r*c-e*i)),t[12]=-(o*(s*m-f*b)-M*(i*m-h*b)+v*(i*f-h*s)),t[13]=a*(s*m-f*b)-M*(r*m-u*b)+v*(r*f-u*s),t[14]=-(a*(i*m-h*b)-o*(r*m-u*b)+v*(r*h-u*i)),t[15]=a*(i*f-h*s)-o*(r*f-u*s)+M*(r*h-u*i),t},determinant:function(t){var n=t[0],a=t[1],r=t[2],u=t[3],e=t[4],o=t[5],i=t[6],h=t[7],c=t[8],M=t[9],s=t[10],f=t[11],l=t[12],v=t[13],b=t[14],m=t[15];return(n*o-a*e)*(s*m-f*b)-(n*i-r*e)*(M*m-f*v)+(n*h-u*e)*(M*b-s*v)+(a*i-r*o)*(c*m-f*l)-(a*h-u*o)*(c*b-s*l)+(r*h-u*i)*(c*v-M*l)},multiply:g,translate:function(t,n,a){var r,u,e,o,i,h,c,M,s,f,l,v,b=a[0],m=a[1],d=a[2];return n===t?(t[12]=n[0]*b+n[4]*m+n[8]*d+n[12],t[13]=n[1]*b+n[5]*m+n[9]*d+n[13],t[14]=n[2]*b+n[6]*m+n[10]*d+n[14],t[15]=n[3]*b+n[7]*m+n[11]*d+n[15]):(r=n[0],u=n[1],e=n[2],o=n[3],i=n[4],h=n[5],c=n[6],M=n[7],s=n[8],f=n[9],l=n[10],v=n[11],t[0]=r,t[1]=u,t[2]=e,t[3]=o,t[4]=i,t[5]=h,t[6]=c,t[7]=M,t[8]=s,t[9]=f,t[10]=l,t[11]=v,t[12]=r*b+i*m+s*d+n[12],t[13]=u*b+h*m+f*d+n[13],t[14]=e*b+c*m+l*d+n[14],t[15]=o*b+M*m+v*d+n[15]),t},scale:function(t,n,a){var r=a[0],u=a[1],e=a[2];return t[0]=n[0]*r,t[1]=n[1]*r,t[2]=n[2]*r,t[3]=n[3]*r,t[4]=n[4]*u,t[5]=n[5]*u,t[6]=n[6]*u,t[7]=n[7]*u,t[8]=n[8]*e,t[9]=n[9]*e,t[10]=n[10]*e,t[11]=n[11]*e,t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],t},rotate:function(t,a,r,u){var e,o,i,h,c,M,s,f,l,v,b,m,d,p,x,q,w,y,g,A,R,z,P,j,I=u[0],S=u[1],E=u[2],O=Math.sqrt(I*I+S*S+E*E);return O0?(r[0]=2*(h*i+s*u+c*o-M*e)/f,r[1]=2*(c*i+s*e+M*u-h*o)/f,r[2]=2*(M*i+s*o+h*e-c*u)/f):(r[0]=2*(h*i+s*u+c*o-M*e),r[1]=2*(c*i+s*e+M*u-h*o),r[2]=2*(M*i+s*o+h*e-c*u)),A(t,n,r),t},getTranslation:R,getScaling:function(t,n){var a=n[0],r=n[1],u=n[2],e=n[4],o=n[5],i=n[6],h=n[8],c=n[9],M=n[10];return t[0]=Math.sqrt(a*a+r*r+u*u),t[1]=Math.sqrt(e*e+o*o+i*i),t[2]=Math.sqrt(h*h+c*c+M*M),t},getRotation:z,fromRotationTranslationScale:function(t,n,a,r){var u=n[0],e=n[1],o=n[2],i=n[3],h=u+u,c=e+e,M=o+o,s=u*h,f=u*c,l=u*M,v=e*c,b=e*M,m=o*M,d=i*h,p=i*c,x=i*M,q=r[0],w=r[1],y=r[2];return t[0]=(1-(v+m))*q,t[1]=(f+x)*q,t[2]=(l-p)*q,t[3]=0,t[4]=(f-x)*w,t[5]=(1-(s+m))*w,t[6]=(b+d)*w,t[7]=0,t[8]=(l+p)*y,t[9]=(b-d)*y,t[10]=(1-(s+v))*y,t[11]=0,t[12]=a[0],t[13]=a[1],t[14]=a[2],t[15]=1,t},fromRotationTranslationScaleOrigin:function(t,n,a,r,u){var e=n[0],o=n[1],i=n[2],h=n[3],c=e+e,M=o+o,s=i+i,f=e*c,l=e*M,v=e*s,b=o*M,m=o*s,d=i*s,p=h*c,x=h*M,q=h*s,w=r[0],y=r[1],g=r[2],A=u[0],R=u[1],z=u[2],P=(1-(b+d))*w,j=(l+q)*w,I=(v-x)*w,S=(l-q)*y,E=(1-(f+d))*y,O=(m+p)*y,T=(v+x)*g,D=(m-p)*g,F=(1-(f+b))*g;return t[0]=P,t[1]=j,t[2]=I,t[3]=0,t[4]=S,t[5]=E,t[6]=O,t[7]=0,t[8]=T,t[9]=D,t[10]=F,t[11]=0,t[12]=a[0]+A-(P*A+S*R+T*z),t[13]=a[1]+R-(j*A+E*R+D*z),t[14]=a[2]+z-(I*A+O*R+F*z),t[15]=1,t},fromQuat:function(t,n){var a=n[0],r=n[1],u=n[2],e=n[3],o=a+a,i=r+r,h=u+u,c=a*o,M=r*o,s=r*i,f=u*o,l=u*i,v=u*h,b=e*o,m=e*i,d=e*h;return t[0]=1-s-v,t[1]=M+d,t[2]=f-m,t[3]=0,t[4]=M-d,t[5]=1-c-v,t[6]=l+b,t[7]=0,t[8]=f+m,t[9]=l-b,t[10]=1-c-s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},frustum:function(t,n,a,r,u,e,o){var i=1/(a-n),h=1/(u-r),c=1/(e-o);return t[0]=2*e*i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*e*h,t[6]=0,t[7]=0,t[8]=(a+n)*i,t[9]=(u+r)*h,t[10]=(o+e)*c,t[11]=-1,t[12]=0,t[13]=0,t[14]=o*e*2*c,t[15]=0,t},perspective:function(t,n,a,r,u){var e,o=1/Math.tan(n/2);return t[0]=o/a,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[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=u&&u!==1/0?(e=1/(r-u),t[10]=(u+r)*e,t[14]=2*u*r*e):(t[10]=-1,t[14]=-2*r),t},perspectiveFromFieldOfView:function(t,n,a,r){var u=Math.tan(n.upDegrees*Math.PI/180),e=Math.tan(n.downDegrees*Math.PI/180),o=Math.tan(n.leftDegrees*Math.PI/180),i=Math.tan(n.rightDegrees*Math.PI/180),h=2/(o+i),c=2/(u+e);return t[0]=h,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=c,t[6]=0,t[7]=0,t[8]=-(o-i)*h*.5,t[9]=(u-e)*c*.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},ortho:function(t,n,a,r,u,e,o){var i=1/(n-a),h=1/(r-u),c=1/(e-o);return t[0]=-2*i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*h,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*c,t[11]=0,t[12]=(n+a)*i,t[13]=(u+r)*h,t[14]=(o+e)*c,t[15]=1,t},lookAt:function(t,a,r,u){var e,o,i,h,c,M,s,f,l,v,b=a[0],m=a[1],d=a[2],p=u[0],x=u[1],q=u[2],w=r[0],g=r[1],A=r[2];return Math.abs(b-w)0&&(M*=l=1/Math.sqrt(l),s*=l,f*=l);var v=h*f-c*s,b=c*M-i*f,m=i*s-h*M;return(l=v*v+b*b+m*m)>0&&(v*=l=1/Math.sqrt(l),b*=l,m*=l),t[0]=v,t[1]=b,t[2]=m,t[3]=0,t[4]=s*m-f*b,t[5]=f*v-M*m,t[6]=M*b-s*v,t[7]=0,t[8]=M,t[9]=s,t[10]=f,t[11]=0,t[12]=u,t[13]=e,t[14]=o,t[15]=1,t},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]+")"},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))},add:function(t,n,a){return t[0]=n[0]+a[0],t[1]=n[1]+a[1],t[2]=n[2]+a[2],t[3]=n[3]+a[3],t[4]=n[4]+a[4],t[5]=n[5]+a[5],t[6]=n[6]+a[6],t[7]=n[7]+a[7],t[8]=n[8]+a[8],t[9]=n[9]+a[9],t[10]=n[10]+a[10],t[11]=n[11]+a[11],t[12]=n[12]+a[12],t[13]=n[13]+a[13],t[14]=n[14]+a[14],t[15]=n[15]+a[15],t},subtract:P,multiplyScalar:function(t,n,a){return t[0]=n[0]*a,t[1]=n[1]*a,t[2]=n[2]*a,t[3]=n[3]*a,t[4]=n[4]*a,t[5]=n[5]*a,t[6]=n[6]*a,t[7]=n[7]*a,t[8]=n[8]*a,t[9]=n[9]*a,t[10]=n[10]*a,t[11]=n[11]*a,t[12]=n[12]*a,t[13]=n[13]*a,t[14]=n[14]*a,t[15]=n[15]*a,t},multiplyScalarAndAdd:function(t,n,a,r){return t[0]=n[0]+a[0]*r,t[1]=n[1]+a[1]*r,t[2]=n[2]+a[2]*r,t[3]=n[3]+a[3]*r,t[4]=n[4]+a[4]*r,t[5]=n[5]+a[5]*r,t[6]=n[6]+a[6]*r,t[7]=n[7]+a[7]*r,t[8]=n[8]+a[8]*r,t[9]=n[9]+a[9]*r,t[10]=n[10]+a[10]*r,t[11]=n[11]+a[11]*r,t[12]=n[12]+a[12]*r,t[13]=n[13]+a[13]*r,t[14]=n[14]+a[14]*r,t[15]=n[15]+a[15]*r,t},exactEquals:function(t,n){return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]&&t[4]===n[4]&&t[5]===n[5]&&t[6]===n[6]&&t[7]===n[7]&&t[8]===n[8]&&t[9]===n[9]&&t[10]===n[10]&&t[11]===n[11]&&t[12]===n[12]&&t[13]===n[13]&&t[14]===n[14]&&t[15]===n[15]},equals:function(t,a){var r=t[0],u=t[1],e=t[2],o=t[3],i=t[4],h=t[5],c=t[6],M=t[7],s=t[8],f=t[9],l=t[10],v=t[11],b=t[12],m=t[13],d=t[14],p=t[15],x=a[0],q=a[1],w=a[2],y=a[3],g=a[4],A=a[5],R=a[6],z=a[7],P=a[8],j=a[9],I=a[10],S=a[11],E=a[12],O=a[13],T=a[14],D=a[15];return Math.abs(r-x)<=n*Math.max(1,Math.abs(r),Math.abs(x))&&Math.abs(u-q)<=n*Math.max(1,Math.abs(u),Math.abs(q))&&Math.abs(e-w)<=n*Math.max(1,Math.abs(e),Math.abs(w))&&Math.abs(o-y)<=n*Math.max(1,Math.abs(o),Math.abs(y))&&Math.abs(i-g)<=n*Math.max(1,Math.abs(i),Math.abs(g))&&Math.abs(h-A)<=n*Math.max(1,Math.abs(h),Math.abs(A))&&Math.abs(c-R)<=n*Math.max(1,Math.abs(c),Math.abs(R))&&Math.abs(M-z)<=n*Math.max(1,Math.abs(M),Math.abs(z))&&Math.abs(s-P)<=n*Math.max(1,Math.abs(s),Math.abs(P))&&Math.abs(f-j)<=n*Math.max(1,Math.abs(f),Math.abs(j))&&Math.abs(l-I)<=n*Math.max(1,Math.abs(l),Math.abs(I))&&Math.abs(v-S)<=n*Math.max(1,Math.abs(v),Math.abs(S))&&Math.abs(b-E)<=n*Math.max(1,Math.abs(b),Math.abs(E))&&Math.abs(m-O)<=n*Math.max(1,Math.abs(m),Math.abs(O))&&Math.abs(d-T)<=n*Math.max(1,Math.abs(d),Math.abs(T))&&Math.abs(p-D)<=n*Math.max(1,Math.abs(p),Math.abs(D))},mul:j,sub:I});function E(){var t=new a(3);return a!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function O(t){var n=t[0],a=t[1],r=t[2];return Math.sqrt(n*n+a*a+r*r)}function T(t,n,r){var u=new a(3);return u[0]=t,u[1]=n,u[2]=r,u}function D(t,n,a){return t[0]=n[0]-a[0],t[1]=n[1]-a[1],t[2]=n[2]-a[2],t}function F(t,n,a){return t[0]=n[0]*a[0],t[1]=n[1]*a[1],t[2]=n[2]*a[2],t}function L(t,n,a){return t[0]=n[0]/a[0],t[1]=n[1]/a[1],t[2]=n[2]/a[2],t}function V(t,n){var a=n[0]-t[0],r=n[1]-t[1],u=n[2]-t[2];return Math.sqrt(a*a+r*r+u*u)}function Q(t,n){var a=n[0]-t[0],r=n[1]-t[1],u=n[2]-t[2];return a*a+r*r+u*u}function Y(t){var n=t[0],a=t[1],r=t[2];return n*n+a*a+r*r}function X(t,n){var a=n[0],r=n[1],u=n[2],e=a*a+r*r+u*u;return e>0&&(e=1/Math.sqrt(e)),t[0]=n[0]*e,t[1]=n[1]*e,t[2]=n[2]*e,t}function Z(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function _(t,n,a){var r=n[0],u=n[1],e=n[2],o=a[0],i=a[1],h=a[2];return t[0]=u*h-e*i,t[1]=e*o-r*h,t[2]=r*i-u*o,t}var B,N=D,k=F,U=L,W=V,C=Q,G=O,H=Y,J=(B=E(),function(t,n,a,r,u,e){var o,i;for(n||(n=3),a||(a=0),i=r?Math.min(r*n+a,t.length):t.length,o=a;o1?0:u<-1?Math.PI:Math.acos(u)},zero:function(t){return t[0]=0,t[1]=0,t[2]=0,t},str:function(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"},exactEquals:function(t,n){return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]},equals:function(t,a){var r=t[0],u=t[1],e=t[2],o=a[0],i=a[1],h=a[2];return Math.abs(r-o)<=n*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(u-i)<=n*Math.max(1,Math.abs(u),Math.abs(i))&&Math.abs(e-h)<=n*Math.max(1,Math.abs(e),Math.abs(h))},sub:N,mul:k,div:U,dist:W,sqrDist:C,len:G,sqrLen:H,forEach:J});function $(){var t=new a(4);return a!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function tt(t){var n=new a(4);return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n}function nt(t,n,r,u){var e=new a(4);return e[0]=t,e[1]=n,e[2]=r,e[3]=u,e}function at(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t}function rt(t,n,a,r,u){return t[0]=n,t[1]=a,t[2]=r,t[3]=u,t}function ut(t,n,a){return t[0]=n[0]+a[0],t[1]=n[1]+a[1],t[2]=n[2]+a[2],t[3]=n[3]+a[3],t}function et(t,n,a){return t[0]=n[0]-a[0],t[1]=n[1]-a[1],t[2]=n[2]-a[2],t[3]=n[3]-a[3],t}function ot(t,n,a){return t[0]=n[0]*a[0],t[1]=n[1]*a[1],t[2]=n[2]*a[2],t[3]=n[3]*a[3],t}function it(t,n,a){return t[0]=n[0]/a[0],t[1]=n[1]/a[1],t[2]=n[2]/a[2],t[3]=n[3]/a[3],t}function ht(t,n,a){return t[0]=n[0]*a,t[1]=n[1]*a,t[2]=n[2]*a,t[3]=n[3]*a,t}function ct(t,n){var a=n[0]-t[0],r=n[1]-t[1],u=n[2]-t[2],e=n[3]-t[3];return Math.sqrt(a*a+r*r+u*u+e*e)}function Mt(t,n){var a=n[0]-t[0],r=n[1]-t[1],u=n[2]-t[2],e=n[3]-t[3];return a*a+r*r+u*u+e*e}function st(t){var n=t[0],a=t[1],r=t[2],u=t[3];return Math.sqrt(n*n+a*a+r*r+u*u)}function ft(t){var n=t[0],a=t[1],r=t[2],u=t[3];return n*n+a*a+r*r+u*u}function lt(t,n){var a=n[0],r=n[1],u=n[2],e=n[3],o=a*a+r*r+u*u+e*e;return o>0&&(o=1/Math.sqrt(o)),t[0]=a*o,t[1]=r*o,t[2]=u*o,t[3]=e*o,t}function vt(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]+t[3]*n[3]}function bt(t,n,a,r){var u=n[0],e=n[1],o=n[2],i=n[3];return t[0]=u+r*(a[0]-u),t[1]=e+r*(a[1]-e),t[2]=o+r*(a[2]-o),t[3]=i+r*(a[3]-i),t}function mt(t,n){return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]}function dt(t,a){var r=t[0],u=t[1],e=t[2],o=t[3],i=a[0],h=a[1],c=a[2],M=a[3];return Math.abs(r-i)<=n*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(u-h)<=n*Math.max(1,Math.abs(u),Math.abs(h))&&Math.abs(e-c)<=n*Math.max(1,Math.abs(e),Math.abs(c))&&Math.abs(o-M)<=n*Math.max(1,Math.abs(o),Math.abs(M))}var pt=et,xt=ot,qt=it,wt=ct,yt=Mt,gt=st,At=ft,Rt=function(){var t=$();return function(n,a,r,u,e,o){var i,h;for(a||(a=4),r||(r=0),h=u?Math.min(u*a+r,n.length):n.length,i=r;i=1);do{h=(e=2*r()-1)*e+(o=2*r()-1)*o}while(h>=1);var c=Math.sqrt((1-i)/h);return t[0]=n*a,t[1]=n*u,t[2]=n*e*c,t[3]=n*o*c,t},transformMat4:function(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3];return t[0]=a[0]*r+a[4]*u+a[8]*e+a[12]*o,t[1]=a[1]*r+a[5]*u+a[9]*e+a[13]*o,t[2]=a[2]*r+a[6]*u+a[10]*e+a[14]*o,t[3]=a[3]*r+a[7]*u+a[11]*e+a[15]*o,t},transformQuat:function(t,n,a){var r=n[0],u=n[1],e=n[2],o=a[0],i=a[1],h=a[2],c=a[3],M=c*r+i*e-h*u,s=c*u+h*r-o*e,f=c*e+o*u-i*r,l=-o*r-i*u-h*e;return t[0]=M*c+l*-o+s*-h-f*-i,t[1]=s*c+l*-i+f*-o-M*-h,t[2]=f*c+l*-h+M*-i-s*-o,t[3]=n[3],t},zero:function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t},str:function(t){return"vec4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},exactEquals:mt,equals:dt,sub:pt,mul:xt,div:qt,dist:wt,sqrDist:yt,len:gt,sqrLen:At,forEach:Rt});function Pt(){var t=new a(4);return a!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function jt(t,n,a){a*=.5;var r=Math.sin(a);return t[0]=r*n[0],t[1]=r*n[1],t[2]=r*n[2],t[3]=Math.cos(a),t}function It(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=a[0],h=a[1],c=a[2],M=a[3];return t[0]=r*M+o*i+u*c-e*h,t[1]=u*M+o*h+e*i-r*c,t[2]=e*M+o*c+r*h-u*i,t[3]=o*M-r*i-u*h-e*c,t}function St(t,n,a){a*=.5;var r=n[0],u=n[1],e=n[2],o=n[3],i=Math.sin(a),h=Math.cos(a);return t[0]=r*h+o*i,t[1]=u*h+e*i,t[2]=e*h-u*i,t[3]=o*h-r*i,t}function Et(t,n,a){a*=.5;var r=n[0],u=n[1],e=n[2],o=n[3],i=Math.sin(a),h=Math.cos(a);return t[0]=r*h-e*i,t[1]=u*h+o*i,t[2]=e*h+r*i,t[3]=o*h-u*i,t}function Ot(t,n,a){a*=.5;var r=n[0],u=n[1],e=n[2],o=n[3],i=Math.sin(a),h=Math.cos(a);return t[0]=r*h+u*i,t[1]=u*h-r*i,t[2]=e*h+o*i,t[3]=o*h-e*i,t}function Tt(t,a,r,u){var e,o,i,h,c,M=a[0],s=a[1],f=a[2],l=a[3],v=r[0],b=r[1],m=r[2],d=r[3];return(o=M*v+s*b+f*m+l*d)<0&&(o=-o,v=-v,b=-b,m=-m,d=-d),1-o>n?(e=Math.acos(o),i=Math.sin(e),h=Math.sin((1-u)*e)/i,c=Math.sin(u*e)/i):(h=1-u,c=u),t[0]=h*M+c*v,t[1]=h*s+c*b,t[2]=h*f+c*m,t[3]=h*l+c*d,t}function Dt(t,n){var a,r=n[0]+n[4]+n[8];if(r>0)a=Math.sqrt(r+1),t[3]=.5*a,a=.5/a,t[0]=(n[5]-n[7])*a,t[1]=(n[6]-n[2])*a,t[2]=(n[1]-n[3])*a;else{var u=0;n[4]>n[0]&&(u=1),n[8]>n[3*u+u]&&(u=2);var e=(u+1)%3,o=(u+2)%3;a=Math.sqrt(n[3*u+u]-n[3*e+e]-n[3*o+o]+1),t[u]=.5*a,a=.5/a,t[3]=(n[3*e+o]-n[3*o+e])*a,t[e]=(n[3*e+u]+n[3*u+e])*a,t[o]=(n[3*o+u]+n[3*u+o])*a}return t}var Ft,Lt,Vt,Qt,Yt,Xt,Zt=tt,_t=nt,Bt=at,Nt=rt,kt=ut,Ut=It,Wt=ht,Ct=vt,Gt=bt,Ht=st,Jt=Ht,Kt=ft,$t=Kt,tn=lt,nn=mt,an=dt,rn=(Ft=E(),Lt=T(1,0,0),Vt=T(0,1,0),function(t,n,a){var r=Z(n,a);return r<-.999999?(_(Ft,Lt,n),G(Ft)<1e-6&&_(Ft,Vt,n),X(Ft,Ft),jt(t,Ft,Math.PI),t):r>.999999?(t[0]=0,t[1]=0,t[2]=0,t[3]=1,t):(_(Ft,n,a),t[0]=Ft[0],t[1]=Ft[1],t[2]=Ft[2],t[3]=1+r,tn(t,t))}),un=(Qt=Pt(),Yt=Pt(),function(t,n,a,r,u,e){return Tt(Qt,n,u,e),Tt(Yt,a,r,e),Tt(t,Qt,Yt,2*e*(1-e)),t}),en=(Xt=m(),function(t,n,a,r){return Xt[0]=a[0],Xt[3]=a[1],Xt[6]=a[2],Xt[1]=r[0],Xt[4]=r[1],Xt[7]=r[2],Xt[2]=-n[0],Xt[5]=-n[1],Xt[8]=-n[2],tn(t,Dt(t,Xt))}),on=Object.freeze({create:Pt,identity:function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},setAxisAngle:jt,getAxisAngle:function(t,a){var r=2*Math.acos(a[3]),u=Math.sin(r/2);return u>n?(t[0]=a[0]/u,t[1]=a[1]/u,t[2]=a[2]/u):(t[0]=1,t[1]=0,t[2]=0),r},multiply:It,rotateX:St,rotateY:Et,rotateZ:Ot,calculateW:function(t,n){var a=n[0],r=n[1],u=n[2];return t[0]=a,t[1]=r,t[2]=u,t[3]=Math.sqrt(Math.abs(1-a*a-r*r-u*u)),t},slerp:Tt,random:function(t){var n=r(),a=r(),u=r(),e=Math.sqrt(1-n),o=Math.sqrt(n);return t[0]=e*Math.sin(2*Math.PI*a),t[1]=e*Math.cos(2*Math.PI*a),t[2]=o*Math.sin(2*Math.PI*u),t[3]=o*Math.cos(2*Math.PI*u),t},invert:function(t,n){var a=n[0],r=n[1],u=n[2],e=n[3],o=a*a+r*r+u*u+e*e,i=o?1/o:0;return t[0]=-a*i,t[1]=-r*i,t[2]=-u*i,t[3]=e*i,t},conjugate:function(t,n){return t[0]=-n[0],t[1]=-n[1],t[2]=-n[2],t[3]=n[3],t},fromMat3:Dt,fromEuler:function(t,n,a,r){var u=.5*Math.PI/180;n*=u,a*=u,r*=u;var e=Math.sin(n),o=Math.cos(n),i=Math.sin(a),h=Math.cos(a),c=Math.sin(r),M=Math.cos(r);return t[0]=e*h*M-o*i*c,t[1]=o*i*M+e*h*c,t[2]=o*h*c-e*i*M,t[3]=o*h*M+e*i*c,t},str:function(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},clone:Zt,fromValues:_t,copy:Bt,set:Nt,add:kt,mul:Ut,scale:Wt,dot:Ct,lerp:Gt,length:Ht,len:Jt,squaredLength:Kt,sqrLen:$t,normalize:tn,exactEquals:nn,equals:an,rotationTo:rn,sqlerp:un,setAxes:en});function hn(t,n,a){var r=.5*a[0],u=.5*a[1],e=.5*a[2],o=n[0],i=n[1],h=n[2],c=n[3];return t[0]=o,t[1]=i,t[2]=h,t[3]=c,t[4]=r*c+u*h-e*i,t[5]=u*c+e*o-r*h,t[6]=e*c+r*i-u*o,t[7]=-r*o-u*i-e*h,t}function cn(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t}var Mn=Bt;var sn=Bt;function fn(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=a[4],h=a[5],c=a[6],M=a[7],s=n[4],f=n[5],l=n[6],v=n[7],b=a[0],m=a[1],d=a[2],p=a[3];return t[0]=r*p+o*b+u*d-e*m,t[1]=u*p+o*m+e*b-r*d,t[2]=e*p+o*d+r*m-u*b,t[3]=o*p-r*b-u*m-e*d,t[4]=r*M+o*i+u*c-e*h+s*p+v*b+f*d-l*m,t[5]=u*M+o*h+e*i-r*c+f*p+v*m+l*b-s*d,t[6]=e*M+o*c+r*h-u*i+l*p+v*d+s*m-f*b,t[7]=o*M-r*i-u*h-e*c+v*p-s*b-f*m-l*d,t}var ln=fn;var vn=Ct;var bn=Ht,mn=bn,dn=Kt,pn=dn;var xn=Object.freeze({create:function(){var t=new a(8);return a!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[4]=0,t[5]=0,t[6]=0,t[7]=0),t[3]=1,t},clone:function(t){var n=new a(8);return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n},fromValues:function(t,n,r,u,e,o,i,h){var c=new a(8);return c[0]=t,c[1]=n,c[2]=r,c[3]=u,c[4]=e,c[5]=o,c[6]=i,c[7]=h,c},fromRotationTranslationValues:function(t,n,r,u,e,o,i){var h=new a(8);h[0]=t,h[1]=n,h[2]=r,h[3]=u;var c=.5*e,M=.5*o,s=.5*i;return h[4]=c*u+M*r-s*n,h[5]=M*u+s*t-c*r,h[6]=s*u+c*n-M*t,h[7]=-c*t-M*n-s*r,h},fromRotationTranslation:hn,fromTranslation:function(t,n){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t[4]=.5*n[0],t[5]=.5*n[1],t[6]=.5*n[2],t[7]=0,t},fromRotation:function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=0,t[5]=0,t[6]=0,t[7]=0,t},fromMat4:function(t,n){var r=Pt();z(r,n);var u=new a(3);return R(u,n),hn(t,r,u),t},copy:cn,identity:function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t},set:function(t,n,a,r,u,e,o,i,h){return t[0]=n,t[1]=a,t[2]=r,t[3]=u,t[4]=e,t[5]=o,t[6]=i,t[7]=h,t},getReal:Mn,getDual:function(t,n){return t[0]=n[4],t[1]=n[5],t[2]=n[6],t[3]=n[7],t},setReal:sn,setDual:function(t,n){return t[4]=n[0],t[5]=n[1],t[6]=n[2],t[7]=n[3],t},getTranslation:function(t,n){var a=n[4],r=n[5],u=n[6],e=n[7],o=-n[0],i=-n[1],h=-n[2],c=n[3];return t[0]=2*(a*c+e*o+r*h-u*i),t[1]=2*(r*c+e*i+u*o-a*h),t[2]=2*(u*c+e*h+a*i-r*o),t},translate:function(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=.5*a[0],h=.5*a[1],c=.5*a[2],M=n[4],s=n[5],f=n[6],l=n[7];return t[0]=r,t[1]=u,t[2]=e,t[3]=o,t[4]=o*i+u*c-e*h+M,t[5]=o*h+e*i-r*c+s,t[6]=o*c+r*h-u*i+f,t[7]=-r*i-u*h-e*c+l,t},rotateX:function(t,n,a){var r=-n[0],u=-n[1],e=-n[2],o=n[3],i=n[4],h=n[5],c=n[6],M=n[7],s=i*o+M*r+h*e-c*u,f=h*o+M*u+c*r-i*e,l=c*o+M*e+i*u-h*r,v=M*o-i*r-h*u-c*e;return St(t,n,a),r=t[0],u=t[1],e=t[2],o=t[3],t[4]=s*o+v*r+f*e-l*u,t[5]=f*o+v*u+l*r-s*e,t[6]=l*o+v*e+s*u-f*r,t[7]=v*o-s*r-f*u-l*e,t},rotateY:function(t,n,a){var r=-n[0],u=-n[1],e=-n[2],o=n[3],i=n[4],h=n[5],c=n[6],M=n[7],s=i*o+M*r+h*e-c*u,f=h*o+M*u+c*r-i*e,l=c*o+M*e+i*u-h*r,v=M*o-i*r-h*u-c*e;return Et(t,n,a),r=t[0],u=t[1],e=t[2],o=t[3],t[4]=s*o+v*r+f*e-l*u,t[5]=f*o+v*u+l*r-s*e,t[6]=l*o+v*e+s*u-f*r,t[7]=v*o-s*r-f*u-l*e,t},rotateZ:function(t,n,a){var r=-n[0],u=-n[1],e=-n[2],o=n[3],i=n[4],h=n[5],c=n[6],M=n[7],s=i*o+M*r+h*e-c*u,f=h*o+M*u+c*r-i*e,l=c*o+M*e+i*u-h*r,v=M*o-i*r-h*u-c*e;return Ot(t,n,a),r=t[0],u=t[1],e=t[2],o=t[3],t[4]=s*o+v*r+f*e-l*u,t[5]=f*o+v*u+l*r-s*e,t[6]=l*o+v*e+s*u-f*r,t[7]=v*o-s*r-f*u-l*e,t},rotateByQuatAppend:function(t,n,a){var r=a[0],u=a[1],e=a[2],o=a[3],i=n[0],h=n[1],c=n[2],M=n[3];return t[0]=i*o+M*r+h*e-c*u,t[1]=h*o+M*u+c*r-i*e,t[2]=c*o+M*e+i*u-h*r,t[3]=M*o-i*r-h*u-c*e,i=n[4],h=n[5],c=n[6],M=n[7],t[4]=i*o+M*r+h*e-c*u,t[5]=h*o+M*u+c*r-i*e,t[6]=c*o+M*e+i*u-h*r,t[7]=M*o-i*r-h*u-c*e,t},rotateByQuatPrepend:function(t,n,a){var r=n[0],u=n[1],e=n[2],o=n[3],i=a[0],h=a[1],c=a[2],M=a[3];return t[0]=r*M+o*i+u*c-e*h,t[1]=u*M+o*h+e*i-r*c,t[2]=e*M+o*c+r*h-u*i,t[3]=o*M-r*i-u*h-e*c,i=a[4],h=a[5],c=a[6],M=a[7],t[4]=r*M+o*i+u*c-e*h,t[5]=u*M+o*h+e*i-r*c,t[6]=e*M+o*c+r*h-u*i,t[7]=o*M-r*i-u*h-e*c,t},rotateAroundAxis:function(t,a,r,u){if(Math.abs(u)0){a=Math.sqrt(a);var r=n[0]/a,u=n[1]/a,e=n[2]/a,o=n[3]/a,i=n[4],h=n[5],c=n[6],M=n[7],s=r*i+u*h+e*c+o*M;t[0]=r,t[1]=u,t[2]=e,t[3]=o,t[4]=(i-r*s)/a,t[5]=(h-u*s)/a,t[6]=(c-e*s)/a,t[7]=(M-o*s)/a}return t},str:function(t){return"quat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+")"},exactEquals:function(t,n){return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]&&t[4]===n[4]&&t[5]===n[5]&&t[6]===n[6]&&t[7]===n[7]},equals:function(t,a){var r=t[0],u=t[1],e=t[2],o=t[3],i=t[4],h=t[5],c=t[6],M=t[7],s=a[0],f=a[1],l=a[2],v=a[3],b=a[4],m=a[5],d=a[6],p=a[7];return Math.abs(r-s)<=n*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(u-f)<=n*Math.max(1,Math.abs(u),Math.abs(f))&&Math.abs(e-l)<=n*Math.max(1,Math.abs(e),Math.abs(l))&&Math.abs(o-v)<=n*Math.max(1,Math.abs(o),Math.abs(v))&&Math.abs(i-b)<=n*Math.max(1,Math.abs(i),Math.abs(b))&&Math.abs(h-m)<=n*Math.max(1,Math.abs(h),Math.abs(m))&&Math.abs(c-d)<=n*Math.max(1,Math.abs(c),Math.abs(d))&&Math.abs(M-p)<=n*Math.max(1,Math.abs(M),Math.abs(p))}});function qn(){var t=new a(2);return a!=Float32Array&&(t[0]=0,t[1]=0),t}function wn(t,n,a){return t[0]=n[0]-a[0],t[1]=n[1]-a[1],t}function yn(t,n,a){return t[0]=n[0]*a[0],t[1]=n[1]*a[1],t}function gn(t,n,a){return t[0]=n[0]/a[0],t[1]=n[1]/a[1],t}function An(t,n){var a=n[0]-t[0],r=n[1]-t[1];return Math.sqrt(a*a+r*r)}function Rn(t,n){var a=n[0]-t[0],r=n[1]-t[1];return a*a+r*r}function zn(t){var n=t[0],a=t[1];return Math.sqrt(n*n+a*a)}function Pn(t){var n=t[0],a=t[1];return n*n+a*a}var jn=zn,In=wn,Sn=yn,En=gn,On=An,Tn=Rn,Dn=Pn,Fn=function(){var t=qn();return function(n,a,r,u,e,o){var i,h;for(a||(a=2),r||(r=0),h=u?Math.min(u*a+r,n.length):n.length,i=r;i0&&(u=1/Math.sqrt(u)),t[0]=n[0]*u,t[1]=n[1]*u,t},dot:function(t,n){return t[0]*n[0]+t[1]*n[1]},cross:function(t,n,a){var r=n[0]*a[1]-n[1]*a[0];return t[0]=t[1]=0,t[2]=r,t},lerp:function(t,n,a,r){var u=n[0],e=n[1];return t[0]=u+r*(a[0]-u),t[1]=e+r*(a[1]-e),t},random:function(t,n){n=n||1;var a=2*r()*Math.PI;return t[0]=Math.cos(a)*n,t[1]=Math.sin(a)*n,t},transformMat2:function(t,n,a){var r=n[0],u=n[1];return t[0]=a[0]*r+a[2]*u,t[1]=a[1]*r+a[3]*u,t},transformMat2d:function(t,n,a){var r=n[0],u=n[1];return t[0]=a[0]*r+a[2]*u+a[4],t[1]=a[1]*r+a[3]*u+a[5],t},transformMat3:function(t,n,a){var r=n[0],u=n[1];return t[0]=a[0]*r+a[3]*u+a[6],t[1]=a[1]*r+a[4]*u+a[7],t},transformMat4:function(t,n,a){var r=n[0],u=n[1];return t[0]=a[0]*r+a[4]*u+a[12],t[1]=a[1]*r+a[5]*u+a[13],t},rotate:function(t,n,a,r){var u=n[0]-a[0],e=n[1]-a[1],o=Math.sin(r),i=Math.cos(r);return t[0]=u*i-e*o+a[0],t[1]=u*o+e*i+a[1],t},angle:function(t,n){var a=t[0],r=t[1],u=n[0],e=n[1],o=a*a+r*r;o>0&&(o=1/Math.sqrt(o));var i=u*u+e*e;i>0&&(i=1/Math.sqrt(i));var h=(a*u+r*e)*o*i;return h>1?0:h<-1?Math.PI:Math.acos(h)},zero:function(t){return t[0]=0,t[1]=0,t},str:function(t){return"vec2("+t[0]+", "+t[1]+")"},exactEquals:function(t,n){return t[0]===n[0]&&t[1]===n[1]},equals:function(t,a){var r=t[0],u=t[1],e=a[0],o=a[1];return Math.abs(r-e)<=n*Math.max(1,Math.abs(r),Math.abs(e))&&Math.abs(u-o)<=n*Math.max(1,Math.abs(u),Math.abs(o))},len:jn,sub:In,mul:Sn,div:En,dist:On,sqrDist:Tn,sqrLen:Dn,forEach:Fn});t.glMatrix=e,t.mat2=M,t.mat2d=b,t.mat3=w,t.mat4=S,t.quat=on,t.quat2=xn,t.vec2=Ln,t.vec3=K,t.vec4=zt,Object.defineProperty(t,"__esModule",{value:!0})});
diff --git a/dist/gl-matrix.js b/dist/gl-matrix.js
index bf6aea1f..d7b9770f 100644
--- a/dist/gl-matrix.js
+++ b/dist/gl-matrix.js
@@ -5,7 +5,7 @@
@author Colin MacKenzie IV
@version 3.0.0-0
-Copyright (c) 2015-2018, Brandon Jones, Colin MacKenzie IV.
+Copyright (c) 2015-2019, Brandon Jones, Colin MacKenzie IV.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -4371,6 +4371,19 @@ THE SOFTWARE.
return Math.acos(cosine);
}
}
+ /**
+ * Set the components of a vec3 to zero
+ *
+ * @param {vec3} out the receiving vector
+ * @returns {vec3} out
+ */
+
+ function zero(out) {
+ out[0] = 0.0;
+ out[1] = 0.0;
+ out[2] = 0.0;
+ return out;
+ }
/**
* Returns a string representation of a vector
*
@@ -4534,6 +4547,7 @@ THE SOFTWARE.
rotateY: rotateY$1,
rotateZ: rotateZ$1,
angle: angle,
+ zero: zero,
str: str$4,
exactEquals: exactEquals$4,
equals: equals$5,
@@ -4934,6 +4948,33 @@ THE SOFTWARE.
function dot$1(a, b) {
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
}
+ /**
+ * Returns the cross-product of three vectors in a 4-dimensional space
+ *
+ * @param {vec4} result the receiving vector
+ * @param {vec4} U the first vector
+ * @param {vec4} V the second vector
+ * @param {vec4} W the third vector
+ * @returns {vec4} result
+ */
+
+ function cross$1(out, u, v, w) {
+ var A = v[0] * w[1] - v[1] * w[0],
+ B = v[0] * w[2] - v[2] * w[0],
+ C = v[0] * w[3] - v[3] * w[0],
+ D = v[1] * w[2] - v[2] * w[1],
+ E = v[1] * w[3] - v[3] * w[1],
+ F = v[2] * w[3] - v[3] * w[2];
+ var G = u[0];
+ var H = u[1];
+ var I = u[2];
+ var J = u[3];
+ out[0] = H * F - I * E + J * D;
+ out[1] = -(G * F) + I * C - J * B;
+ out[2] = G * E - H * C + J * A;
+ out[3] = -(G * D) + H * B - I * A;
+ return out;
+ }
/**
* Performs a linear interpolation between two vec4's
*
@@ -5039,6 +5080,20 @@ THE SOFTWARE.
out[3] = a[3];
return out;
}
+ /**
+ * Set the components of a vec4 to zero
+ *
+ * @param {vec4} out the receiving vector
+ * @returns {vec4} out
+ */
+
+ function zero$1(out) {
+ out[0] = 0.0;
+ out[1] = 0.0;
+ out[2] = 0.0;
+ out[3] = 0.0;
+ return out;
+ }
/**
* Returns a string representation of a vector
*
@@ -5194,10 +5249,12 @@ THE SOFTWARE.
inverse: inverse$1,
normalize: normalize$1,
dot: dot$1,
+ cross: cross$1,
lerp: lerp$1,
random: random$1,
transformMat4: transformMat4$1,
transformQuat: transformQuat$1,
+ zero: zero$1,
str: str$5,
exactEquals: exactEquals$5,
equals: equals$6,
@@ -7107,7 +7164,7 @@ THE SOFTWARE.
* @returns {vec3} out
*/
- function cross$1(out, a, b) {
+ function cross$2(out, a, b) {
var z = a[0] * b[1] - a[1] * b[0];
out[0] = out[1] = 0;
out[2] = z;
@@ -7268,6 +7325,18 @@ THE SOFTWARE.
return Math.acos(cosine);
}
}
+ /**
+ * Set the components of a vec2 to zero
+ *
+ * @param {vec2} out the receiving vector
+ * @returns {vec2} out
+ */
+
+ function zero$2(out) {
+ out[0] = 0.0;
+ out[1] = 0.0;
+ return out;
+ }
/**
* Returns a string representation of a vector
*
@@ -7415,7 +7484,7 @@ THE SOFTWARE.
inverse: inverse$2,
normalize: normalize$4,
dot: dot$4,
- cross: cross$1,
+ cross: cross$2,
lerp: lerp$4,
random: random$3,
transformMat2: transformMat2,
@@ -7424,6 +7493,7 @@ THE SOFTWARE.
transformMat4: transformMat4$2,
rotate: rotate$4,
angle: angle$1,
+ zero: zero$2,
str: str$8,
exactEquals: exactEquals$8,
equals: equals$9,