@loaders.gl/tiles
Version:
Common components for different tiles loaders.
7 lines • 105 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if (typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if (typeof define === 'function' && define.amd) define([], factory);
else if (typeof exports === 'object') exports['loaders'] = factory();
else root['loaders'] = factory();})(globalThis, function () {
"use strict";var __exports__=(()=>{var ar=Object.create;var Yt=Object.defineProperty;var hr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,mr=Object.prototype.hasOwnProperty;var pr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ct=(e,t)=>{for(var s in t)Yt(e,s,{get:t[s],enumerable:!0})},Bt=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of lr(t))!mr.call(e,r)&&r!==s&&Yt(e,r,{get:()=>t[r],enumerable:!(n=hr(t,r))||n.enumerable});return e},Gt=(e,t,s)=>(Bt(e,t,"default"),s&&Bt(s,t,"default")),Oe=(e,t,s)=>(s=e!=null?ar(fr(e)):{},Bt(t||!e||!e.__esModule?Yt(s,"default",{value:e,enumerable:!0}):s,e)),dr=e=>Bt(Yt({},"__esModule",{value:!0}),e);var Zt=pr((lc,ys)=>{ys.exports=globalThis.loaders});var Ft={};Ct(Ft,{LOD_METRIC_TYPE:()=>xe,TILESET_TYPE:()=>W,TILE_CONTENT_STATE:()=>Y,TILE_REFINEMENT:()=>Z,TILE_TYPE:()=>ue,Tile3D:()=>it,Tileset3D:()=>we,TilesetCache:()=>Rt,TilesetTraverser:()=>K,calculateTransformProps:()=>he,createBoundingVolume:()=>At,getFrameState:()=>de,getLodStatus:()=>Me});Gt(Ft,Oe(Zt(),1));var ur=1/Math.PI*180,xr=1/180*Math.PI,gr={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...gr}};var z=globalThis.mathgl.config;function Ae(e,{precision:t=z.precision}={}){return e=Mr(e),`${parseFloat(e.toPrecision(t))}`}function tt(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Ce(e){return _s(e)}function Pe(e){return j(e)}function _s(e,t){return Ss(e,s=>s*xr,t)}function j(e,t){return Ss(e,s=>s*ur,t)}function X(e,t,s){let n=z.EPSILON;s&&(z.EPSILON=s);try{if(e===t)return!0;if(tt(e)&&tt(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;++r)if(!X(e[r],t[r]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<=z.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{z.EPSILON=n}}function Mr(e){return Math.round(e/z.EPSILON)*z.EPSILON}function Tr(e){return e.clone?e.clone():new Array(e.length)}function Ss(e,t,s){if(tt(e)){let n=e;s=s||Tr(n);for(let r=0;r<s.length&&r<n.length;++r){let i=typeof e=="number"?e:e[r];s[r]=t(i,r,s)}return s}return t(e)}var ot=class extends Array{clone(){return new this.constructor().copy(this)}fromArray(t,s=0){for(let n=0;n<this.ELEMENTS;++n)this[n]=t[n+s];return this.check()}toArray(t=[],s=0){for(let n=0;n<this.ELEMENTS;++n)t[s+n]=this[n];return t}toObject(t){return t}from(t){return Array.isArray(t)?this.copy(t):this.fromObject(t)}to(t){return t===this?this:tt(t)?this.toArray(t):this.toObject(t)}toTarget(t){return t?this.to(t):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(z)}formatString(t){let s="";for(let n=0;n<this.ELEMENTS;++n)s+=(n>0?", ":"")+Ae(this[n],t);return`${t.printTypes?this.constructor.name:""}[${s}]`}equals(t){if(!t||this.length!==t.length)return!1;for(let s=0;s<this.ELEMENTS;++s)if(!X(this[s],t[s]))return!1;return!0}exactEquals(t){if(!t||this.length!==t.length)return!1;for(let s=0;s<this.ELEMENTS;++s)if(this[s]!==t[s])return!1;return!0}negate(){for(let t=0;t<this.ELEMENTS;++t)this[t]=-this[t];return this.check()}lerp(t,s,n){if(n===void 0)return this.lerp(this,t,s);for(let r=0;r<this.ELEMENTS;++r){let i=t[r],o=typeof s=="number"?s:s[r];this[r]=i+n*(o-i)}return this.check()}min(t){for(let s=0;s<this.ELEMENTS;++s)this[s]=Math.min(t[s],this[s]);return this.check()}max(t){for(let s=0;s<this.ELEMENTS;++s)this[s]=Math.max(t[s],this[s]);return this.check()}clamp(t,s){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],t[n]),s[n]);return this.check()}add(...t){for(let s of t)for(let n=0;n<this.ELEMENTS;++n)this[n]+=s[n];return this.check()}subtract(...t){for(let s of t)for(let n=0;n<this.ELEMENTS;++n)this[n]-=s[n];return this.check()}scale(t){if(typeof t=="number")for(let s=0;s<this.ELEMENTS;++s)this[s]*=t;else for(let s=0;s<this.ELEMENTS&&s<t.length;++s)this[s]*=t[s];return this.check()}multiplyByScalar(t){for(let s=0;s<this.ELEMENTS;++s)this[s]*=t;return this.check()}check(){if(z.debug&&!this.validate())throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);return this}validate(){let t=this.length===this.ELEMENTS;for(let s=0;s<this.ELEMENTS;++s)t=t&&Number.isFinite(this[s]);return t}sub(t){return this.subtract(t)}setScalar(t){for(let s=0;s<this.ELEMENTS;++s)this[s]=t;return this.check()}addScalar(t){for(let s=0;s<this.ELEMENTS;++s)this[s]+=t;return this.check()}subScalar(t){return this.addScalar(-t)}multiplyScalar(t){for(let s=0;s<this.ELEMENTS;++s)this[s]*=t;return this.check()}divideScalar(t){return this.multiplyByScalar(1/t)}clampScalar(t,s){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],t),s);return this.check()}get elements(){return this}};function yr(e,t){if(e.length!==t)return!1;for(let s=0;s<e.length;++s)if(!Number.isFinite(e[s]))return!1;return!0}function L(e){if(!Number.isFinite(e))throw new Error(`Invalid number ${JSON.stringify(e)}`);return e}function ct(e,t,s=""){if(z.debug&&!yr(e,t))throw new Error(`math.gl: ${s} some fields set to invalid numbers'`);return e}function U(e,t){if(!e)throw new Error(`math.gl assertion ${t}`)}var Mt=class extends ot{get x(){return this[0]}set x(t){this[0]=L(t)}get y(){return this[1]}set y(t){this[1]=L(t)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let t=0;for(let s=0;s<this.ELEMENTS;++s)t+=this[s]*this[s];return t}magnitudeSquared(){return this.lengthSquared()}distance(t){return Math.sqrt(this.distanceSquared(t))}distanceSquared(t){let s=0;for(let n=0;n<this.ELEMENTS;++n){let r=this[n]-t[n];s+=r*r}return L(s)}dot(t){let s=0;for(let n=0;n<this.ELEMENTS;++n)s+=this[n]*t[n];return L(s)}normalize(){let t=this.magnitude();if(t!==0)for(let s=0;s<this.ELEMENTS;++s)this[s]/=t;return this.check()}multiply(...t){for(let s of t)for(let n=0;n<this.ELEMENTS;++n)this[n]*=s[n];return this.check()}divide(...t){for(let s of t)for(let n=0;n<this.ELEMENTS;++n)this[n]/=s[n];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(t){return this.distance(t)}distanceToSquared(t){return this.distanceSquared(t)}getComponent(t){return U(t>=0&&t<this.ELEMENTS,"index is out of range"),L(this[t])}setComponent(t,s){return U(t>=0&&t<this.ELEMENTS,"index is out of range"),this[t]=s,this.check()}addVectors(t,s){return this.copy(t).add(s)}subVectors(t,s){return this.copy(t).subtract(s)}multiplyVectors(t,s){return this.copy(t).multiply(s)}addScaledVector(t,s){return this.add(new this.constructor(t).multiplyScalar(s))}};var V=typeof Float32Array<"u"?Float32Array:Array,Pt=Math.random;function Tt(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var _c=Math.PI/180;function _r(){let e=new V(2);return V!=Float32Array&&(e[0]=0,e[1]=0),e}function Es(e,t,s){let n=t[0],r=t[1];return e[0]=s[0]*n+s[3]*r+s[6],e[1]=s[1]*n+s[4]*r+s[7],e}function ws(e,t,s){let n=t[0],r=t[1];return e[0]=s[0]*n+s[4]*r+s[12],e[1]=s[1]*n+s[5]*r+s[13],e}var Sc=function(){let e=_r();return function(t,s,n,r,i,o){let c,a;for(s||(s=2),n||(n=0),r?a=Math.min(r*s+n,t.length):a=t.length,c=n;c<a;c+=s)e[0]=t[c],e[1]=t[c+1],i(e,e,o),t[c]=e[0],t[c+1]=e[1];return t}}();function Rs(e,t,s){let n=t[0],r=t[1],i=s[3]*n+s[7]*r||1;return e[0]=(s[0]*n+s[4]*r)/i,e[1]=(s[1]*n+s[5]*r)/i,e}function $t(e,t,s){let n=t[0],r=t[1],i=t[2],o=s[3]*n+s[7]*r+s[11]*i||1;return e[0]=(s[0]*n+s[4]*r+s[8]*i)/o,e[1]=(s[1]*n+s[5]*r+s[9]*i)/o,e[2]=(s[2]*n+s[6]*r+s[10]*i)/o,e}function Os(e,t,s){let n=t[0],r=t[1];return e[0]=s[0]*n+s[2]*r,e[1]=s[1]*n+s[3]*r,e[2]=t[2],e}function As(e,t,s){let n=t[0],r=t[1];return e[0]=s[0]*n+s[2]*r,e[1]=s[1]*n+s[3]*r,e[2]=t[2],e[3]=t[3],e}function jt(e,t,s){let n=t[0],r=t[1],i=t[2];return e[0]=s[0]*n+s[3]*r+s[6]*i,e[1]=s[1]*n+s[4]*r+s[7]*i,e[2]=s[2]*n+s[5]*r+s[8]*i,e[3]=t[3],e}var ut={};Ct(ut,{add:()=>Rr,angle:()=>ve,bezier:()=>Dr,ceil:()=>Or,clone:()=>Sr,copy:()=>Er,create:()=>Xt,cross:()=>pt,dist:()=>$r,distance:()=>Is,div:()=>Zr,divide:()=>Ls,dot:()=>Nt,equals:()=>Br,exactEquals:()=>Wr,floor:()=>Ar,forEach:()=>Qr,fromValues:()=>Qt,hermite:()=>Vr,inverse:()=>vr,len:()=>be,length:()=>Cs,lerp:()=>br,max:()=>Pr,min:()=>Cr,mul:()=>Gr,multiply:()=>Ns,negate:()=>qr,normalize:()=>Ne,random:()=>Ur,rotateX:()=>Le,rotateY:()=>Ie,rotateZ:()=>qe,round:()=>Nr,scale:()=>Lr,scaleAndAdd:()=>Ir,set:()=>wr,slerp:()=>zr,sqrDist:()=>jr,sqrLen:()=>Xr,squaredDistance:()=>qs,squaredLength:()=>vs,str:()=>Fr,sub:()=>Yr,subtract:()=>Ps,transformMat3:()=>Lt,transformMat4:()=>dt,transformQuat:()=>It,zero:()=>kr});function Xt(){let e=new V(3);return V!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Sr(e){let t=new V(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Cs(e){let t=e[0],s=e[1],n=e[2];return Math.sqrt(t*t+s*s+n*n)}function Qt(e,t,s){let n=new V(3);return n[0]=e,n[1]=t,n[2]=s,n}function Er(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function wr(e,t,s,n){return e[0]=t,e[1]=s,e[2]=n,e}function Rr(e,t,s){return e[0]=t[0]+s[0],e[1]=t[1]+s[1],e[2]=t[2]+s[2],e}function Ps(e,t,s){return e[0]=t[0]-s[0],e[1]=t[1]-s[1],e[2]=t[2]-s[2],e}function Ns(e,t,s){return e[0]=t[0]*s[0],e[1]=t[1]*s[1],e[2]=t[2]*s[2],e}function Ls(e,t,s){return e[0]=t[0]/s[0],e[1]=t[1]/s[1],e[2]=t[2]/s[2],e}function Or(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function Ar(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function Cr(e,t,s){return e[0]=Math.min(t[0],s[0]),e[1]=Math.min(t[1],s[1]),e[2]=Math.min(t[2],s[2]),e}function Pr(e,t,s){return e[0]=Math.max(t[0],s[0]),e[1]=Math.max(t[1],s[1]),e[2]=Math.max(t[2],s[2]),e}function Nr(e,t){return e[0]=Tt(t[0]),e[1]=Tt(t[1]),e[2]=Tt(t[2]),e}function Lr(e,t,s){return e[0]=t[0]*s,e[1]=t[1]*s,e[2]=t[2]*s,e}function Ir(e,t,s,n){return e[0]=t[0]+s[0]*n,e[1]=t[1]+s[1]*n,e[2]=t[2]+s[2]*n,e}function Is(e,t){let s=t[0]-e[0],n=t[1]-e[1],r=t[2]-e[2];return Math.sqrt(s*s+n*n+r*r)}function qs(e,t){let s=t[0]-e[0],n=t[1]-e[1],r=t[2]-e[2];return s*s+n*n+r*r}function vs(e){let t=e[0],s=e[1],n=e[2];return t*t+s*s+n*n}function qr(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function vr(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Ne(e,t){let s=t[0],n=t[1],r=t[2],i=s*s+n*n+r*r;return i>0&&(i=1/Math.sqrt(i)),e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e}function Nt(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function pt(e,t,s){let n=t[0],r=t[1],i=t[2],o=s[0],c=s[1],a=s[2];return e[0]=r*a-i*c,e[1]=i*o-n*a,e[2]=n*c-r*o,e}function br(e,t,s,n){let r=t[0],i=t[1],o=t[2];return e[0]=r+n*(s[0]-r),e[1]=i+n*(s[1]-i),e[2]=o+n*(s[2]-o),e}function zr(e,t,s,n){let r=Math.acos(Math.min(Math.max(Nt(t,s),-1),1)),i=Math.sin(r),o=Math.sin((1-n)*r)/i,c=Math.sin(n*r)/i;return e[0]=o*t[0]+c*s[0],e[1]=o*t[1]+c*s[1],e[2]=o*t[2]+c*s[2],e}function Vr(e,t,s,n,r,i){let o=i*i,c=o*(2*i-3)+1,a=o*(i-2)+i,h=o*(i-1),l=o*(3-2*i);return e[0]=t[0]*c+s[0]*a+n[0]*h+r[0]*l,e[1]=t[1]*c+s[1]*a+n[1]*h+r[1]*l,e[2]=t[2]*c+s[2]*a+n[2]*h+r[2]*l,e}function Dr(e,t,s,n,r,i){let o=1-i,c=o*o,a=i*i,h=c*o,l=3*i*c,f=3*a*o,m=a*i;return e[0]=t[0]*h+s[0]*l+n[0]*f+r[0]*m,e[1]=t[1]*h+s[1]*l+n[1]*f+r[1]*m,e[2]=t[2]*h+s[2]*l+n[2]*f+r[2]*m,e}function Ur(e,t){t=t===void 0?1:t;let s=Pt()*2*Math.PI,n=Pt()*2-1,r=Math.sqrt(1-n*n)*t;return e[0]=Math.cos(s)*r,e[1]=Math.sin(s)*r,e[2]=n*t,e}function dt(e,t,s){let n=t[0],r=t[1],i=t[2],o=s[3]*n+s[7]*r+s[11]*i+s[15];return o=o||1,e[0]=(s[0]*n+s[4]*r+s[8]*i+s[12])/o,e[1]=(s[1]*n+s[5]*r+s[9]*i+s[13])/o,e[2]=(s[2]*n+s[6]*r+s[10]*i+s[14])/o,e}function Lt(e,t,s){let n=t[0],r=t[1],i=t[2];return e[0]=n*s[0]+r*s[3]+i*s[6],e[1]=n*s[1]+r*s[4]+i*s[7],e[2]=n*s[2]+r*s[5]+i*s[8],e}function It(e,t,s){let n=s[0],r=s[1],i=s[2],o=s[3],c=t[0],a=t[1],h=t[2],l=r*h-i*a,f=i*c-n*h,m=n*a-r*c,p=r*m-i*f,x=i*l-n*m,g=n*f-r*l,u=o*2;return l*=u,f*=u,m*=u,p*=2,x*=2,g*=2,e[0]=c+l+p,e[1]=a+f+x,e[2]=h+m+g,e}function Le(e,t,s,n){let r=[],i=[];return r[0]=t[0]-s[0],r[1]=t[1]-s[1],r[2]=t[2]-s[2],i[0]=r[0],i[1]=r[1]*Math.cos(n)-r[2]*Math.sin(n),i[2]=r[1]*Math.sin(n)+r[2]*Math.cos(n),e[0]=i[0]+s[0],e[1]=i[1]+s[1],e[2]=i[2]+s[2],e}function Ie(e,t,s,n){let r=[],i=[];return r[0]=t[0]-s[0],r[1]=t[1]-s[1],r[2]=t[2]-s[2],i[0]=r[2]*Math.sin(n)+r[0]*Math.cos(n),i[1]=r[1],i[2]=r[2]*Math.cos(n)-r[0]*Math.sin(n),e[0]=i[0]+s[0],e[1]=i[1]+s[1],e[2]=i[2]+s[2],e}function qe(e,t,s,n){let r=[],i=[];return r[0]=t[0]-s[0],r[1]=t[1]-s[1],r[2]=t[2]-s[2],i[0]=r[0]*Math.cos(n)-r[1]*Math.sin(n),i[1]=r[0]*Math.sin(n)+r[1]*Math.cos(n),i[2]=r[2],e[0]=i[0]+s[0],e[1]=i[1]+s[1],e[2]=i[2]+s[2],e}function ve(e,t){let s=e[0],n=e[1],r=e[2],i=t[0],o=t[1],c=t[2],a=Math.sqrt((s*s+n*n+r*r)*(i*i+o*o+c*c)),h=a&&Nt(e,t)/a;return Math.acos(Math.min(Math.max(h,-1),1))}function kr(e){return e[0]=0,e[1]=0,e[2]=0,e}function Fr(e){return`vec3(${e[0]}, ${e[1]}, ${e[2]})`}function Wr(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Br(e,t){let s=e[0],n=e[1],r=e[2],i=t[0],o=t[1],c=t[2];return Math.abs(s-i)<=1e-6*Math.max(1,Math.abs(s),Math.abs(i))&&Math.abs(n-o)<=1e-6*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(r-c)<=1e-6*Math.max(1,Math.abs(r),Math.abs(c))}var Yr=Ps,Gr=Ns,Zr=Ls,$r=Is,jr=qs,be=Cs,Xr=vs,Qr=function(){let e=Xt();return function(t,s,n,r,i,o){let c,a;for(s||(s=3),n||(n=0),r?a=Math.min(r*s+n,t.length):a=t.length,c=n;c<a;c+=s)e[0]=t[c],e[1]=t[c+1],e[2]=t[c+2],i(e,e,o),t[c]=e[0],t[c+1]=e[1],t[c+2]=e[2];return t}}();var ze=[0,0,0],Kt,d=class extends Mt{static get ZERO(){return Kt||(Kt=new d(0,0,0),Object.freeze(Kt)),Kt}constructor(t=0,s=0,n=0){super(-0,-0,-0),arguments.length===1&&tt(t)?this.copy(t):(z.debug&&(L(t),L(s),L(n)),this[0]=t,this[1]=s,this[2]=n)}set(t,s,n){return this[0]=t,this[1]=s,this[2]=n,this.check()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this.check()}fromObject(t){return z.debug&&(L(t.x),L(t.y),L(t.z)),this[0]=t.x,this[1]=t.y,this[2]=t.z,this.check()}toObject(t){return t.x=this[0],t.y=this[1],t.z=this[2],t}get ELEMENTS(){return 3}get z(){return this[2]}set z(t){this[2]=L(t)}angle(t){return ve(this,t)}cross(t){return pt(this,this,t),this.check()}rotateX({radians:t,origin:s=ze}){return Le(this,this,s,t),this.check()}rotateY({radians:t,origin:s=ze}){return Ie(this,this,s,t),this.check()}rotateZ({radians:t,origin:s=ze}){return qe(this,this,s,t),this.check()}transform(t){return this.transformAsPoint(t)}transformAsPoint(t){return dt(this,this,t),this.check()}transformAsVector(t){return $t(this,this,t),this.check()}transformByMatrix3(t){return Lt(this,this,t),this.check()}transformByMatrix2(t){return Os(this,this,t),this.check()}transformByQuaternion(t){return It(this,this,t),this.check()}};var Ht,_t=class extends Mt{static get ZERO(){return Ht||(Ht=new _t(0,0,0,0),Object.freeze(Ht)),Ht}constructor(t=0,s=0,n=0,r=0){super(-0,-0,-0,-0),tt(t)&&arguments.length===1?this.copy(t):(z.debug&&(L(t),L(s),L(n),L(r)),this[0]=t,this[1]=s,this[2]=n,this[3]=r)}set(t,s,n,r){return this[0]=t,this[1]=s,this[2]=n,this[3]=r,this.check()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}fromObject(t){return z.debug&&(L(t.x),L(t.y),L(t.z),L(t.w)),this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this}toObject(t){return t.x=this[0],t.y=this[1],t.z=this[2],t.w=this[3],t}get ELEMENTS(){return 4}get z(){return this[2]}set z(t){this[2]=L(t)}get w(){return this[3]}set w(t){this[3]=L(t)}transform(t){return dt(this,this,t),this.check()}transformByMatrix3(t){return jt(this,this,t),this.check()}transformByMatrix2(t){return As(this,this,t),this.check()}transformByQuaternion(t){return It(this,this,t),this.check()}applyMatrix4(t){return t.transform(this,this),this}};var St=class extends ot{toString(){let t="[";if(z.printRowMajor){t+="row-major:";for(let s=0;s<this.RANK;++s)for(let n=0;n<this.RANK;++n)t+=` ${this[n*this.RANK+s]}`}else{t+="column-major:";for(let s=0;s<this.ELEMENTS;++s)t+=` ${this[s]}`}return t+="]",t}getElementIndex(t,s){return s*this.RANK+t}getElement(t,s){return this[s*this.RANK+t]}setElement(t,s,n){return this[s*this.RANK+t]=L(n),this}getColumn(t,s=new Array(this.RANK).fill(-0)){let n=t*this.RANK;for(let r=0;r<this.RANK;++r)s[r]=this[n+r];return s}setColumn(t,s){let n=t*this.RANK;for(let r=0;r<this.RANK;++r)this[n+r]=s[r];return this}};function bs(){let e=new V(9);return V!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function zs(e,t){if(e===t){let s=t[1],n=t[2],r=t[5];e[1]=t[3],e[2]=t[6],e[3]=s,e[5]=t[7],e[6]=n,e[7]=r}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e}function Vs(e,t){let s=t[0],n=t[1],r=t[2],i=t[3],o=t[4],c=t[5],a=t[6],h=t[7],l=t[8],f=l*o-c*h,m=-l*i+c*a,p=h*i-o*a,x=s*f+n*m+r*p;return x?(x=1/x,e[0]=f*x,e[1]=(-l*n+r*h)*x,e[2]=(c*n-r*o)*x,e[3]=m*x,e[4]=(l*s-r*a)*x,e[5]=(-c*s+r*i)*x,e[6]=p*x,e[7]=(-h*s+n*a)*x,e[8]=(o*s-n*i)*x,e):null}function Ds(e){let t=e[0],s=e[1],n=e[2],r=e[3],i=e[4],o=e[5],c=e[6],a=e[7],h=e[8];return t*(h*i-o*a)+s*(-h*r+o*c)+n*(a*r-i*c)}function Ve(e,t,s){let n=t[0],r=t[1],i=t[2],o=t[3],c=t[4],a=t[5],h=t[6],l=t[7],f=t[8],m=s[0],p=s[1],x=s[2],g=s[3],u=s[4],M=s[5],E=s[6],y=s[7],T=s[8];return e[0]=m*n+p*o+x*h,e[1]=m*r+p*c+x*l,e[2]=m*i+p*a+x*f,e[3]=g*n+u*o+M*h,e[4]=g*r+u*c+M*l,e[5]=g*i+u*a+M*f,e[6]=E*n+y*o+T*h,e[7]=E*r+y*c+T*l,e[8]=E*i+y*a+T*f,e}function Us(e,t,s){let n=t[0],r=t[1],i=t[2],o=t[3],c=t[4],a=t[5],h=t[6],l=t[7],f=t[8],m=s[0],p=s[1];return e[0]=n,e[1]=r,e[2]=i,e[3]=o,e[4]=c,e[5]=a,e[6]=m*n+p*o+h,e[7]=m*r+p*c+l,e[8]=m*i+p*a+f,e}function ks(e,t,s){let n=t[0],r=t[1],i=t[2],o=t[3],c=t[4],a=t[5],h=t[6],l=t[7],f=t[8],m=Math.sin(s),p=Math.cos(s);return e[0]=p*n+m*o,e[1]=p*r+m*c,e[2]=p*i+m*a,e[3]=p*o-m*n,e[4]=p*c-m*r,e[5]=p*a-m*i,e[6]=h,e[7]=l,e[8]=f,e}function De(e,t,s){let n=s[0],r=s[1];return e[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=r*t[3],e[4]=r*t[4],e[5]=r*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function Fs(e,t){let s=t[0],n=t[1],r=t[2],i=t[3],o=s+s,c=n+n,a=r+r,h=s*o,l=n*o,f=n*c,m=r*o,p=r*c,x=r*a,g=i*o,u=i*c,M=i*a;return e[0]=1-f-x,e[3]=l-M,e[6]=m+u,e[1]=l+M,e[4]=1-h-x,e[7]=p-g,e[2]=m-u,e[5]=p+g,e[8]=1-h-f,e}var Ue;(function(e){e[e.COL0ROW0=0]="COL0ROW0",e[e.COL0ROW1=1]="COL0ROW1",e[e.COL0ROW2=2]="COL0ROW2",e[e.COL1ROW0=3]="COL1ROW0",e[e.COL1ROW1=4]="COL1ROW1",e[e.COL1ROW2=5]="COL1ROW2",e[e.COL2ROW0=6]="COL2ROW0",e[e.COL2ROW1=7]="COL2ROW1",e[e.COL2ROW2=8]="COL2ROW2"})(Ue||(Ue={}));var Hr=Object.freeze([1,0,0,0,1,0,0,0,1]),D=class extends St{static get IDENTITY(){return ti()}static get ZERO(){return Jr()}get ELEMENTS(){return 9}get RANK(){return 3}get INDICES(){return Ue}constructor(t,...s){super(-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(t)?this.copy(t):s.length>0?this.copy([t,...s]):this.identity()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this[4]=t[4],this[5]=t[5],this[6]=t[6],this[7]=t[7],this[8]=t[8],this.check()}identity(){return this.copy(Hr)}fromObject(t){return this.check()}fromQuaternion(t){return Fs(this,t),this.check()}set(t,s,n,r,i,o,c,a,h){return this[0]=t,this[1]=s,this[2]=n,this[3]=r,this[4]=i,this[5]=o,this[6]=c,this[7]=a,this[8]=h,this.check()}setRowMajor(t,s,n,r,i,o,c,a,h){return this[0]=t,this[1]=r,this[2]=c,this[3]=s,this[4]=i,this[5]=a,this[6]=n,this[7]=o,this[8]=h,this.check()}determinant(){return Ds(this)}transpose(){return zs(this,this),this.check()}invert(){return Vs(this,this),this.check()}multiplyLeft(t){return Ve(this,t,this),this.check()}multiplyRight(t){return Ve(this,this,t),this.check()}rotate(t){return ks(this,this,t),this.check()}scale(t){return Array.isArray(t)?De(this,this,t):De(this,this,[t,t]),this.check()}translate(t){return Us(this,this,t),this.check()}transform(t,s){let n;switch(t.length){case 2:n=Es(s||[-0,-0],t,this);break;case 3:n=Lt(s||[-0,-0,-0],t,this);break;case 4:n=jt(s||[-0,-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return ct(n,t.length),n}transformVector(t,s){return this.transform(t,s)}transformVector2(t,s){return this.transform(t,s)}transformVector3(t,s){return this.transform(t,s)}},Jt,te=null;function Jr(){return Jt||(Jt=new D([0,0,0,0,0,0,0,0,0]),Object.freeze(Jt)),Jt}function ti(){return te||(te=new D,Object.freeze(te)),te}var vt={};Ct(vt,{add:()=>Ri,adjoint:()=>oi,clone:()=>si,copy:()=>ni,create:()=>ei,decompose:()=>xi,determinant:()=>We,equals:()=>Pi,exactEquals:()=>Ci,frob:()=>wi,fromQuat:()=>Xe,fromQuat2:()=>pi,fromRotation:()=>hi,fromRotationTranslation:()=>Bs,fromRotationTranslationScale:()=>gi,fromRotationTranslationScaleOrigin:()=>Mi,fromScaling:()=>ai,fromTranslation:()=>ci,fromValues:()=>ri,fromXRotation:()=>li,fromYRotation:()=>fi,fromZRotation:()=>mi,frustum:()=>Qe,getRotation:()=>ui,getScaling:()=>Ys,getTranslation:()=>di,identity:()=>Ws,invert:()=>Fe,lookAt:()=>Je,mul:()=>Ni,multiply:()=>qt,multiplyScalar:()=>Oi,multiplyScalarAndAdd:()=>Ai,ortho:()=>He,orthoNO:()=>Zs,orthoZO:()=>_i,perspective:()=>Ke,perspectiveFromFieldOfView:()=>yi,perspectiveNO:()=>Gs,perspectiveZO:()=>Ti,rotate:()=>Ge,rotateX:()=>Ze,rotateY:()=>$e,rotateZ:()=>je,scale:()=>Ye,set:()=>ii,str:()=>Ei,sub:()=>Li,subtract:()=>$s,targetTo:()=>Si,translate:()=>Be,transpose:()=>ke});function ei(){let e=new V(16);return V!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function si(e){let t=new V(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function ni(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function ri(e,t,s,n,r,i,o,c,a,h,l,f,m,p,x,g){let u=new V(16);return u[0]=e,u[1]=t,u[2]=s,u[3]=n,u[4]=r,u[5]=i,u[6]=o,u[7]=c,u[8]=a,u[9]=h,u[10]=l,u[11]=f,u[12]=m,u[13]=p,u[14]=x,u[15]=g,u}function ii(e,t,s,n,r,i,o,c,a,h,l,f,m,p,x,g,u){return e[0]=t,e[1]=s,e[2]=n,e[3]=r,e[4]=i,e[5]=o,e[6]=c,e[7]=a,e[8]=h,e[9]=l,e[10]=f,e[11]=m,e[12]=p,e[13]=x,e[14]=g,e[15]=u,e}function Ws(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function ke(e,t){if(e===t){let s=t[1],n=t[2],r=t[3],i=t[6],o=t[7],c=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=s,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=i,e[11]=t[14],e[12]=r,e[13]=o,e[14]=c}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function Fe(e,t){let s=t[0],n=t[1],r=t[2],i=t[3],o=t[4],c=t[5],a=t[6],h=t[7],l=t[8],f=t[9],m=t[10],p=t[11],x=t[12],g=t[13],u=t[14],M=t[15],E=s*c-n*o,y=s*a-r*o,T=s*h-i*o,S=n*a-r*c,_=n*h-i*c,P=r*h-i*a,R=l*g-f*x,O=l*u-m*x,w=l*M-p*x,q=f*u-m*g,v=f*M-p*g,b=m*M-p*u,A=E*b-y*v+T*q+S*w-_*O+P*R;return A?(A=1/A,e[0]=(c*b-a*v+h*q)*A,e[1]=(r*v-n*b-i*q)*A,e[2]=(g*P-u*_+M*S)*A,e[3]=(m*_-f*P-p*S)*A,e[4]=(a*w-o*b-h*O)*A,e[5]=(s*b-r*w+i*O)*A,e[6]=(u*T-x*P-M*y)*A,e[7]=(l*P-m*T+p*y)*A,e[8]=(o*v-c*w+h*R)*A,e[9]=(n*w-s*v-i*R)*A,e[10]=(x*_-g*T+M*E)*A,e[11]=(f*T-l*_-p*E)*A,e[12]=(c*O-o*q-a*R)*A,e[13]=(s*q-n*O+r*R)*A,e[14]=(g*y-x*S-u*E)*A,e[15]=(l*S-f*y+m*E)*A,e):null}function oi(e,t){let s=t[0],n=t[1],r=t[2],i=t[3],o=t[4],c=t[5],a=t[6],h=t[7],l=t[8],f=t[9],m=t[10],p=t[11],x=t[12],g=t[13],u=t[14],M=t[15],E=s*c-n*o,y=s*a-r*o,T=s*h-i*o,S=n*a-r*c,_=n*h-i*c,P=r*h-i*a,R=l*g-f*x,O=l*u-m*x,w=l*M-p*x,q=f*u-m*g,v=f*M-p*g,b=m*M-p*u;return e[0]=c*b-a*v+h*q,e[1]=r*v-n*b-i*q,e[2]=g*P-u*_+M*S,e[3]=m*_-f*P-p*S,e[4]=a*w-o*b-h*O,e[5]=s*b-r*w+i*O,e[6]=u*T-x*P-M*y,e[7]=l*P-m*T+p*y,e[8]=o*v-c*w+h*R,e[9]=n*w-s*v-i*R,e[10]=x*_-g*T+M*E,e[11]=f*T-l*_-p*E,e[12]=c*O-o*q-a*R,e[13]=s*q-n*O+r*R,e[14]=g*y-x*S-u*E,e[15]=l*S-f*y+m*E,e}function We(e){let t=e[0],s=e[1],n=e[2],r=e[3],i=e[4],o=e[5],c=e[6],a=e[7],h=e[8],l=e[9],f=e[10],m=e[11],p=e[12],x=e[13],g=e[14],u=e[15],M=t*o-s*i,E=t*c-n*i,y=s*c-n*o,T=h*x-l*p,S=h*g-f*p,_=l*g-f*x,P=t*_-s*S+n*T,R=i*_-o*S+c*T,O=h*y-l*E+f*M,w=p*y-x*E+g*M;return a*P-r*R+u*O-m*w}function qt(e,t,s){let n=t[0],r=t[1],i=t[2],o=t[3],c=t[4],a=t[5],h=t[6],l=t[7],f=t[8],m=t[9],p=t[10],x=t[11],g=t[12],u=t[13],M=t[14],E=t[15],y=s[0],T=s[1],S=s[2],_=s[3];return e[0]=y*n+T*c+S*f+_*g,e[1]=y*r+T*a+S*m+_*u,e[2]=y*i+T*h+S*p+_*M,e[3]=y*o+T*l+S*x+_*E,y=s[4],T=s[5],S=s[6],_=s[7],e[4]=y*n+T*c+S*f+_*g,e[5]=y*r+T*a+S*m+_*u,e[6]=y*i+T*h+S*p+_*M,e[7]=y*o+T*l+S*x+_*E,y=s[8],T=s[9],S=s[10],_=s[11],e[8]=y*n+T*c+S*f+_*g,e[9]=y*r+T*a+S*m+_*u,e[10]=y*i+T*h+S*p+_*M,e[11]=y*o+T*l+S*x+_*E,y=s[12],T=s[13],S=s[14],_=s[15],e[12]=y*n+T*c+S*f+_*g,e[13]=y*r+T*a+S*m+_*u,e[14]=y*i+T*h+S*p+_*M,e[15]=y*o+T*l+S*x+_*E,e}function Be(e,t,s){let n=s[0],r=s[1],i=s[2],o,c,a,h,l,f,m,p,x,g,u,M;return t===e?(e[12]=t[0]*n+t[4]*r+t[8]*i+t[12],e[13]=t[1]*n+t[5]*r+t[9]*i+t[13],e[14]=t[2]*n+t[6]*r+t[10]*i+t[14],e[15]=t[3]*n+t[7]*r+t[11]*i+t[15]):(o=t[0],c=t[1],a=t[2],h=t[3],l=t[4],f=t[5],m=t[6],p=t[7],x=t[8],g=t[9],u=t[10],M=t[11],e[0]=o,e[1]=c,e[2]=a,e[3]=h,e[4]=l,e[5]=f,e[6]=m,e[7]=p,e[8]=x,e[9]=g,e[10]=u,e[11]=M,e[12]=o*n+l*r+x*i+t[12],e[13]=c*n+f*r+g*i+t[13],e[14]=a*n+m*r+u*i+t[14],e[15]=h*n+p*r+M*i+t[15]),e}function Ye(e,t,s){let n=s[0],r=s[1],i=s[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*i,e[9]=t[9]*i,e[10]=t[10]*i,e[11]=t[11]*i,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Ge(e,t,s,n){let r=n[0],i=n[1],o=n[2],c=Math.sqrt(r*r+i*i+o*o),a,h,l,f,m,p,x,g,u,M,E,y,T,S,_,P,R,O,w,q,v,b,A,$;return c<1e-6?null:(c=1/c,r*=c,i*=c,o*=c,h=Math.sin(s),a=Math.cos(s),l=1-a,f=t[0],m=t[1],p=t[2],x=t[3],g=t[4],u=t[5],M=t[6],E=t[7],y=t[8],T=t[9],S=t[10],_=t[11],P=r*r*l+a,R=i*r*l+o*h,O=o*r*l-i*h,w=r*i*l-o*h,q=i*i*l+a,v=o*i*l+r*h,b=r*o*l+i*h,A=i*o*l-r*h,$=o*o*l+a,e[0]=f*P+g*R+y*O,e[1]=m*P+u*R+T*O,e[2]=p*P+M*R+S*O,e[3]=x*P+E*R+_*O,e[4]=f*w+g*q+y*v,e[5]=m*w+u*q+T*v,e[6]=p*w+M*q+S*v,e[7]=x*w+E*q+_*v,e[8]=f*b+g*A+y*$,e[9]=m*b+u*A+T*$,e[10]=p*b+M*A+S*$,e[11]=x*b+E*A+_*$,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function Ze(e,t,s){let n=Math.sin(s),r=Math.cos(s),i=t[4],o=t[5],c=t[6],a=t[7],h=t[8],l=t[9],f=t[10],m=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=i*r+h*n,e[5]=o*r+l*n,e[6]=c*r+f*n,e[7]=a*r+m*n,e[8]=h*r-i*n,e[9]=l*r-o*n,e[10]=f*r-c*n,e[11]=m*r-a*n,e}function $e(e,t,s){let n=Math.sin(s),r=Math.cos(s),i=t[0],o=t[1],c=t[2],a=t[3],h=t[8],l=t[9],f=t[10],m=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*r-h*n,e[1]=o*r-l*n,e[2]=c*r-f*n,e[3]=a*r-m*n,e[8]=i*n+h*r,e[9]=o*n+l*r,e[10]=c*n+f*r,e[11]=a*n+m*r,e}function je(e,t,s){let n=Math.sin(s),r=Math.cos(s),i=t[0],o=t[1],c=t[2],a=t[3],h=t[4],l=t[5],f=t[6],m=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*r+h*n,e[1]=o*r+l*n,e[2]=c*r+f*n,e[3]=a*r+m*n,e[4]=h*r-i*n,e[5]=l*r-o*n,e[6]=f*r-c*n,e[7]=m*r-a*n,e}function ci(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function ai(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function hi(e,t,s){let n=s[0],r=s[1],i=s[2],o=Math.sqrt(n*n+r*r+i*i),c,a,h;return o<1e-6?null:(o=1/o,n*=o,r*=o,i*=o,a=Math.sin(t),c=Math.cos(t),h=1-c,e[0]=n*n*h+c,e[1]=r*n*h+i*a,e[2]=i*n*h-r*a,e[3]=0,e[4]=n*r*h-i*a,e[5]=r*r*h+c,e[6]=i*r*h+n*a,e[7]=0,e[8]=n*i*h+r*a,e[9]=r*i*h-n*a,e[10]=i*i*h+c,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function li(e,t){let s=Math.sin(t),n=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=n,e[6]=s,e[7]=0,e[8]=0,e[9]=-s,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function fi(e,t){let s=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=0,e[2]=-s,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=s,e[9]=0,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function mi(e,t){let s=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=s,e[2]=0,e[3]=0,e[4]=-s,e[5]=n,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Bs(e,t,s){let n=t[0],r=t[1],i=t[2],o=t[3],c=n+n,a=r+r,h=i+i,l=n*c,f=n*a,m=n*h,p=r*a,x=r*h,g=i*h,u=o*c,M=o*a,E=o*h;return e[0]=1-(p+g),e[1]=f+E,e[2]=m-M,e[3]=0,e[4]=f-E,e[5]=1-(l+g),e[6]=x+u,e[7]=0,e[8]=m+M,e[9]=x-u,e[10]=1-(l+p),e[11]=0,e[12]=s[0],e[13]=s[1],e[14]=s[2],e[15]=1,e}function pi(e,t){let s=new V(3),n=-t[0],r=-t[1],i=-t[2],o=t[3],c=t[4],a=t[5],h=t[6],l=t[7],f=n*n+r*r+i*i+o*o;return f>0?(s[0]=(c*o+l*n+a*i-h*r)*2/f,s[1]=(a*o+l*r+h*n-c*i)*2/f,s[2]=(h*o+l*i+c*r-a*n)*2/f):(s[0]=(c*o+l*n+a*i-h*r)*2,s[1]=(a*o+l*r+h*n-c*i)*2,s[2]=(h*o+l*i+c*r-a*n)*2),Bs(e,t,s),e}function di(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function Ys(e,t){let s=t[0],n=t[1],r=t[2],i=t[4],o=t[5],c=t[6],a=t[8],h=t[9],l=t[10];return e[0]=Math.sqrt(s*s+n*n+r*r),e[1]=Math.sqrt(i*i+o*o+c*c),e[2]=Math.sqrt(a*a+h*h+l*l),e}function ui(e,t){let s=new V(3);Ys(s,t);let n=1/s[0],r=1/s[1],i=1/s[2],o=t[0]*n,c=t[1]*r,a=t[2]*i,h=t[4]*n,l=t[5]*r,f=t[6]*i,m=t[8]*n,p=t[9]*r,x=t[10]*i,g=o+l+x,u=0;return g>0?(u=Math.sqrt(g+1)*2,e[3]=.25*u,e[0]=(f-p)/u,e[1]=(m-a)/u,e[2]=(c-h)/u):o>l&&o>x?(u=Math.sqrt(1+o-l-x)*2,e[3]=(f-p)/u,e[0]=.25*u,e[1]=(c+h)/u,e[2]=(m+a)/u):l>x?(u=Math.sqrt(1+l-o-x)*2,e[3]=(m-a)/u,e[0]=(c+h)/u,e[1]=.25*u,e[2]=(f+p)/u):(u=Math.sqrt(1+x-o-l)*2,e[3]=(c-h)/u,e[0]=(m+a)/u,e[1]=(f+p)/u,e[2]=.25*u),e}function xi(e,t,s,n){t[0]=n[12],t[1]=n[13],t[2]=n[14];let r=n[0],i=n[1],o=n[2],c=n[4],a=n[5],h=n[6],l=n[8],f=n[9],m=n[10];s[0]=Math.sqrt(r*r+i*i+o*o),s[1]=Math.sqrt(c*c+a*a+h*h),s[2]=Math.sqrt(l*l+f*f+m*m);let p=1/s[0],x=1/s[1],g=1/s[2],u=r*p,M=i*x,E=o*g,y=c*p,T=a*x,S=h*g,_=l*p,P=f*x,R=m*g,O=u+T+R,w=0;return O>0?(w=Math.sqrt(O+1)*2,e[3]=.25*w,e[0]=(S-P)/w,e[1]=(_-E)/w,e[2]=(M-y)/w):u>T&&u>R?(w=Math.sqrt(1+u-T-R)*2,e[3]=(S-P)/w,e[0]=.25*w,e[1]=(M+y)/w,e[2]=(_+E)/w):T>R?(w=Math.sqrt(1+T-u-R)*2,e[3]=(_-E)/w,e[0]=(M+y)/w,e[1]=.25*w,e[2]=(S+P)/w):(w=Math.sqrt(1+R-u-T)*2,e[3]=(M-y)/w,e[0]=(_+E)/w,e[1]=(S+P)/w,e[2]=.25*w),e}function gi(e,t,s,n){let r=t[0],i=t[1],o=t[2],c=t[3],a=r+r,h=i+i,l=o+o,f=r*a,m=r*h,p=r*l,x=i*h,g=i*l,u=o*l,M=c*a,E=c*h,y=c*l,T=n[0],S=n[1],_=n[2];return e[0]=(1-(x+u))*T,e[1]=(m+y)*T,e[2]=(p-E)*T,e[3]=0,e[4]=(m-y)*S,e[5]=(1-(f+u))*S,e[6]=(g+M)*S,e[7]=0,e[8]=(p+E)*_,e[9]=(g-M)*_,e[10]=(1-(f+x))*_,e[11]=0,e[12]=s[0],e[13]=s[1],e[14]=s[2],e[15]=1,e}function Mi(e,t,s,n,r){let i=t[0],o=t[1],c=t[2],a=t[3],h=i+i,l=o+o,f=c+c,m=i*h,p=i*l,x=i*f,g=o*l,u=o*f,M=c*f,E=a*h,y=a*l,T=a*f,S=n[0],_=n[1],P=n[2],R=r[0],O=r[1],w=r[2],q=(1-(g+M))*S,v=(p+T)*S,b=(x-y)*S,A=(p-T)*_,$=(1-(m+M))*_,ft=(u+E)*_,mt=(x+y)*P,Re=(u-E)*P,Wt=(1-(m+g))*P;return e[0]=q,e[1]=v,e[2]=b,e[3]=0,e[4]=A,e[5]=$,e[6]=ft,e[7]=0,e[8]=mt,e[9]=Re,e[10]=Wt,e[11]=0,e[12]=s[0]+R-(q*R+A*O+mt*w),e[13]=s[1]+O-(v*R+$*O+Re*w),e[14]=s[2]+w-(b*R+ft*O+Wt*w),e[15]=1,e}function Xe(e,t){let s=t[0],n=t[1],r=t[2],i=t[3],o=s+s,c=n+n,a=r+r,h=s*o,l=n*o,f=n*c,m=r*o,p=r*c,x=r*a,g=i*o,u=i*c,M=i*a;return e[0]=1-f-x,e[1]=l+M,e[2]=m-u,e[3]=0,e[4]=l-M,e[5]=1-h-x,e[6]=p+g,e[7]=0,e[8]=m+u,e[9]=p-g,e[10]=1-h-f,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Qe(e,t,s,n,r,i,o){let c=1/(s-t),a=1/(r-n),h=1/(i-o);return e[0]=i*2*c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i*2*a,e[6]=0,e[7]=0,e[8]=(s+t)*c,e[9]=(r+n)*a,e[10]=(o+i)*h,e[11]=-1,e[12]=0,e[13]=0,e[14]=o*i*2*h,e[15]=0,e}function Gs(e,t,s,n,r){let i=1/Math.tan(t/2);if(e[0]=i/s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,r!=null&&r!==1/0){let o=1/(n-r);e[10]=(r+n)*o,e[14]=2*r*n*o}else e[10]=-1,e[14]=-2*n;return e}var Ke=Gs;function Ti(e,t,s,n,r){let i=1/Math.tan(t/2);if(e[0]=i/s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,r!=null&&r!==1/0){let o=1/(n-r);e[10]=r*o,e[14]=r*n*o}else e[10]=-1,e[14]=-n;return e}function yi(e,t,s,n){let r=Math.tan(t.upDegrees*Math.PI/180),i=Math.tan(t.downDegrees*Math.PI/180),o=Math.tan(t.leftDegrees*Math.PI/180),c=Math.tan(t.rightDegrees*Math.PI/180),a=2/(o+c),h=2/(r+i);return e[0]=a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=h,e[6]=0,e[7]=0,e[8]=-((o-c)*a*.5),e[9]=(r-i)*h*.5,e[10]=n/(s-n),e[11]=-1,e[12]=0,e[13]=0,e[14]=n*s/(s-n),e[15]=0,e}function Zs(e,t,s,n,r,i,o){let c=1/(t-s),a=1/(n-r),h=1/(i-o);return e[0]=-2*c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*h,e[11]=0,e[12]=(t+s)*c,e[13]=(r+n)*a,e[14]=(o+i)*h,e[15]=1,e}var He=Zs;function _i(e,t,s,n,r,i,o){let c=1/(t-s),a=1/(n-r),h=1/(i-o);return e[0]=-2*c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=h,e[11]=0,e[12]=(t+s)*c,e[13]=(r+n)*a,e[14]=i*h,e[15]=1,e}function Je(e,t,s,n){let r,i,o,c,a,h,l,f,m,p,x=t[0],g=t[1],u=t[2],M=n[0],E=n[1],y=n[2],T=s[0],S=s[1],_=s[2];return Math.abs(x-T)<1e-6&&Math.abs(g-S)<1e-6&&Math.abs(u-_)<1e-6?Ws(e):(f=x-T,m=g-S,p=u-_,r=1/Math.sqrt(f*f+m*m+p*p),f*=r,m*=r,p*=r,i=E*p-y*m,o=y*f-M*p,c=M*m-E*f,r=Math.sqrt(i*i+o*o+c*c),r?(r=1/r,i*=r,o*=r,c*=r):(i=0,o=0,c=0),a=m*c-p*o,h=p*i-f*c,l=f*o-m*i,r=Math.sqrt(a*a+h*h+l*l),r?(r=1/r,a*=r,h*=r,l*=r):(a=0,h=0,l=0),e[0]=i,e[1]=a,e[2]=f,e[3]=0,e[4]=o,e[5]=h,e[6]=m,e[7]=0,e[8]=c,e[9]=l,e[10]=p,e[11]=0,e[12]=-(i*x+o*g+c*u),e[13]=-(a*x+h*g+l*u),e[14]=-(f*x+m*g+p*u),e[15]=1,e)}function Si(e,t,s,n){let r=t[0],i=t[1],o=t[2],c=n[0],a=n[1],h=n[2],l=r-s[0],f=i-s[1],m=o-s[2],p=l*l+f*f+m*m;p>0&&(p=1/Math.sqrt(p),l*=p,f*=p,m*=p);let x=a*m-h*f,g=h*l-c*m,u=c*f-a*l;return p=x*x+g*g+u*u,p>0&&(p=1/Math.sqrt(p),x*=p,g*=p,u*=p),e[0]=x,e[1]=g,e[2]=u,e[3]=0,e[4]=f*u-m*g,e[5]=m*x-l*u,e[6]=l*g-f*x,e[7]=0,e[8]=l,e[9]=f,e[10]=m,e[11]=0,e[12]=r,e[13]=i,e[14]=o,e[15]=1,e}function Ei(e){return`mat4(${e[0]}, ${e[1]}, ${e[2]}, ${e[3]}, ${e[4]}, ${e[5]}, ${e[6]}, ${e[7]}, ${e[8]}, ${e[9]}, ${e[10]}, ${e[11]}, ${e[12]}, ${e[13]}, ${e[14]}, ${e[15]})`}function wi(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]+e[3]*e[3]+e[4]*e[4]+e[5]*e[5]+e[6]*e[6]+e[7]*e[7]+e[8]*e[8]+e[9]*e[9]+e[10]*e[10]+e[11]*e[11]+e[12]*e[12]+e[13]*e[13]+e[14]*e[14]+e[15]*e[15])}function Ri(e,t,s){return e[0]=t[0]+s[0],e[1]=t[1]+s[1],e[2]=t[2]+s[2],e[3]=t[3]+s[3],e[4]=t[4]+s[4],e[5]=t[5]+s[5],e[6]=t[6]+s[6],e[7]=t[7]+s[7],e[8]=t[8]+s[8],e[9]=t[9]+s[9],e[10]=t[10]+s[10],e[11]=t[11]+s[11],e[12]=t[12]+s[12],e[13]=t[13]+s[13],e[14]=t[14]+s[14],e[15]=t[15]+s[15],e}function $s(e,t,s){return e[0]=t[0]-s[0],e[1]=t[1]-s[1],e[2]=t[2]-s[2],e[3]=t[3]-s[3],e[4]=t[4]-s[4],e[5]=t[5]-s[5],e[6]=t[6]-s[6],e[7]=t[7]-s[7],e[8]=t[8]-s[8],e[9]=t[9]-s[9],e[10]=t[10]-s[10],e[11]=t[11]-s[11],e[12]=t[12]-s[12],e[13]=t[13]-s[13],e[14]=t[14]-s[14],e[15]=t[15]-s[15],e}function Oi(e,t,s){return e[0]=t[0]*s,e[1]=t[1]*s,e[2]=t[2]*s,e[3]=t[3]*s,e[4]=t[4]*s,e[5]=t[5]*s,e[6]=t[6]*s,e[7]=t[7]*s,e[8]=t[8]*s,e[9]=t[9]*s,e[10]=t[10]*s,e[11]=t[11]*s,e[12]=t[12]*s,e[13]=t[13]*s,e[14]=t[14]*s,e[15]=t[15]*s,e}function Ai(e,t,s,n){return e[0]=t[0]+s[0]*n,e[1]=t[1]+s[1]*n,e[2]=t[2]+s[2]*n,e[3]=t[3]+s[3]*n,e[4]=t[4]+s[4]*n,e[5]=t[5]+s[5]*n,e[6]=t[6]+s[6]*n,e[7]=t[7]+s[7]*n,e[8]=t[8]+s[8]*n,e[9]=t[9]+s[9]*n,e[10]=t[10]+s[10]*n,e[11]=t[11]+s[11]*n,e[12]=t[12]+s[12]*n,e[13]=t[13]+s[13]*n,e[14]=t[14]+s[14]*n,e[15]=t[15]+s[15]*n,e}function Ci(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]}function Pi(e,t){let s=e[0],n=e[1],r=e[2],i=e[3],o=e[4],c=e[5],a=e[6],h=e[7],l=e[8],f=e[9],m=e[10],p=e[11],x=e[12],g=e[13],u=e[14],M=e[15],E=t[0],y=t[1],T=t[2],S=t[3],_=t[4],P=t[5],R=t[6],O=t[7],w=t[8],q=t[9],v=t[10],b=t[11],A=t[12],$=t[13],ft=t[14],mt=t[15];return Math.abs(s-E)<=1e-6*Math.max(1,Math.abs(s),Math.abs(E))&&Math.abs(n-y)<=1e-6*Math.max(1,Math.abs(n),Math.abs(y))&&Math.abs(r-T)<=1e-6*Math.max(1,Math.abs(r),Math.abs(T))&&Math.abs(i-S)<=1e-6*Math.max(1,Math.abs(i),Math.abs(S))&&Math.abs(o-_)<=1e-6*Math.max(1,Math.abs(o),Math.abs(_))&&Math.abs(c-P)<=1e-6*Math.max(1,Math.abs(c),Math.abs(P))&&Math.abs(a-R)<=1e-6*Math.max(1,Math.abs(a),Math.abs(R))&&Math.abs(h-O)<=1e-6*Math.max(1,Math.abs(h),Math.abs(O))&&Math.abs(l-w)<=1e-6*Math.max(1,Math.abs(l),Math.abs(w))&&Math.abs(f-q)<=1e-6*Math.max(1,Math.abs(f),Math.abs(q))&&Math.abs(m-v)<=1e-6*Math.max(1,Math.abs(m),Math.abs(v))&&Math.abs(p-b)<=1e-6*Math.max(1,Math.abs(p),Math.abs(b))&&Math.abs(x-A)<=1e-6*Math.max(1,Math.abs(x),Math.abs(A))&&Math.abs(g-$)<=1e-6*Math.max(1,Math.abs(g),Math.abs($))&&Math.abs(u-ft)<=1e-6*Math.max(1,Math.abs(u),Math.abs(ft))&&Math.abs(M-mt)<=1e-6*Math.max(1,Math.abs(M),Math.abs(mt))}var Ni=qt,Li=$s;function Ii(){let e=new V(4);return V!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function js(e,t,s){return e[0]=t[0]+s[0],e[1]=t[1]+s[1],e[2]=t[2]+s[2],e[3]=t[3]+s[3],e}function Xs(e,t,s){return e[0]=t[0]*s,e[1]=t[1]*s,e[2]=t[2]*s,e[3]=t[3]*s,e}function Qs(e){let t=e[0],s=e[1],n=e[2],r=e[3];return Math.sqrt(t*t+s*s+n*n+r*r)}function Ks(e){let t=e[0],s=e[1],n=e[2],r=e[3];return t*t+s*s+n*n+r*r}function Hs(e,t){let s=t[0],n=t[1],r=t[2],i=t[3],o=s*s+n*n+r*r+i*i;return o>0&&(o=1/Math.sqrt(o)),e[0]=s*o,e[1]=n*o,e[2]=r*o,e[3]=i*o,e}function Js(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function tn(e,t,s,n){let r=t[0],i=t[1],o=t[2],c=t[3];return e[0]=r+n*(s[0]-r),e[1]=i+n*(s[1]-i),e[2]=o+n*(s[2]-o),e[3]=c+n*(s[3]-c),e}function en(e,t,s){let n=t[0],r=t[1],i=t[2],o=t[3];return e[0]=s[0]*n+s[4]*r+s[8]*i+s[12]*o,e[1]=s[1]*n+s[5]*r+s[9]*i+s[13]*o,e[2]=s[2]*n+s[6]*r+s[10]*i+s[14]*o,e[3]=s[3]*n+s[7]*r+s[11]*i+s[15]*o,e}function sn(e,t,s){let n=t[0],r=t[1],i=t[2],o=s[0],c=s[1],a=s[2],h=s[3],l=h*n+c*i-a*r,f=h*r+a*n-o*i,m=h*i+o*r-c*n,p=-o*n-c*r-a*i;return e[0]=l*h+p*-o+f*-a-m*-c,e[1]=f*h+p*-c+m*-o-l*-a,e[2]=m*h+p*-a+l*-c-f*-o,e[3]=t[3],e}var jc=function(){let e=Ii();return function(t,s,n,r,i,o){let c,a;for(s||(s=4),n||(n=0),r?a=Math.min(r*s+n,t.length):a=t.length,c=n;c<a;c+=s)e[0]=t[c],e[1]=t[c+1],e[2]=t[c+2],e[3]=t[c+3],i(e,e,o),t[c]=e[0],t[c+1]=e[1],t[c+2]=e[2],t[c+3]=e[3];return t}}();var ss;(function(e){e[e.COL0ROW0=0]="COL0ROW0",e[e.COL0ROW1=1]="COL0ROW1",e[e.COL0ROW2=2]="COL0ROW2",e[e.COL0ROW3=3]="COL0ROW3",e[e.COL1ROW0=4]="COL1ROW0",e[e.COL1ROW1=5]="COL1ROW1",e[e.COL1ROW2=6]="COL1ROW2",e[e.COL1ROW3=7]="COL1ROW3",e[e.COL2ROW0=8]="COL2ROW0",e[e.COL2ROW1=9]="COL2ROW1",e[e.COL2ROW2=10]="COL2ROW2",e[e.COL2ROW3=11]="COL2ROW3",e[e.COL3ROW0=12]="COL3ROW0",e[e.COL3ROW1=13]="COL3ROW1",e[e.COL3ROW2=14]="COL3ROW2",e[e.COL3ROW3=15]="COL3ROW3"})(ss||(ss={}));var vi=45*Math.PI/180,bi=1,ts=.1,es=500,zi=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),N=class extends St{static get IDENTITY(){return Di()}static get ZERO(){return Vi()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return ss}constructor(t){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(t)?this.copy(t):this.identity()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this[4]=t[4],this[5]=t[5],this[6]=t[6],this[7]=t[7],this[8]=t[8],this[9]=t[9],this[10]=t[10],this[11]=t[11],this[12]=t[12],this[13]=t[13],this[14]=t[14],this[15]=t[15],this.check()}set(t,s,n,r,i,o,c,a,h,l,f,m,p,x,g,u){return this[0]=t,this[1]=s,this[2]=n,this[3]=r,this[4]=i,this[5]=o,this[6]=c,this[7]=a,this[8]=h,this[9]=l,this[10]=f,this[11]=m,this[12]=p,this[13]=x,this[14]=g,this[15]=u,this.check()}setRowMajor(t,s,n,r,i,o,c,a,h,l,f,m,p,x,g,u){return this[0]=t,this[1]=i,this[2]=h,this[3]=p,this[4]=s,this[5]=o,this[6]=l,this[7]=x,this[8]=n,this[9]=c,this[10]=f,this[11]=g,this[12]=r,this[13]=a,this[14]=m,this[15]=u,this.check()}toRowMajor(t){return t[0]=this[0],t[1]=this[4],t[2]=this[8],t[3]=this[12],t[4]=this[1],t[5]=this[5],t[6]=this[9],t[7]=this[13],t[8]=this[2],t[9]=this[6],t[10]=this[10],t[11]=this[14],t[12]=this[3],t[13]=this[7],t[14]=this[11],t[15]=this[15],t}identity(){return this.copy(zi)}fromObject(t){return this.check()}fromQuaternion(t){return Xe(this,t),this.check()}frustum(t){let{left:s,right:n,bottom:r,top:i,near:o=ts,far:c=es}=t;return c===1/0?Ui(this,s,n,r,i,o):Qe(this,s,n,r,i,o,c),this.check()}lookAt(t){let{eye:s,center:n=[0,0,0],up:r=[0,1,0]}=t;return Je(this,s,n,r),this.check()}ortho(t){let{left:s,right:n,bottom:r,top:i,near:o=ts,far:c=es}=t;return He(this,s,n,r,i,o,c),this.check()}orthographic(t){let{fovy:s=vi,aspect:n=bi,focalDistance:r=1,near:i=ts,far:o=es}=t;nn(s);let c=s/2,a=r*Math.tan(c),h=a*n;return this.ortho({left:-h,right:h,bottom:-a,top:a,near:i,far:o})}perspective(t){let{fovy:s=45*Math.PI/180,aspect:n=1,near:r=.1,far:i=500}=t;return nn(s),Ke(this,s,n,r,i),this.check()}determinant(){return We(this)}getScale(t=[-0,-0,-0]){return t[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),t[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),t[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),t}getTranslation(t=[-0,-0,-0]){return t[0]=this[12],t[1]=this[13],t[2]=this[14],t}getRotation(t,s){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],s=s||[-0,-0,-0];let n=this.getScale(s),r=1/n[0],i=1/n[1],o=1/n[2];return t[0]=this[0]*r,t[1]=this[1]*i,t[2]=this[2]*o,t[3]=0,t[4]=this[4]*r,t[5]=this[5]*i,t[6]=this[6]*o,t[7]=0,t[8]=this[8]*r,t[9]=this[9]*i,t[10]=this[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}getRotationMatrix3(t,s){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0],s=s||[-0,-0,-0];let n=this.getScale(s),r=1/n[0],i=1/n[1],o=1/n[2];return t[0]=this[0]*r,t[1]=this[1]*i,t[2]=this[2]*o,t[3]=this[4]*r,t[4]=this[5]*i,t[5]=this[6]*o,t[6]=this[8]*r,t[7]=this[9]*i,t[8]=this[10]*o,t}transpose(){return ke(this,this),this.check()}invert(){return Fe(this,this),this.check()}multiplyLeft(t){return qt(this,t,this),this.check()}multiplyRight(t){return qt(this,this,t),this.check()}rotateX(t){return Ze(this,this,t),this.check()}rotateY(t){return $e(this,this,t),this.check()}rotateZ(t){return je(this,this,t),this.check()}rotateXYZ(t){return this.rotateX(t[0]).rotateY(t[1]).rotateZ(t[2])}rotateAxis(t,s){return Ge(this,this,t,s),this.check()}scale(t){return Ye(this,this,Array.isArray(t)?t:[t,t,t]),this.check()}translate(t){return Be(this,this,t),this.check()}transform(t,s){return t.length===4?(s=en(s||[-0,-0,-0,-0],t,this),ct(s,4),s):this.transformAsPoint(t,s)}transformAsPoint(t,s){let{length:n}=t,r;switch(n){case 2:r=ws(s||[-0,-0],t,this);break;case 3:r=dt(s||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return ct(r,t.length),r}transformAsVector(t,s){let n;switch(t.length){case 2:n=Rs(s||[-0,-0],t,this);break;case 3:n=$t(s||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return ct(n,t.length),n}transformPoint(t,s){return this.transformAsPoint(t,s)}transformVector(t,s){return this.transformAsPoint(t,s)}transformDirection(t,s){return this.transformAsVector(t,s)}makeRotationX(t){return this.identity().rotateX(t)}makeTranslation(t,s,n){return this.identity().translate([t,s,n])}},ee,se;function Vi(){return ee||(ee=new N([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(ee)),ee}function Di(){return se||(se=new N,Object.freeze(se)),se}function nn(e){if(e>Math.PI*2)throw Error("expected radians")}function Ui(e,t,s,n,r,i){let o=2*i/(s-t),c=2*i/(r-n),a=(s+t)/(s-t),h=(r+n)/(r-n),l=-1,f=-1,m=-2*i;return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=a,e[9]=h,e[10]=l,e[11]=f,e[12]=0,e[13]=0,e[14]=m,e[15]=0,e}function rn(){let e=new V(4);return V!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function on(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function ns(e,t,s){s=s*.5;let n=Math.sin(s);return e[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=Math.cos(s),e}function rs(e,t,s){let n=t[0],r=t[1],i=t[2],o=t[3],c=s[0],a=s[1],h=s[2],l=s[3];return e[0]=n*l+o*c+r*h-i*a,e[1]=r*l+o*a+i*c-n*h,e[2]=i*l+o*h+n*a-r*c,e[3]=o*l-n*c-r*a-i*h,e}function cn(e,t,s){s*=.5;let n=t[0],r=t[1],i=t[2],o=t[3],c=Math.sin(s),a=Math.cos(s);return e[0]=n*a+o*c,e[1]=r*a+i*c,e[2]=i*a-r*c,e[3]=o*a-n*c,e}function an(e,t,s){s*=.5;let n=t[0],r=t[1],i=t[2],o=t[3],c=Math.sin(s),a=Math.cos(s);return e[0]=n*a-i*c,e[1]=r*a+o*c,e[2]=i*a+n*c,e[3]=o*a-r*c,e}function hn(e,t,s){s*=.5;let n=t[0],r=t[1],i=t[2],o=t[3],c=Math.sin(s),a=Math.cos(s);return e[0]=n*a+r*c,e[1]=r*a-n*c,e[2]=i*a+o*c,e[3]=o*a-i*c,e}function ln(e,t){let s=t[0],n=t[1],r=t[2];return e[0]=s,e[1]=n,e[2]=r,e[3]=Math.sqrt(Math.abs(1-s*s-n*n-r*r)),e}function bt(e,t,s,n){let r=t[0],i=t[1],o=t[2],c=t[3],a=s[0],h=s[1],l=s[2],f=s[3],m,p,x,g,u;return m=r*a+i*h+o*l+c*f,m<0&&(m=-m,a=-a,h=-h,l=-l,f=-f),1-m>1e-6?(p=Math.acos(m),u=Math.sin(p),x=Math.sin((1-n)*p)/u,g=Math.sin(n*p)/u):(x=1-n,g=n),e[0]=x*r+g*a,e[1]=x*i+g*h,e[2]=x*o+g*l,e[3]=x*c+g*f,e}function fn(e,t){let s=t[0],n=t[1],r=t[2],i=t[3],o=s*s+n*n+r*r+i*i,c=o?1/o:0;return e[0]=-s*c,e[1]=-n*c,e[2]=-r*c,e[3]=i*c,e}function mn(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function is(e,t){let s=t[0]+t[4]+t[8],n;if(s>0)n=Math.sqrt(s+1),e[3]=.5*n,n=.5/n,e[0]=(t[5]-t[7])*n,e[1]=(t[6]-t[2])*n,e[2]=(t[1]-t[3])*n;else{let r=0;t[4]>t[0]&&(r=1),t[8]>t[r*3+r]&&(r=2);let i=(r+1)%3,o=(r+2)%3;n=Math.sqrt(t[r*3+r]-t[i*3+i]-t[o*3+o]+1),e[r]=.5*n,n=.5/n,e[3]=(t[i*3+o]-t[o*3+i])*n,e[i]=(t[i*3+r]+t[r*3+i])*n,e[o]=(t[o*3+r]+t[r*3+o])*n}return e}var pn=js;var dn=Xs,un=Js,xn=tn,gn=Qs;var Mn=Ks;var Tn=Hs;var yn=function(){let e=Xt(),t=Qt(1,0,0),s=Qt(0,1,0);return function(n,r,i){let o=Nt(r,i);return o<-.999999?(pt(e,t,r),be(e)<1e-6&&pt(e,s,r),Ne(e,e),ns(n,e,Math.PI),n):o>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(pt(e,r,i),n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=1+o,Tn(n,n))}}(),aa=function(){let e=rn(),t=rn();return function(s,n,r,i,o,c){return bt(e,n,o,c),bt(t,r,i,c),bt(s,e,t,2*c*(1-c)),s}}(),ha=function(){let e=bs();return function(t,s,n,r){return e[0]=n[0],e[3]=n[1],e[6]=n[2],e[1]=r[0],e[4]=r[1],e[7]=r[2],e[2]=-s[0],e[5]=-s[1],e[8]=-s[2],Tn(t,is(t,e))}}();var ki=[0,0,0,1],at=class extends ot{constructor(t=0,s=0,n=0,r=1){super(-0,-0,-0,-0),Array.isArray(t)&&arguments.length===1?this.copy(t):this.set(t,s,n,r)}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}set(t,s,n,r){return this[0]=t,this[1]=s,this[2]=n,this[3]=r,this.check()}fromObject(t){return this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this.check()}fromMatrix3(t){return is(this,t),this.check()}fromAxisRotation(t,s){return ns(this,t,s),this.check()}identity(){return on(this),this.check()}setAxisAngle(t,s){return this.fromAxisRotation(t,s)}get ELEMENTS(){return 4}get x(){return this[0]}set x(t){this[0]=L(t)}get y(){return this[1]}set y(t){this[1]=L(t)}get z(){return this[2]}set z(t){this[2]=L(t)}get w(){return this[3]}set w(t){this[3]=L(t)}len(){return gn(this)}lengthSquared(){return Mn(this)}dot(t){return un(this,t)}rotationTo(t,s){return yn(this,t,s),this.check()}add(t){return pn(this,this,t),this.check()}calculateW(){return ln(this,this),this.check()}conjugate(){return mn(this,this),this.check()}invert(){return fn(this,this),this.check()}lerp(t,s,n){return n===void 0?this.lerp(this,t,s):(xn(this,t,s,n),this.check())}multiplyRight(t){return rs(this,this,t),this.check()}multiplyLeft(t){return rs(this,t,this),this.check()}normalize(){let t=this.len(),s=t>0?1/t:0;return this[0]=this[0]*s,this[1]=this[1]*s,this[2]=this[2]*s,this[3]=this[3]*s,t===0&&(this[3]=1),this.check()}rotateX(t){return cn(this,this,t),this.check()}rotateY(t){return an(this,this,t),this.check()}rotateZ(t){return hn(this,this,t),this.check()}scale(t){return dn(this,this,t),this.check()}slerp(t,s,n){let r,i,o;switch(arguments.length){case 1:({start:r=ki,target:i,ratio:o}=t);break;case 2:r=this,i=t,o=s;break;default:r=t,i=s,o=n}return bt(this,r,i,o),this.check()}transformVector4(t,s=new _t){return sn(s,t,this),ct(s,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(t,s){return this.setAxisAngle(t,s)}premultiply(t){return this.multiplyLeft(t)}multiply(t){return this.multiplyRight(t)}};var st={};Ct(st,{EPSILON1:()=>Fi,EPSILON10:()=>Qi,EPSILON11:()=>Ki,EPSILON12:()=>Hi,EPSILON13:()=>Ji,EPSILON14:()=>to,EPSILON15:()=>eo,EPSILON16:()=>so,EPSILON17:()=>no,EPSILON18:()=>ro,EPSILON19:()=>io,EPSILON2:()=>Wi,EPSILON20:()=>oo,EPSILON3:()=>Bi,EPSILON4:()=>Yi,EPSILON5:()=>Gi,EPSILON6:()=>Zi,EPSILON7:()=>$i,EPSILON8:()=>ji,EPSILON9:()=>Xi,PI_OVER_FOUR:()=>ao,PI_OVER_SIX:()=>ho,PI_OVER_TWO:()=>co,TWO_PI:()=>lo});var Fi=.1,Wi=.01,Bi=.001,Yi=1e-4,Gi=1e-5,Zi=1e-6,$i=1e-7,ji=1e-8,Xi=1e-9,Qi=1e-10,Ki=1e-11,Hi=1e-12,Ji=1e-13,to=1e-14,eo=1e-15,so=1e-16,no=1e-17,ro=1e-18,io=1e-19,oo=1e-20,co=Math.PI/2,ao=Math.PI/4,ho=Math.PI/6,lo=Math.PI*2;var nt=6356752314245179e-9,mo={radii:[6378137,6378137,nt],radiiSquared:[6378137*6378137,6378137*6378137,nt*nt],oneOverRadii:[1/6378137,1/6378137,1/nt],oneOverRadiiSquared:[1/(6378137*6378137),1/(6378137*6378137),1/(nt*nt)],maximumRadius:Math.max(6378137,6378137,nt),centerToleranceSquared:.1};function ne(e){return e}var Da=new d;function po(e,t=[],s=ne){return"longitude"in e?(t[0]=s(e.longitude),t[1]=s(e.latitude),t[2]=e.height):"x"in e?(t[0]=s(e.x),t[1]=s(e.y),t[2]=e.z):(t[0]=s(e[0]),t[1]=s(e[1]),t[2]=e[2]),t}function _n(e,t=[]){return po(e,t,z._cartographicRadians?ne:Ce)}function uo(e,t,s=ne){return"longitude"in t?(t.longitude=s(e[0]),t.latitude=s(e[1]),t.height=e[2]):"x"in t?(t.x=s(e[0]),t.y=s(e[1]),t.z=e[2]):(t[0]=s(e[0]),t[1]=s(e[1]),t[2]=e[2]),t}function Sn(e,t){return uo(e,t,z._cartographicRadians?ne:Pe)}var En=1e-14,xo=new d,wn={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},os={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[