Repository navigation
Expand file tree
/
Copy pathgl-matrix.js
More file actions
28 lines (23 loc) · 54.5 KB
/
Copy pathgl-matrix.js
File metadata and controls
28 lines (23 loc) · 54.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*!
@fileoverview gl-matrix - High performance matrix and vector operations
@author Brandon Jones
@author Colin MacKenzie IV
@version 3.3.0
Copyright (c) 2015-2020, 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
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
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="undefined"!=typeof globalThis?globalThis:t||self).glMatrix={})}(this,function(t){"use strict";var a=1e-6,n="undefined"!=typeof Float32Array?Float32Array:Array,r=Math.random;var e=Math.PI/180;Math.hypot||(Math.hypot=function(){for(var t=0,a=arguments.length;a--;)t+=arguments[a]*arguments[a];return Math.sqrt(t)});var o=Object.freeze({__proto__:null,EPSILON:a,get ARRAY_TYPE(){return n},RANDOM:r,setMatrixArrayType:function setMatrixArrayType(t){n=t},toRadian:function toRadian(t){return t*e},equals:function equals(t,n){return Math.abs(t-n)<=a*Math.max(1,Math.abs(t),Math.abs(n))}});function multiply(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=n[0],s=n[1],c=n[2],h=n[3];return t[0]=r*i+o*s,t[1]=e*i+u*s,t[2]=r*c+o*h,t[3]=e*c+u*h,t}function subtract(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 u=multiply,i=subtract,s=Object.freeze({__proto__:null,create:function create(){var t=new n(4);return n!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t},clone:function clone(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 copy(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t},identity:function identity(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},fromValues:function fromValues(t,a,r,e){var o=new n(4);return o[0]=t,o[1]=a,o[2]=r,o[3]=e,o},set:function set(t,a,n,r,e){return t[0]=a,t[1]=n,t[2]=r,t[3]=e,t},transpose:function transpose(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 invert(t,a){var n=a[0],r=a[1],e=a[2],o=a[3],u=n*o-e*r;return u?(u=1/u,t[0]=o*u,t[1]=-r*u,t[2]=-e*u,t[3]=n*u,t):null},adjoint:function adjoint(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 determinant(t){return t[0]*t[3]-t[2]*t[1]},multiply:multiply,rotate:function rotate(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=Math.sin(n),s=Math.cos(n);return t[0]=r*s+o*i,t[1]=e*s+u*i,t[2]=r*-i+o*s,t[3]=e*-i+u*s,t},scale:function scale(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=n[0],s=n[1];return t[0]=r*i,t[1]=e*i,t[2]=o*s,t[3]=u*s,t},fromRotation:function fromRotation(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 fromScaling(t,a){return t[0]=a[0],t[1]=0,t[2]=0,t[3]=a[1],t},str:function str(t){return"mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},frob:function frob(t){return Math.hypot(t[0],t[1],t[2],t[3])},LDU:function LDU(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 add(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:subtract,exactEquals:function exactEquals(t,a){return t[0]===a[0]&&t[1]===a[1]&&t[2]===a[2]&&t[3]===a[3]},equals:function equals$1(t,n){var r=t[0],e=t[1],o=t[2],u=t[3],i=n[0],s=n[1],c=n[2],h=n[3];return Math.abs(r-i)<=a*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(e-s)<=a*Math.max(1,Math.abs(e),Math.abs(s))&&Math.abs(o-c)<=a*Math.max(1,Math.abs(o),Math.abs(c))&&Math.abs(u-h)<=a*Math.max(1,Math.abs(u),Math.abs(h))},multiplyScalar:function multiplyScalar(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 multiplyScalarAndAdd(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:u,sub:i});function multiply$1(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=a[4],s=a[5],c=n[0],h=n[1],l=n[2],f=n[3],M=n[4],m=n[5];return t[0]=r*c+o*h,t[1]=e*c+u*h,t[2]=r*l+o*f,t[3]=e*l+u*f,t[4]=r*M+o*m+i,t[5]=e*M+u*m+s,t}function subtract$1(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 c=multiply$1,h=subtract$1,l=Object.freeze({__proto__:null,create:function create$1(){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 clone$1(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 copy$1(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 identity$1(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},fromValues:function fromValues$1(t,a,r,e,o,u){var i=new n(6);return i[0]=t,i[1]=a,i[2]=r,i[3]=e,i[4]=o,i[5]=u,i},set:function set$1(t,a,n,r,e,o,u){return t[0]=a,t[1]=n,t[2]=r,t[3]=e,t[4]=o,t[5]=u,t},invert:function invert$1(t,a){var n=a[0],r=a[1],e=a[2],o=a[3],u=a[4],i=a[5],s=n*o-r*e;return s?(s=1/s,t[0]=o*s,t[1]=-r*s,t[2]=-e*s,t[3]=n*s,t[4]=(e*i-o*u)*s,t[5]=(r*u-n*i)*s,t):null},determinant:function determinant$1(t){return t[0]*t[3]-t[1]*t[2]},multiply:multiply$1,rotate:function rotate$1(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=a[4],s=a[5],c=Math.sin(n),h=Math.cos(n);return t[0]=r*h+o*c,t[1]=e*h+u*c,t[2]=r*-c+o*h,t[3]=e*-c+u*h,t[4]=i,t[5]=s,t},scale:function scale$1(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=a[4],s=a[5],c=n[0],h=n[1];return t[0]=r*c,t[1]=e*c,t[2]=o*h,t[3]=u*h,t[4]=i,t[5]=s,t},translate:function translate(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=a[4],s=a[5],c=n[0],h=n[1];return t[0]=r,t[1]=e,t[2]=o,t[3]=u,t[4]=r*c+o*h+i,t[5]=e*c+u*h+s,t},fromRotation:function fromRotation$1(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 fromScaling$1(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 fromTranslation(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 str$1(t){return"mat2d("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+")"},frob:function frob$1(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],1)},add:function add$1(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:subtract$1,multiplyScalar:function multiplyScalar$1(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 multiplyScalarAndAdd$1(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 exactEquals$1(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 equals$2(t,n){var r=t[0],e=t[1],o=t[2],u=t[3],i=t[4],s=t[5],c=n[0],h=n[1],l=n[2],f=n[3],M=n[4],m=n[5];return Math.abs(r-c)<=a*Math.max(1,Math.abs(r),Math.abs(c))&&Math.abs(e-h)<=a*Math.max(1,Math.abs(e),Math.abs(h))&&Math.abs(o-l)<=a*Math.max(1,Math.abs(o),Math.abs(l))&&Math.abs(u-f)<=a*Math.max(1,Math.abs(u),Math.abs(f))&&Math.abs(i-M)<=a*Math.max(1,Math.abs(i),Math.abs(M))&&Math.abs(s-m)<=a*Math.max(1,Math.abs(s),Math.abs(m))},mul:c,sub:h});function create$2(){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 multiply$2(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=a[4],s=a[5],c=a[6],h=a[7],l=a[8],f=n[0],M=n[1],m=n[2],$=n[3],d=n[4],v=n[5],b=n[6],p=n[7],y=n[8];return t[0]=f*r+M*u+m*c,t[1]=f*e+M*i+m*h,t[2]=f*o+M*s+m*l,t[3]=$*r+d*u+v*c,t[4]=$*e+d*i+v*h,t[5]=$*o+d*s+v*l,t[6]=b*r+p*u+y*c,t[7]=b*e+p*i+y*h,t[8]=b*o+p*s+y*l,t}function subtract$2(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 f=multiply$2,M=subtract$2,m=Object.freeze({__proto__:null,create:create$2,fromMat4:function fromMat4(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 clone$2(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 copy$2(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 fromValues$2(t,a,r,e,o,u,i,s,c){var h=new n(9);return h[0]=t,h[1]=a,h[2]=r,h[3]=e,h[4]=o,h[5]=u,h[6]=i,h[7]=s,h[8]=c,h},set:function set$2(t,a,n,r,e,o,u,i,s,c){return t[0]=a,t[1]=n,t[2]=r,t[3]=e,t[4]=o,t[5]=u,t[6]=i,t[7]=s,t[8]=c,t},identity:function identity$2(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 transpose$1(t,a){if(t===a){var n=a[1],r=a[2],e=a[5];t[1]=a[3],t[2]=a[6],t[3]=n,t[5]=a[7],t[6]=r,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},invert:function invert$2(t,a){var n=a[0],r=a[1],e=a[2],o=a[3],u=a[4],i=a[5],s=a[6],c=a[7],h=a[8],l=h*u-i*c,f=-h*o+i*s,M=c*o-u*s,m=n*l+r*f+e*M;return m?(m=1/m,t[0]=l*m,t[1]=(-h*r+e*c)*m,t[2]=(i*r-e*u)*m,t[3]=f*m,t[4]=(h*n-e*s)*m,t[5]=(-i*n+e*o)*m,t[6]=M*m,t[7]=(-c*n+r*s)*m,t[8]=(u*n-r*o)*m,t):null},adjoint:function adjoint$1(t,a){var n=a[0],r=a[1],e=a[2],o=a[3],u=a[4],i=a[5],s=a[6],c=a[7],h=a[8];return t[0]=u*h-i*c,t[1]=e*c-r*h,t[2]=r*i-e*u,t[3]=i*s-o*h,t[4]=n*h-e*s,t[5]=e*o-n*i,t[6]=o*c-u*s,t[7]=r*s-n*c,t[8]=n*u-r*o,t},determinant:function determinant$2(t){var a=t[0],n=t[1],r=t[2],e=t[3],o=t[4],u=t[5],i=t[6],s=t[7],c=t[8];return a*(c*o-u*s)+n*(-c*e+u*i)+r*(s*e-o*i)},multiply:multiply$2,translate:function translate$1(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=a[4],s=a[5],c=a[6],h=a[7],l=a[8],f=n[0],M=n[1];return t[0]=r,t[1]=e,t[2]=o,t[3]=u,t[4]=i,t[5]=s,t[6]=f*r+M*u+c,t[7]=f*e+M*i+h,t[8]=f*o+M*s+l,t},rotate:function rotate$2(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=a[4],s=a[5],c=a[6],h=a[7],l=a[8],f=Math.sin(n),M=Math.cos(n);return t[0]=M*r+f*u,t[1]=M*e+f*i,t[2]=M*o+f*s,t[3]=M*u-f*r,t[4]=M*i-f*e,t[5]=M*s-f*o,t[6]=c,t[7]=h,t[8]=l,t},scale:function scale$2(t,a,n){var r=n[0],e=n[1];return t[0]=r*a[0],t[1]=r*a[1],t[2]=r*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},fromTranslation:function fromTranslation$1(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 fromRotation$2(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 fromScaling$2(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 fromMat2d(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 fromQuat(t,a){var n=a[0],r=a[1],e=a[2],o=a[3],u=n+n,i=r+r,s=e+e,c=n*u,h=r*u,l=r*i,f=e*u,M=e*i,m=e*s,$=o*u,d=o*i,v=o*s;return t[0]=1-l-m,t[3]=h-v,t[6]=f+d,t[1]=h+v,t[4]=1-c-m,t[7]=M-$,t[2]=f-d,t[5]=M+$,t[8]=1-c-l,t},normalFromMat4:function normalFromMat4(t,a){var n=a[0],r=a[1],e=a[2],o=a[3],u=a[4],i=a[5],s=a[6],c=a[7],h=a[8],l=a[9],f=a[10],M=a[11],m=a[12],$=a[13],d=a[14],v=a[15],b=n*i-r*u,p=n*s-e*u,y=n*c-o*u,x=r*s-e*i,g=r*c-o*i,q=e*c-o*s,A=h*$-l*m,_=h*d-f*m,R=h*v-M*m,T=l*d-f*$,w=l*v-M*$,z=f*v-M*d,S=b*z-p*w+y*T+x*R-g*_+q*A;return S?(S=1/S,t[0]=(i*z-s*w+c*T)*S,t[1]=(s*R-u*z-c*_)*S,t[2]=(u*w-i*R+c*A)*S,t[3]=(e*w-r*z-o*T)*S,t[4]=(n*z-e*R+o*_)*S,t[5]=(r*R-n*w-o*A)*S,t[6]=($*q-d*g+v*x)*S,t[7]=(d*y-m*q-v*p)*S,t[8]=(m*g-$*y+v*b)*S,t):null},projection:function projection(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 str$2(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"},frob:function frob$2(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},add:function add$2(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:subtract$2,multiplyScalar:function multiplyScalar$2(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 multiplyScalarAndAdd$2(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 exactEquals$2(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 equals$3(t,n){var r=t[0],e=t[1],o=t[2],u=t[3],i=t[4],s=t[5],c=t[6],h=t[7],l=t[8],f=n[0],M=n[1],m=n[2],$=n[3],d=n[4],v=n[5],b=n[6],p=n[7],y=n[8];return Math.abs(r-f)<=a*Math.max(1,Math.abs(r),Math.abs(f))&&Math.abs(e-M)<=a*Math.max(1,Math.abs(e),Math.abs(M))&&Math.abs(o-m)<=a*Math.max(1,Math.abs(o),Math.abs(m))&&Math.abs(u-$)<=a*Math.max(1,Math.abs(u),Math.abs($))&&Math.abs(i-d)<=a*Math.max(1,Math.abs(i),Math.abs(d))&&Math.abs(s-v)<=a*Math.max(1,Math.abs(s),Math.abs(v))&&Math.abs(c-b)<=a*Math.max(1,Math.abs(c),Math.abs(b))&&Math.abs(h-p)<=a*Math.max(1,Math.abs(h),Math.abs(p))&&Math.abs(l-y)<=a*Math.max(1,Math.abs(l),Math.abs(y))},mul:f,sub:M});function identity$3(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 multiply$3(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=a[4],s=a[5],c=a[6],h=a[7],l=a[8],f=a[9],M=a[10],m=a[11],$=a[12],d=a[13],v=a[14],b=a[15],p=n[0],y=n[1],x=n[2],g=n[3];return t[0]=p*r+y*i+x*l+g*$,t[1]=p*e+y*s+x*f+g*d,t[2]=p*o+y*c+x*M+g*v,t[3]=p*u+y*h+x*m+g*b,p=n[4],y=n[5],x=n[6],g=n[7],t[4]=p*r+y*i+x*l+g*$,t[5]=p*e+y*s+x*f+g*d,t[6]=p*o+y*c+x*M+g*v,t[7]=p*u+y*h+x*m+g*b,p=n[8],y=n[9],x=n[10],g=n[11],t[8]=p*r+y*i+x*l+g*$,t[9]=p*e+y*s+x*f+g*d,t[10]=p*o+y*c+x*M+g*v,t[11]=p*u+y*h+x*m+g*b,p=n[12],y=n[13],x=n[14],g=n[15],t[12]=p*r+y*i+x*l+g*$,t[13]=p*e+y*s+x*f+g*d,t[14]=p*o+y*c+x*M+g*v,t[15]=p*u+y*h+x*m+g*b,t}function fromRotationTranslation(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=r+r,s=e+e,c=o+o,h=r*i,l=r*s,f=r*c,M=e*s,m=e*c,$=o*c,d=u*i,v=u*s,b=u*c;return t[0]=1-(M+$),t[1]=l+b,t[2]=f-v,t[3]=0,t[4]=l-b,t[5]=1-(h+$),t[6]=m+d,t[7]=0,t[8]=f+v,t[9]=m-d,t[10]=1-(h+M),t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t}function getTranslation(t,a){return t[0]=a[12],t[1]=a[13],t[2]=a[14],t}function getScaling(t,a){var n=a[0],r=a[1],e=a[2],o=a[4],u=a[5],i=a[6],s=a[8],c=a[9],h=a[10];return t[0]=Math.hypot(n,r,e),t[1]=Math.hypot(o,u,i),t[2]=Math.hypot(s,c,h),t}function getRotation(t,a){var r=new n(3);getScaling(r,a);var e=1/r[0],o=1/r[1],u=1/r[2],i=a[0]*e,s=a[1]*o,c=a[2]*u,h=a[4]*e,l=a[5]*o,f=a[6]*u,M=a[8]*e,m=a[9]*o,$=a[10]*u,d=i+l+$,v=0;return d>0?(v=2*Math.sqrt(d+1),t[3]=.25*v,t[0]=(f-m)/v,t[1]=(M-c)/v,t[2]=(s-h)/v):i>l&&i>$?(v=2*Math.sqrt(1+i-l-$),t[3]=(f-m)/v,t[0]=.25*v,t[1]=(s+h)/v,t[2]=(M+c)/v):l>$?(v=2*Math.sqrt(1+l-i-$),t[3]=(M-c)/v,t[0]=(s+h)/v,t[1]=.25*v,t[2]=(f+m)/v):(v=2*Math.sqrt(1+$-i-l),t[3]=(s-h)/v,t[0]=(M+c)/v,t[1]=(f+m)/v,t[2]=.25*v),t}function subtract$3(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 $=multiply$3,d=subtract$3,v=Object.freeze({__proto__:null,create:function create$3(){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 clone$3(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 copy$3(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 fromValues$3(t,a,r,e,o,u,i,s,c,h,l,f,M,m,$,d){var v=new n(16);return v[0]=t,v[1]=a,v[2]=r,v[3]=e,v[4]=o,v[5]=u,v[6]=i,v[7]=s,v[8]=c,v[9]=h,v[10]=l,v[11]=f,v[12]=M,v[13]=m,v[14]=$,v[15]=d,v},set:function set$3(t,a,n,r,e,o,u,i,s,c,h,l,f,M,m,$,d){return t[0]=a,t[1]=n,t[2]=r,t[3]=e,t[4]=o,t[5]=u,t[6]=i,t[7]=s,t[8]=c,t[9]=h,t[10]=l,t[11]=f,t[12]=M,t[13]=m,t[14]=$,t[15]=d,t},identity:identity$3,transpose:function transpose$2(t,a){if(t===a){var n=a[1],r=a[2],e=a[3],o=a[6],u=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]=o,t[11]=a[14],t[12]=e,t[13]=u,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 invert$3(t,a){var n=a[0],r=a[1],e=a[2],o=a[3],u=a[4],i=a[5],s=a[6],c=a[7],h=a[8],l=a[9],f=a[10],M=a[11],m=a[12],$=a[13],d=a[14],v=a[15],b=n*i-r*u,p=n*s-e*u,y=n*c-o*u,x=r*s-e*i,g=r*c-o*i,q=e*c-o*s,A=h*$-l*m,_=h*d-f*m,R=h*v-M*m,T=l*d-f*$,w=l*v-M*$,z=f*v-M*d,S=b*z-p*w+y*T+x*R-g*_+q*A;return S?(S=1/S,t[0]=(i*z-s*w+c*T)*S,t[1]=(e*w-r*z-o*T)*S,t[2]=($*q-d*g+v*x)*S,t[3]=(f*g-l*q-M*x)*S,t[4]=(s*R-u*z-c*_)*S,t[5]=(n*z-e*R+o*_)*S,t[6]=(d*y-m*q-v*p)*S,t[7]=(h*q-f*y+M*p)*S,t[8]=(u*w-i*R+c*A)*S,t[9]=(r*R-n*w-o*A)*S,t[10]=(m*g-$*y+v*b)*S,t[11]=(l*y-h*g-M*b)*S,t[12]=(i*_-u*T-s*A)*S,t[13]=(n*T-r*_+e*A)*S,t[14]=($*p-m*x-d*b)*S,t[15]=(h*x-l*p+f*b)*S,t):null},adjoint:function adjoint$2(t,a){var n=a[0],r=a[1],e=a[2],o=a[3],u=a[4],i=a[5],s=a[6],c=a[7],h=a[8],l=a[9],f=a[10],M=a[11],m=a[12],$=a[13],d=a[14],v=a[15],b=n*i-r*u,p=n*s-e*u,y=n*c-o*u,x=r*s-e*i,g=r*c-o*i,q=e*c-o*s,A=h*$-l*m,_=h*d-f*m,R=h*v-M*m,T=l*d-f*$,w=l*v-M*$,z=f*v-M*d;return t[0]=i*z-s*w+c*T,t[1]=e*w-r*z-o*T,t[2]=$*q-d*g+v*x,t[3]=f*g-l*q-M*x,t[4]=s*R-u*z-c*_,t[5]=n*z-e*R+o*_,t[6]=d*y-m*q-v*p,t[7]=h*q-f*y+M*p,t[8]=u*w-i*R+c*A,t[9]=r*R-n*w-o*A,t[10]=m*g-$*y+v*b,t[11]=l*y-h*g-M*b,t[12]=i*_-u*T-s*A,t[13]=n*T-r*_+e*A,t[14]=$*p-m*x-d*b,t[15]=h*x-l*p+f*b,t},determinant:function determinant$3(t){var a=t[0],n=t[1],r=t[2],e=t[3],o=t[4],u=t[5],i=t[6],s=t[7],c=t[8],h=t[9],l=t[10],f=t[11],M=t[12],m=t[13],$=t[14],d=a*u-n*o,v=a*i-r*o,b=n*i-r*u,p=c*m-h*M,y=c*$-l*M,x=h*$-l*m;return s*(a*x-n*y+r*p)-e*(o*x-u*y+i*p)+t[15]*(c*b-h*v+l*d)-f*(M*b-m*v+$*d)},multiply:multiply$3,translate:function translate$2(t,a,n){var r,e,o,u,i,s,c,h,l,f,M,m,$=n[0],d=n[1],v=n[2];return a===t?(t[12]=a[0]*$+a[4]*d+a[8]*v+a[12],t[13]=a[1]*$+a[5]*d+a[9]*v+a[13],t[14]=a[2]*$+a[6]*d+a[10]*v+a[14],t[15]=a[3]*$+a[7]*d+a[11]*v+a[15]):(r=a[0],e=a[1],o=a[2],u=a[3],i=a[4],s=a[5],c=a[6],h=a[7],l=a[8],f=a[9],M=a[10],m=a[11],t[0]=r,t[1]=e,t[2]=o,t[3]=u,t[4]=i,t[5]=s,t[6]=c,t[7]=h,t[8]=l,t[9]=f,t[10]=M,t[11]=m,t[12]=r*$+i*d+l*v+a[12],t[13]=e*$+s*d+f*v+a[13],t[14]=o*$+c*d+M*v+a[14],t[15]=u*$+h*d+m*v+a[15]),t},scale:function scale$3(t,a,n){var r=n[0],e=n[1],o=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]*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},rotate:function rotate$3(t,n,r,e){var o,u,i,s,c,h,l,f,M,m,$,d,v,b,p,y,x,g,q,A,_,R,T,w,z=e[0],S=e[1],D=e[2],E=Math.hypot(z,S,D);return E<a?null:(z*=E=1/E,S*=E,D*=E,o=Math.sin(r),i=1-(u=Math.cos(r)),s=n[0],c=n[1],h=n[2],l=n[3],f=n[4],M=n[5],m=n[6],$=n[7],d=n[8],v=n[9],b=n[10],p=n[11],y=z*z*i+u,x=S*z*i+D*o,g=D*z*i-S*o,q=z*S*i-D*o,A=S*S*i+u,_=D*S*i+z*o,R=z*D*i+S*o,T=S*D*i-z*o,w=D*D*i+u,t[0]=s*y+f*x+d*g,t[1]=c*y+M*x+v*g,t[2]=h*y+m*x+b*g,t[3]=l*y+$*x+p*g,t[4]=s*q+f*A+d*_,t[5]=c*q+M*A+v*_,t[6]=h*q+m*A+b*_,t[7]=l*q+$*A+p*_,t[8]=s*R+f*T+d*w,t[9]=c*R+M*T+v*w,t[10]=h*R+m*T+b*w,t[11]=l*R+$*T+p*w,n!==t&&(t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15]),t)},rotateX:function rotateX(t,a,n){var r=Math.sin(n),e=Math.cos(n),o=a[4],u=a[5],i=a[6],s=a[7],c=a[8],h=a[9],l=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+c*r,t[5]=u*e+h*r,t[6]=i*e+l*r,t[7]=s*e+f*r,t[8]=c*e-o*r,t[9]=h*e-u*r,t[10]=l*e-i*r,t[11]=f*e-s*r,t},rotateY:function rotateY(t,a,n){var r=Math.sin(n),e=Math.cos(n),o=a[0],u=a[1],i=a[2],s=a[3],c=a[8],h=a[9],l=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-c*r,t[1]=u*e-h*r,t[2]=i*e-l*r,t[3]=s*e-f*r,t[8]=o*r+c*e,t[9]=u*r+h*e,t[10]=i*r+l*e,t[11]=s*r+f*e,t},rotateZ:function rotateZ(t,a,n){var r=Math.sin(n),e=Math.cos(n),o=a[0],u=a[1],i=a[2],s=a[3],c=a[4],h=a[5],l=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+c*r,t[1]=u*e+h*r,t[2]=i*e+l*r,t[3]=s*e+f*r,t[4]=c*e-o*r,t[5]=h*e-u*r,t[6]=l*e-i*r,t[7]=f*e-s*r,t},fromTranslation:function fromTranslation$2(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},fromScaling:function fromScaling$3(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},fromRotation:function fromRotation$3(t,n,r){var e,o,u,i=r[0],s=r[1],c=r[2],h=Math.hypot(i,s,c);return h<a?null:(i*=h=1/h,s*=h,c*=h,e=Math.sin(n),u=1-(o=Math.cos(n)),t[0]=i*i*u+o,t[1]=s*i*u+c*e,t[2]=c*i*u-s*e,t[3]=0,t[4]=i*s*u-c*e,t[5]=s*s*u+o,t[6]=c*s*u+i*e,t[7]=0,t[8]=i*c*u+s*e,t[9]=s*c*u-i*e,t[10]=c*c*u+o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)},fromXRotation:function fromXRotation(t,a){var n=Math.sin(a),r=Math.cos(a);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=r,t[6]=n,t[7]=0,t[8]=0,t[9]=-n,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},fromYRotation:function fromYRotation(t,a){var n=Math.sin(a),r=Math.cos(a);return t[0]=r,t[1]=0,t[2]=-n,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=n,t[9]=0,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},fromZRotation:function fromZRotation(t,a){var n=Math.sin(a),r=Math.cos(a);return t[0]=r,t[1]=n,t[2]=0,t[3]=0,t[4]=-n,t[5]=r,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},fromRotationTranslation:fromRotationTranslation,fromQuat2:function fromQuat2(t,a){var r=new n(3),e=-a[0],o=-a[1],u=-a[2],i=a[3],s=a[4],c=a[5],h=a[6],l=a[7],f=e*e+o*o+u*u+i*i;return f>0?(r[0]=2*(s*i+l*e+c*u-h*o)/f,r[1]=2*(c*i+l*o+h*e-s*u)/f,r[2]=2*(h*i+l*u+s*o-c*e)/f):(r[0]=2*(s*i+l*e+c*u-h*o),r[1]=2*(c*i+l*o+h*e-s*u),r[2]=2*(h*i+l*u+s*o-c*e)),fromRotationTranslation(t,a,r),t},getTranslation:getTranslation,getScaling:getScaling,getRotation:getRotation,decompose:function decompose(t,a,n,r){a[0]=r[12],a[1]=r[13],a[2]=r[14];var e=r[0],o=r[1],u=r[2],i=r[4],s=r[5],c=r[6],h=r[8],l=r[9],f=r[10];n[0]=Math.hypot(e,o,u),n[1]=Math.hypot(i,s,c),n[2]=Math.hypot(h,l,f);var M=1/n[0],m=1/n[1],$=1/n[2],d=e*M,v=o*m,b=u*$,p=i*M,y=s*m,x=c*$,g=h*M,q=l*m,A=f*$,_=d+y+A,R=0;return _>0?(R=2*Math.sqrt(_+1),t[3]=.25*R,t[0]=(x-q)/R,t[1]=(g-b)/R,t[2]=(v-p)/R):d>y&&d>A?(R=2*Math.sqrt(1+d-y-A),t[3]=(x-q)/R,t[0]=.25*R,t[1]=(v+p)/R,t[2]=(g+b)/R):y>A?(R=2*Math.sqrt(1+y-d-A),t[3]=(g-b)/R,t[0]=(v+p)/R,t[1]=.25*R,t[2]=(x+q)/R):(R=2*Math.sqrt(1+A-d-y),t[3]=(v-p)/R,t[0]=(g+b)/R,t[1]=(x+q)/R,t[2]=.25*R),t},fromRotationTranslationScale:function fromRotationTranslationScale(t,a,n,r){var e=a[0],o=a[1],u=a[2],i=a[3],s=e+e,c=o+o,h=u+u,l=e*s,f=e*c,M=e*h,m=o*c,$=o*h,d=u*h,v=i*s,b=i*c,p=i*h,y=r[0],x=r[1],g=r[2];return t[0]=(1-(m+d))*y,t[1]=(f+p)*y,t[2]=(M-b)*y,t[3]=0,t[4]=(f-p)*x,t[5]=(1-(l+d))*x,t[6]=($+v)*x,t[7]=0,t[8]=(M+b)*g,t[9]=($-v)*g,t[10]=(1-(l+m))*g,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t},fromRotationTranslationScaleOrigin:function fromRotationTranslationScaleOrigin(t,a,n,r,e){var o=a[0],u=a[1],i=a[2],s=a[3],c=o+o,h=u+u,l=i+i,f=o*c,M=o*h,m=o*l,$=u*h,d=u*l,v=i*l,b=s*c,p=s*h,y=s*l,x=r[0],g=r[1],q=r[2],A=e[0],_=e[1],R=e[2],T=(1-($+v))*x,w=(M+y)*x,z=(m-p)*x,S=(M-y)*g,D=(1-(f+v))*g,E=(d+b)*g,V=(m+p)*q,j=(d-b)*q,L=(1-(f+$))*q;return t[0]=T,t[1]=w,t[2]=z,t[3]=0,t[4]=S,t[5]=D,t[6]=E,t[7]=0,t[8]=V,t[9]=j,t[10]=L,t[11]=0,t[12]=n[0]+A-(T*A+S*_+V*R),t[13]=n[1]+_-(w*A+D*_+j*R),t[14]=n[2]+R-(z*A+E*_+L*R),t[15]=1,t},fromQuat:function fromQuat$1(t,a){var n=a[0],r=a[1],e=a[2],o=a[3],u=n+n,i=r+r,s=e+e,c=n*u,h=r*u,l=r*i,f=e*u,M=e*i,m=e*s,$=o*u,d=o*i,v=o*s;return t[0]=1-l-m,t[1]=h+v,t[2]=f-d,t[3]=0,t[4]=h-v,t[5]=1-c-m,t[6]=M+$,t[7]=0,t[8]=f+d,t[9]=M-$,t[10]=1-c-l,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},frustum:function frustum(t,a,n,r,e,o,u){var i=1/(n-a),s=1/(e-r),c=1/(o-u);return t[0]=2*o*i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*o*s,t[6]=0,t[7]=0,t[8]=(n+a)*i,t[9]=(e+r)*s,t[10]=(u+o)*c,t[11]=-1,t[12]=0,t[13]=0,t[14]=u*o*2*c,t[15]=0,t},perspective:function perspective(t,a,n,r,e){var o,u=1/Math.tan(a/2);return t[0]=u/n,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=u,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!=e&&e!==1/0?(o=1/(r-e),t[10]=(e+r)*o,t[14]=2*e*r*o):(t[10]=-1,t[14]=-2*r),t},perspectiveFromFieldOfView:function perspectiveFromFieldOfView(t,a,n,r){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),i=Math.tan(a.rightDegrees*Math.PI/180),s=2/(u+i),c=2/(e+o);return t[0]=s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=c,t[6]=0,t[7]=0,t[8]=-(u-i)*s*.5,t[9]=(e-o)*c*.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 ortho(t,a,n,r,e,o,u){var i=1/(a-n),s=1/(r-e),c=1/(o-u);return t[0]=-2*i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*c,t[11]=0,t[12]=(a+n)*i,t[13]=(e+r)*s,t[14]=(u+o)*c,t[15]=1,t},lookAt:function lookAt(t,n,r,e){var o,u,i,s,c,h,l,f,M,m,$=n[0],d=n[1],v=n[2],b=e[0],p=e[1],y=e[2],x=r[0],g=r[1],q=r[2];return Math.abs($-x)<a&&Math.abs(d-g)<a&&Math.abs(v-q)<a?identity$3(t):(l=$-x,f=d-g,M=v-q,o=p*(M*=m=1/Math.hypot(l,f,M))-y*(f*=m),u=y*(l*=m)-b*M,i=b*f-p*l,(m=Math.hypot(o,u,i))?(o*=m=1/m,u*=m,i*=m):(o=0,u=0,i=0),s=f*i-M*u,c=M*o-l*i,h=l*u-f*o,(m=Math.hypot(s,c,h))?(s*=m=1/m,c*=m,h*=m):(s=0,c=0,h=0),t[0]=o,t[1]=s,t[2]=l,t[3]=0,t[4]=u,t[5]=c,t[6]=f,t[7]=0,t[8]=i,t[9]=h,t[10]=M,t[11]=0,t[12]=-(o*$+u*d+i*v),t[13]=-(s*$+c*d+h*v),t[14]=-(l*$+f*d+M*v),t[15]=1,t)},targetTo:function targetTo(t,a,n,r){var e=a[0],o=a[1],u=a[2],i=r[0],s=r[1],c=r[2],h=e-n[0],l=o-n[1],f=u-n[2],M=h*h+l*l+f*f;M>0&&(h*=M=1/Math.sqrt(M),l*=M,f*=M);var m=s*f-c*l,$=c*h-i*f,d=i*l-s*h;return(M=m*m+$*$+d*d)>0&&(m*=M=1/Math.sqrt(M),$*=M,d*=M),t[0]=m,t[1]=$,t[2]=d,t[3]=0,t[4]=l*d-f*$,t[5]=f*m-h*d,t[6]=h*$-l*m,t[7]=0,t[8]=h,t[9]=l,t[10]=f,t[11]=0,t[12]=e,t[13]=o,t[14]=u,t[15]=1,t},str:function str$3(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 frob$3(t){return Math.hypot(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])},add:function add$3(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:subtract$3,multiplyScalar:function multiplyScalar$3(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 multiplyScalarAndAdd$3(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 exactEquals$3(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 equals$4(t,n){var r=t[0],e=t[1],o=t[2],u=t[3],i=t[4],s=t[5],c=t[6],h=t[7],l=t[8],f=t[9],M=t[10],m=t[11],$=t[12],d=t[13],v=t[14],b=t[15],p=n[0],y=n[1],x=n[2],g=n[3],q=n[4],A=n[5],_=n[6],R=n[7],T=n[8],w=n[9],z=n[10],S=n[11],D=n[12],E=n[13],V=n[14],j=n[15];return Math.abs(r-p)<=a*Math.max(1,Math.abs(r),Math.abs(p))&&Math.abs(e-y)<=a*Math.max(1,Math.abs(e),Math.abs(y))&&Math.abs(o-x)<=a*Math.max(1,Math.abs(o),Math.abs(x))&&Math.abs(u-g)<=a*Math.max(1,Math.abs(u),Math.abs(g))&&Math.abs(i-q)<=a*Math.max(1,Math.abs(i),Math.abs(q))&&Math.abs(s-A)<=a*Math.max(1,Math.abs(s),Math.abs(A))&&Math.abs(c-_)<=a*Math.max(1,Math.abs(c),Math.abs(_))&&Math.abs(h-R)<=a*Math.max(1,Math.abs(h),Math.abs(R))&&Math.abs(l-T)<=a*Math.max(1,Math.abs(l),Math.abs(T))&&Math.abs(f-w)<=a*Math.max(1,Math.abs(f),Math.abs(w))&&Math.abs(M-z)<=a*Math.max(1,Math.abs(M),Math.abs(z))&&Math.abs(m-S)<=a*Math.max(1,Math.abs(m),Math.abs(S))&&Math.abs($-D)<=a*Math.max(1,Math.abs($),Math.abs(D))&&Math.abs(d-E)<=a*Math.max(1,Math.abs(d),Math.abs(E))&&Math.abs(v-V)<=a*Math.max(1,Math.abs(v),Math.abs(V))&&Math.abs(b-j)<=a*Math.max(1,Math.abs(b),Math.abs(j))},mul:$,sub:d});function create$4(){var t=new n(3);return n!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function length(t){var a=t[0],n=t[1],r=t[2];return Math.hypot(a,n,r)}function fromValues$4(t,a,r){var e=new n(3);return e[0]=t,e[1]=a,e[2]=r,e}function subtract$4(t,a,n){return t[0]=a[0]-n[0],t[1]=a[1]-n[1],t[2]=a[2]-n[2],t}function multiply$4(t,a,n){return t[0]=a[0]*n[0],t[1]=a[1]*n[1],t[2]=a[2]*n[2],t}function divide(t,a,n){return t[0]=a[0]/n[0],t[1]=a[1]/n[1],t[2]=a[2]/n[2],t}function distance(t,a){var n=a[0]-t[0],r=a[1]-t[1],e=a[2]-t[2];return Math.hypot(n,r,e)}function squaredDistance(t,a){var n=a[0]-t[0],r=a[1]-t[1],e=a[2]-t[2];return n*n+r*r+e*e}function squaredLength(t){var a=t[0],n=t[1],r=t[2];return a*a+n*n+r*r}function normalize(t,a){var n=a[0],r=a[1],e=a[2],o=n*n+r*r+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}function dot(t,a){return t[0]*a[0]+t[1]*a[1]+t[2]*a[2]}function cross(t,a,n){var r=a[0],e=a[1],o=a[2],u=n[0],i=n[1],s=n[2];return t[0]=e*s-o*i,t[1]=o*u-r*s,t[2]=r*i-e*u,t}var b,p=subtract$4,y=multiply$4,x=divide,g=distance,q=squaredDistance,A=length,_=squaredLength,R=(b=create$4(),function(t,a,n,r,e,o){var u,i;for(a||(a=3),n||(n=0),i=r?Math.min(r*a+n,t.length):t.length,u=n;u<i;u+=a)b[0]=t[u],b[1]=t[u+1],b[2]=t[u+2],e(b,b,o),t[u]=b[0],t[u+1]=b[1],t[u+2]=b[2];return t}),T=Object.freeze({__proto__:null,create:create$4,clone:function clone$4(t){var a=new n(3);return a[0]=t[0],a[1]=t[1],a[2]=t[2],a},length:length,fromValues:fromValues$4,copy:function copy$4(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t},set:function set$4(t,a,n,r){return t[0]=a,t[1]=n,t[2]=r,t},add:function add$4(t,a,n){return t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t},subtract:subtract$4,multiply:multiply$4,divide:divide,ceil:function ceil(t,a){return t[0]=Math.ceil(a[0]),t[1]=Math.ceil(a[1]),t[2]=Math.ceil(a[2]),t},floor:function floor(t,a){return t[0]=Math.floor(a[0]),t[1]=Math.floor(a[1]),t[2]=Math.floor(a[2]),t},min:function min(t,a,n){return t[0]=Math.min(a[0],n[0]),t[1]=Math.min(a[1],n[1]),t[2]=Math.min(a[2],n[2]),t},max:function max(t,a,n){return t[0]=Math.max(a[0],n[0]),t[1]=Math.max(a[1],n[1]),t[2]=Math.max(a[2],n[2]),t},round:function round(t,a){return t[0]=Math.round(a[0]),t[1]=Math.round(a[1]),t[2]=Math.round(a[2]),t},scale:function scale$4(t,a,n){return t[0]=a[0]*n,t[1]=a[1]*n,t[2]=a[2]*n,t},scaleAndAdd:function scaleAndAdd(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},distance:distance,squaredDistance:squaredDistance,squaredLength:squaredLength,negate:function negate(t,a){return t[0]=-a[0],t[1]=-a[1],t[2]=-a[2],t},inverse:function inverse(t,a){return t[0]=1/a[0],t[1]=1/a[1],t[2]=1/a[2],t},normalize:normalize,dot:dot,cross:cross,lerp:function lerp(t,a,n,r){var e=a[0],o=a[1],u=a[2];return t[0]=e+r*(n[0]-e),t[1]=o+r*(n[1]-o),t[2]=u+r*(n[2]-u),t},slerp:function slerp(t,a,n,r){var e=Math.acos(Math.min(Math.max(dot(a,n),-1),1)),o=Math.sin(e),u=Math.sin((1-r)*e)/o,i=Math.sin(r*e)/o;return t[0]=u*a[0]+i*n[0],t[1]=u*a[1]+i*n[1],t[2]=u*a[2]+i*n[2],t},hermite:function hermite(t,a,n,r,e,o){var u=o*o,i=u*(2*o-3)+1,s=u*(o-2)+o,c=u*(o-1),h=u*(3-2*o);return t[0]=a[0]*i+n[0]*s+r[0]*c+e[0]*h,t[1]=a[1]*i+n[1]*s+r[1]*c+e[1]*h,t[2]=a[2]*i+n[2]*s+r[2]*c+e[2]*h,t},bezier:function bezier(t,a,n,r,e,o){var u=1-o,i=u*u,s=o*o,c=i*u,h=3*o*i,l=3*s*u,f=s*o;return t[0]=a[0]*c+n[0]*h+r[0]*l+e[0]*f,t[1]=a[1]*c+n[1]*h+r[1]*l+e[1]*f,t[2]=a[2]*c+n[2]*h+r[2]*l+e[2]*f,t},random:function random(t,a){a=a||1;var n=2*r()*Math.PI,e=2*r()-1,o=Math.sqrt(1-e*e)*a;return t[0]=Math.cos(n)*o,t[1]=Math.sin(n)*o,t[2]=e*a,t},transformMat4:function transformMat4(t,a,n){var r=a[0],e=a[1],o=a[2],u=n[3]*r+n[7]*e+n[11]*o+n[15];return u=u||1,t[0]=(n[0]*r+n[4]*e+n[8]*o+n[12])/u,t[1]=(n[1]*r+n[5]*e+n[9]*o+n[13])/u,t[2]=(n[2]*r+n[6]*e+n[10]*o+n[14])/u,t},transformMat3:function transformMat3(t,a,n){var r=a[0],e=a[1],o=a[2];return t[0]=r*n[0]+e*n[3]+o*n[6],t[1]=r*n[1]+e*n[4]+o*n[7],t[2]=r*n[2]+e*n[5]+o*n[8],t},transformQuat:function transformQuat(t,a,n){var r=n[0],e=n[1],o=n[2],u=n[3],i=a[0],s=a[1],c=a[2],h=e*c-o*s,l=o*i-r*c,f=r*s-e*i,M=e*f-o*l,m=o*h-r*f,$=r*l-e*h,d=2*u;return h*=d,l*=d,f*=d,M*=2,m*=2,$*=2,t[0]=i+h+M,t[1]=s+l+m,t[2]=c+f+$,t},rotateX:function rotateX$1(t,a,n,r){var e=[],o=[];return e[0]=a[0]-n[0],e[1]=a[1]-n[1],e[2]=a[2]-n[2],o[0]=e[0],o[1]=e[1]*Math.cos(r)-e[2]*Math.sin(r),o[2]=e[1]*Math.sin(r)+e[2]*Math.cos(r),t[0]=o[0]+n[0],t[1]=o[1]+n[1],t[2]=o[2]+n[2],t},rotateY:function rotateY$1(t,a,n,r){var e=[],o=[];return e[0]=a[0]-n[0],e[1]=a[1]-n[1],e[2]=a[2]-n[2],o[0]=e[2]*Math.sin(r)+e[0]*Math.cos(r),o[1]=e[1],o[2]=e[2]*Math.cos(r)-e[0]*Math.sin(r),t[0]=o[0]+n[0],t[1]=o[1]+n[1],t[2]=o[2]+n[2],t},rotateZ:function rotateZ$1(t,a,n,r){var e=[],o=[];return e[0]=a[0]-n[0],e[1]=a[1]-n[1],e[2]=a[2]-n[2],o[0]=e[0]*Math.cos(r)-e[1]*Math.sin(r),o[1]=e[0]*Math.sin(r)+e[1]*Math.cos(r),o[2]=e[2],t[0]=o[0]+n[0],t[1]=o[1]+n[1],t[2]=o[2]+n[2],t},angle:function angle(t,a){var n=t[0],r=t[1],e=t[2],o=a[0],u=a[1],i=a[2],s=Math.sqrt(n*n+r*r+e*e)*Math.sqrt(o*o+u*u+i*i),c=s&&dot(t,a)/s;return Math.acos(Math.min(Math.max(c,-1),1))},zero:function zero(t){return t[0]=0,t[1]=0,t[2]=0,t},str:function str$4(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"},exactEquals:function exactEquals$4(t,a){return t[0]===a[0]&&t[1]===a[1]&&t[2]===a[2]},equals:function equals$5(t,n){var r=t[0],e=t[1],o=t[2],u=n[0],i=n[1],s=n[2];return Math.abs(r-u)<=a*Math.max(1,Math.abs(r),Math.abs(u))&&Math.abs(e-i)<=a*Math.max(1,Math.abs(e),Math.abs(i))&&Math.abs(o-s)<=a*Math.max(1,Math.abs(o),Math.abs(s))},sub:p,mul:y,div:x,dist:g,sqrDist:q,len:A,sqrLen:_,forEach:R});function create$5(){var t=new n(4);return n!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function clone$5(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 fromValues$5(t,a,r,e){var o=new n(4);return o[0]=t,o[1]=a,o[2]=r,o[3]=e,o}function copy$5(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t}function set$5(t,a,n,r,e){return t[0]=a,t[1]=n,t[2]=r,t[3]=e,t}function add$5(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 subtract$5(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 multiply$5(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 divide$1(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 scale$5(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 distance$1(t,a){var n=a[0]-t[0],r=a[1]-t[1],e=a[2]-t[2],o=a[3]-t[3];return Math.hypot(n,r,e,o)}function squaredDistance$1(t,a){var n=a[0]-t[0],r=a[1]-t[1],e=a[2]-t[2],o=a[3]-t[3];return n*n+r*r+e*e+o*o}function length$1(t){var a=t[0],n=t[1],r=t[2],e=t[3];return Math.hypot(a,n,r,e)}function squaredLength$1(t){var a=t[0],n=t[1],r=t[2],e=t[3];return a*a+n*n+r*r+e*e}function normalize$1(t,a){var n=a[0],r=a[1],e=a[2],o=a[3],u=n*n+r*r+e*e+o*o;return u>0&&(u=1/Math.sqrt(u)),t[0]=n*u,t[1]=r*u,t[2]=e*u,t[3]=o*u,t}function dot$1(t,a){return t[0]*a[0]+t[1]*a[1]+t[2]*a[2]+t[3]*a[3]}function lerp$1(t,a,n,r){var e=a[0],o=a[1],u=a[2],i=a[3];return t[0]=e+r*(n[0]-e),t[1]=o+r*(n[1]-o),t[2]=u+r*(n[2]-u),t[3]=i+r*(n[3]-i),t}function exactEquals$5(t,a){return t[0]===a[0]&&t[1]===a[1]&&t[2]===a[2]&&t[3]===a[3]}function equals$6(t,n){var r=t[0],e=t[1],o=t[2],u=t[3],i=n[0],s=n[1],c=n[2],h=n[3];return Math.abs(r-i)<=a*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(e-s)<=a*Math.max(1,Math.abs(e),Math.abs(s))&&Math.abs(o-c)<=a*Math.max(1,Math.abs(o),Math.abs(c))&&Math.abs(u-h)<=a*Math.max(1,Math.abs(u),Math.abs(h))}var w=subtract$5,z=multiply$5,S=divide$1,D=distance$1,E=squaredDistance$1,V=length$1,j=squaredLength$1,L=function(){var t=create$5();return function(a,n,r,e,o,u){var i,s;for(n||(n=4),r||(r=0),s=e?Math.min(e*n+r,a.length):a.length,i=r;i<s;i+=n)t[0]=a[i],t[1]=a[i+1],t[2]=a[i+2],t[3]=a[i+3],o(t,t,u),a[i]=t[0],a[i+1]=t[1],a[i+2]=t[2],a[i+3]=t[3];return a}}(),P=Object.freeze({__proto__:null,create:create$5,clone:clone$5,fromValues:fromValues$5,copy:copy$5,set:set$5,add:add$5,subtract:subtract$5,multiply:multiply$5,divide:divide$1,ceil:function ceil$1(t,a){return t[0]=Math.ceil(a[0]),t[1]=Math.ceil(a[1]),t[2]=Math.ceil(a[2]),t[3]=Math.ceil(a[3]),t},floor:function floor$1(t,a){return t[0]=Math.floor(a[0]),t[1]=Math.floor(a[1]),t[2]=Math.floor(a[2]),t[3]=Math.floor(a[3]),t},min:function min$1(t,a,n){return t[0]=Math.min(a[0],n[0]),t[1]=Math.min(a[1],n[1]),t[2]=Math.min(a[2],n[2]),t[3]=Math.min(a[3],n[3]),t},max:function max$1(t,a,n){return t[0]=Math.max(a[0],n[0]),t[1]=Math.max(a[1],n[1]),t[2]=Math.max(a[2],n[2]),t[3]=Math.max(a[3],n[3]),t},round:function round$1(t,a){return t[0]=Math.round(a[0]),t[1]=Math.round(a[1]),t[2]=Math.round(a[2]),t[3]=Math.round(a[3]),t},scale:scale$5,scaleAndAdd:function scaleAndAdd$1(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},distance:distance$1,squaredDistance:squaredDistance$1,length:length$1,squaredLength:squaredLength$1,negate:function negate$1(t,a){return t[0]=-a[0],t[1]=-a[1],t[2]=-a[2],t[3]=-a[3],t},inverse:function inverse$1(t,a){return t[0]=1/a[0],t[1]=1/a[1],t[2]=1/a[2],t[3]=1/a[3],t},normalize:normalize$1,dot:dot$1,cross:function cross$1(t,a,n,r){var e=n[0]*r[1]-n[1]*r[0],o=n[0]*r[2]-n[2]*r[0],u=n[0]*r[3]-n[3]*r[0],i=n[1]*r[2]-n[2]*r[1],s=n[1]*r[3]-n[3]*r[1],c=n[2]*r[3]-n[3]*r[2],h=a[0],l=a[1],f=a[2],M=a[3];return t[0]=l*c-f*s+M*i,t[1]=-h*c+f*u-M*o,t[2]=h*s-l*u+M*e,t[3]=-h*i+l*o-f*e,t},lerp:lerp$1,random:function random$1(t,a){var n,e,o,u,i,s;a=a||1;do{i=(n=2*r()-1)*n+(e=2*r()-1)*e}while(i>=1);do{s=(o=2*r()-1)*o+(u=2*r()-1)*u}while(s>=1);var c=Math.sqrt((1-i)/s);return t[0]=a*n,t[1]=a*e,t[2]=a*o*c,t[3]=a*u*c,t},transformMat4:function transformMat4$1(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3];return t[0]=n[0]*r+n[4]*e+n[8]*o+n[12]*u,t[1]=n[1]*r+n[5]*e+n[9]*o+n[13]*u,t[2]=n[2]*r+n[6]*e+n[10]*o+n[14]*u,t[3]=n[3]*r+n[7]*e+n[11]*o+n[15]*u,t},transformQuat:function transformQuat$1(t,a,n){var r=a[0],e=a[1],o=a[2],u=n[0],i=n[1],s=n[2],c=n[3],h=c*r+i*o-s*e,l=c*e+s*r-u*o,f=c*o+u*e-i*r,M=-u*r-i*e-s*o;return t[0]=h*c+M*-u+l*-s-f*-i,t[1]=l*c+M*-i+f*-u-h*-s,t[2]=f*c+M*-s+h*-i-l*-u,t[3]=a[3],t},zero:function zero$1(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t},str:function str$5(t){return"vec4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},exactEquals:exactEquals$5,equals:equals$6,sub:w,mul:z,div:S,dist:D,sqrDist:E,len:V,sqrLen:j,forEach:L});function create$6(){var t=new n(4);return n!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function setAxisAngle(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 multiply$6(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=n[0],s=n[1],c=n[2],h=n[3];return t[0]=r*h+u*i+e*c-o*s,t[1]=e*h+u*s+o*i-r*c,t[2]=o*h+u*c+r*s-e*i,t[3]=u*h-r*i-e*s-o*c,t}function rotateX$2(t,a,n){n*=.5;var r=a[0],e=a[1],o=a[2],u=a[3],i=Math.sin(n),s=Math.cos(n);return t[0]=r*s+u*i,t[1]=e*s+o*i,t[2]=o*s-e*i,t[3]=u*s-r*i,t}function rotateY$2(t,a,n){n*=.5;var r=a[0],e=a[1],o=a[2],u=a[3],i=Math.sin(n),s=Math.cos(n);return t[0]=r*s-o*i,t[1]=e*s+u*i,t[2]=o*s+r*i,t[3]=u*s-e*i,t}function rotateZ$2(t,a,n){n*=.5;var r=a[0],e=a[1],o=a[2],u=a[3],i=Math.sin(n),s=Math.cos(n);return t[0]=r*s+e*i,t[1]=e*s-r*i,t[2]=o*s+u*i,t[3]=u*s-o*i,t}function exp(t,a){var n=a[0],r=a[1],e=a[2],o=a[3],u=Math.sqrt(n*n+r*r+e*e),i=Math.exp(o),s=u>0?i*Math.sin(u)/u:0;return t[0]=n*s,t[1]=r*s,t[2]=e*s,t[3]=i*Math.cos(u),t}function ln(t,a){var n=a[0],r=a[1],e=a[2],o=a[3],u=Math.sqrt(n*n+r*r+e*e),i=u>0?Math.atan2(u,o)/u:0;return t[0]=n*i,t[1]=r*i,t[2]=e*i,t[3]=.5*Math.log(n*n+r*r+e*e+o*o),t}function slerp$1(t,n,r,e){var o,u,i,s,c,h=n[0],l=n[1],f=n[2],M=n[3],m=r[0],$=r[1],d=r[2],v=r[3];return(u=h*m+l*$+f*d+M*v)<0&&(u=-u,m=-m,$=-$,d=-d,v=-v),1-u>a?(o=Math.acos(u),i=Math.sin(o),s=Math.sin((1-e)*o)/i,c=Math.sin(e*o)/i):(s=1-e,c=e),t[0]=s*h+c*m,t[1]=s*l+c*$,t[2]=s*f+c*d,t[3]=s*M+c*v,t}function fromMat3(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 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;n=Math.sqrt(a[3*e+e]-a[3*o+o]-a[3*u+u]+1),t[e]=.5*n,n=.5/n,t[3]=(a[3*o+u]-a[3*u+o])*n,t[o]=(a[3*o+e]+a[3*e+o])*n,t[u]=(a[3*u+e]+a[3*e+u])*n}return t}var F,O,I,Q,Y,X,Z=clone$5,k=fromValues$5,B=copy$5,N=set$5,U=add$5,W=multiply$6,C=scale$5,G=dot$1,H=lerp$1,J=length$1,K=J,tt=squaredLength$1,at=tt,nt=normalize$1,rt=exactEquals$5,et=equals$6,ot=(F=create$4(),O=fromValues$4(1,0,0),I=fromValues$4(0,1,0),function(t,a,n){var r=dot(a,n);return r<-.999999?(cross(F,O,a),A(F)<1e-6&&cross(F,I,a),normalize(F,F),setAxisAngle(t,F,Math.PI),t):r>.999999?(t[0]=0,t[1]=0,t[2]=0,t[3]=1,t):(cross(F,a,n),t[0]=F[0],t[1]=F[1],t[2]=F[2],t[3]=1+r,nt(t,t))}),ut=(Q=create$6(),Y=create$6(),function(t,a,n,r,e,o){return slerp$1(Q,a,e,o),slerp$1(Y,n,r,o),slerp$1(t,Q,Y,2*o*(1-o)),t}),it=(X=create$2(),function(t,a,n,r){return X[0]=n[0],X[3]=n[1],X[6]=n[2],X[1]=r[0],X[4]=r[1],X[7]=r[2],X[2]=-a[0],X[5]=-a[1],X[8]=-a[2],nt(t,fromMat3(t,X))}),st=Object.freeze({__proto__:null,create:create$6,identity:function identity$4(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},setAxisAngle:setAxisAngle,getAxisAngle:function getAxisAngle(t,n){var r=2*Math.acos(n[3]),e=Math.sin(r/2);return e>a?(t[0]=n[0]/e,t[1]=n[1]/e,t[2]=n[2]/e):(t[0]=1,t[1]=0,t[2]=0),r},getAngle:function getAngle(t,a){var n=G(t,a);return Math.acos(2*n*n-1)},multiply:multiply$6,rotateX:rotateX$2,rotateY:rotateY$2,rotateZ:rotateZ$2,calculateW:function calculateW(t,a){var n=a[0],r=a[1],e=a[2];return t[0]=n,t[1]=r,t[2]=e,t[3]=Math.sqrt(Math.abs(1-n*n-r*r-e*e)),t},exp:exp,ln:ln,pow:function pow(t,a,n){return ln(t,a),C(t,t,n),exp(t,t),t},slerp:slerp$1,random:function random$2(t){var a=r(),n=r(),e=r(),o=Math.sqrt(1-a),u=Math.sqrt(a);return t[0]=o*Math.sin(2*Math.PI*n),t[1]=o*Math.cos(2*Math.PI*n),t[2]=u*Math.sin(2*Math.PI*e),t[3]=u*Math.cos(2*Math.PI*e),t},invert:function invert$4(t,a){var n=a[0],r=a[1],e=a[2],o=a[3],u=n*n+r*r+e*e+o*o,i=u?1/u:0;return t[0]=-n*i,t[1]=-r*i,t[2]=-e*i,t[3]=o*i,t},conjugate:function conjugate(t,a){return t[0]=-a[0],t[1]=-a[1],t[2]=-a[2],t[3]=a[3],t},fromMat3:fromMat3,fromEuler:function fromEuler(t,a,n,r){var e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"zyx",o=.5*Math.PI/180;a*=o,r*=o,n*=o;var u=Math.sin(a),i=Math.cos(a),s=Math.sin(n),c=Math.cos(n),h=Math.sin(r),l=Math.cos(r);switch("string"!=typeof e&&(e="zyx"),e.toLowerCase()){case"xyz":t[0]=u*c*l+i*s*h,t[1]=i*s*l-u*c*h,t[2]=i*c*h+u*s*l,t[3]=i*c*l-u*s*h;break;case"xzy":t[0]=u*c*l-i*s*h,t[1]=i*s*l-u*c*h,t[2]=i*c*h+u*s*l,t[3]=i*c*l+u*s*h;break;case"yxz":t[0]=u*c*l+i*s*h,t[1]=i*s*l-u*c*h,t[2]=i*c*h-u*s*l,t[3]=i*c*l+u*s*h;break;case"yzx":t[0]=u*c*l+i*s*h,t[1]=i*s*l+u*c*h,t[2]=i*c*h-u*s*l,t[3]=i*c*l-u*s*h;break;case"zxy":t[0]=u*c*l-i*s*h,t[1]=i*s*l+u*c*h,t[2]=i*c*h+u*s*l,t[3]=i*c*l-u*s*h;break;default:t[0]=u*c*l-i*s*h,t[1]=i*s*l+u*c*h,t[2]=i*c*h-u*s*l,t[3]=i*c*l+u*s*h}return t},str:function str$6(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},clone:Z,fromValues:k,copy:B,set:N,add:U,mul:W,scale:C,dot:G,lerp:H,length:J,len:K,squaredLength:tt,sqrLen:at,normalize:nt,exactEquals:rt,equals:et,rotationTo:ot,sqlerp:ut,setAxes:it});function fromRotationTranslation$1(t,a,n){var r=.5*n[0],e=.5*n[1],o=.5*n[2],u=a[0],i=a[1],s=a[2],c=a[3];return t[0]=u,t[1]=i,t[2]=s,t[3]=c,t[4]=r*c+e*s-o*i,t[5]=e*c+o*u-r*s,t[6]=o*c+r*i-e*u,t[7]=-r*u-e*i-o*s,t}function copy$7(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 ct=B;var ht=B;function multiply$7(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=n[4],s=n[5],c=n[6],h=n[7],l=a[4],f=a[5],M=a[6],m=a[7],$=n[0],d=n[1],v=n[2],b=n[3];return t[0]=r*b+u*$+e*v-o*d,t[1]=e*b+u*d+o*$-r*v,t[2]=o*b+u*v+r*d-e*$,t[3]=u*b-r*$-e*d-o*v,t[4]=r*h+u*i+e*c-o*s+l*b+m*$+f*v-M*d,t[5]=e*h+u*s+o*i-r*c+f*b+m*d+M*$-l*v,t[6]=o*h+u*c+r*s-e*i+M*b+m*v+l*d-f*$,t[7]=u*h-r*i-e*s-o*c+m*b-l*$-f*d-M*v,t}var lt=multiply$7;var ft=G;var Mt=J,mt=Mt,$t=tt,dt=$t;var vt=Object.freeze({__proto__:null,create:function create$7(){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 clone$7(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 fromValues$7(t,a,r,e,o,u,i,s){var c=new n(8);return c[0]=t,c[1]=a,c[2]=r,c[3]=e,c[4]=o,c[5]=u,c[6]=i,c[7]=s,c},fromRotationTranslationValues:function fromRotationTranslationValues(t,a,r,e,o,u,i){var s=new n(8);s[0]=t,s[1]=a,s[2]=r,s[3]=e;var c=.5*o,h=.5*u,l=.5*i;return s[4]=c*e+h*r-l*a,s[5]=h*e+l*t-c*r,s[6]=l*e+c*a-h*t,s[7]=-c*t-h*a-l*r,s},fromRotationTranslation:fromRotationTranslation$1,fromTranslation:function fromTranslation$3(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 fromRotation$4(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 fromMat4$1(t,a){var r=create$6();getRotation(r,a);var e=new n(3);return getTranslation(e,a),fromRotationTranslation$1(t,r,e),t},copy:copy$7,identity:function identity$5(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 set$7(t,a,n,r,e,o,u,i,s){return t[0]=a,t[1]=n,t[2]=r,t[3]=e,t[4]=o,t[5]=u,t[6]=i,t[7]=s,t},getReal:ct,getDual:function getDual(t,a){return t[0]=a[4],t[1]=a[5],t[2]=a[6],t[3]=a[7],t},setReal:ht,setDual:function setDual(t,a){return t[4]=a[0],t[5]=a[1],t[6]=a[2],t[7]=a[3],t},getTranslation:function getTranslation$1(t,a){var n=a[4],r=a[5],e=a[6],o=a[7],u=-a[0],i=-a[1],s=-a[2],c=a[3];return t[0]=2*(n*c+o*u+r*s-e*i),t[1]=2*(r*c+o*i+e*u-n*s),t[2]=2*(e*c+o*s+n*i-r*u),t},translate:function translate$3(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=.5*n[0],s=.5*n[1],c=.5*n[2],h=a[4],l=a[5],f=a[6],M=a[7];return t[0]=r,t[1]=e,t[2]=o,t[3]=u,t[4]=u*i+e*c-o*s+h,t[5]=u*s+o*i-r*c+l,t[6]=u*c+r*s-e*i+f,t[7]=-r*i-e*s-o*c+M,t},rotateX:function rotateX$3(t,a,n){var r=-a[0],e=-a[1],o=-a[2],u=a[3],i=a[4],s=a[5],c=a[6],h=a[7],l=i*u+h*r+s*o-c*e,f=s*u+h*e+c*r-i*o,M=c*u+h*o+i*e-s*r,m=h*u-i*r-s*e-c*o;return rotateX$2(t,a,n),r=t[0],e=t[1],o=t[2],u=t[3],t[4]=l*u+m*r+f*o-M*e,t[5]=f*u+m*e+M*r-l*o,t[6]=M*u+m*o+l*e-f*r,t[7]=m*u-l*r-f*e-M*o,t},rotateY:function rotateY$3(t,a,n){var r=-a[0],e=-a[1],o=-a[2],u=a[3],i=a[4],s=a[5],c=a[6],h=a[7],l=i*u+h*r+s*o-c*e,f=s*u+h*e+c*r-i*o,M=c*u+h*o+i*e-s*r,m=h*u-i*r-s*e-c*o;return rotateY$2(t,a,n),r=t[0],e=t[1],o=t[2],u=t[3],t[4]=l*u+m*r+f*o-M*e,t[5]=f*u+m*e+M*r-l*o,t[6]=M*u+m*o+l*e-f*r,t[7]=m*u-l*r-f*e-M*o,t},rotateZ:function rotateZ$3(t,a,n){var r=-a[0],e=-a[1],o=-a[2],u=a[3],i=a[4],s=a[5],c=a[6],h=a[7],l=i*u+h*r+s*o-c*e,f=s*u+h*e+c*r-i*o,M=c*u+h*o+i*e-s*r,m=h*u-i*r-s*e-c*o;return rotateZ$2(t,a,n),r=t[0],e=t[1],o=t[2],u=t[3],t[4]=l*u+m*r+f*o-M*e,t[5]=f*u+m*e+M*r-l*o,t[6]=M*u+m*o+l*e-f*r,t[7]=m*u-l*r-f*e-M*o,t},rotateByQuatAppend:function rotateByQuatAppend(t,a,n){var r=n[0],e=n[1],o=n[2],u=n[3],i=a[0],s=a[1],c=a[2],h=a[3];return t[0]=i*u+h*r+s*o-c*e,t[1]=s*u+h*e+c*r-i*o,t[2]=c*u+h*o+i*e-s*r,t[3]=h*u-i*r-s*e-c*o,i=a[4],s=a[5],c=a[6],h=a[7],t[4]=i*u+h*r+s*o-c*e,t[5]=s*u+h*e+c*r-i*o,t[6]=c*u+h*o+i*e-s*r,t[7]=h*u-i*r-s*e-c*o,t},rotateByQuatPrepend:function rotateByQuatPrepend(t,a,n){var r=a[0],e=a[1],o=a[2],u=a[3],i=n[0],s=n[1],c=n[2],h=n[3];return t[0]=r*h+u*i+e*c-o*s,t[1]=e*h+u*s+o*i-r*c,t[2]=o*h+u*c+r*s-e*i,t[3]=u*h-r*i-e*s-o*c,i=n[4],s=n[5],c=n[6],h=n[7],t[4]=r*h+u*i+e*c-o*s,t[5]=e*h+u*s+o*i-r*c,t[6]=o*h+u*c+r*s-e*i,t[7]=u*h-r*i-e*s-o*c,t},rotateAroundAxis:function rotateAroundAxis(t,n,r,e){if(Math.abs(e)<a)return copy$7(t,n);var o=Math.hypot(r[0],r[1],r[2]);e*=.5;var u=Math.sin(e),i=u*r[0]/o,s=u*r[1]/o,c=u*r[2]/o,h=Math.cos(e),l=n[0],f=n[1],M=n[2],m=n[3];t[0]=l*h+m*i+f*c-M*s,t[1]=f*h+m*s+M*i-l*c,t[2]=M*h+m*c+l*s-f*i,t[3]=m*h-l*i-f*s-M*c;var $=n[4],d=n[5],v=n[6],b=n[7];return t[4]=$*h+b*i+d*c-v*s,t[5]=d*h+b*s+v*i-$*c,t[6]=v*h+b*c+$*s-d*i,t[7]=b*h-$*i-d*s-v*c,t},add:function add$7(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},multiply:multiply$7,mul:lt,scale:function scale$7(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},dot:ft,lerp:function lerp$3(t,a,n,r){var e=1-r;return ft(a,n)<0&&(r=-r),t[0]=a[0]*e+n[0]*r,t[1]=a[1]*e+n[1]*r,t[2]=a[2]*e+n[2]*r,t[3]=a[3]*e+n[3]*r,t[4]=a[4]*e+n[4]*r,t[5]=a[5]*e+n[5]*r,t[6]=a[6]*e+n[6]*r,t[7]=a[7]*e+n[7]*r,t},invert:function invert$5(t,a){var n=$t(a);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},conjugate:function conjugate$1(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},length:Mt,len:mt,squaredLength:$t,sqrLen:dt,normalize:function normalize$3(t,a){var n=$t(a);if(n>0){n=Math.sqrt(n);var r=a[0]/n,e=a[1]/n,o=a[2]/n,u=a[3]/n,i=a[4],s=a[5],c=a[6],h=a[7],l=r*i+e*s+o*c+u*h;t[0]=r,t[1]=e,t[2]=o,t[3]=u,t[4]=(i-r*l)/n,t[5]=(s-e*l)/n,t[6]=(c-o*l)/n,t[7]=(h-u*l)/n}return t},str:function str$7(t){return"quat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+")"},exactEquals:function exactEquals$7(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 equals$8(t,n){var r=t[0],e=t[1],o=t[2],u=t[3],i=t[4],s=t[5],c=t[6],h=t[7],l=n[0],f=n[1],M=n[2],m=n[3],$=n[4],d=n[5],v=n[6],b=n[7];return Math.abs(r-l)<=a*Math.max(1,Math.abs(r),Math.abs(l))&&Math.abs(e-f)<=a*Math.max(1,Math.abs(e),Math.abs(f))&&Math.abs(o-M)<=a*Math.max(1,Math.abs(o),Math.abs(M))&&Math.abs(u-m)<=a*Math.max(1,Math.abs(u),Math.abs(m))&&Math.abs(i-$)<=a*Math.max(1,Math.abs(i),Math.abs($))&&Math.abs(s-d)<=a*Math.max(1,Math.abs(s),Math.abs(d))&&Math.abs(c-v)<=a*Math.max(1,Math.abs(c),Math.abs(v))&&Math.abs(h-b)<=a*Math.max(1,Math.abs(h),Math.abs(b))}});function create$8(){var t=new n(2);return n!=Float32Array&&(t[0]=0,t[1]=0),t}function subtract$6(t,a,n){return t[0]=a[0]-n[0],t[1]=a[1]-n[1],t}function multiply$8(t,a,n){return t[0]=a[0]*n[0],t[1]=a[1]*n[1],t}function divide$2(t,a,n){return t[0]=a[0]/n[0],t[1]=a[1]/n[1],t}function distance$2(t,a){var n=a[0]-t[0],r=a[1]-t[1];return Math.hypot(n,r)}function squaredDistance$2(t,a){var n=a[0]-t[0],r=a[1]-t[1];return n*n+r*r}function length$4(t){var a=t[0],n=t[1];return Math.hypot(a,n)}function squaredLength$4(t){var a=t[0],n=t[1];return a*a+n*n}var bt=length$4,pt=subtract$6,yt=multiply$8,xt=divide$2,gt=distance$2,qt=squaredDistance$2,At=squaredLength$4,_t=function(){var t=create$8();return function(a,n,r,e,o,u){var i,s;for(n||(n=2),r||(r=0),s=e?Math.min(e*n+r,a.length):a.length,i=r;i<s;i+=n)t[0]=a[i],t[1]=a[i+1],o(t,t,u),a[i]=t[0],a[i+1]=t[1];return a}}(),Rt=Object.freeze({__proto__:null,create:create$8,clone:function clone$8(t){var a=new n(2);return a[0]=t[0],a[1]=t[1],a},fromValues:function fromValues$8(t,a){var r=new n(2);return r[0]=t,r[1]=a,r},copy:function copy$8(t,a){return t[0]=a[0],t[1]=a[1],t},set:function set$8(t,a,n){return t[0]=a,t[1]=n,t},add:function add$8(t,a,n){return t[0]=a[0]+n[0],t[1]=a[1]+n[1],t},subtract:subtract$6,multiply:multiply$8,divide:divide$2,ceil:function ceil$2(t,a){return t[0]=Math.ceil(a[0]),t[1]=Math.ceil(a[1]),t},floor:function floor$2(t,a){return t[0]=Math.floor(a[0]),t[1]=Math.floor(a[1]),t},min:function min$2(t,a,n){return t[0]=Math.min(a[0],n[0]),t[1]=Math.min(a[1],n[1]),t},max:function max$2(t,a,n){return t[0]=Math.max(a[0],n[0]),t[1]=Math.max(a[1],n[1]),t},round:function round$2(t,a){return t[0]=Math.round(a[0]),t[1]=Math.round(a[1]),t},scale:function scale$8(t,a,n){return t[0]=a[0]*n,t[1]=a[1]*n,t},scaleAndAdd:function scaleAndAdd$2(t,a,n,r){return t[0]=a[0]+n[0]*r,t[1]=a[1]+n[1]*r,t},distance:distance$2,squaredDistance:squaredDistance$2,length:length$4,squaredLength:squaredLength$4,negate:function negate$2(t,a){return t[0]=-a[0],t[1]=-a[1],t},inverse:function inverse$2(t,a){return t[0]=1/a[0],t[1]=1/a[1],t},normalize:function normalize$4(t,a){var n=a[0],r=a[1],e=n*n+r*r;return e>0&&(e=1/Math.sqrt(e)),t[0]=a[0]*e,t[1]=a[1]*e,t},dot:function dot$4(t,a){return t[0]*a[0]+t[1]*a[1]},cross:function cross$2(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 lerp$4(t,a,n,r){var e=a[0],o=a[1];return t[0]=e+r*(n[0]-e),t[1]=o+r*(n[1]-o),t},random:function random$3(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 transformMat2(t,a,n){var r=a[0],e=a[1];return t[0]=n[0]*r+n[2]*e,t[1]=n[1]*r+n[3]*e,t},transformMat2d:function transformMat2d(t,a,n){var r=a[0],e=a[1];return t[0]=n[0]*r+n[2]*e+n[4],t[1]=n[1]*r+n[3]*e+n[5],t},transformMat3:function transformMat3$1(t,a,n){var r=a[0],e=a[1];return t[0]=n[0]*r+n[3]*e+n[6],t[1]=n[1]*r+n[4]*e+n[7],t},transformMat4:function transformMat4$2(t,a,n){var r=a[0],e=a[1];return t[0]=n[0]*r+n[4]*e+n[12],t[1]=n[1]*r+n[5]*e+n[13],t},rotate:function rotate$4(t,a,n,r){var e=a[0]-n[0],o=a[1]-n[1],u=Math.sin(r),i=Math.cos(r);return t[0]=e*i-o*u+n[0],t[1]=e*u+o*i+n[1],t},angle:function angle$1(t,a){var n=t[0],r=t[1],e=a[0],o=a[1],u=Math.sqrt(n*n+r*r)*Math.sqrt(e*e+o*o),i=u&&(n*e+r*o)/u;return Math.acos(Math.min(Math.max(i,-1),1))},zero:function zero$2(t){return t[0]=0,t[1]=0,t},str:function str$8(t){return"vec2("+t[0]+", "+t[1]+")"},exactEquals:function exactEquals$8(t,a){return t[0]===a[0]&&t[1]===a[1]},equals:function equals$9(t,n){var r=t[0],e=t[1],o=n[0],u=n[1];return Math.abs(r-o)<=a*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(e-u)<=a*Math.max(1,Math.abs(e),Math.abs(u))},len:bt,sub:pt,mul:yt,div:xt,dist:gt,sqrDist:qt,sqrLen:At,forEach:_t});t.glMatrix=o,t.mat2=s,t.mat2d=l,t.mat3=m,t.mat4=v,t.quat=st,t.quat2=vt,t.vec2=Rt,t.vec3=T,t.vec4=P,Object.defineProperty(t,"__esModule",{value:!0})}),globalThis.glMatrix3D=glMatrix,globalThis.glMatrix3D.glMatrix.setMatrixArrayType(Array);