@loaders.gl/tiles 4.3.0-alpha.3 → 4.3.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dist.dev.js CHANGED
@@ -6488,17 +6488,14 @@ var __exports__ = (() => {
6488
6488
  // tile should be visible
6489
6489
  // tile should have children
6490
6490
  // tile LoD (level of detail) is not sufficient under current viewport
6491
- canTraverse(tile, frameState, useParentMetric = false, ignoreVisibility = false) {
6491
+ canTraverse(tile, frameState) {
6492
6492
  if (!tile.hasChildren) {
6493
6493
  return false;
6494
6494
  }
6495
6495
  if (tile.hasTilesetContent) {
6496
6496
  return !tile.contentExpired;
6497
6497
  }
6498
- if (!ignoreVisibility && !tile.isVisibleAndInRequestVolume) {
6499
- return false;
6500
- }
6501
- return this.shouldRefine(tile, frameState, useParentMetric);
6498
+ return this.shouldRefine(tile, frameState);
6502
6499
  }
6503
6500
  shouldLoadTile(tile) {
6504
6501
  return tile.hasUnloadedContent || tile.contentExpired;
@@ -6548,7 +6545,7 @@ var __exports__ = (() => {
6548
6545
  stack.push(root);
6549
6546
  while (stack.length > 0) {
6550
6547
  const tile = stack.pop();
6551
- const traverse = !tile.hasRenderContent && this.canTraverse(tile, frameState, false, false);
6548
+ const traverse = !tile.hasRenderContent && this.canTraverse(tile, frameState);
6552
6549
  const emptyLeaf = !tile.hasRenderContent && tile.children.length === 0;
6553
6550
  if (!traverse && !tile.contentAvailable && !emptyLeaf) {
6554
6551
  allDescendantsLoaded = false;
package/dist/dist.min.js CHANGED
@@ -4,6 +4,6 @@
4
4
  else if (typeof define === 'function' && define.amd) define([], factory);
5
5
  else if (typeof exports === 'object') exports['loaders'] = factory();
6
6
  else root['loaders'] = factory();})(globalThis, function () {
7
- "use strict";var __exports__=(()=>{var mr=Object.create;var Gt=Object.defineProperty;var pr=Object.getOwnPropertyDescriptor;var dr=Object.getOwnPropertyNames;var ur=Object.getPrototypeOf,xr=Object.prototype.hasOwnProperty;var gr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),vt=(e,t)=>{for(var s in t)Gt(e,s,{get:t[s],enumerable:!0})},Yt=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of dr(t))!xr.call(e,r)&&r!==s&&Gt(e,r,{get:()=>t[r],enumerable:!(n=pr(t,r))||n.enumerable});return e},Zt=(e,t,s)=>(Yt(e,t,"default"),s&&Yt(s,t,"default")),Pe=(e,t,s)=>(s=e!=null?mr(ur(e)):{},Yt(t||!e||!e.__esModule?Gt(s,"default",{value:e,enumerable:!0}):s,e)),Mr=e=>Yt(Gt({},"__esModule",{value:!0}),e);var jt=gr((pc,ws)=>{ws.exports=globalThis.loaders});var Wt={};vt(Wt,{LOD_METRIC_TYPE:()=>Me,TILESET_TYPE:()=>B,TILE_CONTENT_STATE:()=>G,TILE_REFINEMENT:()=>j,TILE_TYPE:()=>ge,Tile3D:()=>it,Tileset3D:()=>Oe,TilesetCache:()=>At,TilesetTraverser:()=>$,calculateTransformProps:()=>fe,createBoundingVolume:()=>Ct,getFrameState:()=>xe,getLodStatus:()=>_e});Zt(Wt,Pe(jt(),1));var yr=1/Math.PI*180,_r=1/180*Math.PI,Tr={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...Tr}};var V=globalThis.mathgl.config;function Ce(e,{precision:t=V.precision}={}){return e=Sr(e),"".concat(parseFloat(e.toPrecision(t)))}function et(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function ve(e){return Rs(e)}function Ne(e){return Q(e)}function Rs(e,t){return Os(e,s=>s*_r,t)}function Q(e,t){return Os(e,s=>s*yr,t)}function K(e,t,s){let n=V.EPSILON;s&&(V.EPSILON=s);try{if(e===t)return!0;if(et(e)&&et(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;++r)if(!K(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)<=V.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{V.EPSILON=n}}function Sr(e){return Math.round(e/V.EPSILON)*V.EPSILON}function Er(e){return e.clone?e.clone():new Array(e.length)}function Os(e,t,s){if(et(e)){let n=e;s=s||Er(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)}function wr(e){function t(){var s=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(s,Object.getPrototypeOf(this)),s}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}var ot=class extends wr(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:et(t)?this.toArray(t):this.toObject(t)}toTarget(t){return t?this.to(t):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(V)}formatString(t){let s="";for(let n=0;n<this.ELEMENTS;++n)s+=(n>0?", ":"")+Ce(this[n],t);return"".concat(t.printTypes?this.constructor.name:"","[").concat(s,"]")}equals(t){if(!t||this.length!==t.length)return!1;for(let s=0;s<this.ELEMENTS;++s)if(!K(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(V.debug&&!this.validate())throw new Error("math.gl: ".concat(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 Rr(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 N(e){if(!Number.isFinite(e))throw new Error("Invalid number ".concat(JSON.stringify(e)));return e}function ct(e,t,s=""){if(V.debug&&!Rr(e,t))throw new Error("math.gl: ".concat(s," some fields set to invalid numbers'"));return e}function F(e,t){if(!e)throw new Error("math.gl assertion ".concat(t))}var yt=class extends ot{get x(){return this[0]}set x(t){this[0]=N(t)}get y(){return this[1]}set y(t){this[1]=N(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 N(s)}dot(t){let s=0;for(let n=0;n<this.ELEMENTS;++n)s+=this[n]*t[n];return N(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 F(t>=0&&t<this.ELEMENTS,"index is out of range"),N(this[t])}setComponent(t,s){return F(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 D=typeof Float32Array<"u"?Float32Array:Array,Nt=Math.random;function _t(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var wc=Math.PI/180;function Or(){let e=new D(2);return D!=Float32Array&&(e[0]=0,e[1]=0),e}function As(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 Ps(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 Rc=function(){let e=Or();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 Cs(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 Xt(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 vs(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 Ns(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 Qt(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 St={};vt(St,{add:()=>vr,angle:()=>ze,bezier:()=>Br,ceil:()=>Nr,clone:()=>Ar,copy:()=>Pr,create:()=>Kt,cross:()=>ut,dist:()=>$r,distance:()=>zs,div:()=>Hr,divide:()=>Is,dot:()=>Lt,equals:()=>Xr,exactEquals:()=>jr,floor:()=>Lr,forEach:()=>ei,fromValues:()=>Ht,hermite:()=>Wr,inverse:()=>Ur,len:()=>Ve,length:()=>Ls,lerp:()=>Fr,max:()=>br,min:()=>qr,mul:()=>Kr,multiply:()=>bs,negate:()=>Dr,normalize:()=>Le,random:()=>Yr,rotateX:()=>qe,rotateY:()=>be,rotateZ:()=>Ie,round:()=>Ir,scale:()=>zr,scaleAndAdd:()=>Vr,set:()=>Cr,slerp:()=>kr,sqrDist:()=>Jr,sqrLen:()=>ti,squaredDistance:()=>Vs,squaredLength:()=>Ds,str:()=>Zr,sub:()=>Qr,subtract:()=>qs,transformMat3:()=>qt,transformMat4:()=>xt,transformQuat:()=>bt,zero:()=>Gr});function Kt(){let e=new D(3);return D!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Ar(e){let t=new D(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Ls(e){let t=e[0],s=e[1],n=e[2];return Math.sqrt(t*t+s*s+n*n)}function Ht(e,t,s){let n=new D(3);return n[0]=e,n[1]=t,n[2]=s,n}function Pr(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Cr(e,t,s,n){return e[0]=t,e[1]=s,e[2]=n,e}function vr(e,t,s){return e[0]=t[0]+s[0],e[1]=t[1]+s[1],e[2]=t[2]+s[2],e}function qs(e,t,s){return e[0]=t[0]-s[0],e[1]=t[1]-s[1],e[2]=t[2]-s[2],e}function bs(e,t,s){return e[0]=t[0]*s[0],e[1]=t[1]*s[1],e[2]=t[2]*s[2],e}function Is(e,t,s){return e[0]=t[0]/s[0],e[1]=t[1]/s[1],e[2]=t[2]/s[2],e}function Nr(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function Lr(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function qr(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 br(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 Ir(e,t){return e[0]=_t(t[0]),e[1]=_t(t[1]),e[2]=_t(t[2]),e}function zr(e,t,s){return e[0]=t[0]*s,e[1]=t[1]*s,e[2]=t[2]*s,e}function Vr(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 zs(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 Vs(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 Ds(e){let t=e[0],s=e[1],n=e[2];return t*t+s*s+n*n}function Dr(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function Ur(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Le(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 Lt(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function ut(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 Fr(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 kr(e,t,s,n){let r=Math.acos(Math.min(Math.max(Lt(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 Wr(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 Br(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 Yr(e,t){t=t===void 0?1:t;let s=Nt()*2*Math.PI,n=Nt()*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 xt(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 qt(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 bt(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 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],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 be(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 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[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 ze(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&&Lt(e,t)/a;return Math.acos(Math.min(Math.max(h,-1),1))}function Gr(e){return e[0]=0,e[1]=0,e[2]=0,e}function Zr(e){return"vec3(".concat(e[0],", ").concat(e[1],", ").concat(e[2],")")}function jr(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Xr(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 Qr=qs,Kr=bs,Hr=Is,$r=zs,Jr=Vs,Ve=Ls,ti=Ds,ei=function(){let e=Kt();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 De=[0,0,0],$t,d=class extends yt{static get ZERO(){return $t||($t=new d(0,0,0),Object.freeze($t)),$t}constructor(t=0,s=0,n=0){super(-0,-0,-0),arguments.length===1&&et(t)?this.copy(t):(V.debug&&(N(t),N(s),N(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 V.debug&&(N(t.x),N(t.y),N(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]=N(t)}angle(t){return ze(this,t)}cross(t){return ut(this,this,t),this.check()}rotateX({radians:t,origin:s=De}){return qe(this,this,s,t),this.check()}rotateY({radians:t,origin:s=De}){return be(this,this,s,t),this.check()}rotateZ({radians:t,origin:s=De}){return Ie(this,this,s,t),this.check()}transform(t){return this.transformAsPoint(t)}transformAsPoint(t){return xt(this,this,t),this.check()}transformAsVector(t){return Xt(this,this,t),this.check()}transformByMatrix3(t){return qt(this,this,t),this.check()}transformByMatrix2(t){return vs(this,this,t),this.check()}transformByQuaternion(t){return bt(this,this,t),this.check()}};var Jt,Et=class extends yt{static get ZERO(){return Jt||(Jt=new Et(0,0,0,0),Object.freeze(Jt)),Jt}constructor(t=0,s=0,n=0,r=0){super(-0,-0,-0,-0),et(t)&&arguments.length===1?this.copy(t):(V.debug&&(N(t),N(s),N(n),N(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 V.debug&&(N(t.x),N(t.y),N(t.z),N(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]=N(t)}get w(){return this[3]}set w(t){this[3]=N(t)}transform(t){return xt(this,this,t),this.check()}transformByMatrix3(t){return Qt(this,this,t),this.check()}transformByMatrix2(t){return Ns(this,this,t),this.check()}transformByQuaternion(t){return bt(this,this,t),this.check()}applyMatrix4(t){return t.transform(this,this),this}};var wt=class extends ot{toString(){let t="[";if(V.printRowMajor){t+="row-major:";for(let s=0;s<this.RANK;++s)for(let n=0;n<this.RANK;++n)t+=" ".concat(this[n*this.RANK+s])}else{t+="column-major:";for(let s=0;s<this.ELEMENTS;++s)t+=" ".concat(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]=N(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 Us(){let e=new D(9);return D!=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 Fs(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 ks(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 Ws(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 Ue(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],_=s[7],y=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+_*o+y*h,e[7]=E*r+_*c+y*l,e[8]=E*i+_*a+y*f,e}function Bs(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 Ys(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 Fe(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 Gs(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 ke;(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"})(ke||(ke={}));var ni=Object.freeze([1,0,0,0,1,0,0,0,1]),U=class extends wt{static get IDENTITY(){return ii()}static get ZERO(){return ri()}get ELEMENTS(){return 9}get RANK(){return 3}get INDICES(){return ke}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(ni)}fromObject(t){return this.check()}fromQuaternion(t){return Gs(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 Ws(this)}transpose(){return Fs(this,this),this.check()}invert(){return ks(this,this),this.check()}multiplyLeft(t){return Ue(this,t,this),this.check()}multiplyRight(t){return Ue(this,this,t),this.check()}rotate(t){return Ys(this,this,t),this.check()}scale(t){return Array.isArray(t)?Fe(this,this,t):Fe(this,this,[t,t]),this.check()}translate(t){return Bs(this,this,t),this.check()}transform(t,s){let n;switch(t.length){case 2:n=As(s||[-0,-0],t,this);break;case 3:n=qt(s||[-0,-0,-0],t,this);break;case 4:n=Qt(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)}},te,ee=null;function ri(){return te||(te=new U([0,0,0,0,0,0,0,0,0]),Object.freeze(te)),te}function ii(){return ee||(ee=new U,Object.freeze(ee)),ee}var se={};vt(se,{add:()=>vi,adjoint:()=>fi,clone:()=>ci,copy:()=>ai,create:()=>oi,decompose:()=>Ti,determinant:()=>Ye,equals:()=>bi,exactEquals:()=>qi,frob:()=>Ci,fromQuat:()=>He,fromQuat2:()=>Mi,fromRotation:()=>di,fromRotationTranslation:()=>js,fromRotationTranslationScale:()=>Si,fromRotationTranslationScaleOrigin:()=>Ei,fromScaling:()=>pi,fromTranslation:()=>mi,fromValues:()=>hi,fromXRotation:()=>ui,fromYRotation:()=>xi,fromZRotation:()=>gi,frustum:()=>$e,getRotation:()=>_i,getScaling:()=>Xs,getTranslation:()=>yi,identity:()=>Zs,invert:()=>Be,lookAt:()=>es,mul:()=>Ii,multiply:()=>It,multiplyScalar:()=>Ni,multiplyScalarAndAdd:()=>Li,ortho:()=>ts,orthoNO:()=>Ks,orthoZO:()=>Oi,perspective:()=>Je,perspectiveFromFieldOfView:()=>Ri,perspectiveNO:()=>Qs,perspectiveZO:()=>wi,rotate:()=>je,rotateX:()=>Xe,rotateY:()=>Qe,rotateZ:()=>Ke,scale:()=>Ze,set:()=>li,str:()=>Pi,sub:()=>zi,subtract:()=>Hs,targetTo:()=>Ai,translate:()=>Ge,transpose:()=>We});function oi(){let e=new D(16);return D!=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 ci(e){let t=new D(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 ai(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 hi(e,t,s,n,r,i,o,c,a,h,l,f,m,p,x,g){let u=new D(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 li(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 Zs(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 We(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 Be(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,_=s*a-r*o,y=s*h-i*o,S=n*a-r*c,T=n*h-i*c,v=r*h-i*a,O=l*g-f*x,A=l*u-m*x,w=l*M-p*x,b=f*u-m*g,I=f*M-p*g,z=m*M-p*u,P=E*z-_*I+y*b+S*w-T*A+v*O;return P?(P=1/P,e[0]=(c*z-a*I+h*b)*P,e[1]=(r*I-n*z-i*b)*P,e[2]=(g*v-u*T+M*S)*P,e[3]=(m*T-f*v-p*S)*P,e[4]=(a*w-o*z-h*A)*P,e[5]=(s*z-r*w+i*A)*P,e[6]=(u*y-x*v-M*_)*P,e[7]=(l*v-m*y+p*_)*P,e[8]=(o*I-c*w+h*O)*P,e[9]=(n*w-s*I-i*O)*P,e[10]=(x*T-g*y+M*E)*P,e[11]=(f*y-l*T-p*E)*P,e[12]=(c*A-o*b-a*O)*P,e[13]=(s*b-n*A+r*O)*P,e[14]=(g*_-x*S-u*E)*P,e[15]=(l*S-f*_+m*E)*P,e):null}function fi(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,_=s*a-r*o,y=s*h-i*o,S=n*a-r*c,T=n*h-i*c,v=r*h-i*a,O=l*g-f*x,A=l*u-m*x,w=l*M-p*x,b=f*u-m*g,I=f*M-p*g,z=m*M-p*u;return e[0]=c*z-a*I+h*b,e[1]=r*I-n*z-i*b,e[2]=g*v-u*T+M*S,e[3]=m*T-f*v-p*S,e[4]=a*w-o*z-h*A,e[5]=s*z-r*w+i*A,e[6]=u*y-x*v-M*_,e[7]=l*v-m*y+p*_,e[8]=o*I-c*w+h*O,e[9]=n*w-s*I-i*O,e[10]=x*T-g*y+M*E,e[11]=f*y-l*T-p*E,e[12]=c*A-o*b-a*O,e[13]=s*b-n*A+r*O,e[14]=g*_-x*S-u*E,e[15]=l*S-f*_+m*E,e}function Ye(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,_=s*c-n*o,y=h*x-l*p,S=h*g-f*p,T=l*g-f*x,v=t*T-s*S+n*y,O=i*T-o*S+c*y,A=h*_-l*E+f*M,w=p*_-x*E+g*M;return a*v-r*O+u*A-m*w}function It(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],_=s[0],y=s[1],S=s[2],T=s[3];return e[0]=_*n+y*c+S*f+T*g,e[1]=_*r+y*a+S*m+T*u,e[2]=_*i+y*h+S*p+T*M,e[3]=_*o+y*l+S*x+T*E,_=s[4],y=s[5],S=s[6],T=s[7],e[4]=_*n+y*c+S*f+T*g,e[5]=_*r+y*a+S*m+T*u,e[6]=_*i+y*h+S*p+T*M,e[7]=_*o+y*l+S*x+T*E,_=s[8],y=s[9],S=s[10],T=s[11],e[8]=_*n+y*c+S*f+T*g,e[9]=_*r+y*a+S*m+T*u,e[10]=_*i+y*h+S*p+T*M,e[11]=_*o+y*l+S*x+T*E,_=s[12],y=s[13],S=s[14],T=s[15],e[12]=_*n+y*c+S*f+T*g,e[13]=_*r+y*a+S*m+T*u,e[14]=_*i+y*h+S*p+T*M,e[15]=_*o+y*l+S*x+T*E,e}function Ge(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 Ze(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 je(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,S,T,v,O,A,w,b,I,z,P,X;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],_=t[8],y=t[9],S=t[10],T=t[11],v=r*r*l+a,O=i*r*l+o*h,A=o*r*l-i*h,w=r*i*l-o*h,b=i*i*l+a,I=o*i*l+r*h,z=r*o*l+i*h,P=i*o*l-r*h,X=o*o*l+a,e[0]=f*v+g*O+_*A,e[1]=m*v+u*O+y*A,e[2]=p*v+M*O+S*A,e[3]=x*v+E*O+T*A,e[4]=f*w+g*b+_*I,e[5]=m*w+u*b+y*I,e[6]=p*w+M*b+S*I,e[7]=x*w+E*b+T*I,e[8]=f*z+g*P+_*X,e[9]=m*z+u*P+y*X,e[10]=p*z+M*P+S*X,e[11]=x*z+E*P+T*X,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function Xe(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 Qe(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 Ke(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 mi(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 pi(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 di(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 ui(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 xi(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 gi(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 js(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 Mi(e,t){let s=new D(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),js(e,t,s),e}function yi(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function Xs(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 _i(e,t){let s=new D(3);Xs(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 Ti(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,_=c*p,y=a*x,S=h*g,T=l*p,v=f*x,O=m*g,A=u+y+O,w=0;return A>0?(w=Math.sqrt(A+1)*2,e[3]=.25*w,e[0]=(S-v)/w,e[1]=(T-E)/w,e[2]=(M-_)/w):u>y&&u>O?(w=Math.sqrt(1+u-y-O)*2,e[3]=(S-v)/w,e[0]=.25*w,e[1]=(M+_)/w,e[2]=(T+E)/w):y>O?(w=Math.sqrt(1+y-u-O)*2,e[3]=(T-E)/w,e[0]=(M+_)/w,e[1]=.25*w,e[2]=(S+v)/w):(w=Math.sqrt(1+O-u-y)*2,e[3]=(M-_)/w,e[0]=(T+E)/w,e[1]=(S+v)/w,e[2]=.25*w),e}function Si(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,_=c*l,y=n[0],S=n[1],T=n[2];return e[0]=(1-(x+u))*y,e[1]=(m+_)*y,e[2]=(p-E)*y,e[3]=0,e[4]=(m-_)*S,e[5]=(1-(f+u))*S,e[6]=(g+M)*S,e[7]=0,e[8]=(p+E)*T,e[9]=(g-M)*T,e[10]=(1-(f+x))*T,e[11]=0,e[12]=s[0],e[13]=s[1],e[14]=s[2],e[15]=1,e}function Ei(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,_=a*l,y=a*f,S=n[0],T=n[1],v=n[2],O=r[0],A=r[1],w=r[2],b=(1-(g+M))*S,I=(p+y)*S,z=(x-_)*S,P=(p-y)*T,X=(1-(m+M))*T,pt=(u+E)*T,dt=(x+_)*v,Ae=(u-E)*v,Bt=(1-(m+g))*v;return e[0]=b,e[1]=I,e[2]=z,e[3]=0,e[4]=P,e[5]=X,e[6]=pt,e[7]=0,e[8]=dt,e[9]=Ae,e[10]=Bt,e[11]=0,e[12]=s[0]+O-(b*O+P*A+dt*w),e[13]=s[1]+A-(I*O+X*A+Ae*w),e[14]=s[2]+w-(z*O+pt*A+Bt*w),e[15]=1,e}function He(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 $e(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 Qs(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 Je=Qs;function wi(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 Ri(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 Ks(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 ts=Ks;function Oi(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 es(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],_=n[2],y=s[0],S=s[1],T=s[2];return Math.abs(x-y)<1e-6&&Math.abs(g-S)<1e-6&&Math.abs(u-T)<1e-6?Zs(e):(f=x-y,m=g-S,p=u-T,r=1/Math.sqrt(f*f+m*m+p*p),f*=r,m*=r,p*=r,i=E*p-_*m,o=_*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 Ai(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 Pi(e){return"mat4(".concat(e[0],", ").concat(e[1],", ").concat(e[2],", ").concat(e[3],", ").concat(e[4],", ").concat(e[5],", ").concat(e[6],", ").concat(e[7],", ").concat(e[8],", ").concat(e[9],", ").concat(e[10],", ").concat(e[11],", ").concat(e[12],", ").concat(e[13],", ").concat(e[14],", ").concat(e[15],")")}function Ci(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 vi(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 Hs(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 Ni(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 Li(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 qi(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 bi(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],_=t[1],y=t[2],S=t[3],T=t[4],v=t[5],O=t[6],A=t[7],w=t[8],b=t[9],I=t[10],z=t[11],P=t[12],X=t[13],pt=t[14],dt=t[15];return Math.abs(s-E)<=1e-6*Math.max(1,Math.abs(s),Math.abs(E))&&Math.abs(n-_)<=1e-6*Math.max(1,Math.abs(n),Math.abs(_))&&Math.abs(r-y)<=1e-6*Math.max(1,Math.abs(r),Math.abs(y))&&Math.abs(i-S)<=1e-6*Math.max(1,Math.abs(i),Math.abs(S))&&Math.abs(o-T)<=1e-6*Math.max(1,Math.abs(o),Math.abs(T))&&Math.abs(c-v)<=1e-6*Math.max(1,Math.abs(c),Math.abs(v))&&Math.abs(a-O)<=1e-6*Math.max(1,Math.abs(a),Math.abs(O))&&Math.abs(h-A)<=1e-6*Math.max(1,Math.abs(h),Math.abs(A))&&Math.abs(l-w)<=1e-6*Math.max(1,Math.abs(l),Math.abs(w))&&Math.abs(f-b)<=1e-6*Math.max(1,Math.abs(f),Math.abs(b))&&Math.abs(m-I)<=1e-6*Math.max(1,Math.abs(m),Math.abs(I))&&Math.abs(p-z)<=1e-6*Math.max(1,Math.abs(p),Math.abs(z))&&Math.abs(x-P)<=1e-6*Math.max(1,Math.abs(x),Math.abs(P))&&Math.abs(g-X)<=1e-6*Math.max(1,Math.abs(g),Math.abs(X))&&Math.abs(u-pt)<=1e-6*Math.max(1,Math.abs(u),Math.abs(pt))&&Math.abs(M-dt)<=1e-6*Math.max(1,Math.abs(M),Math.abs(dt))}var Ii=It,zi=Hs;function Vi(){let e=new D(4);return D!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),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}function Js(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 tn(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 en(e){let t=e[0],s=e[1],n=e[2],r=e[3];return t*t+s*s+n*n+r*r}function sn(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 nn(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function rn(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 on(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 cn(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 Hc=function(){let e=Vi();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 rs;(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"})(rs||(rs={}));var Ui=45*Math.PI/180,Fi=1,ss=.1,ns=500,ki=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),L=class extends wt{static get IDENTITY(){return Bi()}static get ZERO(){return Wi()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return rs}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(ki)}fromObject(t){return this.check()}fromQuaternion(t){return He(this,t),this.check()}frustum(t){let{left:s,right:n,bottom:r,top:i,near:o=ss,far:c=ns}=t;return c===1/0?Yi(this,s,n,r,i,o):$e(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 es(this,s,n,r),this.check()}ortho(t){let{left:s,right:n,bottom:r,top:i,near:o=ss,far:c=ns}=t;return ts(this,s,n,r,i,o,c),this.check()}orthographic(t){let{fovy:s=Ui,aspect:n=Fi,focalDistance:r=1,near:i=ss,far:o=ns}=t;an(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 an(s),Je(this,s,n,r,i),this.check()}determinant(){return Ye(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 We(this,this),this.check()}invert(){return Be(this,this),this.check()}multiplyLeft(t){return It(this,t,this),this.check()}multiplyRight(t){return It(this,this,t),this.check()}rotateX(t){return Xe(this,this,t),this.check()}rotateY(t){return Qe(this,this,t),this.check()}rotateZ(t){return Ke(this,this,t),this.check()}rotateXYZ(t){return this.rotateX(t[0]).rotateY(t[1]).rotateZ(t[2])}rotateAxis(t,s){return je(this,this,t,s),this.check()}scale(t){return Ze(this,this,Array.isArray(t)?t:[t,t,t]),this.check()}translate(t){return Ge(this,this,t),this.check()}transform(t,s){return t.length===4?(s=on(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=Ps(s||[-0,-0],t,this);break;case 3:r=xt(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=Cs(s||[-0,-0],t,this);break;case 3:n=Xt(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])}},ne,re;function Wi(){return ne||(ne=new L([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(ne)),ne}function Bi(){return re||(re=new L,Object.freeze(re)),re}function an(e){if(e>Math.PI*2)throw Error("expected radians")}function Yi(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 hn(){let e=new D(4);return D!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function ln(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function is(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 os(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 fn(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 mn(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 pn(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 dn(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 zt(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 un(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 xn(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function cs(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 gn=$s;var Mn=Js,yn=nn,_n=rn,Tn=tn;var Sn=en;var En=sn;var wn=function(){let e=Kt(),t=Ht(1,0,0),s=Ht(0,1,0);return function(n,r,i){let o=Lt(r,i);return o<-.999999?(ut(e,t,r),Ve(e)<1e-6&&ut(e,s,r),Le(e,e),is(n,e,Math.PI),n):o>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(ut(e,r,i),n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=1+o,En(n,n))}}(),fa=function(){let e=hn(),t=hn();return function(s,n,r,i,o,c){return zt(e,n,o,c),zt(t,r,i,c),zt(s,e,t,2*c*(1-c)),s}}(),ma=function(){let e=Us();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],En(t,cs(t,e))}}();var Gi=[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 cs(this,t),this.check()}fromAxisRotation(t,s){return is(this,t,s),this.check()}identity(){return ln(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]=N(t)}get y(){return this[1]}set y(t){this[1]=N(t)}get z(){return this[2]}set z(t){this[2]=N(t)}get w(){return this[3]}set w(t){this[3]=N(t)}len(){return Tn(this)}lengthSquared(){return Sn(this)}dot(t){return yn(this,t)}rotationTo(t,s){return wn(this,t,s),this.check()}add(t){return gn(this,this,t),this.check()}calculateW(){return dn(this,this),this.check()}conjugate(){return xn(this,this),this.check()}invert(){return un(this,this),this.check()}lerp(t,s,n){return n===void 0?this.lerp(this,t,s):(_n(this,t,s,n),this.check())}multiplyRight(t){return os(this,this,t),this.check()}multiplyLeft(t){return os(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 fn(this,this,t),this.check()}rotateY(t){return mn(this,this,t),this.check()}rotateZ(t){return pn(this,this,t),this.check()}scale(t){return Mn(this,this,t),this.check()}slerp(t,s,n){let r,i,o;switch(arguments.length){case 1:({start:r=Gi,target:i,ratio:o}=t);break;case 2:r=this,i=t,o=s;break;default:r=t,i=s,o=n}return zt(this,r,i,o),this.check()}transformVector4(t,s=new Et){return cn(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)}};function ht(e){return ht=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ht(e)}function as(e,t){if(ht(e)!=="object"||e===null)return e;var s=e[Symbol.toPrimitive];if(s!==void 0){var n=s.call(e,t||"default");if(ht(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function hs(e){var t=as(e,"string");return ht(t)==="symbol"?t:String(t)}function R(e,t,s){return t=hs(t),t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}var lt={};vt(lt,{EPSILON1:()=>Zi,EPSILON10:()=>eo,EPSILON11:()=>so,EPSILON12:()=>no,EPSILON13:()=>ro,EPSILON14:()=>io,EPSILON15:()=>oo,EPSILON16:()=>co,EPSILON17:()=>ao,EPSILON18:()=>ho,EPSILON19:()=>lo,EPSILON2:()=>ji,EPSILON20:()=>fo,EPSILON3:()=>Xi,EPSILON4:()=>Qi,EPSILON5:()=>Ki,EPSILON6:()=>Hi,EPSILON7:()=>$i,EPSILON8:()=>Ji,EPSILON9:()=>to,PI_OVER_FOUR:()=>po,PI_OVER_SIX:()=>uo,PI_OVER_TWO:()=>mo,TWO_PI:()=>xo});var Zi=.1,ji=.01,Xi=.001,Qi=1e-4,Ki=1e-5,Hi=1e-6,$i=1e-7,Ji=1e-8,to=1e-9,eo=1e-10,so=1e-11,no=1e-12,ro=1e-13,io=1e-14,oo=1e-15,co=1e-16,ao=1e-17,ho=1e-18,lo=1e-19,fo=1e-20,mo=Math.PI/2,po=Math.PI/4,uo=Math.PI/6,xo=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 ie(e){return e}var Qa=new d;function yo(e,t=[],s=ie){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 Rn(e,t=[]){return yo(e,t,V._cartographicRadians?ie:ve)}function _o(e,t,s=ie){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 On(e,t){return _o(e,t,V._cartographicRadians?ie:Ne)}var An=1e-14,To=new d,Pn={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"}},ls={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},Vt={east:new d,north:new d,up:new d,west:new d,south:new d,down:new d},So=new d,Eo=new d,wo=new d;function fs(e,t,s,n,r,i){let o=Pn[t]&&Pn[t][s];F(o&&(!n||n===o));let c,a,h,l=To.copy(r);if(K(l.x,0,An)&&K(l.y,0,An)){let m=Math.sign(l.z);c=So.fromArray(ls[t]),t!=="east"&&t!=="west"&&c.scale(m),a=Eo.fromArray(ls[s]),s!=="east"&&s!=="west"&&a.scale(m),h=wo.fromArray(ls[n]),n!=="east"&&n!=="west"&&h.scale(m)}else{let{up:m,east:p,north:x}=Vt;p.set(-l.y,l.x,0).normalize(),e.geodeticSurfaceNormal(l,m),x.copy(m).cross(p);let{down:g,west:u,south:M}=Vt;g.copy(m).scale(-1),u.copy(p).scale(-1),M.copy(x).scale(-1),c=Vt[t],a=Vt[s],h=Vt[n]}return i[0]=c.x,i[1]=c.y,i[2]=c.z,i[3]=0,i[4]=a.x,i[5]=a.y,i[6]=a.z,i[7]=0,i[8]=h.x,i[9]=h.y,i[10]=h.z,i[11]=0,i[12]=l.x,i[13]=l.y,i[14]=l.z,i[15]=1,i}var Rt=new d,Ro=new d,Oo=new d;function Cn(e,t,s=[]){let{oneOverRadii:n,oneOverRadiiSquared:r,centerToleranceSquared:i}=t;Rt.from(e);let o=Rt.x,c=Rt.y,a=Rt.z,h=n.x,l=n.y,f=n.z,m=o*o*h*h,p=c*c*l*l,x=a*a*f*f,g=m+p+x,u=Math.sqrt(1/g);if(!Number.isFinite(u))return;let M=Ro;if(M.copy(e).scale(u),g<i)return M.to(s);let E=r.x,_=r.y,y=r.z,S=Oo;S.set(M.x*E*2,M.y*_*2,M.z*y*2);let T=(1-u)*Rt.len()/(.5*S.len()),v=0,O,A,w,b;do{T-=v,O=1/(1+T*E),A=1/(1+T*_),w=1/(1+T*y);let I=O*O,z=A*A,P=w*w,X=I*O,pt=z*A,dt=P*w;b=m*I+p*z+x*P-1;let Bt=-2*(m*X*E+p*pt*_+x*dt*y);v=b/Bt}while(Math.abs(b)>lt.EPSILON12);return Rt.scale([O,A,w]).to(s)}var oe=new d,vn=new d,Co=new d,J=new d,vo=new d,ce=new d,C=class{constructor(t=0,s=0,n=0){R(this,"radii",void 0),R(this,"radiiSquared",void 0),R(this,"radiiToTheFourth",void 0),R(this,"oneOverRadii",void 0),R(this,"oneOverRadiiSquared",void 0),R(this,"minimumRadius",void 0),R(this,"maximumRadius",void 0),R(this,"centerToleranceSquared",lt.EPSILON1),R(this,"squaredXOverSquaredZ",void 0),F(t>=0),F(s>=0),F(n>=0),this.radii=new d(t,s,n),this.radiiSquared=new d(t*t,s*s,n*n),this.radiiToTheFourth=new d(t*t*t*t,s*s*s*s,n*n*n*n),this.oneOverRadii=new d(t===0?0:1/t,s===0?0:1/s,n===0?0:1/n),this.oneOverRadiiSquared=new d(t===0?0:1/(t*t),s===0?0:1/(s*s),n===0?0:1/(n*n)),this.minimumRadius=Math.min(t,s,n),this.maximumRadius=Math.max(t,s,n),this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}equals(t){return this===t||Boolean(t&&this.radii.equals(t.radii))}toString(){return this.radii.toString()}cartographicToCartesian(t,s=[0,0,0]){let n=vn,r=Co,[,,i]=t;this.geodeticSurfaceNormalCartographic(t,n),r.copy(this.radiiSquared).scale(n);let o=Math.sqrt(n.dot(r));return r.scale(1/o),n.scale(i),r.add(n),r.to(s)}cartesianToCartographic(t,s=[0,0,0]){ce.from(t);let n=this.scaleToGeodeticSurface(ce,J);if(!n)return;let r=this.geodeticSurfaceNormal(n,vn),i=vo;i.copy(ce).subtract(n);let o=Math.atan2(r.y,r.x),c=Math.asin(r.z),a=Math.sign(St.dot(i,ce))*St.length(i);return On([o,c,a],s)}eastNorthUpToFixedFrame(t,s=new L){return fs(this,"east","north","up",t,s)}localFrameToFixedFrame(t,s,n,r,i=new L){return fs(this,t,s,n,r,i)}geocentricSurfaceNormal(t,s=[0,0,0]){return oe.from(t).normalize().to(s)}geodeticSurfaceNormalCartographic(t,s=[0,0,0]){let n=Rn(t),r=n[0],i=n[1],o=Math.cos(i);return oe.set(o*Math.cos(r),o*Math.sin(r),Math.sin(i)).normalize(),oe.to(s)}geodeticSurfaceNormal(t,s=[0,0,0]){return oe.from(t).scale(this.oneOverRadiiSquared).normalize().to(s)}scaleToGeodeticSurface(t,s){return Cn(t,this,s)}scaleToGeocentricSurface(t,s=[0,0,0]){J.from(t);let n=J.x,r=J.y,i=J.z,o=this.oneOverRadiiSquared,c=1/Math.sqrt(n*n*o.x+r*r*o.y+i*i*o.z);return J.multiplyScalar(c).to(s)}transformPositionToScaledSpace(t,s=[0,0,0]){return J.from(t).scale(this.oneOverRadii).to(s)}transformPositionFromScaledSpace(t,s=[0,0,0]){return J.from(t).scale(this.radii).to(s)}getSurfaceNormalIntersectionWithZAxis(t,s=0,n=[0,0,0]){F(K(this.radii.x,this.radii.y,lt.EPSILON15)),F(this.radii.z>0),J.from(t);let r=J.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(r)>=this.radii.z-s))return J.set(0,0,r).to(n)}};R(C,"WGS84",new C(6378137,6378137,nt));function Dt(){let e;if(typeof window<"u"&&window.performance)e=window.performance.now();else if(typeof process<"u"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var gt=class{constructor(t,s){R(this,"name",void 0),R(this,"type",void 0),R(this,"sampleSize",1),R(this,"time",0),R(this,"count",0),R(this,"samples",0),R(this,"lastTiming",0),R(this,"lastSampleTime",0),R(this,"lastSampleCount",0),R(this,"_count",0),R(this,"_time",0),R(this,"_samples",0),R(this,"_startTime",0),R(this,"_timerPending",!1),this.name=t,this.type=s,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=Dt(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(Dt()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var ft=class{constructor(t){R(this,"id",void 0),R(this,"stats",{}),this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:t,type:s})}get size(){return Object.keys(this.stats).length}reset(){for(let t of Object.values(this.stats))t.reset();return this}forEach(t){for(let s of Object.values(this.stats))t(s)}getTable(){let t={};return this.forEach(s=>{t[s.name]={time:s.time||0,count:s.count||0,average:s.getAverageTime()||0,hz:s.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(s=>this._getOrCreate(s))}_getOrCreate(t){let{name:s,type:n}=t,r=this.stats[s];return r||(t instanceof gt?r=t:r=new gt(s,n),this.stats[s]=r),r}};function tt(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var No="Queued Requests",Lo="Active Requests",qo="Cancelled Requests",bo="Queued Requests Ever",Io="Active Requests Ever",zo={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},Ot=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(t={}){this.props={...zo,...t},this.stats=new ft({id:this.props.id}),this.stats.get(No),this.stats.get(Lo),this.stats.get(qo),this.stats.get(bo),this.stats.get(Io)}scheduleRequest(t,s=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(t))return this.requestMap.get(t);let n={handle:t,priority:0,getPriority:s},r=new Promise(i=>(n.resolve=i,n));return this.requestQueue.push(n),this.requestMap.set(t,r),this._issueNewRequests(),r}_issueRequest(t){let{handle:s,resolve:n}=t,r=!1,i=()=>{r||(r=!0,this.requestMap.delete(s),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,n?n({done:i}):Promise.resolve({done:i})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;let t=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(t!==0){this._updateAllRequests();for(let s=0;s<t;++s){let n=this.requestQueue.shift();n&&this._issueRequest(n)}}}_updateAllRequests(){let t=this.requestQueue;for(let s=0;s<t.length;++s){let n=t[s];this._updateRequest(n)||(t.splice(s,1),this.requestMap.delete(n.handle),s--)}t.sort((s,n)=>s.priority-n.priority)}_updateRequest(t){return t.priority=t.getPriority(t.handle),t.priority<0?(t.resolve(null),!1):!0}};var ae={};vt(ae,{dirname:()=>Do,filename:()=>Vo,join:()=>Uo,resolve:()=>Fo});function Nn(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let e=window.location?.pathname;return e?.slice(0,e.lastIndexOf("/")+1)||""}function Vo(e){let t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(t+1):""}function Do(e){let t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(0,t):""}function Uo(...e){let t="/";return e=e.map((s,n)=>(n&&(s=s.replace(new RegExp(`^${t}`),"")),n!==e.length-1&&(s=s.replace(new RegExp(`${t}$`),"")),s)),e.join(t)}function Fo(...e){let t=[];for(let i=0;i<e.length;i++)t[i]=e[i];let s="",n=!1,r;for(let i=t.length-1;i>=-1&&!n;i--){let o;i>=0?o=t[i]:(r===void 0&&(r=Nn()),o=r),o.length!==0&&(s=`${o}/${s}`,n=o.charCodeAt(0)===Ut)}return s=ko(s,!n),n?`/${s}`:s.length>0?s:"."}var Ut=47,ms=46;function ko(e,t){let s="",n=-1,r=0,i,o=!1;for(let c=0;c<=e.length;++c){if(c<e.length)i=e.charCodeAt(c);else{if(i===Ut)break;i=Ut}if(i===Ut){if(!(n===c-1||r===1))if(n!==c-1&&r===2){if(s.length<2||!o||s.charCodeAt(s.length-1)!==ms||s.charCodeAt(s.length-2)!==ms){if(s.length>2){let a=s.length-1,h=a;for(;h>=0&&s.charCodeAt(h)!==Ut;--h);if(h!==a){s=h===-1?"":s.slice(0,h),n=c,r=0,o=!1;continue}}else if(s.length===2||s.length===1){s="",n=c,r=0,o=!1;continue}}t&&(s.length>0?s+="/..":s="..",o=!0)}else{let a=e.slice(n+1,c);s.length>0?s+=`/${a}`:s=a,o=!1}n=c,r=0}else i===ms&&r!==-1?++r:r=-1}return s}var he=class{item;previous;next;constructor(t,s,n){this.item=t,this.previous=s,this.next=n}};var le=class{head=null;tail=null;_length=0;get length(){return this._length}add(t){let s=new he(t,this.tail,null);return this.tail?(this.tail.next=s,this.tail=s):(this.head=s,this.tail=s),++this._length,s}remove(t){t&&(t.previous&&t.next?(t.previous.next=t.next,t.next.previous=t.previous):t.previous?(t.previous.next=null,this.tail=t.previous):t.next?(t.next.previous=null,this.head=t.next):(this.head=null,this.tail=null),t.next=null,t.previous=null,--this._length)}splice(t,s){t!==s&&(this.remove(s),this._insert(t,s))}_insert(t,s){let n=t.next;t.next=s,this.tail===t?this.tail=s:n.previous=s,s.next=n,s.previous=t,++this._length}};var At=class{_list;_sentinel;_trimTiles;constructor(){this._list=new le,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch(t){let s=t._cacheNode;s&&this._list.splice(this._sentinel,s)}add(t,s,n){s._cacheNode||(s._cacheNode=this._list.add(s),n&&n(t,s))}unloadTile(t,s,n){let r=s._cacheNode;r&&(this._list.remove(r),s._cacheNode=null,n&&n(t,s))}unloadTiles(t,s){let n=this._trimTiles;this._trimTiles=!1;let r=this._list,i=t.maximumMemoryUsage*1024*1024,o=this._sentinel,c=r.head;for(;c!==o&&(t.gpuMemoryUsageInBytes>i||n);){let a=c.item;c=c.next,this.unloadTile(t,a,s)}}trim(){this._trimTiles=!0}};function fe(e,t){tt(e),tt(t);let{rtcCenter:s,gltfUpAxis:n}=t,{computedTransform:r,boundingVolume:{center:i}}=e,o=new L(r);switch(s&&o.translate(s),n){case"Z":break;case"Y":let f=new L().rotateX(Math.PI/2);o=o.multiplyRight(f);break;case"X":let m=new L().rotateY(-Math.PI/2);o=o.multiplyRight(m);break;default:break}t.isQuantized&&o.translate(t.quantizedVolumeOffset).scale(t.quantizedVolumeScale);let c=new d(i);t.cartesianModelMatrix=o,t.cartesianOrigin=c;let a=C.WGS84.cartesianToCartographic(c,new d),l=C.WGS84.eastNorthUpToFixedFrame(c).invert();t.cartographicModelMatrix=l.multiplyRight(o),t.cartographicOrigin=a,t.coordinateSystem||(t.modelMatrix=t.cartographicModelMatrix)}var k={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var Yh=new d,Gh=new d;var Ft=new d,Ln=new d,H=class{constructor(t=[0,0,0],s=0){R(this,"center",void 0),R(this,"radius",void 0),this.radius=-0,this.center=new d,this.fromCenterRadius(t,s)}fromCenterRadius(t,s){return this.center.from(t),this.radius=s,this}fromCornerPoints(t,s){return s=Ft.from(s),this.center=new d().from(t).add(s).scale(.5),this.radius=this.center.distance(s),this}equals(t){return this===t||Boolean(t)&&this.center.equals(t.center)&&this.radius===t.radius}clone(){return new H(this.center,this.radius)}union(t){let s=this.center,n=this.radius,r=t.center,i=t.radius,o=Ft.copy(r).subtract(s),c=o.magnitude();if(n>=c+i)return this.clone();if(i>=c+n)return t.clone();let a=(n+c+i)*.5;return Ln.copy(o).scale((-n+a)/c).add(s),this.center.copy(Ln),this.radius=a,this}expand(t){let n=Ft.from(t).subtract(this.center).magnitude();return n>this.radius&&(this.radius=n),this}transform(t){this.center.transform(t);let s=se.getScaling(Ft,t);return this.radius=Math.max(s[0],Math.max(s[1],s[2]))*this.radius,this}distanceSquaredTo(t){let s=this.distanceTo(t);return s*s}distanceTo(t){let n=Ft.from(t).subtract(this.center);return Math.max(0,n.len()-this.radius)}intersectPlane(t){let s=this.center,n=this.radius,i=t.normal.dot(s)+t.distance;return i<-n?k.OUTSIDE:i<n?k.INTERSECTING:k.INSIDE}};var Wo=new d,Bo=new d,me=new d,pe=new d,de=new d,Yo=new d,Go=new d,rt={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},st=class{constructor(t=[0,0,0],s=[0,0,0,0,0,0,0,0,0]){R(this,"center",void 0),R(this,"halfAxes",void 0),this.center=new d().from(t),this.halfAxes=new U(s)}get halfSize(){let t=this.halfAxes.getColumn(0),s=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2);return[new d(t).len(),new d(s).len(),new d(n).len()]}get quaternion(){let t=this.halfAxes.getColumn(0),s=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2),r=new d(t).normalize(),i=new d(s).normalize(),o=new d(n).normalize();return new at().fromMatrix3(new U([...r,...i,...o]))}fromCenterHalfSizeQuaternion(t,s,n){let r=new at(n),i=new U().fromQuaternion(r);return i[0]=i[0]*s[0],i[1]=i[1]*s[0],i[2]=i[2]*s[0],i[3]=i[3]*s[1],i[4]=i[4]*s[1],i[5]=i[5]*s[1],i[6]=i[6]*s[2],i[7]=i[7]*s[2],i[8]=i[8]*s[2],this.center=new d().from(t),this.halfAxes=i,this}clone(){return new st(this.center,this.halfAxes)}equals(t){return this===t||Boolean(t)&&this.center.equals(t.center)&&this.halfAxes.equals(t.halfAxes)}getBoundingSphere(t=new H){let s=this.halfAxes,n=s.getColumn(0,me),r=s.getColumn(1,pe),i=s.getColumn(2,de),o=Wo.copy(n).add(r).add(i);return t.center.copy(this.center),t.radius=o.magnitude(),t}intersectPlane(t){let s=this.center,n=t.normal,r=this.halfAxes,i=n.x,o=n.y,c=n.z,a=Math.abs(i*r[rt.COLUMN0ROW0]+o*r[rt.COLUMN0ROW1]+c*r[rt.COLUMN0ROW2])+Math.abs(i*r[rt.COLUMN1ROW0]+o*r[rt.COLUMN1ROW1]+c*r[rt.COLUMN1ROW2])+Math.abs(i*r[rt.COLUMN2ROW0]+o*r[rt.COLUMN2ROW1]+c*r[rt.COLUMN2ROW2]),h=n.dot(s)+t.distance;return h<=-a?k.OUTSIDE:h>=a?k.INSIDE:k.INTERSECTING}distanceTo(t){return Math.sqrt(this.distanceSquaredTo(t))}distanceSquaredTo(t){let s=Bo.from(t).subtract(this.center),n=this.halfAxes,r=n.getColumn(0,me),i=n.getColumn(1,pe),o=n.getColumn(2,de),c=r.magnitude(),a=i.magnitude(),h=o.magnitude();r.normalize(),i.normalize(),o.normalize();let l=0,f;return f=Math.abs(s.dot(r))-c,f>0&&(l+=f*f),f=Math.abs(s.dot(i))-a,f>0&&(l+=f*f),f=Math.abs(s.dot(o))-h,f>0&&(l+=f*f),l}computePlaneDistances(t,s,n=[-0,-0]){let r=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY,o=this.center,c=this.halfAxes,a=c.getColumn(0,me),h=c.getColumn(1,pe),l=c.getColumn(2,de),f=Yo.copy(a).add(h).add(l).add(o),m=Go.copy(f).subtract(t),p=s.dot(m);return r=Math.min(p,r),i=Math.max(p,i),f.copy(o).add(a).add(h).subtract(l),m.copy(f).subtract(t),p=s.dot(m),r=Math.min(p,r),i=Math.max(p,i),f.copy(o).add(a).subtract(h).add(l),m.copy(f).subtract(t),p=s.dot(m),r=Math.min(p,r),i=Math.max(p,i),f.copy(o).add(a).subtract(h).subtract(l),m.copy(f).subtract(t),p=s.dot(m),r=Math.min(p,r),i=Math.max(p,i),o.copy(f).subtract(a).add(h).add(l),m.copy(f).subtract(t),p=s.dot(m),r=Math.min(p,r),i=Math.max(p,i),o.copy(f).subtract(a).add(h).subtract(l),m.copy(f).subtract(t),p=s.dot(m),r=Math.min(p,r),i=Math.max(p,i),o.copy(f).subtract(a).subtract(h).add(l),m.copy(f).subtract(t),p=s.dot(m),r=Math.min(p,r),i=Math.max(p,i),o.copy(f).subtract(a).subtract(h).subtract(l),m.copy(f).subtract(t),p=s.dot(m),r=Math.min(p,r),i=Math.max(p,i),n[0]=r,n[1]=i,n}transform(t){this.center.transformAsPoint(t);let s=this.halfAxes.getColumn(0,me);s.transformAsPoint(t);let n=this.halfAxes.getColumn(1,pe);n.transformAsPoint(t);let r=this.halfAxes.getColumn(2,de);return r.transformAsPoint(t),this.halfAxes=new U([...s,...n,...r]),this}getTransform(){throw new Error("not implemented")}};var qn=new d,bn=new d,Y=class{constructor(t=[0,0,1],s=0){R(this,"normal",void 0),R(this,"distance",void 0),this.normal=new d,this.distance=-0,this.fromNormalDistance(t,s)}fromNormalDistance(t,s){return F(Number.isFinite(s)),this.normal.from(t).normalize(),this.distance=s,this}fromPointNormal(t,s){t=qn.from(t),this.normal.from(s).normalize();let n=-this.normal.dot(t);return this.distance=n,this}fromCoefficients(t,s,n,r){return this.normal.set(t,s,n),F(K(this.normal.len(),1)),this.distance=r,this}clone(){return new Y(this.normal,this.distance)}equals(t){return K(this.distance,t.distance)&&K(this.normal,t.normal)}getPointDistance(t){return this.normal.dot(t)+this.distance}transform(t){let s=bn.copy(this.normal).transformAsVector(t).normalize(),n=this.normal.scale(-this.distance).transform(t);return this.fromPointNormal(n,s)}projectPointOntoPlane(t,s=[0,0,0]){let n=qn.from(t),r=this.getPointDistance(n),i=bn.copy(this.normal).scale(r);return n.subtract(i).to(s)}};var In=[new d([1,0,0]),new d([0,1,0]),new d([0,0,1])],zn=new d,Zo=new d,W=class{constructor(t=[]){R(this,"planes",void 0),this.planes=t}fromBoundingSphere(t){this.planes.length=2*In.length;let s=t.center,n=t.radius,r=0;for(let i of In){let o=this.planes[r],c=this.planes[r+1];o||(o=this.planes[r]=new Y),c||(c=this.planes[r+1]=new Y);let a=zn.copy(i).scale(-n).add(s);o.fromPointNormal(a,i);let h=zn.copy(i).scale(n).add(s),l=Zo.copy(i).negate();c.fromPointNormal(h,l),r+=2}return this}computeVisibility(t){let s=k.INSIDE;for(let n of this.planes)switch(t.intersectPlane(n)){case k.OUTSIDE:return k.OUTSIDE;case k.INTERSECTING:s=k.INTERSECTING;break;default:}return s}computeVisibilityWithPlaneMask(t,s){if(F(Number.isFinite(s),"parentPlaneMask is required."),s===W.MASK_OUTSIDE||s===W.MASK_INSIDE)return s;let n=W.MASK_INSIDE,r=this.planes;for(let i=0;i<this.planes.length;++i){let o=i<31?1<<i:0;if(i<31&&!(s&o))continue;let c=r[i],a=t.intersectPlane(c);if(a===k.OUTSIDE)return W.MASK_OUTSIDE;a===k.INTERSECTING&&(n|=o)}return n}};R(W,"MASK_OUTSIDE",4294967295);R(W,"MASK_INSIDE",0);R(W,"MASK_INDETERMINATE",2147483647);var dl=new d,ul=new d,xl=new d,gl=new d,Ml=new d;var Rl=new d,Ol=new d,Al=new d,Pl=new d,Cl=new d,vl=new d,Nl=new d,Ll=new d,ql=new d,bl=new d,Il=new d,zl=new d;var Ul=new U,Fl=new U,kl=new U,Wl=new U,Bl=new U;var Ql=new d,Kl=new d,Hl=new d,$l=new d,Jl=new d,t0=new U,e0={diagonal:new U,unitary:new U};var Vn=new d,ps=new d,ds=new W([new Y,new Y,new Y,new Y,new Y,new Y]);function xe(e,t){let{cameraDirection:s,cameraUp:n,height:r}=e,{metersPerUnit:i}=e.distanceScales,o=ue(e,e.center),c=C.WGS84.eastNorthUpToFixedFrame(o),a=e.unprojectPosition(e.cameraPosition),h=C.WGS84.cartographicToCartesian(a,new d),l=new d(c.transformAsVector(new d(s).scale(i))).normalize(),f=new d(c.transformAsVector(new d(n).scale(i))).normalize();Ko(e);let m=e.constructor,{longitude:p,latitude:x,width:g,bearing:u,zoom:M}=e,E=new m({longitude:p,latitude:x,height:r,width:g,bearing:u,zoom:M,pitch:0});return{camera:{position:h,direction:l,up:f},viewport:e,topDownViewport:E,height:r,cullingVolume:ds,frameNumber:t,sseDenominator:1.15}}function Un(e,t,s){if(s===0||e.length<=s)return[e,[]];let n=[],{longitude:r,latitude:i}=t.viewport;for(let[h,l]of e.entries()){let[f,m]=l.header.mbs,p=Math.abs(r-f),x=Math.abs(i-m),g=Math.sqrt(x*x+p*p);n.push([h,g])}let o=n.sort((h,l)=>h[1]-l[1]),c=[];for(let h=0;h<s;h++)c.push(e[o[h][0]]);let a=[];for(let h=s;h<o.length;h++)a.push(e[o[h][0]]);return[c,a]}function Ko(e){let t=e.getFrustumPlanes(),s=Dn(t.near,e.cameraPosition),n=ue(e,s),r=ue(e,e.cameraPosition,ps),i=0;ds.planes[i++].fromPointNormal(n,Vn.copy(n).subtract(r));for(let o in t){if(o==="near")continue;let c=t[o],a=Dn(c,s,ps),h=ue(e,a,ps);ds.planes[i++].fromPointNormal(h,Vn.copy(n).subtract(h))}}function Dn(e,t,s=new d){let n=e.normal.dot(t);return s.copy(e.normal).scale(e.distance-n).add(t),s}function ue(e,t,s=new d){let n=e.unprojectPosition(t);return C.WGS84.cartographicToCartesian(n,s)}var Ho=6378137,$o=6378137,us=6356752314245179e-9,Pt=new d;function Fn(e,t){if(e instanceof st){let{halfAxes:s}=e,n=Jo(s);return Math.log2(us/(n+t[2]))}else if(e instanceof H){let{radius:s}=e;return Math.log2(us/(s+t[2]))}else if(e.width&&e.height){let{width:s,height:n}=e,r=Math.log2(Ho/s),i=Math.log2($o/n);return(r+i)/2}return 1}function xs(e,t,s){C.WGS84.cartographicToCartesian([e.xmax,e.ymax,e.zmax],Pt);let n=Math.sqrt(Math.pow(Pt[0]-s[0],2)+Math.pow(Pt[1]-s[1],2)+Math.pow(Pt[2]-s[2],2));return Math.log2(us/(n+t[2]))}function kn(e,t,s){let[n,r,i,o]=e;return xs({xmin:n,xmax:i,ymin:r,ymax:o,zmin:0,zmax:0},t,s)}function Jo(e){e.getColumn(0,Pt);let t=e.getColumn(1),s=e.getColumn(2);return Pt.add(t).add(s).len()}var nr=Pe(jt(),1);var G={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},j;(function(e){e[e.ADD=1]="ADD",e[e.REPLACE=2]="REPLACE"})(j||(j={}));var ge;(function(e){e.EMPTY="empty",e.SCENEGRAPH="scenegraph",e.POINTCLOUD="pointcloud",e.MESH="mesh"})(ge||(ge={}));var B;(function(e){e.I3S="I3S",e.TILES3D="TILES3D"})(B||(B={}));var Me;(function(e){e.GEOMETRIC_ERROR="geometricError",e.MAX_SCREEN_THRESHOLD="maxScreenThreshold"})(Me||(Me={}));var Wn={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0};function Zn(e){return e!=null}var Z=new d,ye=new d,tc=new d,ec=new d,Mt=new d,Bn=new d,Yn=new d,Gn=new d;function Ct(e,t,s){if(tt(e,"3D Tile: boundingVolume must be defined"),e.box)return Xn(e.box,t,s);if(e.region)return nc(e.region);if(e.sphere)return sc(e.sphere,t,s);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function jn(e,t){if(e.box)return rc(t);if(e.region){let[s,n,r,i,o,c]=e.region;return[[Q(s),Q(n),o],[Q(r),Q(i),c]]}if(e.sphere)return ic(t);throw new Error("Unkown boundingVolume type")}function Xn(e,t,s){let n=new d(e[0],e[1],e[2]);t.transform(n,n);let r=[];if(e.length===10){let h=e.slice(3,6),l=new at;l.fromArray(e,6);let f=new d([1,0,0]),m=new d([0,1,0]),p=new d([0,0,1]);f.transformByQuaternion(l),f.scale(h[0]),m.transformByQuaternion(l),m.scale(h[1]),p.transformByQuaternion(l),p.scale(h[2]),r=[...f.toArray(),...m.toArray(),...p.toArray()]}else r=[...e.slice(3,6),...e.slice(6,9),...e.slice(9,12)];let i=t.transformAsVector(r.slice(0,3)),o=t.transformAsVector(r.slice(3,6)),c=t.transformAsVector(r.slice(6,9)),a=new U([i[0],i[1],i[2],o[0],o[1],o[2],c[0],c[1],c[2]]);return Zn(s)?(s.center=n,s.halfAxes=a,s):new st(n,a)}function sc(e,t,s){let n=new d(e[0],e[1],e[2]);t.transform(n,n);let r=t.getScale(ye),i=Math.max(Math.max(r[0],r[1]),r[2]),o=e[3]*i;return Zn(s)?(s.center=n,s.radius=o,s):new H(n,o)}function nc(e){let[t,s,n,r,i,o]=e,c=C.WGS84.cartographicToCartesian([Q(t),Q(r),i],tc),a=C.WGS84.cartographicToCartesian([Q(n),Q(s),o],ec),h=new d().addVectors(c,a).multiplyByScalar(.5);return C.WGS84.cartesianToCartographic(h,Mt),C.WGS84.cartographicToCartesian([Q(n),Mt[1],Mt[2]],Bn),C.WGS84.cartographicToCartesian([Mt[0],Q(r),Mt[2]],Yn),C.WGS84.cartographicToCartesian([Mt[0],Mt[1],o],Gn),Xn([...h,...Bn.subtract(h),...Yn.subtract(h),...Gn.subtract(h)],new L)}function rc(e){let t=Qn(),{halfAxes:s}=e,n=new d(s.getColumn(0)),r=new d(s.getColumn(1)),i=new d(s.getColumn(2));for(let o=0;o<2;o++){for(let c=0;c<2;c++){for(let a=0;a<2;a++)Z.copy(e.center),Z.add(n),Z.add(r),Z.add(i),Kn(t,Z),i.negate();r.negate()}n.negate()}return t}function ic(e){let t=Qn(),{center:s,radius:n}=e,r=C.WGS84.scaleToGeodeticSurface(s,Z),i;r?i=C.WGS84.geodeticSurfaceNormal(r):i=new d(0,0,1);let o=new d(i[2],-i[1],0);o.len()>0?o.normalize():o=new d(0,1,0);let c=o.clone().cross(i);for(let a of[o,c,i]){ye.copy(a).scale(n);for(let h=0;h<2;h++)Z.copy(s),Z.add(ye),Kn(t,Z),ye.negate()}return t}function Qn(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function Kn(e,t){C.WGS84.cartesianToCartographic(t,Z),e[0][0]=Math.min(e[0][0],Z[0]),e[0][1]=Math.min(e[0][1],Z[1]),e[0][2]=Math.min(e[0][2],Z[2]),e[1][0]=Math.max(e[1][0],Z[0]),e[1][1]=Math.max(e[1][1],Z[1]),e[1][2]=Math.max(e[1][2],Z[2])}var b0=new d,I0=new d,z0=new L,V0=new d,D0=new d,U0=new d;function oc(e,t){let s=e*t;return 1-Math.exp(-(s*s))}function cc(e,t){if(e.dynamicScreenSpaceError&&e.dynamicScreenSpaceErrorComputedDensity){let s=e.dynamicScreenSpaceErrorComputedDensity,n=e.dynamicScreenSpaceErrorFactor;return oc(t,s)*n}return 0}function Hn(e,t,s){let n=e.tileset,r=e.parent&&e.parent.lodMetricValue||e.lodMetricValue,i=s?r:e.lodMetricValue;if(i===0)return 0;let o=Math.max(e._distanceToCamera,1e-7),{height:c,sseDenominator:a}=t,{viewDistanceScale:h}=n.options,l=i*c*(h||1)/(o*a);return l-=cc(n,o),l}var gs=new d,$n=new d,mt=new d,Jn=new d,ac=new d,Ms=new L,tr=new L;function _e(e,t){if(e.lodMetricValue===0||isNaN(e.lodMetricValue))return"DIG";let s=2*ys(e,t);return s<2?"OUT":!e.header.children||s<=e.lodMetricValue?"DRAW":e.header.children?"DIG":"OUT"}function ys(e,t){let{topDownViewport:s}=t,n=e.header.mbs[1],r=e.header.mbs[0],i=e.header.mbs[2],o=e.header.mbs[3],c=[...e.boundingVolume.center],a=s.unprojectPosition(s.cameraPosition);C.WGS84.cartographicToCartesian(a,gs),$n.copy(gs).subtract(c).normalize(),C.WGS84.eastNorthUpToFixedFrame(c,Ms),tr.copy(Ms).invert(),mt.copy(gs).transform(tr);let h=Math.sqrt(mt[0]*mt[0]+mt[1]*mt[1]),l=h*h/mt[2];Jn.copy([mt[0],mt[1],l]);let m=Jn.transform(Ms).subtract(c).normalize(),x=$n.cross(m).normalize().scale(o).add(c),g=C.WGS84.cartesianToCartographic(x),u=s.project([r,n,i]),M=s.project(g);return ac.copy(u).subtract(M).magnitude()}function er(e){return{assetGltfUpAxis:e.asset&&e.asset.gltfUpAxis||"Y"}}var kt=class{_map=new Map;_array;_length;constructor(t=0){this._array=new Array(t),this._length=t}get length(){return this._length}set length(t){this._length=t,t>this._array.length&&(this._array.length=t)}get values(){return this._array}get(t){return tt(t<this._array.length),this._array[t]}set(t,s){tt(t>=0),t>=this.length&&(this.length=t+1),this._map.has(this._array[t])&&this._map.delete(this._array[t]),this._array[t]=s,this._map.set(s,t)}delete(t){let s=this._map.get(t);s>=0&&(this._array.splice(s,1),this._map.delete(t),this.length--)}peek(){return this._array[this._length-1]}push(t){if(!this._map.has(t)){let s=this.length++;this._array[s]=t,this._map.set(t,s)}}pop(){let t=this._array[--this.length];return this._map.delete(t),t}reserve(t){tt(t>=0),t>this._array.length&&(this._array.length=t)}resize(t){tt(t>=0),this.length=t}trim(t){t==null&&(t=this.length),this._array.length=t}reset(){this._array=[],this._map=new Map,this._length=0}find(t){return this._map.has(t)}};var hc={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""},$=class{options;root=null;selectedTiles={};requestedTiles={};emptyTiles={};lastUpdate=new Date().getTime();updateDebounceTime=1e3;_traversalStack=new kt;_emptyTraversalStack=new kt;_frameNumber=null;traversalFinished(t){return!0}constructor(t){this.options={...hc,...t}}traverse(t,s,n){this.root=t,this.options={...this.options,...n},this.reset(),this.updateTile(t,s),this._frameNumber=s.frameNumber,this.executeTraversal(t,s)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal(t,s){let n=this._traversalStack;for(t._selectionDepth=1,n.push(t);n.length>0;){let i=n.pop(),o=!1;this.canTraverse(i,s)&&(this.updateChildTiles(i,s),o=this.updateAndPushChildren(i,s,n,i.hasRenderContent?i._selectionDepth+1:i._selectionDepth));let c=i.parent,a=Boolean(!c||c._shouldRefine),h=!o;i.hasRenderContent?i.refine===j.ADD?(this.loadTile(i,s),this.selectTile(i,s)):i.refine===j.REPLACE&&(this.loadTile(i,s),h&&this.selectTile(i,s)):(this.emptyTiles[i.id]=i,this.loadTile(i,s),h&&this.selectTile(i,s)),this.touchTile(i,s),i._shouldRefine=o&&a}let r=new Date().getTime();(this.traversalFinished(s)||r-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=r,this.options.onTraversalEnd(s))}updateChildTiles(t,s){let n=t.children;for(let r of n)this.updateTile(r,s)}updateAndPushChildren(t,s,n,r){let{loadSiblings:i,skipLevelOfDetail:o}=this.options,c=t.children;c.sort(this.compareDistanceToCamera.bind(this));let a=t.refine===j.REPLACE&&t.hasRenderContent&&!o,h=!1,l=!0;for(let f of c)if(f._selectionDepth=r,f.isVisibleAndInRequestVolume?(n.find(f)&&n.delete(f),n.push(f),h=!0):(a||i)&&(this.loadTile(f,s),this.touchTile(f,s)),a){let m;if(f._inRequestVolume?f.hasRenderContent?m=f.contentAvailable:m=this.executeEmptyTraversal(f,s):m=!1,l=l&&m,!l)return!1}return h||(l=!1),l}updateTile(t,s){this.updateTileVisibility(t,s)}selectTile(t,s){this.shouldSelectTile(t)&&(t._selectedFrame=s.frameNumber,this.selectedTiles[t.id]=t)}loadTile(t,s){this.shouldLoadTile(t)&&(t._requestedFrame=s.frameNumber,t._priority=t._getPriority(),this.requestedTiles[t.id]=t)}touchTile(t,s){t.tileset._cache.touch(t),t._touchedFrame=s.frameNumber}canTraverse(t,s,n=!1,r=!1){return t.hasChildren?t.hasTilesetContent?!t.contentExpired:!r&&!t.isVisibleAndInRequestVolume?!1:this.shouldRefine(t,s,n):!1}shouldLoadTile(t){return t.hasUnloadedContent||t.contentExpired}shouldSelectTile(t){return t.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(t,s,n=!1){let r=t._screenSpaceError;return n&&(r=t.getScreenSpaceError(s,!0)),r>t.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(t,s){let n=[];if(this.options.viewportTraversersMap)for(let r in this.options.viewportTraversersMap)this.options.viewportTraversersMap[r]===s.viewport.id&&n.push(r);else n.push(s.viewport.id);t.updateVisibility(s,n)}compareDistanceToCamera(t,s){return t._distanceToCamera-s._distanceToCamera}anyChildrenVisible(t,s){let n=!1;for(let r of t.children)r.updateVisibility(s),n=n||r.isVisibleAndInRequestVolume;return n}executeEmptyTraversal(t,s){let n=!0,r=this._emptyTraversalStack;for(r.push(t);r.length>0;){let i=r.pop(),o=!i.hasRenderContent&&this.canTraverse(i,s,!1,!1),c=!i.hasRenderContent&&i.children.length===0;if(!o&&!i.contentAvailable&&!c&&(n=!1),this.updateTile(i,s),i.isVisibleAndInRequestVolume||(this.loadTile(i,s),this.touchTile(i,s)),o){let a=i.children;for(let h of a)r.push(h)}}return n}};var sr=new d;function lc(e){return e!=null}var it=class{tileset;header;id;url;parent;refine;type;contentUrl;lodMetricType="geometricError";lodMetricValue=0;boundingVolume=null;content=null;contentState=G.UNLOADED;gpuMemoryUsageInBytes=0;children=[];depth=0;viewportIds=[];transform=new L;extensions=null;implicitTiling=null;userData={};computedTransform;hasEmptyContent=!1;hasTilesetContent=!1;traverser=new $({});_cacheNode=null;_frameNumber=null;_expireDate=null;_expiredContent=null;_boundingBox=void 0;_distanceToCamera=0;_screenSpaceError=0;_visibilityPlaneMask;_visible=void 0;_contentBoundingVolume;_viewerRequestVolume;_initialTransform=new L;_priority=0;_selectedFrame=0;_requestedFrame=0;_selectionDepth=0;_touchedFrame=0;_centerZDepth=0;_shouldRefine=!1;_stackLength=0;_visitedFrame=0;_inRequestVolume=!1;_lodJudge=null;constructor(t,s,n,r=""){this.header=s,this.tileset=t,this.id=r||s.id,this.url=s.url,this.parent=n,this.refine=this._getRefine(s.refine),this.type=s.type,this.contentUrl=s.contentUrl,this._initializeLodMetric(s),this._initializeTransforms(s),this._initializeBoundingVolumes(s),this._initializeContent(s),this._initializeRenderingState(s),Object.seal(this)}destroy(){this.header=null}isDestroyed(){return this.header===null}get selected(){return this._selectedFrame===this.tileset._frameNumber}get isVisible(){return this._visible}get isVisibleAndInRequestVolume(){return this._visible&&this._inRequestVolume}get hasRenderContent(){return!this.hasEmptyContent&&!this.hasTilesetContent}get hasChildren(){return this.children.length>0||this.header.children&&this.header.children.length>0}get contentReady(){return this.contentState===G.READY||this.hasEmptyContent}get contentAvailable(){return Boolean(this.contentReady&&this.hasRenderContent||this._expiredContent&&!this.contentFailed)}get hasUnloadedContent(){return this.hasRenderContent&&this.contentUnloaded}get contentUnloaded(){return this.contentState===G.UNLOADED}get contentExpired(){return this.contentState===G.EXPIRED}get contentFailed(){return this.contentState===G.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=jn(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(t,s){switch(this.tileset.type){case B.I3S:return ys(this,t);case B.TILES3D:return Hn(this,t,s);default:throw new Error("Unsupported tileset type")}}unselect(){this._selectedFrame=0}_getGpuMemoryUsageInBytes(){return this.content.gpuMemoryUsageInBytes||this.content.byteLength||0}_getPriority(){let t=this.tileset._traverser,{skipLevelOfDetail:s}=t.options,n=this.refine===j.ADD||s;if(n&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===G.UNLOADED)return-1;let r=this.parent,o=r&&(!n||this._screenSpaceError===0||r.hasTilesetContent)?r._screenSpaceError:this._screenSpaceError,c=t.root?t.root._screenSpaceError:0;return Math.max(c-o,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=G.LOADING;let s=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!s)return this.contentState=G.UNLOADED,!1;try{let n=this.tileset.getTileUrl(this.contentUrl),r=this.tileset.loader,i={...this.tileset.loadOptions,[r.id]:{...this.tileset.loadOptions[r.id],isTileset:this.type==="json",...this._getLoaderSpecificOptions(r.id)}};return this.content=await(0,nr.load)(n,r,i),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=G.READY,this._onContentLoaded(),!0}catch(n){throw this.contentState=G.FAILED,n}finally{s.done()}}unloadContent(){return this.content&&this.content.destroy&&this.content.destroy(),this.content=null,this.header.content&&this.header.content.destroy&&this.header.content.destroy(),this.header.content=null,this.contentState=G.UNLOADED,!0}updateVisibility(t,s){if(this._frameNumber===t.frameNumber)return;let n=this.parent,r=n?n._visibilityPlaneMask:W.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){let i=n?n.computedTransform:this.tileset.modelMatrix;this._updateTransform(i)}this._distanceToCamera=this.distanceToTile(t),this._screenSpaceError=this.getScreenSpaceError(t,!1),this._visibilityPlaneMask=this.visibility(t,r),this._visible=this._visibilityPlaneMask!==W.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(t),this._frameNumber=t.frameNumber,this.viewportIds=s}visibility(t,s){let{cullingVolume:n}=t,{boundingVolume:r}=this;return n.computeVisibilityWithPlaneMask(r,s)}contentVisibility(){return!0}distanceToTile(t){let s=this.boundingVolume;return Math.sqrt(Math.max(s.distanceSquaredTo(t.camera.position),0))}cameraSpaceZDepth({camera:t}){let s=this.boundingVolume;return sr.subVectors(s.center,t.position),t.direction.dot(sr)}insideViewerRequestVolume(t){let s=this._viewerRequestVolume;return!s||s.distanceSquaredTo(t.camera.position)<=0}updateExpiration(){if(lc(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){let t=Date.now();Date.lessThan(this._expireDate,t)&&(this.contentState=G.EXPIRED,this._expiredContent=this.content)}}get extras(){return this.header.extras}_initializeLodMetric(t){"lodMetricType"in t?this.lodMetricType=t.lodMetricType:(this.lodMetricType=this.parent&&this.parent.lodMetricType||this.tileset.lodMetricType,console.warn("3D Tile: Required prop lodMetricType is undefined. Using parent lodMetricType")),"lodMetricValue"in t?this.lodMetricValue=t.lodMetricValue:(this.lodMetricValue=this.parent&&this.parent.lodMetricValue||this.tileset.lodMetricValue,console.warn("3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue"))}_initializeTransforms(t){this.transform=t.transform?new L(t.transform):new L;let s=this.parent,n=this.tileset,r=s&&s.computedTransform?s.computedTransform.clone():n.modelMatrix.clone();this.computedTransform=new L(r).multiplyRight(this.transform);let i=s&&s._initialTransform?s._initialTransform.clone():new L;this._initialTransform=new L(i).multiplyRight(this.transform)}_initializeBoundingVolumes(t){this._contentBoundingVolume=null,this._viewerRequestVolume=null,this._updateBoundingVolume(t)}_initializeContent(t){this.content={_tileset:this.tileset,_tile:this},this.hasEmptyContent=!0,this.contentState=G.UNLOADED,this.hasTilesetContent=!1,t.contentUrl&&(this.content=null,this.hasEmptyContent=!1)}_initializeRenderingState(t){this.depth=t.level||(this.parent?this.parent.depth+1:0),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._visibilityPlaneMask=W.MASK_INDETERMINATE,this._visible=void 0,this._inRequestVolume=!1,this._stackLength=0,this._selectionDepth=0,this._frameNumber=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._priority=0}_getRefine(t){return t||this.parent&&this.parent.refine||j.REPLACE}_isTileset(){return this.contentUrl.indexOf(".json")!==-1}_onContentLoaded(){switch(this.content&&this.content.type){case"vctr":case"geom":this.tileset._traverser.disableSkipLevelOfDetail=!0;break;default:}this._isTileset()?this.hasTilesetContent=!0:this.gpuMemoryUsageInBytes=this._getGpuMemoryUsageInBytes()}_updateBoundingVolume(t){this.boundingVolume=Ct(t.boundingVolume,this.computedTransform,this.boundingVolume);let s=t.content;s&&(s.boundingVolume&&(this._contentBoundingVolume=Ct(s.boundingVolume,this.computedTransform,this._contentBoundingVolume)),t.viewerRequestVolume&&(this._viewerRequestVolume=Ct(t.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(t=new L){let s=t.clone().multiplyRight(this.transform);s.equals(this.computedTransform)||(this.computedTransform=s,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions(t){switch(t){case"i3s":return{...this.tileset.options.i3s,_tileOptions:{attributeUrls:this.header.attributeUrls,textureUrl:this.header.textureUrl,textureFormat:this.header.textureFormat,textureLoaderOptions:this.header.textureLoaderOptions,materialDefinition:this.header.materialDefinition,isDracoGeometry:this.header.isDracoGeometry,mbs:this.header.mbs},_tilesetOptions:{store:this.tileset.tileset.store,attributeStorageInfo:this.tileset.tileset.attributeStorageInfo,fields:this.tileset.tileset.fields},isTileHeader:!1};case"3d-tiles":case"cesium-ion":default:return er(this.tileset.tileset)}}};var Te=class extends ${compareDistanceToCamera(t,s){return s._distanceToCamera===0&&t._distanceToCamera===0?s._centerZDepth-t._centerZDepth:s._distanceToCamera-t._distanceToCamera}updateTileVisibility(t,s){if(super.updateTileVisibility(t,s),!t.isVisibleAndInRequestVolume)return;let n=t.children.length>0;if(t.hasTilesetContent&&n){let o=t.children[0];this.updateTileVisibility(o,s),t._visible=o._visible;return}if(this.meetsScreenSpaceErrorEarly(t,s)){t._visible=!1;return}let r=t.refine===j.REPLACE,i=t._optimChildrenWithinParent===Wn.USE_OPTIMIZATION;if(r&&i&&n&&!this.anyChildrenVisible(t,s)){t._visible=!1;return}}meetsScreenSpaceErrorEarly(t,s){let{parent:n}=t;return!n||n.hasTilesetContent||n.refine!==j.ADD?!1:!this.shouldRefine(t,s,!0)}};var rr=Pe(jt(),1);var Se=class{frameNumberMap=new Map;register(t,s){let n=this.frameNumberMap.get(t)||new Map,r=n.get(s)||0;n.set(s,r+1),this.frameNumberMap.set(t,n)}deregister(t,s){let n=this.frameNumberMap.get(t);if(!n)return;let r=n.get(s)||1;n.set(s,r-1)}isZero(t,s){return(this.frameNumberMap.get(t)?.get(s)||0)===0}};var _s={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"},Ee=class{_statusMap;pendingTilesRegister=new Se;constructor(){this._statusMap={}}add(t,s,n,r){if(!this._statusMap[s]){let{frameNumber:i,viewport:{id:o}}=r;this._statusMap[s]={request:t,callback:n,key:s,frameState:r,status:_s.REQUESTED},this.pendingTilesRegister.register(o,i),t().then(c=>{this._statusMap[s].status=_s.COMPLETED;let{frameNumber:a,viewport:{id:h}}=this._statusMap[s].frameState;this.pendingTilesRegister.deregister(h,a),this._statusMap[s].callback(c,r)}).catch(c=>{this._statusMap[s].status=_s.ERROR;let{frameNumber:a,viewport:{id:h}}=this._statusMap[s].frameState;this.pendingTilesRegister.deregister(h,a),n(c)})}}update(t,s){if(this._statusMap[t]){let{frameNumber:n,viewport:{id:r}}=this._statusMap[t].frameState;this.pendingTilesRegister.deregister(r,n);let{frameNumber:i,viewport:{id:o}}=s;this.pendingTilesRegister.register(o,i),this._statusMap[t].frameState=s}}find(t){return this._statusMap[t]}hasPendingTiles(t,s){return!this.pendingTilesRegister.isZero(t,s)}};var we=class extends ${_tileManager;constructor(t){super(t),this._tileManager=new Ee}traversalFinished(t){return!this._tileManager.hasPendingTiles(t.viewport.id,this._frameNumber||0)}shouldRefine(t,s){return t._lodJudge=_e(t,s),t._lodJudge==="DIG"}updateChildTiles(t,s){let n=t.header.children||[],r=t.children,i=t.tileset;for(let o of n){let c=`${o.id}-${s.viewport.id}`,a=r&&r.find(h=>h.id===c);if(a)a&&this.updateTile(a,s);else{let h=()=>this._loadTile(o.id,i);this._tileManager.find(c)?this._tileManager.update(c,s):(i.tileset.nodePages&&(h=()=>i.tileset.nodePagesTile.formTileFromNodePages(o.id)),this._tileManager.add(h,c,f=>this._onTileLoad(f,t,c),s))}}return!1}async _loadTile(t,s){let{loader:n}=s,r=s.getTileUrl(`${s.url}/nodes/${t}`),i={...s.loadOptions,i3s:{...s.loadOptions.i3s,isTileHeader:!0}};return await(0,rr.load)(r,n,i)}_onTileLoad(t,s,n){let r=new it(s.tileset,t,s,n);s.children.push(r);let i=this._tileManager.find(r.id).frameState;this.updateTile(r,i),this._frameNumber===i.frameNumber&&(this.traversalFinished(i)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(r,i)}};var fc={description:"",ellipsoid:C.WGS84,modelMatrix:new L,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:e=>e,contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},Re="Tiles In Tileset(s)",Ts="Tiles In Memory",ir="Tiles In View",or="Tiles To Render",cr="Tiles Loaded",Ss="Tiles Loading",ar="Tiles Unloaded",hr="Failed Tile Loads",lr="Points/Vertices",Es="Tile Memory Use",fr="Maximum Screen Space Error",Oe=class{options;loadOptions;type;tileset;loader;url;basePath;modelMatrix;ellipsoid;lodMetricType;lodMetricValue;refine;root=null;roots={};asset={};description="";properties;extras=null;attributions={};credits={};stats;contentFormats={draco:!1,meshopt:!1,dds:!1,ktx2:!1};cartographicCenter=null;cartesianCenter=null;zoom=1;boundingVolume=null;dynamicScreenSpaceErrorComputedDensity=0;maximumMemoryUsage=32;gpuMemoryUsageInBytes=0;memoryAdjustedScreenSpaceError=0;_cacheBytes=0;_cacheOverflowBytes=0;_frameNumber=0;_queryParams={};_extensionsUsed=[];_tiles={};_pendingCount=0;selectedTiles=[];traverseCounter=0;geometricError=0;lastUpdatedVieports=null;_requestedTiles=[];_emptyTiles=[];frameStateData={};_traverser;_cache=new At;_requestScheduler;updatePromise=null;tilesetInitializationPromise;constructor(t,s){this.options={...fc,...s},this.tileset=t,this.loader=t.loader,this.type=t.type,this.url=t.url,this.basePath=t.basePath||ae.dirname(this.url),this.modelMatrix=this.options.modelMatrix,this.ellipsoid=this.options.ellipsoid,this.lodMetricType=t.lodMetricType,this.lodMetricValue=t.lodMetricValue,this.refine=t.root.refine,this.loadOptions=this.options.loadOptions||{},this._traverser=this._initializeTraverser(),this._requestScheduler=new Ot({throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests}),this.memoryAdjustedScreenSpaceError=this.options.maximumScreenSpaceError,this._cacheBytes=this.options.maximumMemoryUsage*1024*1024,this._cacheOverflowBytes=this.options.memoryCacheOverflow*1024*1024,this.stats=new ft({id:this.url}),this._initializeStats(),this.tilesetInitializationPromise=this._initializeTileSet(t)}destroy(){this._destroy()}isLoaded(){return this._pendingCount===0&&this._frameNumber!==0&&this._requestedTiles.length===0}get tiles(){return Object.values(this._tiles)}get frameNumber(){return this._frameNumber}get queryParams(){return new URLSearchParams(this._queryParams).toString()}setProps(t){this.options={...this.options,...t}}getTileUrl(t){if(t.startsWith("data:"))return t;let n=t;return this.queryParams.length&&(n=`${t}${t.includes("?")?"&":"?"}${this.queryParams}`),n}hasExtension(t){return Boolean(this._extensionsUsed.indexOf(t)>-1)}update(t=null){this.tilesetInitializationPromise.then(()=>{!t&&this.lastUpdatedVieports?t=this.lastUpdatedVieports:this.lastUpdatedVieports=t,t&&this.doUpdate(t)})}async selectTiles(t=null){return await this.tilesetInitializationPromise,t&&(this.lastUpdatedVieports=t),this.updatePromise||(this.updatePromise=new Promise(s=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),s(this._frameNumber),this.updatePromise=null},this.options.debounceTime)})),this.updatePromise}adjustScreenSpaceError(){this.gpuMemoryUsageInBytes<this._cacheBytes?this.memoryAdjustedScreenSpaceError=Math.max(this.memoryAdjustedScreenSpaceError/1.02,this.options.maximumScreenSpaceError):this.gpuMemoryUsageInBytes>this._cacheBytes+this._cacheOverflowBytes&&(this.memoryAdjustedScreenSpaceError*=1.02)}doUpdate(t){if("loadTiles"in this.options&&!this.options.loadTiles||this.traverseCounter>0)return;let s=t instanceof Array?t:[t];this._cache.reset(),this._frameNumber++,this.traverseCounter=s.length;let n=[];for(let r of s){let i=r.id;this._needTraverse(i)?n.push(i):this.traverseCounter--}for(let r of s){let i=r.id;if(this.roots[i]||(this.roots[i]=this._initializeTileHeaders(this.tileset,null)),!n.includes(i))continue;let o=xe(r,this._frameNumber);this._traverser.traverse(this.roots[i],o,this.options)}}_needTraverse(t){let s=t;return this.options.viewportTraversersMap&&(s=this.options.viewportTraversersMap[t]),s===t}_onTraversalEnd(t){let s=t.viewport.id;this.frameStateData[s]||(this.frameStateData[s]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});let n=this.frameStateData[s],r=Object.values(this._traverser.selectedTiles),[i,o]=Un(r,t,this.options.maximumTilesSelected);n.selectedTiles=i;for(let c of o)c.unselect();n._requestedTiles=Object.values(this._traverser.requestedTiles),n._emptyTiles=Object.values(this._traverser.emptyTiles),this.traverseCounter--,!(this.traverseCounter>0)&&this._updateTiles()}_updateTiles(){this.selectedTiles=[],this._requestedTiles=[],this._emptyTiles=[];for(let t in this.frameStateData){let s=this.frameStateData[t];this.selectedTiles=this.selectedTiles.concat(s.selectedTiles),this._requestedTiles=this._requestedTiles.concat(s._requestedTiles),this._emptyTiles=this._emptyTiles.concat(s._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);for(let t of this.selectedTiles)this._tiles[t.id]=t;this._loadTiles(),this._unloadTiles(),this._updateStats()}_tilesChanged(t,s){if(t.length!==s.length)return!0;let n=new Set(t.map(o=>o.id)),r=new Set(s.map(o=>o.id)),i=t.filter(o=>!r.has(o.id)).length>0;return i=i||s.filter(o=>!n.has(o.id)).length>0,i}_loadTiles(){for(let t of this._requestedTiles)t.contentUnloaded&&this._loadTile(t)}_unloadTiles(){this._cache.unloadTiles(this,(t,s)=>t._unloadTile(s))}_updateStats(){let t=0,s=0;for(let n of this.selectedTiles)n.contentAvailable&&n.content&&(t++,n.content.pointCount?s+=n.content.pointCount:s+=n.content.vertexCount);this.stats.get(ir).count=this.selectedTiles.length,this.stats.get(or).count=t,this.stats.get(lr).count=s,this.stats.get(fr).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(t){this.type===B.I3S&&(this.calculateViewPropsI3S(),t.root=await t.root),this.root=this._initializeTileHeaders(t,null),this.type===B.TILES3D&&(this._initializeTiles3DTileset(t),this.calculateViewPropsTiles3D()),this.type===B.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){let t=this.tileset.fullExtent;if(t){let{xmin:n,xmax:r,ymin:i,ymax:o,zmin:c,zmax:a}=t;this.cartographicCenter=new d(n+(r-n)/2,i+(o-i)/2,c+(a-c)/2),this.cartesianCenter=new d,C.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=xs(t,this.cartographicCenter,this.cartesianCenter);return}let s=this.tileset.store?.extent;if(s){let[n,r,i,o]=s;this.cartographicCenter=new d(n+(i-n)/2,r+(o-r)/2,0),this.cartesianCenter=new d,C.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=kn(s,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new d,this.zoom=1}calculateViewPropsTiles3D(){let t=this.root,{center:s}=t.boundingVolume;if(!s){console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new d,this.zoom=1;return}s[0]!==0||s[1]!==0||s[2]!==0?(this.cartographicCenter=new d,C.WGS84.cartesianToCartographic(s,this.cartographicCenter)):this.cartographicCenter=new d(0,0,-C.WGS84.radii[0]),this.cartesianCenter=s,this.zoom=Fn(t.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(Re),this.stats.get(Ss),this.stats.get(Ts),this.stats.get(ir),this.stats.get(or),this.stats.get(cr),this.stats.get(ar),this.stats.get(hr),this.stats.get(lr),this.stats.get(Es,"memory"),this.stats.get(fr)}_initializeTileHeaders(t,s){let n=new it(this,t.root,s);if(s&&(s.children.push(n),n.depth=s.depth+1),this.type===B.TILES3D){let r=[];for(r.push(n);r.length>0;){let i=r.pop();this.stats.get(Re).incrementCount();let o=i.header.children||[];for(let c of o){let a=new it(this,c,i);if(a.contentUrl?.includes("?session=")){let l=new URL(a.contentUrl).searchParams.get("session");l&&(this._queryParams.session=l)}i.children.push(a),a.depth=i.depth+1,r.push(a)}}}return n}_initializeTraverser(){let t;switch(this.type){case B.TILES3D:t=Te;break;case B.I3S:t=we;break;default:t=$}return new t({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders(t){this._destroySubtree(t)}async _loadTile(t){let s;try{this._onStartTileLoading(),s=await t.loadContent()}catch(n){this._onTileLoadError(t,n instanceof Error?n:new Error("load failed"))}finally{this._onEndTileLoading(),this._onTileLoad(t,s)}}_onTileLoadError(t,s){this.stats.get(hr).incrementCount();let n=s.message||s.toString(),r=t.url;console.error(`A 3D tile failed to load: ${t.url} ${n}`),this.options.onTileError(t,n,r)}_onTileLoad(t,s){if(s){if(this.type===B.I3S){let n=this.tileset?.nodePagesTile?.nodesInNodePages||0;this.stats.get(Re).reset(),this.stats.get(Re).addCount(n)}t&&t.content&&fe(t,t.content),this.updateContentTypes(t),this._addTileToCache(t),this.options.onTileLoad(t)}}updateContentTypes(t){if(this.type===B.I3S)switch(t.header.isDracoGeometry&&(this.contentFormats.draco=!0),t.header.textureFormat){case"dds":this.contentFormats.dds=!0;break;case"ktx2":this.contentFormats.ktx2=!0;break;default:}else if(this.type===B.TILES3D){let{extensionsRemoved:s=[]}=t.content?.gltf||{};s.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),s.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),s.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(Ss).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(Ss).decrementCount()}_addTileToCache(t){this._cache.add(this,t,s=>s._updateCacheStats(t))}_updateCacheStats(t){this.stats.get(cr).incrementCount(),this.stats.get(Ts).incrementCount(),this.gpuMemoryUsageInBytes+=t.gpuMemoryUsageInBytes||0,this.stats.get(Es).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(t){this.gpuMemoryUsageInBytes-=t.gpuMemoryUsageInBytes||0,this.stats.get(Ts).decrementCount(),this.stats.get(ar).incrementCount(),this.stats.get(Es).count=this.gpuMemoryUsageInBytes,this.options.onTileUnload(t),t.unloadContent()}_destroy(){let t=[];for(this.root&&t.push(this.root);t.length>0;){let s=t.pop();for(let n of s.children)t.push(n);this._destroyTile(s)}this.root=null}_destroySubtree(t){let s=t,n=[];for(n.push(s);n.length>0;){t=n.pop();for(let r of t.children)n.push(r);t!==s&&this._destroyTile(t)}s.children=[]}_destroyTile(t){this._cache.unloadTile(this,t),this._unloadTile(t),t.destroy()}_initializeTiles3DTileset(t){if(t.queryString){let s=new URLSearchParams(t.queryString),n=Object.fromEntries(s.entries());this._queryParams={...this._queryParams,...n}}if(this.asset=t.asset,!this.asset)throw new Error("Tileset must have an asset property.");if(this.asset.version!=="0.0"&&this.asset.version!=="1.0"&&this.asset.version!=="1.1")throw new Error("The tileset must be 3D Tiles version either 0.0 or 1.0 or 1.1.");"tilesetVersion"in this.asset&&(this._queryParams.v=this.asset.tilesetVersion),this.credits={attributions:this.options.attributions||[]},this.description=this.options.description||"",this.properties=t.properties,this.geometricError=t.geometricError,this._extensionsUsed=t.extensionsUsed||[],this.extras=t.extras}_initializeI3STileset(){this.loadOptions.i3s&&"token"in this.loadOptions.i3s&&(this._queryParams.token=this.loadOptions.i3s.token)}};return Mr(Wt);})();
7
+ "use strict";var __exports__=(()=>{var mr=Object.create;var Gt=Object.defineProperty;var pr=Object.getOwnPropertyDescriptor;var dr=Object.getOwnPropertyNames;var ur=Object.getPrototypeOf,xr=Object.prototype.hasOwnProperty;var gr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),vt=(e,t)=>{for(var s in t)Gt(e,s,{get:t[s],enumerable:!0})},Yt=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of dr(t))!xr.call(e,r)&&r!==s&&Gt(e,r,{get:()=>t[r],enumerable:!(n=pr(t,r))||n.enumerable});return e},Zt=(e,t,s)=>(Yt(e,t,"default"),s&&Yt(s,t,"default")),Pe=(e,t,s)=>(s=e!=null?mr(ur(e)):{},Yt(t||!e||!e.__esModule?Gt(s,"default",{value:e,enumerable:!0}):s,e)),Mr=e=>Yt(Gt({},"__esModule",{value:!0}),e);var jt=gr((pc,ws)=>{ws.exports=globalThis.loaders});var Wt={};vt(Wt,{LOD_METRIC_TYPE:()=>Me,TILESET_TYPE:()=>B,TILE_CONTENT_STATE:()=>G,TILE_REFINEMENT:()=>j,TILE_TYPE:()=>ge,Tile3D:()=>it,Tileset3D:()=>Oe,TilesetCache:()=>At,TilesetTraverser:()=>$,calculateTransformProps:()=>fe,createBoundingVolume:()=>Ct,getFrameState:()=>xe,getLodStatus:()=>_e});Zt(Wt,Pe(jt(),1));var yr=1/Math.PI*180,_r=1/180*Math.PI,Tr={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...Tr}};var V=globalThis.mathgl.config;function Ce(e,{precision:t=V.precision}={}){return e=Sr(e),"".concat(parseFloat(e.toPrecision(t)))}function et(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function ve(e){return Rs(e)}function Ne(e){return Q(e)}function Rs(e,t){return Os(e,s=>s*_r,t)}function Q(e,t){return Os(e,s=>s*yr,t)}function K(e,t,s){let n=V.EPSILON;s&&(V.EPSILON=s);try{if(e===t)return!0;if(et(e)&&et(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;++r)if(!K(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)<=V.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{V.EPSILON=n}}function Sr(e){return Math.round(e/V.EPSILON)*V.EPSILON}function Er(e){return e.clone?e.clone():new Array(e.length)}function Os(e,t,s){if(et(e)){let n=e;s=s||Er(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)}function wr(e){function t(){var s=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(s,Object.getPrototypeOf(this)),s}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}var ot=class extends wr(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:et(t)?this.toArray(t):this.toObject(t)}toTarget(t){return t?this.to(t):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(V)}formatString(t){let s="";for(let n=0;n<this.ELEMENTS;++n)s+=(n>0?", ":"")+Ce(this[n],t);return"".concat(t.printTypes?this.constructor.name:"","[").concat(s,"]")}equals(t){if(!t||this.length!==t.length)return!1;for(let s=0;s<this.ELEMENTS;++s)if(!K(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(V.debug&&!this.validate())throw new Error("math.gl: ".concat(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 Rr(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 N(e){if(!Number.isFinite(e))throw new Error("Invalid number ".concat(JSON.stringify(e)));return e}function ct(e,t,s=""){if(V.debug&&!Rr(e,t))throw new Error("math.gl: ".concat(s," some fields set to invalid numbers'"));return e}function F(e,t){if(!e)throw new Error("math.gl assertion ".concat(t))}var yt=class extends ot{get x(){return this[0]}set x(t){this[0]=N(t)}get y(){return this[1]}set y(t){this[1]=N(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 N(s)}dot(t){let s=0;for(let n=0;n<this.ELEMENTS;++n)s+=this[n]*t[n];return N(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 F(t>=0&&t<this.ELEMENTS,"index is out of range"),N(this[t])}setComponent(t,s){return F(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 D=typeof Float32Array<"u"?Float32Array:Array,Nt=Math.random;function _t(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var wc=Math.PI/180;function Or(){let e=new D(2);return D!=Float32Array&&(e[0]=0,e[1]=0),e}function As(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 Ps(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 Rc=function(){let e=Or();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 Cs(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 Xt(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 vs(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 Ns(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 Qt(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 St={};vt(St,{add:()=>vr,angle:()=>ze,bezier:()=>Br,ceil:()=>Nr,clone:()=>Ar,copy:()=>Pr,create:()=>Kt,cross:()=>ut,dist:()=>$r,distance:()=>zs,div:()=>Hr,divide:()=>Is,dot:()=>Lt,equals:()=>Xr,exactEquals:()=>jr,floor:()=>Lr,forEach:()=>ei,fromValues:()=>Ht,hermite:()=>Wr,inverse:()=>Ur,len:()=>Ve,length:()=>Ls,lerp:()=>Fr,max:()=>br,min:()=>qr,mul:()=>Kr,multiply:()=>bs,negate:()=>Dr,normalize:()=>Le,random:()=>Yr,rotateX:()=>qe,rotateY:()=>be,rotateZ:()=>Ie,round:()=>Ir,scale:()=>zr,scaleAndAdd:()=>Vr,set:()=>Cr,slerp:()=>kr,sqrDist:()=>Jr,sqrLen:()=>ti,squaredDistance:()=>Vs,squaredLength:()=>Ds,str:()=>Zr,sub:()=>Qr,subtract:()=>qs,transformMat3:()=>qt,transformMat4:()=>xt,transformQuat:()=>bt,zero:()=>Gr});function Kt(){let e=new D(3);return D!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Ar(e){let t=new D(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Ls(e){let t=e[0],s=e[1],n=e[2];return Math.sqrt(t*t+s*s+n*n)}function Ht(e,t,s){let n=new D(3);return n[0]=e,n[1]=t,n[2]=s,n}function Pr(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Cr(e,t,s,n){return e[0]=t,e[1]=s,e[2]=n,e}function vr(e,t,s){return e[0]=t[0]+s[0],e[1]=t[1]+s[1],e[2]=t[2]+s[2],e}function qs(e,t,s){return e[0]=t[0]-s[0],e[1]=t[1]-s[1],e[2]=t[2]-s[2],e}function bs(e,t,s){return e[0]=t[0]*s[0],e[1]=t[1]*s[1],e[2]=t[2]*s[2],e}function Is(e,t,s){return e[0]=t[0]/s[0],e[1]=t[1]/s[1],e[2]=t[2]/s[2],e}function Nr(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function Lr(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function qr(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 br(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 Ir(e,t){return e[0]=_t(t[0]),e[1]=_t(t[1]),e[2]=_t(t[2]),e}function zr(e,t,s){return e[0]=t[0]*s,e[1]=t[1]*s,e[2]=t[2]*s,e}function Vr(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 zs(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 Vs(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 Ds(e){let t=e[0],s=e[1],n=e[2];return t*t+s*s+n*n}function Dr(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function Ur(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Le(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 Lt(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function ut(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 Fr(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 kr(e,t,s,n){let r=Math.acos(Math.min(Math.max(Lt(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 Wr(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 Br(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 Yr(e,t){t=t===void 0?1:t;let s=Nt()*2*Math.PI,n=Nt()*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 xt(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 qt(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 bt(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 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],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 be(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 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[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 ze(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&&Lt(e,t)/a;return Math.acos(Math.min(Math.max(h,-1),1))}function Gr(e){return e[0]=0,e[1]=0,e[2]=0,e}function Zr(e){return"vec3(".concat(e[0],", ").concat(e[1],", ").concat(e[2],")")}function jr(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Xr(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 Qr=qs,Kr=bs,Hr=Is,$r=zs,Jr=Vs,Ve=Ls,ti=Ds,ei=function(){let e=Kt();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 De=[0,0,0],$t,d=class extends yt{static get ZERO(){return $t||($t=new d(0,0,0),Object.freeze($t)),$t}constructor(t=0,s=0,n=0){super(-0,-0,-0),arguments.length===1&&et(t)?this.copy(t):(V.debug&&(N(t),N(s),N(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 V.debug&&(N(t.x),N(t.y),N(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]=N(t)}angle(t){return ze(this,t)}cross(t){return ut(this,this,t),this.check()}rotateX({radians:t,origin:s=De}){return qe(this,this,s,t),this.check()}rotateY({radians:t,origin:s=De}){return be(this,this,s,t),this.check()}rotateZ({radians:t,origin:s=De}){return Ie(this,this,s,t),this.check()}transform(t){return this.transformAsPoint(t)}transformAsPoint(t){return xt(this,this,t),this.check()}transformAsVector(t){return Xt(this,this,t),this.check()}transformByMatrix3(t){return qt(this,this,t),this.check()}transformByMatrix2(t){return vs(this,this,t),this.check()}transformByQuaternion(t){return bt(this,this,t),this.check()}};var Jt,Et=class extends yt{static get ZERO(){return Jt||(Jt=new Et(0,0,0,0),Object.freeze(Jt)),Jt}constructor(t=0,s=0,n=0,r=0){super(-0,-0,-0,-0),et(t)&&arguments.length===1?this.copy(t):(V.debug&&(N(t),N(s),N(n),N(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 V.debug&&(N(t.x),N(t.y),N(t.z),N(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]=N(t)}get w(){return this[3]}set w(t){this[3]=N(t)}transform(t){return xt(this,this,t),this.check()}transformByMatrix3(t){return Qt(this,this,t),this.check()}transformByMatrix2(t){return Ns(this,this,t),this.check()}transformByQuaternion(t){return bt(this,this,t),this.check()}applyMatrix4(t){return t.transform(this,this),this}};var wt=class extends ot{toString(){let t="[";if(V.printRowMajor){t+="row-major:";for(let s=0;s<this.RANK;++s)for(let n=0;n<this.RANK;++n)t+=" ".concat(this[n*this.RANK+s])}else{t+="column-major:";for(let s=0;s<this.ELEMENTS;++s)t+=" ".concat(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]=N(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 Us(){let e=new D(9);return D!=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 Fs(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 ks(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 Ws(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 Ue(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],_=s[7],y=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+_*o+y*h,e[7]=E*r+_*c+y*l,e[8]=E*i+_*a+y*f,e}function Bs(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 Ys(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 Fe(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 Gs(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 ke;(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"})(ke||(ke={}));var ni=Object.freeze([1,0,0,0,1,0,0,0,1]),U=class extends wt{static get IDENTITY(){return ii()}static get ZERO(){return ri()}get ELEMENTS(){return 9}get RANK(){return 3}get INDICES(){return ke}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(ni)}fromObject(t){return this.check()}fromQuaternion(t){return Gs(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 Ws(this)}transpose(){return Fs(this,this),this.check()}invert(){return ks(this,this),this.check()}multiplyLeft(t){return Ue(this,t,this),this.check()}multiplyRight(t){return Ue(this,this,t),this.check()}rotate(t){return Ys(this,this,t),this.check()}scale(t){return Array.isArray(t)?Fe(this,this,t):Fe(this,this,[t,t]),this.check()}translate(t){return Bs(this,this,t),this.check()}transform(t,s){let n;switch(t.length){case 2:n=As(s||[-0,-0],t,this);break;case 3:n=qt(s||[-0,-0,-0],t,this);break;case 4:n=Qt(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)}},te,ee=null;function ri(){return te||(te=new U([0,0,0,0,0,0,0,0,0]),Object.freeze(te)),te}function ii(){return ee||(ee=new U,Object.freeze(ee)),ee}var se={};vt(se,{add:()=>vi,adjoint:()=>fi,clone:()=>ci,copy:()=>ai,create:()=>oi,decompose:()=>Ti,determinant:()=>Ye,equals:()=>bi,exactEquals:()=>qi,frob:()=>Ci,fromQuat:()=>He,fromQuat2:()=>Mi,fromRotation:()=>di,fromRotationTranslation:()=>js,fromRotationTranslationScale:()=>Si,fromRotationTranslationScaleOrigin:()=>Ei,fromScaling:()=>pi,fromTranslation:()=>mi,fromValues:()=>hi,fromXRotation:()=>ui,fromYRotation:()=>xi,fromZRotation:()=>gi,frustum:()=>$e,getRotation:()=>_i,getScaling:()=>Xs,getTranslation:()=>yi,identity:()=>Zs,invert:()=>Be,lookAt:()=>es,mul:()=>Ii,multiply:()=>It,multiplyScalar:()=>Ni,multiplyScalarAndAdd:()=>Li,ortho:()=>ts,orthoNO:()=>Ks,orthoZO:()=>Oi,perspective:()=>Je,perspectiveFromFieldOfView:()=>Ri,perspectiveNO:()=>Qs,perspectiveZO:()=>wi,rotate:()=>je,rotateX:()=>Xe,rotateY:()=>Qe,rotateZ:()=>Ke,scale:()=>Ze,set:()=>li,str:()=>Pi,sub:()=>zi,subtract:()=>Hs,targetTo:()=>Ai,translate:()=>Ge,transpose:()=>We});function oi(){let e=new D(16);return D!=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 ci(e){let t=new D(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 ai(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 hi(e,t,s,n,r,i,o,c,a,h,l,f,m,p,x,g){let u=new D(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 li(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 Zs(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 We(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 Be(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,_=s*a-r*o,y=s*h-i*o,S=n*a-r*c,T=n*h-i*c,v=r*h-i*a,O=l*g-f*x,A=l*u-m*x,w=l*M-p*x,b=f*u-m*g,I=f*M-p*g,z=m*M-p*u,P=E*z-_*I+y*b+S*w-T*A+v*O;return P?(P=1/P,e[0]=(c*z-a*I+h*b)*P,e[1]=(r*I-n*z-i*b)*P,e[2]=(g*v-u*T+M*S)*P,e[3]=(m*T-f*v-p*S)*P,e[4]=(a*w-o*z-h*A)*P,e[5]=(s*z-r*w+i*A)*P,e[6]=(u*y-x*v-M*_)*P,e[7]=(l*v-m*y+p*_)*P,e[8]=(o*I-c*w+h*O)*P,e[9]=(n*w-s*I-i*O)*P,e[10]=(x*T-g*y+M*E)*P,e[11]=(f*y-l*T-p*E)*P,e[12]=(c*A-o*b-a*O)*P,e[13]=(s*b-n*A+r*O)*P,e[14]=(g*_-x*S-u*E)*P,e[15]=(l*S-f*_+m*E)*P,e):null}function fi(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,_=s*a-r*o,y=s*h-i*o,S=n*a-r*c,T=n*h-i*c,v=r*h-i*a,O=l*g-f*x,A=l*u-m*x,w=l*M-p*x,b=f*u-m*g,I=f*M-p*g,z=m*M-p*u;return e[0]=c*z-a*I+h*b,e[1]=r*I-n*z-i*b,e[2]=g*v-u*T+M*S,e[3]=m*T-f*v-p*S,e[4]=a*w-o*z-h*A,e[5]=s*z-r*w+i*A,e[6]=u*y-x*v-M*_,e[7]=l*v-m*y+p*_,e[8]=o*I-c*w+h*O,e[9]=n*w-s*I-i*O,e[10]=x*T-g*y+M*E,e[11]=f*y-l*T-p*E,e[12]=c*A-o*b-a*O,e[13]=s*b-n*A+r*O,e[14]=g*_-x*S-u*E,e[15]=l*S-f*_+m*E,e}function Ye(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,_=s*c-n*o,y=h*x-l*p,S=h*g-f*p,T=l*g-f*x,v=t*T-s*S+n*y,O=i*T-o*S+c*y,A=h*_-l*E+f*M,w=p*_-x*E+g*M;return a*v-r*O+u*A-m*w}function It(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],_=s[0],y=s[1],S=s[2],T=s[3];return e[0]=_*n+y*c+S*f+T*g,e[1]=_*r+y*a+S*m+T*u,e[2]=_*i+y*h+S*p+T*M,e[3]=_*o+y*l+S*x+T*E,_=s[4],y=s[5],S=s[6],T=s[7],e[4]=_*n+y*c+S*f+T*g,e[5]=_*r+y*a+S*m+T*u,e[6]=_*i+y*h+S*p+T*M,e[7]=_*o+y*l+S*x+T*E,_=s[8],y=s[9],S=s[10],T=s[11],e[8]=_*n+y*c+S*f+T*g,e[9]=_*r+y*a+S*m+T*u,e[10]=_*i+y*h+S*p+T*M,e[11]=_*o+y*l+S*x+T*E,_=s[12],y=s[13],S=s[14],T=s[15],e[12]=_*n+y*c+S*f+T*g,e[13]=_*r+y*a+S*m+T*u,e[14]=_*i+y*h+S*p+T*M,e[15]=_*o+y*l+S*x+T*E,e}function Ge(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 Ze(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 je(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,S,T,v,O,A,w,b,I,z,P,X;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],_=t[8],y=t[9],S=t[10],T=t[11],v=r*r*l+a,O=i*r*l+o*h,A=o*r*l-i*h,w=r*i*l-o*h,b=i*i*l+a,I=o*i*l+r*h,z=r*o*l+i*h,P=i*o*l-r*h,X=o*o*l+a,e[0]=f*v+g*O+_*A,e[1]=m*v+u*O+y*A,e[2]=p*v+M*O+S*A,e[3]=x*v+E*O+T*A,e[4]=f*w+g*b+_*I,e[5]=m*w+u*b+y*I,e[6]=p*w+M*b+S*I,e[7]=x*w+E*b+T*I,e[8]=f*z+g*P+_*X,e[9]=m*z+u*P+y*X,e[10]=p*z+M*P+S*X,e[11]=x*z+E*P+T*X,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function Xe(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 Qe(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 Ke(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 mi(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 pi(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 di(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 ui(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 xi(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 gi(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 js(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 Mi(e,t){let s=new D(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),js(e,t,s),e}function yi(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function Xs(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 _i(e,t){let s=new D(3);Xs(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 Ti(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,_=c*p,y=a*x,S=h*g,T=l*p,v=f*x,O=m*g,A=u+y+O,w=0;return A>0?(w=Math.sqrt(A+1)*2,e[3]=.25*w,e[0]=(S-v)/w,e[1]=(T-E)/w,e[2]=(M-_)/w):u>y&&u>O?(w=Math.sqrt(1+u-y-O)*2,e[3]=(S-v)/w,e[0]=.25*w,e[1]=(M+_)/w,e[2]=(T+E)/w):y>O?(w=Math.sqrt(1+y-u-O)*2,e[3]=(T-E)/w,e[0]=(M+_)/w,e[1]=.25*w,e[2]=(S+v)/w):(w=Math.sqrt(1+O-u-y)*2,e[3]=(M-_)/w,e[0]=(T+E)/w,e[1]=(S+v)/w,e[2]=.25*w),e}function Si(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,_=c*l,y=n[0],S=n[1],T=n[2];return e[0]=(1-(x+u))*y,e[1]=(m+_)*y,e[2]=(p-E)*y,e[3]=0,e[4]=(m-_)*S,e[5]=(1-(f+u))*S,e[6]=(g+M)*S,e[7]=0,e[8]=(p+E)*T,e[9]=(g-M)*T,e[10]=(1-(f+x))*T,e[11]=0,e[12]=s[0],e[13]=s[1],e[14]=s[2],e[15]=1,e}function Ei(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,_=a*l,y=a*f,S=n[0],T=n[1],v=n[2],O=r[0],A=r[1],w=r[2],b=(1-(g+M))*S,I=(p+y)*S,z=(x-_)*S,P=(p-y)*T,X=(1-(m+M))*T,pt=(u+E)*T,dt=(x+_)*v,Ae=(u-E)*v,Bt=(1-(m+g))*v;return e[0]=b,e[1]=I,e[2]=z,e[3]=0,e[4]=P,e[5]=X,e[6]=pt,e[7]=0,e[8]=dt,e[9]=Ae,e[10]=Bt,e[11]=0,e[12]=s[0]+O-(b*O+P*A+dt*w),e[13]=s[1]+A-(I*O+X*A+Ae*w),e[14]=s[2]+w-(z*O+pt*A+Bt*w),e[15]=1,e}function He(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 $e(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 Qs(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 Je=Qs;function wi(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 Ri(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 Ks(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 ts=Ks;function Oi(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 es(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],_=n[2],y=s[0],S=s[1],T=s[2];return Math.abs(x-y)<1e-6&&Math.abs(g-S)<1e-6&&Math.abs(u-T)<1e-6?Zs(e):(f=x-y,m=g-S,p=u-T,r=1/Math.sqrt(f*f+m*m+p*p),f*=r,m*=r,p*=r,i=E*p-_*m,o=_*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 Ai(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 Pi(e){return"mat4(".concat(e[0],", ").concat(e[1],", ").concat(e[2],", ").concat(e[3],", ").concat(e[4],", ").concat(e[5],", ").concat(e[6],", ").concat(e[7],", ").concat(e[8],", ").concat(e[9],", ").concat(e[10],", ").concat(e[11],", ").concat(e[12],", ").concat(e[13],", ").concat(e[14],", ").concat(e[15],")")}function Ci(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 vi(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 Hs(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 Ni(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 Li(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 qi(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 bi(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],_=t[1],y=t[2],S=t[3],T=t[4],v=t[5],O=t[6],A=t[7],w=t[8],b=t[9],I=t[10],z=t[11],P=t[12],X=t[13],pt=t[14],dt=t[15];return Math.abs(s-E)<=1e-6*Math.max(1,Math.abs(s),Math.abs(E))&&Math.abs(n-_)<=1e-6*Math.max(1,Math.abs(n),Math.abs(_))&&Math.abs(r-y)<=1e-6*Math.max(1,Math.abs(r),Math.abs(y))&&Math.abs(i-S)<=1e-6*Math.max(1,Math.abs(i),Math.abs(S))&&Math.abs(o-T)<=1e-6*Math.max(1,Math.abs(o),Math.abs(T))&&Math.abs(c-v)<=1e-6*Math.max(1,Math.abs(c),Math.abs(v))&&Math.abs(a-O)<=1e-6*Math.max(1,Math.abs(a),Math.abs(O))&&Math.abs(h-A)<=1e-6*Math.max(1,Math.abs(h),Math.abs(A))&&Math.abs(l-w)<=1e-6*Math.max(1,Math.abs(l),Math.abs(w))&&Math.abs(f-b)<=1e-6*Math.max(1,Math.abs(f),Math.abs(b))&&Math.abs(m-I)<=1e-6*Math.max(1,Math.abs(m),Math.abs(I))&&Math.abs(p-z)<=1e-6*Math.max(1,Math.abs(p),Math.abs(z))&&Math.abs(x-P)<=1e-6*Math.max(1,Math.abs(x),Math.abs(P))&&Math.abs(g-X)<=1e-6*Math.max(1,Math.abs(g),Math.abs(X))&&Math.abs(u-pt)<=1e-6*Math.max(1,Math.abs(u),Math.abs(pt))&&Math.abs(M-dt)<=1e-6*Math.max(1,Math.abs(M),Math.abs(dt))}var Ii=It,zi=Hs;function Vi(){let e=new D(4);return D!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),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}function Js(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 tn(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 en(e){let t=e[0],s=e[1],n=e[2],r=e[3];return t*t+s*s+n*n+r*r}function sn(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 nn(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function rn(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 on(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 cn(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 Hc=function(){let e=Vi();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 rs;(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"})(rs||(rs={}));var Ui=45*Math.PI/180,Fi=1,ss=.1,ns=500,ki=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),L=class extends wt{static get IDENTITY(){return Bi()}static get ZERO(){return Wi()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return rs}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(ki)}fromObject(t){return this.check()}fromQuaternion(t){return He(this,t),this.check()}frustum(t){let{left:s,right:n,bottom:r,top:i,near:o=ss,far:c=ns}=t;return c===1/0?Yi(this,s,n,r,i,o):$e(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 es(this,s,n,r),this.check()}ortho(t){let{left:s,right:n,bottom:r,top:i,near:o=ss,far:c=ns}=t;return ts(this,s,n,r,i,o,c),this.check()}orthographic(t){let{fovy:s=Ui,aspect:n=Fi,focalDistance:r=1,near:i=ss,far:o=ns}=t;an(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 an(s),Je(this,s,n,r,i),this.check()}determinant(){return Ye(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 We(this,this),this.check()}invert(){return Be(this,this),this.check()}multiplyLeft(t){return It(this,t,this),this.check()}multiplyRight(t){return It(this,this,t),this.check()}rotateX(t){return Xe(this,this,t),this.check()}rotateY(t){return Qe(this,this,t),this.check()}rotateZ(t){return Ke(this,this,t),this.check()}rotateXYZ(t){return this.rotateX(t[0]).rotateY(t[1]).rotateZ(t[2])}rotateAxis(t,s){return je(this,this,t,s),this.check()}scale(t){return Ze(this,this,Array.isArray(t)?t:[t,t,t]),this.check()}translate(t){return Ge(this,this,t),this.check()}transform(t,s){return t.length===4?(s=on(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=Ps(s||[-0,-0],t,this);break;case 3:r=xt(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=Cs(s||[-0,-0],t,this);break;case 3:n=Xt(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])}},ne,re;function Wi(){return ne||(ne=new L([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(ne)),ne}function Bi(){return re||(re=new L,Object.freeze(re)),re}function an(e){if(e>Math.PI*2)throw Error("expected radians")}function Yi(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 hn(){let e=new D(4);return D!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function ln(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function is(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 os(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 fn(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 mn(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 pn(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 dn(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 zt(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 un(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 xn(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function cs(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 gn=$s;var Mn=Js,yn=nn,_n=rn,Tn=tn;var Sn=en;var En=sn;var wn=function(){let e=Kt(),t=Ht(1,0,0),s=Ht(0,1,0);return function(n,r,i){let o=Lt(r,i);return o<-.999999?(ut(e,t,r),Ve(e)<1e-6&&ut(e,s,r),Le(e,e),is(n,e,Math.PI),n):o>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(ut(e,r,i),n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=1+o,En(n,n))}}(),fa=function(){let e=hn(),t=hn();return function(s,n,r,i,o,c){return zt(e,n,o,c),zt(t,r,i,c),zt(s,e,t,2*c*(1-c)),s}}(),ma=function(){let e=Us();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],En(t,cs(t,e))}}();var Gi=[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 cs(this,t),this.check()}fromAxisRotation(t,s){return is(this,t,s),this.check()}identity(){return ln(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]=N(t)}get y(){return this[1]}set y(t){this[1]=N(t)}get z(){return this[2]}set z(t){this[2]=N(t)}get w(){return this[3]}set w(t){this[3]=N(t)}len(){return Tn(this)}lengthSquared(){return Sn(this)}dot(t){return yn(this,t)}rotationTo(t,s){return wn(this,t,s),this.check()}add(t){return gn(this,this,t),this.check()}calculateW(){return dn(this,this),this.check()}conjugate(){return xn(this,this),this.check()}invert(){return un(this,this),this.check()}lerp(t,s,n){return n===void 0?this.lerp(this,t,s):(_n(this,t,s,n),this.check())}multiplyRight(t){return os(this,this,t),this.check()}multiplyLeft(t){return os(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 fn(this,this,t),this.check()}rotateY(t){return mn(this,this,t),this.check()}rotateZ(t){return pn(this,this,t),this.check()}scale(t){return Mn(this,this,t),this.check()}slerp(t,s,n){let r,i,o;switch(arguments.length){case 1:({start:r=Gi,target:i,ratio:o}=t);break;case 2:r=this,i=t,o=s;break;default:r=t,i=s,o=n}return zt(this,r,i,o),this.check()}transformVector4(t,s=new Et){return cn(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)}};function ht(e){return ht=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ht(e)}function as(e,t){if(ht(e)!=="object"||e===null)return e;var s=e[Symbol.toPrimitive];if(s!==void 0){var n=s.call(e,t||"default");if(ht(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function hs(e){var t=as(e,"string");return ht(t)==="symbol"?t:String(t)}function R(e,t,s){return t=hs(t),t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}var lt={};vt(lt,{EPSILON1:()=>Zi,EPSILON10:()=>eo,EPSILON11:()=>so,EPSILON12:()=>no,EPSILON13:()=>ro,EPSILON14:()=>io,EPSILON15:()=>oo,EPSILON16:()=>co,EPSILON17:()=>ao,EPSILON18:()=>ho,EPSILON19:()=>lo,EPSILON2:()=>ji,EPSILON20:()=>fo,EPSILON3:()=>Xi,EPSILON4:()=>Qi,EPSILON5:()=>Ki,EPSILON6:()=>Hi,EPSILON7:()=>$i,EPSILON8:()=>Ji,EPSILON9:()=>to,PI_OVER_FOUR:()=>po,PI_OVER_SIX:()=>uo,PI_OVER_TWO:()=>mo,TWO_PI:()=>xo});var Zi=.1,ji=.01,Xi=.001,Qi=1e-4,Ki=1e-5,Hi=1e-6,$i=1e-7,Ji=1e-8,to=1e-9,eo=1e-10,so=1e-11,no=1e-12,ro=1e-13,io=1e-14,oo=1e-15,co=1e-16,ao=1e-17,ho=1e-18,lo=1e-19,fo=1e-20,mo=Math.PI/2,po=Math.PI/4,uo=Math.PI/6,xo=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 ie(e){return e}var Qa=new d;function yo(e,t=[],s=ie){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 Rn(e,t=[]){return yo(e,t,V._cartographicRadians?ie:ve)}function _o(e,t,s=ie){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 On(e,t){return _o(e,t,V._cartographicRadians?ie:Ne)}var An=1e-14,To=new d,Pn={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"}},ls={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},Vt={east:new d,north:new d,up:new d,west:new d,south:new d,down:new d},So=new d,Eo=new d,wo=new d;function fs(e,t,s,n,r,i){let o=Pn[t]&&Pn[t][s];F(o&&(!n||n===o));let c,a,h,l=To.copy(r);if(K(l.x,0,An)&&K(l.y,0,An)){let m=Math.sign(l.z);c=So.fromArray(ls[t]),t!=="east"&&t!=="west"&&c.scale(m),a=Eo.fromArray(ls[s]),s!=="east"&&s!=="west"&&a.scale(m),h=wo.fromArray(ls[n]),n!=="east"&&n!=="west"&&h.scale(m)}else{let{up:m,east:p,north:x}=Vt;p.set(-l.y,l.x,0).normalize(),e.geodeticSurfaceNormal(l,m),x.copy(m).cross(p);let{down:g,west:u,south:M}=Vt;g.copy(m).scale(-1),u.copy(p).scale(-1),M.copy(x).scale(-1),c=Vt[t],a=Vt[s],h=Vt[n]}return i[0]=c.x,i[1]=c.y,i[2]=c.z,i[3]=0,i[4]=a.x,i[5]=a.y,i[6]=a.z,i[7]=0,i[8]=h.x,i[9]=h.y,i[10]=h.z,i[11]=0,i[12]=l.x,i[13]=l.y,i[14]=l.z,i[15]=1,i}var Rt=new d,Ro=new d,Oo=new d;function Cn(e,t,s=[]){let{oneOverRadii:n,oneOverRadiiSquared:r,centerToleranceSquared:i}=t;Rt.from(e);let o=Rt.x,c=Rt.y,a=Rt.z,h=n.x,l=n.y,f=n.z,m=o*o*h*h,p=c*c*l*l,x=a*a*f*f,g=m+p+x,u=Math.sqrt(1/g);if(!Number.isFinite(u))return;let M=Ro;if(M.copy(e).scale(u),g<i)return M.to(s);let E=r.x,_=r.y,y=r.z,S=Oo;S.set(M.x*E*2,M.y*_*2,M.z*y*2);let T=(1-u)*Rt.len()/(.5*S.len()),v=0,O,A,w,b;do{T-=v,O=1/(1+T*E),A=1/(1+T*_),w=1/(1+T*y);let I=O*O,z=A*A,P=w*w,X=I*O,pt=z*A,dt=P*w;b=m*I+p*z+x*P-1;let Bt=-2*(m*X*E+p*pt*_+x*dt*y);v=b/Bt}while(Math.abs(b)>lt.EPSILON12);return Rt.scale([O,A,w]).to(s)}var oe=new d,vn=new d,Co=new d,J=new d,vo=new d,ce=new d,C=class{constructor(t=0,s=0,n=0){R(this,"radii",void 0),R(this,"radiiSquared",void 0),R(this,"radiiToTheFourth",void 0),R(this,"oneOverRadii",void 0),R(this,"oneOverRadiiSquared",void 0),R(this,"minimumRadius",void 0),R(this,"maximumRadius",void 0),R(this,"centerToleranceSquared",lt.EPSILON1),R(this,"squaredXOverSquaredZ",void 0),F(t>=0),F(s>=0),F(n>=0),this.radii=new d(t,s,n),this.radiiSquared=new d(t*t,s*s,n*n),this.radiiToTheFourth=new d(t*t*t*t,s*s*s*s,n*n*n*n),this.oneOverRadii=new d(t===0?0:1/t,s===0?0:1/s,n===0?0:1/n),this.oneOverRadiiSquared=new d(t===0?0:1/(t*t),s===0?0:1/(s*s),n===0?0:1/(n*n)),this.minimumRadius=Math.min(t,s,n),this.maximumRadius=Math.max(t,s,n),this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}equals(t){return this===t||Boolean(t&&this.radii.equals(t.radii))}toString(){return this.radii.toString()}cartographicToCartesian(t,s=[0,0,0]){let n=vn,r=Co,[,,i]=t;this.geodeticSurfaceNormalCartographic(t,n),r.copy(this.radiiSquared).scale(n);let o=Math.sqrt(n.dot(r));return r.scale(1/o),n.scale(i),r.add(n),r.to(s)}cartesianToCartographic(t,s=[0,0,0]){ce.from(t);let n=this.scaleToGeodeticSurface(ce,J);if(!n)return;let r=this.geodeticSurfaceNormal(n,vn),i=vo;i.copy(ce).subtract(n);let o=Math.atan2(r.y,r.x),c=Math.asin(r.z),a=Math.sign(St.dot(i,ce))*St.length(i);return On([o,c,a],s)}eastNorthUpToFixedFrame(t,s=new L){return fs(this,"east","north","up",t,s)}localFrameToFixedFrame(t,s,n,r,i=new L){return fs(this,t,s,n,r,i)}geocentricSurfaceNormal(t,s=[0,0,0]){return oe.from(t).normalize().to(s)}geodeticSurfaceNormalCartographic(t,s=[0,0,0]){let n=Rn(t),r=n[0],i=n[1],o=Math.cos(i);return oe.set(o*Math.cos(r),o*Math.sin(r),Math.sin(i)).normalize(),oe.to(s)}geodeticSurfaceNormal(t,s=[0,0,0]){return oe.from(t).scale(this.oneOverRadiiSquared).normalize().to(s)}scaleToGeodeticSurface(t,s){return Cn(t,this,s)}scaleToGeocentricSurface(t,s=[0,0,0]){J.from(t);let n=J.x,r=J.y,i=J.z,o=this.oneOverRadiiSquared,c=1/Math.sqrt(n*n*o.x+r*r*o.y+i*i*o.z);return J.multiplyScalar(c).to(s)}transformPositionToScaledSpace(t,s=[0,0,0]){return J.from(t).scale(this.oneOverRadii).to(s)}transformPositionFromScaledSpace(t,s=[0,0,0]){return J.from(t).scale(this.radii).to(s)}getSurfaceNormalIntersectionWithZAxis(t,s=0,n=[0,0,0]){F(K(this.radii.x,this.radii.y,lt.EPSILON15)),F(this.radii.z>0),J.from(t);let r=J.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(r)>=this.radii.z-s))return J.set(0,0,r).to(n)}};R(C,"WGS84",new C(6378137,6378137,nt));function Dt(){let e;if(typeof window<"u"&&window.performance)e=window.performance.now();else if(typeof process<"u"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var gt=class{constructor(t,s){R(this,"name",void 0),R(this,"type",void 0),R(this,"sampleSize",1),R(this,"time",0),R(this,"count",0),R(this,"samples",0),R(this,"lastTiming",0),R(this,"lastSampleTime",0),R(this,"lastSampleCount",0),R(this,"_count",0),R(this,"_time",0),R(this,"_samples",0),R(this,"_startTime",0),R(this,"_timerPending",!1),this.name=t,this.type=s,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=Dt(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(Dt()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var ft=class{constructor(t){R(this,"id",void 0),R(this,"stats",{}),this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:t,type:s})}get size(){return Object.keys(this.stats).length}reset(){for(let t of Object.values(this.stats))t.reset();return this}forEach(t){for(let s of Object.values(this.stats))t(s)}getTable(){let t={};return this.forEach(s=>{t[s.name]={time:s.time||0,count:s.count||0,average:s.getAverageTime()||0,hz:s.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(s=>this._getOrCreate(s))}_getOrCreate(t){let{name:s,type:n}=t,r=this.stats[s];return r||(t instanceof gt?r=t:r=new gt(s,n),this.stats[s]=r),r}};function tt(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var No="Queued Requests",Lo="Active Requests",qo="Cancelled Requests",bo="Queued Requests Ever",Io="Active Requests Ever",zo={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},Ot=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(t={}){this.props={...zo,...t},this.stats=new ft({id:this.props.id}),this.stats.get(No),this.stats.get(Lo),this.stats.get(qo),this.stats.get(bo),this.stats.get(Io)}scheduleRequest(t,s=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(t))return this.requestMap.get(t);let n={handle:t,priority:0,getPriority:s},r=new Promise(i=>(n.resolve=i,n));return this.requestQueue.push(n),this.requestMap.set(t,r),this._issueNewRequests(),r}_issueRequest(t){let{handle:s,resolve:n}=t,r=!1,i=()=>{r||(r=!0,this.requestMap.delete(s),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,n?n({done:i}):Promise.resolve({done:i})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;let t=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(t!==0){this._updateAllRequests();for(let s=0;s<t;++s){let n=this.requestQueue.shift();n&&this._issueRequest(n)}}}_updateAllRequests(){let t=this.requestQueue;for(let s=0;s<t.length;++s){let n=t[s];this._updateRequest(n)||(t.splice(s,1),this.requestMap.delete(n.handle),s--)}t.sort((s,n)=>s.priority-n.priority)}_updateRequest(t){return t.priority=t.getPriority(t.handle),t.priority<0?(t.resolve(null),!1):!0}};var ae={};vt(ae,{dirname:()=>Do,filename:()=>Vo,join:()=>Uo,resolve:()=>Fo});function Nn(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let e=window.location?.pathname;return e?.slice(0,e.lastIndexOf("/")+1)||""}function Vo(e){let t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(t+1):""}function Do(e){let t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(0,t):""}function Uo(...e){let t="/";return e=e.map((s,n)=>(n&&(s=s.replace(new RegExp(`^${t}`),"")),n!==e.length-1&&(s=s.replace(new RegExp(`${t}$`),"")),s)),e.join(t)}function Fo(...e){let t=[];for(let i=0;i<e.length;i++)t[i]=e[i];let s="",n=!1,r;for(let i=t.length-1;i>=-1&&!n;i--){let o;i>=0?o=t[i]:(r===void 0&&(r=Nn()),o=r),o.length!==0&&(s=`${o}/${s}`,n=o.charCodeAt(0)===Ut)}return s=ko(s,!n),n?`/${s}`:s.length>0?s:"."}var Ut=47,ms=46;function ko(e,t){let s="",n=-1,r=0,i,o=!1;for(let c=0;c<=e.length;++c){if(c<e.length)i=e.charCodeAt(c);else{if(i===Ut)break;i=Ut}if(i===Ut){if(!(n===c-1||r===1))if(n!==c-1&&r===2){if(s.length<2||!o||s.charCodeAt(s.length-1)!==ms||s.charCodeAt(s.length-2)!==ms){if(s.length>2){let a=s.length-1,h=a;for(;h>=0&&s.charCodeAt(h)!==Ut;--h);if(h!==a){s=h===-1?"":s.slice(0,h),n=c,r=0,o=!1;continue}}else if(s.length===2||s.length===1){s="",n=c,r=0,o=!1;continue}}t&&(s.length>0?s+="/..":s="..",o=!0)}else{let a=e.slice(n+1,c);s.length>0?s+=`/${a}`:s=a,o=!1}n=c,r=0}else i===ms&&r!==-1?++r:r=-1}return s}var he=class{item;previous;next;constructor(t,s,n){this.item=t,this.previous=s,this.next=n}};var le=class{head=null;tail=null;_length=0;get length(){return this._length}add(t){let s=new he(t,this.tail,null);return this.tail?(this.tail.next=s,this.tail=s):(this.head=s,this.tail=s),++this._length,s}remove(t){t&&(t.previous&&t.next?(t.previous.next=t.next,t.next.previous=t.previous):t.previous?(t.previous.next=null,this.tail=t.previous):t.next?(t.next.previous=null,this.head=t.next):(this.head=null,this.tail=null),t.next=null,t.previous=null,--this._length)}splice(t,s){t!==s&&(this.remove(s),this._insert(t,s))}_insert(t,s){let n=t.next;t.next=s,this.tail===t?this.tail=s:n.previous=s,s.next=n,s.previous=t,++this._length}};var At=class{_list;_sentinel;_trimTiles;constructor(){this._list=new le,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch(t){let s=t._cacheNode;s&&this._list.splice(this._sentinel,s)}add(t,s,n){s._cacheNode||(s._cacheNode=this._list.add(s),n&&n(t,s))}unloadTile(t,s,n){let r=s._cacheNode;r&&(this._list.remove(r),s._cacheNode=null,n&&n(t,s))}unloadTiles(t,s){let n=this._trimTiles;this._trimTiles=!1;let r=this._list,i=t.maximumMemoryUsage*1024*1024,o=this._sentinel,c=r.head;for(;c!==o&&(t.gpuMemoryUsageInBytes>i||n);){let a=c.item;c=c.next,this.unloadTile(t,a,s)}}trim(){this._trimTiles=!0}};function fe(e,t){tt(e),tt(t);let{rtcCenter:s,gltfUpAxis:n}=t,{computedTransform:r,boundingVolume:{center:i}}=e,o=new L(r);switch(s&&o.translate(s),n){case"Z":break;case"Y":let f=new L().rotateX(Math.PI/2);o=o.multiplyRight(f);break;case"X":let m=new L().rotateY(-Math.PI/2);o=o.multiplyRight(m);break;default:break}t.isQuantized&&o.translate(t.quantizedVolumeOffset).scale(t.quantizedVolumeScale);let c=new d(i);t.cartesianModelMatrix=o,t.cartesianOrigin=c;let a=C.WGS84.cartesianToCartographic(c,new d),l=C.WGS84.eastNorthUpToFixedFrame(c).invert();t.cartographicModelMatrix=l.multiplyRight(o),t.cartographicOrigin=a,t.coordinateSystem||(t.modelMatrix=t.cartographicModelMatrix)}var k={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var Yh=new d,Gh=new d;var Ft=new d,Ln=new d,H=class{constructor(t=[0,0,0],s=0){R(this,"center",void 0),R(this,"radius",void 0),this.radius=-0,this.center=new d,this.fromCenterRadius(t,s)}fromCenterRadius(t,s){return this.center.from(t),this.radius=s,this}fromCornerPoints(t,s){return s=Ft.from(s),this.center=new d().from(t).add(s).scale(.5),this.radius=this.center.distance(s),this}equals(t){return this===t||Boolean(t)&&this.center.equals(t.center)&&this.radius===t.radius}clone(){return new H(this.center,this.radius)}union(t){let s=this.center,n=this.radius,r=t.center,i=t.radius,o=Ft.copy(r).subtract(s),c=o.magnitude();if(n>=c+i)return this.clone();if(i>=c+n)return t.clone();let a=(n+c+i)*.5;return Ln.copy(o).scale((-n+a)/c).add(s),this.center.copy(Ln),this.radius=a,this}expand(t){let n=Ft.from(t).subtract(this.center).magnitude();return n>this.radius&&(this.radius=n),this}transform(t){this.center.transform(t);let s=se.getScaling(Ft,t);return this.radius=Math.max(s[0],Math.max(s[1],s[2]))*this.radius,this}distanceSquaredTo(t){let s=this.distanceTo(t);return s*s}distanceTo(t){let n=Ft.from(t).subtract(this.center);return Math.max(0,n.len()-this.radius)}intersectPlane(t){let s=this.center,n=this.radius,i=t.normal.dot(s)+t.distance;return i<-n?k.OUTSIDE:i<n?k.INTERSECTING:k.INSIDE}};var Wo=new d,Bo=new d,me=new d,pe=new d,de=new d,Yo=new d,Go=new d,rt={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},st=class{constructor(t=[0,0,0],s=[0,0,0,0,0,0,0,0,0]){R(this,"center",void 0),R(this,"halfAxes",void 0),this.center=new d().from(t),this.halfAxes=new U(s)}get halfSize(){let t=this.halfAxes.getColumn(0),s=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2);return[new d(t).len(),new d(s).len(),new d(n).len()]}get quaternion(){let t=this.halfAxes.getColumn(0),s=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2),r=new d(t).normalize(),i=new d(s).normalize(),o=new d(n).normalize();return new at().fromMatrix3(new U([...r,...i,...o]))}fromCenterHalfSizeQuaternion(t,s,n){let r=new at(n),i=new U().fromQuaternion(r);return i[0]=i[0]*s[0],i[1]=i[1]*s[0],i[2]=i[2]*s[0],i[3]=i[3]*s[1],i[4]=i[4]*s[1],i[5]=i[5]*s[1],i[6]=i[6]*s[2],i[7]=i[7]*s[2],i[8]=i[8]*s[2],this.center=new d().from(t),this.halfAxes=i,this}clone(){return new st(this.center,this.halfAxes)}equals(t){return this===t||Boolean(t)&&this.center.equals(t.center)&&this.halfAxes.equals(t.halfAxes)}getBoundingSphere(t=new H){let s=this.halfAxes,n=s.getColumn(0,me),r=s.getColumn(1,pe),i=s.getColumn(2,de),o=Wo.copy(n).add(r).add(i);return t.center.copy(this.center),t.radius=o.magnitude(),t}intersectPlane(t){let s=this.center,n=t.normal,r=this.halfAxes,i=n.x,o=n.y,c=n.z,a=Math.abs(i*r[rt.COLUMN0ROW0]+o*r[rt.COLUMN0ROW1]+c*r[rt.COLUMN0ROW2])+Math.abs(i*r[rt.COLUMN1ROW0]+o*r[rt.COLUMN1ROW1]+c*r[rt.COLUMN1ROW2])+Math.abs(i*r[rt.COLUMN2ROW0]+o*r[rt.COLUMN2ROW1]+c*r[rt.COLUMN2ROW2]),h=n.dot(s)+t.distance;return h<=-a?k.OUTSIDE:h>=a?k.INSIDE:k.INTERSECTING}distanceTo(t){return Math.sqrt(this.distanceSquaredTo(t))}distanceSquaredTo(t){let s=Bo.from(t).subtract(this.center),n=this.halfAxes,r=n.getColumn(0,me),i=n.getColumn(1,pe),o=n.getColumn(2,de),c=r.magnitude(),a=i.magnitude(),h=o.magnitude();r.normalize(),i.normalize(),o.normalize();let l=0,f;return f=Math.abs(s.dot(r))-c,f>0&&(l+=f*f),f=Math.abs(s.dot(i))-a,f>0&&(l+=f*f),f=Math.abs(s.dot(o))-h,f>0&&(l+=f*f),l}computePlaneDistances(t,s,n=[-0,-0]){let r=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY,o=this.center,c=this.halfAxes,a=c.getColumn(0,me),h=c.getColumn(1,pe),l=c.getColumn(2,de),f=Yo.copy(a).add(h).add(l).add(o),m=Go.copy(f).subtract(t),p=s.dot(m);return r=Math.min(p,r),i=Math.max(p,i),f.copy(o).add(a).add(h).subtract(l),m.copy(f).subtract(t),p=s.dot(m),r=Math.min(p,r),i=Math.max(p,i),f.copy(o).add(a).subtract(h).add(l),m.copy(f).subtract(t),p=s.dot(m),r=Math.min(p,r),i=Math.max(p,i),f.copy(o).add(a).subtract(h).subtract(l),m.copy(f).subtract(t),p=s.dot(m),r=Math.min(p,r),i=Math.max(p,i),o.copy(f).subtract(a).add(h).add(l),m.copy(f).subtract(t),p=s.dot(m),r=Math.min(p,r),i=Math.max(p,i),o.copy(f).subtract(a).add(h).subtract(l),m.copy(f).subtract(t),p=s.dot(m),r=Math.min(p,r),i=Math.max(p,i),o.copy(f).subtract(a).subtract(h).add(l),m.copy(f).subtract(t),p=s.dot(m),r=Math.min(p,r),i=Math.max(p,i),o.copy(f).subtract(a).subtract(h).subtract(l),m.copy(f).subtract(t),p=s.dot(m),r=Math.min(p,r),i=Math.max(p,i),n[0]=r,n[1]=i,n}transform(t){this.center.transformAsPoint(t);let s=this.halfAxes.getColumn(0,me);s.transformAsPoint(t);let n=this.halfAxes.getColumn(1,pe);n.transformAsPoint(t);let r=this.halfAxes.getColumn(2,de);return r.transformAsPoint(t),this.halfAxes=new U([...s,...n,...r]),this}getTransform(){throw new Error("not implemented")}};var qn=new d,bn=new d,Y=class{constructor(t=[0,0,1],s=0){R(this,"normal",void 0),R(this,"distance",void 0),this.normal=new d,this.distance=-0,this.fromNormalDistance(t,s)}fromNormalDistance(t,s){return F(Number.isFinite(s)),this.normal.from(t).normalize(),this.distance=s,this}fromPointNormal(t,s){t=qn.from(t),this.normal.from(s).normalize();let n=-this.normal.dot(t);return this.distance=n,this}fromCoefficients(t,s,n,r){return this.normal.set(t,s,n),F(K(this.normal.len(),1)),this.distance=r,this}clone(){return new Y(this.normal,this.distance)}equals(t){return K(this.distance,t.distance)&&K(this.normal,t.normal)}getPointDistance(t){return this.normal.dot(t)+this.distance}transform(t){let s=bn.copy(this.normal).transformAsVector(t).normalize(),n=this.normal.scale(-this.distance).transform(t);return this.fromPointNormal(n,s)}projectPointOntoPlane(t,s=[0,0,0]){let n=qn.from(t),r=this.getPointDistance(n),i=bn.copy(this.normal).scale(r);return n.subtract(i).to(s)}};var In=[new d([1,0,0]),new d([0,1,0]),new d([0,0,1])],zn=new d,Zo=new d,W=class{constructor(t=[]){R(this,"planes",void 0),this.planes=t}fromBoundingSphere(t){this.planes.length=2*In.length;let s=t.center,n=t.radius,r=0;for(let i of In){let o=this.planes[r],c=this.planes[r+1];o||(o=this.planes[r]=new Y),c||(c=this.planes[r+1]=new Y);let a=zn.copy(i).scale(-n).add(s);o.fromPointNormal(a,i);let h=zn.copy(i).scale(n).add(s),l=Zo.copy(i).negate();c.fromPointNormal(h,l),r+=2}return this}computeVisibility(t){let s=k.INSIDE;for(let n of this.planes)switch(t.intersectPlane(n)){case k.OUTSIDE:return k.OUTSIDE;case k.INTERSECTING:s=k.INTERSECTING;break;default:}return s}computeVisibilityWithPlaneMask(t,s){if(F(Number.isFinite(s),"parentPlaneMask is required."),s===W.MASK_OUTSIDE||s===W.MASK_INSIDE)return s;let n=W.MASK_INSIDE,r=this.planes;for(let i=0;i<this.planes.length;++i){let o=i<31?1<<i:0;if(i<31&&!(s&o))continue;let c=r[i],a=t.intersectPlane(c);if(a===k.OUTSIDE)return W.MASK_OUTSIDE;a===k.INTERSECTING&&(n|=o)}return n}};R(W,"MASK_OUTSIDE",4294967295);R(W,"MASK_INSIDE",0);R(W,"MASK_INDETERMINATE",2147483647);var dl=new d,ul=new d,xl=new d,gl=new d,Ml=new d;var Rl=new d,Ol=new d,Al=new d,Pl=new d,Cl=new d,vl=new d,Nl=new d,Ll=new d,ql=new d,bl=new d,Il=new d,zl=new d;var Ul=new U,Fl=new U,kl=new U,Wl=new U,Bl=new U;var Ql=new d,Kl=new d,Hl=new d,$l=new d,Jl=new d,t0=new U,e0={diagonal:new U,unitary:new U};var Vn=new d,ps=new d,ds=new W([new Y,new Y,new Y,new Y,new Y,new Y]);function xe(e,t){let{cameraDirection:s,cameraUp:n,height:r}=e,{metersPerUnit:i}=e.distanceScales,o=ue(e,e.center),c=C.WGS84.eastNorthUpToFixedFrame(o),a=e.unprojectPosition(e.cameraPosition),h=C.WGS84.cartographicToCartesian(a,new d),l=new d(c.transformAsVector(new d(s).scale(i))).normalize(),f=new d(c.transformAsVector(new d(n).scale(i))).normalize();Ko(e);let m=e.constructor,{longitude:p,latitude:x,width:g,bearing:u,zoom:M}=e,E=new m({longitude:p,latitude:x,height:r,width:g,bearing:u,zoom:M,pitch:0});return{camera:{position:h,direction:l,up:f},viewport:e,topDownViewport:E,height:r,cullingVolume:ds,frameNumber:t,sseDenominator:1.15}}function Un(e,t,s){if(s===0||e.length<=s)return[e,[]];let n=[],{longitude:r,latitude:i}=t.viewport;for(let[h,l]of e.entries()){let[f,m]=l.header.mbs,p=Math.abs(r-f),x=Math.abs(i-m),g=Math.sqrt(x*x+p*p);n.push([h,g])}let o=n.sort((h,l)=>h[1]-l[1]),c=[];for(let h=0;h<s;h++)c.push(e[o[h][0]]);let a=[];for(let h=s;h<o.length;h++)a.push(e[o[h][0]]);return[c,a]}function Ko(e){let t=e.getFrustumPlanes(),s=Dn(t.near,e.cameraPosition),n=ue(e,s),r=ue(e,e.cameraPosition,ps),i=0;ds.planes[i++].fromPointNormal(n,Vn.copy(n).subtract(r));for(let o in t){if(o==="near")continue;let c=t[o],a=Dn(c,s,ps),h=ue(e,a,ps);ds.planes[i++].fromPointNormal(h,Vn.copy(n).subtract(h))}}function Dn(e,t,s=new d){let n=e.normal.dot(t);return s.copy(e.normal).scale(e.distance-n).add(t),s}function ue(e,t,s=new d){let n=e.unprojectPosition(t);return C.WGS84.cartographicToCartesian(n,s)}var Ho=6378137,$o=6378137,us=6356752314245179e-9,Pt=new d;function Fn(e,t){if(e instanceof st){let{halfAxes:s}=e,n=Jo(s);return Math.log2(us/(n+t[2]))}else if(e instanceof H){let{radius:s}=e;return Math.log2(us/(s+t[2]))}else if(e.width&&e.height){let{width:s,height:n}=e,r=Math.log2(Ho/s),i=Math.log2($o/n);return(r+i)/2}return 1}function xs(e,t,s){C.WGS84.cartographicToCartesian([e.xmax,e.ymax,e.zmax],Pt);let n=Math.sqrt(Math.pow(Pt[0]-s[0],2)+Math.pow(Pt[1]-s[1],2)+Math.pow(Pt[2]-s[2],2));return Math.log2(us/(n+t[2]))}function kn(e,t,s){let[n,r,i,o]=e;return xs({xmin:n,xmax:i,ymin:r,ymax:o,zmin:0,zmax:0},t,s)}function Jo(e){e.getColumn(0,Pt);let t=e.getColumn(1),s=e.getColumn(2);return Pt.add(t).add(s).len()}var nr=Pe(jt(),1);var G={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},j;(function(e){e[e.ADD=1]="ADD",e[e.REPLACE=2]="REPLACE"})(j||(j={}));var ge;(function(e){e.EMPTY="empty",e.SCENEGRAPH="scenegraph",e.POINTCLOUD="pointcloud",e.MESH="mesh"})(ge||(ge={}));var B;(function(e){e.I3S="I3S",e.TILES3D="TILES3D"})(B||(B={}));var Me;(function(e){e.GEOMETRIC_ERROR="geometricError",e.MAX_SCREEN_THRESHOLD="maxScreenThreshold"})(Me||(Me={}));var Wn={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0};function Zn(e){return e!=null}var Z=new d,ye=new d,tc=new d,ec=new d,Mt=new d,Bn=new d,Yn=new d,Gn=new d;function Ct(e,t,s){if(tt(e,"3D Tile: boundingVolume must be defined"),e.box)return Xn(e.box,t,s);if(e.region)return nc(e.region);if(e.sphere)return sc(e.sphere,t,s);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function jn(e,t){if(e.box)return rc(t);if(e.region){let[s,n,r,i,o,c]=e.region;return[[Q(s),Q(n),o],[Q(r),Q(i),c]]}if(e.sphere)return ic(t);throw new Error("Unkown boundingVolume type")}function Xn(e,t,s){let n=new d(e[0],e[1],e[2]);t.transform(n,n);let r=[];if(e.length===10){let h=e.slice(3,6),l=new at;l.fromArray(e,6);let f=new d([1,0,0]),m=new d([0,1,0]),p=new d([0,0,1]);f.transformByQuaternion(l),f.scale(h[0]),m.transformByQuaternion(l),m.scale(h[1]),p.transformByQuaternion(l),p.scale(h[2]),r=[...f.toArray(),...m.toArray(),...p.toArray()]}else r=[...e.slice(3,6),...e.slice(6,9),...e.slice(9,12)];let i=t.transformAsVector(r.slice(0,3)),o=t.transformAsVector(r.slice(3,6)),c=t.transformAsVector(r.slice(6,9)),a=new U([i[0],i[1],i[2],o[0],o[1],o[2],c[0],c[1],c[2]]);return Zn(s)?(s.center=n,s.halfAxes=a,s):new st(n,a)}function sc(e,t,s){let n=new d(e[0],e[1],e[2]);t.transform(n,n);let r=t.getScale(ye),i=Math.max(Math.max(r[0],r[1]),r[2]),o=e[3]*i;return Zn(s)?(s.center=n,s.radius=o,s):new H(n,o)}function nc(e){let[t,s,n,r,i,o]=e,c=C.WGS84.cartographicToCartesian([Q(t),Q(r),i],tc),a=C.WGS84.cartographicToCartesian([Q(n),Q(s),o],ec),h=new d().addVectors(c,a).multiplyByScalar(.5);return C.WGS84.cartesianToCartographic(h,Mt),C.WGS84.cartographicToCartesian([Q(n),Mt[1],Mt[2]],Bn),C.WGS84.cartographicToCartesian([Mt[0],Q(r),Mt[2]],Yn),C.WGS84.cartographicToCartesian([Mt[0],Mt[1],o],Gn),Xn([...h,...Bn.subtract(h),...Yn.subtract(h),...Gn.subtract(h)],new L)}function rc(e){let t=Qn(),{halfAxes:s}=e,n=new d(s.getColumn(0)),r=new d(s.getColumn(1)),i=new d(s.getColumn(2));for(let o=0;o<2;o++){for(let c=0;c<2;c++){for(let a=0;a<2;a++)Z.copy(e.center),Z.add(n),Z.add(r),Z.add(i),Kn(t,Z),i.negate();r.negate()}n.negate()}return t}function ic(e){let t=Qn(),{center:s,radius:n}=e,r=C.WGS84.scaleToGeodeticSurface(s,Z),i;r?i=C.WGS84.geodeticSurfaceNormal(r):i=new d(0,0,1);let o=new d(i[2],-i[1],0);o.len()>0?o.normalize():o=new d(0,1,0);let c=o.clone().cross(i);for(let a of[o,c,i]){ye.copy(a).scale(n);for(let h=0;h<2;h++)Z.copy(s),Z.add(ye),Kn(t,Z),ye.negate()}return t}function Qn(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function Kn(e,t){C.WGS84.cartesianToCartographic(t,Z),e[0][0]=Math.min(e[0][0],Z[0]),e[0][1]=Math.min(e[0][1],Z[1]),e[0][2]=Math.min(e[0][2],Z[2]),e[1][0]=Math.max(e[1][0],Z[0]),e[1][1]=Math.max(e[1][1],Z[1]),e[1][2]=Math.max(e[1][2],Z[2])}var b0=new d,I0=new d,z0=new L,V0=new d,D0=new d,U0=new d;function oc(e,t){let s=e*t;return 1-Math.exp(-(s*s))}function cc(e,t){if(e.dynamicScreenSpaceError&&e.dynamicScreenSpaceErrorComputedDensity){let s=e.dynamicScreenSpaceErrorComputedDensity,n=e.dynamicScreenSpaceErrorFactor;return oc(t,s)*n}return 0}function Hn(e,t,s){let n=e.tileset,r=e.parent&&e.parent.lodMetricValue||e.lodMetricValue,i=s?r:e.lodMetricValue;if(i===0)return 0;let o=Math.max(e._distanceToCamera,1e-7),{height:c,sseDenominator:a}=t,{viewDistanceScale:h}=n.options,l=i*c*(h||1)/(o*a);return l-=cc(n,o),l}var gs=new d,$n=new d,mt=new d,Jn=new d,ac=new d,Ms=new L,tr=new L;function _e(e,t){if(e.lodMetricValue===0||isNaN(e.lodMetricValue))return"DIG";let s=2*ys(e,t);return s<2?"OUT":!e.header.children||s<=e.lodMetricValue?"DRAW":e.header.children?"DIG":"OUT"}function ys(e,t){let{topDownViewport:s}=t,n=e.header.mbs[1],r=e.header.mbs[0],i=e.header.mbs[2],o=e.header.mbs[3],c=[...e.boundingVolume.center],a=s.unprojectPosition(s.cameraPosition);C.WGS84.cartographicToCartesian(a,gs),$n.copy(gs).subtract(c).normalize(),C.WGS84.eastNorthUpToFixedFrame(c,Ms),tr.copy(Ms).invert(),mt.copy(gs).transform(tr);let h=Math.sqrt(mt[0]*mt[0]+mt[1]*mt[1]),l=h*h/mt[2];Jn.copy([mt[0],mt[1],l]);let m=Jn.transform(Ms).subtract(c).normalize(),x=$n.cross(m).normalize().scale(o).add(c),g=C.WGS84.cartesianToCartographic(x),u=s.project([r,n,i]),M=s.project(g);return ac.copy(u).subtract(M).magnitude()}function er(e){return{assetGltfUpAxis:e.asset&&e.asset.gltfUpAxis||"Y"}}var kt=class{_map=new Map;_array;_length;constructor(t=0){this._array=new Array(t),this._length=t}get length(){return this._length}set length(t){this._length=t,t>this._array.length&&(this._array.length=t)}get values(){return this._array}get(t){return tt(t<this._array.length),this._array[t]}set(t,s){tt(t>=0),t>=this.length&&(this.length=t+1),this._map.has(this._array[t])&&this._map.delete(this._array[t]),this._array[t]=s,this._map.set(s,t)}delete(t){let s=this._map.get(t);s>=0&&(this._array.splice(s,1),this._map.delete(t),this.length--)}peek(){return this._array[this._length-1]}push(t){if(!this._map.has(t)){let s=this.length++;this._array[s]=t,this._map.set(t,s)}}pop(){let t=this._array[--this.length];return this._map.delete(t),t}reserve(t){tt(t>=0),t>this._array.length&&(this._array.length=t)}resize(t){tt(t>=0),this.length=t}trim(t){t==null&&(t=this.length),this._array.length=t}reset(){this._array=[],this._map=new Map,this._length=0}find(t){return this._map.has(t)}};var hc={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""},$=class{options;root=null;selectedTiles={};requestedTiles={};emptyTiles={};lastUpdate=new Date().getTime();updateDebounceTime=1e3;_traversalStack=new kt;_emptyTraversalStack=new kt;_frameNumber=null;traversalFinished(t){return!0}constructor(t){this.options={...hc,...t}}traverse(t,s,n){this.root=t,this.options={...this.options,...n},this.reset(),this.updateTile(t,s),this._frameNumber=s.frameNumber,this.executeTraversal(t,s)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal(t,s){let n=this._traversalStack;for(t._selectionDepth=1,n.push(t);n.length>0;){let i=n.pop(),o=!1;this.canTraverse(i,s)&&(this.updateChildTiles(i,s),o=this.updateAndPushChildren(i,s,n,i.hasRenderContent?i._selectionDepth+1:i._selectionDepth));let c=i.parent,a=Boolean(!c||c._shouldRefine),h=!o;i.hasRenderContent?i.refine===j.ADD?(this.loadTile(i,s),this.selectTile(i,s)):i.refine===j.REPLACE&&(this.loadTile(i,s),h&&this.selectTile(i,s)):(this.emptyTiles[i.id]=i,this.loadTile(i,s),h&&this.selectTile(i,s)),this.touchTile(i,s),i._shouldRefine=o&&a}let r=new Date().getTime();(this.traversalFinished(s)||r-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=r,this.options.onTraversalEnd(s))}updateChildTiles(t,s){let n=t.children;for(let r of n)this.updateTile(r,s)}updateAndPushChildren(t,s,n,r){let{loadSiblings:i,skipLevelOfDetail:o}=this.options,c=t.children;c.sort(this.compareDistanceToCamera.bind(this));let a=t.refine===j.REPLACE&&t.hasRenderContent&&!o,h=!1,l=!0;for(let f of c)if(f._selectionDepth=r,f.isVisibleAndInRequestVolume?(n.find(f)&&n.delete(f),n.push(f),h=!0):(a||i)&&(this.loadTile(f,s),this.touchTile(f,s)),a){let m;if(f._inRequestVolume?f.hasRenderContent?m=f.contentAvailable:m=this.executeEmptyTraversal(f,s):m=!1,l=l&&m,!l)return!1}return h||(l=!1),l}updateTile(t,s){this.updateTileVisibility(t,s)}selectTile(t,s){this.shouldSelectTile(t)&&(t._selectedFrame=s.frameNumber,this.selectedTiles[t.id]=t)}loadTile(t,s){this.shouldLoadTile(t)&&(t._requestedFrame=s.frameNumber,t._priority=t._getPriority(),this.requestedTiles[t.id]=t)}touchTile(t,s){t.tileset._cache.touch(t),t._touchedFrame=s.frameNumber}canTraverse(t,s){return t.hasChildren?t.hasTilesetContent?!t.contentExpired:this.shouldRefine(t,s):!1}shouldLoadTile(t){return t.hasUnloadedContent||t.contentExpired}shouldSelectTile(t){return t.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(t,s,n=!1){let r=t._screenSpaceError;return n&&(r=t.getScreenSpaceError(s,!0)),r>t.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(t,s){let n=[];if(this.options.viewportTraversersMap)for(let r in this.options.viewportTraversersMap)this.options.viewportTraversersMap[r]===s.viewport.id&&n.push(r);else n.push(s.viewport.id);t.updateVisibility(s,n)}compareDistanceToCamera(t,s){return t._distanceToCamera-s._distanceToCamera}anyChildrenVisible(t,s){let n=!1;for(let r of t.children)r.updateVisibility(s),n=n||r.isVisibleAndInRequestVolume;return n}executeEmptyTraversal(t,s){let n=!0,r=this._emptyTraversalStack;for(r.push(t);r.length>0;){let i=r.pop(),o=!i.hasRenderContent&&this.canTraverse(i,s),c=!i.hasRenderContent&&i.children.length===0;if(!o&&!i.contentAvailable&&!c&&(n=!1),this.updateTile(i,s),i.isVisibleAndInRequestVolume||(this.loadTile(i,s),this.touchTile(i,s)),o){let a=i.children;for(let h of a)r.push(h)}}return n}};var sr=new d;function lc(e){return e!=null}var it=class{tileset;header;id;url;parent;refine;type;contentUrl;lodMetricType="geometricError";lodMetricValue=0;boundingVolume=null;content=null;contentState=G.UNLOADED;gpuMemoryUsageInBytes=0;children=[];depth=0;viewportIds=[];transform=new L;extensions=null;implicitTiling=null;userData={};computedTransform;hasEmptyContent=!1;hasTilesetContent=!1;traverser=new $({});_cacheNode=null;_frameNumber=null;_expireDate=null;_expiredContent=null;_boundingBox=void 0;_distanceToCamera=0;_screenSpaceError=0;_visibilityPlaneMask;_visible=void 0;_contentBoundingVolume;_viewerRequestVolume;_initialTransform=new L;_priority=0;_selectedFrame=0;_requestedFrame=0;_selectionDepth=0;_touchedFrame=0;_centerZDepth=0;_shouldRefine=!1;_stackLength=0;_visitedFrame=0;_inRequestVolume=!1;_lodJudge=null;constructor(t,s,n,r=""){this.header=s,this.tileset=t,this.id=r||s.id,this.url=s.url,this.parent=n,this.refine=this._getRefine(s.refine),this.type=s.type,this.contentUrl=s.contentUrl,this._initializeLodMetric(s),this._initializeTransforms(s),this._initializeBoundingVolumes(s),this._initializeContent(s),this._initializeRenderingState(s),Object.seal(this)}destroy(){this.header=null}isDestroyed(){return this.header===null}get selected(){return this._selectedFrame===this.tileset._frameNumber}get isVisible(){return this._visible}get isVisibleAndInRequestVolume(){return this._visible&&this._inRequestVolume}get hasRenderContent(){return!this.hasEmptyContent&&!this.hasTilesetContent}get hasChildren(){return this.children.length>0||this.header.children&&this.header.children.length>0}get contentReady(){return this.contentState===G.READY||this.hasEmptyContent}get contentAvailable(){return Boolean(this.contentReady&&this.hasRenderContent||this._expiredContent&&!this.contentFailed)}get hasUnloadedContent(){return this.hasRenderContent&&this.contentUnloaded}get contentUnloaded(){return this.contentState===G.UNLOADED}get contentExpired(){return this.contentState===G.EXPIRED}get contentFailed(){return this.contentState===G.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=jn(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(t,s){switch(this.tileset.type){case B.I3S:return ys(this,t);case B.TILES3D:return Hn(this,t,s);default:throw new Error("Unsupported tileset type")}}unselect(){this._selectedFrame=0}_getGpuMemoryUsageInBytes(){return this.content.gpuMemoryUsageInBytes||this.content.byteLength||0}_getPriority(){let t=this.tileset._traverser,{skipLevelOfDetail:s}=t.options,n=this.refine===j.ADD||s;if(n&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===G.UNLOADED)return-1;let r=this.parent,o=r&&(!n||this._screenSpaceError===0||r.hasTilesetContent)?r._screenSpaceError:this._screenSpaceError,c=t.root?t.root._screenSpaceError:0;return Math.max(c-o,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=G.LOADING;let s=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!s)return this.contentState=G.UNLOADED,!1;try{let n=this.tileset.getTileUrl(this.contentUrl),r=this.tileset.loader,i={...this.tileset.loadOptions,[r.id]:{...this.tileset.loadOptions[r.id],isTileset:this.type==="json",...this._getLoaderSpecificOptions(r.id)}};return this.content=await(0,nr.load)(n,r,i),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=G.READY,this._onContentLoaded(),!0}catch(n){throw this.contentState=G.FAILED,n}finally{s.done()}}unloadContent(){return this.content&&this.content.destroy&&this.content.destroy(),this.content=null,this.header.content&&this.header.content.destroy&&this.header.content.destroy(),this.header.content=null,this.contentState=G.UNLOADED,!0}updateVisibility(t,s){if(this._frameNumber===t.frameNumber)return;let n=this.parent,r=n?n._visibilityPlaneMask:W.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){let i=n?n.computedTransform:this.tileset.modelMatrix;this._updateTransform(i)}this._distanceToCamera=this.distanceToTile(t),this._screenSpaceError=this.getScreenSpaceError(t,!1),this._visibilityPlaneMask=this.visibility(t,r),this._visible=this._visibilityPlaneMask!==W.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(t),this._frameNumber=t.frameNumber,this.viewportIds=s}visibility(t,s){let{cullingVolume:n}=t,{boundingVolume:r}=this;return n.computeVisibilityWithPlaneMask(r,s)}contentVisibility(){return!0}distanceToTile(t){let s=this.boundingVolume;return Math.sqrt(Math.max(s.distanceSquaredTo(t.camera.position),0))}cameraSpaceZDepth({camera:t}){let s=this.boundingVolume;return sr.subVectors(s.center,t.position),t.direction.dot(sr)}insideViewerRequestVolume(t){let s=this._viewerRequestVolume;return!s||s.distanceSquaredTo(t.camera.position)<=0}updateExpiration(){if(lc(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){let t=Date.now();Date.lessThan(this._expireDate,t)&&(this.contentState=G.EXPIRED,this._expiredContent=this.content)}}get extras(){return this.header.extras}_initializeLodMetric(t){"lodMetricType"in t?this.lodMetricType=t.lodMetricType:(this.lodMetricType=this.parent&&this.parent.lodMetricType||this.tileset.lodMetricType,console.warn("3D Tile: Required prop lodMetricType is undefined. Using parent lodMetricType")),"lodMetricValue"in t?this.lodMetricValue=t.lodMetricValue:(this.lodMetricValue=this.parent&&this.parent.lodMetricValue||this.tileset.lodMetricValue,console.warn("3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue"))}_initializeTransforms(t){this.transform=t.transform?new L(t.transform):new L;let s=this.parent,n=this.tileset,r=s&&s.computedTransform?s.computedTransform.clone():n.modelMatrix.clone();this.computedTransform=new L(r).multiplyRight(this.transform);let i=s&&s._initialTransform?s._initialTransform.clone():new L;this._initialTransform=new L(i).multiplyRight(this.transform)}_initializeBoundingVolumes(t){this._contentBoundingVolume=null,this._viewerRequestVolume=null,this._updateBoundingVolume(t)}_initializeContent(t){this.content={_tileset:this.tileset,_tile:this},this.hasEmptyContent=!0,this.contentState=G.UNLOADED,this.hasTilesetContent=!1,t.contentUrl&&(this.content=null,this.hasEmptyContent=!1)}_initializeRenderingState(t){this.depth=t.level||(this.parent?this.parent.depth+1:0),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._visibilityPlaneMask=W.MASK_INDETERMINATE,this._visible=void 0,this._inRequestVolume=!1,this._stackLength=0,this._selectionDepth=0,this._frameNumber=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._priority=0}_getRefine(t){return t||this.parent&&this.parent.refine||j.REPLACE}_isTileset(){return this.contentUrl.indexOf(".json")!==-1}_onContentLoaded(){switch(this.content&&this.content.type){case"vctr":case"geom":this.tileset._traverser.disableSkipLevelOfDetail=!0;break;default:}this._isTileset()?this.hasTilesetContent=!0:this.gpuMemoryUsageInBytes=this._getGpuMemoryUsageInBytes()}_updateBoundingVolume(t){this.boundingVolume=Ct(t.boundingVolume,this.computedTransform,this.boundingVolume);let s=t.content;s&&(s.boundingVolume&&(this._contentBoundingVolume=Ct(s.boundingVolume,this.computedTransform,this._contentBoundingVolume)),t.viewerRequestVolume&&(this._viewerRequestVolume=Ct(t.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(t=new L){let s=t.clone().multiplyRight(this.transform);s.equals(this.computedTransform)||(this.computedTransform=s,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions(t){switch(t){case"i3s":return{...this.tileset.options.i3s,_tileOptions:{attributeUrls:this.header.attributeUrls,textureUrl:this.header.textureUrl,textureFormat:this.header.textureFormat,textureLoaderOptions:this.header.textureLoaderOptions,materialDefinition:this.header.materialDefinition,isDracoGeometry:this.header.isDracoGeometry,mbs:this.header.mbs},_tilesetOptions:{store:this.tileset.tileset.store,attributeStorageInfo:this.tileset.tileset.attributeStorageInfo,fields:this.tileset.tileset.fields},isTileHeader:!1};case"3d-tiles":case"cesium-ion":default:return er(this.tileset.tileset)}}};var Te=class extends ${compareDistanceToCamera(t,s){return s._distanceToCamera===0&&t._distanceToCamera===0?s._centerZDepth-t._centerZDepth:s._distanceToCamera-t._distanceToCamera}updateTileVisibility(t,s){if(super.updateTileVisibility(t,s),!t.isVisibleAndInRequestVolume)return;let n=t.children.length>0;if(t.hasTilesetContent&&n){let o=t.children[0];this.updateTileVisibility(o,s),t._visible=o._visible;return}if(this.meetsScreenSpaceErrorEarly(t,s)){t._visible=!1;return}let r=t.refine===j.REPLACE,i=t._optimChildrenWithinParent===Wn.USE_OPTIMIZATION;if(r&&i&&n&&!this.anyChildrenVisible(t,s)){t._visible=!1;return}}meetsScreenSpaceErrorEarly(t,s){let{parent:n}=t;return!n||n.hasTilesetContent||n.refine!==j.ADD?!1:!this.shouldRefine(t,s,!0)}};var rr=Pe(jt(),1);var Se=class{frameNumberMap=new Map;register(t,s){let n=this.frameNumberMap.get(t)||new Map,r=n.get(s)||0;n.set(s,r+1),this.frameNumberMap.set(t,n)}deregister(t,s){let n=this.frameNumberMap.get(t);if(!n)return;let r=n.get(s)||1;n.set(s,r-1)}isZero(t,s){return(this.frameNumberMap.get(t)?.get(s)||0)===0}};var _s={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"},Ee=class{_statusMap;pendingTilesRegister=new Se;constructor(){this._statusMap={}}add(t,s,n,r){if(!this._statusMap[s]){let{frameNumber:i,viewport:{id:o}}=r;this._statusMap[s]={request:t,callback:n,key:s,frameState:r,status:_s.REQUESTED},this.pendingTilesRegister.register(o,i),t().then(c=>{this._statusMap[s].status=_s.COMPLETED;let{frameNumber:a,viewport:{id:h}}=this._statusMap[s].frameState;this.pendingTilesRegister.deregister(h,a),this._statusMap[s].callback(c,r)}).catch(c=>{this._statusMap[s].status=_s.ERROR;let{frameNumber:a,viewport:{id:h}}=this._statusMap[s].frameState;this.pendingTilesRegister.deregister(h,a),n(c)})}}update(t,s){if(this._statusMap[t]){let{frameNumber:n,viewport:{id:r}}=this._statusMap[t].frameState;this.pendingTilesRegister.deregister(r,n);let{frameNumber:i,viewport:{id:o}}=s;this.pendingTilesRegister.register(o,i),this._statusMap[t].frameState=s}}find(t){return this._statusMap[t]}hasPendingTiles(t,s){return!this.pendingTilesRegister.isZero(t,s)}};var we=class extends ${_tileManager;constructor(t){super(t),this._tileManager=new Ee}traversalFinished(t){return!this._tileManager.hasPendingTiles(t.viewport.id,this._frameNumber||0)}shouldRefine(t,s){return t._lodJudge=_e(t,s),t._lodJudge==="DIG"}updateChildTiles(t,s){let n=t.header.children||[],r=t.children,i=t.tileset;for(let o of n){let c=`${o.id}-${s.viewport.id}`,a=r&&r.find(h=>h.id===c);if(a)a&&this.updateTile(a,s);else{let h=()=>this._loadTile(o.id,i);this._tileManager.find(c)?this._tileManager.update(c,s):(i.tileset.nodePages&&(h=()=>i.tileset.nodePagesTile.formTileFromNodePages(o.id)),this._tileManager.add(h,c,f=>this._onTileLoad(f,t,c),s))}}return!1}async _loadTile(t,s){let{loader:n}=s,r=s.getTileUrl(`${s.url}/nodes/${t}`),i={...s.loadOptions,i3s:{...s.loadOptions.i3s,isTileHeader:!0}};return await(0,rr.load)(r,n,i)}_onTileLoad(t,s,n){let r=new it(s.tileset,t,s,n);s.children.push(r);let i=this._tileManager.find(r.id).frameState;this.updateTile(r,i),this._frameNumber===i.frameNumber&&(this.traversalFinished(i)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(r,i)}};var fc={description:"",ellipsoid:C.WGS84,modelMatrix:new L,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:e=>e,contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},Re="Tiles In Tileset(s)",Ts="Tiles In Memory",ir="Tiles In View",or="Tiles To Render",cr="Tiles Loaded",Ss="Tiles Loading",ar="Tiles Unloaded",hr="Failed Tile Loads",lr="Points/Vertices",Es="Tile Memory Use",fr="Maximum Screen Space Error",Oe=class{options;loadOptions;type;tileset;loader;url;basePath;modelMatrix;ellipsoid;lodMetricType;lodMetricValue;refine;root=null;roots={};asset={};description="";properties;extras=null;attributions={};credits={};stats;contentFormats={draco:!1,meshopt:!1,dds:!1,ktx2:!1};cartographicCenter=null;cartesianCenter=null;zoom=1;boundingVolume=null;dynamicScreenSpaceErrorComputedDensity=0;maximumMemoryUsage=32;gpuMemoryUsageInBytes=0;memoryAdjustedScreenSpaceError=0;_cacheBytes=0;_cacheOverflowBytes=0;_frameNumber=0;_queryParams={};_extensionsUsed=[];_tiles={};_pendingCount=0;selectedTiles=[];traverseCounter=0;geometricError=0;lastUpdatedVieports=null;_requestedTiles=[];_emptyTiles=[];frameStateData={};_traverser;_cache=new At;_requestScheduler;updatePromise=null;tilesetInitializationPromise;constructor(t,s){this.options={...fc,...s},this.tileset=t,this.loader=t.loader,this.type=t.type,this.url=t.url,this.basePath=t.basePath||ae.dirname(this.url),this.modelMatrix=this.options.modelMatrix,this.ellipsoid=this.options.ellipsoid,this.lodMetricType=t.lodMetricType,this.lodMetricValue=t.lodMetricValue,this.refine=t.root.refine,this.loadOptions=this.options.loadOptions||{},this._traverser=this._initializeTraverser(),this._requestScheduler=new Ot({throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests}),this.memoryAdjustedScreenSpaceError=this.options.maximumScreenSpaceError,this._cacheBytes=this.options.maximumMemoryUsage*1024*1024,this._cacheOverflowBytes=this.options.memoryCacheOverflow*1024*1024,this.stats=new ft({id:this.url}),this._initializeStats(),this.tilesetInitializationPromise=this._initializeTileSet(t)}destroy(){this._destroy()}isLoaded(){return this._pendingCount===0&&this._frameNumber!==0&&this._requestedTiles.length===0}get tiles(){return Object.values(this._tiles)}get frameNumber(){return this._frameNumber}get queryParams(){return new URLSearchParams(this._queryParams).toString()}setProps(t){this.options={...this.options,...t}}getTileUrl(t){if(t.startsWith("data:"))return t;let n=t;return this.queryParams.length&&(n=`${t}${t.includes("?")?"&":"?"}${this.queryParams}`),n}hasExtension(t){return Boolean(this._extensionsUsed.indexOf(t)>-1)}update(t=null){this.tilesetInitializationPromise.then(()=>{!t&&this.lastUpdatedVieports?t=this.lastUpdatedVieports:this.lastUpdatedVieports=t,t&&this.doUpdate(t)})}async selectTiles(t=null){return await this.tilesetInitializationPromise,t&&(this.lastUpdatedVieports=t),this.updatePromise||(this.updatePromise=new Promise(s=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),s(this._frameNumber),this.updatePromise=null},this.options.debounceTime)})),this.updatePromise}adjustScreenSpaceError(){this.gpuMemoryUsageInBytes<this._cacheBytes?this.memoryAdjustedScreenSpaceError=Math.max(this.memoryAdjustedScreenSpaceError/1.02,this.options.maximumScreenSpaceError):this.gpuMemoryUsageInBytes>this._cacheBytes+this._cacheOverflowBytes&&(this.memoryAdjustedScreenSpaceError*=1.02)}doUpdate(t){if("loadTiles"in this.options&&!this.options.loadTiles||this.traverseCounter>0)return;let s=t instanceof Array?t:[t];this._cache.reset(),this._frameNumber++,this.traverseCounter=s.length;let n=[];for(let r of s){let i=r.id;this._needTraverse(i)?n.push(i):this.traverseCounter--}for(let r of s){let i=r.id;if(this.roots[i]||(this.roots[i]=this._initializeTileHeaders(this.tileset,null)),!n.includes(i))continue;let o=xe(r,this._frameNumber);this._traverser.traverse(this.roots[i],o,this.options)}}_needTraverse(t){let s=t;return this.options.viewportTraversersMap&&(s=this.options.viewportTraversersMap[t]),s===t}_onTraversalEnd(t){let s=t.viewport.id;this.frameStateData[s]||(this.frameStateData[s]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});let n=this.frameStateData[s],r=Object.values(this._traverser.selectedTiles),[i,o]=Un(r,t,this.options.maximumTilesSelected);n.selectedTiles=i;for(let c of o)c.unselect();n._requestedTiles=Object.values(this._traverser.requestedTiles),n._emptyTiles=Object.values(this._traverser.emptyTiles),this.traverseCounter--,!(this.traverseCounter>0)&&this._updateTiles()}_updateTiles(){this.selectedTiles=[],this._requestedTiles=[],this._emptyTiles=[];for(let t in this.frameStateData){let s=this.frameStateData[t];this.selectedTiles=this.selectedTiles.concat(s.selectedTiles),this._requestedTiles=this._requestedTiles.concat(s._requestedTiles),this._emptyTiles=this._emptyTiles.concat(s._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);for(let t of this.selectedTiles)this._tiles[t.id]=t;this._loadTiles(),this._unloadTiles(),this._updateStats()}_tilesChanged(t,s){if(t.length!==s.length)return!0;let n=new Set(t.map(o=>o.id)),r=new Set(s.map(o=>o.id)),i=t.filter(o=>!r.has(o.id)).length>0;return i=i||s.filter(o=>!n.has(o.id)).length>0,i}_loadTiles(){for(let t of this._requestedTiles)t.contentUnloaded&&this._loadTile(t)}_unloadTiles(){this._cache.unloadTiles(this,(t,s)=>t._unloadTile(s))}_updateStats(){let t=0,s=0;for(let n of this.selectedTiles)n.contentAvailable&&n.content&&(t++,n.content.pointCount?s+=n.content.pointCount:s+=n.content.vertexCount);this.stats.get(ir).count=this.selectedTiles.length,this.stats.get(or).count=t,this.stats.get(lr).count=s,this.stats.get(fr).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(t){this.type===B.I3S&&(this.calculateViewPropsI3S(),t.root=await t.root),this.root=this._initializeTileHeaders(t,null),this.type===B.TILES3D&&(this._initializeTiles3DTileset(t),this.calculateViewPropsTiles3D()),this.type===B.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){let t=this.tileset.fullExtent;if(t){let{xmin:n,xmax:r,ymin:i,ymax:o,zmin:c,zmax:a}=t;this.cartographicCenter=new d(n+(r-n)/2,i+(o-i)/2,c+(a-c)/2),this.cartesianCenter=new d,C.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=xs(t,this.cartographicCenter,this.cartesianCenter);return}let s=this.tileset.store?.extent;if(s){let[n,r,i,o]=s;this.cartographicCenter=new d(n+(i-n)/2,r+(o-r)/2,0),this.cartesianCenter=new d,C.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=kn(s,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new d,this.zoom=1}calculateViewPropsTiles3D(){let t=this.root,{center:s}=t.boundingVolume;if(!s){console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new d,this.zoom=1;return}s[0]!==0||s[1]!==0||s[2]!==0?(this.cartographicCenter=new d,C.WGS84.cartesianToCartographic(s,this.cartographicCenter)):this.cartographicCenter=new d(0,0,-C.WGS84.radii[0]),this.cartesianCenter=s,this.zoom=Fn(t.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(Re),this.stats.get(Ss),this.stats.get(Ts),this.stats.get(ir),this.stats.get(or),this.stats.get(cr),this.stats.get(ar),this.stats.get(hr),this.stats.get(lr),this.stats.get(Es,"memory"),this.stats.get(fr)}_initializeTileHeaders(t,s){let n=new it(this,t.root,s);if(s&&(s.children.push(n),n.depth=s.depth+1),this.type===B.TILES3D){let r=[];for(r.push(n);r.length>0;){let i=r.pop();this.stats.get(Re).incrementCount();let o=i.header.children||[];for(let c of o){let a=new it(this,c,i);if(a.contentUrl?.includes("?session=")){let l=new URL(a.contentUrl).searchParams.get("session");l&&(this._queryParams.session=l)}i.children.push(a),a.depth=i.depth+1,r.push(a)}}}return n}_initializeTraverser(){let t;switch(this.type){case B.TILES3D:t=Te;break;case B.I3S:t=we;break;default:t=$}return new t({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders(t){this._destroySubtree(t)}async _loadTile(t){let s;try{this._onStartTileLoading(),s=await t.loadContent()}catch(n){this._onTileLoadError(t,n instanceof Error?n:new Error("load failed"))}finally{this._onEndTileLoading(),this._onTileLoad(t,s)}}_onTileLoadError(t,s){this.stats.get(hr).incrementCount();let n=s.message||s.toString(),r=t.url;console.error(`A 3D tile failed to load: ${t.url} ${n}`),this.options.onTileError(t,n,r)}_onTileLoad(t,s){if(s){if(this.type===B.I3S){let n=this.tileset?.nodePagesTile?.nodesInNodePages||0;this.stats.get(Re).reset(),this.stats.get(Re).addCount(n)}t&&t.content&&fe(t,t.content),this.updateContentTypes(t),this._addTileToCache(t),this.options.onTileLoad(t)}}updateContentTypes(t){if(this.type===B.I3S)switch(t.header.isDracoGeometry&&(this.contentFormats.draco=!0),t.header.textureFormat){case"dds":this.contentFormats.dds=!0;break;case"ktx2":this.contentFormats.ktx2=!0;break;default:}else if(this.type===B.TILES3D){let{extensionsRemoved:s=[]}=t.content?.gltf||{};s.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),s.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),s.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(Ss).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(Ss).decrementCount()}_addTileToCache(t){this._cache.add(this,t,s=>s._updateCacheStats(t))}_updateCacheStats(t){this.stats.get(cr).incrementCount(),this.stats.get(Ts).incrementCount(),this.gpuMemoryUsageInBytes+=t.gpuMemoryUsageInBytes||0,this.stats.get(Es).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(t){this.gpuMemoryUsageInBytes-=t.gpuMemoryUsageInBytes||0,this.stats.get(Ts).decrementCount(),this.stats.get(ar).incrementCount(),this.stats.get(Es).count=this.gpuMemoryUsageInBytes,this.options.onTileUnload(t),t.unloadContent()}_destroy(){let t=[];for(this.root&&t.push(this.root);t.length>0;){let s=t.pop();for(let n of s.children)t.push(n);this._destroyTile(s)}this.root=null}_destroySubtree(t){let s=t,n=[];for(n.push(s);n.length>0;){t=n.pop();for(let r of t.children)n.push(r);t!==s&&this._destroyTile(t)}s.children=[]}_destroyTile(t){this._cache.unloadTile(this,t),this._unloadTile(t),t.destroy()}_initializeTiles3DTileset(t){if(t.queryString){let s=new URLSearchParams(t.queryString),n=Object.fromEntries(s.entries());this._queryParams={...this._queryParams,...n}}if(this.asset=t.asset,!this.asset)throw new Error("Tileset must have an asset property.");if(this.asset.version!=="0.0"&&this.asset.version!=="1.0"&&this.asset.version!=="1.1")throw new Error("The tileset must be 3D Tiles version either 0.0 or 1.0 or 1.1.");"tilesetVersion"in this.asset&&(this._queryParams.v=this.asset.tilesetVersion),this.credits={attributions:this.options.attributions||[]},this.description=this.options.description||"",this.properties=t.properties,this.geometricError=t.geometricError,this._extensionsUsed=t.extensionsUsed||[],this.extras=t.extras}_initializeI3STileset(){this.loadOptions.i3s&&"token"in this.loadOptions.i3s&&(this._queryParams.token=this.loadOptions.i3s.token)}};return Mr(Wt);})();
8
8
  return __exports__;
9
9
  });
package/dist/index.cjs CHANGED
@@ -1021,17 +1021,14 @@ var TilesetTraverser = class {
1021
1021
  // tile should be visible
1022
1022
  // tile should have children
1023
1023
  // tile LoD (level of detail) is not sufficient under current viewport
1024
- canTraverse(tile, frameState, useParentMetric = false, ignoreVisibility = false) {
1024
+ canTraverse(tile, frameState) {
1025
1025
  if (!tile.hasChildren) {
1026
1026
  return false;
1027
1027
  }
1028
1028
  if (tile.hasTilesetContent) {
1029
1029
  return !tile.contentExpired;
1030
1030
  }
1031
- if (!ignoreVisibility && !tile.isVisibleAndInRequestVolume) {
1032
- return false;
1033
- }
1034
- return this.shouldRefine(tile, frameState, useParentMetric);
1031
+ return this.shouldRefine(tile, frameState);
1035
1032
  }
1036
1033
  shouldLoadTile(tile) {
1037
1034
  return tile.hasUnloadedContent || tile.contentExpired;
@@ -1081,7 +1078,7 @@ var TilesetTraverser = class {
1081
1078
  stack.push(root);
1082
1079
  while (stack.length > 0) {
1083
1080
  const tile = stack.pop();
1084
- const traverse = !tile.hasRenderContent && this.canTraverse(tile, frameState, false, false);
1081
+ const traverse = !tile.hasRenderContent && this.canTraverse(tile, frameState);
1085
1082
  const emptyLeaf = !tile.hasRenderContent && tile.children.length === 0;
1086
1083
  if (!traverse && !tile.contentAvailable && !emptyLeaf) {
1087
1084
  allDescendantsLoaded = false;