@deck.gl/geo-layers 9.0.0-beta.3 → 9.0.0-beta.4
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 +3 -0
- package/dist/geohash-layer/geohash-layer.d.ts +1 -1
- package/dist/geohash-layer/geohash-layer.d.ts.map +1 -1
- package/dist/h3-layers/h3-cluster-layer.d.ts +1 -1
- package/dist/h3-layers/h3-cluster-layer.d.ts.map +1 -1
- package/dist/index.cjs +3 -0
- package/dist/index.cjs.map +2 -2
- package/dist/index.d.ts +30 -30
- package/dist/index.d.ts.map +1 -1
- package/dist/mvt-layer/coordinate-transform.d.ts +1 -1
- package/dist/mvt-layer/coordinate-transform.d.ts.map +1 -1
- package/dist/mvt-layer/mvt-layer.d.ts +4 -3
- package/dist/mvt-layer/mvt-layer.d.ts.map +1 -1
- package/dist/mvt-layer/mvt-layer.js +5 -0
- package/dist/quadkey-layer/quadkey-layer.d.ts +1 -1
- package/dist/quadkey-layer/quadkey-layer.d.ts.map +1 -1
- package/dist/s2-layer/s2-layer.d.ts +1 -1
- package/dist/s2-layer/s2-layer.d.ts.map +1 -1
- package/dist/terrain-layer/terrain-layer.d.ts +3 -3
- package/dist/terrain-layer/terrain-layer.d.ts.map +1 -1
- package/dist/tile-layer/tile-layer.d.ts +3 -3
- package/dist/tile-layer/tile-layer.d.ts.map +1 -1
- package/dist/tileset-2d/index.d.ts +6 -6
- package/dist/tileset-2d/index.d.ts.map +1 -1
- package/dist/tileset-2d/tile-2d-header.d.ts +1 -1
- package/dist/tileset-2d/tile-2d-header.d.ts.map +1 -1
- package/dist/tileset-2d/tile-2d-traversal.d.ts +1 -1
- package/dist/tileset-2d/tile-2d-traversal.d.ts.map +1 -1
- package/dist/tileset-2d/tileset-2d.d.ts +3 -3
- package/dist/tileset-2d/tileset-2d.d.ts.map +1 -1
- package/dist/tileset-2d/utils.d.ts +1 -1
- package/dist/tileset-2d/utils.d.ts.map +1 -1
- package/dist.min.js +1 -1
- package/package.json +2 -2
- package/src/mvt-layer/mvt-layer.ts +6 -0
package/dist.min.js
CHANGED
|
@@ -634,6 +634,6 @@ void main(void) {
|
|
|
634
634
|
|
|
635
635
|
DECKGL_FILTER_COLOR(fragColor, geometry);
|
|
636
636
|
}
|
|
637
|
-
`;function lE(t){let e=t.positions||t.POSITION,r=e.value.length/e.size;t.COLOR_0||t.colors||(t.colors={size:4,value:new Uint8Array(r*4).fill(255),normalized:!0})}var hE={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}},ei=class extends Zu.SimpleMeshLayer{getShaders(){let e=super.getShaders();return e.modules.push(Ka),{...e,vs:Yu,fs:qu}}initializeState(){let{featureIds:e}=this.props;super.initializeState();let r=this.getAttributeManager();e&&r.add({featureIdsPickingColors:{type:ti.UNSIGNED_BYTE,size:3,noAlloc:!0,update:this.calculateFeatureIdsPickingColors}})}updateState(e){super.updateState(e);let{props:r,oldProps:n}=e;r.pbrMaterial!==n.pbrMaterial&&this.updatePbrMaterialUniforms(r.pbrMaterial)}draw(e){let{featureIds:r}=this.props;this.state.model&&(this.state.model.setUniforms({u_Camera:this.state.model.uniforms.project_uCameraPosition,pickFeatureIds:Boolean(r)}),super.draw(e))}getModel(e){let{id:r,pbrMaterial:n}=this.props,s=this.parseMaterial(n,e);this.setState({parsedPBRMaterial:s});let i=this.getShaders();return lE(e.attributes),new ju.Model(this.context.device,{...this.getShaders(),id:r,geometry:e,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:{...i.defines,...s?.defines,HAS_UV_REGIONS:e.attributes.uvRegions?1:0},parameters:s?.parameters,isInstanced:!0})}updatePbrMaterialUniforms(e){let{model:r}=this.state;if(r){let{mesh:n}=this.props,s=this.parseMaterial(e,n);this.setState({parsedPBRMaterial:s}),r.setBindings(s.bindings),r.setUniforms(s.uniforms)}}parseMaterial(e,r){let n=Boolean(e.pbrMetallicRoughness&&e.pbrMetallicRoughness.baseColorTexture);return wa(this.context.device,{unlit:n,...e},{NORMAL:r.attributes.normals,TEXCOORD_0:r.attributes.texCoords},{pbrDebug:!1,lights:!0,useTangents:!1})}calculateFeatureIdsPickingColors(e){let r=this.props.featureIds,n=new Uint8ClampedArray(r.length*e.size),s=[];for(let i=0;i<r.length;i++)this.encodePickingColor(r[i],s),n[i*3]=s[0],n[i*3+1]=s[1],n[i*3+2]=s[2];e.value=n}finalizeState(e){super.finalizeState(e),this.state.parsedPBRMaterial?.generatedTextures.forEach(r=>r.destroy()),this.setState({parsedPBRMaterial:null})}},Cn=ei;(()=>{ei.layerName="MeshLayer"})(),(()=>{ei.defaultProps=hE})();var gg=v(Cr(),1);var he=6356752314245179e-9,fE={radii:[6378137,6378137,he],radiiSquared:[6378137*6378137,6378137*6378137,he*he],oneOverRadii:[1/6378137,1/6378137,1/he],oneOverRadiiSquared:[1/(6378137*6378137),1/(6378137*6378137),1/(he*he)],maximumRadius:Math.max(6378137,6378137,he),centerToleranceSquared:.1};function ri(t){return t}var $b=new m;function uE(t,e=[],r=ri){return"longitude"in t?(e[0]=r(t.longitude),e[1]=r(t.latitude),e[2]=t.height):"x"in t?(e[0]=r(t.x),e[1]=r(t.y),e[2]=t.z):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function $u(t,e=[]){return uE(t,e,j._cartographicRadians?ri:Vo)}function dE(t,e,r=ri){return"longitude"in e?(e.longitude=r(t[0]),e.latitude=r(t[1]),e.height=t[2]):"x"in e?(e.x=r(t[0]),e.y=r(t[1]),e.z=t[2]):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function td(t,e){return dE(t,e,j._cartographicRadians?ri:Xo)}var ed=1e-14,pE=new m,rd={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"}},Ja={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},Bn={east:new m,north:new m,up:new m,west:new m,south:new m,down:new m},gE=new m,AE=new m,_E=new m;function Ya(t,e,r,n,s,i){let o=rd[e]&&rd[e][r];ct(o&&(!n||n===o));let a,c,l,h=pE.copy(s);if(At(h.x,0,ed)&&At(h.y,0,ed)){let u=Math.sign(h.z);a=gE.fromArray(Ja[e]),e!=="east"&&e!=="west"&&a.scale(u),c=AE.fromArray(Ja[r]),r!=="east"&&r!=="west"&&c.scale(u),l=_E.fromArray(Ja[n]),n!=="east"&&n!=="west"&&l.scale(u)}else{let{up:u,east:d,north:p}=Bn;d.set(-h.y,h.x,0).normalize(),t.geodeticSurfaceNormal(h,u),p.copy(u).cross(d);let{down:_,west:A,south:T}=Bn;_.copy(u).scale(-1),A.copy(d).scale(-1),T.copy(p).scale(-1),a=Bn[e],c=Bn[r],l=Bn[n]}return i[0]=a.x,i[1]=a.y,i[2]=a.z,i[3]=0,i[4]=c.x,i[5]=c.y,i[6]=c.z,i[7]=0,i[8]=l.x,i[9]=l.y,i[10]=l.z,i[11]=0,i[12]=h.x,i[13]=h.y,i[14]=h.z,i[15]=1,i}var Br=new m,mE=new m,TE=new m;function nd(t,e,r=[]){let{oneOverRadii:n,oneOverRadiiSquared:s,centerToleranceSquared:i}=e;Br.from(t);let o=Br.x,a=Br.y,c=Br.z,l=n.x,h=n.y,f=n.z,u=o*o*l*l,d=a*a*h*h,p=c*c*f*f,_=u+d+p,A=Math.sqrt(1/_);if(!Number.isFinite(A))return;let T=mE;if(T.copy(t).scale(A),_<i)return T.to(r);let x=s.x,R=s.y,S=s.z,B=TE;B.set(T.x*x*2,T.y*R*2,T.z*S*2);let M=(1-A)*Br.len()/(.5*B.len()),F=0,C,E,g,y;do{M-=F,C=1/(1+M*x),E=1/(1+M*R),g=1/(1+M*S);let O=C*C,b=E*E,N=g*g,U=O*C,Y=b*E,W=N*g;y=u*O+d*b+p*N-1;let J=-2*(u*U*x+d*Y*R+p*W*S);F=y/J}while(Math.abs(y)>Ht.EPSILON12);return Br.scale([C,E,g]).to(r)}var ni=new m,sd=new m,xE=new m,zt=new m,SE=new m,si=new m,L=class{constructor(e=0,r=0,n=0){P(this,"radii",void 0),P(this,"radiiSquared",void 0),P(this,"radiiToTheFourth",void 0),P(this,"oneOverRadii",void 0),P(this,"oneOverRadiiSquared",void 0),P(this,"minimumRadius",void 0),P(this,"maximumRadius",void 0),P(this,"centerToleranceSquared",Ht.EPSILON1),P(this,"squaredXOverSquaredZ",void 0),ct(e>=0),ct(r>=0),ct(n>=0),this.radii=new m(e,r,n),this.radiiSquared=new m(e*e,r*r,n*n),this.radiiToTheFourth=new m(e*e*e*e,r*r*r*r,n*n*n*n),this.oneOverRadii=new m(e===0?0:1/e,r===0?0:1/r,n===0?0:1/n),this.oneOverRadiiSquared=new m(e===0?0:1/(e*e),r===0?0:1/(r*r),n===0?0:1/(n*n)),this.minimumRadius=Math.min(e,r,n),this.maximumRadius=Math.max(e,r,n),this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}equals(e){return this===e||Boolean(e&&this.radii.equals(e.radii))}toString(){return this.radii.toString()}cartographicToCartesian(e,r=[0,0,0]){let n=sd,s=xE,[,,i]=e;this.geodeticSurfaceNormalCartographic(e,n),s.copy(this.radiiSquared).scale(n);let o=Math.sqrt(n.dot(s));return s.scale(1/o),n.scale(i),s.add(n),s.to(r)}cartesianToCartographic(e,r=[0,0,0]){si.from(e);let n=this.scaleToGeodeticSurface(si,zt);if(!n)return;let s=this.geodeticSurfaceNormal(n,sd),i=SE;i.copy(si).subtract(n);let o=Math.atan2(s.y,s.x),a=Math.asin(s.z),c=Math.sign(_r.dot(i,si))*_r.length(i);return td([o,a,c],r)}eastNorthUpToFixedFrame(e,r=new D){return Ya(this,"east","north","up",e,r)}localFrameToFixedFrame(e,r,n,s,i=new D){return Ya(this,e,r,n,s,i)}geocentricSurfaceNormal(e,r=[0,0,0]){return ni.from(e).normalize().to(r)}geodeticSurfaceNormalCartographic(e,r=[0,0,0]){let n=$u(e),s=n[0],i=n[1],o=Math.cos(i);return ni.set(o*Math.cos(s),o*Math.sin(s),Math.sin(i)).normalize(),ni.to(r)}geodeticSurfaceNormal(e,r=[0,0,0]){return ni.from(e).scale(this.oneOverRadiiSquared).normalize().to(r)}scaleToGeodeticSurface(e,r){return nd(e,this,r)}scaleToGeocentricSurface(e,r=[0,0,0]){zt.from(e);let n=zt.x,s=zt.y,i=zt.z,o=this.oneOverRadiiSquared,a=1/Math.sqrt(n*n*o.x+s*s*o.y+i*i*o.z);return zt.multiplyScalar(a).to(r)}transformPositionToScaledSpace(e,r=[0,0,0]){return zt.from(e).scale(this.oneOverRadii).to(r)}transformPositionFromScaledSpace(e,r=[0,0,0]){return zt.from(e).scale(this.radii).to(r)}getSurfaceNormalIntersectionWithZAxis(e,r=0,n=[0,0,0]){ct(At(this.radii.x,this.radii.y,Ht.EPSILON15)),ct(this.radii.z>0),zt.from(e);let s=zt.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(s)>=this.radii.z-r))return zt.set(0,0,s).to(n)}};P(L,"WGS84",new L(6378137,6378137,he));var ii=class{constructor(e,r,n){this.item=void 0,this.previous=void 0,this.next=void 0,this.item=e,this.previous=r,this.next=n}};var oi=class{constructor(){this.head=null,this.tail=null,this._length=0}get length(){return this._length}add(e){let r=new ii(e,this.tail,null);return this.tail?(this.tail.next=r,this.tail=r):(this.head=r,this.tail=r),++this._length,r}remove(e){e&&(e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=null,this.tail=e.previous):e.next?(e.next.previous=null,this.head=e.next):(this.head=null,this.tail=null),e.next=null,e.previous=null,--this._length)}splice(e,r){e!==r&&(this.remove(r),this._insert(e,r))}_insert(e,r){let n=e.next;e.next=r,this.tail===e?this.tail=r:n.previous=r,r.next=n,r.previous=e,++this._length}};var ai=class{constructor(){this._list=void 0,this._sentinel=void 0,this._trimTiles=void 0,this._list=new oi,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch(e){let r=e._cacheNode;r&&this._list.splice(this._sentinel,r)}add(e,r,n){r._cacheNode||(r._cacheNode=this._list.add(r),n&&n(e,r))}unloadTile(e,r,n){let s=r._cacheNode;s&&(this._list.remove(s),r._cacheNode=null,n&&n(e,r))}unloadTiles(e,r){let n=this._trimTiles;this._trimTiles=!1;let s=this._list,i=e.maximumMemoryUsage*1024*1024,o=this._sentinel,a=s.head;for(;a!==o&&(e.gpuMemoryUsageInBytes>i||n);){let c=a.item;a=a.next,this.unloadTile(e,c,r)}}trim(){this._trimTiles=!0}};function id(t,e){V(t),V(e);let{rtcCenter:r,gltfUpAxis:n}=e,{computedTransform:s,boundingVolume:{center:i}}=t,o=new D(s);switch(r&&o.translate(r),n){case"Z":break;case"Y":let f=new D().rotateX(Math.PI/2);o=o.multiplyRight(f);break;case"X":let u=new D().rotateY(-Math.PI/2);o=o.multiplyRight(u);break;default:break}e.isQuantized&&o.translate(e.quantizedVolumeOffset).scale(e.quantizedVolumeScale);let a=new m(i);e.cartesianModelMatrix=o,e.cartesianOrigin=a;let c=L.WGS84.cartesianToCartographic(a,new m),h=L.WGS84.eastNorthUpToFixedFrame(a).invert();e.cartographicModelMatrix=h.multiplyRight(o),e.cartographicOrigin=c,e.coordinateSystem||(e.modelMatrix=e.cartographicModelMatrix)}var od=new m,qa=new m,ja=new ot([new lt,new lt,new lt,new lt,new lt,new lt]);function cd(t,e){let{cameraDirection:r,cameraUp:n,height:s}=t,{metersPerUnit:i}=t.distanceScales,o=ci(t,t.center),a=L.WGS84.eastNorthUpToFixedFrame(o),c=t.unprojectPosition(t.cameraPosition),l=L.WGS84.cartographicToCartesian(c,new m),h=new m(a.transformAsVector(new m(r).scale(i))).normalize(),f=new m(a.transformAsVector(new m(n).scale(i))).normalize();CE(t);let u=t.constructor,{longitude:d,latitude:p,width:_,bearing:A,zoom:T}=t,x=new u({longitude:d,latitude:p,height:s,width:_,bearing:A,zoom:T,pitch:0});return{camera:{position:l,direction:h,up:f},viewport:t,topDownViewport:x,height:s,cullingVolume:ja,frameNumber:e,sseDenominator:1.15}}function ld(t,e,r){if(r===0||t.length<=r)return[t,[]];let n=[],{longitude:s,latitude:i}=e.viewport;for(let[l,h]of t.entries()){let[f,u]=h.header.mbs,d=Math.abs(s-f),p=Math.abs(i-u),_=Math.sqrt(p*p+d*d);n.push([l,_])}let o=n.sort((l,h)=>l[1]-h[1]),a=[];for(let l=0;l<r;l++)a.push(t[o[l][0]]);let c=[];for(let l=r;l<o.length;l++)c.push(t[o[l][0]]);return[a,c]}function CE(t){let e=t.getFrustumPlanes(),r=ad(e.near,t.cameraPosition),n=ci(t,r),s=ci(t,t.cameraPosition,qa),i=0;ja.planes[i++].fromPointNormal(n,od.copy(n).subtract(s));for(let o in e){if(o==="near")continue;let a=e[o],c=ad(a,r,qa),l=ci(t,c,qa);ja.planes[i++].fromPointNormal(l,od.copy(n).subtract(l))}}function ad(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:new m,n=t.normal.dot(e);return r.copy(t.normal).scale(t.distance-n).add(e),r}function ci(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:new m,n=t.unprojectPosition(e);return L.WGS84.cartographicToCartesian(n,r)}var BE=6378137,ME=6378137,Za=6356752314245179e-9,Mr=new m;function hd(t,e){if(t instanceof Xt){let{halfAxes:r}=t,n=yE(r);return Math.log2(Za/(n+e[2]))}else if(t instanceof Ot){let{radius:r}=t;return Math.log2(Za/(r+e[2]))}else if(t.width&&t.height){let{width:r,height:n}=t,s=Math.log2(BE/r),i=Math.log2(ME/n);return(s+i)/2}return 1}function Qa(t,e,r){L.WGS84.cartographicToCartesian([t.xmax,t.ymax,t.zmax],Mr);let n=Math.sqrt(Math.pow(Mr[0]-r[0],2)+Math.pow(Mr[1]-r[1],2)+Math.pow(Mr[2]-r[2],2));return Math.log2(Za/(n+e[2]))}function fd(t,e,r){let[n,s,i,o]=t;return Qa({xmin:n,xmax:i,ymin:s,ymax:o,zmin:0,zmax:0},e,r)}function yE(t){t.getColumn(0,Mr);let e=t.getColumn(1),r=t.getColumn(2);return Mr.add(e).add(r).len()}var Id=v(Cr(),1);var _t={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},Et=function(t){return t[t.ADD=1]="ADD",t[t.REPLACE=2]="REPLACE",t}({}),re=function(t){return t.EMPTY="empty",t.SCENEGRAPH="scenegraph",t.POINTCLOUD="pointcloud",t.MESH="mesh",t}({}),ft=function(t){return t.I3S="I3S",t.TILES3D="TILES3D",t}({}),qe=function(t){return t.GEOMETRIC_ERROR="geometricError",t.MAX_SCREEN_THRESHOLD="maxScreenThreshold",t}({}),ud={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0};function Ad(t){return t!=null}var ut=new m,li=new m,IE=new m,FE=new m,je=new m,dd=new m,pd=new m,gd=new m;function hi(t,e,r){if(V(t,"3D Tile: boundingVolume must be defined"),t.box)return md(t.box,e,r);if(t.region)return OE(t.region);if(t.sphere)return NE(t.sphere,e,r);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function _d(t,e){if(t.box)return bE(e);if(t.region){let[r,n,s,i,o,a]=t.region;return[[yt(r),yt(n),o],[yt(s),yt(i),a]]}if(t.sphere)return PE(e);throw new Error("Unkown boundingVolume type")}function md(t,e,r){let n=new m(t[0],t[1],t[2]);e.transform(n,n);let s=[];if(t.length===10){let l=t.slice(3,6),h=new Zt;h.fromArray(t,6);let f=new m([1,0,0]),u=new m([0,1,0]),d=new m([0,0,1]);f.transformByQuaternion(h),f.scale(l[0]),u.transformByQuaternion(h),u.scale(l[1]),d.transformByQuaternion(h),d.scale(l[2]),s=[...f.toArray(),...u.toArray(),...d.toArray()]}else s=[...t.slice(3,6),...t.slice(6,9),...t.slice(9,12)];let i=e.transformAsVector(s.slice(0,3)),o=e.transformAsVector(s.slice(3,6)),a=e.transformAsVector(s.slice(6,9)),c=new z([i[0],i[1],i[2],o[0],o[1],o[2],a[0],a[1],a[2]]);return Ad(r)?(r.center=n,r.halfAxes=c,r):new Xt(n,c)}function NE(t,e,r){let n=new m(t[0],t[1],t[2]);e.transform(n,n);let s=e.getScale(li),i=Math.max(Math.max(s[0],s[1]),s[2]),o=t[3]*i;return Ad(r)?(r.center=n,r.radius=o,r):new Ot(n,o)}function OE(t){let[e,r,n,s,i,o]=t,a=L.WGS84.cartographicToCartesian([yt(e),yt(s),i],IE),c=L.WGS84.cartographicToCartesian([yt(n),yt(r),o],FE),l=new m().addVectors(a,c).multiplyByScalar(.5);return L.WGS84.cartesianToCartographic(l,je),L.WGS84.cartographicToCartesian([yt(n),je[1],je[2]],dd),L.WGS84.cartographicToCartesian([je[0],yt(s),je[2]],pd),L.WGS84.cartographicToCartesian([je[0],je[1],o],gd),md([...l,...dd.subtract(l),...pd.subtract(l),...gd.subtract(l)],new D)}function bE(t){let e=Td(),{halfAxes:r}=t,n=new m(r.getColumn(0)),s=new m(r.getColumn(1)),i=new m(r.getColumn(2));for(let o=0;o<2;o++){for(let a=0;a<2;a++){for(let c=0;c<2;c++)ut.copy(t.center),ut.add(n),ut.add(s),ut.add(i),Ed(e,ut),i.negate();s.negate()}n.negate()}return e}function PE(t){let e=Td(),{center:r,radius:n}=t,s=L.WGS84.scaleToGeodeticSurface(r,ut),i;s?i=L.WGS84.geodeticSurfaceNormal(s):i=new m(0,0,1);let o=new m(i[2],-i[1],0);o.len()>0?o.normalize():o=new m(0,1,0);let a=o.clone().cross(i);for(let c of[o,a,i]){li.copy(c).scale(n);for(let l=0;l<2;l++)ut.copy(r),ut.add(li),Ed(e,ut),li.negate()}return e}function Td(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function Ed(t,e){L.WGS84.cartesianToCartographic(e,ut),t[0][0]=Math.min(t[0][0],ut[0]),t[0][1]=Math.min(t[0][1],ut[1]),t[0][2]=Math.min(t[0][2],ut[2]),t[1][0]=Math.max(t[1][0],ut[0]),t[1][1]=Math.max(t[1][1],ut[1]),t[1][2]=Math.max(t[1][2],ut[2])}var VP=new m,XP=new m,WP=new D,zP=new m,kP=new m,GP=new m;function DE(t,e){let r=t*e;return 1-Math.exp(-(r*r))}function wE(t,e){if(t.dynamicScreenSpaceError&&t.dynamicScreenSpaceErrorComputedDensity){let r=t.dynamicScreenSpaceErrorComputedDensity,n=t.dynamicScreenSpaceErrorFactor;return DE(e,r)*n}return 0}function Rd(t,e,r){let n=t.tileset,s=t.parent&&t.parent.lodMetricValue||t.lodMetricValue,i=r?s:t.lodMetricValue;if(i===0)return 0;let o=Math.max(t._distanceToCamera,1e-7),{height:a,sseDenominator:c}=e,{viewDistanceScale:l}=n.options,h=i*a*(l||1)/(o*c);return h-=wE(n,o),h}var $a=new m,xd=new m,Fe=new m,Sd=new m,vE=new m,tc=new D,Cd=new D;function Bd(t,e){if(t.lodMetricValue===0||isNaN(t.lodMetricValue))return"DIG";let r=2*ec(t,e);return r<2?"OUT":!t.header.children||r<=t.lodMetricValue?"DRAW":t.header.children?"DIG":"OUT"}function ec(t,e){let{topDownViewport:r}=e,n=t.header.mbs[1],s=t.header.mbs[0],i=t.header.mbs[2],o=t.header.mbs[3],a=[...t.boundingVolume.center],c=r.unprojectPosition(r.cameraPosition);L.WGS84.cartographicToCartesian(c,$a),xd.copy($a).subtract(a).normalize(),L.WGS84.eastNorthUpToFixedFrame(a,tc),Cd.copy(tc).invert(),Fe.copy($a).transform(Cd);let l=Math.sqrt(Fe[0]*Fe[0]+Fe[1]*Fe[1]),h=l*l/Fe[2];Sd.copy([Fe[0],Fe[1],h]);let u=Sd.transform(tc).subtract(a).normalize(),p=xd.cross(u).normalize().scale(o).add(a),_=L.WGS84.cartesianToCartographic(p),A=r.project([s,n,i]),T=r.project(_);return vE.copy(A).subtract(T).magnitude()}function Md(t){return{assetGltfUpAxis:t.asset&&t.asset.gltfUpAxis||"Y"}}var Mn=class{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this._map=new Map,this._array=void 0,this._length=void 0,this._array=new Array(e),this._length=e}get length(){return this._length}set length(e){this._length=e,e>this._array.length&&(this._array.length=e)}get values(){return this._array}get(e){return V(e<this._array.length),this._array[e]}set(e,r){V(e>=0),e>=this.length&&(this.length=e+1),this._map.has(this._array[e])&&this._map.delete(this._array[e]),this._array[e]=r,this._map.set(r,e)}delete(e){let r=this._map.get(e);r>=0&&(this._array.splice(r,1),this._map.delete(e),this.length--)}peek(){return this._array[this._length-1]}push(e){if(!this._map.has(e)){let r=this.length++;this._array[r]=e,this._map.set(e,r)}}pop(){let e=this._array[--this.length];return this._map.delete(e),e}reserve(e){V(e>=0),e>this._array.length&&(this._array.length=e)}resize(e){V(e>=0),this.length=e}trim(e){e==null&&(e=this.length),this._array.length=e}reset(){this._array=[],this._map=new Map,this._length=0}find(e){return this._map.has(e)}};var UE={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""},ne=class{traversalFinished(e){return!0}constructor(e){this.options=void 0,this.root=null,this.selectedTiles={},this.requestedTiles={},this.emptyTiles={},this.lastUpdate=new Date().getTime(),this.updateDebounceTime=1e3,this._traversalStack=new Mn,this._emptyTraversalStack=new Mn,this._frameNumber=null,this.options={...UE,...e}}traverse(e,r,n){this.root=e,this.options={...this.options,...n},this.reset(),this.updateTile(e,r),this._frameNumber=r.frameNumber,this.executeTraversal(e,r)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal(e,r){let n=this._traversalStack;for(e._selectionDepth=1,n.push(e);n.length>0;){let i=n.pop(),o=!1;this.canTraverse(i,r)&&(this.updateChildTiles(i,r),o=this.updateAndPushChildren(i,r,n,i.hasRenderContent?i._selectionDepth+1:i._selectionDepth));let a=i.parent,c=Boolean(!a||a._shouldRefine),l=!o;i.hasRenderContent?i.refine===Et.ADD?(this.loadTile(i,r),this.selectTile(i,r)):i.refine===Et.REPLACE&&(this.loadTile(i,r),l&&this.selectTile(i,r)):(this.emptyTiles[i.id]=i,this.loadTile(i,r),l&&this.selectTile(i,r)),this.touchTile(i,r),i._shouldRefine=o&&c}let s=new Date().getTime();(this.traversalFinished(r)||s-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=s,this.options.onTraversalEnd(r))}updateChildTiles(e,r){let n=e.children;for(let s of n)this.updateTile(s,r)}updateAndPushChildren(e,r,n,s){let{loadSiblings:i,skipLevelOfDetail:o}=this.options,a=e.children;a.sort(this.compareDistanceToCamera.bind(this));let c=e.refine===Et.REPLACE&&e.hasRenderContent&&!o,l=!1,h=!0;for(let f of a)if(f._selectionDepth=s,f.isVisibleAndInRequestVolume?(n.find(f)&&n.delete(f),n.push(f),l=!0):(c||i)&&(this.loadTile(f,r),this.touchTile(f,r)),c){let u;if(f._inRequestVolume?f.hasRenderContent?u=f.contentAvailable:u=this.executeEmptyTraversal(f,r):u=!1,h=h&&u,!h)return!1}return l||(h=!1),h}updateTile(e,r){this.updateTileVisibility(e,r)}selectTile(e,r){this.shouldSelectTile(e)&&(e._selectedFrame=r.frameNumber,this.selectedTiles[e.id]=e)}loadTile(e,r){this.shouldLoadTile(e)&&(e._requestedFrame=r.frameNumber,e._priority=e._getPriority(),this.requestedTiles[e.id]=e)}touchTile(e,r){e.tileset._cache.touch(e),e._touchedFrame=r.frameNumber}canTraverse(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;return e.hasChildren?e.hasTilesetContent?!e.contentExpired:!s&&!e.isVisibleAndInRequestVolume?!1:this.shouldRefine(e,r,n):!1}shouldLoadTile(e){return e.hasUnloadedContent||e.contentExpired}shouldSelectTile(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,s=e._screenSpaceError;return n&&(s=e.getScreenSpaceError(r,!0)),s>e.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(e,r){let n=[];if(this.options.viewportTraversersMap)for(let s in this.options.viewportTraversersMap)this.options.viewportTraversersMap[s]===r.viewport.id&&n.push(s);else n.push(r.viewport.id);e.updateVisibility(r,n)}compareDistanceToCamera(e,r){return e._distanceToCamera-r._distanceToCamera}anyChildrenVisible(e,r){let n=!1;for(let s of e.children)s.updateVisibility(r),n=n||s.isVisibleAndInRequestVolume;return n}executeEmptyTraversal(e,r){let n=!0,s=this._emptyTraversalStack;for(s.push(e);s.length>0;){let i=s.pop(),o=!i.hasRenderContent&&this.canTraverse(i,r,!1,!1),a=!i.hasRenderContent&&i.children.length===0;if(!o&&!i.contentAvailable&&!a&&(n=!1),this.updateTile(i,r),i.isVisibleAndInRequestVolume||(this.loadTile(i,r),this.touchTile(i,r)),o){let c=i.children;for(let l of c)s.push(l)}}return n}};var yd=new m;function LE(t){return t!=null}var Ze=class{constructor(e,r,n){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"";this.tileset=void 0,this.header=void 0,this.id=void 0,this.url=void 0,this.parent=void 0,this.refine=void 0,this.type=void 0,this.contentUrl=void 0,this.lodMetricType="geometricError",this.lodMetricValue=0,this.boundingVolume=null,this.content=null,this.contentState=_t.UNLOADED,this.gpuMemoryUsageInBytes=0,this.children=[],this.depth=0,this.viewportIds=[],this.transform=new D,this.extensions=null,this.implicitTiling=null,this.userData={},this.computedTransform=void 0,this.hasEmptyContent=!1,this.hasTilesetContent=!1,this.traverser=new ne({}),this._cacheNode=null,this._frameNumber=null,this._expireDate=null,this._expiredContent=null,this._boundingBox=void 0,this._distanceToCamera=0,this._screenSpaceError=0,this._visibilityPlaneMask=void 0,this._visible=void 0,this._contentBoundingVolume=void 0,this._viewerRequestVolume=void 0,this._initialTransform=new D,this._priority=0,this._selectedFrame=0,this._requestedFrame=0,this._selectionDepth=0,this._touchedFrame=0,this._centerZDepth=0,this._shouldRefine=!1,this._stackLength=0,this._visitedFrame=0,this._inRequestVolume=!1,this._lodJudge=null,this.header=r,this.tileset=e,this.id=s||r.id,this.url=r.url,this.parent=n,this.refine=this._getRefine(r.refine),this.type=r.type,this.contentUrl=r.contentUrl,this._initializeLodMetric(r),this._initializeTransforms(r),this._initializeBoundingVolumes(r),this._initializeContent(r),this._initializeRenderingState(r),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===_t.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===_t.UNLOADED}get contentExpired(){return this.contentState===_t.EXPIRED}get contentFailed(){return this.contentState===_t.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=_d(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(e,r){switch(this.tileset.type){case ft.I3S:return ec(this,e);case ft.TILES3D:return Rd(this,e,r);default:throw new Error("Unsupported tileset type")}}unselect(){this._selectedFrame=0}_getGpuMemoryUsageInBytes(){return this.content.gpuMemoryUsageInBytes||this.content.byteLength||0}_getPriority(){let e=this.tileset._traverser,{skipLevelOfDetail:r}=e.options,n=this.refine===Et.ADD||r;if(n&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===_t.UNLOADED)return-1;let s=this.parent,o=s&&(!n||this._screenSpaceError===0||s.hasTilesetContent)?s._screenSpaceError:this._screenSpaceError,a=e.root?e.root._screenSpaceError:0;return Math.max(a-o,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=_t.LOADING;let r=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!r)return this.contentState=_t.UNLOADED,!1;try{let n=this.tileset.getTileUrl(this.contentUrl),s=this.tileset.loader,i={...this.tileset.loadOptions,[s.id]:{...this.tileset.loadOptions[s.id],isTileset:this.type==="json",...this._getLoaderSpecificOptions(s.id)}};return this.content=await(0,Id.load)(n,s,i),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=_t.READY,this._onContentLoaded(),!0}catch(n){throw this.contentState=_t.FAILED,n}finally{r.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=_t.UNLOADED,!0}updateVisibility(e,r){if(this._frameNumber===e.frameNumber)return;let n=this.parent,s=n?n._visibilityPlaneMask:ot.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){let i=n?n.computedTransform:this.tileset.modelMatrix;this._updateTransform(i)}this._distanceToCamera=this.distanceToTile(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._visibilityPlaneMask=this.visibility(e,s),this._visible=this._visibilityPlaneMask!==ot.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=r}visibility(e,r){let{cullingVolume:n}=e,{boundingVolume:s}=this;return n.computeVisibilityWithPlaneMask(s,r)}contentVisibility(){return!0}distanceToTile(e){let r=this.boundingVolume;return Math.sqrt(Math.max(r.distanceSquaredTo(e.camera.position),0))}cameraSpaceZDepth(e){let{camera:r}=e,n=this.boundingVolume;return yd.subVectors(n.center,r.position),r.direction.dot(yd)}insideViewerRequestVolume(e){let r=this._viewerRequestVolume;return!r||r.distanceSquaredTo(e.camera.position)<=0}updateExpiration(){if(LE(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){let e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=_t.EXPIRED,this._expiredContent=this.content)}}get extras(){return this.header.extras}_initializeLodMetric(e){"lodMetricType"in e?this.lodMetricType=e.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 e?this.lodMetricValue=e.lodMetricValue:(this.lodMetricValue=this.parent&&this.parent.lodMetricValue||this.tileset.lodMetricValue,console.warn("3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue"))}_initializeTransforms(e){this.transform=e.transform?new D(e.transform):new D;let r=this.parent,n=this.tileset,s=r&&r.computedTransform?r.computedTransform.clone():n.modelMatrix.clone();this.computedTransform=new D(s).multiplyRight(this.transform);let i=r&&r._initialTransform?r._initialTransform.clone():new D;this._initialTransform=new D(i).multiplyRight(this.transform)}_initializeBoundingVolumes(e){this._contentBoundingVolume=null,this._viewerRequestVolume=null,this._updateBoundingVolume(e)}_initializeContent(e){this.content={_tileset:this.tileset,_tile:this},this.hasEmptyContent=!0,this.contentState=_t.UNLOADED,this.hasTilesetContent=!1,e.contentUrl&&(this.content=null,this.hasEmptyContent=!1)}_initializeRenderingState(e){this.depth=e.level||(this.parent?this.parent.depth+1:0),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._visibilityPlaneMask=ot.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(e){return e||this.parent&&this.parent.refine||Et.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(e){this.boundingVolume=hi(e.boundingVolume,this.computedTransform,this.boundingVolume);let r=e.content;r&&(r.boundingVolume&&(this._contentBoundingVolume=hi(r.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=hi(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(){let r=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:new D).clone().multiplyRight(this.transform);r.equals(this.computedTransform)||(this.computedTransform=r,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions(e){switch(e){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 Md(this.tileset.tileset)}}};var fi=class extends ne{compareDistanceToCamera(e,r){return r._distanceToCamera===0&&e._distanceToCamera===0?r._centerZDepth-e._centerZDepth:r._distanceToCamera-e._distanceToCamera}updateTileVisibility(e,r){if(super.updateTileVisibility(e,r),!e.isVisibleAndInRequestVolume)return;let n=e.children.length>0;if(e.hasTilesetContent&&n){let o=e.children[0];this.updateTileVisibility(o,r),e._visible=o._visible;return}if(this.meetsScreenSpaceErrorEarly(e,r)){e._visible=!1;return}let s=e.refine===Et.REPLACE,i=e._optimChildrenWithinParent===ud.USE_OPTIMIZATION;if(s&&i&&n&&!this.anyChildrenVisible(e,r)){e._visible=!1;return}}meetsScreenSpaceErrorEarly(e,r){let{parent:n}=e;return!n||n.hasTilesetContent||n.refine!==Et.ADD?!1:!this.shouldRefine(e,r,!0)}};var Fd=v(Cr(),1);var ui=class{constructor(){this.frameNumberMap=new Map}register(e,r){let n=this.frameNumberMap.get(e)||new Map,s=n.get(r)||0;n.set(r,s+1),this.frameNumberMap.set(e,n)}deregister(e,r){let n=this.frameNumberMap.get(e);if(!n)return;let s=n.get(r)||1;n.set(r,s-1)}isZero(e,r){var n;return(((n=this.frameNumberMap.get(e))===null||n===void 0?void 0:n.get(r))||0)===0}};var rc={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"},di=class{constructor(){this._statusMap=void 0,this.pendingTilesRegister=new ui,this._statusMap={}}add(e,r,n,s){if(!this._statusMap[r]){let{frameNumber:i,viewport:{id:o}}=s;this._statusMap[r]={request:e,callback:n,key:r,frameState:s,status:rc.REQUESTED},this.pendingTilesRegister.register(o,i),e().then(a=>{this._statusMap[r].status=rc.COMPLETED;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),this._statusMap[r].callback(a,s)}).catch(a=>{this._statusMap[r].status=rc.ERROR;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),n(a)})}}update(e,r){if(this._statusMap[e]){let{frameNumber:n,viewport:{id:s}}=this._statusMap[e].frameState;this.pendingTilesRegister.deregister(s,n);let{frameNumber:i,viewport:{id:o}}=r;this.pendingTilesRegister.register(o,i),this._statusMap[e].frameState=r}}find(e){return this._statusMap[e]}hasPendingTiles(e,r){return!this.pendingTilesRegister.isZero(e,r)}};var pi=class extends ne{constructor(e){super(e),this._tileManager=void 0,this._tileManager=new di}traversalFinished(e){return!this._tileManager.hasPendingTiles(e.viewport.id,this._frameNumber||0)}shouldRefine(e,r){return e._lodJudge=Bd(e,r),e._lodJudge==="DIG"}updateChildTiles(e,r){let n=e.header.children||[],s=e.children,i=e.tileset;for(let o of n){let a=`${o.id}-${r.viewport.id}`,c=s&&s.find(l=>l.id===a);if(c)c&&this.updateTile(c,r);else{let l=()=>this._loadTile(o.id,i);this._tileManager.find(a)?this._tileManager.update(a,r):(i.tileset.nodePages&&(l=()=>i.tileset.nodePagesTile.formTileFromNodePages(o.id)),this._tileManager.add(l,a,f=>this._onTileLoad(f,e,a),r))}}return!1}async _loadTile(e,r){let{loader:n}=r,s=r.getTileUrl(`${r.url}/nodes/${e}`),i={...r.loadOptions,i3s:{...r.loadOptions.i3s,isTileHeader:!0}};return await(0,Fd.load)(s,n,i)}_onTileLoad(e,r,n){let s=new Ze(r.tileset,e,r,n);r.children.push(s);let i=this._tileManager.find(s.id).frameState;this.updateTile(s,i),this._frameNumber===i.frameNumber&&(this.traversalFinished(i)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(s,i)}};var HE={description:"",ellipsoid:L.WGS84,modelMatrix:new D,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:t=>t,contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},gi="Tiles In Tileset(s)",nc="Tiles In Memory",Nd="Tiles In View",Od="Tiles To Render",bd="Tiles Loaded",sc="Tiles Loading",Pd="Tiles Unloaded",Dd="Failed Tile Loads",wd="Points/Vertices",ic="Tile Memory Use",vd="Maximum Screen Space Error",yn=class{constructor(e,r){this.options=void 0,this.loadOptions=void 0,this.type=void 0,this.tileset=void 0,this.loader=void 0,this.url=void 0,this.basePath=void 0,this.modelMatrix=void 0,this.ellipsoid=void 0,this.lodMetricType=void 0,this.lodMetricValue=void 0,this.refine=void 0,this.root=null,this.roots={},this.asset={},this.description="",this.properties=void 0,this.extras=null,this.attributions={},this.credits={},this.stats=void 0,this.contentFormats={draco:!1,meshopt:!1,dds:!1,ktx2:!1},this.cartographicCenter=null,this.cartesianCenter=null,this.zoom=1,this.boundingVolume=null,this.dynamicScreenSpaceErrorComputedDensity=0,this.maximumMemoryUsage=32,this.gpuMemoryUsageInBytes=0,this.memoryAdjustedScreenSpaceError=0,this._cacheBytes=0,this._cacheOverflowBytes=0,this._frameNumber=0,this._queryParams={},this._extensionsUsed=[],this._tiles={},this._pendingCount=0,this.selectedTiles=[],this.traverseCounter=0,this.geometricError=0,this.lastUpdatedVieports=null,this._requestedTiles=[],this._emptyTiles=[],this.frameStateData={},this._traverser=void 0,this._cache=new ai,this._requestScheduler=void 0,this.updatePromise=null,this.tilesetInitializationPromise=void 0,this.options={...HE,...r},this.tileset=e,this.loader=e.loader,this.type=e.type,this.url=e.url,this.basePath=e.basePath||Te.dirname(this.url),this.modelMatrix=this.options.modelMatrix,this.ellipsoid=this.options.ellipsoid,this.lodMetricType=e.lodMetricType,this.lodMetricValue=e.lodMetricValue,this.refine=e.root.refine,this.loadOptions=this.options.loadOptions||{},this._traverser=this._initializeTraverser(),this._requestScheduler=new me({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 _e({id:this.url}),this._initializeStats(),this.tilesetInitializationPromise=this._initializeTileSet(e)}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(e){this.options={...this.options,...e}}getTileUrl(e){if(e.startsWith("data:"))return e;let n=e;return this.queryParams.length&&(n=`${e}${e.includes("?")?"&":"?"}${this.queryParams}`),n}hasExtension(e){return Boolean(this._extensionsUsed.indexOf(e)>-1)}update(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;this.tilesetInitializationPromise.then(()=>{!e&&this.lastUpdatedVieports?e=this.lastUpdatedVieports:this.lastUpdatedVieports=e,e&&this.doUpdate(e)})}async selectTiles(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return await this.tilesetInitializationPromise,e&&(this.lastUpdatedVieports=e),this.updatePromise||(this.updatePromise=new Promise(r=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),r(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(e){if("loadTiles"in this.options&&!this.options.loadTiles||this.traverseCounter>0)return;let r=e instanceof Array?e:[e];this._cache.reset(),this._frameNumber++,this.traverseCounter=r.length;let n=[];for(let s of r){let i=s.id;this._needTraverse(i)?n.push(i):this.traverseCounter--}for(let s of r){let i=s.id;if(this.roots[i]||(this.roots[i]=this._initializeTileHeaders(this.tileset,null)),!n.includes(i))continue;let o=cd(s,this._frameNumber);this._traverser.traverse(this.roots[i],o,this.options)}}_needTraverse(e){let r=e;return this.options.viewportTraversersMap&&(r=this.options.viewportTraversersMap[e]),r===e}_onTraversalEnd(e){let r=e.viewport.id;this.frameStateData[r]||(this.frameStateData[r]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});let n=this.frameStateData[r],s=Object.values(this._traverser.selectedTiles),[i,o]=ld(s,e,this.options.maximumTilesSelected);n.selectedTiles=i;for(let a of o)a.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 e in this.frameStateData){let r=this.frameStateData[e];this.selectedTiles=this.selectedTiles.concat(r.selectedTiles),this._requestedTiles=this._requestedTiles.concat(r._requestedTiles),this._emptyTiles=this._emptyTiles.concat(r._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);for(let e of this.selectedTiles)this._tiles[e.id]=e;this._loadTiles(),this._unloadTiles(),this._updateStats()}_tilesChanged(e,r){if(e.length!==r.length)return!0;let n=new Set(e.map(o=>o.id)),s=new Set(r.map(o=>o.id)),i=e.filter(o=>!s.has(o.id)).length>0;return i=i||r.filter(o=>!n.has(o.id)).length>0,i}_loadTiles(){for(let e of this._requestedTiles)e.contentUnloaded&&this._loadTile(e)}_unloadTiles(){this._cache.unloadTiles(this,(e,r)=>e._unloadTile(r))}_updateStats(){let e=0,r=0;for(let n of this.selectedTiles)n.contentAvailable&&n.content&&(e++,n.content.pointCount?r+=n.content.pointCount:r+=n.content.vertexCount);this.stats.get(Nd).count=this.selectedTiles.length,this.stats.get(Od).count=e,this.stats.get(wd).count=r,this.stats.get(vd).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(e){this.type===ft.I3S&&(this.calculateViewPropsI3S(),e.root=await e.root),this.root=this._initializeTileHeaders(e,null),this.type===ft.TILES3D&&(this._initializeTiles3DTileset(e),this.calculateViewPropsTiles3D()),this.type===ft.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){var e;let r=this.tileset.fullExtent;if(r){let{xmin:s,xmax:i,ymin:o,ymax:a,zmin:c,zmax:l}=r;this.cartographicCenter=new m(s+(i-s)/2,o+(a-o)/2,c+(l-c)/2),this.cartesianCenter=new m,L.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=Qa(r,this.cartographicCenter,this.cartesianCenter);return}let n=(e=this.tileset.store)===null||e===void 0?void 0:e.extent;if(n){let[s,i,o,a]=n;this.cartographicCenter=new m(s+(o-s)/2,i+(a-i)/2,0),this.cartesianCenter=new m,L.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=fd(n,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new m,this.zoom=1}calculateViewPropsTiles3D(){let e=this.root,{center:r}=e.boundingVolume;if(!r){console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new m,this.zoom=1;return}r[0]!==0||r[1]!==0||r[2]!==0?(this.cartographicCenter=new m,L.WGS84.cartesianToCartographic(r,this.cartographicCenter)):this.cartographicCenter=new m(0,0,-L.WGS84.radii[0]),this.cartesianCenter=r,this.zoom=hd(e.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(gi),this.stats.get(sc),this.stats.get(nc),this.stats.get(Nd),this.stats.get(Od),this.stats.get(bd),this.stats.get(Pd),this.stats.get(Dd),this.stats.get(wd),this.stats.get(ic,"memory"),this.stats.get(vd)}_initializeTileHeaders(e,r){let n=new Ze(this,e.root,r);if(r&&(r.children.push(n),n.depth=r.depth+1),this.type===ft.TILES3D){let i=[];for(i.push(n);i.length>0;){let o=i.pop();this.stats.get(gi).incrementCount();let a=o.header.children||[];for(let c of a){var s;let l=new Ze(this,c,o);if((s=l.contentUrl)!==null&&s!==void 0&&s.includes("?session=")){let f=new URL(l.contentUrl).searchParams.get("session");f&&(this._queryParams.session=f)}o.children.push(l),l.depth=o.depth+1,i.push(l)}}}return n}_initializeTraverser(){let e;switch(this.type){case ft.TILES3D:e=fi;break;case ft.I3S:e=pi;break;default:e=ne}return new e({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders(e){this._destroySubtree(e)}async _loadTile(e){let r;try{this._onStartTileLoading(),r=await e.loadContent()}catch(n){this._onTileLoadError(e,n instanceof Error?n:new Error("load failed"))}finally{this._onEndTileLoading(),this._onTileLoad(e,r)}}_onTileLoadError(e,r){this.stats.get(Dd).incrementCount();let n=r.message||r.toString(),s=e.url;console.error(`A 3D tile failed to load: ${e.url} ${n}`),this.options.onTileError(e,n,s)}_onTileLoad(e,r){if(r){if(this.type===ft.I3S){var n,s;let i=((n=this.tileset)===null||n===void 0||(s=n.nodePagesTile)===null||s===void 0?void 0:s.nodesInNodePages)||0;this.stats.get(gi).reset(),this.stats.get(gi).addCount(i)}e&&e.content&&id(e,e.content),this.updateContentTypes(e),this._addTileToCache(e),this.options.onTileLoad(e)}}updateContentTypes(e){if(this.type===ft.I3S)switch(e.header.isDracoGeometry&&(this.contentFormats.draco=!0),e.header.textureFormat){case"dds":this.contentFormats.dds=!0;break;case"ktx2":this.contentFormats.ktx2=!0;break;default:}else if(this.type===ft.TILES3D){var r;let{extensionsRemoved:n=[]}=((r=e.content)===null||r===void 0?void 0:r.gltf)||{};n.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),n.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),n.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(sc).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(sc).decrementCount()}_addTileToCache(e){this._cache.add(this,e,r=>r._updateCacheStats(e))}_updateCacheStats(e){this.stats.get(bd).incrementCount(),this.stats.get(nc).incrementCount(),this.gpuMemoryUsageInBytes+=e.gpuMemoryUsageInBytes||0,this.stats.get(ic).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(e){this.gpuMemoryUsageInBytes-=e.gpuMemoryUsageInBytes||0,this.stats.get(nc).decrementCount(),this.stats.get(Pd).incrementCount(),this.stats.get(ic).count=this.gpuMemoryUsageInBytes,this.options.onTileUnload(e),e.unloadContent()}_destroy(){let e=[];for(this.root&&e.push(this.root);e.length>0;){let r=e.pop();for(let n of r.children)e.push(n);this._destroyTile(r)}this.root=null}_destroySubtree(e){let r=e,n=[];for(n.push(r);n.length>0;){e=n.pop();for(let s of e.children)n.push(s);e!==r&&this._destroyTile(e)}r.children=[]}_destroyTile(e){this._cache.unloadTile(this,e),this._unloadTile(e),e.destroy()}_initializeTiles3DTileset(e){if(e.queryString){let r=new URLSearchParams(e.queryString),n=Object.fromEntries(r.entries());this._queryParams={...this._queryParams,...n}}if(this.asset=e.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=e.properties,this.geometricError=e.geometricError,this._extensionsUsed=e.extensionsUsed||[],this.extras=e.extras}_initializeI3STileset(){this.loadOptions.i3s&&"token"in this.loadOptions.i3s&&(this._queryParams.token=this.loadOptions.i3s.token)}};var Ai="4.1.0";var Qe={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GEOMETRY:"geom",VECTOR:"vect",GLTF:"glTF"},VD=Object.keys(Qe);function oc(t,e,r){V(t instanceof ArrayBuffer);let n=new TextDecoder("utf8"),s=new Uint8Array(t,e,r);return n.decode(s)}function Ud(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=new DataView(t);return`${String.fromCharCode(r.getUint8(e+0))}${String.fromCharCode(r.getUint8(e+1))}${String.fromCharCode(r.getUint8(e+2))}${String.fromCharCode(r.getUint8(e+3))}`}var Ld="4.1.0";var Hd={name:"Draco",id:"draco",module:"draco",version:Ld,worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",libraryPath:"libs/",extraAttributes:{},attributeNameEntry:void 0}}};function Vd(t){switch(t.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function $e(t){let e=1/0,r=1/0,n=1/0,s=-1/0,i=-1/0,o=-1/0,a=t.POSITION?t.POSITION.value:[],c=a&&a.length;for(let l=0;l<c;l+=3){let h=a[l],f=a[l+1],u=a[l+2];e=h<e?h:e,r=f<r?f:r,n=u<n?u:n,s=h>s?h:s,i=f>i?f:i,o=u>o?u:o}return[[e,r,n],[s,i,o]]}function ac(t,e,r){let n=Vd(e.value),s=r||Xd(e);return{name:t,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:n}]},nullable:!1,metadata:s}}function Xd(t){let e={};return"byteOffset"in t&&(e.byteOffset=t.byteOffset.toString(10)),"byteStride"in t&&(e.byteStride=t.byteStride.toString(10)),"normalized"in t&&(e.normalized=t.normalized.toString()),e}function zd(t,e,r){let n=kd(e.metadata),s=[],i=VE(e.attributes);for(let o in t){let a=t[o],c=Wd(o,a,i[o]);s.push(c)}if(r){let o=Wd("indices",r);s.push(o)}return{fields:s,metadata:n}}function VE(t){let e={};for(let r in t){let n=t[r];e[n.name||"undefined"]=n}return e}function Wd(t,e,r){let n=r?kd(r.metadata):void 0;return ac(t,e,n)}function kd(t){Object.entries(t);let e={};for(let r in t)e[`${r}.string`]=JSON.stringify(t[r]);return e}var Gd={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},XE={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},WE=4,In=class{constructor(e){this.draco=void 0,this.decoder=void 0,this.metadataQuerier=void 0,this.draco=e,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}destroy(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}parseSync(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(r);let s=this.decoder.GetEncodedGeometryType(n),i=s===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let o;switch(s){case this.draco.TRIANGULAR_MESH:o=this.decoder.DecodeBufferToMesh(n,i);break;case this.draco.POINT_CLOUD:o=this.decoder.DecodeBufferToPointCloud(n,i);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!o.ok()||!i.ptr){let u=`DRACO decompression failed: ${o.error_msg()}`;throw new Error(u)}let a=this._getDracoLoaderData(i,s,r),c=this._getMeshData(i,a,r),l=$e(c.attributes),h=zd(c.attributes,a,c.indices);return{loader:"draco",loaderData:a,header:{vertexCount:i.num_points(),boundingBox:l},...c,schema:h}}finally{this.draco.destroy(n),i&&this.draco.destroy(i)}}_getDracoLoaderData(e,r,n){let s=this._getTopLevelMetadata(e),i=this._getDracoAttributes(e,n);return{geometry_type:r,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:s,attributes:i}}_getDracoAttributes(e,r){let n={};for(let s=0;s<e.num_attributes();s++){let i=this.decoder.GetAttribute(e,s),o=this._getAttributeMetadata(e,s);n[i.unique_id()]={unique_id:i.unique_id(),attribute_type:i.attribute_type(),data_type:i.data_type(),num_components:i.num_components(),byte_offset:i.byte_offset(),byte_stride:i.byte_stride(),normalized:i.normalized(),attribute_index:s,metadata:o};let a=this._getQuantizationTransform(i,r);a&&(n[i.unique_id()].quantization_transform=a);let c=this._getOctahedronTransform(i,r);c&&(n[i.unique_id()].octahedron_transform=c)}return n}_getMeshData(e,r,n){let s=this._getMeshAttributes(r,e,n);if(!s.POSITION)throw new Error("DRACO: No position attribute found.");if(e instanceof this.draco.Mesh)switch(n.topology){case"triangle-strip":return{topology:"triangle-strip",mode:4,attributes:s,indices:{value:this._getTriangleStripIndices(e),size:1}};case"triangle-list":default:return{topology:"triangle-list",mode:5,attributes:s,indices:{value:this._getTriangleListIndices(e),size:1}}}return{topology:"point-list",mode:0,attributes:s}}_getMeshAttributes(e,r,n){let s={};for(let i of Object.values(e.attributes)){let o=this._deduceAttributeName(i,n);i.name=o;let{value:a,size:c}=this._getAttributeValues(r,i);s[o]={value:a,size:c,byteOffset:i.byte_offset,byteStride:i.byte_stride,normalized:i.normalized}}return s}_getTriangleListIndices(e){let n=e.num_faces()*3,s=n*WE,i=this.draco._malloc(s);try{return this.decoder.GetTrianglesUInt32Array(e,s,i),new Uint32Array(this.draco.HEAPF32.buffer,i,n).slice()}finally{this.draco._free(i)}}_getTriangleStripIndices(e){let r=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,r),GE(r)}finally{this.draco.destroy(r)}}_getAttributeValues(e,r){let n=XE[r.data_type],s=r.num_components,o=e.num_points()*s,a=o*n.BYTES_PER_ELEMENT,c=zE(this.draco,n),l,h=this.draco._malloc(a);try{let f=this.decoder.GetAttribute(e,r.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,f,c,a,h),l=new n(this.draco.HEAPF32.buffer,h,o).slice()}finally{this.draco._free(h)}return{value:l,size:s}}_deduceAttributeName(e,r){let n=e.unique_id;for(let[o,a]of Object.entries(r.extraAttributes||{}))if(a===n)return o;let s=e.attribute_type;for(let o in Gd)if(this.draco[o]===s)return Gd[o];let i=r.attributeNameEntry||"name";return e.metadata[i]?e.metadata[i].string:`CUSTOM_ATTRIBUTE_${n}`}_getTopLevelMetadata(e){let r=this.decoder.GetMetadata(e);return this._getDracoMetadata(r)}_getAttributeMetadata(e,r){let n=this.decoder.GetAttributeMetadata(e,r);return this._getDracoMetadata(n)}_getDracoMetadata(e){if(!e||!e.ptr)return{};let r={},n=this.metadataQuerier.NumEntries(e);for(let s=0;s<n;s++){let i=this.metadataQuerier.GetEntryName(e,s);r[i]=this._getDracoMetadataField(e,i)}return r}_getDracoMetadataField(e,r){let n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,r,n);let s=kE(n);return{int:this.metadataQuerier.GetIntEntry(e,r),string:this.metadataQuerier.GetStringEntry(e,r),double:this.metadataQuerier.GetDoubleEntry(e,r),intArray:s}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){let{quantizedAttributes:r=[],octahedronAttributes:n=[]}=e,s=[...r,...n];for(let i of s)this.decoder.SkipAttributeTransform(this.draco[i])}_getQuantizationTransform(e,r){let{quantizedAttributes:n=[]}=r,s=e.attribute_type();if(n.map(o=>this.decoder[o]).includes(s)){let o=new this.draco.AttributeQuantizationTransform;try{if(o.InitFromAttribute(e))return{quantization_bits:o.quantization_bits(),range:o.range(),min_values:new Float32Array([1,2,3]).map(a=>o.min_value(a))}}finally{this.draco.destroy(o)}}return null}_getOctahedronTransform(e,r){let{octahedronAttributes:n=[]}=r,s=e.attribute_type();if(n.map(o=>this.decoder[o]).includes(s)){let o=new this.draco.AttributeQuantizationTransform;try{if(o.InitFromAttribute(e))return{quantization_bits:o.quantization_bits()}}finally{this.draco.destroy(o)}}return null}};function zE(t,e){switch(e){case Float32Array:return t.DT_FLOAT32;case Int8Array:return t.DT_INT8;case Int16Array:return t.DT_INT16;case Int32Array:return t.DT_INT32;case Uint8Array:return t.DT_UINT8;case Uint16Array:return t.DT_UINT16;case Uint32Array:return t.DT_UINT32;default:return t.DT_INVALID}}function kE(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}function GE(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}var KE="1.5.6",JE="1.4.1",cc=`https://www.gstatic.com/draco/versioned/decoders/${KE}`,Rt={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},lc={[Rt.DECODER]:`${cc}/${Rt.DECODER}`,[Rt.DECODER_WASM]:`${cc}/${Rt.DECODER_WASM}`,[Rt.FALLBACK_DECODER]:`${cc}/${Rt.FALLBACK_DECODER}`,[Rt.ENCODER]:`https://raw.githubusercontent.com/google/draco/${JE}/javascript/${Rt.ENCODER}`},Fn;async function Kd(t){let e=t.modules||{};return e.draco3d?Fn=Fn||e.draco3d.createDecoderModule({}).then(r=>({draco:r})):Fn=Fn||YE(t),await Fn}async function YE(t){let e,r;switch(t.draco&&t.draco.decoderType){case"js":e=await qt(lc[Rt.FALLBACK_DECODER],"draco",t,Rt.FALLBACK_DECODER);break;case"wasm":default:[e,r]=await Promise.all([await qt(lc[Rt.DECODER],"draco",t,Rt.DECODER),await qt(lc[Rt.DECODER_WASM],"draco",t,Rt.DECODER_WASM)])}return e=e||globalThis.DracoDecoderModule,await qE(e,r)}function qE(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t({...r,onModuleLoaded:s=>n({draco:s})})})}var _i={...Hd,parse:jE};async function jE(t,e){let{draco:r}=await Kd(e),n=new In(r);try{return n.parseSync(t,e?.draco)}finally{n.destroy()}}var ZE={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},st={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},w={...ZE,...st};var hc={[st.DOUBLE]:Float64Array,[st.FLOAT]:Float32Array,[st.UNSIGNED_SHORT]:Uint16Array,[st.UNSIGNED_INT]:Uint32Array,[st.UNSIGNED_BYTE]:Uint8Array,[st.BYTE]:Int8Array,[st.SHORT]:Int16Array,[st.INT]:Int32Array},QE={DOUBLE:st.DOUBLE,FLOAT:st.FLOAT,UNSIGNED_SHORT:st.UNSIGNED_SHORT,UNSIGNED_INT:st.UNSIGNED_INT,UNSIGNED_BYTE:st.UNSIGNED_BYTE,BYTE:st.BYTE,SHORT:st.SHORT,INT:st.INT},fc="Failed to convert GL type",dt=class{static fromTypedArray(e){e=ArrayBuffer.isView(e)?e.constructor:e;for(let r in hc)if(hc[r]===e)return r;throw new Error(fc)}static fromName(e){let r=QE[e];if(!r)throw new Error(fc);return r}static getArrayType(e){switch(e){case st.UNSIGNED_SHORT_5_6_5:case st.UNSIGNED_SHORT_4_4_4_4:case st.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:let r=hc[e];if(!r)throw new Error(fc);return r}}static getByteSize(e){return dt.getArrayType(e).BYTES_PER_ELEMENT}static validate(e){return Boolean(dt.getArrayType(e))}static createTypedArray(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,s=arguments.length>3?arguments[3]:void 0;s===void 0&&(s=(r.byteLength-n)/dt.getByteSize(e));let i=dt.getArrayType(e);return new i(r,n,s)}};function Jd(t,e){if(!t)throw new Error(`math.gl assertion failed. ${e}`)}function uc(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0],r=t>>11&31,n=t>>5&63,s=t&31;return e[0]=r<<3,e[1]=n<<2,e[2]=s<<3,e}var Ew=1/256;var Rw=new Ve,xw=new m,Sw=new Ve,Cw=new Ve,Bw=new Uint8Array(1);function Yd(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:255;return us(t,0,e)/e*2-1}function qd(t){return t<0?-1:1}function jd(t,e,r,n){if(Jd(n),t<0||t>r||e<0||e>r)throw new Error(`x and y must be unsigned normalized integers between 0 and ${r}`);if(n.x=Yd(t,r),n.y=Yd(e,r),n.z=1-(Math.abs(n.x)+Math.abs(n.y)),n.z<0){let s=n.x;n.x=(1-Math.abs(n.y))*qd(s),n.y=(1-Math.abs(s))*qd(n.y)}return n.normalize()}function dc(t,e,r){return jd(t,e,255,r)}var fe=class{constructor(e,r){this.json=void 0,this.buffer=void 0,this.featuresLength=0,this._cachedTypedArrays={},this.json=e,this.buffer=r}getExtension(e){return this.json.extensions&&this.json.extensions[e]}hasProperty(e){return Boolean(this.json[e])}getGlobalProperty(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:w.UNSIGNED_INT,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,s=this.json[e];return s&&Number.isFinite(s.byteOffset)?this._getTypedArrayFromBinary(e,r,n,1,s.byteOffset):s}getPropertyArray(e,r,n){let s=this.json[e];return s&&Number.isFinite(s.byteOffset)?("componentType"in s&&(r=dt.fromName(s.componentType)),this._getTypedArrayFromBinary(e,r,n,this.featuresLength,s.byteOffset)):this._getTypedArrayFromArray(e,r,s)}getProperty(e,r,n,s,i){let o=this.json[e];if(!o)return o;let a=this.getPropertyArray(e,r,n);if(n===1)return a[s];for(let c=0;c<n;++c)i[c]=a[n*s+c];return i}_getTypedArrayFromBinary(e,r,n,s,i){let o=this._cachedTypedArrays,a=o[e];return a||(a=dt.createTypedArray(r,this.buffer.buffer,this.buffer.byteOffset+i,s*n),o[e]=a),a}_getTypedArrayFromArray(e,r,n){let s=this._cachedTypedArrays,i=s[e];return i||(i=dt.createTypedArray(r,n),s[e]=i),i}};var $E={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},tR={SCALAR:(t,e)=>t[e],VEC2:(t,e)=>[t[2*e+0],t[2*e+1]],VEC3:(t,e)=>[t[3*e+0],t[3*e+1],t[3*e+2]],VEC4:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT2:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT3:(t,e)=>[t[9*e+0],t[9*e+1],t[9*e+2],t[9*e+3],t[9*e+4],t[9*e+5],t[9*e+6],t[9*e+7],t[9*e+8]],MAT4:(t,e)=>[t[16*e+0],t[16*e+1],t[16*e+2],t[16*e+3],t[16*e+4],t[16*e+5],t[16*e+6],t[16*e+7],t[16*e+8],t[16*e+9],t[16*e+10],t[16*e+11],t[16*e+12],t[16*e+13],t[16*e+14],t[16*e+15]]},eR={SCALAR:(t,e,r)=>{e[r]=t},VEC2:(t,e,r)=>{e[2*r+0]=t[0],e[2*r+1]=t[1]},VEC3:(t,e,r)=>{e[3*r+0]=t[0],e[3*r+1]=t[1],e[3*r+2]=t[2]},VEC4:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT2:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT3:(t,e,r)=>{e[9*r+0]=t[0],e[9*r+1]=t[1],e[9*r+2]=t[2],e[9*r+3]=t[3],e[9*r+4]=t[4],e[9*r+5]=t[5],e[9*r+6]=t[6],e[9*r+7]=t[7],e[9*r+8]=t[8],e[9*r+9]=t[9]},MAT4:(t,e,r)=>{e[16*r+0]=t[0],e[16*r+1]=t[1],e[16*r+2]=t[2],e[16*r+3]=t[3],e[16*r+4]=t[4],e[16*r+5]=t[5],e[16*r+6]=t[6],e[16*r+7]=t[7],e[16*r+8]=t[8],e[16*r+9]=t[9],e[16*r+10]=t[10],e[16*r+11]=t[11],e[16*r+12]=t[12],e[16*r+13]=t[13],e[16*r+14]=t[14],e[16*r+15]=t[15]}};function Zd(t,e,r,n){let{componentType:s}=t;V(t.componentType);let i=typeof s=="string"?dt.fromName(s):s,o=$E[t.type],a=tR[t.type],c=eR[t.type];return r+=t.byteOffset,{values:dt.createTypedArray(i,e,r,o*n),type:i,size:o,unpacker:a,packer:c}}var se=t=>t!==void 0;function Qd(t,e,r){if(!e)return null;let n=t.getExtension("3DTILES_batch_table_hierarchy"),s=e.HIERARCHY;return s&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),e.extensions=e.extensions||{},e.extensions["3DTILES_batch_table_hierarchy"]=s,n=s),n?rR(n,r):null}function rR(t,e){let r,n,s,i=t.instancesLength,o=t.classes,a=t.classIds,c=t.parentCounts,l=t.parentIds,h=i;se(a.byteOffset)&&(a.componentType=defaultValue(a.componentType,GL.UNSIGNED_SHORT),a.type=AttributeType.SCALAR,s=getBinaryAccessor(a),a=s.createArrayBufferView(e.buffer,e.byteOffset+a.byteOffset,i));let f;if(se(c))for(se(c.byteOffset)&&(c.componentType=defaultValue(c.componentType,GL.UNSIGNED_SHORT),c.type=AttributeType.SCALAR,s=getBinaryAccessor(c),c=s.createArrayBufferView(e.buffer,e.byteOffset+c.byteOffset,i)),f=new Uint16Array(i),h=0,r=0;r<i;++r)f[r]=h,h+=c[r];se(l)&&se(l.byteOffset)&&(l.componentType=defaultValue(l.componentType,GL.UNSIGNED_SHORT),l.type=AttributeType.SCALAR,s=getBinaryAccessor(l),l=s.createArrayBufferView(e.buffer,e.byteOffset+l.byteOffset,h));let u=o.length;for(r=0;r<u;++r){let A=o[r].length,T=o[r].instances,x=getBinaryProperties(A,T,e);o[r].instances=combine(x,T)}let d=new Array(u).fill(0),p=new Uint16Array(i);for(r=0;r<i;++r)n=a[r],p[r]=d[n],++d[n];let _={classes:o,classIds:a,classIndexes:p,parentCounts:c,parentIndexes:f,parentIds:l};return iR(_),_}function yr(t,e,r){if(!t)return;let n=t.parentCounts;return t.parentIds?r(t,e):n>0?nR(t,e,r):sR(t,e,r)}function nR(t,e,r){let n=t.classIds,s=t.parentCounts,i=t.parentIds,o=t.parentIndexes,a=n.length,c=scratchVisited;c.length=Math.max(c.length,a);let l=++marker,h=scratchStack;for(h.length=0,h.push(e);h.length>0;){if(e=h.pop(),c[e]===l)continue;c[e]=l;let f=r(t,e);if(se(f))return f;let u=s[e],d=o[e];for(let p=0;p<u;++p){let _=i[d+p];_!==e&&h.push(_)}}return null}function sR(t,e,r){let n=!0;for(;n;){let s=r(t,e);if(se(s))return s;let i=t.parentIds[e];n=i!==e,e=i}throw new Error("traverseHierarchySingleParent")}function iR(t){let e=[],n=t.classIds.length;for(let s=0;s<n;++s)$d(t,s,stack)}function $d(t,e,r){let n=t.parentCounts,s=t.parentIds,i=t.parentIndexes,a=t.classIds.length;if(!se(s))return;assert(e<a,`Parent index ${e} exceeds the total number of instances: ${a}`),assert(r.indexOf(e)===-1,"Circular dependency detected in the batch table hierarchy."),r.push(e);let c=se(n)?n[e]:1,l=se(n)?i[e]:e;for(let h=0;h<c;++h){let f=s[l+h];f!==e&&$d(t,f,r)}r.pop(e)}function xt(t){return t!=null}var mi=(t,e)=>t,oR={HIERARCHY:!0,extensions:!0,extras:!0},tr=class{constructor(e,r,n){var s;let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};this.json=void 0,this.binary=void 0,this.featureCount=void 0,this._extensions=void 0,this._properties=void 0,this._binaryProperties=void 0,this._hierarchy=void 0,V(n>=0),this.json=e||{},this.binary=r,this.featureCount=n,this._extensions=((s=this.json)===null||s===void 0?void 0:s.extensions)||{},this._properties={};for(let o in this.json)oR[o]||(this._properties[o]=this.json[o]);this._binaryProperties=this._initializeBinaryProperties(),i["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=Qd(this,this.json,this.binary))}getExtension(e){return this.json&&this.json.extensions&&this.json.extensions[e]}memorySizeInBytes(){return 0}isClass(e,r){if(this._checkBatchId(e),V(typeof r=="string",r),this._hierarchy){let n=yr(this._hierarchy,e,(s,i)=>{let o=s.classIds[i];return s.classes[o].name===r});return xt(n)}return!1}isExactClass(e,r){return V(typeof r=="string",r),this.getExactClassName(e)===r}getExactClassName(e){if(this._checkBatchId(e),this._hierarchy){let r=this._hierarchy.classIds[e];return this._hierarchy.classes[r].name}}hasProperty(e,r){return this._checkBatchId(e),V(typeof r=="string",r),xt(this._properties[r])||this._hasPropertyInHierarchy(e,r)}getPropertyNames(e,r){this._checkBatchId(e),r=xt(r)?r:[],r.length=0;let n=Object.keys(this._properties);return r.push(...n),this._hierarchy&&this._getPropertyNamesInHierarchy(e,r),r}getProperty(e,r){if(this._checkBatchId(e),V(typeof r=="string",r),this._binaryProperties){let s=this._binaryProperties[r];if(xt(s))return this._getBinaryProperty(s,e)}let n=this._properties[r];if(xt(n))return mi(n[e],!0);if(this._hierarchy){let s=this._getHierarchyProperty(e,r);if(xt(s))return s}}setProperty(e,r,n){let s=this.featureCount;if(this._checkBatchId(e),V(typeof r=="string",r),this._binaryProperties){let o=this._binaryProperties[r];if(o){this._setBinaryProperty(o,e,n);return}}if(this._hierarchy&&this._setHierarchyProperty(this,e,r,n))return;let i=this._properties[r];xt(i)||(this._properties[r]=new Array(s),i=this._properties[r]),i[e]=mi(n,!0)}_checkBatchId(e){if(!(e>=0&&e<this.featureCount))throw new Error("batchId not in range [0, featureCount - 1].")}_getBinaryProperty(e,r){return e.unpack(e.typedArray,r)}_setBinaryProperty(e,r,n){e.pack(n,e.typedArray,r)}_initializeBinaryProperties(){let e=null;for(let r in this._properties){let n=this._properties[r],s=this._initializeBinaryProperty(r,n);s&&(e=e||{},e[r]=s)}return e}_initializeBinaryProperty(e,r){if("byteOffset"in r){let n=r;V(this.binary,`Property ${e} requires a batch table binary.`),V(n.type,`Property ${e} requires a type.`);let s=Zd(n,this.binary.buffer,this.binary.byteOffset|0,this.featureCount);return{typedArray:s.values,componentCount:s.size,unpack:s.unpacker,pack:s.packer}}return null}_hasPropertyInHierarchy(e,r){if(!this._hierarchy)return!1;let n=yr(this._hierarchy,e,(s,i)=>{let o=s.classIds[i],a=s.classes[o].instances;return xt(a[r])});return xt(n)}_getPropertyNamesInHierarchy(e,r){yr(this._hierarchy,e,(n,s)=>{let i=n.classIds[s],o=n.classes[i].instances;for(let a in o)o.hasOwnProperty(a)&&r.indexOf(a)===-1&&r.push(a)})}_getHierarchyProperty(e,r){return yr(this._hierarchy,e,(n,s)=>{let i=n.classIds[s],o=n.classes[i],a=n.classIndexes[s],c=o.instances[r];return xt(c)?xt(c.typedArray)?this._getBinaryProperty(c,a):mi(c[a],!0):null})}_setHierarchyProperty(e,r,n,s){let i=yr(this._hierarchy,r,(o,a)=>{let c=o.classIds[a],l=o.classes[c],h=o.classIndexes[a],f=l.instances[n];return xt(f)?(V(a===r,`Inherited property "${n}" is read-only.`),xt(f.typedArray)?this._setBinaryProperty(f,h,s):f[h]=mi(s,!0),!0):!1});return xt(i)}};function Ne(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=new DataView(e);if(t.magic=n.getUint32(r,!0),r+=4,t.version=n.getUint32(r,!0),r+=4,t.byteLength=n.getUint32(r,!0),r+=4,t.version!==1)throw new Error(`3D Tile Version ${t.version} not supported`);return r}var Ir=4,tp="b3dm tile in legacy format.";function Fr(t,e,r){let n=new DataView(e),s;t.header=t.header||{};let i=n.getUint32(r,!0);r+=Ir;let o=n.getUint32(r,!0);r+=Ir;let a=n.getUint32(r,!0);r+=Ir;let c=n.getUint32(r,!0);return r+=Ir,a>=570425344?(r-=Ir*2,s=i,a=o,c=0,i=0,o=0,console.warn(tp)):c>=570425344&&(r-=Ir,s=a,a=i,c=o,i=0,o=0,console.warn(tp)),t.header.featureTableJsonByteLength=i,t.header.featureTableBinaryByteLength=o,t.header.batchTableJsonByteLength=a,t.header.batchTableBinaryByteLength=c,t.header.batchLength=s,r}function Nr(t,e,r,n){return r=aR(t,e,r,n),r=cR(t,e,r,n),r}function aR(t,e,r,n){let{featureTableJsonByteLength:s,featureTableBinaryByteLength:i,batchLength:o}=t.header||{};if(t.featureTableJson={BATCH_LENGTH:o||0},s&&s>0){let a=oc(e,r,s);t.featureTableJson=JSON.parse(a)}return r+=s||0,t.featureTableBinary=new Uint8Array(e,r,i),r+=i||0,r}function cR(t,e,r,n){let{batchTableJsonByteLength:s,batchTableBinaryByteLength:i}=t.header||{};if(s&&s>0){let o=oc(e,r,s);t.batchTableJson=JSON.parse(o),r+=s,i&&i>0&&(t.batchTableBinary=new Uint8Array(e,r,i),t.batchTableBinary=new Uint8Array(t.batchTableBinary),r+=i)}return r}function pc(t,e,r){if(!e&&(!t||!t.batchIds||!r))return null;let{batchIds:n,isRGB565:s,pointCount:i=0}=t;if(n&&r){let o=new Uint8ClampedArray(i*3);for(let a=0;a<i;a++){let c=n[a],h=r.getProperty(c,"dimensions").map(f=>f*255);o[a*3]=h[0],o[a*3+1]=h[1],o[a*3+2]=h[2]}return{type:w.UNSIGNED_BYTE,value:o,size:3,normalized:!0}}if(e&&s){let o=new Uint8ClampedArray(i*3);for(let a=0;a<i;a++){let c=uc(e[a]);o[a*3]=c[0],o[a*3+1]=c[1],o[a*3+2]=c[2]}return{type:w.UNSIGNED_BYTE,value:o,size:3,normalized:!0}}return e&&e.length===i*3?{type:w.UNSIGNED_BYTE,value:e,size:3,normalized:!0}:{type:w.UNSIGNED_BYTE,value:e||new Uint8ClampedArray,size:4,normalized:!0}}var ep=new m;function rp(t,e){if(!e)return null;if(t.isOctEncoded16P){let r=new Float32Array((t.pointsLength||0)*3);for(let n=0;n<(t.pointsLength||0);n++)dc(e[n*2],e[n*2+1],ep),ep.toArray(r,n*3);return{type:w.FLOAT,size:2,value:r}}return{type:w.FLOAT,size:2,value:e}}function np(t,e,r){return t.isQuantized?r["3d-tiles"]&&r["3d-tiles"].decodeQuantizedPositions?(t.isQuantized=!1,lR(t,e)):{type:w.UNSIGNED_SHORT,value:e,size:3,normalized:!0}:e}function lR(t,e){let r=new m,n=new Float32Array(t.pointCount*3);for(let s=0;s<t.pointCount;s++)r.set(e[s*3],e[s*3+1],e[s*3+2]).scale(1/t.quantizedRange).multiply(t.quantizedVolumeScale).add(t.quantizedVolumeOffset).toArray(n,s*3);return n}async function sp(t,e,r,n,s){r=Ne(t,e,r),r=Fr(t,e,r),r=Nr(t,e,r,n),hR(t);let{featureTable:i,batchTable:o}=fR(t);return await AR(t,i,o,n,s),uR(t,i,n),dR(t,i,o),pR(t,i),r}function hR(t){t.attributes={positions:null,colors:null,normals:null,batchIds:null},t.isQuantized=!1,t.isTranslucent=!1,t.isRGB565=!1,t.isOctEncoded16P=!1}function fR(t){let e=new fe(t.featureTableJson,t.featureTableBinary),r=e.getGlobalProperty("POINTS_LENGTH");if(!Number.isFinite(r))throw new Error("POINTS_LENGTH must be defined");e.featuresLength=r,t.featuresLength=r,t.pointsLength=r,t.pointCount=r,t.rtcCenter=e.getGlobalProperty("RTC_CENTER",w.FLOAT,3);let n=gR(t,e);return{featureTable:e,batchTable:n}}function uR(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.positions){if(e.hasProperty("POSITION"))t.attributes.positions=e.getPropertyArray("POSITION",w.FLOAT,3);else if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",w.UNSIGNED_SHORT,3);if(t.isQuantized=!0,t.quantizedRange=(1<<16)-1,t.quantizedVolumeScale=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",w.FLOAT,3),!t.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(t.quantizedVolumeOffset=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",w.FLOAT,3),!t.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");t.attributes.positions=np(t,n,r)}}if(!t.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}function dR(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.colors){let n=null;e.hasProperty("RGBA")?(n=e.getPropertyArray("RGBA",w.UNSIGNED_BYTE,4),t.isTranslucent=!0):e.hasProperty("RGB")?n=e.getPropertyArray("RGB",w.UNSIGNED_BYTE,3):e.hasProperty("RGB565")&&(n=e.getPropertyArray("RGB565",w.UNSIGNED_SHORT,1),t.isRGB565=!0),t.attributes.colors=pc(t,n,r)}e.hasProperty("CONSTANT_RGBA")&&(t.constantRGBA=e.getGlobalProperty("CONSTANT_RGBA",w.UNSIGNED_BYTE,4))}function pR(t,e){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.normals){let r=null;e.hasProperty("NORMAL")?r=e.getPropertyArray("NORMAL",w.FLOAT,3):e.hasProperty("NORMAL_OCT16P")&&(r=e.getPropertyArray("NORMAL_OCT16P",w.UNSIGNED_BYTE,2),t.isOctEncoded16P=!0),t.attributes.normals=rp(t,r)}}function gR(t,e){let r=null;if(!t.batchIds&&e.hasProperty("BATCH_ID")&&(t.batchIds=e.getPropertyArray("BATCH_ID",w.UNSIGNED_SHORT,1),t.batchIds)){let n=e.getGlobalProperty("BATCH_LENGTH");if(!n)throw new Error("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");let{batchTableJson:s,batchTableBinary:i}=t;r=new tr(s,i,n)}return r}async function AR(t,e,r,n,s){let i,o,a,c=t.batchTableJson&&t.batchTableJson.extensions&&t.batchTableJson.extensions["3DTILES_draco_point_compression"];c&&(a=c.properties);let l=e.getExtension("3DTILES_draco_point_compression");if(l){o=l.properties;let f=l.byteOffset,u=l.byteLength;if(!o||!Number.isFinite(f)||!u)throw new Error("Draco properties, byteOffset, and byteLength must be defined");i=(t.featureTableBinary||[]).slice(f,f+u),t.hasPositions=Number.isFinite(o.POSITION),t.hasColors=Number.isFinite(o.RGB)||Number.isFinite(o.RGBA),t.hasNormals=Number.isFinite(o.NORMAL),t.hasBatchIds=Number.isFinite(o.BATCH_ID),t.isTranslucent=Number.isFinite(o.RGBA)}if(!i)return!0;let h={buffer:i,properties:{...o,...a},featureTableProperties:o,batchTableProperties:a,dequantizeInShader:!1};return await _R(t,h,n,s)}async function _R(t,e,r,n){if(!n)return;let s={...r,draco:{...r?.draco,extraAttributes:e.batchTableProperties||{}}};delete s["3d-tiles"];let i=await Ct(e.buffer,_i,s,n),o=i.attributes.POSITION&&i.attributes.POSITION.value,a=i.attributes.COLOR_0&&i.attributes.COLOR_0.value,c=i.attributes.NORMAL&&i.attributes.NORMAL.value,l=i.attributes.BATCH_ID&&i.attributes.BATCH_ID.value,h=o&&i.attributes.POSITION.value.quantization,f=c&&i.attributes.NORMAL.value.quantization;if(h){let d=i.POSITION.data.quantization,p=d.range;t.quantizedVolumeScale=new m(p,p,p),t.quantizedVolumeOffset=new m(d.minValues),t.quantizedRange=(1<<d.quantizationBits)-1,t.isQuantizedDraco=!0}f&&(t.octEncodedRange=(1<<i.NORMAL.data.quantization.quantizationBits)-1,t.isOctEncodedDraco=!0);let u={};if(e.batchTableProperties)for(let d of Object.keys(e.batchTableProperties))i.attributes[d]&&i.attributes[d].value&&(u[d.toLowerCase()]=i.attributes[d].value);t.attributes={positions:o,colors:pc(t,a,void 0),normals:c,batchIds:l,...u}}var gc={};ht(gc,{decode:()=>FR,name:()=>IR});function at(t,e){if(!t)throw new Error(e||"assert failed: gltf")}var Ti={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Ei={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var mR=1.33,ip=["SCALAR","VEC2","VEC3","VEC4"],TR=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],ER=new Map(TR),RR={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},xR={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},SR={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function Ri(t){return ip[t-1]||ip[0]}function Or(t){let e=ER.get(t.constructor);if(!e)throw new Error("Illegal typed array");return e}function br(t,e){let r=SR[t.componentType],n=RR[t.type],s=xR[t.componentType],i=t.count*n,o=t.count*n*s;at(o>=0&&o<=e.byteLength);let a=Ei[t.componentType],c=Ti[t.type];return{ArrayType:r,length:i,byteLength:o,componentByteSize:a,numberOfComponentsInElement:c}}function Nn(t){let{images:e,bufferViews:r}=t;e=e||[],r=r||[];let n=e.map(o=>o.bufferView);r=r.filter(o=>!n.includes(o));let s=r.reduce((o,a)=>o+a.byteLength,0),i=e.reduce((o,a)=>{let{width:c,height:l}=a.image;return o+c*l},0);return s+Math.ceil(4*i*mR)}function op(t,e,r){let n=t.bufferViews[r];at(n);let s=n.buffer,i=e[s];at(i);let o=(n.byteOffset||0)+i.byteOffset;return new Uint8Array(i.arrayBuffer,o,n.byteLength)}function ap(t,e,r){var n,s;let i=typeof r=="number"?(n=t.accessors)===null||n===void 0?void 0:n[r]:r;if(!i)throw new Error(`No gltf accessor ${JSON.stringify(r)}`);let o=(s=t.bufferViews)===null||s===void 0?void 0:s[i.bufferView||0];if(!o)throw new Error(`No gltf buffer view for accessor ${o}`);let{arrayBuffer:a,byteOffset:c}=e[o.buffer],l=(c||0)+(i.byteOffset||0)+(o.byteOffset||0),{ArrayType:h,length:f,componentByteSize:u,numberOfComponentsInElement:d}=br(i,o),p=u*d,_=o.byteStride||p;if(typeof o.byteStride>"u"||o.byteStride===p)return new h(a,l,f);let A=new h(f);for(let T=0;T<i.count;T++){let x=new h(a,l+T*_,d);A.set(x,T*d)}return A}function CR(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}var K=class{constructor(e){this.gltf=void 0,this.sourceBuffers=void 0,this.byteLength=void 0,this.gltf={json:e?.json||CR(),buffers:e?.buffers||[],images:e?.images||[]},this.sourceBuffers=[],this.byteLength=0,this.gltf.buffers&&this.gltf.buffers[0]&&(this.byteLength=this.gltf.buffers[0].byteLength,this.sourceBuffers=[this.gltf.buffers[0]])}get json(){return this.gltf.json}getApplicationData(e){return this.json[e]}getExtraData(e){return(this.json.extras||{})[e]}hasExtension(e){let r=this.getUsedExtensions().find(s=>s===e),n=this.getRequiredExtensions().find(s=>s===e);return typeof r=="string"||typeof n=="string"}getExtension(e){let r=this.getUsedExtensions().find(s=>s===e),n=this.json.extensions||{};return r?n[e]:null}getRequiredExtension(e){return this.getRequiredExtensions().find(n=>n===e)?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getRemovedExtensions(){return this.json.extensionsRemoved||[]}getObjectExtension(e,r){return(e.extensions||{})[r]}getScene(e){return this.getObject("scenes",e)}getNode(e){return this.getObject("nodes",e)}getSkin(e){return this.getObject("skins",e)}getMesh(e){return this.getObject("meshes",e)}getMaterial(e){return this.getObject("materials",e)}getAccessor(e){return this.getObject("accessors",e)}getTexture(e){return this.getObject("textures",e)}getSampler(e){return this.getObject("samplers",e)}getImage(e){return this.getObject("images",e)}getBufferView(e){return this.getObject("bufferViews",e)}getBuffer(e){return this.getObject("buffers",e)}getObject(e,r){if(typeof r=="object")return r;let n=this.json[e]&&this.json[e][r];if(!n)throw new Error(`glTF file error: Could not find ${e}[${r}]`);return n}getTypedArrayForBufferView(e){e=this.getBufferView(e);let r=e.buffer,n=this.gltf.buffers[r];at(n);let s=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,s,e.byteLength)}getTypedArrayForAccessor(e){let r=this.getAccessor(e);return ap(this.gltf.json,this.gltf.buffers,r)}getTypedArrayForImageData(e){e=this.getAccessor(e);let r=this.getBufferView(e.bufferView),s=this.getBuffer(r.buffer).data,i=r.byteOffset||0;return new Uint8Array(s,i,r.byteLength)}addApplicationData(e,r){return this.json[e]=r,this}addExtraData(e,r){return this.json.extras=this.json.extras||{},this.json.extras[e]=r,this}addObjectExtension(e,r,n){return e.extensions=e.extensions||{},e.extensions[r]=n,this.registerUsedExtension(r),this}setObjectExtension(e,r,n){let s=e.extensions||{};s[r]=n}removeObjectExtension(e,r){let n=e?.extensions||{};if(n[r]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let s=this.json.extensionsRemoved;s.includes(r)||s.push(r)}delete n[r]}addExtension(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return at(r),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=r,this.registerUsedExtension(e),r}addRequiredExtension(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return at(r),this.addExtension(e,r),this.registerRequiredExtension(e),r}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(r=>r===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(r=>r===e)||this.json.extensionsRequired.push(e)}removeExtension(e){var r;if((r=this.json.extensions)!==null&&r!==void 0&&r[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let n=this.json.extensionsRemoved;n.includes(e)||n.push(e)}this.json.extensions&&delete this.json.extensions[e],this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e)}setDefaultScene(e){this.json.scene=e}addScene(e){let{nodeIndices:r}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:r}),this.json.scenes.length-1}addNode(e){let{meshIndex:r,matrix:n}=e;this.json.nodes=this.json.nodes||[];let s={mesh:r};return n&&(s.matrix=n),this.json.nodes.push(s),this.json.nodes.length-1}addMesh(e){let{attributes:r,indices:n,material:s,mode:i=4}=e,a={primitives:[{attributes:this._addAttributes(r),mode:i}]};if(n){let c=this._addIndices(n);a.primitives[0].indices=c}return Number.isFinite(s)&&(a.primitives[0].material=s),this.json.meshes=this.json.meshes||[],this.json.meshes.push(a),this.json.meshes.length-1}addPointCloud(e){let n={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(n),this.json.meshes.length-1}addImage(e,r){let n=He(e),s=r||n?.mimeType,o={bufferView:this.addBufferView(e),mimeType:s};return this.json.images=this.json.images||[],this.json.images.push(o),this.json.images.length-1}addBufferView(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.byteLength,s=e.byteLength;at(Number.isFinite(s)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);let i={buffer:r,byteOffset:n,byteLength:s};return this.byteLength+=Ae(s,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(i),this.json.bufferViews.length-1}addAccessor(e,r){let n={bufferView:e,type:Ri(r.size),componentType:r.componentType,count:r.count,max:r.max,min:r.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{size:3},n=this.addBufferView(e),s={min:r.min,max:r.max};(!s.min||!s.max)&&(s=this._getAccessorMinMax(e,r.size));let i={size:r.size,componentType:Or(e),count:Math.round(e.length/r.size),min:s.min,max:s.max};return this.addAccessor(n,Object.assign(i,r))}addTexture(e){let{imageIndex:r}=e,n={source:r};return this.json.textures=this.json.textures||[],this.json.textures.push(n),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){var e,r;this.gltf.buffers=[];let n=this.byteLength,s=new ArrayBuffer(n),i=new Uint8Array(s),o=0;for(let a of this.sourceBuffers||[])o=So(a,i,o);(e=this.json)!==null&&e!==void 0&&(r=e.buffers)!==null&&r!==void 0&&r[0]?this.json.buffers[0].byteLength=n:this.json.buffers=[{byteLength:n}],this.gltf.binary=s,this.sourceBuffers=[s]}_removeStringFromArray(e,r){let n=!0;for(;n;){let s=e.indexOf(r);s>-1?e.splice(s,1):n=!1}}_addAttributes(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={};for(let n in e){let s=e[n],i=this._getGltfAttributeName(n),o=this.addBinaryBuffer(s.value,s);r[i]=o}return r}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.toLowerCase()){case"position":case"positions":case"vertices":return"POSITION";case"normal":case"normals":return"NORMAL";case"color":case"colors":return"COLOR_0";case"texcoord":case"texcoords":return"TEXCOORD_0";default:return e}}_getAccessorMinMax(e,r){let n={min:null,max:null};if(e.length<r)return n;n.min=[],n.max=[];let s=e.subarray(0,r);for(let i of s)n.min.push(i),n.max.push(i);for(let i=r;i<e.length;i+=r)for(let o=0;o<r;o++)n.min[0+o]=Math.min(n.min[0+o],e[i+o]),n.max[0+o]=Math.max(n.max[0+o],e[i+o]);return n}};function cp(t){return(t%1+1)%1}var lp={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},BR={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},hp={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function On(t,e){return hp[e]*lp[t]}function Pr(t,e,r,n){if(r!=="UINT8"&&r!=="UINT16"&&r!=="UINT32"&&r!=="UINT64")return null;let s=t.getTypedArrayForBufferView(e),i=Dr(s,"SCALAR",r,n+1);return i instanceof BigInt64Array||i instanceof BigUint64Array?null:i}function Dr(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,s=lp[e],i=BR[r],o=hp[r],a=n*s,c=a*o,l=t.buffer,h=t.byteOffset;return h%o!==0&&(l=new Uint8Array(l).slice(h,h+c).buffer,h=0),new i(l,h,a)}function wr(t,e,r){var n,s;let i=`TEXCOORD_${e.texCoord||0}`,o=r.attributes[i],a=t.getTypedArrayForAccessor(o),c=t.gltf.json,l=e.index,h=(n=c.textures)===null||n===void 0||(s=n[l])===null||s===void 0?void 0:s.source;if(typeof h<"u"){var f,u,d;let p=(f=c.images)===null||f===void 0||(u=f[h])===null||u===void 0?void 0:u.mimeType,_=(d=t.gltf.images)===null||d===void 0?void 0:d[h];if(_&&typeof _.width<"u"){let A=[];for(let T=0;T<a.length;T+=2){let x=MR(_,p,a,T,e.channels);A.push(x)}return A}}return[]}function xi(t,e,r,n,s){if(!(r!=null&&r.length))return;let i=[];for(let h of r){let f=n.findIndex(u=>u===h);f===-1&&(f=n.push(h)-1),i.push(f)}let o=new Uint32Array(i),a=t.gltf.buffers.push({arrayBuffer:o.buffer,byteOffset:o.byteOffset,byteLength:o.byteLength})-1,c=t.addBufferView(o,a,0),l=t.addAccessor(c,{size:1,componentType:Or(o),count:o.length});s.attributes[e]=l}function MR(t,e,r,n){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:[0],i={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},o=r[n],a=r[n+1],c=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(c=4);let l=yR(o,a,t,c),h=0;for(let f of s){let u=typeof f=="number"?Object.values(i)[f]:i[f],d=l+u.offset,p=en(t);if(p.data.length<=d)throw new Error(`${p.data.length} <= ${d}`);let _=p.data[d];h|=_<<u.shift}return h}function yR(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,s=r.width,i=cp(t)*(s-1),o=Math.round(i),a=r.height,c=cp(e)*(a-1),l=Math.round(c),h=r.components?r.components:n;return(l*s+o)*h}function Si(t,e,r,n,s){let i=[];for(let o=0;o<e;o++){let a=r[o],c=r[o+1]-r[o];if(c+a>n)break;let l=a/s,h=c/s;i.push(t.slice(l,l+h))}return i}function Ci(t,e,r){let n=[];for(let s=0;s<e;s++){let i=s*r;n.push(t.slice(i,i+r))}return n}function Bi(t,e,r,n){if(r)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){let s=[],i=new TextDecoder("utf8"),o=0;for(let a=0;a<t;a++){let c=n[a+1]-n[a];if(c+o<=e.length){let l=e.subarray(o,c+o),h=i.decode(l);s.push(h),o+=c}}return s}return[]}var fp="EXT_mesh_features",IR=fp;async function FR(t,e){let r=new K(t);NR(r,e)}function NR(t,e){let r=t.gltf.json;if(r.meshes)for(let n of r.meshes)for(let s of n.primitives)OR(t,s,e)}function OR(t,e,r){var n,s;if(!(r!=null&&(n=r.gltf)!==null&&n!==void 0&&n.loadBuffers))return;let i=(s=e.extensions)===null||s===void 0?void 0:s[fp],o=i?.featureIds;if(o)for(let c of o){var a;let l;if(typeof c.attribute<"u"){let h=`_FEATURE_ID_${c.attribute}`,f=e.attributes[h];l=t.getTypedArrayForAccessor(f)}else typeof c.texture<"u"&&r!==null&&r!==void 0&&(a=r.gltf)!==null&&a!==void 0&&a.loadImages?l=wr(t,c.texture,e):l=[];c.data=l}}var mc={};ht(mc,{decode:()=>PR,name:()=>bR});var Ac="EXT_structural_metadata",bR=Ac;async function PR(t,e){let r=new K(t);DR(r,e)}function DR(t,e){var r,n;if(!((r=e.gltf)!==null&&r!==void 0&&r.loadBuffers))return;let s=t.getExtension(Ac);s&&((n=e.gltf)!==null&&n!==void 0&&n.loadImages&&wR(t,s),vR(t,s))}function wR(t,e){let r=e.propertyTextures,n=t.gltf.json;if(r&&n.meshes)for(let s of n.meshes)for(let i of s.primitives)LR(t,r,i,e)}function vR(t,e){let r=e.schema;if(!r)return;let n=r.classes,s=e.propertyTables;if(n&&s)for(let i in n){let o=UR(s,i);o&&VR(t,r,o)}}function UR(t,e){for(let r of t)if(r.class===e)return r;return null}function LR(t,e,r,n){var s;if(!e)return;let i=(s=r.extensions)===null||s===void 0?void 0:s[Ac],o=i?.propertyTextures;if(o)for(let a of o){let c=e[a];HR(t,c,r,n)}}function HR(t,e,r,n){if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);let s=e.class;for(let o in e.properties){var i;let a=`${s}_${o}`,c=(i=e.properties)===null||i===void 0?void 0:i[o];if(!c)continue;c.data||(c.data=[]);let l=c.data,h=wr(t,c,r);h!==null&&(xi(t,a,h,l,r),c.data=l,n.dataAttributeNames.push(a))}}function VR(t,e,r){var n;let s=(n=e.classes)===null||n===void 0?void 0:n[r.class];if(!s)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let i=r.count;for(let a in s.properties){var o;let c=s.properties[a],l=(o=r.properties)===null||o===void 0?void 0:o[a];if(l){let h=XR(t,e,c,i,l);l.data=h}}}function XR(t,e,r,n,s){let i=[],o=s.values,a=t.getTypedArrayForBufferView(o),c=WR(t,r,s,n),l=zR(t,s,n);switch(r.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{i=kR(r,n,a,c);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${r.type}`);case"STRING":{i=Bi(n,a,c,l);break}case"ENUM":{i=GR(e,r,n,a,c);break}default:throw new Error(`Unknown classProperty type ${r.type}`)}return i}function WR(t,e,r,n){return e.array&&typeof e.count>"u"&&typeof r.arrayOffsets<"u"?Pr(t,r.arrayOffsets,r.arrayOffsetType||"UINT32",n):null}function zR(t,e,r){return typeof e.stringOffsets<"u"?Pr(t,e.stringOffsets,e.stringOffsetType||"UINT32",r):null}function kR(t,e,r,n){let s=t.array,i=t.count,o=On(t.type,t.componentType),a=r.byteLength/o,c;return t.componentType?c=Dr(r,t.type,t.componentType,a):c=r,s?n?Si(c,e,n,r.length,o):i?Ci(c,e,i):[]:c}function GR(t,e,r,n,s){var i;let o=e.enumType;if(!o)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");let a=(i=t.enums)===null||i===void 0?void 0:i[o];if(!a)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${o}`);let c=a.valueType||"UINT16",l=On(e.type,c),h=n.byteLength/l,f=Dr(n,e.type,c,h);if(f||(f=n),e.array){if(s)return KR({valuesData:f,numberOfElements:r,arrayOffsets:s,valuesDataBytesLength:n.length,elementSize:l,enumEntry:a});let u=e.count;return u?JR(f,r,u,a):[]}return _c(f,0,r,a)}function KR(t){let{valuesData:e,numberOfElements:r,arrayOffsets:n,valuesDataBytesLength:s,elementSize:i,enumEntry:o}=t,a=[];for(let c=0;c<r;c++){let l=n[c],h=n[c+1]-n[c];if(h+l>s)break;let f=l/i,u=h/i,d=_c(e,f,u,o);a.push(d)}return a}function JR(t,e,r,n){let s=[];for(let i=0;i<e;i++){let o=r*i,a=_c(t,o,r,n);s.push(a)}return s}function _c(t,e,r,n){let s=[];for(let i=0;i<r;i++)if(t instanceof BigInt64Array||t instanceof BigUint64Array)s.push("");else{let o=t[e+i],a=YR(n,o);a?s.push(a.name):s.push("")}return s}function YR(t,e){for(let r of t.values)if(r.value===e)return r;return null}var Tc={};ht(Tc,{decode:()=>jR,name:()=>qR});var up="EXT_feature_metadata",qR=up;async function jR(t,e){let r=new K(t);ZR(r,e)}function ZR(t,e){var r,n;if(!((r=e.gltf)!==null&&r!==void 0&&r.loadBuffers))return;let s=t.getExtension(up);s&&((n=e.gltf)!==null&&n!==void 0&&n.loadImages&&QR(t,s),$R(t,s))}function QR(t,e){let r=e.schema;if(!r)return;let n=r.classes,{featureTextures:s}=e;if(n&&s)for(let i in n){let o=n[i],a=ex(s,i);a&&nx(t,a,o)}}function $R(t,e){let r=e.schema;if(!r)return;let n=r.classes,s=e.featureTables;if(n&&s)for(let i in n){let o=tx(s,i);o&&rx(t,r,o)}}function tx(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function ex(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function rx(t,e,r){var n;if(!r.class)return;let s=(n=e.classes)===null||n===void 0?void 0:n[r.class];if(!s)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let i=r.count;for(let a in s.properties){var o;let c=s.properties[a],l=(o=r.properties)===null||o===void 0?void 0:o[a];if(l){let h=sx(t,e,c,i,l);l.data=h}}}function nx(t,e,r){let n=e.class;for(let i in r.properties){var s;let o=e==null||(s=e.properties)===null||s===void 0?void 0:s[i];if(o){let a=lx(t,o,n);o.data=a}}}function sx(t,e,r,n,s){let i=[],o=s.bufferView,a=t.getTypedArrayForBufferView(o),c=ix(t,r,s,n),l=ox(t,r,s,n);return r.type==="STRING"||r.componentType==="STRING"?i=Bi(n,a,c,l):ax(r)&&(i=cx(r,n,a,c)),i}function ix(t,e,r,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof r.arrayOffsetBufferView<"u"?Pr(t,r.arrayOffsetBufferView,r.offsetType||"UINT32",n):null}function ox(t,e,r,n){return typeof r.stringOffsetBufferView<"u"?Pr(t,r.stringOffsetBufferView,r.offsetType||"UINT32",n):null}function ax(t){let e=["UINT8","INT16","UINT16","INT32","UINT32","INT64","UINT64","FLOAT32","FLOAT64"];return e.includes(t.type)||typeof t.componentType<"u"&&e.includes(t.componentType)}function cx(t,e,r,n){let s=t.type==="ARRAY",i=t.componentCount,o="SCALAR",a=t.componentType||t.type,c=On(o,a),l=r.byteLength/c,h=Dr(r,o,a,l);return s?n?Si(h,e,n,r.length,c):i?Ci(h,e,i):[]:h}function lx(t,e,r){let n=t.gltf.json;if(!n.meshes)return[];let s=[];for(let i of n.meshes)for(let o of i.primitives)hx(t,r,e,s,o);return s}function hx(t,e,r,n,s){let i={channels:r.channels,...r.texture},o=wr(t,i,s);o&&xi(t,e,o,n,s)}var dp="4.1.0";var vr=!0,pp=1735152710,xc=12,Mi=8,fx=1313821514,ux=5130562,dx=0,px=0,gx=1;function Ax(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return`${String.fromCharCode(t.getUint8(e+0))}${String.fromCharCode(t.getUint8(e+1))}${String.fromCharCode(t.getUint8(e+2))}${String.fromCharCode(t.getUint8(e+3))}`}function gp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=new DataView(t),{magic:s=pp}=r,i=n.getUint32(e,!1);return i===s||i===pp}function Ap(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},s=new DataView(e),i=Ax(s,r+0),o=s.getUint32(r+4,vr),a=s.getUint32(r+8,vr);switch(Object.assign(t,{header:{byteOffset:r,byteLength:a,hasBinChunk:!1},type:i,version:o,json:{},binChunks:[]}),r+=xc,t.version){case 1:return _x(t,s,r);case 2:return mx(t,s,r,n={});default:throw new Error(`Invalid GLB version ${t.version}. Only supports version 1 and 2.`)}}function _x(t,e,r){V(t.header.byteLength>xc+Mi);let n=e.getUint32(r+0,vr),s=e.getUint32(r+4,vr);return r+=Mi,V(s===dx),Ec(t,e,r,n),r+=n,r+=Rc(t,e,r,t.header.byteLength),r}function mx(t,e,r,n){return V(t.header.byteLength>xc+Mi),Tx(t,e,r,n),r+t.header.byteLength}function Tx(t,e,r,n){for(;r+8<=t.header.byteLength;){let s=e.getUint32(r+0,vr),i=e.getUint32(r+4,vr);switch(r+=Mi,i){case fx:Ec(t,e,r,s);break;case ux:Rc(t,e,r,s);break;case px:n.strict||Ec(t,e,r,s);break;case gx:n.strict||Rc(t,e,r,s);break;default:break}r+=Ae(s,4)}return r}function Ec(t,e,r,n){let s=new Uint8Array(e.buffer,r,n),o=new TextDecoder("utf8").decode(s);return t.json=JSON.parse(o),Ae(n,4)}function Rc(t,e,r,n){return t.header.hasBinChunk=!0,t.binChunks.push({byteOffset:r,byteLength:n,arrayBuffer:e.buffer}),Ae(n,4)}function Sc(t,e){if(t.startsWith("data:")||t.startsWith("http:")||t.startsWith("https:"))return t;let n=e.baseUri||e.uri;if(!n)throw new Error(`'baseUri' must be provided to resolve relative url ${t}`);return n.substr(0,n.lastIndexOf("/")+1)+t}var Bc={};ht(Bc,{decode:()=>Ox,name:()=>Nx});var Ex="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",Rx="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",xx=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),Sx=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]),Cx={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},Bx={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function _p(t,e,r,n,s){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"NONE",o=await Mx();Fx(o,o.exports[Bx[s]],t,e,r,n,o.exports[Cx[i||"NONE"]])}var Cc;async function Mx(){return Cc||(Cc=yx()),Cc}async function yx(){let t=Ex;WebAssembly.validate(xx)&&(t=Rx,console.log("Warning: meshopt_decoder is using experimental SIMD support"));let e=await WebAssembly.instantiate(Ix(t),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function Ix(t){let e=new Uint8Array(t.length);for(let n=0;n<t.length;++n){let s=t.charCodeAt(n);e[n]=s>96?s-71:s>64?s-65:s>47?s+4:s>46?63:62}let r=0;for(let n=0;n<t.length;++n)e[r++]=e[n]<60?Sx[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,r)}function Fx(t,e,r,n,s,i,o){let a=t.exports.sbrk,c=n+3&-4,l=a(c*s),h=a(i.length),f=new Uint8Array(t.exports.memory.buffer);f.set(i,h);let u=e(l,n,s,h,i.length);if(u===0&&o&&o(l,c,s),r.set(f.subarray(l,l+n*s)),a(l-a(0)),u!==0)throw new Error(`Malformed buffer data: ${u}`)}var yi="EXT_meshopt_compression",Nx=yi;async function Ox(t,e){var r,n;let s=new K(t);if(!(e!=null&&(r=e.gltf)!==null&&r!==void 0&&r.decompressMeshes)||!((n=e.gltf)!==null&&n!==void 0&&n.loadBuffers))return;let i=[];for(let o of t.json.bufferViews||[])i.push(bx(s,o));await Promise.all(i),s.removeExtension(yi)}async function bx(t,e){let r=t.getObjectExtension(e,yi);if(r){let{byteOffset:n=0,byteLength:s=0,byteStride:i,count:o,mode:a,filter:c="NONE",buffer:l}=r,h=t.gltf.buffers[l],f=new Uint8Array(h.arrayBuffer,h.byteOffset+n,s),u=new Uint8Array(t.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);await _p(u,o,i,f,a,c),t.removeObjectExtension(e,yi)}}var Mc={};ht(Mc,{name:()=>Px,preprocess:()=>Dx});var Ur="EXT_texture_webp",Px=Ur;function Dx(t,e){let r=new K(t);if(!wo("image/webp")){if(r.getRequiredExtensions().includes(Ur))throw new Error(`gltf: Required extension ${Ur} not supported by browser`);return}let{json:n}=r;for(let s of n.textures||[]){let i=r.getObjectExtension(s,Ur);i&&(s.source=i.source),r.removeObjectExtension(s,Ur)}r.removeExtension(Ur)}var yc={};ht(yc,{name:()=>wx,preprocess:()=>vx});var Ii="KHR_texture_basisu",wx=Ii;function vx(t,e){let r=new K(t),{json:n}=r;for(let s of n.textures||[]){let i=r.getObjectExtension(s,Ii);i&&(s.source=i.source,r.removeObjectExtension(s,Ii))}r.removeExtension(Ii)}var Fc={};ht(Fc,{decode:()=>Xx,encode:()=>Wx,name:()=>Hx,preprocess:()=>Vx});function mp(t){let e={};for(let r in t){let n=t[r];if(r!=="indices"){let s=Ic(n);e[r]=s}}return e}function Ic(t){let{buffer:e,size:r,count:n}=Ux(t);return{value:e,size:r,byteOffset:0,count:n,type:Ri(r),componentType:Or(e)}}function Ux(t){let e=t,r=1,n=0;return t&&t.value&&(e=t.value,r=t.size||1),e&&(ArrayBuffer.isView(e)||(e=Lx(e,Float32Array)),n=e.length/r),{buffer:e,size:r,count:n}}function Lx(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return t?Array.isArray(t)?new e(t):r&&!(t instanceof e)?new e(t):t:null}var Oe="KHR_draco_mesh_compression",Hx=Oe;function Vx(t,e,r){let n=new K(t);for(let s of Tp(n))n.getObjectExtension(s,Oe)}async function Xx(t,e,r){var n;if(!(e!=null&&(n=e.gltf)!==null&&n!==void 0&&n.decompressMeshes))return;let s=new K(t),i=[];for(let o of Tp(s))s.getObjectExtension(o,Oe)&&i.push(zx(s,o,e,r));await Promise.all(i),s.removeExtension(Oe)}function Wx(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=new K(t);for(let n of r.json.meshes||[])kx(n,e),r.addRequiredExtension(Oe)}async function zx(t,e,r,n){let s=t.getObjectExtension(e,Oe);if(!s)return;let i=t.getTypedArrayForBufferView(s.bufferView),o=De(i.buffer,i.byteOffset),a={...r};delete a["3d-tiles"];let c=await Ct(o,_i,a,n),l=mp(c.attributes);for(let[h,f]of Object.entries(l))if(h in e.attributes){let u=e.attributes[h],d=t.getAccessor(u);d!=null&&d.min&&d!==null&&d!==void 0&&d.max&&(f.min=d.min,f.max=d.max)}e.attributes=l,c.indices&&(e.indices=Ic(c.indices)),t.removeObjectExtension(e,Oe),Gx(e)}function kx(t,e){var r;let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:4,s=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;if(!s.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");let o=s.DracoWriter.encodeSync({attributes:t}),a=i==null||(r=i.parseSync)===null||r===void 0?void 0:r.call(i,{attributes:t}),c=s._addFauxAttributes(a.attributes),l=s.addBufferView(o);return{primitives:[{attributes:c,mode:n,extensions:{[Oe]:{bufferView:l,attributes:c}}}]}}function Gx(t){if(!t.attributes&&Object.keys(t.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*Tp(t){for(let e of t.json.meshes||[])for(let r of e.primitives)yield r}var Oc={};ht(Oc,{decode:()=>qx,name:()=>Kx});var Nc="KHR_texture_transform",Kx=Nc,Fi=new m,Jx=new z,Yx=new z;async function qx(t,e){var r;if(!new K(t).hasExtension(Nc)||!((r=e.gltf)!==null&&r!==void 0&&r.loadBuffers))return;let i=t.json.materials||[];for(let o=0;o<i.length;o++)jx(o,t)}function jx(t,e){var r,n,s;let i=[],o=(r=e.json.materials)===null||r===void 0?void 0:r[t],a=o==null||(n=o.pbrMetallicRoughness)===null||n===void 0?void 0:n.baseColorTexture;a&&bn(e,t,a,i);let c=o?.emissiveTexture;c&&bn(e,t,c,i);let l=o?.normalTexture;l&&bn(e,t,l,i);let h=o?.occlusionTexture;h&&bn(e,t,h,i);let f=o==null||(s=o.pbrMetallicRoughness)===null||s===void 0?void 0:s.metallicRoughnessTexture;f&&bn(e,t,f,i)}function bn(t,e,r,n){let s=Zx(r,n);if(!s)return;let i=t.json.meshes||[];for(let o of i)for(let a of o.primitives){let c=a.material;Number.isFinite(c)&&e===c&&Qx(t,a,s)}}function Zx(t,e){var r;let n=(r=t.extensions)===null||r===void 0?void 0:r[Nc],{texCoord:s=0}=t,{texCoord:i=s}=n;if(!(e.findIndex(a=>{let[c,l]=a;return c===s&&l===i})!==-1)){let a=eS(n);return s!==i&&(t.texCoord=i),e.push([s,i]),{originalTexCoord:s,texCoord:i,matrix:a}}return null}function Qx(t,e,r){let{originalTexCoord:n,texCoord:s,matrix:i}=r,o=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(o)){var a;let l=(a=t.json.accessors)===null||a===void 0?void 0:a[o];if(l&&l.bufferView){var c;let h=(c=t.json.bufferViews)===null||c===void 0?void 0:c[l.bufferView];if(h){let{arrayBuffer:f,byteOffset:u}=t.buffers[h.buffer],d=(u||0)+(l.byteOffset||0)+(h.byteOffset||0),{ArrayType:p,length:_}=br(l,h),A=Ei[l.componentType],T=Ti[l.type],x=h.byteStride||A*T,R=new Float32Array(_);for(let S=0;S<l.count;S++){let B=new p(f,d+S*x,2);Fi.set(B[0],B[1],1),Fi.transformByMatrix3(i),R.set([Fi[0],Fi[1]],S*T)}n===s?$x(l,h,t.buffers,R):tS(s,l,e,t,R)}}}}function $x(t,e,r,n){t.componentType=5126,r.push({arrayBuffer:n.buffer,byteOffset:0,byteLength:n.buffer.byteLength}),e.buffer=r.length-1,e.byteLength=n.buffer.byteLength,e.byteOffset=0,delete e.byteStride}function tS(t,e,r,n,s){n.buffers.push({arrayBuffer:s.buffer,byteOffset:0,byteLength:s.buffer.byteLength});let i=n.json.bufferViews;if(!i)return;i.push({buffer:n.buffers.length-1,byteLength:s.buffer.byteLength,byteOffset:0});let o=n.json.accessors;o&&(o.push({bufferView:i?.length-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),r.attributes[`TEXCOORD_${t}`]=o.length-1)}function eS(t){let{offset:e=[0,0],rotation:r=0,scale:n=[1,1]}=t,s=new z().set(1,0,0,0,1,0,e[0],e[1],1),i=Jx.set(Math.cos(r),Math.sin(r),0,-Math.sin(r),Math.cos(r),0,0,0,1),o=Yx.set(n[0],0,0,0,n[1],0,0,0,1);return s.multiplyRight(i).multiplyRight(o)}var bc={};ht(bc,{decode:()=>nS,encode:()=>sS,name:()=>rS});var er="KHR_lights_punctual",rS=er;async function nS(t){let e=new K(t),{json:r}=e,n=e.getExtension(er);n&&(e.json.lights=n.lights,e.removeExtension(er));for(let s of r.nodes||[]){let i=e.getObjectExtension(s,er);i&&(s.light=i.light),e.removeObjectExtension(s,er)}}async function sS(t){let e=new K(t),{json:r}=e;if(r.lights){let n=e.addExtension(er);at(!n.lights),n.lights=r.lights,delete r.lights}if(e.json.lights){for(let n of e.json.lights){let s=n.node;e.addObjectExtension(s,er,n)}delete e.json.lights}}var Pc={};ht(Pc,{decode:()=>oS,encode:()=>aS,name:()=>iS});var Pn="KHR_materials_unlit",iS=Pn;async function oS(t){let e=new K(t),{json:r}=e;for(let n of r.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,Pn);e.removeExtension(Pn)}function aS(t){let e=new K(t),{json:r}=e;if(e.materials)for(let n of r.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,Pn,{}),e.addExtension(Pn))}var Dc={};ht(Dc,{decode:()=>lS,encode:()=>hS,name:()=>cS});var Dn="KHR_techniques_webgl",cS=Dn;async function lS(t){let e=new K(t),{json:r}=e,n=e.getExtension(Dn);if(n){let s=fS(n,e);for(let i of r.materials||[]){let o=e.getObjectExtension(i,Dn);o&&(i.technique=Object.assign({},o,s[o.technique]),i.technique.values=uS(i.technique,e)),e.removeObjectExtension(i,Dn)}e.removeExtension(Dn)}}async function hS(t,e){}function fS(t,e){let{programs:r=[],shaders:n=[],techniques:s=[]}=t,i=new TextDecoder;return n.forEach(o=>{if(Number.isFinite(o.bufferView))o.code=i.decode(e.getTypedArrayForBufferView(o.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),r.forEach(o=>{o.fragmentShader=n[o.fragmentShader],o.vertexShader=n[o.vertexShader]}),s.forEach(o=>{o.program=r[o.program]}),s}function uS(t,e){let r=Object.assign({},t.values);return Object.keys(t.uniforms||{}).forEach(n=>{t.uniforms[n].value&&!(n in r)&&(r[n]=t.uniforms[n].value)}),Object.keys(r).forEach(n=>{typeof r[n]=="object"&&r[n].index!==void 0&&(r[n].texture=e.getTexture(r[n].index))}),r}var Ep=[mc,gc,Bc,Mc,yc,Fc,bc,Pc,Dc,Oc,Tc];function Rp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,n=Ep.filter(i=>Sp(i.name,e));for(let i of n){var s;(s=i.preprocess)===null||s===void 0||s.call(i,t,e,r)}}async function xp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,n=Ep.filter(i=>Sp(i.name,e));for(let i of n){var s;await((s=i.decode)===null||s===void 0?void 0:s.call(i,t,e,r))}}function Sp(t,e){var r;let n=(e==null||(r=e.gltf)===null||r===void 0?void 0:r.excludeExtensions)||{};return!(t in n&&!n[t])}var wc="KHR_binary_glTF";function Cp(t){let e=new K(t),{json:r}=e;for(let n of r.images||[]){let s=e.getObjectExtension(n,wc);s&&Object.assign(n,s),e.removeObjectExtension(n,wc)}r.buffers&&r.buffers[0]&&delete r.buffers[0].uri,e.removeExtension(wc)}var Bp={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},pS={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"},vc=class{constructor(){this.idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}},this.json=void 0}normalize(e,r){this.json=e.json;let n=e.json;switch(n.asset&&n.asset.version){case"2.0":return;case void 0:case"1.0":break;default:console.warn(`glTF: Unknown version ${n.asset.version}`);return}if(!r.normalize)throw new Error("glTF v1 is not supported.");console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail."),this._addAsset(n),this._convertTopLevelObjectsToArrays(n),Cp(e),this._convertObjectIdsToArrayIndices(n),this._updateObjects(n),this._updateMaterial(n)}_addAsset(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays(e){for(let r in Bp)this._convertTopLevelObjectToArray(e,r)}_convertTopLevelObjectToArray(e,r){let n=e[r];if(!(!n||Array.isArray(n))){e[r]=[];for(let s in n){let i=n[s];i.id=i.id||s;let o=e[r].length;e[r].push(i),this.idToIndexMap[r][s]=o}}}_convertObjectIdsToArrayIndices(e){for(let r in Bp)this._convertIdsToIndices(e,r);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(let r of e.textures)this._convertTextureIds(r);for(let r of e.meshes)this._convertMeshIds(r);for(let r of e.nodes)this._convertNodeIds(r);for(let r of e.scenes)this._convertSceneIds(r)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(let r of e.primitives){let{attributes:n,indices:s,material:i}=r;for(let o in n)n[o]=this._convertIdToIndex(n[o],"accessor");s&&(r.indices=this._convertIdToIndex(s,"accessor")),i&&(r.material=this._convertIdToIndex(i,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(r=>this._convertIdToIndex(r,"node"))),e.meshes&&(e.meshes=e.meshes.map(r=>this._convertIdToIndex(r,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(r=>this._convertIdToIndex(r,"node")))}_convertIdsToIndices(e,r){e[r]||(console.warn(`gltf v1: json doesn't contain attribute ${r}`),e[r]=[]);for(let n of e[r])for(let s in n){let i=n[s],o=this._convertIdToIndex(i,s);n[s]=o}}_convertIdToIndex(e,r){let n=pS[r];if(n in this.idToIndexMap){let s=this.idToIndexMap[n][e];if(!Number.isFinite(s))throw new Error(`gltf v1: failed to resolve ${r} with id ${e}`);return s}return e}_updateObjects(e){for(let r of this.json.buffers)delete r.type}_updateMaterial(e){for(let i of e.materials){var r,n,s;i.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};let o=((r=i.values)===null||r===void 0?void 0:r.tex)||((n=i.values)===null||n===void 0?void 0:n.texture2d_0)||((s=i.values)===null||s===void 0?void 0:s.diffuseTex),a=e.textures.findIndex(c=>c.id===o);a!==-1&&(i.pbrMetallicRoughness.baseColorTexture={index:a})}}};function Mp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new vc().normalize(t,e)}async function yp(t,e){var r,n,s;let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,o=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0;return gS(t,e,i,o),Mp(t,{normalize:o==null||(r=o.gltf)===null||r===void 0?void 0:r.normalize}),Rp(t,o,a),o!=null&&(n=o.gltf)!==null&&n!==void 0&&n.loadBuffers&&t.json.buffers&&await AS(t,o,a),o!=null&&(s=o.gltf)!==null&&s!==void 0&&s.loadImages&&await _S(t,o,a),await xp(t,o,a),t}function gS(t,e,r,n){if(n.uri&&(t.baseUri=n.uri),e instanceof ArrayBuffer&&!gp(e,r,n)&&(e=new TextDecoder().decode(e)),typeof e=="string")t.json=xo(e);else if(e instanceof ArrayBuffer){let o={};r=Ap(o,e,r,n.glb),at(o.type==="glTF",`Invalid GLB magic string ${o.type}`),t._glb=o,t.json=o.json}else at(!1,"GLTF: must be ArrayBuffer or string");let s=t.json.buffers||[];if(t.buffers=new Array(s.length).fill(null),t._glb&&t._glb.header.hasBinChunk){let{binChunks:o}=t._glb;t.buffers[0]={arrayBuffer:o[0].arrayBuffer,byteOffset:o[0].byteOffset,byteLength:o[0].byteLength}}let i=t.json.images||[];t.images=new Array(i.length).fill({})}async function AS(t,e,r){let n=t.json.buffers||[];for(let o=0;o<n.length;++o){let a=n[o];if(a.uri){var s,i;let{fetch:c}=r;at(c);let l=Sc(a.uri,e),h=await(r==null||(s=r.fetch)===null||s===void 0?void 0:s.call(r,l)),f=await(h==null||(i=h.arrayBuffer)===null||i===void 0?void 0:i.call(h));t.buffers[o]={arrayBuffer:f,byteOffset:0,byteLength:f.byteLength},delete a.uri}else t.buffers[o]===null&&(t.buffers[o]={arrayBuffer:new ArrayBuffer(a.byteLength),byteOffset:0,byteLength:a.byteLength})}}async function _S(t,e,r){let n=mS(t),s=t.json.images||[],i=[];for(let o of n)i.push(TS(t,s[o],o,e,r));return await Promise.all(i)}function mS(t){let e=new Set,r=t.json.textures||[];for(let n of r)n.source!==void 0&&e.add(n.source);return Array.from(e).sort()}async function TS(t,e,r,n,s){let i;if(e.uri&&!e.hasOwnProperty("bufferView")){let a=Sc(e.uri,n),{fetch:c}=s;i=await(await c(a)).arrayBuffer(),e.bufferView={data:i}}if(Number.isFinite(e.bufferView)){let a=op(t.json,t.buffers,e.bufferView);i=De(a.buffer,a.byteOffset,a.byteLength)}at(i,"glTF image has no data");let o=await Ct(i,[Ee,Wa],{...n,mimeType:e.mimeType,basis:n.basis||{format:Qs()}},s);o&&o[0]&&(o={compressed:!0,mipmaps:!1,width:o[0].width,height:o[0].height,data:o[0]}),t.images=t.images||[],t.images[r]=o}var rr={name:"glTF",id:"gltf",module:"gltf",version:dp,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:ES,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0},log:console}};async function ES(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;e={...rr.options,...e},e.gltf={...rr.options.gltf,...e.gltf};let{byteOffset:n=0}=e;return await yp({},t,n,e,r)}var RS={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},xS={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},Pt={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},SS={magFilter:Pt.TEXTURE_MAG_FILTER,minFilter:Pt.TEXTURE_MIN_FILTER,wrapS:Pt.TEXTURE_WRAP_S,wrapT:Pt.TEXTURE_WRAP_T},CS={[Pt.TEXTURE_MAG_FILTER]:Pt.LINEAR,[Pt.TEXTURE_MIN_FILTER]:Pt.NEAREST_MIPMAP_LINEAR,[Pt.TEXTURE_WRAP_S]:Pt.REPEAT,[Pt.TEXTURE_WRAP_T]:Pt.REPEAT};function BS(){return{id:"default-sampler",parameters:CS}}function MS(t){return xS[t]}function yS(t){return RS[t]}var Uc=class{constructor(){this.baseUri="",this.jsonUnprocessed=void 0,this.json=void 0,this.buffers=[],this.images=[]}postProcess(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{json:n,buffers:s=[],images:i=[]}=e,{baseUri:o=""}=e;return at(n),this.baseUri=o,this.buffers=s,this.images=i,this.jsonUnprocessed=n,this.json=this._resolveTree(e.json,r),this.json}_resolveTree(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n={...e};return this.json=n,e.bufferViews&&(n.bufferViews=e.bufferViews.map((s,i)=>this._resolveBufferView(s,i))),e.images&&(n.images=e.images.map((s,i)=>this._resolveImage(s,i))),e.samplers&&(n.samplers=e.samplers.map((s,i)=>this._resolveSampler(s,i))),e.textures&&(n.textures=e.textures.map((s,i)=>this._resolveTexture(s,i))),e.accessors&&(n.accessors=e.accessors.map((s,i)=>this._resolveAccessor(s,i))),e.materials&&(n.materials=e.materials.map((s,i)=>this._resolveMaterial(s,i))),e.meshes&&(n.meshes=e.meshes.map((s,i)=>this._resolveMesh(s,i))),e.nodes&&(n.nodes=e.nodes.map((s,i)=>this._resolveNode(s,i)),n.nodes=n.nodes.map((s,i)=>this._resolveNodeChildren(s))),e.skins&&(n.skins=e.skins.map((s,i)=>this._resolveSkin(s,i))),e.scenes&&(n.scenes=e.scenes.map((s,i)=>this._resolveScene(s,i))),typeof this.json.scene=="number"&&n.scenes&&(n.scene=n.scenes[this.json.scene]),n}getScene(e){return this._get(this.json.scenes,e)}getNode(e){return this._get(this.json.nodes,e)}getSkin(e){return this._get(this.json.skins,e)}getMesh(e){return this._get(this.json.meshes,e)}getMaterial(e){return this._get(this.json.materials,e)}getAccessor(e){return this._get(this.json.accessors,e)}getCamera(e){return this._get(this.json.cameras,e)}getTexture(e){return this._get(this.json.textures,e)}getSampler(e){return this._get(this.json.samplers,e)}getImage(e){return this._get(this.json.images,e)}getBufferView(e){return this._get(this.json.bufferViews,e)}getBuffer(e){return this._get(this.json.buffers,e)}_get(e,r){if(typeof r=="object")return r;let n=e&&e[r];return n||console.warn(`glTF file error: Could not find ${e}[${r}]`),n}_resolveScene(e,r){return{...e,id:e.id||`scene-${r}`,nodes:(e.nodes||[]).map(n=>this.getNode(n))}}_resolveNode(e,r){let n={...e,id:e?.id||`node-${r}`};return e.mesh!==void 0&&(n.mesh=this.getMesh(e.mesh)),e.camera!==void 0&&(n.camera=this.getCamera(e.camera)),e.skin!==void 0&&(n.skin=this.getSkin(e.skin)),e.meshes!==void 0&&e.meshes.length&&(n.mesh=e.meshes.reduce((s,i)=>{let o=this.getMesh(i);return s.id=o.id,s.primitives=s.primitives.concat(o.primitives),s},{primitives:[]})),n}_resolveNodeChildren(e){return e.children&&(e.children=e.children.map(r=>this.getNode(r))),e}_resolveSkin(e,r){let n=typeof e.inverseBindMatrices=="number"?this.getAccessor(e.inverseBindMatrices):void 0;return{...e,id:e.id||`skin-${r}`,inverseBindMatrices:n}}_resolveMesh(e,r){let n={...e,id:e.id||`mesh-${r}`,primitives:[]};return e.primitives&&(n.primitives=e.primitives.map(s=>{let i={...s,attributes:{},indices:void 0,material:void 0},o=s.attributes;for(let a in o)i.attributes[a]=this.getAccessor(o[a]);return s.indices!==void 0&&(i.indices=this.getAccessor(s.indices)),s.material!==void 0&&(i.material=this.getMaterial(s.material)),i})),n}_resolveMaterial(e,r){let n={...e,id:e.id||`material-${r}`};if(n.normalTexture&&(n.normalTexture={...n.normalTexture},n.normalTexture.texture=this.getTexture(n.normalTexture.index)),n.occlusionTexture&&(n.occlusionTexture={...n.occlusionTexture},n.occlusionTexture.texture=this.getTexture(n.occlusionTexture.index)),n.emissiveTexture&&(n.emissiveTexture={...n.emissiveTexture},n.emissiveTexture.texture=this.getTexture(n.emissiveTexture.index)),n.emissiveFactor||(n.emissiveFactor=n.emissiveTexture?[1,1,1]:[0,0,0]),n.pbrMetallicRoughness){n.pbrMetallicRoughness={...n.pbrMetallicRoughness};let s=n.pbrMetallicRoughness;s.baseColorTexture&&(s.baseColorTexture={...s.baseColorTexture},s.baseColorTexture.texture=this.getTexture(s.baseColorTexture.index)),s.metallicRoughnessTexture&&(s.metallicRoughnessTexture={...s.metallicRoughnessTexture},s.metallicRoughnessTexture.texture=this.getTexture(s.metallicRoughnessTexture.index))}return n}_resolveAccessor(e,r){let n=MS(e.componentType),s=yS(e.type),i=n*s,o={...e,id:e.id||`accessor-${r}`,bytesPerComponent:n,components:s,bytesPerElement:i,value:void 0,bufferView:void 0,sparse:void 0};if(e.bufferView!==void 0&&(o.bufferView=this.getBufferView(e.bufferView)),o.bufferView){let a=o.bufferView.buffer,{ArrayType:c,byteLength:l}=br(o,o.bufferView),h=(o.bufferView.byteOffset||0)+(o.byteOffset||0)+a.byteOffset,f=a.arrayBuffer.slice(h,h+l);o.bufferView.byteStride&&(f=this._getValueFromInterleavedBuffer(a,h,o.bufferView.byteStride,o.bytesPerElement,o.count)),o.value=new c(f)}return o}_getValueFromInterleavedBuffer(e,r,n,s,i){let o=new Uint8Array(i*s);for(let a=0;a<i;a++){let c=r+a*n;o.set(new Uint8Array(e.arrayBuffer.slice(c,c+s)),a*s)}return o.buffer}_resolveTexture(e,r){return{...e,id:e.id||`texture-${r}`,sampler:typeof e.sampler=="number"?this.getSampler(e.sampler):BS(),source:typeof e.source=="number"?this.getImage(e.source):void 0}}_resolveSampler(e,r){let n={id:e.id||`sampler-${r}`,...e,parameters:{}};for(let s in n){let i=this._enumSamplerParameter(s);i!==void 0&&(n.parameters[i]=n[s])}return n}_enumSamplerParameter(e){return SS[e]}_resolveImage(e,r){let n={...e,id:e.id||`image-${r}`,image:null,bufferView:e.bufferView!==void 0?this.getBufferView(e.bufferView):void 0},s=this.images[r];return s&&(n.image=s),n}_resolveBufferView(e,r){let n=e.buffer,s=this.buffers[n].arrayBuffer,i=this.buffers[n].byteOffset||0;return e.byteOffset&&(i+=e.byteOffset),{id:`bufferView-${r}`,...e,buffer:this.buffers[n],data:new Uint8Array(s,i,e.byteLength)}}_resolveCamera(e,r){let n={...e,id:e.id||`camera-${r}`};return n.perspective,n.orthographic,n}};function wn(t,e){return new Uc().postProcess(t,e)}var Ni={URI:0,EMBEDDED:1};function Oi(t,e,r,n){t.rotateYtoZ=!0;let s=(t.byteOffset||0)+(t.byteLength||0)-r;if(s===0)throw new Error("glTF byte length must be greater than 0.");return t.gltfUpAxis=n!=null&&n["3d-tiles"]&&n["3d-tiles"].assetGltfUpAxis?n["3d-tiles"].assetGltfUpAxis:"Y",t.gltfArrayBuffer=De(e,r,s),t.gltfByteOffset=0,t.gltfByteLength=s,r%4===0||console.warn(`${t.type}: embedded glb is not aligned to a 4-byte boundary.`),(t.byteOffset||0)+(t.byteLength||0)}async function bi(t,e,r,n){let s=r?.["3d-tiles"]||{};if(IS(t,e,r),s.loadGLTF){if(!n)return;if(t.gltfUrl){let{fetch:i}=n,o=await i(t.gltfUrl,r);t.gltfArrayBuffer=await o.arrayBuffer(),t.gltfByteOffset=0}if(t.gltfArrayBuffer){let i=await Ct(t.gltfArrayBuffer,rr,r,n);t.gltf=wn(i),t.gpuMemoryUsageInBytes=Nn(t.gltf),delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength}}}function IS(t,e,r){switch(e){case Ni.URI:if(t.gltfArrayBuffer){let n=new Uint8Array(t.gltfArrayBuffer,t.gltfByteOffset),i=new TextDecoder().decode(n);t.gltfUrl=i.replace(/[\s\0]+$/,"")}delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength;break;case Ni.EMBEDDED:break;default:throw new Error("b3dm: Illegal glTF format field")}}async function Ip(t,e,r,n,s){var i;r=FS(t,e,r,n,s),await bi(t,Ni.EMBEDDED,n,s);let o=t==null||(i=t.gltf)===null||i===void 0?void 0:i.extensions;return o&&o.CESIUM_RTC&&(t.rtcCenter=o.CESIUM_RTC.center),r}function FS(t,e,r,n,s){r=Ne(t,e,r),r=Fr(t,e,r),r=Nr(t,e,r,n),r=Oi(t,e,r,n);let i=new fe(t.featureTableJson,t.featureTableBinary);return t.rtcCenter=i.getGlobalProperty("RTC_CENTER",w.FLOAT,3),r}async function Fp(t,e,r,n,s){return r=NS(t,e,r,n,s),await bi(t,t.gltfFormat||0,n,s),r}function NS(t,e,r,n,s){var i;if(r=Ne(t,e,r),t.version!==1)throw new Error(`Instanced 3D Model version ${t.version} is not supported`);r=Fr(t,e,r);let o=new DataView(e);if(t.gltfFormat=o.getUint32(r,!0),r+=4,r=Nr(t,e,r,n),r=Oi(t,e,r,n),!(t!=null&&(i=t.header)!==null&&i!==void 0&&i.featureTableJsonByteLength)||t.header.featureTableJsonByteLength===0)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");let a=new fe(t.featureTableJson,t.featureTableBinary),c=a.getGlobalProperty("INSTANCES_LENGTH");if(a.featuresLength=c,!Number.isFinite(c))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");t.eastNorthUp=a.getGlobalProperty("EAST_NORTH_UP"),t.rtcCenter=a.getGlobalProperty("RTC_CENTER",w.FLOAT,3);let l=new tr(t.batchTableJson,t.batchTableBinary,c);return OS(t,a,l,c),r}function OS(t,e,r,n){let s=new Array(n),i=new m,o=new m,a=new m,c=new m,l=new z,h=new Zt,f=new m,u={},d=new D,p=[],_=[],A=[],T=[];for(let x=0;x<n;x++){let R;if(e.hasProperty("POSITION"))R=e.getProperty("POSITION",w.FLOAT,3,x,i);else if(e.hasProperty("POSITION_QUANTIZED")){R=e.getProperty("POSITION_QUANTIZED",w.UNSIGNED_SHORT,3,x,i);let g=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",w.FLOAT,3);if(!g)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let y=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",w.FLOAT,3);if(!y)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let O=65535;for(let b=0;b<3;b++)R[b]=R[b]/O*y[b]+g[b]}if(!R)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");i.copy(R),u.translation=i,t.normalUp=e.getProperty("NORMAL_UP",w.FLOAT,3,x,p),t.normalRight=e.getProperty("NORMAL_RIGHT",w.FLOAT,3,x,_);let S=!1;if(t.normalUp){if(!t.normalRight)throw new Error("i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.");t.hasCustomOrientation=!0}else{if(t.octNormalUp=e.getProperty("NORMAL_UP_OCT32P",w.UNSIGNED_SHORT,2,x,p),t.octNormalRight=e.getProperty("NORMAL_RIGHT_OCT32P",w.UNSIGNED_SHORT,2,x,_),t.octNormalUp)throw t.octNormalRight?new Error("i3dm: oct-encoded orientation not implemented"):new Error("i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P");t.eastNorthUp?(L.WGS84.eastNorthUpToFixedFrame(i,d),d.getRotationMatrix3(l)):l.identity()}S&&(c.copy(o).cross(a).normalize(),l.setColumn(0,o),l.setColumn(1,a),l.setColumn(2,c)),h.fromMatrix3(l),u.rotation=h,f.set(1,1,1);let B=e.getProperty("SCALE",w.FLOAT,1,x,A);Number.isFinite(B)&&f.multiplyByScalar(B);let M=e.getProperty("SCALE_NON_UNIFORM",w.FLOAT,3,x,p);M&&f.scale(M),u.scale=f;let F=e.getProperty("BATCH_ID",w.UNSIGNED_SHORT,1,x,T);F===void 0&&(F=x);let C=new D().fromQuaternion(u.rotation);d.identity(),d.translate(u.translation),d.multiplyRight(C),d.scale(u.scale);let E=d.clone();s[x]={modelMatrix:E,batchId:F}}t.instances=s}async function Np(t,e,r,n,s,i){r=Ne(t,e,r);let o=new DataView(e);for(t.tilesLength=o.getUint32(r,!0),r+=4,t.tiles=[];t.tiles.length<t.tilesLength&&(t.byteLength||0)-r>12;){let a={shape:"tile3d"};t.tiles.push(a),r=await i(e,r,n,s,a)}return r}async function Op(t,e,r,n){var s,i;if(t.rotateYtoZ=!0,t.gltfUpAxis=r!=null&&(s=r["3d-tiles"])!==null&&s!==void 0&&s.assetGltfUpAxis?r["3d-tiles"].assetGltfUpAxis:"Y",r!=null&&(i=r["3d-tiles"])!==null&&i!==void 0&&i.loadGLTF){if(!n)return e.byteLength;let o=await Ct(e,rr,r,n);t.gltf=wn(o),t.gpuMemoryUsageInBytes=Nn(t.gltf)}else t.gltfArrayBuffer=e;return e.byteLength}async function Lc(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{shape:"tile3d"};switch(s.byteOffset=e,s.type=Ud(t,e),s.type){case Qe.COMPOSITE:return await Np(s,t,e,r,n,Lc);case Qe.BATCHED_3D_MODEL:return await Ip(s,t,e,r,n);case Qe.GLTF:return await Op(s,t,r,n);case Qe.INSTANCED_3D_MODEL:return await Fp(s,t,e,r,n);case Qe.POINT_CLOUD:return await sp(s,t,e,r,n);default:throw new Error(`3DTileLoader: unknown type ${s.type}`)}}async function Hc(t,e,r){if(new Uint32Array(t.slice(0,4))[0]!==1952609651)throw new Error("Wrong subtree file magic number");if(new Uint32Array(t.slice(4,8))[0]!==1)throw new Error("Wrong subtree file verson, must be 1");let i=bp(t.slice(8,16)),o=new Uint8Array(t,24,i),c=new TextDecoder("utf8").decode(o),l=JSON.parse(c),h=bp(t.slice(16,24)),f=new ArrayBuffer(0);if(h&&(f=t.slice(24+i)),await Pi(l,l.tileAvailability,f,r),Array.isArray(l.contentAvailability))for(let u of l.contentAvailability)await Pi(l,u,f,r);else await Pi(l,l.contentAvailability,f,r);return await Pi(l,l.childSubtreeAvailability,f,r),l}async function Pi(t,e,r,n){let s=Number.isFinite(e.bitstream)?e.bitstream:e.bufferView;if(typeof s!="number")return;let i=t.bufferViews[s],o=t.buffers[i.buffer];if(!(n!=null&&n.baseUrl))throw new Error("Url is not provided");if(!n.fetch)throw new Error("fetch is not provided");if(o.uri){let c=`${n?.baseUrl||""}/${o.uri}`,h=await(await n.fetch(c)).arrayBuffer();e.explicitBitstream=new Uint8Array(h,i.byteOffset,i.byteLength);return}let a=t.buffers.slice(0,i.buffer).reduce((c,l)=>c+l.byteLength,0);e.explicitBitstream=new Uint8Array(r.slice(a,a+o.byteLength),i.byteOffset,i.byteLength)}function bp(t){let e=new DataView(t),r=e.getUint32(0,!0),n=e.getUint32(4,!0);return r+2**32*n}var Di={id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:Ai,extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:Hc,options:{}};var lg=v(Cr(),1);var ig=v(Cr(),1);function bS(t){try{let e=window[t],r="__storage_test__";return e.setItem(r,r),e.removeItem(r),e}catch{return null}}var wi=class{constructor(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";this.storage=void 0,this.id=void 0,this.config=void 0,this.storage=bS(n),this.id=e,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let e={};if(this.storage){let r=this.storage.getItem(this.id);e=r?JSON.parse(r):{}}return Object.assign(this.config,e),this}};function Pp(t){let e;return t<10?e="".concat(t.toFixed(2),"ms"):t<100?e="".concat(t.toFixed(1),"ms"):t<1e3?e="".concat(t.toFixed(0),"ms"):e="".concat((t/1e3).toFixed(2),"s"),e}function Dp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(e-t.length,0);return"".concat(" ".repeat(r)).concat(t)}function vi(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,s=t.src.replace(/\(/g,"%28").replace(/\)/g,"%29");t.width>n&&(r=Math.min(r,n/t.width));let i=t.width*r,o=t.height*r,a=["font-size:1px;","padding:".concat(Math.floor(o/2),"px ").concat(Math.floor(i/2),"px;"),"line-height:".concat(o,"px;"),"background:url(".concat(s,");"),"background-size:".concat(i,"px ").concat(o,"px;"),"color:transparent;"].join("");return["".concat(e," %c+"),a]}var Ui;(function(t){t[t.BLACK=30]="BLACK",t[t.RED=31]="RED",t[t.GREEN=32]="GREEN",t[t.YELLOW=33]="YELLOW",t[t.BLUE=34]="BLUE",t[t.MAGENTA=35]="MAGENTA",t[t.CYAN=36]="CYAN",t[t.WHITE=37]="WHITE",t[t.BRIGHT_BLACK=90]="BRIGHT_BLACK",t[t.BRIGHT_RED=91]="BRIGHT_RED",t[t.BRIGHT_GREEN=92]="BRIGHT_GREEN",t[t.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",t[t.BRIGHT_BLUE=94]="BRIGHT_BLUE",t[t.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",t[t.BRIGHT_CYAN=96]="BRIGHT_CYAN",t[t.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Ui||(Ui={}));var PS=10;function wp(t){return typeof t!="string"?t:(t=t.toUpperCase(),Ui[t]||Ui.WHITE)}function vp(t,e,r){if(!Wt&&typeof t=="string"){if(e){let n=wp(e);t="\x1B[".concat(n,"m").concat(t,"\x1B[39m")}if(r){let n=wp(r);t="\x1B[".concat(n+PS,"m").concat(t,"\x1B[49m")}}return t}function Up(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],r=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(r),s=t;for(let i of n){let o=s[i];typeof o=="function"&&(e.find(a=>i===a)||(s[i]=o.bind(t)))}}function Lr(t,e){if(!t)throw new Error(e||"Assertion failed")}function nr(){let t;if(Wt()&&xr.performance){var e,r;t=xr===null||xr===void 0||(e=xr.performance)===null||e===void 0||(r=e.now)===null||r===void 0?void 0:r.call(e)}else if("hrtime"in Ye){var n;let s=Ye===null||Ye===void 0||(n=Ye.hrtime)===null||n===void 0?void 0:n.call(Ye);t=s[0]*1e3+s[1]/1e6}else t=Date.now();return t}var Hr={debug:Wt()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},DS={enabled:!0,level:0};function Dt(){}var Lp={},Hp={once:!0},vn=class{constructor(){let{id:e}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};this.id=void 0,this.VERSION=$s,this._startTs=nr(),this._deltaTs=nr(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new wi("__probe-".concat(this.id,"__"),DS),this.timeStamp("".concat(this.id," started")),Up(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((nr()-this._startTs).toPrecision(10))}getDelta(){return Number((nr()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:e}),this}setLevel(e){return this._storage.setConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,r){this._storage.setConfiguration({[e]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,r){Lr(e,r)}warn(e){return this._getLogFunction(0,e,Hr.warn,arguments,Hp)}error(e){return this._getLogFunction(0,e,Hr.error,arguments)}deprecated(e,r){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(r,"` instead"))}removed(e,r){return this.error("`".concat(e,"` has been removed. Use `").concat(r,"` instead"))}probe(e,r){return this._getLogFunction(e,r,Hr.log,arguments,{time:!0,once:!0})}log(e,r){return this._getLogFunction(e,r,Hr.debug,arguments)}info(e,r){return this._getLogFunction(e,r,console.info,arguments)}once(e,r){return this._getLogFunction(e,r,Hr.debug||Hr.info,arguments,Hp)}table(e,r,n){return r?this._getLogFunction(e,r,console.table||Dt,n&&[n],{tag:LS(r)}):Dt}image(e){let{logLevel:r,priority:n,image:s,message:i="",scale:o=1}=e;return this._shouldLog(r||n)?Wt()?US({image:s,message:i,scale:o}):vS({image:s,message:i,scale:o}):Dt}time(e,r){return this._getLogFunction(e,r,console.time?console.time:console.info)}timeEnd(e,r){return this._getLogFunction(e,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,r){return this._getLogFunction(e,r,console.timeStamp||Dt)}group(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},s=Vp({logLevel:e,message:r,opts:n}),{collapsed:i}=n;return s.method=(i?console.groupCollapsed:console.group)||console.info,this._getLogFunction(s)}groupCollapsed(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(e,r,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||Dt)}withGroup(e,r,n){this.group(e,r)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=Xp(e)}_getLogFunction(e,r,n,s,i){if(this._shouldLog(e)){i=Vp({logLevel:e,message:r,args:s,opts:i}),n=n||i.method,Lr(n),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=nr();let o=i.tag||i.message;if(i.once&&o)if(!Lp[o])Lp[o]=nr();else return Dt;return r=wS(this.id,i.message,i),n.bind(console,r,...i.args)}return Dt}};vn.VERSION=$s;function Xp(t){if(!t)return 0;let e;switch(typeof t){case"number":e=t;break;case"object":e=t.logLevel||t.priority||0;break;default:return 0}return Lr(Number.isFinite(e)&&e>=0),e}function Vp(t){let{logLevel:e,message:r}=t;t.logLevel=Xp(e);let n=t.args?Array.from(t.args):[];for(;n.length&&n.shift()!==r;);switch(typeof e){case"string":case"function":r!==void 0&&n.unshift(r),t.message=e;break;case"object":Object.assign(t,e);break;default:}typeof t.message=="function"&&(t.message=t.message());let s=typeof t.message;return Lr(s==="string"||s==="object"),Object.assign(t,{args:n},t.opts)}function wS(t,e,r){if(typeof e=="string"){let n=r.time?Dp(Pp(r.total)):"";e=r.time?"".concat(t,": ").concat(n," ").concat(e):"".concat(t,": ").concat(e),e=vp(e,r.color,r.background)}return e}function vS(t){let{image:e,message:r="",scale:n=1}=t;return console.warn("removed"),Dt}function US(t){let{image:e,message:r="",scale:n=1}=t;if(typeof e=="string"){let i=new Image;return i.onload=()=>{let o=vi(i,r,n);console.log(...o)},i.src=e,Dt}let s=e.nodeName||"";if(s.toLowerCase()==="img")return console.log(...vi(e,r,n)),Dt;if(s.toLowerCase()==="canvas"){let i=new Image;return i.onload=()=>console.log(...vi(i,r,n)),i.src=e.toDataURL(),Dt}return Dt}function LS(t){for(let e in t)for(let r in t[e])return r||"untitled";return"empty"}var Vc=new vn({id:"@probe.gl/log"});var wt=null;try{wt=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Z(t,e,r){this.low=t|0,this.high=e|0,this.unsigned=!!r}Z.prototype.__isLong__;Object.defineProperty(Z.prototype,"__isLong__",{value:!0});function pt(t){return(t&&t.__isLong__)===!0}function Wp(t){var e=Math.clz32(t&-t);return t?31-e:e}Z.isLong=pt;var zp={},kp={};function sr(t,e){var r,n,s;return e?(t>>>=0,(s=0<=t&&t<256)&&(n=kp[t],n)?n:(r=X(t,0,!0),s&&(kp[t]=r),r)):(t|=0,(s=-128<=t&&t<128)&&(n=zp[t],n)?n:(r=X(t,t<0?-1:0,!1),s&&(zp[t]=r),r))}Z.fromInt=sr;function vt(t,e){if(isNaN(t))return e?ue:kt;if(e){if(t<0)return ue;if(t>=Yp)return Zp}else{if(t<=-Kp)return St;if(t+1>=Kp)return jp}return t<0?vt(-t,e).neg():X(t%Xr|0,t/Xr|0,e)}Z.fromNumber=vt;function X(t,e,r){return new Z(t,e,r)}Z.fromBits=X;var Li=Math.pow;function Wc(t,e,r){if(t.length===0)throw Error("empty string");if(typeof e=="number"?(r=e,e=!1):e=!!e,t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return e?ue:kt;if(r=r||10,r<2||36<r)throw RangeError("radix");var n;if((n=t.indexOf("-"))>0)throw Error("interior hyphen");if(n===0)return Wc(t.substring(1),e,r).neg();for(var s=vt(Li(r,8)),i=kt,o=0;o<t.length;o+=8){var a=Math.min(8,t.length-o),c=parseInt(t.substring(o,o+a),r);if(a<8){var l=vt(Li(r,a));i=i.mul(l).add(vt(c))}else i=i.mul(s),i=i.add(vt(c))}return i.unsigned=e,i}Z.fromString=Wc;function Gt(t,e){return typeof t=="number"?vt(t,e):typeof t=="string"?Wc(t,e):X(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}Z.fromValue=Gt;var Gp=1<<16,HS=1<<24,Xr=Gp*Gp,Yp=Xr*Xr,Kp=Yp/2,Jp=sr(HS),kt=sr(0);Z.ZERO=kt;var ue=sr(0,!0);Z.UZERO=ue;var Vr=sr(1);Z.ONE=Vr;var qp=sr(1,!0);Z.UONE=qp;var Xc=sr(-1);Z.NEG_ONE=Xc;var jp=X(-1,2147483647,!1);Z.MAX_VALUE=jp;var Zp=X(-1,-1,!0);Z.MAX_UNSIGNED_VALUE=Zp;var St=X(0,-2147483648,!1);Z.MIN_VALUE=St;var I=Z.prototype;I.toInt=function(){return this.unsigned?this.low>>>0:this.low};I.toNumber=function(){return this.unsigned?(this.high>>>0)*Xr+(this.low>>>0):this.high*Xr+(this.low>>>0)};I.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(St)){var r=vt(e),n=this.div(r),s=n.mul(r).sub(this);return n.toString(e)+s.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var i=vt(Li(e,6),this.unsigned),o=this,a="";;){var c=o.div(i),l=o.sub(c.mul(i)).toInt()>>>0,h=l.toString(e);if(o=c,o.isZero())return h+a;for(;h.length<6;)h="0"+h;a=""+h+a}};I.getHighBits=function(){return this.high};I.getHighBitsUnsigned=function(){return this.high>>>0};I.getLowBits=function(){return this.low};I.getLowBitsUnsigned=function(){return this.low>>>0};I.getNumBitsAbs=function(){if(this.isNegative())return this.eq(St)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,r=31;r>0&&!(e&1<<r);r--);return this.high!=0?r+33:r+1};I.isZero=function(){return this.high===0&&this.low===0};I.eqz=I.isZero;I.isNegative=function(){return!this.unsigned&&this.high<0};I.isPositive=function(){return this.unsigned||this.high>=0};I.isOdd=function(){return(this.low&1)===1};I.isEven=function(){return(this.low&1)===0};I.equals=function(e){return pt(e)||(e=Gt(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low};I.eq=I.equals;I.notEquals=function(e){return!this.eq(e)};I.neq=I.notEquals;I.ne=I.notEquals;I.lessThan=function(e){return this.comp(e)<0};I.lt=I.lessThan;I.lessThanOrEqual=function(e){return this.comp(e)<=0};I.lte=I.lessThanOrEqual;I.le=I.lessThanOrEqual;I.greaterThan=function(e){return this.comp(e)>0};I.gt=I.greaterThan;I.greaterThanOrEqual=function(e){return this.comp(e)>=0};I.gte=I.greaterThanOrEqual;I.ge=I.greaterThanOrEqual;I.compare=function(e){if(pt(e)||(e=Gt(e)),this.eq(e))return 0;var r=this.isNegative(),n=e.isNegative();return r&&!n?-1:!r&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1};I.comp=I.compare;I.negate=function(){return!this.unsigned&&this.eq(St)?St:this.not().add(Vr)};I.neg=I.negate;I.add=function(e){pt(e)||(e=Gt(e));var r=this.high>>>16,n=this.high&65535,s=this.low>>>16,i=this.low&65535,o=e.high>>>16,a=e.high&65535,c=e.low>>>16,l=e.low&65535,h=0,f=0,u=0,d=0;return d+=i+l,u+=d>>>16,d&=65535,u+=s+c,f+=u>>>16,u&=65535,f+=n+a,h+=f>>>16,f&=65535,h+=r+o,h&=65535,X(u<<16|d,h<<16|f,this.unsigned)};I.subtract=function(e){return pt(e)||(e=Gt(e)),this.add(e.neg())};I.sub=I.subtract;I.multiply=function(e){if(this.isZero())return this;if(pt(e)||(e=Gt(e)),wt){var r=wt.mul(this.low,this.high,e.low,e.high);return X(r,wt.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?ue:kt;if(this.eq(St))return e.isOdd()?St:kt;if(e.eq(St))return this.isOdd()?St:kt;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(Jp)&&e.lt(Jp))return vt(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,s=this.high&65535,i=this.low>>>16,o=this.low&65535,a=e.high>>>16,c=e.high&65535,l=e.low>>>16,h=e.low&65535,f=0,u=0,d=0,p=0;return p+=o*h,d+=p>>>16,p&=65535,d+=i*h,u+=d>>>16,d&=65535,d+=o*l,u+=d>>>16,d&=65535,u+=s*h,f+=u>>>16,u&=65535,u+=i*l,f+=u>>>16,u&=65535,u+=o*c,f+=u>>>16,u&=65535,f+=n*h+s*l+i*c+o*a,f&=65535,X(d<<16|p,f<<16|u,this.unsigned)};I.mul=I.multiply;I.divide=function(e){if(pt(e)||(e=Gt(e)),e.isZero())throw Error("division by zero");if(wt){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var r=(this.unsigned?wt.div_u:wt.div_s)(this.low,this.high,e.low,e.high);return X(r,wt.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?ue:kt;var n,s,i;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return ue;if(e.gt(this.shru(1)))return qp;i=ue}else{if(this.eq(St)){if(e.eq(Vr)||e.eq(Xc))return St;if(e.eq(St))return Vr;var o=this.shr(1);return n=o.div(e).shl(1),n.eq(kt)?e.isNegative()?Vr:Xc:(s=this.sub(e.mul(n)),i=n.add(s.div(e)),i)}else if(e.eq(St))return this.unsigned?ue:kt;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();i=kt}for(s=this;s.gte(e);){n=Math.max(1,Math.floor(s.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),c=a<=48?1:Li(2,a-48),l=vt(n),h=l.mul(e);h.isNegative()||h.gt(s);)n-=c,l=vt(n,this.unsigned),h=l.mul(e);l.isZero()&&(l=Vr),i=i.add(l),s=s.sub(h)}return i};I.div=I.divide;I.modulo=function(e){if(pt(e)||(e=Gt(e)),wt){var r=(this.unsigned?wt.rem_u:wt.rem_s)(this.low,this.high,e.low,e.high);return X(r,wt.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))};I.mod=I.modulo;I.rem=I.modulo;I.not=function(){return X(~this.low,~this.high,this.unsigned)};I.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32};I.clz=I.countLeadingZeros;I.countTrailingZeros=function(){return this.low?Wp(this.low):Wp(this.high)+32};I.ctz=I.countTrailingZeros;I.and=function(e){return pt(e)||(e=Gt(e)),X(this.low&e.low,this.high&e.high,this.unsigned)};I.or=function(e){return pt(e)||(e=Gt(e)),X(this.low|e.low,this.high|e.high,this.unsigned)};I.xor=function(e){return pt(e)||(e=Gt(e)),X(this.low^e.low,this.high^e.high,this.unsigned)};I.shiftLeft=function(e){return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?X(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):X(0,this.low<<e-32,this.unsigned)};I.shl=I.shiftLeft;I.shiftRight=function(e){return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?X(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):X(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};I.shr=I.shiftRight;I.shiftRightUnsigned=function(e){return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?X(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?X(this.high,0,this.unsigned):X(this.high>>>e-32,0,this.unsigned)};I.shru=I.shiftRightUnsigned;I.shr_u=I.shiftRightUnsigned;I.rotateLeft=function(e){var r;return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?X(this.high,this.low,this.unsigned):e<32?(r=32-e,X(this.low<<e|this.high>>>r,this.high<<e|this.low>>>r,this.unsigned)):(e-=32,r=32-e,X(this.high<<e|this.low>>>r,this.low<<e|this.high>>>r,this.unsigned))};I.rotl=I.rotateLeft;I.rotateRight=function(e){var r;return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?X(this.high,this.low,this.unsigned):e<32?(r=32-e,X(this.high<<r|this.low>>>e,this.low<<r|this.high>>>e,this.unsigned)):(e-=32,r=32-e,X(this.low<<r|this.high>>>e,this.high<<r|this.low>>>e,this.unsigned))};I.rotr=I.rotateRight;I.toSigned=function(){return this.unsigned?X(this.low,this.high,!1):this};I.toUnsigned=function(){return this.unsigned?this:X(this.low,this.high,!0)};I.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()};I.toBytesLE=function(){var e=this.high,r=this.low;return[r&255,r>>>8&255,r>>>16&255,r>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]};I.toBytesBE=function(){var e=this.high,r=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,r>>>24,r>>>16&255,r>>>8&255,r&255]};Z.fromBytes=function(e,r,n){return n?Z.fromBytesLE(e,r):Z.fromBytesBE(e,r)};Z.fromBytesLE=function(e,r){return new Z(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,r)};Z.fromBytesBE=function(e,r){return new Z(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],r)};var Wr=Z;var VS=16;function Un(t){t==="X"&&(t="");let e=t.padEnd(VS,"0");return Wr.fromString(e,!0,16)}function zc(t){if(t.isZero())return"X";let e=t.countTrailingZeros(),r=e%4;e=(e-r)/4;let n=e;e*=4;let i=t.shiftRightUnsigned(e).toString(16).replace(/0+$/,"");return Array(17-n-i.length).join("0")+i}function kc(t,e){let r=XS(t).shiftRightUnsigned(2);return t.add(Wr.fromNumber(2*e+1-4).multiply(r))}function XS(t){return t.and(t.not().add(1))}var WS=3,zS=30,kS=2*zS+1,Qp=180/Math.PI;function tg(t){if(t.length===0)throw new Error(`Invalid Hilbert quad key ${t}`);let e=t.split("/"),r=parseInt(e[0],10),n=e[1],s=n.length,i=0,o=[0,0];for(let a=s-1;a>=0;a--){i=s-a;let c=n[a],l=0,h=0;c==="1"?h=1:c==="2"?(l=1,h=1):c==="3"&&(l=1);let f=Math.pow(2,i-1);GS(f,o,l,h),o[0]+=f*l,o[1]+=f*h}if(r%2===1){let a=o[0];o[0]=o[1],o[1]=a}return{face:r,ij:o,level:i}}function eg(t){if(t.isZero())return"";let e=t.toString(2);for(;e.length<WS+kS;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),s=e.substring(3,r),i=s.length/2,o=Wr.fromString(n,!0,2).toString(10),a="";if(i!==0)for(a=Wr.fromString(s,!0,2).toString(4);a.length<i;)a="0"+a;return`${o}/${a}`}function Gc(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function $p(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function Kc(t){return[$p(t[0]),$p(t[1])]}function Jc(t,e){let[r,n]=e;switch(t){case 0:return[1,r,n];case 1:return[-r,1,n];case 2:return[-r,-n,1];case 3:return[-1,-n,-r];case 4:return[n,-1,-r];case 5:return[n,r,-1];default:throw new Error("Invalid face")}}function Yc(t){let[e,r,n]=t,s=Math.atan2(n,Math.sqrt(e*e+r*r));return[Math.atan2(r,e)*Qp,s*Qp]}function GS(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let s=e[0];e[0]=e[1],e[1]=s}}function rg(t){let e=Gc(t.ij,t.level,[.5,.5]),r=Kc(e),n=Jc(t.face,r);return Yc(n)}var KS=100;function qc(t){let{face:e,ij:r,level:n}=t,s=[[0,0],[0,1],[1,1],[1,0],[0,0]],i=Math.max(1,Math.ceil(KS*Math.pow(2,-n))),o=new Float64Array(4*i*2+2),a=0,c=0;for(let l=0;l<4;l++){let h=s[l].slice(0),f=s[l+1],u=(f[0]-h[0])/i,d=(f[1]-h[1])/i;for(let p=0;p<i;p++){h[0]+=u,h[1]+=d;let _=Gc(r,n,h),A=Kc(_),T=Jc(e,A),x=Yc(T);Math.abs(x[1])>89.999&&(x[0]=c);let R=x[0]-c;x[0]+=R>180?-360:R<-180?360:0,o[a++]=x[0],o[a++]=x[1],c=x[0]}}return o[a++]=o[0],o[a++]=o[1],o}function zr(t){let e=JS(t);return tg(e)}function JS(t){if(t.indexOf("/")>0)return t;let e=Un(t);return eg(e)}function jc(t){let e=zr(t);return rg(e)}function sg(t){let e;if(t.face===2||t.face===5){let r=null,n=0;for(let s=0;s<4;s++){let i=`${t.face}/${s}`,o=zr(i),a=qc(o);(typeof r>"u"||r===null)&&(r=new Float64Array(4*a.length)),r.set(a,n),n+=a.length}e=ng(r)}else{let r=qc(t);e=ng(r)}return e}function ng(t){if(t.length%2!==0)throw new Error("Invalid corners");let e=[],r=[];for(let n=0;n<t.length;n+=2)e.push(t[n]),r.push(t[n+1]);return e.sort((n,s)=>n-s),r.sort((n,s)=>n-s),{west:e[0],east:e[e.length-1],north:r[r.length-1],south:r[0]}}function Zc(t,e){let r=e?.minimumHeight||0,n=e?.maximumHeight||0,s=zr(t),i=sg(s),o=i.west,a=i.south,c=i.east,l=i.north,h=[];return h.push(new m(o,l,r)),h.push(new m(c,l,r)),h.push(new m(c,a,r)),h.push(new m(o,a,r)),h.push(new m(o,l,n)),h.push(new m(c,l,n)),h.push(new m(c,a,n)),h.push(new m(o,a,n)),h}function Hi(t){let e=t.token,r={minimumHeight:t.minimumHeight,maximumHeight:t.maximumHeight},n=Zc(e,r),s=jc(e),i=s[0],o=s[1],a=L.WGS84.cartographicToCartesian([i,o,r.maximumHeight]),c=new m(a[0],a[1],a[2]);n.push(c);let l=An(n);return[...l.center,...l.halfAxes]}var YS=4,qS=8,jS={QUADTREE:YS,OCTREE:qS};function ZS(t,e,r){if(t!=null&&t.box){let n=Un(t.s2VolumeInfo.token),s=kc(n,e),i=zc(s),o={...t.s2VolumeInfo};switch(o.token=i,r){case"OCTREE":let l=t.s2VolumeInfo,h=l.maximumHeight-l.minimumHeight,f=h/2,u=l.minimumHeight+h/2;l.minimumHeight=u-f,l.maximumHeight=u+f;break;default:break}return{box:Hi(o),s2VolumeInfo:o}}}async function $c(t){let{implicitOptions:e,parentData:r={mortonIndex:0,x:0,y:0,z:0},childIndex:n=0,s2VolumeBox:s,loaderOptions:i}=t,{subtree:o,level:a=0,globalData:c={level:0,mortonIndex:0,x:0,y:0,z:0}}=t,{subdivisionScheme:l,subtreeLevels:h,maximumLevel:f,contentUrlTemplate:u,subtreesUriTemplate:d,basePath:p}=e,_={children:[],lodMetricValue:0,contentUrl:""};if(!f)return Vc.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${u} won't be loaded...`),_;let A=a+c.level;if(A>f)return _;let T=jS[l],x=Math.log2(T),R=n&1,S=n>>1&1,B=n>>2&1,M=(T**a-1)/(T-1),F=ir(r.mortonIndex,n,x),C=M+F,E=ir(r.x,R,1),g=ir(r.y,S,1),y=ir(r.z,B,1),O=!1;a>=h&&(O=Qc(o.childSubtreeAvailability,F));let b=ir(c.x,E,a),N=ir(c.y,g,a),U=ir(c.z,y,a);if(O){let q=`${p}/${d}`,tt=Vi(q,A,b,N,U);o=await(0,ig.load)(tt,Di,i),c={mortonIndex:F,x:E,y:g,z:y,level:a},F=0,C=0,E=0,g=0,y=0,a=0}if(!Qc(o.tileAvailability,C))return _;Qc(o.contentAvailability,C)&&(_.contentUrl=Vi(u,A,b,N,U));let Q=a+1,J={mortonIndex:F,x:E,y:g,z:y};for(let q=0;q<T;q++){let tt=ZS(s,q,l),mt=await $c({subtree:o,implicitOptions:e,loaderOptions:i,parentData:J,childIndex:q,level:Q,globalData:{...c},s2VolumeBox:tt});if(mt.contentUrl||mt.children.length){let o0=A+1,a0=QS(mt,o0,{childTileX:E,childTileY:g,childTileZ:y},e,s);_.children.push(a0)}}return _}function Qc(t,e){let r;return Array.isArray(t)?(r=t[0],t.length>1&&Vc.once('Not supported extension "3DTILES_multiple_contents" has been detected')):r=t,"constant"in r?Boolean(r.constant):r.explicitBitstream?eC(e,r.explicitBitstream):!1}function QS(t,e,r,n,s){let{basePath:i,refine:o,getRefine:a,lodMetricType:c,getTileType:l,rootLodMetricValue:h,rootBoundingVolume:f}=n,u=t.contentUrl&&t.contentUrl.replace(`${i}/`,""),d=h/2**e,p=s!=null&&s.box?{box:s.box}:f,_=$S(e,p,r);return{children:t.children,contentUrl:t.contentUrl,content:{uri:u},id:t.contentUrl,refine:a(o),type:l(t),lodMetricType:c,lodMetricValue:d,geometricError:d,transform:t.transform,boundingVolume:_}}function $S(t,e,r){if(e.region){let{childTileX:n,childTileY:s,childTileZ:i}=r,[o,a,c,l,h,f]=e.region,u=2**t,d=(c-o)/u,p=(l-a)/u,_=(f-h)/u,[A,T]=[o+d*n,o+d*(n+1)],[x,R]=[a+p*s,a+p*(s+1)],[S,B]=[h+_*i,h+_*(i+1)];return{region:[A,x,T,R,S,B]}}if(e.box)return e;throw new Error(`Unsupported bounding volume type ${e}`)}function ir(t,e,r){return(t<<r)+e}function Vi(t,e,r,n,s){let i=tC({level:e,x:r,y:n,z:s});return t.replace(/{level}|{x}|{y}|{z}/gi,o=>i[o])}function tC(t){let e={};for(let r in t)e[`{${r}}`]=t[r];return e}function eC(t,e){let r=Math.floor(t/8),n=t%8;return(e[r]>>n&1)===1}function el(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";if(!e)return re.EMPTY;let n=e.split("?")[0].split(".").pop();switch(n){case"pnts":return re.POINTCLOUD;case"i3dm":case"b3dm":case"glb":case"gltf":return re.SCENEGRAPH;default:return n||re.EMPTY}}function rl(t){switch(t){case"REPLACE":case"replace":return Et.REPLACE;case"ADD":case"add":return Et.ADD;default:return t}}function tl(t,e){if(/^[a-z][0-9a-z+.-]*:/i.test(e)){let n=new URL(t,`${e}/`);return decodeURI(n.toString())}else if(t.startsWith("/"))return t;return Te.resolve(e,t)}function og(t,e){if(!t)return null;let r;if(t.content){var n;let i=t.content.uri||((n=t.content)===null||n===void 0?void 0:n.url);typeof i<"u"&&(r=tl(i,e))}return{...t,id:r,contentUrl:r,lodMetricType:qe.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:el(t,r),refine:rl(t.refine)}}async function hg(t,e,r){let n=null,s=cg(t.root);s&&t.root?n=await ag(t.root,t,e,s,r):n=og(t.root,e);let i=[];for(i.push(n);i.length>0;){let o=i.pop()||{},a=o.children||[],c=[];for(let l of a){let h=cg(l),f;h?f=await ag(l,t,e,h,r):f=og(l,e),f&&(c.push(f),i.push(f))}o.children=c}return n}async function ag(t,e,r,n,s){var i,o,a;let{subdivisionScheme:c,maximumLevel:l,availableLevels:h,subtreeLevels:f,subtrees:{uri:u}}=n,d=Vi(u,0,0,0,0),p=tl(d,r),_=await(0,lg.load)(p,Di,s),A=(i=t.content)===null||i===void 0?void 0:i.uri,T=A?tl(A,r):"",x=e==null||(o=e.root)===null||o===void 0?void 0:o.refine,R=t.geometricError,S=(a=t.boundingVolume.extensions)===null||a===void 0?void 0:a["3DTILES_bounding_volume_S2"];if(S){let C={box:Hi(S),s2VolumeInfo:S};t.boundingVolume=C}let B=t.boundingVolume,M={contentUrlTemplate:T,subtreesUriTemplate:u,subdivisionScheme:c,subtreeLevels:f,maximumLevel:Number.isFinite(h)?h-1:l,refine:x,basePath:r,lodMetricType:qe.GEOMETRIC_ERROR,rootLodMetricValue:R,rootBoundingVolume:B,getTileType:el,getRefine:rl};return await rC(t,r,_,M,s)}async function rC(t,e,r,n,s){if(!t)return null;let{children:i,contentUrl:o}=await $c({subtree:r,implicitOptions:n,loaderOptions:s}),a,c=null;return o&&(a=o,c={uri:o.replace(`${e}/`,"")}),{...t,id:a,contentUrl:a,lodMetricType:qe.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:el(t,a),refine:rl(t.refine),content:c||t.content,children:i}}function cg(t){var e;return(t==null||(e=t.extensions)===null||e===void 0?void 0:e["3DTILES_implicit_tiling"])||t?.implicitTiling}var Xi={id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:Ai,extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:nC,options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};async function nC(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,n=e["3d-tiles"]||{},s;return n.isTileset==="auto"?s=r?.url&&r.url.indexOf(".json")!==-1:s=n.isTileset,s?sC(t,e,r):iC(t,e,r)}async function sC(t,e,r){var n;let s=JSON.parse(new TextDecoder().decode(t)),i=r?.url||"",o=oC(i),a=await hg(s,o,e||{});return{...s,shape:"tileset3d",loader:Xi,url:i,queryString:r?.queryString||"",basePath:o,root:a||s.root,type:ft.TILES3D,lodMetricType:qe.GEOMETRIC_ERROR,lodMetricValue:((n=s.root)===null||n===void 0?void 0:n.geometricError)||0}}async function iC(t,e,r){let n={content:{shape:"tile3d",featureIds:null}};return await Lc(t,0,e,r,n.content),n.content}function oC(t){return Te.dirname(t)}var fg=[0],aC={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:Xi,onTilesetLoad:{type:"function",value:t=>{}},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:(t,e,r)=>{}},_getMeshColor:{type:"function",value:t=>[255,255,255]}},Wi=class extends be.CompositeLayer{initializeState(){"onTileLoadFail"in this.props&&be.log.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){return Boolean(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:r,changeFlags:n}){if(e.data&&e.data!==r.data&&this._loadTileset(e.data),n.viewportChanged){let{activeViewports:s}=this.state;Object.keys(s).length&&(this._updateTileset(s),this.state.lastUpdatedViewports=s,this.state.activeViewports={})}if(n.propsChanged){let{layerMap:s}=this.state;for(let i in s)s[i].needsUpdate=!0}}activateViewport(e){let{activeViewports:r,lastUpdatedViewports:n}=this.state;this.internalState.viewport=e,r[e.id]=e;let s=n?.[e.id];(!s||!e.equals(s))&&(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:e,sourceLayer:r}){let n=r&&r.props.tile;return e.picked&&(e.object=n),e.sourceTile=n,e}filterSubLayer({layer:e,viewport:r}){let{tile:n}=e.props,{id:s}=r;return n.selected&&n.viewportIds.includes(s)}_updateAutoHighlight(e){let r=e.sourceTile,n=this.state.layerMap[r?.id];n&&n.layer&&n.layer.updateAutoHighlight(e)}async _loadTileset(e){let{loadOptions:r={}}=this.props,n=this.props.loader||this.props.loaders,s=Array.isArray(n)?n[0]:n,i={loadOptions:{...r}},o=e;if(s.preload){let l=await s.preload(e,r);l.url&&(o=l.url),l.headers&&(i.loadOptions.fetch={...i.loadOptions.fetch,headers:l.headers}),Object.assign(i,l)}let a=await(0,gg.load)(o,s,i.loadOptions),c=new yn(a,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,...i});this.setState({tileset3d:c,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(c)}_onTileLoad(e){let{lastUpdatedViewports:r}=this.state;this.props.onTileLoad(e),this._updateTileset(r),this.setNeedsUpdate()}_onTileUnload(e){delete this.state.layerMap[e.id],this.props.onTileUnload(e)}_updateTileset(e){if(!e)return;let{tileset3d:r}=this.state,{timeline:n}=this.context,s=Object.keys(e).length;!n||!s||!r||r.selectTiles(Object.values(e)).then(i=>{this.state.frameNumber!==i&&this.setState({frameNumber:i})})}_getSubLayer(e,r){if(!e.content)return null;switch(e.type){case re.POINTCLOUD:return this._makePointCloudLayer(e,r);case re.SCENEGRAPH:return this._make3DModelLayer(e);case re.MESH:return this._makeSimpleMeshLayer(e,r);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${e.content.type}`)}}_makePointCloudLayer(e,r){let{attributes:n,pointCount:s,constantRGBA:i,cartographicOrigin:o,modelMatrix:a}=e.content,{positions:c,normals:l,colors:h}=n;if(!c)return null;let f=r&&r.props.data||{header:{vertexCount:s},attributes:{POSITION:c,NORMAL:l,COLOR_0:h}},{pointSize:u,getPointColor:d}=this.props,p=this.getSubLayerClass("pointcloud",dg.PointCloudLayer);return new p({pointSize:u},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${e.id}`,tile:e,data:f,coordinateSystem:be.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:o,modelMatrix:a,getColor:i||d,_offset:0})}_make3DModelLayer(e){let{gltf:r,instances:n,cartographicOrigin:s,modelMatrix:i}=e.content,o=this.getSubLayerClass("scenegraph",pg.ScenegraphLayer);return new o({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${e.id}`,tile:e,data:n||fg,scenegraph:r,coordinateSystem:be.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:s,modelMatrix:i,getTransformMatrix:a=>a.modelMatrix,getPosition:[0,0,0],_offset:0})}_makeSimpleMeshLayer(e,r){let n=e.content,{attributes:s,indices:i,modelMatrix:o,cartographicOrigin:a,coordinateSystem:c=be.COORDINATE_SYSTEM.METER_OFFSETS,material:l,featureIds:h}=n,{_getMeshColor:f}=this.props,u=r&&r.props.mesh||new ug.Geometry({topology:"triangle-list",attributes:cC(s),indices:i}),d=this.getSubLayerClass("mesh",Cn);return new d(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${e.id}`,tile:e,mesh:u,data:fg,getColor:f(e),pbrMaterial:l,modelMatrix:o,coordinateOrigin:a,coordinateSystem:c,featureIds:h,_offset:0})}renderLayers(){let{tileset3d:e,layerMap:r}=this.state;return e?e.tiles.map(n=>{let s=r[n.id]=r[n.id]||{tile:n},{layer:i}=s;return n.selected&&(i?s.needsUpdate&&(i=this._getSubLayer(n,i),s.needsUpdate=!1):i=this._getSubLayer(n)),s.layer=i,i}).filter(Boolean):null}},Ln=Wi;(()=>{Wi.defaultProps=aC})(),(()=>{Wi.layerName="Tile3DLayer"})();function cC(t){let e={};return e.positions={...t.positions,value:new Float32Array(t.positions.value)},t.normals&&(e.normals=t.normals),t.texCoords&&(e.texCoords=t.texCoords),t.colors&&(e.colors=t.colors),t.uvRegions&&(e.uvRegions=t.uvRegions),e}var Yi=v(Lt(),1),al=v(qs(),1),xg=v(Lt(),1);var lC=new Map([["centerX",Float64Array.BYTES_PER_ELEMENT],["centerY",Float64Array.BYTES_PER_ELEMENT],["centerZ",Float64Array.BYTES_PER_ELEMENT],["minHeight",Float32Array.BYTES_PER_ELEMENT],["maxHeight",Float32Array.BYTES_PER_ELEMENT],["boundingSphereCenterX",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterY",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterZ",Float64Array.BYTES_PER_ELEMENT],["boundingSphereRadius",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointX",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointY",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointZ",Float64Array.BYTES_PER_ELEMENT]]);function nl(t){return t>>1^-(t&1)}function hC(t){let e=0,r={};for(let[n,s]of lC){let i=s===8?t.getFloat64:t.getFloat32;r[n]=i.call(t,e,!0),e+=s}return{header:r,headerEndPosition:e}}function fC(t,e){let r=e,n=3,s=t.getUint32(r,!0),i=new Uint16Array(s*n);r+=Uint32Array.BYTES_PER_ELEMENT;let o=Uint16Array.BYTES_PER_ELEMENT,a=s*o,c=r,l=c+a,h=l+a,f=0,u=0,d=0;for(let p=0;p<s;p++)f+=nl(t.getUint16(c+o*p,!0)),u+=nl(t.getUint16(l+o*p,!0)),d+=nl(t.getUint16(h+o*p,!0)),i[p]=f,i[p+s]=u,i[p+s*2]=d;return r+=a*3,{vertexData:i,vertexDataEndPosition:r}}function Hn(t,e,r,n){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i;if(n===2?i=new Uint16Array(t,e,r):i=new Uint32Array(t,e,r),!s)return i;let o=0;for(let a=0;a<i.length;++a){let c=i[a];i[a]=o-c,c===0&&++o}return i}function uC(t,e,r){let n=r,s=3,o=e.length/s>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT;n%o!==0&&(n+=o-n%o);let a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=a*3,l=Hn(t.buffer,n,c,o);return n+=c*o,{triangleIndicesEndPosition:n,triangleIndices:l}}function dC(t,e,r){let n=r,s=3,o=e.length/s>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT,a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=Hn(t.buffer,n,a,o,!1);n+=a*o;let l=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let h=Hn(t.buffer,n,l,o,!1);n+=l*o;let f=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let u=Hn(t.buffer,n,f,o,!1);n+=f*o;let d=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let p=Hn(t.buffer,n,d,o,!1);return n+=d*o,{edgeIndicesEndPosition:n,westIndices:c,southIndices:h,eastIndices:u,northIndices:p}}function pC(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function gC(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}function AC(t,e){let r={};if(t.byteLength<=e)return{extensions:r,extensionsEndPosition:e};let n=e;for(;n<t.byteLength;){let s=t.getUint8(n,!0);n+=Uint8Array.BYTES_PER_ELEMENT;let i=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let o=new DataView(t.buffer,n,i);switch(s){case 1:{r.vertexNormals=pC(o);break}case 2:{r.waterMask=gC(o);break}default:}n+=i}return{extensions:r,extensionsEndPosition:n}}var or={header:0,vertices:1,triangleIndices:2,edgeIndices:3,extensions:4},_C={maxDecodingStep:or.extensions};function sl(t,e){let r=Object.assign({},_C,e),n=new DataView(t),{header:s,headerEndPosition:i}=hC(n);if(r.maxDecodingStep<or.vertices)return{header:s};let{vertexData:o,vertexDataEndPosition:a}=fC(n,i);if(r.maxDecodingStep<or.triangleIndices)return{header:s,vertexData:o};let{triangleIndices:c,triangleIndicesEndPosition:l}=uC(n,o,a);if(r.maxDecodingStep<or.edgeIndices)return{header:s,vertexData:o,triangleIndices:c};let{westIndices:h,southIndices:f,eastIndices:u,northIndices:d,edgeIndicesEndPosition:p}=dC(n,o,l);if(r.maxDecodingStep<or.extensions)return{header:s,vertexData:o,triangleIndices:c,westIndices:h,northIndices:d,eastIndices:u,southIndices:f};let{extensions:_}=AC(n,p);return{header:s,vertexData:o,triangleIndices:c,westIndices:h,northIndices:d,eastIndices:u,southIndices:f,extensions:_}}function zi(t,e,r,n){let s=n?TC(n,t.POSITION.value):mC(e),i=new t.POSITION.value.constructor(s.length*6),o=new t.TEXCOORD_0.value.constructor(s.length*4),a=new e.constructor(s.length*6);for(let l=0;l<s.length;l++){let h=s[l];EC({edge:h,edgeIndex:l,attributes:t,skirtHeight:r,newPosition:i,newTexcoord0:o,newTriangles:a})}t.POSITION.value=jr(t.POSITION.value,i),t.TEXCOORD_0.value=jr(t.TEXCOORD_0.value,o);let c=e instanceof Array?e.concat(a):jr(e,a);return{attributes:t,triangles:c}}function mC(t){let e=[];for(let o=0;o<t.length;o+=3)e.push([t[o],t[o+1]]),e.push([t[o+1],t[o+2]]),e.push([t[o+2],t[o]]);e.sort((o,a)=>Math.min(...o)-Math.min(...a)||Math.max(...o)-Math.max(...a));let r=[],n=0;for(;n<e.length;){var s,i;e[n][0]===((s=e[n+1])===null||s===void 0?void 0:s[1])&&e[n][1]===((i=e[n+1])===null||i===void 0?void 0:i[0])?n+=2:(r.push(e[n]),n++)}return r}function TC(t,e){t.westIndices.sort((n,s)=>e[3*n+1]-e[3*s+1]),t.eastIndices.sort((n,s)=>e[3*s+1]-e[3*n+1]),t.southIndices.sort((n,s)=>e[3*s]-e[3*n]),t.northIndices.sort((n,s)=>e[3*n]-e[3*s]);let r=[];for(let n in t){let s=t[n];for(let i=0;i<s.length-1;i++)r.push([s[i],s[i+1]])}return r}function EC(t){let{edge:e,edgeIndex:r,attributes:n,skirtHeight:s,newPosition:i,newTexcoord0:o,newTriangles:a}=t,c=n.POSITION.value.length,l=r*2,h=r*2+1;i.set(n.POSITION.value.subarray(e[0]*3,e[0]*3+3),l*3),i[l*3+2]=i[l*3+2]-s,i.set(n.POSITION.value.subarray(e[1]*3,e[1]*3+3),h*3),i[h*3+2]=i[h*3+2]-s,o.set(n.TEXCOORD_0.value.subarray(e[0]*2,e[0]*2+2),l*2),o.set(n.TEXCOORD_0.value.subarray(e[1]*2,e[1]*2+2),h*2);let f=r*2*3;a[f]=e[0],a[f+1]=c/3+h,a[f+2]=e[1],a[f+3]=c/3+h,a[f+4]=e[0],a[f+5]=c/3+l}function il(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{bounds:r}=e,{header:n,vertexData:s,triangleIndices:i,westIndices:o,northIndices:a,eastIndices:c,southIndices:l}=sl(t,or.triangleIndices),h=i,f=RC(s,n,r),u=$e(f);if(e!=null&&e.skirtHeight){let{attributes:d,triangles:p}=zi(f,h,e.skirtHeight,{westIndices:o,northIndices:a,eastIndices:c,southIndices:l});f=d,h=p}return{loaderData:{header:{}},header:{vertexCount:h.length,boundingBox:u},schema:void 0,topology:"triangle-list",mode:4,indices:{value:h,size:1},attributes:f}}function RC(t,e,r){let{minHeight:n,maxHeight:s}=e,[i,o,a,c]=r||[0,0,1,1],l=a-i,h=c-o,f=s-n,u=t.length/3,d=new Float32Array(u*3),p=new Float32Array(u*2);for(let _=0;_<u;_++){let A=t[_]/32767,T=t[_+u]/32767,x=t[_+u*2]/32767;d[3*_+0]=A*l+i,d[3*_+1]=T*h+o,d[3*_+2]=x*f+n,p[2*_+0]=A,p[2*_+1]=T}return{POSITION:{value:d,size:3},TEXCOORD_0:{value:p,size:2}}}var Vn=class{constructor(e=257){this.gridSize=e;let r=e-1;if(r&r-1)throw new Error(`Expected grid size to be 2^n+1, got ${e}.`);this.numTriangles=r*r*2-2,this.numParentTriangles=this.numTriangles-r*r,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(this.numTriangles*4);for(let n=0;n<this.numTriangles;n++){let s=n+2,i=0,o=0,a=0,c=0,l=0,h=0;for(s&1?a=c=l=r:i=o=h=r;(s>>=1)>1;){let u=i+a>>1,d=o+c>>1;s&1?(a=i,c=o,i=l,o=h):(i=a,o=c,a=l,c=h),l=u,h=d}let f=n*4;this.coords[f+0]=i,this.coords[f+1]=o,this.coords[f+2]=a,this.coords[f+3]=c}}createTile(e){return new ol(e,this)}},ol=class{constructor(e,r){let n=r.gridSize;if(e.length!==n*n)throw new Error(`Expected terrain data of length ${n*n} (${n} x ${n}), got ${e.length}.`);this.terrain=e,this.martini=r,this.errors=new Float32Array(e.length),this.update()}update(){let{numTriangles:e,numParentTriangles:r,coords:n,gridSize:s}=this.martini,{terrain:i,errors:o}=this;for(let a=e-1;a>=0;a--){let c=a*4,l=n[c+0],h=n[c+1],f=n[c+2],u=n[c+3],d=l+f>>1,p=h+u>>1,_=d+p-h,A=p+l-d,T=(i[h*s+l]+i[u*s+f])/2,x=p*s+d,R=Math.abs(T-i[x]);if(o[x]=Math.max(o[x],R),a<r){let S=(h+A>>1)*s+(l+_>>1),B=(u+A>>1)*s+(f+_>>1);o[x]=Math.max(o[x],o[S],o[B])}}}getMesh(e=0){let{gridSize:r,indices:n}=this.martini,{errors:s}=this,i=0,o=0,a=r-1;n.fill(0);function c(d,p,_,A,T,x){let R=d+_>>1,S=p+A>>1;Math.abs(d-T)+Math.abs(p-x)>1&&s[S*r+R]>e?(c(T,x,d,p,R,S),c(_,A,T,x,R,S)):(n[p*r+d]=n[p*r+d]||++i,n[A*r+_]=n[A*r+_]||++i,n[x*r+T]=n[x*r+T]||++i,o++)}c(0,0,a,a,a,0),c(a,a,0,0,0,a);let l=new Uint16Array(i*2),h=new Uint32Array(o*3),f=0;function u(d,p,_,A,T,x){let R=d+_>>1,S=p+A>>1;if(Math.abs(d-T)+Math.abs(p-x)>1&&s[S*r+R]>e)u(T,x,d,p,R,S),u(_,A,T,x,R,S);else{let B=n[p*r+d]-1,M=n[A*r+_]-1,F=n[x*r+T]-1;l[2*B]=d,l[2*B+1]=p,l[2*M]=_,l[2*M+1]=A,l[2*F]=T,l[2*F+1]=x,h[f++]=B,h[f++]=M,h[f++]=F}}return u(0,0,a,a,a,0),u(a,a,0,0,0,a),{vertices:l,triangles:h}}};var Xn=class{constructor(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:r;this.data=e,this.width=r,this.height=n,this.coords=[],this.triangles=[],this._halfedges=[],this._candidates=[],this._queueIndices=[],this._queue=[],this._errors=[],this._rms=[],this._pending=[],this._pendingLen=0,this._rmsSum=0;let s=r-1,i=n-1,o=this._addPoint(0,0),a=this._addPoint(s,0),c=this._addPoint(0,i),l=this._addPoint(s,i),h=this._addTriangle(l,o,c,-1,-1,-1);this._addTriangle(o,l,a,h,-1,-1),this._flush()}run(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;for(;this.getMaxError()>e;)this.refine()}refine(){this._step(),this._flush()}getMaxError(){return this._errors[0]}getRMSD(){return this._rmsSum>0?Math.sqrt(this._rmsSum/(this.width*this.height)):0}heightAt(e,r){return this.data[this.width*r+e]}_flush(){let e=this.coords;for(let r=0;r<this._pendingLen;r++){let n=this._pending[r],s=2*this.triangles[n*3+0],i=2*this.triangles[n*3+1],o=2*this.triangles[n*3+2];this._findCandidate(e[s],e[s+1],e[i],e[i+1],e[o],e[o+1],n)}this._pendingLen=0}_findCandidate(e,r,n,s,i,o,a){let c=Math.min(e,n,i),l=Math.min(r,s,o),h=Math.max(e,n,i),f=Math.max(r,s,o),u=ar(n,s,i,o,c,l),d=ar(i,o,e,r,c,l),p=ar(e,r,n,s,c,l),_=s-r,A=e-n,T=o-s,x=n-i,R=r-o,S=i-e,B=ar(e,r,n,s,i,o),M=this.heightAt(e,r)/B,F=this.heightAt(n,s)/B,C=this.heightAt(i,o)/B,E=0,g=0,y=0,O=0;for(let b=l;b<=f;b++){let N=0;u<0&&T!==0&&(N=Math.max(N,Math.floor(-u/T))),d<0&&R!==0&&(N=Math.max(N,Math.floor(-d/R))),p<0&&_!==0&&(N=Math.max(N,Math.floor(-p/_)));let U=u+T*N,Y=d+R*N,W=p+_*N,Q=!1;for(let J=c+N;J<=h;J++){if(U>=0&&Y>=0&&W>=0){Q=!0;let q=M*U+F*Y+C*W,tt=Math.abs(q-this.heightAt(J,b));O+=tt*tt,tt>E&&(E=tt,g=J,y=b)}else if(Q)break;U+=T,Y+=R,W+=_}u+=x,d+=S,p+=A}(g===e&&y===r||g===n&&y===s||g===i&&y===o)&&(E=0),this._candidates[2*a]=g,this._candidates[2*a+1]=y,this._rms[a]=O,this._queuePush(a,E,O)}_step(){let e=this._queuePop(),r=e*3+0,n=e*3+1,s=e*3+2,i=this.triangles[r],o=this.triangles[n],a=this.triangles[s],c=this.coords[2*i],l=this.coords[2*i+1],h=this.coords[2*o],f=this.coords[2*o+1],u=this.coords[2*a],d=this.coords[2*a+1],p=this._candidates[2*e],_=this._candidates[2*e+1],A=this._addPoint(p,_);if(ar(c,l,h,f,p,_)===0)this._handleCollinear(A,r);else if(ar(h,f,u,d,p,_)===0)this._handleCollinear(A,n);else if(ar(u,d,c,l,p,_)===0)this._handleCollinear(A,s);else{let T=this._halfedges[r],x=this._halfedges[n],R=this._halfedges[s],S=this._addTriangle(i,o,A,T,-1,-1,r),B=this._addTriangle(o,a,A,x,-1,S+1),M=this._addTriangle(a,i,A,R,S+2,B+1);this._legalize(S),this._legalize(B),this._legalize(M)}}_addPoint(e,r){let n=this.coords.length>>1;return this.coords.push(e,r),n}_addTriangle(e,r,n,s,i,o){let a=arguments.length>6&&arguments[6]!==void 0?arguments[6]:this.triangles.length,c=a/3;return this.triangles[a+0]=e,this.triangles[a+1]=r,this.triangles[a+2]=n,this._halfedges[a+0]=s,this._halfedges[a+1]=i,this._halfedges[a+2]=o,s>=0&&(this._halfedges[s]=a+0),i>=0&&(this._halfedges[i]=a+1),o>=0&&(this._halfedges[o]=a+2),this._candidates[2*c+0]=0,this._candidates[2*c+1]=0,this._queueIndices[c]=-1,this._rms[c]=0,this._pending[this._pendingLen++]=c,a}_legalize(e){let r=this._halfedges[e];if(r<0)return;let n=e-e%3,s=r-r%3,i=n+(e+1)%3,o=n+(e+2)%3,a=s+(r+2)%3,c=s+(r+1)%3,l=this.triangles[o],h=this.triangles[e],f=this.triangles[i],u=this.triangles[a],d=this.coords;if(!xC(d[2*l],d[2*l+1],d[2*h],d[2*h+1],d[2*f],d[2*f+1],d[2*u],d[2*u+1]))return;let p=this._halfedges[i],_=this._halfedges[o],A=this._halfedges[a],T=this._halfedges[c];this._queueRemove(n/3),this._queueRemove(s/3);let x=this._addTriangle(l,u,f,-1,A,p,n),R=this._addTriangle(u,l,h,x,_,T,s);this._legalize(x+1),this._legalize(R+2)}_handleCollinear(e,r){let n=r-r%3,s=n+(r+1)%3,i=n+(r+2)%3,o=this.triangles[i],a=this.triangles[r],c=this.triangles[s],l=this._halfedges[s],h=this._halfedges[i],f=this._halfedges[r];if(f<0){let M=this._addTriangle(e,o,a,-1,h,-1,n),F=this._addTriangle(o,e,c,M,-1,l);this._legalize(M+1),this._legalize(F+2);return}let u=f-f%3,d=u+(f+2)%3,p=u+(f+1)%3,_=this.triangles[d],A=this._halfedges[d],T=this._halfedges[p];this._queueRemove(u/3);let x=this._addTriangle(o,a,e,h,-1,-1,n),R=this._addTriangle(a,_,e,T,-1,x+1,u),S=this._addTriangle(_,c,e,A,-1,R+1),B=this._addTriangle(c,o,e,l,x+2,S+1);this._legalize(x),this._legalize(R),this._legalize(S),this._legalize(B)}_queuePush(e,r,n){let s=this._queue.length;this._queueIndices[e]=s,this._queue.push(e),this._errors.push(r),this._rmsSum+=n,this._queueUp(s)}_queuePop(){let e=this._queue.length-1;return this._queueSwap(0,e),this._queueDown(0,e),this._queuePopBack()}_queuePopBack(){let e=this._queue.pop();return this._errors.pop(),this._rmsSum-=this._rms[e],this._queueIndices[e]=-1,e}_queueRemove(e){let r=this._queueIndices[e];if(r<0){let s=this._pending.indexOf(e);if(s!==-1)this._pending[s]=this._pending[--this._pendingLen];else throw new Error("Broken triangulation (something went wrong).");return}let n=this._queue.length-1;n!==r&&(this._queueSwap(r,n),this._queueDown(r,n)||this._queueUp(r)),this._queuePopBack()}_queueLess(e,r){return this._errors[e]>this._errors[r]}_queueSwap(e,r){let n=this._queue[e],s=this._queue[r];this._queue[e]=s,this._queue[r]=n,this._queueIndices[n]=r,this._queueIndices[s]=e;let i=this._errors[e];this._errors[e]=this._errors[r],this._errors[r]=i}_queueUp(e){let r=e;for(;;){let n=r-1>>1;if(n===r||!this._queueLess(r,n))break;this._queueSwap(n,r),r=n}}_queueDown(e,r){let n=e;for(;;){let s=2*n+1;if(s>=r||s<0)break;let i=s+1,o=s;if(i<r&&this._queueLess(i,s)&&(o=i),!this._queueLess(o,n))break;this._queueSwap(n,o),n=o}return n>e}};function ar(t,e,r,n,s,i){return(r-s)*(e-i)-(n-i)*(t-s)}function xC(t,e,r,n,s,i,o,a){let c=t-o,l=e-a,h=r-o,f=n-a,u=s-o,d=i-a,p=c*c+l*l,_=h*h+f*f,A=u*u+d*d;return c*(f*A-_*d)-l*(h*A-_*u)+p*(h*d-f*u)<0}function mg(t,e){let{meshMaxError:r,bounds:n,elevationDecoder:s}=e,{data:i,width:o,height:a}=t,c,l;switch(e.tesselator){case"martini":c=ki(i,o,a,s,e.tesselator),l=Ag(r,o,c);break;case"delatin":c=ki(i,o,a,s,e.tesselator),l=_g(r,o,a,c);break;default:o===a&&!(a&o-1)?(c=ki(i,o,a,s,"martini"),l=Ag(r,o,c)):(c=ki(i,o,a,s,"delatin"),l=_g(r,o,a,c));break}let{vertices:h}=l,{triangles:f}=l,u=SC(h,c,o,a,n),d=$e(u);if(e.skirtHeight){let{attributes:p,triangles:_}=zi(u,f,e.skirtHeight);u=p,f=_}return{loaderData:{header:{}},header:{vertexCount:f.length,boundingBox:d},mode:4,indices:{value:Uint32Array.from(f),size:1},attributes:u}}function Ag(t,e,r){let n=e+1,i=new Vn(n).createTile(r),{vertices:o,triangles:a}=i.getMesh(t);return{vertices:o,triangles:a}}function _g(t,e,r,n){let s=new Xn(n,e+1,r+1);s.run(t);let{coords:i,triangles:o}=s;return{vertices:i,triangles:o}}function ki(t,e,r,n,s){let{rScaler:i,bScaler:o,gScaler:a,offset:c}=n,l=new Float32Array((e+1)*(r+1));for(let h=0,f=0;f<r;f++)for(let u=0;u<e;u++,h++){let d=h*4,p=t[d+0],_=t[d+1],A=t[d+2];l[h+f]=p*i+_*a+A*o+c}if(s==="martini"){for(let h=(e+1)*e,f=0;f<e;f++,h++)l[h]=l[h-e-1];for(let h=r,f=0;f<r+1;f++,h+=r+1)l[h]=l[h-1]}return l}function SC(t,e,r,n,s){let i=r+1,o=t.length/2,a=new Float32Array(o*3),c=new Float32Array(o*2),[l,h,f,u]=s||[0,0,r,n],d=(f-l)/r,p=(u-h)/n;for(let _=0;_<o;_++){let A=t[_*2],T=t[_*2+1],x=T*i+A;a[3*_+0]=A*d+l,a[3*_+1]=-T*p+u,a[3*_+2]=e[x],c[2*_+0]=A/r,c[2*_+1]=T/n}return{POSITION:{value:a,size:3},TEXCOORD_0:{value:c,size:2}}}var Gi="4.1.0";var Ki={name:"Terrain",id:"terrain",module:"terrain",version:Gi,worker:!0,extensions:["png","pngraw","jpg","jpeg","gif","webp","bmp"],mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/bmp"],options:{terrain:{tesselator:"auto",bounds:void 0,meshMaxError:10,elevationDecoder:{rScaler:1,gScaler:0,bScaler:0,offset:0},skirtHeight:void 0}}};var Tg={name:"Quantized Mesh",id:"quantized-mesh",module:"terrain",version:Gi,worker:!0,extensions:["terrain"],mimeTypes:["application/vnd.quantized-mesh"],options:{"quantized-mesh":{bounds:[0,0,1,1],skirtHeight:null}}};var CC={...Ki,parse:BC};async function BC(t,e,r){let n={...e,mimeType:"application/x.image",image:{...e?.image,type:"data"}},s=await Ct(t,[],n,r),i={...CC.options.terrain,...e?.terrain};return mg(s,i)}var h4={...Tg,parseSync:(t,e)=>il(t,e?.["quantized-mesh"]),parse:async(t,e)=>il(t,e?.["quantized-mesh"])};var Eg=[1],MC={...te.defaultProps,elevationData:Ie,texture:{...Ie,optional:!0},meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0,loaders:[Ki]};function Rg(t){return Array.isArray(t)?t.join(";"):t||""}var Ji=class extends Yi.CompositeLayer{updateState({props:e,oldProps:r}){let n=e.elevationData!==r.elevationData;if(n){let{elevationData:i}=e,o=i&&(Array.isArray(i)||i.includes("{x}")&&i.includes("{y}"));this.setState({isTiled:o})}let s=n||e.meshMaxError!==r.meshMaxError||e.elevationDecoder!==r.elevationDecoder||e.bounds!==r.bounds;if(!this.state.isTiled&&s){let i=this.loadTerrain(e);this.setState({terrain:i})}e.workerUrl&&Yi.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:e,bounds:r,elevationDecoder:n,meshMaxError:s,signal:i}){if(!e)return null;let o=this.getLoadOptions();o={...o,terrain:{skirtHeight:this.state.isTiled?s*2:0,...o?.terrain,bounds:r,meshMaxError:s,elevationDecoder:n}};let{fetch:a}=this.props;return a(e,{propName:"elevationData",layer:this,loadOptions:o,signal:i})}getTiledTerrainData(e){let{elevationData:r,fetch:n,texture:s,elevationDecoder:i,meshMaxError:o}=this.props,{viewport:a}=this.context,c=$t(r,e),l=s&&$t(s,e),{signal:h}=e,f=[0,0],u=[0,0];if(a.isGeospatial){let A=e.bbox;f=a.projectFlat([A.west,A.south]),u=a.projectFlat([A.east,A.north])}else{let A=e.bbox;f=[A.left,A.bottom],u=[A.right,A.top]}let d=[f[0],f[1],u[0],u[1]],p=this.loadTerrain({elevationData:c,bounds:d,elevationDecoder:i,meshMaxError:o,signal:h}),_=l?n(l,{propName:"texture",layer:this,loaders:[],signal:h}).catch(A=>null):Promise.resolve(null);return Promise.all([p,_])}renderSubLayers(e){let r=this.getSubLayerClass("mesh",al.SimpleMeshLayer),{color:n,wireframe:s,material:i}=this.props,{data:o}=e;if(!o)return null;let[a,c]=o;return new r(e,{data:Eg,mesh:a,texture:c,_instanced:!1,coordinateSystem:xg.COORDINATE_SYSTEM.CARTESIAN,getPosition:l=>[0,0,0],getColor:n,wireframe:s,material:i})}onViewportLoad(e){if(!e)return;let{zRange:r}=this.state,n=e.map(o=>o.content).filter(Boolean).map(o=>o[0].header.boundingBox.map(c=>c[2]));if(n.length===0)return;let s=Math.min(...n.map(o=>o[0])),i=Math.max(...n.map(o=>o[1]));(!r||s<r[0]||i>r[1])&&this.setState({zRange:[s,i]})}renderLayers(){let{color:e,material:r,elevationData:n,texture:s,wireframe:i,meshMaxError:o,elevationDecoder:a,tileSize:c,maxZoom:l,minZoom:h,extent:f,maxRequests:u,onTileLoad:d,onTileUnload:p,onTileError:_,maxCacheSize:A,maxCacheByteSize:T,refinementStrategy:x}=this.props;if(this.state.isTiled)return new te(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:Rg(n),texture:Rg(s),meshMaxError:o,elevationDecoder:a}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:c,maxZoom:l,minZoom:h,extent:f,maxRequests:u,onTileLoad:d,onTileUnload:p,onTileError:_,maxCacheSize:A,maxCacheByteSize:T,refinementStrategy:x});if(!n)return null;let R=this.getSubLayerClass("mesh",al.SimpleMeshLayer);return new R(this.getSubLayerProps({id:"mesh"}),{data:Eg,mesh:this.state.terrain,texture:s,_instanced:!1,getPosition:S=>[0,0,0],getColor:e,material:r,wireframe:i})}},Wn=Ji;(()=>{Ji.defaultProps=MC})(),(()=>{Ji.layerName="TerrainLayer"})();var ao=v(Lt(),1),Bl=v(Ut(),1),r0=v(Cg(),1);var zn={x:0,y:1,z:2};function cr(t,e={}){let{start:r=0,end:n=t.length,plane:s="xy"}=e,i=e.size||2,o=0,a=zn[s[0]],c=zn[s[1]];for(let l=r,h=n-i;l<n;l+=i)o+=(t[l+a]-t[h+a])*(t[l+c]+t[h+c]),h=l;return o/2}function ll(t,e,r=2,n,s="xy"){let i=e&&e.length,o=i?e[0]*r:t.length,a=Mg(t,0,o,r,!0,n&&n[0],s),c=[];if(!a||a.next===a.prev)return c;let l,h,f,u,d,p,_;if(i&&(a=PC(t,e,a,r,n,s)),t.length>80*r){u=h=t[0],d=f=t[1];for(let A=r;A<o;A+=r)p=t[A],_=t[A+1],p<u&&(u=p),_<d&&(d=_),p>h&&(h=p),_>f&&(f=_);l=Math.max(h-u,f-d),l=l!==0?32767/l:0}return kn(a,c,r,u,d,l,0),c}function Mg(t,e,r,n,s,i,o){let a,c;i===void 0&&(i=cr(t,{start:e,end:r,size:n,plane:o}));let l=zn[o[0]],h=zn[o[1]];if(s===i<0)for(a=e;a<r;a+=n)c=Bg(a,t[a+l],t[a+h],c);else for(a=r-n;a>=e;a-=n)c=Bg(a,t[a+l],t[a+h],c);return c&&Zi(c,c.next)&&(Kn(c),c=c.next),c}function lr(t,e){if(!t)return t;e||(e=t);let r=t,n;do if(n=!1,!r.steiner&&(Zi(r,r.next)||rt(r.prev,r,r.next)===0)){if(Kn(r),r=e=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==e);return e}function kn(t,e,r,n,s,i,o){if(!t)return;!o&&i&&LC(t,n,s,i);let a=t,c,l;for(;t.prev!==t.next;){if(c=t.prev,l=t.next,i?NC(t,n,s,i):FC(t)){e.push(c.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),Kn(t),t=l.next,a=l.next;continue}if(t=l,t===a){o?o===1?(t=OC(lr(t),e,r),kn(t,e,r,n,s,i,2)):o===2&&bC(t,e,r,n,s,i):kn(lr(t),e,r,n,s,i,1);break}}}function FC(t){let e=t.prev,r=t,n=t.next;if(rt(e,r,n)>=0)return!1;let s=e.x,i=r.x,o=n.x,a=e.y,c=r.y,l=n.y,h=s<i?s<o?s:o:i<o?i:o,f=a<c?a<l?a:l:c<l?c:l,u=s>i?s>o?s:o:i>o?i:o,d=a>c?a>l?a:l:c>l?c:l,p=n.next;for(;p!==e;){if(p.x>=h&&p.x<=u&&p.y>=f&&p.y<=d&&kr(s,a,i,c,o,l,p.x,p.y)&&rt(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function NC(t,e,r,n){let s=t.prev,i=t,o=t.next;if(rt(s,i,o)>=0)return!1;let a=s.x,c=i.x,l=o.x,h=s.y,f=i.y,u=o.y,d=a<c?a<l?a:l:c<l?c:l,p=h<f?h<u?h:u:f<u?f:u,_=a>c?a>l?a:l:c>l?c:l,A=h>f?h>u?h:u:f>u?f:u,T=cl(d,p,e,r,n),x=cl(_,A,e,r,n),R=t.prevZ,S=t.nextZ;for(;R&&R.z>=T&&S&&S.z<=x;){if(R.x>=d&&R.x<=_&&R.y>=p&&R.y<=A&&R!==s&&R!==o&&kr(a,h,c,f,l,u,R.x,R.y)&&rt(R.prev,R,R.next)>=0||(R=R.prevZ,S.x>=d&&S.x<=_&&S.y>=p&&S.y<=A&&S!==s&&S!==o&&kr(a,h,c,f,l,u,S.x,S.y)&&rt(S.prev,S,S.next)>=0))return!1;S=S.nextZ}for(;R&&R.z>=T;){if(R.x>=d&&R.x<=_&&R.y>=p&&R.y<=A&&R!==s&&R!==o&&kr(a,h,c,f,l,u,R.x,R.y)&&rt(R.prev,R,R.next)>=0)return!1;R=R.prevZ}for(;S&&S.z<=x;){if(S.x>=d&&S.x<=_&&S.y>=p&&S.y<=A&&S!==s&&S!==o&&kr(a,h,c,f,l,u,S.x,S.y)&&rt(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function OC(t,e,r){let n=t;do{let s=n.prev,i=n.next.next;!Zi(s,i)&&yg(s,n,n.next,i)&&Gn(s,i)&&Gn(i,s)&&(e.push(s.i/r|0),e.push(n.i/r|0),e.push(i.i/r|0),Kn(n),Kn(n.next),n=t=i),n=n.next}while(n!==t);return lr(n)}function bC(t,e,r,n,s,i){let o=t;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&XC(o,a)){let c=Ig(o,a);o=lr(o,o.next),c=lr(c,c.next),kn(o,e,r,n,s,i,0),kn(c,e,r,n,s,i,0);return}a=a.next}o=o.next}while(o!==t)}function PC(t,e,r,n,s,i){let o=[],a,c,l,h,f;for(a=0,c=e.length;a<c;a++)l=e[a]*n,h=a<c-1?e[a+1]*n:t.length,f=Mg(t,l,h,n,!1,s&&s[a+1],i),f===f.next&&(f.steiner=!0),o.push(VC(f));for(o.sort(DC),a=0;a<o.length;a++)r=wC(o[a],r);return r}function DC(t,e){return t.x-e.x}function wC(t,e){let r=vC(t,e);if(!r)return e;let n=Ig(r,t);return lr(n,n.next),lr(r,r.next)}function vC(t,e){let r=e,n=t.x,s=t.y,i=-1/0,o;do{if(s<=r.y&&s>=r.next.y&&r.next.y!==r.y){let u=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(u<=n&&u>i&&(i=u,o=r.x<r.next.x?r:r.next,u===n))return o}r=r.next}while(r!==e);if(!o)return null;let a=o,c=o.x,l=o.y,h=1/0,f;r=o;do n>=r.x&&r.x>=c&&n!==r.x&&kr(s<l?n:i,s,c,l,s<l?i:n,s,r.x,r.y)&&(f=Math.abs(s-r.y)/(n-r.x),Gn(r,t)&&(f<h||f===h&&(r.x>o.x||r.x===o.x&&UC(o,r)))&&(o=r,h=f)),r=r.next;while(r!==a);return o}function UC(t,e){return rt(t.prev,t,e.prev)<0&&rt(e.next,t,t.next)<0}function LC(t,e,r,n){let s=t;do s.z===0&&(s.z=cl(s.x,s.y,e,r,n)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==t);s.prevZ.nextZ=null,s.prevZ=null,HC(s)}function HC(t){let e,r,n=1,s,i,o,a,c,l;do{for(i=t,t=null,l=null,s=0;i;){for(s++,a=i,o=0,r=0;r<n&&(o++,a=a.nextZ,!!a);r++);for(c=n;o>0||c>0&&a;)o!==0&&(c===0||!a||i.z<=a.z)?(e=i,i=i.nextZ,o--):(e=a,a=a.nextZ,c--),l?l.nextZ=e:t=e,e.prevZ=l,l=e;i=a}l.nextZ=null,n*=2}while(s>1);return t}function cl(t,e,r,n,s){return t=(t-r)*s|0,e=(e-n)*s|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function VC(t){let e=t,r=t;do(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;while(e!==t);return r}function kr(t,e,r,n,s,i,o,a){return(s-o)*(e-a)>=(t-o)*(i-a)&&(t-o)*(n-a)>=(r-o)*(e-a)&&(r-o)*(i-a)>=(s-o)*(n-a)}function XC(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!WC(t,e)&&(Gn(t,e)&&Gn(e,t)&&zC(t,e)&&(rt(t.prev,t,e.prev)||rt(t,e.prev,e))||Zi(t,e)&&rt(t.prev,t,t.next)>0&&rt(e.prev,e,e.next)>0)}function rt(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Zi(t,e){return t.x===e.x&&t.y===e.y}function yg(t,e,r,n){let s=ji(rt(t,e,r)),i=ji(rt(t,e,n)),o=ji(rt(r,n,t)),a=ji(rt(r,n,e));return!!(s!==i&&o!==a||s===0&&qi(t,r,e)||i===0&&qi(t,n,e)||o===0&&qi(r,t,n)||a===0&&qi(r,e,n))}function qi(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function ji(t){return t>0?1:t<0?-1:0}function WC(t,e){let r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&yg(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function Gn(t,e){return rt(t.prev,t,t.next)<0?rt(t,e,t.next)>=0&&rt(t,t.prev,e)>=0:rt(t,e,t.prev)<0||rt(t,t.next,e)<0}function zC(t,e){let r=t,n=!1,s=(t.x+e.x)/2,i=(t.y+e.y)/2;do r.y>i!=r.next.y>i&&r.next.y!==r.y&&s<(r.next.x-r.x)*(i-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function Ig(t,e){let r=new Jn(t.i,t.x,t.y),n=new Jn(e.i,e.x,e.y),s=t.next,i=e.prev;return t.next=e,e.prev=t,r.next=s,s.prev=r,n.next=r,r.prev=n,i.next=n,n.prev=i,n}function Bg(t,e,r,n){let s=new Jn(t,e,r);return n?(s.next=n.next,s.prev=n,n.next.prev=s,n.next=s):(s.prev=s,s.next=s),s}function Kn(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}var Jn=class{constructor(e,r,n){P(this,"i",void 0),P(this,"x",void 0),P(this,"y",void 0),P(this,"prev",null),P(this,"next",null),P(this,"z",0),P(this,"prevZ",null),P(this,"nextZ",null),P(this,"steiner",!1),this.i=e,this.x=r,this.y=n}};function ul(t,e,r){let n=YC(t),s=Object.keys(n).filter(i=>n[i]!==Array);return qC(t,{propArrayTypes:n,...e},{numericPropKeys:r&&r.numericPropKeys||s,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function YC(t){let e={};for(let r of t)if(r.properties)for(let n in r.properties){let s=r.properties[n];e[n]=eB(s,e[n])}return e}function qC(t,e,r){let{pointPositionsCount:n,pointFeaturesCount:s,linePositionsCount:i,linePathsCount:o,lineFeaturesCount:a,polygonPositionsCount:c,polygonObjectsCount:l,polygonRingsCount:h,polygonFeaturesCount:f,propArrayTypes:u,coordLength:d}=e,{numericPropKeys:p=[],PositionDataType:_=Float32Array,triangulate:A=!0}=r,T=t[0]&&"id"in t[0],x=t.length>65535?Uint32Array:Uint16Array,R={type:"Point",positions:new _(n*d),globalFeatureIds:new x(n),featureIds:s>65535?new Uint32Array(n):new Uint16Array(n),numericProps:{},properties:[],fields:[]},S={type:"LineString",pathIndices:i>65535?new Uint32Array(o+1):new Uint16Array(o+1),positions:new _(i*d),globalFeatureIds:new x(i),featureIds:a>65535?new Uint32Array(i):new Uint16Array(i),numericProps:{},properties:[],fields:[]},B={type:"Polygon",polygonIndices:c>65535?new Uint32Array(l+1):new Uint16Array(l+1),primitivePolygonIndices:c>65535?new Uint32Array(h+1):new Uint16Array(h+1),positions:new _(c*d),globalFeatureIds:new x(c),featureIds:f>65535?new Uint32Array(c):new Uint16Array(c),numericProps:{},properties:[],fields:[]};A&&(B.triangles=[]);for(let F of[R,S,B])for(let C of p){let E=u[C];F.numericProps[C]=new E(F.positions.length/d)}S.pathIndices[o]=i,B.polygonIndices[l]=c,B.primitivePolygonIndices[h]=c;let M={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let F of t){let C=F.geometry,E=F.properties||{};switch(C.type){case"Point":jC(C,R,M,d,E),R.properties.push(fl(E,p)),T&&R.fields.push({id:F.id}),M.pointFeature++;break;case"LineString":ZC(C,S,M,d,E),S.properties.push(fl(E,p)),T&&S.fields.push({id:F.id}),M.lineFeature++;break;case"Polygon":QC(C,B,M,d,E),B.properties.push(fl(E,p)),T&&B.fields.push({id:F.id}),M.polygonFeature++;break;default:throw new Error("Invalid geometry type")}M.feature++}return tB(R,S,B,d)}function jC(t,e,r,n,s){e.positions.set(t.data,r.pointPosition*n);let i=t.data.length/n;dl(e,s,r.pointPosition,i),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+i),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+i),r.pointPosition+=i}function ZC(t,e,r,n,s){e.positions.set(t.data,r.linePosition*n);let i=t.data.length/n;dl(e,s,r.linePosition,i),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+i),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+i);for(let o=0,a=t.indices.length;o<a;++o){let c=t.indices[o],l=o===a-1?t.data.length:t.indices[o+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(l-c)/n}}function QC(t,e,r,n,s){e.positions.set(t.data,r.polygonPosition*n);let i=t.data.length/n;dl(e,s,r.polygonPosition,i),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+i),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+i);for(let o=0,a=t.indices.length;o<a;++o){let c=r.polygonPosition;e.polygonIndices[r.polygonObject++]=c;let l=t.areas[o],h=t.indices[o],f=t.indices[o+1];for(let d=0,p=h.length;d<p;++d){let _=h[d],A=d===p-1?f===void 0?t.data.length:f[0]:h[d+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(A-_)/n}let u=r.polygonPosition;$C(e,l,h,{startPosition:c,endPosition:u,coordLength:n})}}function $C(t,e,r,n){let{startPosition:s,endPosition:i,coordLength:o}=n;if(!t.triangles)return;let a=s*o,c=i*o,l=t.positions.subarray(a,c),h=r[0],f=r.slice(1).map(d=>(d-h)/o),u=ll(l,f,o,e);for(let d=0,p=u.length;d<p;++d)t.triangles.push(s+u[d])}function hl(t,e){let r={};for(let n in t)r[n]={value:t[n],size:e};return r}function tB(t,e,r,n){let s={shape:"binary-feature-collection",points:{...t,positions:{value:t.positions,size:n},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:hl(t.numericProps,1)},lines:{...e,positions:{value:e.positions,size:n},pathIndices:{value:e.pathIndices,size:1},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:hl(e.numericProps,1)},polygons:{...r,positions:{value:r.positions,size:n},polygonIndices:{value:r.polygonIndices,size:1},primitivePolygonIndices:{value:r.primitivePolygonIndices,size:1},globalFeatureIds:{value:r.globalFeatureIds,size:1},featureIds:{value:r.featureIds,size:1},numericProps:hl(r.numericProps,1)}};return s.polygons&&r.triangles&&(s.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),s}function dl(t,e,r,n){for(let s in t.numericProps)if(s in e){let i=e[s];t.numericProps[s].fill(i,r,r+n)}}function fl(t,e){let r={};for(let n in t)e.includes(n)||(r[n]=t[n]);return r}function eB(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function to(t,e){let r=e?.globalFeatureId;return r!==void 0?rB(t,r):nB(t,e?.type)}function rB(t,e){let r=bg(t);for(let n of r){let s=0,i=n.featureIds.value[0];for(let o=0;o<n.featureIds.value.length;o++){let a=n.featureIds.value[o];if(a!==i){if(e===n.globalFeatureIds.value[s])return Qi(n,s,o);s=o,i=a}}if(e===n.globalFeatureIds.value[s])return Qi(n,s,n.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function nB(t,e){let r=bg(t,e);return sB(r)}function Og(t,e,r){switch(t.type){case"Point":return cB(t,e,r);case"LineString":return aB(t,e,r);case"Polygon":return Pg(t,e,r);default:let n=t;throw new Error(`Unsupported geometry type: ${n?.type}`)}}function bg(t,e){let r=[];return t.points&&(t.points.type="Point",r.push(t.points)),t.lines&&(t.lines.type="LineString",r.push(t.lines)),t.polygons&&(t.polygons.type="Polygon",r.push(t.polygons)),r}function sB(t){let e=[];for(let r of t){if(r.featureIds.value.length===0)continue;let n=0,s=r.featureIds.value[0];for(let i=0;i<r.featureIds.value.length;i++){let o=r.featureIds.value[i];o!==s&&(e.push(Qi(r,n,i)),n=i,s=o)}e.push(Qi(r,n,r.featureIds.value.length))}return e}function Qi(t,e,r){let n=Og(t,e,r),s=oB(t,e,r),i=iB(t,e,r);return{type:"Feature",geometry:n,properties:s,...i}}function iB(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2?arguments[2]:void 0;return t.fields&&t.fields[t.featureIds.value[e]]}function oB(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2?arguments[2]:void 0,n=Object.assign({},t.properties[t.featureIds.value[e]]);for(let s in t.numericProps)n[s]=t.numericProps[s].value[e];return n}function Pg(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1/0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1/0,{positions:n}=t,s=t.polygonIndices.value.filter(c=>c>=e&&c<=r),i=t.primitivePolygonIndices.value.filter(c=>c>=e&&c<=r);if(!(s.length>2)){let c=[];for(let l=0;l<i.length-1;l++){let h=i[l],f=i[l+1],u=$i(n,h,f);c.push(u)}return{type:"Polygon",coordinates:c}}let a=[];for(let c=0;c<s.length-1;c++){let l=s[c],h=s[c+1],f=Pg(t,l,h).coordinates;a.push(f)}return{type:"MultiPolygon",coordinates:a}}function aB(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1/0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1/0,{positions:n}=t,s=t.pathIndices.value.filter(a=>a>=e&&a<=r);if(!(s.length>2))return{type:"LineString",coordinates:$i(n,s[0],s[1])};let o=[];for(let a=0;a<s.length-1;a++){let c=$i(n,s[a],s[a+1]);o.push(c)}return{type:"MultiLineString",coordinates:o}}function cB(t,e,r){let{positions:n}=t,s=$i(n,e,r);return s.length>1?{type:"MultiPoint",coordinates:s}:{type:"Point",coordinates:s[0]}}function $i(t,e,r){e=e||0,r=r||t.value.length/t.size;let n=[];for(let s=e;s<r;s++){let i=Array();for(let o=s*t.size;o<(s+1)*t.size;o++)i.push(Number(t.value[o]));n.push(i)}return n}var El=v(Vg(),1);function Xg(t){let e=t.length;if(e<=1)return[t];let r=[],n,s;for(let i=0;i<e;i++){let o=MB(t[i]);o!==0&&(s===void 0&&(s=o<0),s===o<0?(n&&r.push(n),n=[t[i]]):n&&n.push(t[i]))}return n&&r.push(n),r}function MB(t){let e=0;for(let r=0,n=t.length-1,s,i;r<t.length;n=r++)s=t[r],i=t[n],e+=(i[0]-s[0])*(s[1]+i[1]);return e}function Wg(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?yB(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function yB(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],s=e._values[t.readVarint()];e.properties[n]=s}}var hr=class{static get types(){return["Unknown","Point","LineString","Polygon"]}constructor(e,r,n,s,i){this.properties=void 0,this.extent=void 0,this.type=void 0,this.id=void 0,this._pbf=void 0,this._geometry=void 0,this._keys=void 0,this._values=void 0,this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=s,this._values=i,e.readFields(Wg,this,r)}loadGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,s=0,i=0,o=0,a=[],c;for(;e.pos<r;){if(s<=0){let l=e.readVarint();n=l&7,s=l>>3}if(s--,n===1||n===2)i+=e.readSVarint(),o+=e.readSVarint(),n===1&&(c&&a.push(c),c=[]),c&&c.push([i,o]);else if(n===7)c&&c.push(c[0].slice());else throw new Error(`unknown command ${n}`)}return c&&a.push(c),a}bbox(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,s=0,i=0,o=0,a=1/0,c=-1/0,l=1/0,h=-1/0;for(;e.pos<r;){if(s<=0){let f=e.readVarint();n=f&7,s=f>>3}if(s--,n===1||n===2)i+=e.readSVarint(),o+=e.readSVarint(),i<a&&(a=i),i>c&&(c=i),o<l&&(l=o),o>h&&(h=o);else if(n!==7)throw new Error(`unknown command ${n}`)}return[a,l,c,h]}_toGeoJSON(e){let r=this.loadGeometry(),n=hr.types[this.type],s,i;switch(this.type){case 1:let a=[];for(s=0;s<r.length;s++)a[s]=r[s][0];r=a,e(r,this);break;case 2:for(s=0;s<r.length;s++)e(r[s],this);break;case 3:for(r=Xg(r),s=0;s<r.length;s++)for(i=0;i<r[s].length;i++)e(r[s][i],this);break}r.length===1?r=r[0]:n=`Multi${n}`;let o={type:"Feature",geometry:{type:n,coordinates:r},properties:this.properties};return this.id!==null&&(o.id=this.id),o}toGeoJSON(e){if(typeof e=="function")return this._toGeoJSON(e);let{x:r,y:n,z:s}=e,i=this.extent*Math.pow(2,s),o=this.extent*r,a=this.extent*n;function c(l){for(let h=0;h<l.length;h++){let f=l[h];f[0]=(f[0]+o)*360/i-180;let u=180-(f[1]+a)*360/i;f[1]=360/Math.PI*Math.atan(Math.exp(u*Math.PI/180))-90}}return this._toGeoJSON(c)}};var Yn=class{constructor(e,r){this.version=void 0,this.name=void 0,this.extent=void 0,this.length=void 0,this._pbf=void 0,this._keys=void 0,this._values=void 0,this._features=void 0,this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(IB,this,r),this.length=this._features.length}feature(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let r=this._pbf.readVarint()+this._pbf.pos;return new hr(this._pbf,r,this.extent,this._keys,this._values)}};function IB(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(FB(r)))}function FB(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var qn=class{constructor(e,r){this.layers=void 0,this.layers=e.readFields(NB,{},r)}};function NB(t,e,r){if(t===3&&r){let n=new Yn(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function zg(t){let e=t.indices.length,r="Polygon";if(e<=1)return{type:r,data:t.data,areas:[[cr(t.data)]],indices:[t.indices]};let n=[],s=[],i=[],o=[],a,c=0;for(let l,h=0,f;h<e;h++){f=t.indices[h]-c,l=t.indices[h+1]-c||t.data.length;let u=t.data.slice(f,l),d=cr(u);if(d===0){let p=t.data.slice(0,f),_=t.data.slice(l);t.data=p.concat(_),c+=l-f;continue}a===void 0&&(a=d<0),a===d<0?(o.length&&(n.push(i),s.push(o)),o=[f],i=[d]):(i.push(d),o.push(f))}return i&&n.push(i),o.length&&s.push(o),{type:r,areas:n,indices:s,data:t.data}}function kg(t,e,r,n){for(let s=0,i=t.length;s<i;s+=2){t[s]=(t[s]+e)*360/n-180;let o=180-(t[s+1]+r)*360/n;t[s+1]=360/Math.PI*Math.atan(Math.exp(o*Math.PI/180))-90}}function Gg(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?OB(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function OB(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],s=e._values[t.readVarint()];e.properties[n]=s}}var Kg,fr,Al,no,_l,ml,jn;var Zn=class{constructor(e,r,n,s,i,o){this.properties=void 0,this.extent=void 0,this.type=void 0,this.id=void 0,this._pbf=void 0,this._geometry=void 0,this._keys=void 0,this._values=void 0,this._geometryInfo=void 0,this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=s,this._values=i,this._geometryInfo=o,e.readFields(Gg,this,r)}loadGeometry(){let e=this._pbf;e.pos=this._geometry,Kg=e.readVarint()+e.pos,fr=1,no=0,_l=0,ml=0,jn=0;let r=[],n=[];for(;e.pos<Kg;)if(no<=0&&(Al=e.readVarint(),fr=Al&7,no=Al>>3),no--,fr===1||fr===2)_l+=e.readSVarint(),ml+=e.readSVarint(),fr===1&&r.push(jn),n.push(_l,ml),jn+=2;else if(fr===7){if(jn>0){let s=r[r.length-1];n.push(n[s],n[s+1]),jn+=2}}else throw new Error(`unknown command ${fr}`);return{data:n,indices:r}}_toBinaryCoordinates(e){let r=this.loadGeometry(),n;e(r.data,this);let s=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=r.indices.length,n={type:"Point",...r};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=r.indices.length,this._geometryInfo.linePositionsCount+=r.data.length/s,n={type:"LineString",...r};break;case 3:n=zg(r),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=n.indices.length;for(let o of n.indices)this._geometryInfo.polygonRingsCount+=o.length;this._geometryInfo.polygonPositionsCount+=n.data.length/s;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let i={type:"Feature",geometry:n,properties:this.properties};return this.id!==null&&(i.id=this.id),i}toBinaryCoordinates(e){if(typeof e=="function")return this._toBinaryCoordinates(e);let{x:r,y:n,z:s}=e,i=this.extent*Math.pow(2,s),o=this.extent*r,a=this.extent*n;return this._toBinaryCoordinates(c=>kg(c,o,a,i))}};var Qn=class{constructor(e,r){this.version=void 0,this.name=void 0,this.extent=void 0,this.length=void 0,this._pbf=void 0,this._keys=void 0,this._values=void 0,this._features=void 0,this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(bB,this,r),this.length=this._features.length}feature(e,r){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let n=this._pbf.readVarint()+this._pbf.pos;return new Zn(this._pbf,n,this.extent,this._keys,this._values,r)}};function bB(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(PB(r)))}function PB(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var $n=class{constructor(e,r){this.layers=void 0,this.layers=e.readFields(DB,{},r)}};function DB(t,e,r){if(t===3&&r){let n=new Qn(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function so(t,e){var r,n;let s=vB(e),i=(e==null||(r=e.gis)===null||r===void 0?void 0:r.format)||(e==null||(n=e.mvt)===null||n===void 0?void 0:n.shape)||e?.shape;switch(i){case"columnar-table":return{shape:"columnar-table",data:Tl(t,s)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:Jg(t,s)};case"geojson":return Jg(t,s);case"binary-geometry":return Tl(t,s);case"binary":return Tl(t,s);default:throw new Error(i||"undefined shape")}}function Tl(t,e){let[r,n]=wB(t,e),s=ul(r,n);return s.byteLength=t.byteLength,s}function wB(t,e){let r=[],n={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(t.byteLength<=0)return[r,n];let s=new $n(new El.default(t));return(e&&Array.isArray(e.layers)?e.layers:Object.keys(s.layers)).forEach(o=>{let a=s.layers[o];if(a)for(let c=0;c<a.length;c++){let l=a.feature(c,n),h=LB(l,e,o);r.push(h)}}),[r,n]}function Jg(t,e){if(t.byteLength<=0)return[];let r=[],n=new qn(new El.default(t));return(Array.isArray(e.layers)?e.layers:Object.keys(n.layers)).forEach(i=>{let o=n.layers[i];if(o)for(let a=0;a<o.length;a++){let c=o.feature(a),l=UB(c,e,i);r.push(l)}}),r}function vB(t){var e;if(!(t!=null&&t.mvt))throw new Error("mvt options required");let r=((e=t.mvt)===null||e===void 0?void 0:e.coordinates)==="wgs84",{tileIndex:n}=t.mvt,s=n&&Number.isFinite(n.x)&&Number.isFinite(n.y)&&Number.isFinite(n.z);if(r&&!s)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return t.mvt}function UB(t,e,r){let n=t.toGeoJSON(e.coordinates==="wgs84"?e.tileIndex:HB);return e.layerProperty&&(n.properties[e.layerProperty]=r),n}function LB(t,e,r){let n=t.toBinaryCoordinates(e.coordinates==="wgs84"?e.tileIndex:VB);return e.layerProperty&&n.properties&&(n.properties[e.layerProperty]=r),n}function HB(t,e){let{extent:r}=e;for(let n=0;n<t.length;n++){let s=t[n];s[0]/=r,s[1]/=r}}function VB(t,e){let{extent:r}=e;for(let n=0,s=t.length;n<s;++n)t[n]/=r}var XB="4.1.0",io={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",version:XB,extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],worker:!0,category:"geometry",options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:null}}},WB={...io,parse:async(t,e)=>so(t,e),parseSync:so,binary:!0};var zB={Point:Yg,MultiPoint:kB,LineString:qg,MultiLineString:GB,Polygon:jg,MultiPolygon:KB};function Yg([t,e],[r,n],s){let i=Re(r[0],n[0],t),o=Re(r[1],n[1],e);return s.unprojectFlat([i,o])}function Rl(t,e,r){return t.map(n=>Yg(n,e,r))}function kB(t,e,r){return Rl(t,e,r)}function qg(t,e,r){return Rl(t,e,r)}function GB(t,e,r){return t.map(n=>qg(n,e,r))}function jg(t,e,r){return t.map(n=>Rl(n,e,r))}function KB(t,e,r){return t.map(n=>jg(n,e,r))}function Zg(t,e,r){let n=r.projectFlat([e.west,e.north]),s=r.projectFlat([e.east,e.south]),i=[n,s];return{...t,coordinates:zB[t.type](t.coordinates,i,r)}}var JB=["points","lines","polygons"];function xl(t,e,r,n){for(let s of JB){let i=t[s]&&YB(t[s],e,r,n);if(i>=0)return i}return-1}function YB(t,e,r,n){let s=t.featureIds.value;if(!s.length)return-1;let i=0,o=s[s.length-1]+1;if(n){let c=qB(t,n);if(c)i=c[0],o=c[1]+1;else return-1}let a=-1;if(e in t.numericProps){let c=t.numericProps[e].value.findIndex((l,h)=>l===r&&s[h]>=i&&s[h]<o);return c>=0?t.globalFeatureIds.value[c]:-1}else e?a=Qg(t.properties,c=>c[e]===r,i,o):t.fields&&(a=Qg(t.fields,c=>c.id===r,i,o));return a>=0?jB(t,a):-1}function qB(t,e){if(!t.__layers){let r={},{properties:n}=t;for(let s=0;s<n.length;s++){let{layerName:i}=n[s];i&&(r[i]?r[i][1]=s:r[i]=[s,s])}t.__layers=r}return t.__layers[e]}function jB(t,e){if(!t.__ids){let r=[],n=t.featureIds.value,s=t.globalFeatureIds.value;for(let i=0;i<n.length;i++)r[n[i]]=s[i];t.__ids=r}return t.__ids[e]}function Qg(t,e,r,n){for(let s=r;s<n;s++)if(e(t[s],s))return s;return-1}var Sl=512,ZB={...Bl.GeoJsonLayer.defaultProps,data:Ie,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[io],binary:!0},oo=class extends te{initializeState(){super.initializeState();let e=this.context.viewport.resolution!==void 0?!1:this.props.binary;this.setState({binary:e,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return Boolean(this.state?.data&&super.isLoaded)}updateState({props:e,oldProps:r,context:n,changeFlags:s}){s.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:e,oldProps:r,context:n,changeFlags:s}),this._setWGS84PropertyForTiles());let{highlightColor:i}=e;i!==r.highlightColor&&Array.isArray(i)&&this.setState({highlightColor:i})}async _updateTileData(){let e=this.props.data,r=null;if(typeof e=="string"&&!Na(e)){let{onDataLoad:n,fetch:s}=this.props;this.setState({data:null,tileJSON:null});try{r=await s(e,{propName:"data",layer:this,loaders:[]})}catch(i){this.raiseError(i,"loading TileJSON"),e=null}n&&n(r,{propName:"data",layer:this})}else e&&typeof e=="object"&&"tilejson"in e&&(r=e);r&&(e=r.tiles),this.setState({data:e,tileJSON:r})}_getTilesetOptions(){let e=super._getTilesetOptions(),r=this.state.tileJSON,{minZoom:n,maxZoom:s}=this.props;return r&&(Number.isFinite(r.minzoom)&&r.minzoom>n&&(e.minZoom=r.minzoom),Number.isFinite(r.maxzoom)&&(!Number.isFinite(s)||r.maxzoom<s)&&(e.maxZoom=r.maxzoom)),e}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(e){let{data:r,binary:n}=this.state,{index:s,signal:i}=e,o=$t(r,e);if(!o)return Promise.reject("Invalid URL");let a=this.getLoadOptions(),{fetch:c}=this.props;return a={...a,mimeType:"application/x-protobuf",mvt:{...a?.mvt,coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:s},gis:n?{format:"binary"}:{}},c(o,{propName:"data",layer:this,loadOptions:a,signal:i})}renderSubLayers(e){let{x:r,y:n,z:s}=e.tile.index,i=Math.pow(2,s),o=Sl/i,a=-o,c=Sl*r/i,l=Sl*(1-n/i),h=new D().scale([o,a,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=h,e.coordinateOrigin=[c,l,0],e.coordinateSystem=ao.COORDINATE_SYSTEM.CARTESIAN,e.extensions=[...e.extensions||[],new r0.ClipExtension]);let f=super.renderSubLayers(e);return this.state.binary&&!(f instanceof Bl.GeoJsonLayer)&&ao.log.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),f}_updateAutoHighlight(e){let{uniqueIdProperty:r}=this.props,{hoveredFeatureId:n,hoveredFeatureLayerName:s}=this.state,i=e.object,o=null,a=null;i&&(o=Cl(i,r),a=$g(i));let{highlightColor:c}=this.props;typeof c=="function"&&(c=c(e)),(n!==o||s!==a)&&this.setState({highlightColor:c,hoveredFeatureId:o,hoveredFeatureLayerName:a})}getPickingInfo(e){let r=super.getPickingInfo(e),n=Boolean(this.context.viewport.resolution);if(this.state.binary&&r.index!==-1){let{data:s}=e.sourceLayer.props;r.object=to(s,{globalFeatureId:r.index})}return r.object&&!n&&(r.object=e0(r.object,r.tile.bbox,this.context.viewport)),r}getSubLayerPropsByTile(e){return{highlightedObjectIndex:this.getHighlightedObjectIndex(e),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(e){let{hoveredFeatureId:r,hoveredFeatureLayerName:n,binary:s}=this.state,{uniqueIdProperty:i,highlightedFeatureId:o}=this.props,a=e.content,c=t0(o);if(!(t0(r)||c))return-1;let h=c?o:r;return Array.isArray(a)?a.findIndex(f=>{let u=Cl(f,i)===h,d=c||$g(f)===n;return u&&d}):a&&s?xl(a,i,h,c?"":n):-1}_pickObjects(e){let{deck:r,viewport:n}=this.context,s=n.width,i=n.height,o=n.x,a=n.y,c=[this.id];return r.pickObjects({x:o,y:a,width:s,height:i,layerIds:c,maxObjects:e})}getRenderedFeatures(e=null){let r=this._pickObjects(e),n=new Set,s=[];for(let i of r){let o=Cl(i.object,this.props.uniqueIdProperty);o===void 0?s.push(i.object):n.has(o)||(n.add(o),s.push(i.object))}return s}_setWGS84PropertyForTiles(){let e="dataInWGS84";this.state.tileset.selectedTiles.forEach(n=>{n.hasOwnProperty(e)||Object.defineProperty(n,e,{get:()=>{if(!n.content)return null;if(this.state.binary&&Array.isArray(n.content)&&!n.content.length)return[];let{bbox:s}=n;if(n._contentWGS84===void 0&&Oa(s)){let i=this.state.binary?to(n.content):n.content;n._contentWGS84=i.map(o=>e0(o,s,this.context.viewport))}return n._contentWGS84}})})}},ts=oo;(()=>{oo.layerName="MVTLayer"})(),(()=>{oo.defaultProps=ZB})();function Cl(t,e){if(t.properties&&e)return t.properties[e];if("id"in t)return t.id}function $g(t){return t.properties?.layerName||null}function t0(t){return t!=null&&t!==""}function e0(t,e,r){let n={...t,geometry:{type:t.geometry.type}};return Object.defineProperty(n.geometry,"coordinates",{get:()=>Zg(t.geometry,e,r).coordinates}),n}var n0="0123456789bcdefghjkmnpqrstuvwxyz",s0={};for(let t=0;t<n0.length;t++)s0[n0.charAt(t)]=t;var QB=-90,$B=90,tM=-180,eM=180;function rM(t){let e=!0,r=$B,n=QB,s=eM,i=tM,o,a=0;for(let c=0,l=t.length;c<l;c++){let h=t[c].toLowerCase();a=s0[h];for(let f=4;f>=0;f--){let u=a>>f&1;e?(o=(s+i)/2,u===1?i=o:s=o):(o=(r+n)/2,u===1?n=o:r=o),e=!e}}return[n,i,r,s]}function i0(t){let[e,r,n,s]=rM(t);return[s,n,s,e,r,e,r,n,s,n]}var nM={getGeohash:{type:"accessor",value:t=>t.geohash}},co=class extends It{indexToBounds(){let{data:e,getGeohash:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,s)=>i0(r(n,s))}}},es=co;(()=>{co.layerName="GeohashLayer"})(),(()=>{co.defaultProps=nM})();return d0(rs);})();
|
|
637
|
+
`;function lE(t){let e=t.positions||t.POSITION,r=e.value.length/e.size;t.COLOR_0||t.colors||(t.colors={size:4,value:new Uint8Array(r*4).fill(255),normalized:!0})}var hE={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}},ei=class extends Zu.SimpleMeshLayer{getShaders(){let e=super.getShaders();return e.modules.push(Ka),{...e,vs:Yu,fs:qu}}initializeState(){let{featureIds:e}=this.props;super.initializeState();let r=this.getAttributeManager();e&&r.add({featureIdsPickingColors:{type:ti.UNSIGNED_BYTE,size:3,noAlloc:!0,update:this.calculateFeatureIdsPickingColors}})}updateState(e){super.updateState(e);let{props:r,oldProps:n}=e;r.pbrMaterial!==n.pbrMaterial&&this.updatePbrMaterialUniforms(r.pbrMaterial)}draw(e){let{featureIds:r}=this.props;this.state.model&&(this.state.model.setUniforms({u_Camera:this.state.model.uniforms.project_uCameraPosition,pickFeatureIds:Boolean(r)}),super.draw(e))}getModel(e){let{id:r,pbrMaterial:n}=this.props,s=this.parseMaterial(n,e);this.setState({parsedPBRMaterial:s});let i=this.getShaders();return lE(e.attributes),new ju.Model(this.context.device,{...this.getShaders(),id:r,geometry:e,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:{...i.defines,...s?.defines,HAS_UV_REGIONS:e.attributes.uvRegions?1:0},parameters:s?.parameters,isInstanced:!0})}updatePbrMaterialUniforms(e){let{model:r}=this.state;if(r){let{mesh:n}=this.props,s=this.parseMaterial(e,n);this.setState({parsedPBRMaterial:s}),r.setBindings(s.bindings),r.setUniforms(s.uniforms)}}parseMaterial(e,r){let n=Boolean(e.pbrMetallicRoughness&&e.pbrMetallicRoughness.baseColorTexture);return wa(this.context.device,{unlit:n,...e},{NORMAL:r.attributes.normals,TEXCOORD_0:r.attributes.texCoords},{pbrDebug:!1,lights:!0,useTangents:!1})}calculateFeatureIdsPickingColors(e){let r=this.props.featureIds,n=new Uint8ClampedArray(r.length*e.size),s=[];for(let i=0;i<r.length;i++)this.encodePickingColor(r[i],s),n[i*3]=s[0],n[i*3+1]=s[1],n[i*3+2]=s[2];e.value=n}finalizeState(e){super.finalizeState(e),this.state.parsedPBRMaterial?.generatedTextures.forEach(r=>r.destroy()),this.setState({parsedPBRMaterial:null})}},Cn=ei;(()=>{ei.layerName="MeshLayer"})(),(()=>{ei.defaultProps=hE})();var gg=v(Cr(),1);var he=6356752314245179e-9,fE={radii:[6378137,6378137,he],radiiSquared:[6378137*6378137,6378137*6378137,he*he],oneOverRadii:[1/6378137,1/6378137,1/he],oneOverRadiiSquared:[1/(6378137*6378137),1/(6378137*6378137),1/(he*he)],maximumRadius:Math.max(6378137,6378137,he),centerToleranceSquared:.1};function ri(t){return t}var $b=new m;function uE(t,e=[],r=ri){return"longitude"in t?(e[0]=r(t.longitude),e[1]=r(t.latitude),e[2]=t.height):"x"in t?(e[0]=r(t.x),e[1]=r(t.y),e[2]=t.z):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function $u(t,e=[]){return uE(t,e,j._cartographicRadians?ri:Vo)}function dE(t,e,r=ri){return"longitude"in e?(e.longitude=r(t[0]),e.latitude=r(t[1]),e.height=t[2]):"x"in e?(e.x=r(t[0]),e.y=r(t[1]),e.z=t[2]):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function td(t,e){return dE(t,e,j._cartographicRadians?ri:Xo)}var ed=1e-14,pE=new m,rd={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"}},Ja={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},Bn={east:new m,north:new m,up:new m,west:new m,south:new m,down:new m},gE=new m,AE=new m,_E=new m;function Ya(t,e,r,n,s,i){let o=rd[e]&&rd[e][r];ct(o&&(!n||n===o));let a,c,l,h=pE.copy(s);if(At(h.x,0,ed)&&At(h.y,0,ed)){let u=Math.sign(h.z);a=gE.fromArray(Ja[e]),e!=="east"&&e!=="west"&&a.scale(u),c=AE.fromArray(Ja[r]),r!=="east"&&r!=="west"&&c.scale(u),l=_E.fromArray(Ja[n]),n!=="east"&&n!=="west"&&l.scale(u)}else{let{up:u,east:d,north:p}=Bn;d.set(-h.y,h.x,0).normalize(),t.geodeticSurfaceNormal(h,u),p.copy(u).cross(d);let{down:_,west:A,south:T}=Bn;_.copy(u).scale(-1),A.copy(d).scale(-1),T.copy(p).scale(-1),a=Bn[e],c=Bn[r],l=Bn[n]}return i[0]=a.x,i[1]=a.y,i[2]=a.z,i[3]=0,i[4]=c.x,i[5]=c.y,i[6]=c.z,i[7]=0,i[8]=l.x,i[9]=l.y,i[10]=l.z,i[11]=0,i[12]=h.x,i[13]=h.y,i[14]=h.z,i[15]=1,i}var Br=new m,mE=new m,TE=new m;function nd(t,e,r=[]){let{oneOverRadii:n,oneOverRadiiSquared:s,centerToleranceSquared:i}=e;Br.from(t);let o=Br.x,a=Br.y,c=Br.z,l=n.x,h=n.y,f=n.z,u=o*o*l*l,d=a*a*h*h,p=c*c*f*f,_=u+d+p,A=Math.sqrt(1/_);if(!Number.isFinite(A))return;let T=mE;if(T.copy(t).scale(A),_<i)return T.to(r);let x=s.x,R=s.y,S=s.z,B=TE;B.set(T.x*x*2,T.y*R*2,T.z*S*2);let M=(1-A)*Br.len()/(.5*B.len()),F=0,C,E,g,y;do{M-=F,C=1/(1+M*x),E=1/(1+M*R),g=1/(1+M*S);let O=C*C,b=E*E,N=g*g,U=O*C,Y=b*E,W=N*g;y=u*O+d*b+p*N-1;let J=-2*(u*U*x+d*Y*R+p*W*S);F=y/J}while(Math.abs(y)>Ht.EPSILON12);return Br.scale([C,E,g]).to(r)}var ni=new m,sd=new m,xE=new m,zt=new m,SE=new m,si=new m,L=class{constructor(e=0,r=0,n=0){P(this,"radii",void 0),P(this,"radiiSquared",void 0),P(this,"radiiToTheFourth",void 0),P(this,"oneOverRadii",void 0),P(this,"oneOverRadiiSquared",void 0),P(this,"minimumRadius",void 0),P(this,"maximumRadius",void 0),P(this,"centerToleranceSquared",Ht.EPSILON1),P(this,"squaredXOverSquaredZ",void 0),ct(e>=0),ct(r>=0),ct(n>=0),this.radii=new m(e,r,n),this.radiiSquared=new m(e*e,r*r,n*n),this.radiiToTheFourth=new m(e*e*e*e,r*r*r*r,n*n*n*n),this.oneOverRadii=new m(e===0?0:1/e,r===0?0:1/r,n===0?0:1/n),this.oneOverRadiiSquared=new m(e===0?0:1/(e*e),r===0?0:1/(r*r),n===0?0:1/(n*n)),this.minimumRadius=Math.min(e,r,n),this.maximumRadius=Math.max(e,r,n),this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}equals(e){return this===e||Boolean(e&&this.radii.equals(e.radii))}toString(){return this.radii.toString()}cartographicToCartesian(e,r=[0,0,0]){let n=sd,s=xE,[,,i]=e;this.geodeticSurfaceNormalCartographic(e,n),s.copy(this.radiiSquared).scale(n);let o=Math.sqrt(n.dot(s));return s.scale(1/o),n.scale(i),s.add(n),s.to(r)}cartesianToCartographic(e,r=[0,0,0]){si.from(e);let n=this.scaleToGeodeticSurface(si,zt);if(!n)return;let s=this.geodeticSurfaceNormal(n,sd),i=SE;i.copy(si).subtract(n);let o=Math.atan2(s.y,s.x),a=Math.asin(s.z),c=Math.sign(_r.dot(i,si))*_r.length(i);return td([o,a,c],r)}eastNorthUpToFixedFrame(e,r=new D){return Ya(this,"east","north","up",e,r)}localFrameToFixedFrame(e,r,n,s,i=new D){return Ya(this,e,r,n,s,i)}geocentricSurfaceNormal(e,r=[0,0,0]){return ni.from(e).normalize().to(r)}geodeticSurfaceNormalCartographic(e,r=[0,0,0]){let n=$u(e),s=n[0],i=n[1],o=Math.cos(i);return ni.set(o*Math.cos(s),o*Math.sin(s),Math.sin(i)).normalize(),ni.to(r)}geodeticSurfaceNormal(e,r=[0,0,0]){return ni.from(e).scale(this.oneOverRadiiSquared).normalize().to(r)}scaleToGeodeticSurface(e,r){return nd(e,this,r)}scaleToGeocentricSurface(e,r=[0,0,0]){zt.from(e);let n=zt.x,s=zt.y,i=zt.z,o=this.oneOverRadiiSquared,a=1/Math.sqrt(n*n*o.x+s*s*o.y+i*i*o.z);return zt.multiplyScalar(a).to(r)}transformPositionToScaledSpace(e,r=[0,0,0]){return zt.from(e).scale(this.oneOverRadii).to(r)}transformPositionFromScaledSpace(e,r=[0,0,0]){return zt.from(e).scale(this.radii).to(r)}getSurfaceNormalIntersectionWithZAxis(e,r=0,n=[0,0,0]){ct(At(this.radii.x,this.radii.y,Ht.EPSILON15)),ct(this.radii.z>0),zt.from(e);let s=zt.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(s)>=this.radii.z-r))return zt.set(0,0,s).to(n)}};P(L,"WGS84",new L(6378137,6378137,he));var ii=class{constructor(e,r,n){this.item=void 0,this.previous=void 0,this.next=void 0,this.item=e,this.previous=r,this.next=n}};var oi=class{constructor(){this.head=null,this.tail=null,this._length=0}get length(){return this._length}add(e){let r=new ii(e,this.tail,null);return this.tail?(this.tail.next=r,this.tail=r):(this.head=r,this.tail=r),++this._length,r}remove(e){e&&(e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=null,this.tail=e.previous):e.next?(e.next.previous=null,this.head=e.next):(this.head=null,this.tail=null),e.next=null,e.previous=null,--this._length)}splice(e,r){e!==r&&(this.remove(r),this._insert(e,r))}_insert(e,r){let n=e.next;e.next=r,this.tail===e?this.tail=r:n.previous=r,r.next=n,r.previous=e,++this._length}};var ai=class{constructor(){this._list=void 0,this._sentinel=void 0,this._trimTiles=void 0,this._list=new oi,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch(e){let r=e._cacheNode;r&&this._list.splice(this._sentinel,r)}add(e,r,n){r._cacheNode||(r._cacheNode=this._list.add(r),n&&n(e,r))}unloadTile(e,r,n){let s=r._cacheNode;s&&(this._list.remove(s),r._cacheNode=null,n&&n(e,r))}unloadTiles(e,r){let n=this._trimTiles;this._trimTiles=!1;let s=this._list,i=e.maximumMemoryUsage*1024*1024,o=this._sentinel,a=s.head;for(;a!==o&&(e.gpuMemoryUsageInBytes>i||n);){let c=a.item;a=a.next,this.unloadTile(e,c,r)}}trim(){this._trimTiles=!0}};function id(t,e){V(t),V(e);let{rtcCenter:r,gltfUpAxis:n}=e,{computedTransform:s,boundingVolume:{center:i}}=t,o=new D(s);switch(r&&o.translate(r),n){case"Z":break;case"Y":let f=new D().rotateX(Math.PI/2);o=o.multiplyRight(f);break;case"X":let u=new D().rotateY(-Math.PI/2);o=o.multiplyRight(u);break;default:break}e.isQuantized&&o.translate(e.quantizedVolumeOffset).scale(e.quantizedVolumeScale);let a=new m(i);e.cartesianModelMatrix=o,e.cartesianOrigin=a;let c=L.WGS84.cartesianToCartographic(a,new m),h=L.WGS84.eastNorthUpToFixedFrame(a).invert();e.cartographicModelMatrix=h.multiplyRight(o),e.cartographicOrigin=c,e.coordinateSystem||(e.modelMatrix=e.cartographicModelMatrix)}var od=new m,qa=new m,ja=new ot([new lt,new lt,new lt,new lt,new lt,new lt]);function cd(t,e){let{cameraDirection:r,cameraUp:n,height:s}=t,{metersPerUnit:i}=t.distanceScales,o=ci(t,t.center),a=L.WGS84.eastNorthUpToFixedFrame(o),c=t.unprojectPosition(t.cameraPosition),l=L.WGS84.cartographicToCartesian(c,new m),h=new m(a.transformAsVector(new m(r).scale(i))).normalize(),f=new m(a.transformAsVector(new m(n).scale(i))).normalize();CE(t);let u=t.constructor,{longitude:d,latitude:p,width:_,bearing:A,zoom:T}=t,x=new u({longitude:d,latitude:p,height:s,width:_,bearing:A,zoom:T,pitch:0});return{camera:{position:l,direction:h,up:f},viewport:t,topDownViewport:x,height:s,cullingVolume:ja,frameNumber:e,sseDenominator:1.15}}function ld(t,e,r){if(r===0||t.length<=r)return[t,[]];let n=[],{longitude:s,latitude:i}=e.viewport;for(let[l,h]of t.entries()){let[f,u]=h.header.mbs,d=Math.abs(s-f),p=Math.abs(i-u),_=Math.sqrt(p*p+d*d);n.push([l,_])}let o=n.sort((l,h)=>l[1]-h[1]),a=[];for(let l=0;l<r;l++)a.push(t[o[l][0]]);let c=[];for(let l=r;l<o.length;l++)c.push(t[o[l][0]]);return[a,c]}function CE(t){let e=t.getFrustumPlanes(),r=ad(e.near,t.cameraPosition),n=ci(t,r),s=ci(t,t.cameraPosition,qa),i=0;ja.planes[i++].fromPointNormal(n,od.copy(n).subtract(s));for(let o in e){if(o==="near")continue;let a=e[o],c=ad(a,r,qa),l=ci(t,c,qa);ja.planes[i++].fromPointNormal(l,od.copy(n).subtract(l))}}function ad(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:new m,n=t.normal.dot(e);return r.copy(t.normal).scale(t.distance-n).add(e),r}function ci(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:new m,n=t.unprojectPosition(e);return L.WGS84.cartographicToCartesian(n,r)}var BE=6378137,ME=6378137,Za=6356752314245179e-9,Mr=new m;function hd(t,e){if(t instanceof Xt){let{halfAxes:r}=t,n=yE(r);return Math.log2(Za/(n+e[2]))}else if(t instanceof Ot){let{radius:r}=t;return Math.log2(Za/(r+e[2]))}else if(t.width&&t.height){let{width:r,height:n}=t,s=Math.log2(BE/r),i=Math.log2(ME/n);return(s+i)/2}return 1}function Qa(t,e,r){L.WGS84.cartographicToCartesian([t.xmax,t.ymax,t.zmax],Mr);let n=Math.sqrt(Math.pow(Mr[0]-r[0],2)+Math.pow(Mr[1]-r[1],2)+Math.pow(Mr[2]-r[2],2));return Math.log2(Za/(n+e[2]))}function fd(t,e,r){let[n,s,i,o]=t;return Qa({xmin:n,xmax:i,ymin:s,ymax:o,zmin:0,zmax:0},e,r)}function yE(t){t.getColumn(0,Mr);let e=t.getColumn(1),r=t.getColumn(2);return Mr.add(e).add(r).len()}var Id=v(Cr(),1);var _t={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},Et=function(t){return t[t.ADD=1]="ADD",t[t.REPLACE=2]="REPLACE",t}({}),re=function(t){return t.EMPTY="empty",t.SCENEGRAPH="scenegraph",t.POINTCLOUD="pointcloud",t.MESH="mesh",t}({}),ft=function(t){return t.I3S="I3S",t.TILES3D="TILES3D",t}({}),qe=function(t){return t.GEOMETRIC_ERROR="geometricError",t.MAX_SCREEN_THRESHOLD="maxScreenThreshold",t}({}),ud={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0};function Ad(t){return t!=null}var ut=new m,li=new m,IE=new m,FE=new m,je=new m,dd=new m,pd=new m,gd=new m;function hi(t,e,r){if(V(t,"3D Tile: boundingVolume must be defined"),t.box)return md(t.box,e,r);if(t.region)return OE(t.region);if(t.sphere)return NE(t.sphere,e,r);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function _d(t,e){if(t.box)return bE(e);if(t.region){let[r,n,s,i,o,a]=t.region;return[[yt(r),yt(n),o],[yt(s),yt(i),a]]}if(t.sphere)return PE(e);throw new Error("Unkown boundingVolume type")}function md(t,e,r){let n=new m(t[0],t[1],t[2]);e.transform(n,n);let s=[];if(t.length===10){let l=t.slice(3,6),h=new Zt;h.fromArray(t,6);let f=new m([1,0,0]),u=new m([0,1,0]),d=new m([0,0,1]);f.transformByQuaternion(h),f.scale(l[0]),u.transformByQuaternion(h),u.scale(l[1]),d.transformByQuaternion(h),d.scale(l[2]),s=[...f.toArray(),...u.toArray(),...d.toArray()]}else s=[...t.slice(3,6),...t.slice(6,9),...t.slice(9,12)];let i=e.transformAsVector(s.slice(0,3)),o=e.transformAsVector(s.slice(3,6)),a=e.transformAsVector(s.slice(6,9)),c=new z([i[0],i[1],i[2],o[0],o[1],o[2],a[0],a[1],a[2]]);return Ad(r)?(r.center=n,r.halfAxes=c,r):new Xt(n,c)}function NE(t,e,r){let n=new m(t[0],t[1],t[2]);e.transform(n,n);let s=e.getScale(li),i=Math.max(Math.max(s[0],s[1]),s[2]),o=t[3]*i;return Ad(r)?(r.center=n,r.radius=o,r):new Ot(n,o)}function OE(t){let[e,r,n,s,i,o]=t,a=L.WGS84.cartographicToCartesian([yt(e),yt(s),i],IE),c=L.WGS84.cartographicToCartesian([yt(n),yt(r),o],FE),l=new m().addVectors(a,c).multiplyByScalar(.5);return L.WGS84.cartesianToCartographic(l,je),L.WGS84.cartographicToCartesian([yt(n),je[1],je[2]],dd),L.WGS84.cartographicToCartesian([je[0],yt(s),je[2]],pd),L.WGS84.cartographicToCartesian([je[0],je[1],o],gd),md([...l,...dd.subtract(l),...pd.subtract(l),...gd.subtract(l)],new D)}function bE(t){let e=Td(),{halfAxes:r}=t,n=new m(r.getColumn(0)),s=new m(r.getColumn(1)),i=new m(r.getColumn(2));for(let o=0;o<2;o++){for(let a=0;a<2;a++){for(let c=0;c<2;c++)ut.copy(t.center),ut.add(n),ut.add(s),ut.add(i),Ed(e,ut),i.negate();s.negate()}n.negate()}return e}function PE(t){let e=Td(),{center:r,radius:n}=t,s=L.WGS84.scaleToGeodeticSurface(r,ut),i;s?i=L.WGS84.geodeticSurfaceNormal(s):i=new m(0,0,1);let o=new m(i[2],-i[1],0);o.len()>0?o.normalize():o=new m(0,1,0);let a=o.clone().cross(i);for(let c of[o,a,i]){li.copy(c).scale(n);for(let l=0;l<2;l++)ut.copy(r),ut.add(li),Ed(e,ut),li.negate()}return e}function Td(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function Ed(t,e){L.WGS84.cartesianToCartographic(e,ut),t[0][0]=Math.min(t[0][0],ut[0]),t[0][1]=Math.min(t[0][1],ut[1]),t[0][2]=Math.min(t[0][2],ut[2]),t[1][0]=Math.max(t[1][0],ut[0]),t[1][1]=Math.max(t[1][1],ut[1]),t[1][2]=Math.max(t[1][2],ut[2])}var VP=new m,XP=new m,WP=new D,zP=new m,kP=new m,GP=new m;function DE(t,e){let r=t*e;return 1-Math.exp(-(r*r))}function wE(t,e){if(t.dynamicScreenSpaceError&&t.dynamicScreenSpaceErrorComputedDensity){let r=t.dynamicScreenSpaceErrorComputedDensity,n=t.dynamicScreenSpaceErrorFactor;return DE(e,r)*n}return 0}function Rd(t,e,r){let n=t.tileset,s=t.parent&&t.parent.lodMetricValue||t.lodMetricValue,i=r?s:t.lodMetricValue;if(i===0)return 0;let o=Math.max(t._distanceToCamera,1e-7),{height:a,sseDenominator:c}=e,{viewDistanceScale:l}=n.options,h=i*a*(l||1)/(o*c);return h-=wE(n,o),h}var $a=new m,xd=new m,Fe=new m,Sd=new m,vE=new m,tc=new D,Cd=new D;function Bd(t,e){if(t.lodMetricValue===0||isNaN(t.lodMetricValue))return"DIG";let r=2*ec(t,e);return r<2?"OUT":!t.header.children||r<=t.lodMetricValue?"DRAW":t.header.children?"DIG":"OUT"}function ec(t,e){let{topDownViewport:r}=e,n=t.header.mbs[1],s=t.header.mbs[0],i=t.header.mbs[2],o=t.header.mbs[3],a=[...t.boundingVolume.center],c=r.unprojectPosition(r.cameraPosition);L.WGS84.cartographicToCartesian(c,$a),xd.copy($a).subtract(a).normalize(),L.WGS84.eastNorthUpToFixedFrame(a,tc),Cd.copy(tc).invert(),Fe.copy($a).transform(Cd);let l=Math.sqrt(Fe[0]*Fe[0]+Fe[1]*Fe[1]),h=l*l/Fe[2];Sd.copy([Fe[0],Fe[1],h]);let u=Sd.transform(tc).subtract(a).normalize(),p=xd.cross(u).normalize().scale(o).add(a),_=L.WGS84.cartesianToCartographic(p),A=r.project([s,n,i]),T=r.project(_);return vE.copy(A).subtract(T).magnitude()}function Md(t){return{assetGltfUpAxis:t.asset&&t.asset.gltfUpAxis||"Y"}}var Mn=class{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this._map=new Map,this._array=void 0,this._length=void 0,this._array=new Array(e),this._length=e}get length(){return this._length}set length(e){this._length=e,e>this._array.length&&(this._array.length=e)}get values(){return this._array}get(e){return V(e<this._array.length),this._array[e]}set(e,r){V(e>=0),e>=this.length&&(this.length=e+1),this._map.has(this._array[e])&&this._map.delete(this._array[e]),this._array[e]=r,this._map.set(r,e)}delete(e){let r=this._map.get(e);r>=0&&(this._array.splice(r,1),this._map.delete(e),this.length--)}peek(){return this._array[this._length-1]}push(e){if(!this._map.has(e)){let r=this.length++;this._array[r]=e,this._map.set(e,r)}}pop(){let e=this._array[--this.length];return this._map.delete(e),e}reserve(e){V(e>=0),e>this._array.length&&(this._array.length=e)}resize(e){V(e>=0),this.length=e}trim(e){e==null&&(e=this.length),this._array.length=e}reset(){this._array=[],this._map=new Map,this._length=0}find(e){return this._map.has(e)}};var UE={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""},ne=class{traversalFinished(e){return!0}constructor(e){this.options=void 0,this.root=null,this.selectedTiles={},this.requestedTiles={},this.emptyTiles={},this.lastUpdate=new Date().getTime(),this.updateDebounceTime=1e3,this._traversalStack=new Mn,this._emptyTraversalStack=new Mn,this._frameNumber=null,this.options={...UE,...e}}traverse(e,r,n){this.root=e,this.options={...this.options,...n},this.reset(),this.updateTile(e,r),this._frameNumber=r.frameNumber,this.executeTraversal(e,r)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal(e,r){let n=this._traversalStack;for(e._selectionDepth=1,n.push(e);n.length>0;){let i=n.pop(),o=!1;this.canTraverse(i,r)&&(this.updateChildTiles(i,r),o=this.updateAndPushChildren(i,r,n,i.hasRenderContent?i._selectionDepth+1:i._selectionDepth));let a=i.parent,c=Boolean(!a||a._shouldRefine),l=!o;i.hasRenderContent?i.refine===Et.ADD?(this.loadTile(i,r),this.selectTile(i,r)):i.refine===Et.REPLACE&&(this.loadTile(i,r),l&&this.selectTile(i,r)):(this.emptyTiles[i.id]=i,this.loadTile(i,r),l&&this.selectTile(i,r)),this.touchTile(i,r),i._shouldRefine=o&&c}let s=new Date().getTime();(this.traversalFinished(r)||s-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=s,this.options.onTraversalEnd(r))}updateChildTiles(e,r){let n=e.children;for(let s of n)this.updateTile(s,r)}updateAndPushChildren(e,r,n,s){let{loadSiblings:i,skipLevelOfDetail:o}=this.options,a=e.children;a.sort(this.compareDistanceToCamera.bind(this));let c=e.refine===Et.REPLACE&&e.hasRenderContent&&!o,l=!1,h=!0;for(let f of a)if(f._selectionDepth=s,f.isVisibleAndInRequestVolume?(n.find(f)&&n.delete(f),n.push(f),l=!0):(c||i)&&(this.loadTile(f,r),this.touchTile(f,r)),c){let u;if(f._inRequestVolume?f.hasRenderContent?u=f.contentAvailable:u=this.executeEmptyTraversal(f,r):u=!1,h=h&&u,!h)return!1}return l||(h=!1),h}updateTile(e,r){this.updateTileVisibility(e,r)}selectTile(e,r){this.shouldSelectTile(e)&&(e._selectedFrame=r.frameNumber,this.selectedTiles[e.id]=e)}loadTile(e,r){this.shouldLoadTile(e)&&(e._requestedFrame=r.frameNumber,e._priority=e._getPriority(),this.requestedTiles[e.id]=e)}touchTile(e,r){e.tileset._cache.touch(e),e._touchedFrame=r.frameNumber}canTraverse(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;return e.hasChildren?e.hasTilesetContent?!e.contentExpired:!s&&!e.isVisibleAndInRequestVolume?!1:this.shouldRefine(e,r,n):!1}shouldLoadTile(e){return e.hasUnloadedContent||e.contentExpired}shouldSelectTile(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,s=e._screenSpaceError;return n&&(s=e.getScreenSpaceError(r,!0)),s>e.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(e,r){let n=[];if(this.options.viewportTraversersMap)for(let s in this.options.viewportTraversersMap)this.options.viewportTraversersMap[s]===r.viewport.id&&n.push(s);else n.push(r.viewport.id);e.updateVisibility(r,n)}compareDistanceToCamera(e,r){return e._distanceToCamera-r._distanceToCamera}anyChildrenVisible(e,r){let n=!1;for(let s of e.children)s.updateVisibility(r),n=n||s.isVisibleAndInRequestVolume;return n}executeEmptyTraversal(e,r){let n=!0,s=this._emptyTraversalStack;for(s.push(e);s.length>0;){let i=s.pop(),o=!i.hasRenderContent&&this.canTraverse(i,r,!1,!1),a=!i.hasRenderContent&&i.children.length===0;if(!o&&!i.contentAvailable&&!a&&(n=!1),this.updateTile(i,r),i.isVisibleAndInRequestVolume||(this.loadTile(i,r),this.touchTile(i,r)),o){let c=i.children;for(let l of c)s.push(l)}}return n}};var yd=new m;function LE(t){return t!=null}var Ze=class{constructor(e,r,n){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"";this.tileset=void 0,this.header=void 0,this.id=void 0,this.url=void 0,this.parent=void 0,this.refine=void 0,this.type=void 0,this.contentUrl=void 0,this.lodMetricType="geometricError",this.lodMetricValue=0,this.boundingVolume=null,this.content=null,this.contentState=_t.UNLOADED,this.gpuMemoryUsageInBytes=0,this.children=[],this.depth=0,this.viewportIds=[],this.transform=new D,this.extensions=null,this.implicitTiling=null,this.userData={},this.computedTransform=void 0,this.hasEmptyContent=!1,this.hasTilesetContent=!1,this.traverser=new ne({}),this._cacheNode=null,this._frameNumber=null,this._expireDate=null,this._expiredContent=null,this._boundingBox=void 0,this._distanceToCamera=0,this._screenSpaceError=0,this._visibilityPlaneMask=void 0,this._visible=void 0,this._contentBoundingVolume=void 0,this._viewerRequestVolume=void 0,this._initialTransform=new D,this._priority=0,this._selectedFrame=0,this._requestedFrame=0,this._selectionDepth=0,this._touchedFrame=0,this._centerZDepth=0,this._shouldRefine=!1,this._stackLength=0,this._visitedFrame=0,this._inRequestVolume=!1,this._lodJudge=null,this.header=r,this.tileset=e,this.id=s||r.id,this.url=r.url,this.parent=n,this.refine=this._getRefine(r.refine),this.type=r.type,this.contentUrl=r.contentUrl,this._initializeLodMetric(r),this._initializeTransforms(r),this._initializeBoundingVolumes(r),this._initializeContent(r),this._initializeRenderingState(r),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===_t.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===_t.UNLOADED}get contentExpired(){return this.contentState===_t.EXPIRED}get contentFailed(){return this.contentState===_t.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=_d(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(e,r){switch(this.tileset.type){case ft.I3S:return ec(this,e);case ft.TILES3D:return Rd(this,e,r);default:throw new Error("Unsupported tileset type")}}unselect(){this._selectedFrame=0}_getGpuMemoryUsageInBytes(){return this.content.gpuMemoryUsageInBytes||this.content.byteLength||0}_getPriority(){let e=this.tileset._traverser,{skipLevelOfDetail:r}=e.options,n=this.refine===Et.ADD||r;if(n&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===_t.UNLOADED)return-1;let s=this.parent,o=s&&(!n||this._screenSpaceError===0||s.hasTilesetContent)?s._screenSpaceError:this._screenSpaceError,a=e.root?e.root._screenSpaceError:0;return Math.max(a-o,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=_t.LOADING;let r=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!r)return this.contentState=_t.UNLOADED,!1;try{let n=this.tileset.getTileUrl(this.contentUrl),s=this.tileset.loader,i={...this.tileset.loadOptions,[s.id]:{...this.tileset.loadOptions[s.id],isTileset:this.type==="json",...this._getLoaderSpecificOptions(s.id)}};return this.content=await(0,Id.load)(n,s,i),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=_t.READY,this._onContentLoaded(),!0}catch(n){throw this.contentState=_t.FAILED,n}finally{r.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=_t.UNLOADED,!0}updateVisibility(e,r){if(this._frameNumber===e.frameNumber)return;let n=this.parent,s=n?n._visibilityPlaneMask:ot.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){let i=n?n.computedTransform:this.tileset.modelMatrix;this._updateTransform(i)}this._distanceToCamera=this.distanceToTile(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._visibilityPlaneMask=this.visibility(e,s),this._visible=this._visibilityPlaneMask!==ot.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=r}visibility(e,r){let{cullingVolume:n}=e,{boundingVolume:s}=this;return n.computeVisibilityWithPlaneMask(s,r)}contentVisibility(){return!0}distanceToTile(e){let r=this.boundingVolume;return Math.sqrt(Math.max(r.distanceSquaredTo(e.camera.position),0))}cameraSpaceZDepth(e){let{camera:r}=e,n=this.boundingVolume;return yd.subVectors(n.center,r.position),r.direction.dot(yd)}insideViewerRequestVolume(e){let r=this._viewerRequestVolume;return!r||r.distanceSquaredTo(e.camera.position)<=0}updateExpiration(){if(LE(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){let e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=_t.EXPIRED,this._expiredContent=this.content)}}get extras(){return this.header.extras}_initializeLodMetric(e){"lodMetricType"in e?this.lodMetricType=e.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 e?this.lodMetricValue=e.lodMetricValue:(this.lodMetricValue=this.parent&&this.parent.lodMetricValue||this.tileset.lodMetricValue,console.warn("3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue"))}_initializeTransforms(e){this.transform=e.transform?new D(e.transform):new D;let r=this.parent,n=this.tileset,s=r&&r.computedTransform?r.computedTransform.clone():n.modelMatrix.clone();this.computedTransform=new D(s).multiplyRight(this.transform);let i=r&&r._initialTransform?r._initialTransform.clone():new D;this._initialTransform=new D(i).multiplyRight(this.transform)}_initializeBoundingVolumes(e){this._contentBoundingVolume=null,this._viewerRequestVolume=null,this._updateBoundingVolume(e)}_initializeContent(e){this.content={_tileset:this.tileset,_tile:this},this.hasEmptyContent=!0,this.contentState=_t.UNLOADED,this.hasTilesetContent=!1,e.contentUrl&&(this.content=null,this.hasEmptyContent=!1)}_initializeRenderingState(e){this.depth=e.level||(this.parent?this.parent.depth+1:0),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._visibilityPlaneMask=ot.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(e){return e||this.parent&&this.parent.refine||Et.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(e){this.boundingVolume=hi(e.boundingVolume,this.computedTransform,this.boundingVolume);let r=e.content;r&&(r.boundingVolume&&(this._contentBoundingVolume=hi(r.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=hi(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(){let r=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:new D).clone().multiplyRight(this.transform);r.equals(this.computedTransform)||(this.computedTransform=r,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions(e){switch(e){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 Md(this.tileset.tileset)}}};var fi=class extends ne{compareDistanceToCamera(e,r){return r._distanceToCamera===0&&e._distanceToCamera===0?r._centerZDepth-e._centerZDepth:r._distanceToCamera-e._distanceToCamera}updateTileVisibility(e,r){if(super.updateTileVisibility(e,r),!e.isVisibleAndInRequestVolume)return;let n=e.children.length>0;if(e.hasTilesetContent&&n){let o=e.children[0];this.updateTileVisibility(o,r),e._visible=o._visible;return}if(this.meetsScreenSpaceErrorEarly(e,r)){e._visible=!1;return}let s=e.refine===Et.REPLACE,i=e._optimChildrenWithinParent===ud.USE_OPTIMIZATION;if(s&&i&&n&&!this.anyChildrenVisible(e,r)){e._visible=!1;return}}meetsScreenSpaceErrorEarly(e,r){let{parent:n}=e;return!n||n.hasTilesetContent||n.refine!==Et.ADD?!1:!this.shouldRefine(e,r,!0)}};var Fd=v(Cr(),1);var ui=class{constructor(){this.frameNumberMap=new Map}register(e,r){let n=this.frameNumberMap.get(e)||new Map,s=n.get(r)||0;n.set(r,s+1),this.frameNumberMap.set(e,n)}deregister(e,r){let n=this.frameNumberMap.get(e);if(!n)return;let s=n.get(r)||1;n.set(r,s-1)}isZero(e,r){var n;return(((n=this.frameNumberMap.get(e))===null||n===void 0?void 0:n.get(r))||0)===0}};var rc={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"},di=class{constructor(){this._statusMap=void 0,this.pendingTilesRegister=new ui,this._statusMap={}}add(e,r,n,s){if(!this._statusMap[r]){let{frameNumber:i,viewport:{id:o}}=s;this._statusMap[r]={request:e,callback:n,key:r,frameState:s,status:rc.REQUESTED},this.pendingTilesRegister.register(o,i),e().then(a=>{this._statusMap[r].status=rc.COMPLETED;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),this._statusMap[r].callback(a,s)}).catch(a=>{this._statusMap[r].status=rc.ERROR;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),n(a)})}}update(e,r){if(this._statusMap[e]){let{frameNumber:n,viewport:{id:s}}=this._statusMap[e].frameState;this.pendingTilesRegister.deregister(s,n);let{frameNumber:i,viewport:{id:o}}=r;this.pendingTilesRegister.register(o,i),this._statusMap[e].frameState=r}}find(e){return this._statusMap[e]}hasPendingTiles(e,r){return!this.pendingTilesRegister.isZero(e,r)}};var pi=class extends ne{constructor(e){super(e),this._tileManager=void 0,this._tileManager=new di}traversalFinished(e){return!this._tileManager.hasPendingTiles(e.viewport.id,this._frameNumber||0)}shouldRefine(e,r){return e._lodJudge=Bd(e,r),e._lodJudge==="DIG"}updateChildTiles(e,r){let n=e.header.children||[],s=e.children,i=e.tileset;for(let o of n){let a=`${o.id}-${r.viewport.id}`,c=s&&s.find(l=>l.id===a);if(c)c&&this.updateTile(c,r);else{let l=()=>this._loadTile(o.id,i);this._tileManager.find(a)?this._tileManager.update(a,r):(i.tileset.nodePages&&(l=()=>i.tileset.nodePagesTile.formTileFromNodePages(o.id)),this._tileManager.add(l,a,f=>this._onTileLoad(f,e,a),r))}}return!1}async _loadTile(e,r){let{loader:n}=r,s=r.getTileUrl(`${r.url}/nodes/${e}`),i={...r.loadOptions,i3s:{...r.loadOptions.i3s,isTileHeader:!0}};return await(0,Fd.load)(s,n,i)}_onTileLoad(e,r,n){let s=new Ze(r.tileset,e,r,n);r.children.push(s);let i=this._tileManager.find(s.id).frameState;this.updateTile(s,i),this._frameNumber===i.frameNumber&&(this.traversalFinished(i)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(s,i)}};var HE={description:"",ellipsoid:L.WGS84,modelMatrix:new D,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:t=>t,contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},gi="Tiles In Tileset(s)",nc="Tiles In Memory",Nd="Tiles In View",Od="Tiles To Render",bd="Tiles Loaded",sc="Tiles Loading",Pd="Tiles Unloaded",Dd="Failed Tile Loads",wd="Points/Vertices",ic="Tile Memory Use",vd="Maximum Screen Space Error",yn=class{constructor(e,r){this.options=void 0,this.loadOptions=void 0,this.type=void 0,this.tileset=void 0,this.loader=void 0,this.url=void 0,this.basePath=void 0,this.modelMatrix=void 0,this.ellipsoid=void 0,this.lodMetricType=void 0,this.lodMetricValue=void 0,this.refine=void 0,this.root=null,this.roots={},this.asset={},this.description="",this.properties=void 0,this.extras=null,this.attributions={},this.credits={},this.stats=void 0,this.contentFormats={draco:!1,meshopt:!1,dds:!1,ktx2:!1},this.cartographicCenter=null,this.cartesianCenter=null,this.zoom=1,this.boundingVolume=null,this.dynamicScreenSpaceErrorComputedDensity=0,this.maximumMemoryUsage=32,this.gpuMemoryUsageInBytes=0,this.memoryAdjustedScreenSpaceError=0,this._cacheBytes=0,this._cacheOverflowBytes=0,this._frameNumber=0,this._queryParams={},this._extensionsUsed=[],this._tiles={},this._pendingCount=0,this.selectedTiles=[],this.traverseCounter=0,this.geometricError=0,this.lastUpdatedVieports=null,this._requestedTiles=[],this._emptyTiles=[],this.frameStateData={},this._traverser=void 0,this._cache=new ai,this._requestScheduler=void 0,this.updatePromise=null,this.tilesetInitializationPromise=void 0,this.options={...HE,...r},this.tileset=e,this.loader=e.loader,this.type=e.type,this.url=e.url,this.basePath=e.basePath||Te.dirname(this.url),this.modelMatrix=this.options.modelMatrix,this.ellipsoid=this.options.ellipsoid,this.lodMetricType=e.lodMetricType,this.lodMetricValue=e.lodMetricValue,this.refine=e.root.refine,this.loadOptions=this.options.loadOptions||{},this._traverser=this._initializeTraverser(),this._requestScheduler=new me({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 _e({id:this.url}),this._initializeStats(),this.tilesetInitializationPromise=this._initializeTileSet(e)}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(e){this.options={...this.options,...e}}getTileUrl(e){if(e.startsWith("data:"))return e;let n=e;return this.queryParams.length&&(n=`${e}${e.includes("?")?"&":"?"}${this.queryParams}`),n}hasExtension(e){return Boolean(this._extensionsUsed.indexOf(e)>-1)}update(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;this.tilesetInitializationPromise.then(()=>{!e&&this.lastUpdatedVieports?e=this.lastUpdatedVieports:this.lastUpdatedVieports=e,e&&this.doUpdate(e)})}async selectTiles(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return await this.tilesetInitializationPromise,e&&(this.lastUpdatedVieports=e),this.updatePromise||(this.updatePromise=new Promise(r=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),r(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(e){if("loadTiles"in this.options&&!this.options.loadTiles||this.traverseCounter>0)return;let r=e instanceof Array?e:[e];this._cache.reset(),this._frameNumber++,this.traverseCounter=r.length;let n=[];for(let s of r){let i=s.id;this._needTraverse(i)?n.push(i):this.traverseCounter--}for(let s of r){let i=s.id;if(this.roots[i]||(this.roots[i]=this._initializeTileHeaders(this.tileset,null)),!n.includes(i))continue;let o=cd(s,this._frameNumber);this._traverser.traverse(this.roots[i],o,this.options)}}_needTraverse(e){let r=e;return this.options.viewportTraversersMap&&(r=this.options.viewportTraversersMap[e]),r===e}_onTraversalEnd(e){let r=e.viewport.id;this.frameStateData[r]||(this.frameStateData[r]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});let n=this.frameStateData[r],s=Object.values(this._traverser.selectedTiles),[i,o]=ld(s,e,this.options.maximumTilesSelected);n.selectedTiles=i;for(let a of o)a.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 e in this.frameStateData){let r=this.frameStateData[e];this.selectedTiles=this.selectedTiles.concat(r.selectedTiles),this._requestedTiles=this._requestedTiles.concat(r._requestedTiles),this._emptyTiles=this._emptyTiles.concat(r._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);for(let e of this.selectedTiles)this._tiles[e.id]=e;this._loadTiles(),this._unloadTiles(),this._updateStats()}_tilesChanged(e,r){if(e.length!==r.length)return!0;let n=new Set(e.map(o=>o.id)),s=new Set(r.map(o=>o.id)),i=e.filter(o=>!s.has(o.id)).length>0;return i=i||r.filter(o=>!n.has(o.id)).length>0,i}_loadTiles(){for(let e of this._requestedTiles)e.contentUnloaded&&this._loadTile(e)}_unloadTiles(){this._cache.unloadTiles(this,(e,r)=>e._unloadTile(r))}_updateStats(){let e=0,r=0;for(let n of this.selectedTiles)n.contentAvailable&&n.content&&(e++,n.content.pointCount?r+=n.content.pointCount:r+=n.content.vertexCount);this.stats.get(Nd).count=this.selectedTiles.length,this.stats.get(Od).count=e,this.stats.get(wd).count=r,this.stats.get(vd).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(e){this.type===ft.I3S&&(this.calculateViewPropsI3S(),e.root=await e.root),this.root=this._initializeTileHeaders(e,null),this.type===ft.TILES3D&&(this._initializeTiles3DTileset(e),this.calculateViewPropsTiles3D()),this.type===ft.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){var e;let r=this.tileset.fullExtent;if(r){let{xmin:s,xmax:i,ymin:o,ymax:a,zmin:c,zmax:l}=r;this.cartographicCenter=new m(s+(i-s)/2,o+(a-o)/2,c+(l-c)/2),this.cartesianCenter=new m,L.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=Qa(r,this.cartographicCenter,this.cartesianCenter);return}let n=(e=this.tileset.store)===null||e===void 0?void 0:e.extent;if(n){let[s,i,o,a]=n;this.cartographicCenter=new m(s+(o-s)/2,i+(a-i)/2,0),this.cartesianCenter=new m,L.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=fd(n,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new m,this.zoom=1}calculateViewPropsTiles3D(){let e=this.root,{center:r}=e.boundingVolume;if(!r){console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new m,this.zoom=1;return}r[0]!==0||r[1]!==0||r[2]!==0?(this.cartographicCenter=new m,L.WGS84.cartesianToCartographic(r,this.cartographicCenter)):this.cartographicCenter=new m(0,0,-L.WGS84.radii[0]),this.cartesianCenter=r,this.zoom=hd(e.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(gi),this.stats.get(sc),this.stats.get(nc),this.stats.get(Nd),this.stats.get(Od),this.stats.get(bd),this.stats.get(Pd),this.stats.get(Dd),this.stats.get(wd),this.stats.get(ic,"memory"),this.stats.get(vd)}_initializeTileHeaders(e,r){let n=new Ze(this,e.root,r);if(r&&(r.children.push(n),n.depth=r.depth+1),this.type===ft.TILES3D){let i=[];for(i.push(n);i.length>0;){let o=i.pop();this.stats.get(gi).incrementCount();let a=o.header.children||[];for(let c of a){var s;let l=new Ze(this,c,o);if((s=l.contentUrl)!==null&&s!==void 0&&s.includes("?session=")){let f=new URL(l.contentUrl).searchParams.get("session");f&&(this._queryParams.session=f)}o.children.push(l),l.depth=o.depth+1,i.push(l)}}}return n}_initializeTraverser(){let e;switch(this.type){case ft.TILES3D:e=fi;break;case ft.I3S:e=pi;break;default:e=ne}return new e({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders(e){this._destroySubtree(e)}async _loadTile(e){let r;try{this._onStartTileLoading(),r=await e.loadContent()}catch(n){this._onTileLoadError(e,n instanceof Error?n:new Error("load failed"))}finally{this._onEndTileLoading(),this._onTileLoad(e,r)}}_onTileLoadError(e,r){this.stats.get(Dd).incrementCount();let n=r.message||r.toString(),s=e.url;console.error(`A 3D tile failed to load: ${e.url} ${n}`),this.options.onTileError(e,n,s)}_onTileLoad(e,r){if(r){if(this.type===ft.I3S){var n,s;let i=((n=this.tileset)===null||n===void 0||(s=n.nodePagesTile)===null||s===void 0?void 0:s.nodesInNodePages)||0;this.stats.get(gi).reset(),this.stats.get(gi).addCount(i)}e&&e.content&&id(e,e.content),this.updateContentTypes(e),this._addTileToCache(e),this.options.onTileLoad(e)}}updateContentTypes(e){if(this.type===ft.I3S)switch(e.header.isDracoGeometry&&(this.contentFormats.draco=!0),e.header.textureFormat){case"dds":this.contentFormats.dds=!0;break;case"ktx2":this.contentFormats.ktx2=!0;break;default:}else if(this.type===ft.TILES3D){var r;let{extensionsRemoved:n=[]}=((r=e.content)===null||r===void 0?void 0:r.gltf)||{};n.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),n.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),n.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(sc).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(sc).decrementCount()}_addTileToCache(e){this._cache.add(this,e,r=>r._updateCacheStats(e))}_updateCacheStats(e){this.stats.get(bd).incrementCount(),this.stats.get(nc).incrementCount(),this.gpuMemoryUsageInBytes+=e.gpuMemoryUsageInBytes||0,this.stats.get(ic).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(e){this.gpuMemoryUsageInBytes-=e.gpuMemoryUsageInBytes||0,this.stats.get(nc).decrementCount(),this.stats.get(Pd).incrementCount(),this.stats.get(ic).count=this.gpuMemoryUsageInBytes,this.options.onTileUnload(e),e.unloadContent()}_destroy(){let e=[];for(this.root&&e.push(this.root);e.length>0;){let r=e.pop();for(let n of r.children)e.push(n);this._destroyTile(r)}this.root=null}_destroySubtree(e){let r=e,n=[];for(n.push(r);n.length>0;){e=n.pop();for(let s of e.children)n.push(s);e!==r&&this._destroyTile(e)}r.children=[]}_destroyTile(e){this._cache.unloadTile(this,e),this._unloadTile(e),e.destroy()}_initializeTiles3DTileset(e){if(e.queryString){let r=new URLSearchParams(e.queryString),n=Object.fromEntries(r.entries());this._queryParams={...this._queryParams,...n}}if(this.asset=e.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=e.properties,this.geometricError=e.geometricError,this._extensionsUsed=e.extensionsUsed||[],this.extras=e.extras}_initializeI3STileset(){this.loadOptions.i3s&&"token"in this.loadOptions.i3s&&(this._queryParams.token=this.loadOptions.i3s.token)}};var Ai="4.1.0";var Qe={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GEOMETRY:"geom",VECTOR:"vect",GLTF:"glTF"},VD=Object.keys(Qe);function oc(t,e,r){V(t instanceof ArrayBuffer);let n=new TextDecoder("utf8"),s=new Uint8Array(t,e,r);return n.decode(s)}function Ud(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=new DataView(t);return`${String.fromCharCode(r.getUint8(e+0))}${String.fromCharCode(r.getUint8(e+1))}${String.fromCharCode(r.getUint8(e+2))}${String.fromCharCode(r.getUint8(e+3))}`}var Ld="4.1.0";var Hd={name:"Draco",id:"draco",module:"draco",version:Ld,worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",libraryPath:"libs/",extraAttributes:{},attributeNameEntry:void 0}}};function Vd(t){switch(t.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function $e(t){let e=1/0,r=1/0,n=1/0,s=-1/0,i=-1/0,o=-1/0,a=t.POSITION?t.POSITION.value:[],c=a&&a.length;for(let l=0;l<c;l+=3){let h=a[l],f=a[l+1],u=a[l+2];e=h<e?h:e,r=f<r?f:r,n=u<n?u:n,s=h>s?h:s,i=f>i?f:i,o=u>o?u:o}return[[e,r,n],[s,i,o]]}function ac(t,e,r){let n=Vd(e.value),s=r||Xd(e);return{name:t,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:n}]},nullable:!1,metadata:s}}function Xd(t){let e={};return"byteOffset"in t&&(e.byteOffset=t.byteOffset.toString(10)),"byteStride"in t&&(e.byteStride=t.byteStride.toString(10)),"normalized"in t&&(e.normalized=t.normalized.toString()),e}function zd(t,e,r){let n=kd(e.metadata),s=[],i=VE(e.attributes);for(let o in t){let a=t[o],c=Wd(o,a,i[o]);s.push(c)}if(r){let o=Wd("indices",r);s.push(o)}return{fields:s,metadata:n}}function VE(t){let e={};for(let r in t){let n=t[r];e[n.name||"undefined"]=n}return e}function Wd(t,e,r){let n=r?kd(r.metadata):void 0;return ac(t,e,n)}function kd(t){Object.entries(t);let e={};for(let r in t)e[`${r}.string`]=JSON.stringify(t[r]);return e}var Gd={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},XE={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},WE=4,In=class{constructor(e){this.draco=void 0,this.decoder=void 0,this.metadataQuerier=void 0,this.draco=e,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}destroy(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}parseSync(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(r);let s=this.decoder.GetEncodedGeometryType(n),i=s===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let o;switch(s){case this.draco.TRIANGULAR_MESH:o=this.decoder.DecodeBufferToMesh(n,i);break;case this.draco.POINT_CLOUD:o=this.decoder.DecodeBufferToPointCloud(n,i);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!o.ok()||!i.ptr){let u=`DRACO decompression failed: ${o.error_msg()}`;throw new Error(u)}let a=this._getDracoLoaderData(i,s,r),c=this._getMeshData(i,a,r),l=$e(c.attributes),h=zd(c.attributes,a,c.indices);return{loader:"draco",loaderData:a,header:{vertexCount:i.num_points(),boundingBox:l},...c,schema:h}}finally{this.draco.destroy(n),i&&this.draco.destroy(i)}}_getDracoLoaderData(e,r,n){let s=this._getTopLevelMetadata(e),i=this._getDracoAttributes(e,n);return{geometry_type:r,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:s,attributes:i}}_getDracoAttributes(e,r){let n={};for(let s=0;s<e.num_attributes();s++){let i=this.decoder.GetAttribute(e,s),o=this._getAttributeMetadata(e,s);n[i.unique_id()]={unique_id:i.unique_id(),attribute_type:i.attribute_type(),data_type:i.data_type(),num_components:i.num_components(),byte_offset:i.byte_offset(),byte_stride:i.byte_stride(),normalized:i.normalized(),attribute_index:s,metadata:o};let a=this._getQuantizationTransform(i,r);a&&(n[i.unique_id()].quantization_transform=a);let c=this._getOctahedronTransform(i,r);c&&(n[i.unique_id()].octahedron_transform=c)}return n}_getMeshData(e,r,n){let s=this._getMeshAttributes(r,e,n);if(!s.POSITION)throw new Error("DRACO: No position attribute found.");if(e instanceof this.draco.Mesh)switch(n.topology){case"triangle-strip":return{topology:"triangle-strip",mode:4,attributes:s,indices:{value:this._getTriangleStripIndices(e),size:1}};case"triangle-list":default:return{topology:"triangle-list",mode:5,attributes:s,indices:{value:this._getTriangleListIndices(e),size:1}}}return{topology:"point-list",mode:0,attributes:s}}_getMeshAttributes(e,r,n){let s={};for(let i of Object.values(e.attributes)){let o=this._deduceAttributeName(i,n);i.name=o;let{value:a,size:c}=this._getAttributeValues(r,i);s[o]={value:a,size:c,byteOffset:i.byte_offset,byteStride:i.byte_stride,normalized:i.normalized}}return s}_getTriangleListIndices(e){let n=e.num_faces()*3,s=n*WE,i=this.draco._malloc(s);try{return this.decoder.GetTrianglesUInt32Array(e,s,i),new Uint32Array(this.draco.HEAPF32.buffer,i,n).slice()}finally{this.draco._free(i)}}_getTriangleStripIndices(e){let r=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,r),GE(r)}finally{this.draco.destroy(r)}}_getAttributeValues(e,r){let n=XE[r.data_type],s=r.num_components,o=e.num_points()*s,a=o*n.BYTES_PER_ELEMENT,c=zE(this.draco,n),l,h=this.draco._malloc(a);try{let f=this.decoder.GetAttribute(e,r.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,f,c,a,h),l=new n(this.draco.HEAPF32.buffer,h,o).slice()}finally{this.draco._free(h)}return{value:l,size:s}}_deduceAttributeName(e,r){let n=e.unique_id;for(let[o,a]of Object.entries(r.extraAttributes||{}))if(a===n)return o;let s=e.attribute_type;for(let o in Gd)if(this.draco[o]===s)return Gd[o];let i=r.attributeNameEntry||"name";return e.metadata[i]?e.metadata[i].string:`CUSTOM_ATTRIBUTE_${n}`}_getTopLevelMetadata(e){let r=this.decoder.GetMetadata(e);return this._getDracoMetadata(r)}_getAttributeMetadata(e,r){let n=this.decoder.GetAttributeMetadata(e,r);return this._getDracoMetadata(n)}_getDracoMetadata(e){if(!e||!e.ptr)return{};let r={},n=this.metadataQuerier.NumEntries(e);for(let s=0;s<n;s++){let i=this.metadataQuerier.GetEntryName(e,s);r[i]=this._getDracoMetadataField(e,i)}return r}_getDracoMetadataField(e,r){let n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,r,n);let s=kE(n);return{int:this.metadataQuerier.GetIntEntry(e,r),string:this.metadataQuerier.GetStringEntry(e,r),double:this.metadataQuerier.GetDoubleEntry(e,r),intArray:s}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){let{quantizedAttributes:r=[],octahedronAttributes:n=[]}=e,s=[...r,...n];for(let i of s)this.decoder.SkipAttributeTransform(this.draco[i])}_getQuantizationTransform(e,r){let{quantizedAttributes:n=[]}=r,s=e.attribute_type();if(n.map(o=>this.decoder[o]).includes(s)){let o=new this.draco.AttributeQuantizationTransform;try{if(o.InitFromAttribute(e))return{quantization_bits:o.quantization_bits(),range:o.range(),min_values:new Float32Array([1,2,3]).map(a=>o.min_value(a))}}finally{this.draco.destroy(o)}}return null}_getOctahedronTransform(e,r){let{octahedronAttributes:n=[]}=r,s=e.attribute_type();if(n.map(o=>this.decoder[o]).includes(s)){let o=new this.draco.AttributeQuantizationTransform;try{if(o.InitFromAttribute(e))return{quantization_bits:o.quantization_bits()}}finally{this.draco.destroy(o)}}return null}};function zE(t,e){switch(e){case Float32Array:return t.DT_FLOAT32;case Int8Array:return t.DT_INT8;case Int16Array:return t.DT_INT16;case Int32Array:return t.DT_INT32;case Uint8Array:return t.DT_UINT8;case Uint16Array:return t.DT_UINT16;case Uint32Array:return t.DT_UINT32;default:return t.DT_INVALID}}function kE(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}function GE(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}var KE="1.5.6",JE="1.4.1",cc=`https://www.gstatic.com/draco/versioned/decoders/${KE}`,Rt={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},lc={[Rt.DECODER]:`${cc}/${Rt.DECODER}`,[Rt.DECODER_WASM]:`${cc}/${Rt.DECODER_WASM}`,[Rt.FALLBACK_DECODER]:`${cc}/${Rt.FALLBACK_DECODER}`,[Rt.ENCODER]:`https://raw.githubusercontent.com/google/draco/${JE}/javascript/${Rt.ENCODER}`},Fn;async function Kd(t){let e=t.modules||{};return e.draco3d?Fn=Fn||e.draco3d.createDecoderModule({}).then(r=>({draco:r})):Fn=Fn||YE(t),await Fn}async function YE(t){let e,r;switch(t.draco&&t.draco.decoderType){case"js":e=await qt(lc[Rt.FALLBACK_DECODER],"draco",t,Rt.FALLBACK_DECODER);break;case"wasm":default:[e,r]=await Promise.all([await qt(lc[Rt.DECODER],"draco",t,Rt.DECODER),await qt(lc[Rt.DECODER_WASM],"draco",t,Rt.DECODER_WASM)])}return e=e||globalThis.DracoDecoderModule,await qE(e,r)}function qE(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t({...r,onModuleLoaded:s=>n({draco:s})})})}var _i={...Hd,parse:jE};async function jE(t,e){let{draco:r}=await Kd(e),n=new In(r);try{return n.parseSync(t,e?.draco)}finally{n.destroy()}}var ZE={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},st={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},w={...ZE,...st};var hc={[st.DOUBLE]:Float64Array,[st.FLOAT]:Float32Array,[st.UNSIGNED_SHORT]:Uint16Array,[st.UNSIGNED_INT]:Uint32Array,[st.UNSIGNED_BYTE]:Uint8Array,[st.BYTE]:Int8Array,[st.SHORT]:Int16Array,[st.INT]:Int32Array},QE={DOUBLE:st.DOUBLE,FLOAT:st.FLOAT,UNSIGNED_SHORT:st.UNSIGNED_SHORT,UNSIGNED_INT:st.UNSIGNED_INT,UNSIGNED_BYTE:st.UNSIGNED_BYTE,BYTE:st.BYTE,SHORT:st.SHORT,INT:st.INT},fc="Failed to convert GL type",dt=class{static fromTypedArray(e){e=ArrayBuffer.isView(e)?e.constructor:e;for(let r in hc)if(hc[r]===e)return r;throw new Error(fc)}static fromName(e){let r=QE[e];if(!r)throw new Error(fc);return r}static getArrayType(e){switch(e){case st.UNSIGNED_SHORT_5_6_5:case st.UNSIGNED_SHORT_4_4_4_4:case st.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:let r=hc[e];if(!r)throw new Error(fc);return r}}static getByteSize(e){return dt.getArrayType(e).BYTES_PER_ELEMENT}static validate(e){return Boolean(dt.getArrayType(e))}static createTypedArray(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,s=arguments.length>3?arguments[3]:void 0;s===void 0&&(s=(r.byteLength-n)/dt.getByteSize(e));let i=dt.getArrayType(e);return new i(r,n,s)}};function Jd(t,e){if(!t)throw new Error(`math.gl assertion failed. ${e}`)}function uc(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0],r=t>>11&31,n=t>>5&63,s=t&31;return e[0]=r<<3,e[1]=n<<2,e[2]=s<<3,e}var Ew=1/256;var Rw=new Ve,xw=new m,Sw=new Ve,Cw=new Ve,Bw=new Uint8Array(1);function Yd(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:255;return us(t,0,e)/e*2-1}function qd(t){return t<0?-1:1}function jd(t,e,r,n){if(Jd(n),t<0||t>r||e<0||e>r)throw new Error(`x and y must be unsigned normalized integers between 0 and ${r}`);if(n.x=Yd(t,r),n.y=Yd(e,r),n.z=1-(Math.abs(n.x)+Math.abs(n.y)),n.z<0){let s=n.x;n.x=(1-Math.abs(n.y))*qd(s),n.y=(1-Math.abs(s))*qd(n.y)}return n.normalize()}function dc(t,e,r){return jd(t,e,255,r)}var fe=class{constructor(e,r){this.json=void 0,this.buffer=void 0,this.featuresLength=0,this._cachedTypedArrays={},this.json=e,this.buffer=r}getExtension(e){return this.json.extensions&&this.json.extensions[e]}hasProperty(e){return Boolean(this.json[e])}getGlobalProperty(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:w.UNSIGNED_INT,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,s=this.json[e];return s&&Number.isFinite(s.byteOffset)?this._getTypedArrayFromBinary(e,r,n,1,s.byteOffset):s}getPropertyArray(e,r,n){let s=this.json[e];return s&&Number.isFinite(s.byteOffset)?("componentType"in s&&(r=dt.fromName(s.componentType)),this._getTypedArrayFromBinary(e,r,n,this.featuresLength,s.byteOffset)):this._getTypedArrayFromArray(e,r,s)}getProperty(e,r,n,s,i){let o=this.json[e];if(!o)return o;let a=this.getPropertyArray(e,r,n);if(n===1)return a[s];for(let c=0;c<n;++c)i[c]=a[n*s+c];return i}_getTypedArrayFromBinary(e,r,n,s,i){let o=this._cachedTypedArrays,a=o[e];return a||(a=dt.createTypedArray(r,this.buffer.buffer,this.buffer.byteOffset+i,s*n),o[e]=a),a}_getTypedArrayFromArray(e,r,n){let s=this._cachedTypedArrays,i=s[e];return i||(i=dt.createTypedArray(r,n),s[e]=i),i}};var $E={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},tR={SCALAR:(t,e)=>t[e],VEC2:(t,e)=>[t[2*e+0],t[2*e+1]],VEC3:(t,e)=>[t[3*e+0],t[3*e+1],t[3*e+2]],VEC4:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT2:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT3:(t,e)=>[t[9*e+0],t[9*e+1],t[9*e+2],t[9*e+3],t[9*e+4],t[9*e+5],t[9*e+6],t[9*e+7],t[9*e+8]],MAT4:(t,e)=>[t[16*e+0],t[16*e+1],t[16*e+2],t[16*e+3],t[16*e+4],t[16*e+5],t[16*e+6],t[16*e+7],t[16*e+8],t[16*e+9],t[16*e+10],t[16*e+11],t[16*e+12],t[16*e+13],t[16*e+14],t[16*e+15]]},eR={SCALAR:(t,e,r)=>{e[r]=t},VEC2:(t,e,r)=>{e[2*r+0]=t[0],e[2*r+1]=t[1]},VEC3:(t,e,r)=>{e[3*r+0]=t[0],e[3*r+1]=t[1],e[3*r+2]=t[2]},VEC4:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT2:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT3:(t,e,r)=>{e[9*r+0]=t[0],e[9*r+1]=t[1],e[9*r+2]=t[2],e[9*r+3]=t[3],e[9*r+4]=t[4],e[9*r+5]=t[5],e[9*r+6]=t[6],e[9*r+7]=t[7],e[9*r+8]=t[8],e[9*r+9]=t[9]},MAT4:(t,e,r)=>{e[16*r+0]=t[0],e[16*r+1]=t[1],e[16*r+2]=t[2],e[16*r+3]=t[3],e[16*r+4]=t[4],e[16*r+5]=t[5],e[16*r+6]=t[6],e[16*r+7]=t[7],e[16*r+8]=t[8],e[16*r+9]=t[9],e[16*r+10]=t[10],e[16*r+11]=t[11],e[16*r+12]=t[12],e[16*r+13]=t[13],e[16*r+14]=t[14],e[16*r+15]=t[15]}};function Zd(t,e,r,n){let{componentType:s}=t;V(t.componentType);let i=typeof s=="string"?dt.fromName(s):s,o=$E[t.type],a=tR[t.type],c=eR[t.type];return r+=t.byteOffset,{values:dt.createTypedArray(i,e,r,o*n),type:i,size:o,unpacker:a,packer:c}}var se=t=>t!==void 0;function Qd(t,e,r){if(!e)return null;let n=t.getExtension("3DTILES_batch_table_hierarchy"),s=e.HIERARCHY;return s&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),e.extensions=e.extensions||{},e.extensions["3DTILES_batch_table_hierarchy"]=s,n=s),n?rR(n,r):null}function rR(t,e){let r,n,s,i=t.instancesLength,o=t.classes,a=t.classIds,c=t.parentCounts,l=t.parentIds,h=i;se(a.byteOffset)&&(a.componentType=defaultValue(a.componentType,GL.UNSIGNED_SHORT),a.type=AttributeType.SCALAR,s=getBinaryAccessor(a),a=s.createArrayBufferView(e.buffer,e.byteOffset+a.byteOffset,i));let f;if(se(c))for(se(c.byteOffset)&&(c.componentType=defaultValue(c.componentType,GL.UNSIGNED_SHORT),c.type=AttributeType.SCALAR,s=getBinaryAccessor(c),c=s.createArrayBufferView(e.buffer,e.byteOffset+c.byteOffset,i)),f=new Uint16Array(i),h=0,r=0;r<i;++r)f[r]=h,h+=c[r];se(l)&&se(l.byteOffset)&&(l.componentType=defaultValue(l.componentType,GL.UNSIGNED_SHORT),l.type=AttributeType.SCALAR,s=getBinaryAccessor(l),l=s.createArrayBufferView(e.buffer,e.byteOffset+l.byteOffset,h));let u=o.length;for(r=0;r<u;++r){let A=o[r].length,T=o[r].instances,x=getBinaryProperties(A,T,e);o[r].instances=combine(x,T)}let d=new Array(u).fill(0),p=new Uint16Array(i);for(r=0;r<i;++r)n=a[r],p[r]=d[n],++d[n];let _={classes:o,classIds:a,classIndexes:p,parentCounts:c,parentIndexes:f,parentIds:l};return iR(_),_}function yr(t,e,r){if(!t)return;let n=t.parentCounts;return t.parentIds?r(t,e):n>0?nR(t,e,r):sR(t,e,r)}function nR(t,e,r){let n=t.classIds,s=t.parentCounts,i=t.parentIds,o=t.parentIndexes,a=n.length,c=scratchVisited;c.length=Math.max(c.length,a);let l=++marker,h=scratchStack;for(h.length=0,h.push(e);h.length>0;){if(e=h.pop(),c[e]===l)continue;c[e]=l;let f=r(t,e);if(se(f))return f;let u=s[e],d=o[e];for(let p=0;p<u;++p){let _=i[d+p];_!==e&&h.push(_)}}return null}function sR(t,e,r){let n=!0;for(;n;){let s=r(t,e);if(se(s))return s;let i=t.parentIds[e];n=i!==e,e=i}throw new Error("traverseHierarchySingleParent")}function iR(t){let e=[],n=t.classIds.length;for(let s=0;s<n;++s)$d(t,s,stack)}function $d(t,e,r){let n=t.parentCounts,s=t.parentIds,i=t.parentIndexes,a=t.classIds.length;if(!se(s))return;assert(e<a,`Parent index ${e} exceeds the total number of instances: ${a}`),assert(r.indexOf(e)===-1,"Circular dependency detected in the batch table hierarchy."),r.push(e);let c=se(n)?n[e]:1,l=se(n)?i[e]:e;for(let h=0;h<c;++h){let f=s[l+h];f!==e&&$d(t,f,r)}r.pop(e)}function xt(t){return t!=null}var mi=(t,e)=>t,oR={HIERARCHY:!0,extensions:!0,extras:!0},tr=class{constructor(e,r,n){var s;let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};this.json=void 0,this.binary=void 0,this.featureCount=void 0,this._extensions=void 0,this._properties=void 0,this._binaryProperties=void 0,this._hierarchy=void 0,V(n>=0),this.json=e||{},this.binary=r,this.featureCount=n,this._extensions=((s=this.json)===null||s===void 0?void 0:s.extensions)||{},this._properties={};for(let o in this.json)oR[o]||(this._properties[o]=this.json[o]);this._binaryProperties=this._initializeBinaryProperties(),i["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=Qd(this,this.json,this.binary))}getExtension(e){return this.json&&this.json.extensions&&this.json.extensions[e]}memorySizeInBytes(){return 0}isClass(e,r){if(this._checkBatchId(e),V(typeof r=="string",r),this._hierarchy){let n=yr(this._hierarchy,e,(s,i)=>{let o=s.classIds[i];return s.classes[o].name===r});return xt(n)}return!1}isExactClass(e,r){return V(typeof r=="string",r),this.getExactClassName(e)===r}getExactClassName(e){if(this._checkBatchId(e),this._hierarchy){let r=this._hierarchy.classIds[e];return this._hierarchy.classes[r].name}}hasProperty(e,r){return this._checkBatchId(e),V(typeof r=="string",r),xt(this._properties[r])||this._hasPropertyInHierarchy(e,r)}getPropertyNames(e,r){this._checkBatchId(e),r=xt(r)?r:[],r.length=0;let n=Object.keys(this._properties);return r.push(...n),this._hierarchy&&this._getPropertyNamesInHierarchy(e,r),r}getProperty(e,r){if(this._checkBatchId(e),V(typeof r=="string",r),this._binaryProperties){let s=this._binaryProperties[r];if(xt(s))return this._getBinaryProperty(s,e)}let n=this._properties[r];if(xt(n))return mi(n[e],!0);if(this._hierarchy){let s=this._getHierarchyProperty(e,r);if(xt(s))return s}}setProperty(e,r,n){let s=this.featureCount;if(this._checkBatchId(e),V(typeof r=="string",r),this._binaryProperties){let o=this._binaryProperties[r];if(o){this._setBinaryProperty(o,e,n);return}}if(this._hierarchy&&this._setHierarchyProperty(this,e,r,n))return;let i=this._properties[r];xt(i)||(this._properties[r]=new Array(s),i=this._properties[r]),i[e]=mi(n,!0)}_checkBatchId(e){if(!(e>=0&&e<this.featureCount))throw new Error("batchId not in range [0, featureCount - 1].")}_getBinaryProperty(e,r){return e.unpack(e.typedArray,r)}_setBinaryProperty(e,r,n){e.pack(n,e.typedArray,r)}_initializeBinaryProperties(){let e=null;for(let r in this._properties){let n=this._properties[r],s=this._initializeBinaryProperty(r,n);s&&(e=e||{},e[r]=s)}return e}_initializeBinaryProperty(e,r){if("byteOffset"in r){let n=r;V(this.binary,`Property ${e} requires a batch table binary.`),V(n.type,`Property ${e} requires a type.`);let s=Zd(n,this.binary.buffer,this.binary.byteOffset|0,this.featureCount);return{typedArray:s.values,componentCount:s.size,unpack:s.unpacker,pack:s.packer}}return null}_hasPropertyInHierarchy(e,r){if(!this._hierarchy)return!1;let n=yr(this._hierarchy,e,(s,i)=>{let o=s.classIds[i],a=s.classes[o].instances;return xt(a[r])});return xt(n)}_getPropertyNamesInHierarchy(e,r){yr(this._hierarchy,e,(n,s)=>{let i=n.classIds[s],o=n.classes[i].instances;for(let a in o)o.hasOwnProperty(a)&&r.indexOf(a)===-1&&r.push(a)})}_getHierarchyProperty(e,r){return yr(this._hierarchy,e,(n,s)=>{let i=n.classIds[s],o=n.classes[i],a=n.classIndexes[s],c=o.instances[r];return xt(c)?xt(c.typedArray)?this._getBinaryProperty(c,a):mi(c[a],!0):null})}_setHierarchyProperty(e,r,n,s){let i=yr(this._hierarchy,r,(o,a)=>{let c=o.classIds[a],l=o.classes[c],h=o.classIndexes[a],f=l.instances[n];return xt(f)?(V(a===r,`Inherited property "${n}" is read-only.`),xt(f.typedArray)?this._setBinaryProperty(f,h,s):f[h]=mi(s,!0),!0):!1});return xt(i)}};function Ne(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=new DataView(e);if(t.magic=n.getUint32(r,!0),r+=4,t.version=n.getUint32(r,!0),r+=4,t.byteLength=n.getUint32(r,!0),r+=4,t.version!==1)throw new Error(`3D Tile Version ${t.version} not supported`);return r}var Ir=4,tp="b3dm tile in legacy format.";function Fr(t,e,r){let n=new DataView(e),s;t.header=t.header||{};let i=n.getUint32(r,!0);r+=Ir;let o=n.getUint32(r,!0);r+=Ir;let a=n.getUint32(r,!0);r+=Ir;let c=n.getUint32(r,!0);return r+=Ir,a>=570425344?(r-=Ir*2,s=i,a=o,c=0,i=0,o=0,console.warn(tp)):c>=570425344&&(r-=Ir,s=a,a=i,c=o,i=0,o=0,console.warn(tp)),t.header.featureTableJsonByteLength=i,t.header.featureTableBinaryByteLength=o,t.header.batchTableJsonByteLength=a,t.header.batchTableBinaryByteLength=c,t.header.batchLength=s,r}function Nr(t,e,r,n){return r=aR(t,e,r,n),r=cR(t,e,r,n),r}function aR(t,e,r,n){let{featureTableJsonByteLength:s,featureTableBinaryByteLength:i,batchLength:o}=t.header||{};if(t.featureTableJson={BATCH_LENGTH:o||0},s&&s>0){let a=oc(e,r,s);t.featureTableJson=JSON.parse(a)}return r+=s||0,t.featureTableBinary=new Uint8Array(e,r,i),r+=i||0,r}function cR(t,e,r,n){let{batchTableJsonByteLength:s,batchTableBinaryByteLength:i}=t.header||{};if(s&&s>0){let o=oc(e,r,s);t.batchTableJson=JSON.parse(o),r+=s,i&&i>0&&(t.batchTableBinary=new Uint8Array(e,r,i),t.batchTableBinary=new Uint8Array(t.batchTableBinary),r+=i)}return r}function pc(t,e,r){if(!e&&(!t||!t.batchIds||!r))return null;let{batchIds:n,isRGB565:s,pointCount:i=0}=t;if(n&&r){let o=new Uint8ClampedArray(i*3);for(let a=0;a<i;a++){let c=n[a],h=r.getProperty(c,"dimensions").map(f=>f*255);o[a*3]=h[0],o[a*3+1]=h[1],o[a*3+2]=h[2]}return{type:w.UNSIGNED_BYTE,value:o,size:3,normalized:!0}}if(e&&s){let o=new Uint8ClampedArray(i*3);for(let a=0;a<i;a++){let c=uc(e[a]);o[a*3]=c[0],o[a*3+1]=c[1],o[a*3+2]=c[2]}return{type:w.UNSIGNED_BYTE,value:o,size:3,normalized:!0}}return e&&e.length===i*3?{type:w.UNSIGNED_BYTE,value:e,size:3,normalized:!0}:{type:w.UNSIGNED_BYTE,value:e||new Uint8ClampedArray,size:4,normalized:!0}}var ep=new m;function rp(t,e){if(!e)return null;if(t.isOctEncoded16P){let r=new Float32Array((t.pointsLength||0)*3);for(let n=0;n<(t.pointsLength||0);n++)dc(e[n*2],e[n*2+1],ep),ep.toArray(r,n*3);return{type:w.FLOAT,size:2,value:r}}return{type:w.FLOAT,size:2,value:e}}function np(t,e,r){return t.isQuantized?r["3d-tiles"]&&r["3d-tiles"].decodeQuantizedPositions?(t.isQuantized=!1,lR(t,e)):{type:w.UNSIGNED_SHORT,value:e,size:3,normalized:!0}:e}function lR(t,e){let r=new m,n=new Float32Array(t.pointCount*3);for(let s=0;s<t.pointCount;s++)r.set(e[s*3],e[s*3+1],e[s*3+2]).scale(1/t.quantizedRange).multiply(t.quantizedVolumeScale).add(t.quantizedVolumeOffset).toArray(n,s*3);return n}async function sp(t,e,r,n,s){r=Ne(t,e,r),r=Fr(t,e,r),r=Nr(t,e,r,n),hR(t);let{featureTable:i,batchTable:o}=fR(t);return await AR(t,i,o,n,s),uR(t,i,n),dR(t,i,o),pR(t,i),r}function hR(t){t.attributes={positions:null,colors:null,normals:null,batchIds:null},t.isQuantized=!1,t.isTranslucent=!1,t.isRGB565=!1,t.isOctEncoded16P=!1}function fR(t){let e=new fe(t.featureTableJson,t.featureTableBinary),r=e.getGlobalProperty("POINTS_LENGTH");if(!Number.isFinite(r))throw new Error("POINTS_LENGTH must be defined");e.featuresLength=r,t.featuresLength=r,t.pointsLength=r,t.pointCount=r,t.rtcCenter=e.getGlobalProperty("RTC_CENTER",w.FLOAT,3);let n=gR(t,e);return{featureTable:e,batchTable:n}}function uR(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.positions){if(e.hasProperty("POSITION"))t.attributes.positions=e.getPropertyArray("POSITION",w.FLOAT,3);else if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",w.UNSIGNED_SHORT,3);if(t.isQuantized=!0,t.quantizedRange=(1<<16)-1,t.quantizedVolumeScale=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",w.FLOAT,3),!t.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(t.quantizedVolumeOffset=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",w.FLOAT,3),!t.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");t.attributes.positions=np(t,n,r)}}if(!t.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}function dR(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.colors){let n=null;e.hasProperty("RGBA")?(n=e.getPropertyArray("RGBA",w.UNSIGNED_BYTE,4),t.isTranslucent=!0):e.hasProperty("RGB")?n=e.getPropertyArray("RGB",w.UNSIGNED_BYTE,3):e.hasProperty("RGB565")&&(n=e.getPropertyArray("RGB565",w.UNSIGNED_SHORT,1),t.isRGB565=!0),t.attributes.colors=pc(t,n,r)}e.hasProperty("CONSTANT_RGBA")&&(t.constantRGBA=e.getGlobalProperty("CONSTANT_RGBA",w.UNSIGNED_BYTE,4))}function pR(t,e){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.normals){let r=null;e.hasProperty("NORMAL")?r=e.getPropertyArray("NORMAL",w.FLOAT,3):e.hasProperty("NORMAL_OCT16P")&&(r=e.getPropertyArray("NORMAL_OCT16P",w.UNSIGNED_BYTE,2),t.isOctEncoded16P=!0),t.attributes.normals=rp(t,r)}}function gR(t,e){let r=null;if(!t.batchIds&&e.hasProperty("BATCH_ID")&&(t.batchIds=e.getPropertyArray("BATCH_ID",w.UNSIGNED_SHORT,1),t.batchIds)){let n=e.getGlobalProperty("BATCH_LENGTH");if(!n)throw new Error("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");let{batchTableJson:s,batchTableBinary:i}=t;r=new tr(s,i,n)}return r}async function AR(t,e,r,n,s){let i,o,a,c=t.batchTableJson&&t.batchTableJson.extensions&&t.batchTableJson.extensions["3DTILES_draco_point_compression"];c&&(a=c.properties);let l=e.getExtension("3DTILES_draco_point_compression");if(l){o=l.properties;let f=l.byteOffset,u=l.byteLength;if(!o||!Number.isFinite(f)||!u)throw new Error("Draco properties, byteOffset, and byteLength must be defined");i=(t.featureTableBinary||[]).slice(f,f+u),t.hasPositions=Number.isFinite(o.POSITION),t.hasColors=Number.isFinite(o.RGB)||Number.isFinite(o.RGBA),t.hasNormals=Number.isFinite(o.NORMAL),t.hasBatchIds=Number.isFinite(o.BATCH_ID),t.isTranslucent=Number.isFinite(o.RGBA)}if(!i)return!0;let h={buffer:i,properties:{...o,...a},featureTableProperties:o,batchTableProperties:a,dequantizeInShader:!1};return await _R(t,h,n,s)}async function _R(t,e,r,n){if(!n)return;let s={...r,draco:{...r?.draco,extraAttributes:e.batchTableProperties||{}}};delete s["3d-tiles"];let i=await Ct(e.buffer,_i,s,n),o=i.attributes.POSITION&&i.attributes.POSITION.value,a=i.attributes.COLOR_0&&i.attributes.COLOR_0.value,c=i.attributes.NORMAL&&i.attributes.NORMAL.value,l=i.attributes.BATCH_ID&&i.attributes.BATCH_ID.value,h=o&&i.attributes.POSITION.value.quantization,f=c&&i.attributes.NORMAL.value.quantization;if(h){let d=i.POSITION.data.quantization,p=d.range;t.quantizedVolumeScale=new m(p,p,p),t.quantizedVolumeOffset=new m(d.minValues),t.quantizedRange=(1<<d.quantizationBits)-1,t.isQuantizedDraco=!0}f&&(t.octEncodedRange=(1<<i.NORMAL.data.quantization.quantizationBits)-1,t.isOctEncodedDraco=!0);let u={};if(e.batchTableProperties)for(let d of Object.keys(e.batchTableProperties))i.attributes[d]&&i.attributes[d].value&&(u[d.toLowerCase()]=i.attributes[d].value);t.attributes={positions:o,colors:pc(t,a,void 0),normals:c,batchIds:l,...u}}var gc={};ht(gc,{decode:()=>FR,name:()=>IR});function at(t,e){if(!t)throw new Error(e||"assert failed: gltf")}var Ti={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Ei={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var mR=1.33,ip=["SCALAR","VEC2","VEC3","VEC4"],TR=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],ER=new Map(TR),RR={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},xR={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},SR={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function Ri(t){return ip[t-1]||ip[0]}function Or(t){let e=ER.get(t.constructor);if(!e)throw new Error("Illegal typed array");return e}function br(t,e){let r=SR[t.componentType],n=RR[t.type],s=xR[t.componentType],i=t.count*n,o=t.count*n*s;at(o>=0&&o<=e.byteLength);let a=Ei[t.componentType],c=Ti[t.type];return{ArrayType:r,length:i,byteLength:o,componentByteSize:a,numberOfComponentsInElement:c}}function Nn(t){let{images:e,bufferViews:r}=t;e=e||[],r=r||[];let n=e.map(o=>o.bufferView);r=r.filter(o=>!n.includes(o));let s=r.reduce((o,a)=>o+a.byteLength,0),i=e.reduce((o,a)=>{let{width:c,height:l}=a.image;return o+c*l},0);return s+Math.ceil(4*i*mR)}function op(t,e,r){let n=t.bufferViews[r];at(n);let s=n.buffer,i=e[s];at(i);let o=(n.byteOffset||0)+i.byteOffset;return new Uint8Array(i.arrayBuffer,o,n.byteLength)}function ap(t,e,r){var n,s;let i=typeof r=="number"?(n=t.accessors)===null||n===void 0?void 0:n[r]:r;if(!i)throw new Error(`No gltf accessor ${JSON.stringify(r)}`);let o=(s=t.bufferViews)===null||s===void 0?void 0:s[i.bufferView||0];if(!o)throw new Error(`No gltf buffer view for accessor ${o}`);let{arrayBuffer:a,byteOffset:c}=e[o.buffer],l=(c||0)+(i.byteOffset||0)+(o.byteOffset||0),{ArrayType:h,length:f,componentByteSize:u,numberOfComponentsInElement:d}=br(i,o),p=u*d,_=o.byteStride||p;if(typeof o.byteStride>"u"||o.byteStride===p)return new h(a,l,f);let A=new h(f);for(let T=0;T<i.count;T++){let x=new h(a,l+T*_,d);A.set(x,T*d)}return A}function CR(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}var K=class{constructor(e){this.gltf=void 0,this.sourceBuffers=void 0,this.byteLength=void 0,this.gltf={json:e?.json||CR(),buffers:e?.buffers||[],images:e?.images||[]},this.sourceBuffers=[],this.byteLength=0,this.gltf.buffers&&this.gltf.buffers[0]&&(this.byteLength=this.gltf.buffers[0].byteLength,this.sourceBuffers=[this.gltf.buffers[0]])}get json(){return this.gltf.json}getApplicationData(e){return this.json[e]}getExtraData(e){return(this.json.extras||{})[e]}hasExtension(e){let r=this.getUsedExtensions().find(s=>s===e),n=this.getRequiredExtensions().find(s=>s===e);return typeof r=="string"||typeof n=="string"}getExtension(e){let r=this.getUsedExtensions().find(s=>s===e),n=this.json.extensions||{};return r?n[e]:null}getRequiredExtension(e){return this.getRequiredExtensions().find(n=>n===e)?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getRemovedExtensions(){return this.json.extensionsRemoved||[]}getObjectExtension(e,r){return(e.extensions||{})[r]}getScene(e){return this.getObject("scenes",e)}getNode(e){return this.getObject("nodes",e)}getSkin(e){return this.getObject("skins",e)}getMesh(e){return this.getObject("meshes",e)}getMaterial(e){return this.getObject("materials",e)}getAccessor(e){return this.getObject("accessors",e)}getTexture(e){return this.getObject("textures",e)}getSampler(e){return this.getObject("samplers",e)}getImage(e){return this.getObject("images",e)}getBufferView(e){return this.getObject("bufferViews",e)}getBuffer(e){return this.getObject("buffers",e)}getObject(e,r){if(typeof r=="object")return r;let n=this.json[e]&&this.json[e][r];if(!n)throw new Error(`glTF file error: Could not find ${e}[${r}]`);return n}getTypedArrayForBufferView(e){e=this.getBufferView(e);let r=e.buffer,n=this.gltf.buffers[r];at(n);let s=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,s,e.byteLength)}getTypedArrayForAccessor(e){let r=this.getAccessor(e);return ap(this.gltf.json,this.gltf.buffers,r)}getTypedArrayForImageData(e){e=this.getAccessor(e);let r=this.getBufferView(e.bufferView),s=this.getBuffer(r.buffer).data,i=r.byteOffset||0;return new Uint8Array(s,i,r.byteLength)}addApplicationData(e,r){return this.json[e]=r,this}addExtraData(e,r){return this.json.extras=this.json.extras||{},this.json.extras[e]=r,this}addObjectExtension(e,r,n){return e.extensions=e.extensions||{},e.extensions[r]=n,this.registerUsedExtension(r),this}setObjectExtension(e,r,n){let s=e.extensions||{};s[r]=n}removeObjectExtension(e,r){let n=e?.extensions||{};if(n[r]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let s=this.json.extensionsRemoved;s.includes(r)||s.push(r)}delete n[r]}addExtension(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return at(r),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=r,this.registerUsedExtension(e),r}addRequiredExtension(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return at(r),this.addExtension(e,r),this.registerRequiredExtension(e),r}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(r=>r===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(r=>r===e)||this.json.extensionsRequired.push(e)}removeExtension(e){var r;if((r=this.json.extensions)!==null&&r!==void 0&&r[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let n=this.json.extensionsRemoved;n.includes(e)||n.push(e)}this.json.extensions&&delete this.json.extensions[e],this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e)}setDefaultScene(e){this.json.scene=e}addScene(e){let{nodeIndices:r}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:r}),this.json.scenes.length-1}addNode(e){let{meshIndex:r,matrix:n}=e;this.json.nodes=this.json.nodes||[];let s={mesh:r};return n&&(s.matrix=n),this.json.nodes.push(s),this.json.nodes.length-1}addMesh(e){let{attributes:r,indices:n,material:s,mode:i=4}=e,a={primitives:[{attributes:this._addAttributes(r),mode:i}]};if(n){let c=this._addIndices(n);a.primitives[0].indices=c}return Number.isFinite(s)&&(a.primitives[0].material=s),this.json.meshes=this.json.meshes||[],this.json.meshes.push(a),this.json.meshes.length-1}addPointCloud(e){let n={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(n),this.json.meshes.length-1}addImage(e,r){let n=He(e),s=r||n?.mimeType,o={bufferView:this.addBufferView(e),mimeType:s};return this.json.images=this.json.images||[],this.json.images.push(o),this.json.images.length-1}addBufferView(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.byteLength,s=e.byteLength;at(Number.isFinite(s)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);let i={buffer:r,byteOffset:n,byteLength:s};return this.byteLength+=Ae(s,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(i),this.json.bufferViews.length-1}addAccessor(e,r){let n={bufferView:e,type:Ri(r.size),componentType:r.componentType,count:r.count,max:r.max,min:r.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{size:3},n=this.addBufferView(e),s={min:r.min,max:r.max};(!s.min||!s.max)&&(s=this._getAccessorMinMax(e,r.size));let i={size:r.size,componentType:Or(e),count:Math.round(e.length/r.size),min:s.min,max:s.max};return this.addAccessor(n,Object.assign(i,r))}addTexture(e){let{imageIndex:r}=e,n={source:r};return this.json.textures=this.json.textures||[],this.json.textures.push(n),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){var e,r;this.gltf.buffers=[];let n=this.byteLength,s=new ArrayBuffer(n),i=new Uint8Array(s),o=0;for(let a of this.sourceBuffers||[])o=So(a,i,o);(e=this.json)!==null&&e!==void 0&&(r=e.buffers)!==null&&r!==void 0&&r[0]?this.json.buffers[0].byteLength=n:this.json.buffers=[{byteLength:n}],this.gltf.binary=s,this.sourceBuffers=[s]}_removeStringFromArray(e,r){let n=!0;for(;n;){let s=e.indexOf(r);s>-1?e.splice(s,1):n=!1}}_addAttributes(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={};for(let n in e){let s=e[n],i=this._getGltfAttributeName(n),o=this.addBinaryBuffer(s.value,s);r[i]=o}return r}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.toLowerCase()){case"position":case"positions":case"vertices":return"POSITION";case"normal":case"normals":return"NORMAL";case"color":case"colors":return"COLOR_0";case"texcoord":case"texcoords":return"TEXCOORD_0";default:return e}}_getAccessorMinMax(e,r){let n={min:null,max:null};if(e.length<r)return n;n.min=[],n.max=[];let s=e.subarray(0,r);for(let i of s)n.min.push(i),n.max.push(i);for(let i=r;i<e.length;i+=r)for(let o=0;o<r;o++)n.min[0+o]=Math.min(n.min[0+o],e[i+o]),n.max[0+o]=Math.max(n.max[0+o],e[i+o]);return n}};function cp(t){return(t%1+1)%1}var lp={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},BR={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},hp={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function On(t,e){return hp[e]*lp[t]}function Pr(t,e,r,n){if(r!=="UINT8"&&r!=="UINT16"&&r!=="UINT32"&&r!=="UINT64")return null;let s=t.getTypedArrayForBufferView(e),i=Dr(s,"SCALAR",r,n+1);return i instanceof BigInt64Array||i instanceof BigUint64Array?null:i}function Dr(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,s=lp[e],i=BR[r],o=hp[r],a=n*s,c=a*o,l=t.buffer,h=t.byteOffset;return h%o!==0&&(l=new Uint8Array(l).slice(h,h+c).buffer,h=0),new i(l,h,a)}function wr(t,e,r){var n,s;let i=`TEXCOORD_${e.texCoord||0}`,o=r.attributes[i],a=t.getTypedArrayForAccessor(o),c=t.gltf.json,l=e.index,h=(n=c.textures)===null||n===void 0||(s=n[l])===null||s===void 0?void 0:s.source;if(typeof h<"u"){var f,u,d;let p=(f=c.images)===null||f===void 0||(u=f[h])===null||u===void 0?void 0:u.mimeType,_=(d=t.gltf.images)===null||d===void 0?void 0:d[h];if(_&&typeof _.width<"u"){let A=[];for(let T=0;T<a.length;T+=2){let x=MR(_,p,a,T,e.channels);A.push(x)}return A}}return[]}function xi(t,e,r,n,s){if(!(r!=null&&r.length))return;let i=[];for(let h of r){let f=n.findIndex(u=>u===h);f===-1&&(f=n.push(h)-1),i.push(f)}let o=new Uint32Array(i),a=t.gltf.buffers.push({arrayBuffer:o.buffer,byteOffset:o.byteOffset,byteLength:o.byteLength})-1,c=t.addBufferView(o,a,0),l=t.addAccessor(c,{size:1,componentType:Or(o),count:o.length});s.attributes[e]=l}function MR(t,e,r,n){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:[0],i={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},o=r[n],a=r[n+1],c=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(c=4);let l=yR(o,a,t,c),h=0;for(let f of s){let u=typeof f=="number"?Object.values(i)[f]:i[f],d=l+u.offset,p=en(t);if(p.data.length<=d)throw new Error(`${p.data.length} <= ${d}`);let _=p.data[d];h|=_<<u.shift}return h}function yR(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,s=r.width,i=cp(t)*(s-1),o=Math.round(i),a=r.height,c=cp(e)*(a-1),l=Math.round(c),h=r.components?r.components:n;return(l*s+o)*h}function Si(t,e,r,n,s){let i=[];for(let o=0;o<e;o++){let a=r[o],c=r[o+1]-r[o];if(c+a>n)break;let l=a/s,h=c/s;i.push(t.slice(l,l+h))}return i}function Ci(t,e,r){let n=[];for(let s=0;s<e;s++){let i=s*r;n.push(t.slice(i,i+r))}return n}function Bi(t,e,r,n){if(r)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){let s=[],i=new TextDecoder("utf8"),o=0;for(let a=0;a<t;a++){let c=n[a+1]-n[a];if(c+o<=e.length){let l=e.subarray(o,c+o),h=i.decode(l);s.push(h),o+=c}}return s}return[]}var fp="EXT_mesh_features",IR=fp;async function FR(t,e){let r=new K(t);NR(r,e)}function NR(t,e){let r=t.gltf.json;if(r.meshes)for(let n of r.meshes)for(let s of n.primitives)OR(t,s,e)}function OR(t,e,r){var n,s;if(!(r!=null&&(n=r.gltf)!==null&&n!==void 0&&n.loadBuffers))return;let i=(s=e.extensions)===null||s===void 0?void 0:s[fp],o=i?.featureIds;if(o)for(let c of o){var a;let l;if(typeof c.attribute<"u"){let h=`_FEATURE_ID_${c.attribute}`,f=e.attributes[h];l=t.getTypedArrayForAccessor(f)}else typeof c.texture<"u"&&r!==null&&r!==void 0&&(a=r.gltf)!==null&&a!==void 0&&a.loadImages?l=wr(t,c.texture,e):l=[];c.data=l}}var mc={};ht(mc,{decode:()=>PR,name:()=>bR});var Ac="EXT_structural_metadata",bR=Ac;async function PR(t,e){let r=new K(t);DR(r,e)}function DR(t,e){var r,n;if(!((r=e.gltf)!==null&&r!==void 0&&r.loadBuffers))return;let s=t.getExtension(Ac);s&&((n=e.gltf)!==null&&n!==void 0&&n.loadImages&&wR(t,s),vR(t,s))}function wR(t,e){let r=e.propertyTextures,n=t.gltf.json;if(r&&n.meshes)for(let s of n.meshes)for(let i of s.primitives)LR(t,r,i,e)}function vR(t,e){let r=e.schema;if(!r)return;let n=r.classes,s=e.propertyTables;if(n&&s)for(let i in n){let o=UR(s,i);o&&VR(t,r,o)}}function UR(t,e){for(let r of t)if(r.class===e)return r;return null}function LR(t,e,r,n){var s;if(!e)return;let i=(s=r.extensions)===null||s===void 0?void 0:s[Ac],o=i?.propertyTextures;if(o)for(let a of o){let c=e[a];HR(t,c,r,n)}}function HR(t,e,r,n){if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);let s=e.class;for(let o in e.properties){var i;let a=`${s}_${o}`,c=(i=e.properties)===null||i===void 0?void 0:i[o];if(!c)continue;c.data||(c.data=[]);let l=c.data,h=wr(t,c,r);h!==null&&(xi(t,a,h,l,r),c.data=l,n.dataAttributeNames.push(a))}}function VR(t,e,r){var n;let s=(n=e.classes)===null||n===void 0?void 0:n[r.class];if(!s)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let i=r.count;for(let a in s.properties){var o;let c=s.properties[a],l=(o=r.properties)===null||o===void 0?void 0:o[a];if(l){let h=XR(t,e,c,i,l);l.data=h}}}function XR(t,e,r,n,s){let i=[],o=s.values,a=t.getTypedArrayForBufferView(o),c=WR(t,r,s,n),l=zR(t,s,n);switch(r.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{i=kR(r,n,a,c);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${r.type}`);case"STRING":{i=Bi(n,a,c,l);break}case"ENUM":{i=GR(e,r,n,a,c);break}default:throw new Error(`Unknown classProperty type ${r.type}`)}return i}function WR(t,e,r,n){return e.array&&typeof e.count>"u"&&typeof r.arrayOffsets<"u"?Pr(t,r.arrayOffsets,r.arrayOffsetType||"UINT32",n):null}function zR(t,e,r){return typeof e.stringOffsets<"u"?Pr(t,e.stringOffsets,e.stringOffsetType||"UINT32",r):null}function kR(t,e,r,n){let s=t.array,i=t.count,o=On(t.type,t.componentType),a=r.byteLength/o,c;return t.componentType?c=Dr(r,t.type,t.componentType,a):c=r,s?n?Si(c,e,n,r.length,o):i?Ci(c,e,i):[]:c}function GR(t,e,r,n,s){var i;let o=e.enumType;if(!o)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");let a=(i=t.enums)===null||i===void 0?void 0:i[o];if(!a)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${o}`);let c=a.valueType||"UINT16",l=On(e.type,c),h=n.byteLength/l,f=Dr(n,e.type,c,h);if(f||(f=n),e.array){if(s)return KR({valuesData:f,numberOfElements:r,arrayOffsets:s,valuesDataBytesLength:n.length,elementSize:l,enumEntry:a});let u=e.count;return u?JR(f,r,u,a):[]}return _c(f,0,r,a)}function KR(t){let{valuesData:e,numberOfElements:r,arrayOffsets:n,valuesDataBytesLength:s,elementSize:i,enumEntry:o}=t,a=[];for(let c=0;c<r;c++){let l=n[c],h=n[c+1]-n[c];if(h+l>s)break;let f=l/i,u=h/i,d=_c(e,f,u,o);a.push(d)}return a}function JR(t,e,r,n){let s=[];for(let i=0;i<e;i++){let o=r*i,a=_c(t,o,r,n);s.push(a)}return s}function _c(t,e,r,n){let s=[];for(let i=0;i<r;i++)if(t instanceof BigInt64Array||t instanceof BigUint64Array)s.push("");else{let o=t[e+i],a=YR(n,o);a?s.push(a.name):s.push("")}return s}function YR(t,e){for(let r of t.values)if(r.value===e)return r;return null}var Tc={};ht(Tc,{decode:()=>jR,name:()=>qR});var up="EXT_feature_metadata",qR=up;async function jR(t,e){let r=new K(t);ZR(r,e)}function ZR(t,e){var r,n;if(!((r=e.gltf)!==null&&r!==void 0&&r.loadBuffers))return;let s=t.getExtension(up);s&&((n=e.gltf)!==null&&n!==void 0&&n.loadImages&&QR(t,s),$R(t,s))}function QR(t,e){let r=e.schema;if(!r)return;let n=r.classes,{featureTextures:s}=e;if(n&&s)for(let i in n){let o=n[i],a=ex(s,i);a&&nx(t,a,o)}}function $R(t,e){let r=e.schema;if(!r)return;let n=r.classes,s=e.featureTables;if(n&&s)for(let i in n){let o=tx(s,i);o&&rx(t,r,o)}}function tx(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function ex(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function rx(t,e,r){var n;if(!r.class)return;let s=(n=e.classes)===null||n===void 0?void 0:n[r.class];if(!s)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let i=r.count;for(let a in s.properties){var o;let c=s.properties[a],l=(o=r.properties)===null||o===void 0?void 0:o[a];if(l){let h=sx(t,e,c,i,l);l.data=h}}}function nx(t,e,r){let n=e.class;for(let i in r.properties){var s;let o=e==null||(s=e.properties)===null||s===void 0?void 0:s[i];if(o){let a=lx(t,o,n);o.data=a}}}function sx(t,e,r,n,s){let i=[],o=s.bufferView,a=t.getTypedArrayForBufferView(o),c=ix(t,r,s,n),l=ox(t,r,s,n);return r.type==="STRING"||r.componentType==="STRING"?i=Bi(n,a,c,l):ax(r)&&(i=cx(r,n,a,c)),i}function ix(t,e,r,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof r.arrayOffsetBufferView<"u"?Pr(t,r.arrayOffsetBufferView,r.offsetType||"UINT32",n):null}function ox(t,e,r,n){return typeof r.stringOffsetBufferView<"u"?Pr(t,r.stringOffsetBufferView,r.offsetType||"UINT32",n):null}function ax(t){let e=["UINT8","INT16","UINT16","INT32","UINT32","INT64","UINT64","FLOAT32","FLOAT64"];return e.includes(t.type)||typeof t.componentType<"u"&&e.includes(t.componentType)}function cx(t,e,r,n){let s=t.type==="ARRAY",i=t.componentCount,o="SCALAR",a=t.componentType||t.type,c=On(o,a),l=r.byteLength/c,h=Dr(r,o,a,l);return s?n?Si(h,e,n,r.length,c):i?Ci(h,e,i):[]:h}function lx(t,e,r){let n=t.gltf.json;if(!n.meshes)return[];let s=[];for(let i of n.meshes)for(let o of i.primitives)hx(t,r,e,s,o);return s}function hx(t,e,r,n,s){let i={channels:r.channels,...r.texture},o=wr(t,i,s);o&&xi(t,e,o,n,s)}var dp="4.1.0";var vr=!0,pp=1735152710,xc=12,Mi=8,fx=1313821514,ux=5130562,dx=0,px=0,gx=1;function Ax(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return`${String.fromCharCode(t.getUint8(e+0))}${String.fromCharCode(t.getUint8(e+1))}${String.fromCharCode(t.getUint8(e+2))}${String.fromCharCode(t.getUint8(e+3))}`}function gp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=new DataView(t),{magic:s=pp}=r,i=n.getUint32(e,!1);return i===s||i===pp}function Ap(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},s=new DataView(e),i=Ax(s,r+0),o=s.getUint32(r+4,vr),a=s.getUint32(r+8,vr);switch(Object.assign(t,{header:{byteOffset:r,byteLength:a,hasBinChunk:!1},type:i,version:o,json:{},binChunks:[]}),r+=xc,t.version){case 1:return _x(t,s,r);case 2:return mx(t,s,r,n={});default:throw new Error(`Invalid GLB version ${t.version}. Only supports version 1 and 2.`)}}function _x(t,e,r){V(t.header.byteLength>xc+Mi);let n=e.getUint32(r+0,vr),s=e.getUint32(r+4,vr);return r+=Mi,V(s===dx),Ec(t,e,r,n),r+=n,r+=Rc(t,e,r,t.header.byteLength),r}function mx(t,e,r,n){return V(t.header.byteLength>xc+Mi),Tx(t,e,r,n),r+t.header.byteLength}function Tx(t,e,r,n){for(;r+8<=t.header.byteLength;){let s=e.getUint32(r+0,vr),i=e.getUint32(r+4,vr);switch(r+=Mi,i){case fx:Ec(t,e,r,s);break;case ux:Rc(t,e,r,s);break;case px:n.strict||Ec(t,e,r,s);break;case gx:n.strict||Rc(t,e,r,s);break;default:break}r+=Ae(s,4)}return r}function Ec(t,e,r,n){let s=new Uint8Array(e.buffer,r,n),o=new TextDecoder("utf8").decode(s);return t.json=JSON.parse(o),Ae(n,4)}function Rc(t,e,r,n){return t.header.hasBinChunk=!0,t.binChunks.push({byteOffset:r,byteLength:n,arrayBuffer:e.buffer}),Ae(n,4)}function Sc(t,e){if(t.startsWith("data:")||t.startsWith("http:")||t.startsWith("https:"))return t;let n=e.baseUri||e.uri;if(!n)throw new Error(`'baseUri' must be provided to resolve relative url ${t}`);return n.substr(0,n.lastIndexOf("/")+1)+t}var Bc={};ht(Bc,{decode:()=>Ox,name:()=>Nx});var Ex="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",Rx="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",xx=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),Sx=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]),Cx={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},Bx={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function _p(t,e,r,n,s){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"NONE",o=await Mx();Fx(o,o.exports[Bx[s]],t,e,r,n,o.exports[Cx[i||"NONE"]])}var Cc;async function Mx(){return Cc||(Cc=yx()),Cc}async function yx(){let t=Ex;WebAssembly.validate(xx)&&(t=Rx,console.log("Warning: meshopt_decoder is using experimental SIMD support"));let e=await WebAssembly.instantiate(Ix(t),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function Ix(t){let e=new Uint8Array(t.length);for(let n=0;n<t.length;++n){let s=t.charCodeAt(n);e[n]=s>96?s-71:s>64?s-65:s>47?s+4:s>46?63:62}let r=0;for(let n=0;n<t.length;++n)e[r++]=e[n]<60?Sx[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,r)}function Fx(t,e,r,n,s,i,o){let a=t.exports.sbrk,c=n+3&-4,l=a(c*s),h=a(i.length),f=new Uint8Array(t.exports.memory.buffer);f.set(i,h);let u=e(l,n,s,h,i.length);if(u===0&&o&&o(l,c,s),r.set(f.subarray(l,l+n*s)),a(l-a(0)),u!==0)throw new Error(`Malformed buffer data: ${u}`)}var yi="EXT_meshopt_compression",Nx=yi;async function Ox(t,e){var r,n;let s=new K(t);if(!(e!=null&&(r=e.gltf)!==null&&r!==void 0&&r.decompressMeshes)||!((n=e.gltf)!==null&&n!==void 0&&n.loadBuffers))return;let i=[];for(let o of t.json.bufferViews||[])i.push(bx(s,o));await Promise.all(i),s.removeExtension(yi)}async function bx(t,e){let r=t.getObjectExtension(e,yi);if(r){let{byteOffset:n=0,byteLength:s=0,byteStride:i,count:o,mode:a,filter:c="NONE",buffer:l}=r,h=t.gltf.buffers[l],f=new Uint8Array(h.arrayBuffer,h.byteOffset+n,s),u=new Uint8Array(t.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);await _p(u,o,i,f,a,c),t.removeObjectExtension(e,yi)}}var Mc={};ht(Mc,{name:()=>Px,preprocess:()=>Dx});var Ur="EXT_texture_webp",Px=Ur;function Dx(t,e){let r=new K(t);if(!wo("image/webp")){if(r.getRequiredExtensions().includes(Ur))throw new Error(`gltf: Required extension ${Ur} not supported by browser`);return}let{json:n}=r;for(let s of n.textures||[]){let i=r.getObjectExtension(s,Ur);i&&(s.source=i.source),r.removeObjectExtension(s,Ur)}r.removeExtension(Ur)}var yc={};ht(yc,{name:()=>wx,preprocess:()=>vx});var Ii="KHR_texture_basisu",wx=Ii;function vx(t,e){let r=new K(t),{json:n}=r;for(let s of n.textures||[]){let i=r.getObjectExtension(s,Ii);i&&(s.source=i.source,r.removeObjectExtension(s,Ii))}r.removeExtension(Ii)}var Fc={};ht(Fc,{decode:()=>Xx,encode:()=>Wx,name:()=>Hx,preprocess:()=>Vx});function mp(t){let e={};for(let r in t){let n=t[r];if(r!=="indices"){let s=Ic(n);e[r]=s}}return e}function Ic(t){let{buffer:e,size:r,count:n}=Ux(t);return{value:e,size:r,byteOffset:0,count:n,type:Ri(r),componentType:Or(e)}}function Ux(t){let e=t,r=1,n=0;return t&&t.value&&(e=t.value,r=t.size||1),e&&(ArrayBuffer.isView(e)||(e=Lx(e,Float32Array)),n=e.length/r),{buffer:e,size:r,count:n}}function Lx(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return t?Array.isArray(t)?new e(t):r&&!(t instanceof e)?new e(t):t:null}var Oe="KHR_draco_mesh_compression",Hx=Oe;function Vx(t,e,r){let n=new K(t);for(let s of Tp(n))n.getObjectExtension(s,Oe)}async function Xx(t,e,r){var n;if(!(e!=null&&(n=e.gltf)!==null&&n!==void 0&&n.decompressMeshes))return;let s=new K(t),i=[];for(let o of Tp(s))s.getObjectExtension(o,Oe)&&i.push(zx(s,o,e,r));await Promise.all(i),s.removeExtension(Oe)}function Wx(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=new K(t);for(let n of r.json.meshes||[])kx(n,e),r.addRequiredExtension(Oe)}async function zx(t,e,r,n){let s=t.getObjectExtension(e,Oe);if(!s)return;let i=t.getTypedArrayForBufferView(s.bufferView),o=De(i.buffer,i.byteOffset),a={...r};delete a["3d-tiles"];let c=await Ct(o,_i,a,n),l=mp(c.attributes);for(let[h,f]of Object.entries(l))if(h in e.attributes){let u=e.attributes[h],d=t.getAccessor(u);d!=null&&d.min&&d!==null&&d!==void 0&&d.max&&(f.min=d.min,f.max=d.max)}e.attributes=l,c.indices&&(e.indices=Ic(c.indices)),t.removeObjectExtension(e,Oe),Gx(e)}function kx(t,e){var r;let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:4,s=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;if(!s.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");let o=s.DracoWriter.encodeSync({attributes:t}),a=i==null||(r=i.parseSync)===null||r===void 0?void 0:r.call(i,{attributes:t}),c=s._addFauxAttributes(a.attributes),l=s.addBufferView(o);return{primitives:[{attributes:c,mode:n,extensions:{[Oe]:{bufferView:l,attributes:c}}}]}}function Gx(t){if(!t.attributes&&Object.keys(t.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*Tp(t){for(let e of t.json.meshes||[])for(let r of e.primitives)yield r}var Oc={};ht(Oc,{decode:()=>qx,name:()=>Kx});var Nc="KHR_texture_transform",Kx=Nc,Fi=new m,Jx=new z,Yx=new z;async function qx(t,e){var r;if(!new K(t).hasExtension(Nc)||!((r=e.gltf)!==null&&r!==void 0&&r.loadBuffers))return;let i=t.json.materials||[];for(let o=0;o<i.length;o++)jx(o,t)}function jx(t,e){var r,n,s;let i=[],o=(r=e.json.materials)===null||r===void 0?void 0:r[t],a=o==null||(n=o.pbrMetallicRoughness)===null||n===void 0?void 0:n.baseColorTexture;a&&bn(e,t,a,i);let c=o?.emissiveTexture;c&&bn(e,t,c,i);let l=o?.normalTexture;l&&bn(e,t,l,i);let h=o?.occlusionTexture;h&&bn(e,t,h,i);let f=o==null||(s=o.pbrMetallicRoughness)===null||s===void 0?void 0:s.metallicRoughnessTexture;f&&bn(e,t,f,i)}function bn(t,e,r,n){let s=Zx(r,n);if(!s)return;let i=t.json.meshes||[];for(let o of i)for(let a of o.primitives){let c=a.material;Number.isFinite(c)&&e===c&&Qx(t,a,s)}}function Zx(t,e){var r;let n=(r=t.extensions)===null||r===void 0?void 0:r[Nc],{texCoord:s=0}=t,{texCoord:i=s}=n;if(!(e.findIndex(a=>{let[c,l]=a;return c===s&&l===i})!==-1)){let a=eS(n);return s!==i&&(t.texCoord=i),e.push([s,i]),{originalTexCoord:s,texCoord:i,matrix:a}}return null}function Qx(t,e,r){let{originalTexCoord:n,texCoord:s,matrix:i}=r,o=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(o)){var a;let l=(a=t.json.accessors)===null||a===void 0?void 0:a[o];if(l&&l.bufferView){var c;let h=(c=t.json.bufferViews)===null||c===void 0?void 0:c[l.bufferView];if(h){let{arrayBuffer:f,byteOffset:u}=t.buffers[h.buffer],d=(u||0)+(l.byteOffset||0)+(h.byteOffset||0),{ArrayType:p,length:_}=br(l,h),A=Ei[l.componentType],T=Ti[l.type],x=h.byteStride||A*T,R=new Float32Array(_);for(let S=0;S<l.count;S++){let B=new p(f,d+S*x,2);Fi.set(B[0],B[1],1),Fi.transformByMatrix3(i),R.set([Fi[0],Fi[1]],S*T)}n===s?$x(l,h,t.buffers,R):tS(s,l,e,t,R)}}}}function $x(t,e,r,n){t.componentType=5126,r.push({arrayBuffer:n.buffer,byteOffset:0,byteLength:n.buffer.byteLength}),e.buffer=r.length-1,e.byteLength=n.buffer.byteLength,e.byteOffset=0,delete e.byteStride}function tS(t,e,r,n,s){n.buffers.push({arrayBuffer:s.buffer,byteOffset:0,byteLength:s.buffer.byteLength});let i=n.json.bufferViews;if(!i)return;i.push({buffer:n.buffers.length-1,byteLength:s.buffer.byteLength,byteOffset:0});let o=n.json.accessors;o&&(o.push({bufferView:i?.length-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),r.attributes[`TEXCOORD_${t}`]=o.length-1)}function eS(t){let{offset:e=[0,0],rotation:r=0,scale:n=[1,1]}=t,s=new z().set(1,0,0,0,1,0,e[0],e[1],1),i=Jx.set(Math.cos(r),Math.sin(r),0,-Math.sin(r),Math.cos(r),0,0,0,1),o=Yx.set(n[0],0,0,0,n[1],0,0,0,1);return s.multiplyRight(i).multiplyRight(o)}var bc={};ht(bc,{decode:()=>nS,encode:()=>sS,name:()=>rS});var er="KHR_lights_punctual",rS=er;async function nS(t){let e=new K(t),{json:r}=e,n=e.getExtension(er);n&&(e.json.lights=n.lights,e.removeExtension(er));for(let s of r.nodes||[]){let i=e.getObjectExtension(s,er);i&&(s.light=i.light),e.removeObjectExtension(s,er)}}async function sS(t){let e=new K(t),{json:r}=e;if(r.lights){let n=e.addExtension(er);at(!n.lights),n.lights=r.lights,delete r.lights}if(e.json.lights){for(let n of e.json.lights){let s=n.node;e.addObjectExtension(s,er,n)}delete e.json.lights}}var Pc={};ht(Pc,{decode:()=>oS,encode:()=>aS,name:()=>iS});var Pn="KHR_materials_unlit",iS=Pn;async function oS(t){let e=new K(t),{json:r}=e;for(let n of r.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,Pn);e.removeExtension(Pn)}function aS(t){let e=new K(t),{json:r}=e;if(e.materials)for(let n of r.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,Pn,{}),e.addExtension(Pn))}var Dc={};ht(Dc,{decode:()=>lS,encode:()=>hS,name:()=>cS});var Dn="KHR_techniques_webgl",cS=Dn;async function lS(t){let e=new K(t),{json:r}=e,n=e.getExtension(Dn);if(n){let s=fS(n,e);for(let i of r.materials||[]){let o=e.getObjectExtension(i,Dn);o&&(i.technique=Object.assign({},o,s[o.technique]),i.technique.values=uS(i.technique,e)),e.removeObjectExtension(i,Dn)}e.removeExtension(Dn)}}async function hS(t,e){}function fS(t,e){let{programs:r=[],shaders:n=[],techniques:s=[]}=t,i=new TextDecoder;return n.forEach(o=>{if(Number.isFinite(o.bufferView))o.code=i.decode(e.getTypedArrayForBufferView(o.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),r.forEach(o=>{o.fragmentShader=n[o.fragmentShader],o.vertexShader=n[o.vertexShader]}),s.forEach(o=>{o.program=r[o.program]}),s}function uS(t,e){let r=Object.assign({},t.values);return Object.keys(t.uniforms||{}).forEach(n=>{t.uniforms[n].value&&!(n in r)&&(r[n]=t.uniforms[n].value)}),Object.keys(r).forEach(n=>{typeof r[n]=="object"&&r[n].index!==void 0&&(r[n].texture=e.getTexture(r[n].index))}),r}var Ep=[mc,gc,Bc,Mc,yc,Fc,bc,Pc,Dc,Oc,Tc];function Rp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,n=Ep.filter(i=>Sp(i.name,e));for(let i of n){var s;(s=i.preprocess)===null||s===void 0||s.call(i,t,e,r)}}async function xp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,n=Ep.filter(i=>Sp(i.name,e));for(let i of n){var s;await((s=i.decode)===null||s===void 0?void 0:s.call(i,t,e,r))}}function Sp(t,e){var r;let n=(e==null||(r=e.gltf)===null||r===void 0?void 0:r.excludeExtensions)||{};return!(t in n&&!n[t])}var wc="KHR_binary_glTF";function Cp(t){let e=new K(t),{json:r}=e;for(let n of r.images||[]){let s=e.getObjectExtension(n,wc);s&&Object.assign(n,s),e.removeObjectExtension(n,wc)}r.buffers&&r.buffers[0]&&delete r.buffers[0].uri,e.removeExtension(wc)}var Bp={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},pS={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"},vc=class{constructor(){this.idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}},this.json=void 0}normalize(e,r){this.json=e.json;let n=e.json;switch(n.asset&&n.asset.version){case"2.0":return;case void 0:case"1.0":break;default:console.warn(`glTF: Unknown version ${n.asset.version}`);return}if(!r.normalize)throw new Error("glTF v1 is not supported.");console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail."),this._addAsset(n),this._convertTopLevelObjectsToArrays(n),Cp(e),this._convertObjectIdsToArrayIndices(n),this._updateObjects(n),this._updateMaterial(n)}_addAsset(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays(e){for(let r in Bp)this._convertTopLevelObjectToArray(e,r)}_convertTopLevelObjectToArray(e,r){let n=e[r];if(!(!n||Array.isArray(n))){e[r]=[];for(let s in n){let i=n[s];i.id=i.id||s;let o=e[r].length;e[r].push(i),this.idToIndexMap[r][s]=o}}}_convertObjectIdsToArrayIndices(e){for(let r in Bp)this._convertIdsToIndices(e,r);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(let r of e.textures)this._convertTextureIds(r);for(let r of e.meshes)this._convertMeshIds(r);for(let r of e.nodes)this._convertNodeIds(r);for(let r of e.scenes)this._convertSceneIds(r)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(let r of e.primitives){let{attributes:n,indices:s,material:i}=r;for(let o in n)n[o]=this._convertIdToIndex(n[o],"accessor");s&&(r.indices=this._convertIdToIndex(s,"accessor")),i&&(r.material=this._convertIdToIndex(i,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(r=>this._convertIdToIndex(r,"node"))),e.meshes&&(e.meshes=e.meshes.map(r=>this._convertIdToIndex(r,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(r=>this._convertIdToIndex(r,"node")))}_convertIdsToIndices(e,r){e[r]||(console.warn(`gltf v1: json doesn't contain attribute ${r}`),e[r]=[]);for(let n of e[r])for(let s in n){let i=n[s],o=this._convertIdToIndex(i,s);n[s]=o}}_convertIdToIndex(e,r){let n=pS[r];if(n in this.idToIndexMap){let s=this.idToIndexMap[n][e];if(!Number.isFinite(s))throw new Error(`gltf v1: failed to resolve ${r} with id ${e}`);return s}return e}_updateObjects(e){for(let r of this.json.buffers)delete r.type}_updateMaterial(e){for(let i of e.materials){var r,n,s;i.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};let o=((r=i.values)===null||r===void 0?void 0:r.tex)||((n=i.values)===null||n===void 0?void 0:n.texture2d_0)||((s=i.values)===null||s===void 0?void 0:s.diffuseTex),a=e.textures.findIndex(c=>c.id===o);a!==-1&&(i.pbrMetallicRoughness.baseColorTexture={index:a})}}};function Mp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new vc().normalize(t,e)}async function yp(t,e){var r,n,s;let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,o=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0;return gS(t,e,i,o),Mp(t,{normalize:o==null||(r=o.gltf)===null||r===void 0?void 0:r.normalize}),Rp(t,o,a),o!=null&&(n=o.gltf)!==null&&n!==void 0&&n.loadBuffers&&t.json.buffers&&await AS(t,o,a),o!=null&&(s=o.gltf)!==null&&s!==void 0&&s.loadImages&&await _S(t,o,a),await xp(t,o,a),t}function gS(t,e,r,n){if(n.uri&&(t.baseUri=n.uri),e instanceof ArrayBuffer&&!gp(e,r,n)&&(e=new TextDecoder().decode(e)),typeof e=="string")t.json=xo(e);else if(e instanceof ArrayBuffer){let o={};r=Ap(o,e,r,n.glb),at(o.type==="glTF",`Invalid GLB magic string ${o.type}`),t._glb=o,t.json=o.json}else at(!1,"GLTF: must be ArrayBuffer or string");let s=t.json.buffers||[];if(t.buffers=new Array(s.length).fill(null),t._glb&&t._glb.header.hasBinChunk){let{binChunks:o}=t._glb;t.buffers[0]={arrayBuffer:o[0].arrayBuffer,byteOffset:o[0].byteOffset,byteLength:o[0].byteLength}}let i=t.json.images||[];t.images=new Array(i.length).fill({})}async function AS(t,e,r){let n=t.json.buffers||[];for(let o=0;o<n.length;++o){let a=n[o];if(a.uri){var s,i;let{fetch:c}=r;at(c);let l=Sc(a.uri,e),h=await(r==null||(s=r.fetch)===null||s===void 0?void 0:s.call(r,l)),f=await(h==null||(i=h.arrayBuffer)===null||i===void 0?void 0:i.call(h));t.buffers[o]={arrayBuffer:f,byteOffset:0,byteLength:f.byteLength},delete a.uri}else t.buffers[o]===null&&(t.buffers[o]={arrayBuffer:new ArrayBuffer(a.byteLength),byteOffset:0,byteLength:a.byteLength})}}async function _S(t,e,r){let n=mS(t),s=t.json.images||[],i=[];for(let o of n)i.push(TS(t,s[o],o,e,r));return await Promise.all(i)}function mS(t){let e=new Set,r=t.json.textures||[];for(let n of r)n.source!==void 0&&e.add(n.source);return Array.from(e).sort()}async function TS(t,e,r,n,s){let i;if(e.uri&&!e.hasOwnProperty("bufferView")){let a=Sc(e.uri,n),{fetch:c}=s;i=await(await c(a)).arrayBuffer(),e.bufferView={data:i}}if(Number.isFinite(e.bufferView)){let a=op(t.json,t.buffers,e.bufferView);i=De(a.buffer,a.byteOffset,a.byteLength)}at(i,"glTF image has no data");let o=await Ct(i,[Ee,Wa],{...n,mimeType:e.mimeType,basis:n.basis||{format:Qs()}},s);o&&o[0]&&(o={compressed:!0,mipmaps:!1,width:o[0].width,height:o[0].height,data:o[0]}),t.images=t.images||[],t.images[r]=o}var rr={name:"glTF",id:"gltf",module:"gltf",version:dp,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:ES,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0},log:console}};async function ES(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;e={...rr.options,...e},e.gltf={...rr.options.gltf,...e.gltf};let{byteOffset:n=0}=e;return await yp({},t,n,e,r)}var RS={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},xS={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},Pt={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},SS={magFilter:Pt.TEXTURE_MAG_FILTER,minFilter:Pt.TEXTURE_MIN_FILTER,wrapS:Pt.TEXTURE_WRAP_S,wrapT:Pt.TEXTURE_WRAP_T},CS={[Pt.TEXTURE_MAG_FILTER]:Pt.LINEAR,[Pt.TEXTURE_MIN_FILTER]:Pt.NEAREST_MIPMAP_LINEAR,[Pt.TEXTURE_WRAP_S]:Pt.REPEAT,[Pt.TEXTURE_WRAP_T]:Pt.REPEAT};function BS(){return{id:"default-sampler",parameters:CS}}function MS(t){return xS[t]}function yS(t){return RS[t]}var Uc=class{constructor(){this.baseUri="",this.jsonUnprocessed=void 0,this.json=void 0,this.buffers=[],this.images=[]}postProcess(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{json:n,buffers:s=[],images:i=[]}=e,{baseUri:o=""}=e;return at(n),this.baseUri=o,this.buffers=s,this.images=i,this.jsonUnprocessed=n,this.json=this._resolveTree(e.json,r),this.json}_resolveTree(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n={...e};return this.json=n,e.bufferViews&&(n.bufferViews=e.bufferViews.map((s,i)=>this._resolveBufferView(s,i))),e.images&&(n.images=e.images.map((s,i)=>this._resolveImage(s,i))),e.samplers&&(n.samplers=e.samplers.map((s,i)=>this._resolveSampler(s,i))),e.textures&&(n.textures=e.textures.map((s,i)=>this._resolveTexture(s,i))),e.accessors&&(n.accessors=e.accessors.map((s,i)=>this._resolveAccessor(s,i))),e.materials&&(n.materials=e.materials.map((s,i)=>this._resolveMaterial(s,i))),e.meshes&&(n.meshes=e.meshes.map((s,i)=>this._resolveMesh(s,i))),e.nodes&&(n.nodes=e.nodes.map((s,i)=>this._resolveNode(s,i)),n.nodes=n.nodes.map((s,i)=>this._resolveNodeChildren(s))),e.skins&&(n.skins=e.skins.map((s,i)=>this._resolveSkin(s,i))),e.scenes&&(n.scenes=e.scenes.map((s,i)=>this._resolveScene(s,i))),typeof this.json.scene=="number"&&n.scenes&&(n.scene=n.scenes[this.json.scene]),n}getScene(e){return this._get(this.json.scenes,e)}getNode(e){return this._get(this.json.nodes,e)}getSkin(e){return this._get(this.json.skins,e)}getMesh(e){return this._get(this.json.meshes,e)}getMaterial(e){return this._get(this.json.materials,e)}getAccessor(e){return this._get(this.json.accessors,e)}getCamera(e){return this._get(this.json.cameras,e)}getTexture(e){return this._get(this.json.textures,e)}getSampler(e){return this._get(this.json.samplers,e)}getImage(e){return this._get(this.json.images,e)}getBufferView(e){return this._get(this.json.bufferViews,e)}getBuffer(e){return this._get(this.json.buffers,e)}_get(e,r){if(typeof r=="object")return r;let n=e&&e[r];return n||console.warn(`glTF file error: Could not find ${e}[${r}]`),n}_resolveScene(e,r){return{...e,id:e.id||`scene-${r}`,nodes:(e.nodes||[]).map(n=>this.getNode(n))}}_resolveNode(e,r){let n={...e,id:e?.id||`node-${r}`};return e.mesh!==void 0&&(n.mesh=this.getMesh(e.mesh)),e.camera!==void 0&&(n.camera=this.getCamera(e.camera)),e.skin!==void 0&&(n.skin=this.getSkin(e.skin)),e.meshes!==void 0&&e.meshes.length&&(n.mesh=e.meshes.reduce((s,i)=>{let o=this.getMesh(i);return s.id=o.id,s.primitives=s.primitives.concat(o.primitives),s},{primitives:[]})),n}_resolveNodeChildren(e){return e.children&&(e.children=e.children.map(r=>this.getNode(r))),e}_resolveSkin(e,r){let n=typeof e.inverseBindMatrices=="number"?this.getAccessor(e.inverseBindMatrices):void 0;return{...e,id:e.id||`skin-${r}`,inverseBindMatrices:n}}_resolveMesh(e,r){let n={...e,id:e.id||`mesh-${r}`,primitives:[]};return e.primitives&&(n.primitives=e.primitives.map(s=>{let i={...s,attributes:{},indices:void 0,material:void 0},o=s.attributes;for(let a in o)i.attributes[a]=this.getAccessor(o[a]);return s.indices!==void 0&&(i.indices=this.getAccessor(s.indices)),s.material!==void 0&&(i.material=this.getMaterial(s.material)),i})),n}_resolveMaterial(e,r){let n={...e,id:e.id||`material-${r}`};if(n.normalTexture&&(n.normalTexture={...n.normalTexture},n.normalTexture.texture=this.getTexture(n.normalTexture.index)),n.occlusionTexture&&(n.occlusionTexture={...n.occlusionTexture},n.occlusionTexture.texture=this.getTexture(n.occlusionTexture.index)),n.emissiveTexture&&(n.emissiveTexture={...n.emissiveTexture},n.emissiveTexture.texture=this.getTexture(n.emissiveTexture.index)),n.emissiveFactor||(n.emissiveFactor=n.emissiveTexture?[1,1,1]:[0,0,0]),n.pbrMetallicRoughness){n.pbrMetallicRoughness={...n.pbrMetallicRoughness};let s=n.pbrMetallicRoughness;s.baseColorTexture&&(s.baseColorTexture={...s.baseColorTexture},s.baseColorTexture.texture=this.getTexture(s.baseColorTexture.index)),s.metallicRoughnessTexture&&(s.metallicRoughnessTexture={...s.metallicRoughnessTexture},s.metallicRoughnessTexture.texture=this.getTexture(s.metallicRoughnessTexture.index))}return n}_resolveAccessor(e,r){let n=MS(e.componentType),s=yS(e.type),i=n*s,o={...e,id:e.id||`accessor-${r}`,bytesPerComponent:n,components:s,bytesPerElement:i,value:void 0,bufferView:void 0,sparse:void 0};if(e.bufferView!==void 0&&(o.bufferView=this.getBufferView(e.bufferView)),o.bufferView){let a=o.bufferView.buffer,{ArrayType:c,byteLength:l}=br(o,o.bufferView),h=(o.bufferView.byteOffset||0)+(o.byteOffset||0)+a.byteOffset,f=a.arrayBuffer.slice(h,h+l);o.bufferView.byteStride&&(f=this._getValueFromInterleavedBuffer(a,h,o.bufferView.byteStride,o.bytesPerElement,o.count)),o.value=new c(f)}return o}_getValueFromInterleavedBuffer(e,r,n,s,i){let o=new Uint8Array(i*s);for(let a=0;a<i;a++){let c=r+a*n;o.set(new Uint8Array(e.arrayBuffer.slice(c,c+s)),a*s)}return o.buffer}_resolveTexture(e,r){return{...e,id:e.id||`texture-${r}`,sampler:typeof e.sampler=="number"?this.getSampler(e.sampler):BS(),source:typeof e.source=="number"?this.getImage(e.source):void 0}}_resolveSampler(e,r){let n={id:e.id||`sampler-${r}`,...e,parameters:{}};for(let s in n){let i=this._enumSamplerParameter(s);i!==void 0&&(n.parameters[i]=n[s])}return n}_enumSamplerParameter(e){return SS[e]}_resolveImage(e,r){let n={...e,id:e.id||`image-${r}`,image:null,bufferView:e.bufferView!==void 0?this.getBufferView(e.bufferView):void 0},s=this.images[r];return s&&(n.image=s),n}_resolveBufferView(e,r){let n=e.buffer,s=this.buffers[n].arrayBuffer,i=this.buffers[n].byteOffset||0;return e.byteOffset&&(i+=e.byteOffset),{id:`bufferView-${r}`,...e,buffer:this.buffers[n],data:new Uint8Array(s,i,e.byteLength)}}_resolveCamera(e,r){let n={...e,id:e.id||`camera-${r}`};return n.perspective,n.orthographic,n}};function wn(t,e){return new Uc().postProcess(t,e)}var Ni={URI:0,EMBEDDED:1};function Oi(t,e,r,n){t.rotateYtoZ=!0;let s=(t.byteOffset||0)+(t.byteLength||0)-r;if(s===0)throw new Error("glTF byte length must be greater than 0.");return t.gltfUpAxis=n!=null&&n["3d-tiles"]&&n["3d-tiles"].assetGltfUpAxis?n["3d-tiles"].assetGltfUpAxis:"Y",t.gltfArrayBuffer=De(e,r,s),t.gltfByteOffset=0,t.gltfByteLength=s,r%4===0||console.warn(`${t.type}: embedded glb is not aligned to a 4-byte boundary.`),(t.byteOffset||0)+(t.byteLength||0)}async function bi(t,e,r,n){let s=r?.["3d-tiles"]||{};if(IS(t,e,r),s.loadGLTF){if(!n)return;if(t.gltfUrl){let{fetch:i}=n,o=await i(t.gltfUrl,r);t.gltfArrayBuffer=await o.arrayBuffer(),t.gltfByteOffset=0}if(t.gltfArrayBuffer){let i=await Ct(t.gltfArrayBuffer,rr,r,n);t.gltf=wn(i),t.gpuMemoryUsageInBytes=Nn(t.gltf),delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength}}}function IS(t,e,r){switch(e){case Ni.URI:if(t.gltfArrayBuffer){let n=new Uint8Array(t.gltfArrayBuffer,t.gltfByteOffset),i=new TextDecoder().decode(n);t.gltfUrl=i.replace(/[\s\0]+$/,"")}delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength;break;case Ni.EMBEDDED:break;default:throw new Error("b3dm: Illegal glTF format field")}}async function Ip(t,e,r,n,s){var i;r=FS(t,e,r,n,s),await bi(t,Ni.EMBEDDED,n,s);let o=t==null||(i=t.gltf)===null||i===void 0?void 0:i.extensions;return o&&o.CESIUM_RTC&&(t.rtcCenter=o.CESIUM_RTC.center),r}function FS(t,e,r,n,s){r=Ne(t,e,r),r=Fr(t,e,r),r=Nr(t,e,r,n),r=Oi(t,e,r,n);let i=new fe(t.featureTableJson,t.featureTableBinary);return t.rtcCenter=i.getGlobalProperty("RTC_CENTER",w.FLOAT,3),r}async function Fp(t,e,r,n,s){return r=NS(t,e,r,n,s),await bi(t,t.gltfFormat||0,n,s),r}function NS(t,e,r,n,s){var i;if(r=Ne(t,e,r),t.version!==1)throw new Error(`Instanced 3D Model version ${t.version} is not supported`);r=Fr(t,e,r);let o=new DataView(e);if(t.gltfFormat=o.getUint32(r,!0),r+=4,r=Nr(t,e,r,n),r=Oi(t,e,r,n),!(t!=null&&(i=t.header)!==null&&i!==void 0&&i.featureTableJsonByteLength)||t.header.featureTableJsonByteLength===0)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");let a=new fe(t.featureTableJson,t.featureTableBinary),c=a.getGlobalProperty("INSTANCES_LENGTH");if(a.featuresLength=c,!Number.isFinite(c))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");t.eastNorthUp=a.getGlobalProperty("EAST_NORTH_UP"),t.rtcCenter=a.getGlobalProperty("RTC_CENTER",w.FLOAT,3);let l=new tr(t.batchTableJson,t.batchTableBinary,c);return OS(t,a,l,c),r}function OS(t,e,r,n){let s=new Array(n),i=new m,o=new m,a=new m,c=new m,l=new z,h=new Zt,f=new m,u={},d=new D,p=[],_=[],A=[],T=[];for(let x=0;x<n;x++){let R;if(e.hasProperty("POSITION"))R=e.getProperty("POSITION",w.FLOAT,3,x,i);else if(e.hasProperty("POSITION_QUANTIZED")){R=e.getProperty("POSITION_QUANTIZED",w.UNSIGNED_SHORT,3,x,i);let g=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",w.FLOAT,3);if(!g)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let y=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",w.FLOAT,3);if(!y)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let O=65535;for(let b=0;b<3;b++)R[b]=R[b]/O*y[b]+g[b]}if(!R)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");i.copy(R),u.translation=i,t.normalUp=e.getProperty("NORMAL_UP",w.FLOAT,3,x,p),t.normalRight=e.getProperty("NORMAL_RIGHT",w.FLOAT,3,x,_);let S=!1;if(t.normalUp){if(!t.normalRight)throw new Error("i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.");t.hasCustomOrientation=!0}else{if(t.octNormalUp=e.getProperty("NORMAL_UP_OCT32P",w.UNSIGNED_SHORT,2,x,p),t.octNormalRight=e.getProperty("NORMAL_RIGHT_OCT32P",w.UNSIGNED_SHORT,2,x,_),t.octNormalUp)throw t.octNormalRight?new Error("i3dm: oct-encoded orientation not implemented"):new Error("i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P");t.eastNorthUp?(L.WGS84.eastNorthUpToFixedFrame(i,d),d.getRotationMatrix3(l)):l.identity()}S&&(c.copy(o).cross(a).normalize(),l.setColumn(0,o),l.setColumn(1,a),l.setColumn(2,c)),h.fromMatrix3(l),u.rotation=h,f.set(1,1,1);let B=e.getProperty("SCALE",w.FLOAT,1,x,A);Number.isFinite(B)&&f.multiplyByScalar(B);let M=e.getProperty("SCALE_NON_UNIFORM",w.FLOAT,3,x,p);M&&f.scale(M),u.scale=f;let F=e.getProperty("BATCH_ID",w.UNSIGNED_SHORT,1,x,T);F===void 0&&(F=x);let C=new D().fromQuaternion(u.rotation);d.identity(),d.translate(u.translation),d.multiplyRight(C),d.scale(u.scale);let E=d.clone();s[x]={modelMatrix:E,batchId:F}}t.instances=s}async function Np(t,e,r,n,s,i){r=Ne(t,e,r);let o=new DataView(e);for(t.tilesLength=o.getUint32(r,!0),r+=4,t.tiles=[];t.tiles.length<t.tilesLength&&(t.byteLength||0)-r>12;){let a={shape:"tile3d"};t.tiles.push(a),r=await i(e,r,n,s,a)}return r}async function Op(t,e,r,n){var s,i;if(t.rotateYtoZ=!0,t.gltfUpAxis=r!=null&&(s=r["3d-tiles"])!==null&&s!==void 0&&s.assetGltfUpAxis?r["3d-tiles"].assetGltfUpAxis:"Y",r!=null&&(i=r["3d-tiles"])!==null&&i!==void 0&&i.loadGLTF){if(!n)return e.byteLength;let o=await Ct(e,rr,r,n);t.gltf=wn(o),t.gpuMemoryUsageInBytes=Nn(t.gltf)}else t.gltfArrayBuffer=e;return e.byteLength}async function Lc(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{shape:"tile3d"};switch(s.byteOffset=e,s.type=Ud(t,e),s.type){case Qe.COMPOSITE:return await Np(s,t,e,r,n,Lc);case Qe.BATCHED_3D_MODEL:return await Ip(s,t,e,r,n);case Qe.GLTF:return await Op(s,t,r,n);case Qe.INSTANCED_3D_MODEL:return await Fp(s,t,e,r,n);case Qe.POINT_CLOUD:return await sp(s,t,e,r,n);default:throw new Error(`3DTileLoader: unknown type ${s.type}`)}}async function Hc(t,e,r){if(new Uint32Array(t.slice(0,4))[0]!==1952609651)throw new Error("Wrong subtree file magic number");if(new Uint32Array(t.slice(4,8))[0]!==1)throw new Error("Wrong subtree file verson, must be 1");let i=bp(t.slice(8,16)),o=new Uint8Array(t,24,i),c=new TextDecoder("utf8").decode(o),l=JSON.parse(c),h=bp(t.slice(16,24)),f=new ArrayBuffer(0);if(h&&(f=t.slice(24+i)),await Pi(l,l.tileAvailability,f,r),Array.isArray(l.contentAvailability))for(let u of l.contentAvailability)await Pi(l,u,f,r);else await Pi(l,l.contentAvailability,f,r);return await Pi(l,l.childSubtreeAvailability,f,r),l}async function Pi(t,e,r,n){let s=Number.isFinite(e.bitstream)?e.bitstream:e.bufferView;if(typeof s!="number")return;let i=t.bufferViews[s],o=t.buffers[i.buffer];if(!(n!=null&&n.baseUrl))throw new Error("Url is not provided");if(!n.fetch)throw new Error("fetch is not provided");if(o.uri){let c=`${n?.baseUrl||""}/${o.uri}`,h=await(await n.fetch(c)).arrayBuffer();e.explicitBitstream=new Uint8Array(h,i.byteOffset,i.byteLength);return}let a=t.buffers.slice(0,i.buffer).reduce((c,l)=>c+l.byteLength,0);e.explicitBitstream=new Uint8Array(r.slice(a,a+o.byteLength),i.byteOffset,i.byteLength)}function bp(t){let e=new DataView(t),r=e.getUint32(0,!0),n=e.getUint32(4,!0);return r+2**32*n}var Di={id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:Ai,extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:Hc,options:{}};var lg=v(Cr(),1);var ig=v(Cr(),1);function bS(t){try{let e=window[t],r="__storage_test__";return e.setItem(r,r),e.removeItem(r),e}catch{return null}}var wi=class{constructor(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";this.storage=void 0,this.id=void 0,this.config=void 0,this.storage=bS(n),this.id=e,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let e={};if(this.storage){let r=this.storage.getItem(this.id);e=r?JSON.parse(r):{}}return Object.assign(this.config,e),this}};function Pp(t){let e;return t<10?e="".concat(t.toFixed(2),"ms"):t<100?e="".concat(t.toFixed(1),"ms"):t<1e3?e="".concat(t.toFixed(0),"ms"):e="".concat((t/1e3).toFixed(2),"s"),e}function Dp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(e-t.length,0);return"".concat(" ".repeat(r)).concat(t)}function vi(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,s=t.src.replace(/\(/g,"%28").replace(/\)/g,"%29");t.width>n&&(r=Math.min(r,n/t.width));let i=t.width*r,o=t.height*r,a=["font-size:1px;","padding:".concat(Math.floor(o/2),"px ").concat(Math.floor(i/2),"px;"),"line-height:".concat(o,"px;"),"background:url(".concat(s,");"),"background-size:".concat(i,"px ").concat(o,"px;"),"color:transparent;"].join("");return["".concat(e," %c+"),a]}var Ui;(function(t){t[t.BLACK=30]="BLACK",t[t.RED=31]="RED",t[t.GREEN=32]="GREEN",t[t.YELLOW=33]="YELLOW",t[t.BLUE=34]="BLUE",t[t.MAGENTA=35]="MAGENTA",t[t.CYAN=36]="CYAN",t[t.WHITE=37]="WHITE",t[t.BRIGHT_BLACK=90]="BRIGHT_BLACK",t[t.BRIGHT_RED=91]="BRIGHT_RED",t[t.BRIGHT_GREEN=92]="BRIGHT_GREEN",t[t.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",t[t.BRIGHT_BLUE=94]="BRIGHT_BLUE",t[t.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",t[t.BRIGHT_CYAN=96]="BRIGHT_CYAN",t[t.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Ui||(Ui={}));var PS=10;function wp(t){return typeof t!="string"?t:(t=t.toUpperCase(),Ui[t]||Ui.WHITE)}function vp(t,e,r){if(!Wt&&typeof t=="string"){if(e){let n=wp(e);t="\x1B[".concat(n,"m").concat(t,"\x1B[39m")}if(r){let n=wp(r);t="\x1B[".concat(n+PS,"m").concat(t,"\x1B[49m")}}return t}function Up(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],r=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(r),s=t;for(let i of n){let o=s[i];typeof o=="function"&&(e.find(a=>i===a)||(s[i]=o.bind(t)))}}function Lr(t,e){if(!t)throw new Error(e||"Assertion failed")}function nr(){let t;if(Wt()&&xr.performance){var e,r;t=xr===null||xr===void 0||(e=xr.performance)===null||e===void 0||(r=e.now)===null||r===void 0?void 0:r.call(e)}else if("hrtime"in Ye){var n;let s=Ye===null||Ye===void 0||(n=Ye.hrtime)===null||n===void 0?void 0:n.call(Ye);t=s[0]*1e3+s[1]/1e6}else t=Date.now();return t}var Hr={debug:Wt()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},DS={enabled:!0,level:0};function Dt(){}var Lp={},Hp={once:!0},vn=class{constructor(){let{id:e}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};this.id=void 0,this.VERSION=$s,this._startTs=nr(),this._deltaTs=nr(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new wi("__probe-".concat(this.id,"__"),DS),this.timeStamp("".concat(this.id," started")),Up(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((nr()-this._startTs).toPrecision(10))}getDelta(){return Number((nr()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:e}),this}setLevel(e){return this._storage.setConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,r){this._storage.setConfiguration({[e]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,r){Lr(e,r)}warn(e){return this._getLogFunction(0,e,Hr.warn,arguments,Hp)}error(e){return this._getLogFunction(0,e,Hr.error,arguments)}deprecated(e,r){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(r,"` instead"))}removed(e,r){return this.error("`".concat(e,"` has been removed. Use `").concat(r,"` instead"))}probe(e,r){return this._getLogFunction(e,r,Hr.log,arguments,{time:!0,once:!0})}log(e,r){return this._getLogFunction(e,r,Hr.debug,arguments)}info(e,r){return this._getLogFunction(e,r,console.info,arguments)}once(e,r){return this._getLogFunction(e,r,Hr.debug||Hr.info,arguments,Hp)}table(e,r,n){return r?this._getLogFunction(e,r,console.table||Dt,n&&[n],{tag:LS(r)}):Dt}image(e){let{logLevel:r,priority:n,image:s,message:i="",scale:o=1}=e;return this._shouldLog(r||n)?Wt()?US({image:s,message:i,scale:o}):vS({image:s,message:i,scale:o}):Dt}time(e,r){return this._getLogFunction(e,r,console.time?console.time:console.info)}timeEnd(e,r){return this._getLogFunction(e,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,r){return this._getLogFunction(e,r,console.timeStamp||Dt)}group(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},s=Vp({logLevel:e,message:r,opts:n}),{collapsed:i}=n;return s.method=(i?console.groupCollapsed:console.group)||console.info,this._getLogFunction(s)}groupCollapsed(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(e,r,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||Dt)}withGroup(e,r,n){this.group(e,r)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=Xp(e)}_getLogFunction(e,r,n,s,i){if(this._shouldLog(e)){i=Vp({logLevel:e,message:r,args:s,opts:i}),n=n||i.method,Lr(n),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=nr();let o=i.tag||i.message;if(i.once&&o)if(!Lp[o])Lp[o]=nr();else return Dt;return r=wS(this.id,i.message,i),n.bind(console,r,...i.args)}return Dt}};vn.VERSION=$s;function Xp(t){if(!t)return 0;let e;switch(typeof t){case"number":e=t;break;case"object":e=t.logLevel||t.priority||0;break;default:return 0}return Lr(Number.isFinite(e)&&e>=0),e}function Vp(t){let{logLevel:e,message:r}=t;t.logLevel=Xp(e);let n=t.args?Array.from(t.args):[];for(;n.length&&n.shift()!==r;);switch(typeof e){case"string":case"function":r!==void 0&&n.unshift(r),t.message=e;break;case"object":Object.assign(t,e);break;default:}typeof t.message=="function"&&(t.message=t.message());let s=typeof t.message;return Lr(s==="string"||s==="object"),Object.assign(t,{args:n},t.opts)}function wS(t,e,r){if(typeof e=="string"){let n=r.time?Dp(Pp(r.total)):"";e=r.time?"".concat(t,": ").concat(n," ").concat(e):"".concat(t,": ").concat(e),e=vp(e,r.color,r.background)}return e}function vS(t){let{image:e,message:r="",scale:n=1}=t;return console.warn("removed"),Dt}function US(t){let{image:e,message:r="",scale:n=1}=t;if(typeof e=="string"){let i=new Image;return i.onload=()=>{let o=vi(i,r,n);console.log(...o)},i.src=e,Dt}let s=e.nodeName||"";if(s.toLowerCase()==="img")return console.log(...vi(e,r,n)),Dt;if(s.toLowerCase()==="canvas"){let i=new Image;return i.onload=()=>console.log(...vi(i,r,n)),i.src=e.toDataURL(),Dt}return Dt}function LS(t){for(let e in t)for(let r in t[e])return r||"untitled";return"empty"}var Vc=new vn({id:"@probe.gl/log"});var wt=null;try{wt=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Z(t,e,r){this.low=t|0,this.high=e|0,this.unsigned=!!r}Z.prototype.__isLong__;Object.defineProperty(Z.prototype,"__isLong__",{value:!0});function pt(t){return(t&&t.__isLong__)===!0}function Wp(t){var e=Math.clz32(t&-t);return t?31-e:e}Z.isLong=pt;var zp={},kp={};function sr(t,e){var r,n,s;return e?(t>>>=0,(s=0<=t&&t<256)&&(n=kp[t],n)?n:(r=X(t,0,!0),s&&(kp[t]=r),r)):(t|=0,(s=-128<=t&&t<128)&&(n=zp[t],n)?n:(r=X(t,t<0?-1:0,!1),s&&(zp[t]=r),r))}Z.fromInt=sr;function vt(t,e){if(isNaN(t))return e?ue:kt;if(e){if(t<0)return ue;if(t>=Yp)return Zp}else{if(t<=-Kp)return St;if(t+1>=Kp)return jp}return t<0?vt(-t,e).neg():X(t%Xr|0,t/Xr|0,e)}Z.fromNumber=vt;function X(t,e,r){return new Z(t,e,r)}Z.fromBits=X;var Li=Math.pow;function Wc(t,e,r){if(t.length===0)throw Error("empty string");if(typeof e=="number"?(r=e,e=!1):e=!!e,t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return e?ue:kt;if(r=r||10,r<2||36<r)throw RangeError("radix");var n;if((n=t.indexOf("-"))>0)throw Error("interior hyphen");if(n===0)return Wc(t.substring(1),e,r).neg();for(var s=vt(Li(r,8)),i=kt,o=0;o<t.length;o+=8){var a=Math.min(8,t.length-o),c=parseInt(t.substring(o,o+a),r);if(a<8){var l=vt(Li(r,a));i=i.mul(l).add(vt(c))}else i=i.mul(s),i=i.add(vt(c))}return i.unsigned=e,i}Z.fromString=Wc;function Gt(t,e){return typeof t=="number"?vt(t,e):typeof t=="string"?Wc(t,e):X(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}Z.fromValue=Gt;var Gp=1<<16,HS=1<<24,Xr=Gp*Gp,Yp=Xr*Xr,Kp=Yp/2,Jp=sr(HS),kt=sr(0);Z.ZERO=kt;var ue=sr(0,!0);Z.UZERO=ue;var Vr=sr(1);Z.ONE=Vr;var qp=sr(1,!0);Z.UONE=qp;var Xc=sr(-1);Z.NEG_ONE=Xc;var jp=X(-1,2147483647,!1);Z.MAX_VALUE=jp;var Zp=X(-1,-1,!0);Z.MAX_UNSIGNED_VALUE=Zp;var St=X(0,-2147483648,!1);Z.MIN_VALUE=St;var I=Z.prototype;I.toInt=function(){return this.unsigned?this.low>>>0:this.low};I.toNumber=function(){return this.unsigned?(this.high>>>0)*Xr+(this.low>>>0):this.high*Xr+(this.low>>>0)};I.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(St)){var r=vt(e),n=this.div(r),s=n.mul(r).sub(this);return n.toString(e)+s.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var i=vt(Li(e,6),this.unsigned),o=this,a="";;){var c=o.div(i),l=o.sub(c.mul(i)).toInt()>>>0,h=l.toString(e);if(o=c,o.isZero())return h+a;for(;h.length<6;)h="0"+h;a=""+h+a}};I.getHighBits=function(){return this.high};I.getHighBitsUnsigned=function(){return this.high>>>0};I.getLowBits=function(){return this.low};I.getLowBitsUnsigned=function(){return this.low>>>0};I.getNumBitsAbs=function(){if(this.isNegative())return this.eq(St)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,r=31;r>0&&!(e&1<<r);r--);return this.high!=0?r+33:r+1};I.isZero=function(){return this.high===0&&this.low===0};I.eqz=I.isZero;I.isNegative=function(){return!this.unsigned&&this.high<0};I.isPositive=function(){return this.unsigned||this.high>=0};I.isOdd=function(){return(this.low&1)===1};I.isEven=function(){return(this.low&1)===0};I.equals=function(e){return pt(e)||(e=Gt(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low};I.eq=I.equals;I.notEquals=function(e){return!this.eq(e)};I.neq=I.notEquals;I.ne=I.notEquals;I.lessThan=function(e){return this.comp(e)<0};I.lt=I.lessThan;I.lessThanOrEqual=function(e){return this.comp(e)<=0};I.lte=I.lessThanOrEqual;I.le=I.lessThanOrEqual;I.greaterThan=function(e){return this.comp(e)>0};I.gt=I.greaterThan;I.greaterThanOrEqual=function(e){return this.comp(e)>=0};I.gte=I.greaterThanOrEqual;I.ge=I.greaterThanOrEqual;I.compare=function(e){if(pt(e)||(e=Gt(e)),this.eq(e))return 0;var r=this.isNegative(),n=e.isNegative();return r&&!n?-1:!r&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1};I.comp=I.compare;I.negate=function(){return!this.unsigned&&this.eq(St)?St:this.not().add(Vr)};I.neg=I.negate;I.add=function(e){pt(e)||(e=Gt(e));var r=this.high>>>16,n=this.high&65535,s=this.low>>>16,i=this.low&65535,o=e.high>>>16,a=e.high&65535,c=e.low>>>16,l=e.low&65535,h=0,f=0,u=0,d=0;return d+=i+l,u+=d>>>16,d&=65535,u+=s+c,f+=u>>>16,u&=65535,f+=n+a,h+=f>>>16,f&=65535,h+=r+o,h&=65535,X(u<<16|d,h<<16|f,this.unsigned)};I.subtract=function(e){return pt(e)||(e=Gt(e)),this.add(e.neg())};I.sub=I.subtract;I.multiply=function(e){if(this.isZero())return this;if(pt(e)||(e=Gt(e)),wt){var r=wt.mul(this.low,this.high,e.low,e.high);return X(r,wt.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?ue:kt;if(this.eq(St))return e.isOdd()?St:kt;if(e.eq(St))return this.isOdd()?St:kt;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(Jp)&&e.lt(Jp))return vt(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,s=this.high&65535,i=this.low>>>16,o=this.low&65535,a=e.high>>>16,c=e.high&65535,l=e.low>>>16,h=e.low&65535,f=0,u=0,d=0,p=0;return p+=o*h,d+=p>>>16,p&=65535,d+=i*h,u+=d>>>16,d&=65535,d+=o*l,u+=d>>>16,d&=65535,u+=s*h,f+=u>>>16,u&=65535,u+=i*l,f+=u>>>16,u&=65535,u+=o*c,f+=u>>>16,u&=65535,f+=n*h+s*l+i*c+o*a,f&=65535,X(d<<16|p,f<<16|u,this.unsigned)};I.mul=I.multiply;I.divide=function(e){if(pt(e)||(e=Gt(e)),e.isZero())throw Error("division by zero");if(wt){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var r=(this.unsigned?wt.div_u:wt.div_s)(this.low,this.high,e.low,e.high);return X(r,wt.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?ue:kt;var n,s,i;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return ue;if(e.gt(this.shru(1)))return qp;i=ue}else{if(this.eq(St)){if(e.eq(Vr)||e.eq(Xc))return St;if(e.eq(St))return Vr;var o=this.shr(1);return n=o.div(e).shl(1),n.eq(kt)?e.isNegative()?Vr:Xc:(s=this.sub(e.mul(n)),i=n.add(s.div(e)),i)}else if(e.eq(St))return this.unsigned?ue:kt;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();i=kt}for(s=this;s.gte(e);){n=Math.max(1,Math.floor(s.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),c=a<=48?1:Li(2,a-48),l=vt(n),h=l.mul(e);h.isNegative()||h.gt(s);)n-=c,l=vt(n,this.unsigned),h=l.mul(e);l.isZero()&&(l=Vr),i=i.add(l),s=s.sub(h)}return i};I.div=I.divide;I.modulo=function(e){if(pt(e)||(e=Gt(e)),wt){var r=(this.unsigned?wt.rem_u:wt.rem_s)(this.low,this.high,e.low,e.high);return X(r,wt.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))};I.mod=I.modulo;I.rem=I.modulo;I.not=function(){return X(~this.low,~this.high,this.unsigned)};I.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32};I.clz=I.countLeadingZeros;I.countTrailingZeros=function(){return this.low?Wp(this.low):Wp(this.high)+32};I.ctz=I.countTrailingZeros;I.and=function(e){return pt(e)||(e=Gt(e)),X(this.low&e.low,this.high&e.high,this.unsigned)};I.or=function(e){return pt(e)||(e=Gt(e)),X(this.low|e.low,this.high|e.high,this.unsigned)};I.xor=function(e){return pt(e)||(e=Gt(e)),X(this.low^e.low,this.high^e.high,this.unsigned)};I.shiftLeft=function(e){return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?X(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):X(0,this.low<<e-32,this.unsigned)};I.shl=I.shiftLeft;I.shiftRight=function(e){return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?X(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):X(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};I.shr=I.shiftRight;I.shiftRightUnsigned=function(e){return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?X(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?X(this.high,0,this.unsigned):X(this.high>>>e-32,0,this.unsigned)};I.shru=I.shiftRightUnsigned;I.shr_u=I.shiftRightUnsigned;I.rotateLeft=function(e){var r;return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?X(this.high,this.low,this.unsigned):e<32?(r=32-e,X(this.low<<e|this.high>>>r,this.high<<e|this.low>>>r,this.unsigned)):(e-=32,r=32-e,X(this.high<<e|this.low>>>r,this.low<<e|this.high>>>r,this.unsigned))};I.rotl=I.rotateLeft;I.rotateRight=function(e){var r;return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?X(this.high,this.low,this.unsigned):e<32?(r=32-e,X(this.high<<r|this.low>>>e,this.low<<r|this.high>>>e,this.unsigned)):(e-=32,r=32-e,X(this.low<<r|this.high>>>e,this.high<<r|this.low>>>e,this.unsigned))};I.rotr=I.rotateRight;I.toSigned=function(){return this.unsigned?X(this.low,this.high,!1):this};I.toUnsigned=function(){return this.unsigned?this:X(this.low,this.high,!0)};I.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()};I.toBytesLE=function(){var e=this.high,r=this.low;return[r&255,r>>>8&255,r>>>16&255,r>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]};I.toBytesBE=function(){var e=this.high,r=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,r>>>24,r>>>16&255,r>>>8&255,r&255]};Z.fromBytes=function(e,r,n){return n?Z.fromBytesLE(e,r):Z.fromBytesBE(e,r)};Z.fromBytesLE=function(e,r){return new Z(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,r)};Z.fromBytesBE=function(e,r){return new Z(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],r)};var Wr=Z;var VS=16;function Un(t){t==="X"&&(t="");let e=t.padEnd(VS,"0");return Wr.fromString(e,!0,16)}function zc(t){if(t.isZero())return"X";let e=t.countTrailingZeros(),r=e%4;e=(e-r)/4;let n=e;e*=4;let i=t.shiftRightUnsigned(e).toString(16).replace(/0+$/,"");return Array(17-n-i.length).join("0")+i}function kc(t,e){let r=XS(t).shiftRightUnsigned(2);return t.add(Wr.fromNumber(2*e+1-4).multiply(r))}function XS(t){return t.and(t.not().add(1))}var WS=3,zS=30,kS=2*zS+1,Qp=180/Math.PI;function tg(t){if(t.length===0)throw new Error(`Invalid Hilbert quad key ${t}`);let e=t.split("/"),r=parseInt(e[0],10),n=e[1],s=n.length,i=0,o=[0,0];for(let a=s-1;a>=0;a--){i=s-a;let c=n[a],l=0,h=0;c==="1"?h=1:c==="2"?(l=1,h=1):c==="3"&&(l=1);let f=Math.pow(2,i-1);GS(f,o,l,h),o[0]+=f*l,o[1]+=f*h}if(r%2===1){let a=o[0];o[0]=o[1],o[1]=a}return{face:r,ij:o,level:i}}function eg(t){if(t.isZero())return"";let e=t.toString(2);for(;e.length<WS+kS;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),s=e.substring(3,r),i=s.length/2,o=Wr.fromString(n,!0,2).toString(10),a="";if(i!==0)for(a=Wr.fromString(s,!0,2).toString(4);a.length<i;)a="0"+a;return`${o}/${a}`}function Gc(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function $p(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function Kc(t){return[$p(t[0]),$p(t[1])]}function Jc(t,e){let[r,n]=e;switch(t){case 0:return[1,r,n];case 1:return[-r,1,n];case 2:return[-r,-n,1];case 3:return[-1,-n,-r];case 4:return[n,-1,-r];case 5:return[n,r,-1];default:throw new Error("Invalid face")}}function Yc(t){let[e,r,n]=t,s=Math.atan2(n,Math.sqrt(e*e+r*r));return[Math.atan2(r,e)*Qp,s*Qp]}function GS(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let s=e[0];e[0]=e[1],e[1]=s}}function rg(t){let e=Gc(t.ij,t.level,[.5,.5]),r=Kc(e),n=Jc(t.face,r);return Yc(n)}var KS=100;function qc(t){let{face:e,ij:r,level:n}=t,s=[[0,0],[0,1],[1,1],[1,0],[0,0]],i=Math.max(1,Math.ceil(KS*Math.pow(2,-n))),o=new Float64Array(4*i*2+2),a=0,c=0;for(let l=0;l<4;l++){let h=s[l].slice(0),f=s[l+1],u=(f[0]-h[0])/i,d=(f[1]-h[1])/i;for(let p=0;p<i;p++){h[0]+=u,h[1]+=d;let _=Gc(r,n,h),A=Kc(_),T=Jc(e,A),x=Yc(T);Math.abs(x[1])>89.999&&(x[0]=c);let R=x[0]-c;x[0]+=R>180?-360:R<-180?360:0,o[a++]=x[0],o[a++]=x[1],c=x[0]}}return o[a++]=o[0],o[a++]=o[1],o}function zr(t){let e=JS(t);return tg(e)}function JS(t){if(t.indexOf("/")>0)return t;let e=Un(t);return eg(e)}function jc(t){let e=zr(t);return rg(e)}function sg(t){let e;if(t.face===2||t.face===5){let r=null,n=0;for(let s=0;s<4;s++){let i=`${t.face}/${s}`,o=zr(i),a=qc(o);(typeof r>"u"||r===null)&&(r=new Float64Array(4*a.length)),r.set(a,n),n+=a.length}e=ng(r)}else{let r=qc(t);e=ng(r)}return e}function ng(t){if(t.length%2!==0)throw new Error("Invalid corners");let e=[],r=[];for(let n=0;n<t.length;n+=2)e.push(t[n]),r.push(t[n+1]);return e.sort((n,s)=>n-s),r.sort((n,s)=>n-s),{west:e[0],east:e[e.length-1],north:r[r.length-1],south:r[0]}}function Zc(t,e){let r=e?.minimumHeight||0,n=e?.maximumHeight||0,s=zr(t),i=sg(s),o=i.west,a=i.south,c=i.east,l=i.north,h=[];return h.push(new m(o,l,r)),h.push(new m(c,l,r)),h.push(new m(c,a,r)),h.push(new m(o,a,r)),h.push(new m(o,l,n)),h.push(new m(c,l,n)),h.push(new m(c,a,n)),h.push(new m(o,a,n)),h}function Hi(t){let e=t.token,r={minimumHeight:t.minimumHeight,maximumHeight:t.maximumHeight},n=Zc(e,r),s=jc(e),i=s[0],o=s[1],a=L.WGS84.cartographicToCartesian([i,o,r.maximumHeight]),c=new m(a[0],a[1],a[2]);n.push(c);let l=An(n);return[...l.center,...l.halfAxes]}var YS=4,qS=8,jS={QUADTREE:YS,OCTREE:qS};function ZS(t,e,r){if(t!=null&&t.box){let n=Un(t.s2VolumeInfo.token),s=kc(n,e),i=zc(s),o={...t.s2VolumeInfo};switch(o.token=i,r){case"OCTREE":let l=t.s2VolumeInfo,h=l.maximumHeight-l.minimumHeight,f=h/2,u=l.minimumHeight+h/2;l.minimumHeight=u-f,l.maximumHeight=u+f;break;default:break}return{box:Hi(o),s2VolumeInfo:o}}}async function $c(t){let{implicitOptions:e,parentData:r={mortonIndex:0,x:0,y:0,z:0},childIndex:n=0,s2VolumeBox:s,loaderOptions:i}=t,{subtree:o,level:a=0,globalData:c={level:0,mortonIndex:0,x:0,y:0,z:0}}=t,{subdivisionScheme:l,subtreeLevels:h,maximumLevel:f,contentUrlTemplate:u,subtreesUriTemplate:d,basePath:p}=e,_={children:[],lodMetricValue:0,contentUrl:""};if(!f)return Vc.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${u} won't be loaded...`),_;let A=a+c.level;if(A>f)return _;let T=jS[l],x=Math.log2(T),R=n&1,S=n>>1&1,B=n>>2&1,M=(T**a-1)/(T-1),F=ir(r.mortonIndex,n,x),C=M+F,E=ir(r.x,R,1),g=ir(r.y,S,1),y=ir(r.z,B,1),O=!1;a>=h&&(O=Qc(o.childSubtreeAvailability,F));let b=ir(c.x,E,a),N=ir(c.y,g,a),U=ir(c.z,y,a);if(O){let q=`${p}/${d}`,tt=Vi(q,A,b,N,U);o=await(0,ig.load)(tt,Di,i),c={mortonIndex:F,x:E,y:g,z:y,level:a},F=0,C=0,E=0,g=0,y=0,a=0}if(!Qc(o.tileAvailability,C))return _;Qc(o.contentAvailability,C)&&(_.contentUrl=Vi(u,A,b,N,U));let Q=a+1,J={mortonIndex:F,x:E,y:g,z:y};for(let q=0;q<T;q++){let tt=ZS(s,q,l),mt=await $c({subtree:o,implicitOptions:e,loaderOptions:i,parentData:J,childIndex:q,level:Q,globalData:{...c},s2VolumeBox:tt});if(mt.contentUrl||mt.children.length){let o0=A+1,a0=QS(mt,o0,{childTileX:E,childTileY:g,childTileZ:y},e,s);_.children.push(a0)}}return _}function Qc(t,e){let r;return Array.isArray(t)?(r=t[0],t.length>1&&Vc.once('Not supported extension "3DTILES_multiple_contents" has been detected')):r=t,"constant"in r?Boolean(r.constant):r.explicitBitstream?eC(e,r.explicitBitstream):!1}function QS(t,e,r,n,s){let{basePath:i,refine:o,getRefine:a,lodMetricType:c,getTileType:l,rootLodMetricValue:h,rootBoundingVolume:f}=n,u=t.contentUrl&&t.contentUrl.replace(`${i}/`,""),d=h/2**e,p=s!=null&&s.box?{box:s.box}:f,_=$S(e,p,r);return{children:t.children,contentUrl:t.contentUrl,content:{uri:u},id:t.contentUrl,refine:a(o),type:l(t),lodMetricType:c,lodMetricValue:d,geometricError:d,transform:t.transform,boundingVolume:_}}function $S(t,e,r){if(e.region){let{childTileX:n,childTileY:s,childTileZ:i}=r,[o,a,c,l,h,f]=e.region,u=2**t,d=(c-o)/u,p=(l-a)/u,_=(f-h)/u,[A,T]=[o+d*n,o+d*(n+1)],[x,R]=[a+p*s,a+p*(s+1)],[S,B]=[h+_*i,h+_*(i+1)];return{region:[A,x,T,R,S,B]}}if(e.box)return e;throw new Error(`Unsupported bounding volume type ${e}`)}function ir(t,e,r){return(t<<r)+e}function Vi(t,e,r,n,s){let i=tC({level:e,x:r,y:n,z:s});return t.replace(/{level}|{x}|{y}|{z}/gi,o=>i[o])}function tC(t){let e={};for(let r in t)e[`{${r}}`]=t[r];return e}function eC(t,e){let r=Math.floor(t/8),n=t%8;return(e[r]>>n&1)===1}function el(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";if(!e)return re.EMPTY;let n=e.split("?")[0].split(".").pop();switch(n){case"pnts":return re.POINTCLOUD;case"i3dm":case"b3dm":case"glb":case"gltf":return re.SCENEGRAPH;default:return n||re.EMPTY}}function rl(t){switch(t){case"REPLACE":case"replace":return Et.REPLACE;case"ADD":case"add":return Et.ADD;default:return t}}function tl(t,e){if(/^[a-z][0-9a-z+.-]*:/i.test(e)){let n=new URL(t,`${e}/`);return decodeURI(n.toString())}else if(t.startsWith("/"))return t;return Te.resolve(e,t)}function og(t,e){if(!t)return null;let r;if(t.content){var n;let i=t.content.uri||((n=t.content)===null||n===void 0?void 0:n.url);typeof i<"u"&&(r=tl(i,e))}return{...t,id:r,contentUrl:r,lodMetricType:qe.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:el(t,r),refine:rl(t.refine)}}async function hg(t,e,r){let n=null,s=cg(t.root);s&&t.root?n=await ag(t.root,t,e,s,r):n=og(t.root,e);let i=[];for(i.push(n);i.length>0;){let o=i.pop()||{},a=o.children||[],c=[];for(let l of a){let h=cg(l),f;h?f=await ag(l,t,e,h,r):f=og(l,e),f&&(c.push(f),i.push(f))}o.children=c}return n}async function ag(t,e,r,n,s){var i,o,a;let{subdivisionScheme:c,maximumLevel:l,availableLevels:h,subtreeLevels:f,subtrees:{uri:u}}=n,d=Vi(u,0,0,0,0),p=tl(d,r),_=await(0,lg.load)(p,Di,s),A=(i=t.content)===null||i===void 0?void 0:i.uri,T=A?tl(A,r):"",x=e==null||(o=e.root)===null||o===void 0?void 0:o.refine,R=t.geometricError,S=(a=t.boundingVolume.extensions)===null||a===void 0?void 0:a["3DTILES_bounding_volume_S2"];if(S){let C={box:Hi(S),s2VolumeInfo:S};t.boundingVolume=C}let B=t.boundingVolume,M={contentUrlTemplate:T,subtreesUriTemplate:u,subdivisionScheme:c,subtreeLevels:f,maximumLevel:Number.isFinite(h)?h-1:l,refine:x,basePath:r,lodMetricType:qe.GEOMETRIC_ERROR,rootLodMetricValue:R,rootBoundingVolume:B,getTileType:el,getRefine:rl};return await rC(t,r,_,M,s)}async function rC(t,e,r,n,s){if(!t)return null;let{children:i,contentUrl:o}=await $c({subtree:r,implicitOptions:n,loaderOptions:s}),a,c=null;return o&&(a=o,c={uri:o.replace(`${e}/`,"")}),{...t,id:a,contentUrl:a,lodMetricType:qe.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:el(t,a),refine:rl(t.refine),content:c||t.content,children:i}}function cg(t){var e;return(t==null||(e=t.extensions)===null||e===void 0?void 0:e["3DTILES_implicit_tiling"])||t?.implicitTiling}var Xi={id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:Ai,extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:nC,options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};async function nC(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,n=e["3d-tiles"]||{},s;return n.isTileset==="auto"?s=r?.url&&r.url.indexOf(".json")!==-1:s=n.isTileset,s?sC(t,e,r):iC(t,e,r)}async function sC(t,e,r){var n;let s=JSON.parse(new TextDecoder().decode(t)),i=r?.url||"",o=oC(i),a=await hg(s,o,e||{});return{...s,shape:"tileset3d",loader:Xi,url:i,queryString:r?.queryString||"",basePath:o,root:a||s.root,type:ft.TILES3D,lodMetricType:qe.GEOMETRIC_ERROR,lodMetricValue:((n=s.root)===null||n===void 0?void 0:n.geometricError)||0}}async function iC(t,e,r){let n={content:{shape:"tile3d",featureIds:null}};return await Lc(t,0,e,r,n.content),n.content}function oC(t){return Te.dirname(t)}var fg=[0],aC={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:Xi,onTilesetLoad:{type:"function",value:t=>{}},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:(t,e,r)=>{}},_getMeshColor:{type:"function",value:t=>[255,255,255]}},Wi=class extends be.CompositeLayer{initializeState(){"onTileLoadFail"in this.props&&be.log.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){return Boolean(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:r,changeFlags:n}){if(e.data&&e.data!==r.data&&this._loadTileset(e.data),n.viewportChanged){let{activeViewports:s}=this.state;Object.keys(s).length&&(this._updateTileset(s),this.state.lastUpdatedViewports=s,this.state.activeViewports={})}if(n.propsChanged){let{layerMap:s}=this.state;for(let i in s)s[i].needsUpdate=!0}}activateViewport(e){let{activeViewports:r,lastUpdatedViewports:n}=this.state;this.internalState.viewport=e,r[e.id]=e;let s=n?.[e.id];(!s||!e.equals(s))&&(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:e,sourceLayer:r}){let n=r&&r.props.tile;return e.picked&&(e.object=n),e.sourceTile=n,e}filterSubLayer({layer:e,viewport:r}){let{tile:n}=e.props,{id:s}=r;return n.selected&&n.viewportIds.includes(s)}_updateAutoHighlight(e){let r=e.sourceTile,n=this.state.layerMap[r?.id];n&&n.layer&&n.layer.updateAutoHighlight(e)}async _loadTileset(e){let{loadOptions:r={}}=this.props,n=this.props.loader||this.props.loaders,s=Array.isArray(n)?n[0]:n,i={loadOptions:{...r}},o=e;if(s.preload){let l=await s.preload(e,r);l.url&&(o=l.url),l.headers&&(i.loadOptions.fetch={...i.loadOptions.fetch,headers:l.headers}),Object.assign(i,l)}let a=await(0,gg.load)(o,s,i.loadOptions),c=new yn(a,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,...i});this.setState({tileset3d:c,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(c)}_onTileLoad(e){let{lastUpdatedViewports:r}=this.state;this.props.onTileLoad(e),this._updateTileset(r),this.setNeedsUpdate()}_onTileUnload(e){delete this.state.layerMap[e.id],this.props.onTileUnload(e)}_updateTileset(e){if(!e)return;let{tileset3d:r}=this.state,{timeline:n}=this.context,s=Object.keys(e).length;!n||!s||!r||r.selectTiles(Object.values(e)).then(i=>{this.state.frameNumber!==i&&this.setState({frameNumber:i})})}_getSubLayer(e,r){if(!e.content)return null;switch(e.type){case re.POINTCLOUD:return this._makePointCloudLayer(e,r);case re.SCENEGRAPH:return this._make3DModelLayer(e);case re.MESH:return this._makeSimpleMeshLayer(e,r);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${e.content.type}`)}}_makePointCloudLayer(e,r){let{attributes:n,pointCount:s,constantRGBA:i,cartographicOrigin:o,modelMatrix:a}=e.content,{positions:c,normals:l,colors:h}=n;if(!c)return null;let f=r&&r.props.data||{header:{vertexCount:s},attributes:{POSITION:c,NORMAL:l,COLOR_0:h}},{pointSize:u,getPointColor:d}=this.props,p=this.getSubLayerClass("pointcloud",dg.PointCloudLayer);return new p({pointSize:u},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${e.id}`,tile:e,data:f,coordinateSystem:be.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:o,modelMatrix:a,getColor:i||d,_offset:0})}_make3DModelLayer(e){let{gltf:r,instances:n,cartographicOrigin:s,modelMatrix:i}=e.content,o=this.getSubLayerClass("scenegraph",pg.ScenegraphLayer);return new o({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${e.id}`,tile:e,data:n||fg,scenegraph:r,coordinateSystem:be.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:s,modelMatrix:i,getTransformMatrix:a=>a.modelMatrix,getPosition:[0,0,0],_offset:0})}_makeSimpleMeshLayer(e,r){let n=e.content,{attributes:s,indices:i,modelMatrix:o,cartographicOrigin:a,coordinateSystem:c=be.COORDINATE_SYSTEM.METER_OFFSETS,material:l,featureIds:h}=n,{_getMeshColor:f}=this.props,u=r&&r.props.mesh||new ug.Geometry({topology:"triangle-list",attributes:cC(s),indices:i}),d=this.getSubLayerClass("mesh",Cn);return new d(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${e.id}`,tile:e,mesh:u,data:fg,getColor:f(e),pbrMaterial:l,modelMatrix:o,coordinateOrigin:a,coordinateSystem:c,featureIds:h,_offset:0})}renderLayers(){let{tileset3d:e,layerMap:r}=this.state;return e?e.tiles.map(n=>{let s=r[n.id]=r[n.id]||{tile:n},{layer:i}=s;return n.selected&&(i?s.needsUpdate&&(i=this._getSubLayer(n,i),s.needsUpdate=!1):i=this._getSubLayer(n)),s.layer=i,i}).filter(Boolean):null}},Ln=Wi;(()=>{Wi.defaultProps=aC})(),(()=>{Wi.layerName="Tile3DLayer"})();function cC(t){let e={};return e.positions={...t.positions,value:new Float32Array(t.positions.value)},t.normals&&(e.normals=t.normals),t.texCoords&&(e.texCoords=t.texCoords),t.colors&&(e.colors=t.colors),t.uvRegions&&(e.uvRegions=t.uvRegions),e}var Yi=v(Lt(),1),al=v(qs(),1),xg=v(Lt(),1);var lC=new Map([["centerX",Float64Array.BYTES_PER_ELEMENT],["centerY",Float64Array.BYTES_PER_ELEMENT],["centerZ",Float64Array.BYTES_PER_ELEMENT],["minHeight",Float32Array.BYTES_PER_ELEMENT],["maxHeight",Float32Array.BYTES_PER_ELEMENT],["boundingSphereCenterX",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterY",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterZ",Float64Array.BYTES_PER_ELEMENT],["boundingSphereRadius",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointX",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointY",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointZ",Float64Array.BYTES_PER_ELEMENT]]);function nl(t){return t>>1^-(t&1)}function hC(t){let e=0,r={};for(let[n,s]of lC){let i=s===8?t.getFloat64:t.getFloat32;r[n]=i.call(t,e,!0),e+=s}return{header:r,headerEndPosition:e}}function fC(t,e){let r=e,n=3,s=t.getUint32(r,!0),i=new Uint16Array(s*n);r+=Uint32Array.BYTES_PER_ELEMENT;let o=Uint16Array.BYTES_PER_ELEMENT,a=s*o,c=r,l=c+a,h=l+a,f=0,u=0,d=0;for(let p=0;p<s;p++)f+=nl(t.getUint16(c+o*p,!0)),u+=nl(t.getUint16(l+o*p,!0)),d+=nl(t.getUint16(h+o*p,!0)),i[p]=f,i[p+s]=u,i[p+s*2]=d;return r+=a*3,{vertexData:i,vertexDataEndPosition:r}}function Hn(t,e,r,n){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i;if(n===2?i=new Uint16Array(t,e,r):i=new Uint32Array(t,e,r),!s)return i;let o=0;for(let a=0;a<i.length;++a){let c=i[a];i[a]=o-c,c===0&&++o}return i}function uC(t,e,r){let n=r,s=3,o=e.length/s>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT;n%o!==0&&(n+=o-n%o);let a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=a*3,l=Hn(t.buffer,n,c,o);return n+=c*o,{triangleIndicesEndPosition:n,triangleIndices:l}}function dC(t,e,r){let n=r,s=3,o=e.length/s>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT,a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=Hn(t.buffer,n,a,o,!1);n+=a*o;let l=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let h=Hn(t.buffer,n,l,o,!1);n+=l*o;let f=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let u=Hn(t.buffer,n,f,o,!1);n+=f*o;let d=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let p=Hn(t.buffer,n,d,o,!1);return n+=d*o,{edgeIndicesEndPosition:n,westIndices:c,southIndices:h,eastIndices:u,northIndices:p}}function pC(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function gC(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}function AC(t,e){let r={};if(t.byteLength<=e)return{extensions:r,extensionsEndPosition:e};let n=e;for(;n<t.byteLength;){let s=t.getUint8(n,!0);n+=Uint8Array.BYTES_PER_ELEMENT;let i=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let o=new DataView(t.buffer,n,i);switch(s){case 1:{r.vertexNormals=pC(o);break}case 2:{r.waterMask=gC(o);break}default:}n+=i}return{extensions:r,extensionsEndPosition:n}}var or={header:0,vertices:1,triangleIndices:2,edgeIndices:3,extensions:4},_C={maxDecodingStep:or.extensions};function sl(t,e){let r=Object.assign({},_C,e),n=new DataView(t),{header:s,headerEndPosition:i}=hC(n);if(r.maxDecodingStep<or.vertices)return{header:s};let{vertexData:o,vertexDataEndPosition:a}=fC(n,i);if(r.maxDecodingStep<or.triangleIndices)return{header:s,vertexData:o};let{triangleIndices:c,triangleIndicesEndPosition:l}=uC(n,o,a);if(r.maxDecodingStep<or.edgeIndices)return{header:s,vertexData:o,triangleIndices:c};let{westIndices:h,southIndices:f,eastIndices:u,northIndices:d,edgeIndicesEndPosition:p}=dC(n,o,l);if(r.maxDecodingStep<or.extensions)return{header:s,vertexData:o,triangleIndices:c,westIndices:h,northIndices:d,eastIndices:u,southIndices:f};let{extensions:_}=AC(n,p);return{header:s,vertexData:o,triangleIndices:c,westIndices:h,northIndices:d,eastIndices:u,southIndices:f,extensions:_}}function zi(t,e,r,n){let s=n?TC(n,t.POSITION.value):mC(e),i=new t.POSITION.value.constructor(s.length*6),o=new t.TEXCOORD_0.value.constructor(s.length*4),a=new e.constructor(s.length*6);for(let l=0;l<s.length;l++){let h=s[l];EC({edge:h,edgeIndex:l,attributes:t,skirtHeight:r,newPosition:i,newTexcoord0:o,newTriangles:a})}t.POSITION.value=jr(t.POSITION.value,i),t.TEXCOORD_0.value=jr(t.TEXCOORD_0.value,o);let c=e instanceof Array?e.concat(a):jr(e,a);return{attributes:t,triangles:c}}function mC(t){let e=[];for(let o=0;o<t.length;o+=3)e.push([t[o],t[o+1]]),e.push([t[o+1],t[o+2]]),e.push([t[o+2],t[o]]);e.sort((o,a)=>Math.min(...o)-Math.min(...a)||Math.max(...o)-Math.max(...a));let r=[],n=0;for(;n<e.length;){var s,i;e[n][0]===((s=e[n+1])===null||s===void 0?void 0:s[1])&&e[n][1]===((i=e[n+1])===null||i===void 0?void 0:i[0])?n+=2:(r.push(e[n]),n++)}return r}function TC(t,e){t.westIndices.sort((n,s)=>e[3*n+1]-e[3*s+1]),t.eastIndices.sort((n,s)=>e[3*s+1]-e[3*n+1]),t.southIndices.sort((n,s)=>e[3*s]-e[3*n]),t.northIndices.sort((n,s)=>e[3*n]-e[3*s]);let r=[];for(let n in t){let s=t[n];for(let i=0;i<s.length-1;i++)r.push([s[i],s[i+1]])}return r}function EC(t){let{edge:e,edgeIndex:r,attributes:n,skirtHeight:s,newPosition:i,newTexcoord0:o,newTriangles:a}=t,c=n.POSITION.value.length,l=r*2,h=r*2+1;i.set(n.POSITION.value.subarray(e[0]*3,e[0]*3+3),l*3),i[l*3+2]=i[l*3+2]-s,i.set(n.POSITION.value.subarray(e[1]*3,e[1]*3+3),h*3),i[h*3+2]=i[h*3+2]-s,o.set(n.TEXCOORD_0.value.subarray(e[0]*2,e[0]*2+2),l*2),o.set(n.TEXCOORD_0.value.subarray(e[1]*2,e[1]*2+2),h*2);let f=r*2*3;a[f]=e[0],a[f+1]=c/3+h,a[f+2]=e[1],a[f+3]=c/3+h,a[f+4]=e[0],a[f+5]=c/3+l}function il(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{bounds:r}=e,{header:n,vertexData:s,triangleIndices:i,westIndices:o,northIndices:a,eastIndices:c,southIndices:l}=sl(t,or.triangleIndices),h=i,f=RC(s,n,r),u=$e(f);if(e!=null&&e.skirtHeight){let{attributes:d,triangles:p}=zi(f,h,e.skirtHeight,{westIndices:o,northIndices:a,eastIndices:c,southIndices:l});f=d,h=p}return{loaderData:{header:{}},header:{vertexCount:h.length,boundingBox:u},schema:void 0,topology:"triangle-list",mode:4,indices:{value:h,size:1},attributes:f}}function RC(t,e,r){let{minHeight:n,maxHeight:s}=e,[i,o,a,c]=r||[0,0,1,1],l=a-i,h=c-o,f=s-n,u=t.length/3,d=new Float32Array(u*3),p=new Float32Array(u*2);for(let _=0;_<u;_++){let A=t[_]/32767,T=t[_+u]/32767,x=t[_+u*2]/32767;d[3*_+0]=A*l+i,d[3*_+1]=T*h+o,d[3*_+2]=x*f+n,p[2*_+0]=A,p[2*_+1]=T}return{POSITION:{value:d,size:3},TEXCOORD_0:{value:p,size:2}}}var Vn=class{constructor(e=257){this.gridSize=e;let r=e-1;if(r&r-1)throw new Error(`Expected grid size to be 2^n+1, got ${e}.`);this.numTriangles=r*r*2-2,this.numParentTriangles=this.numTriangles-r*r,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(this.numTriangles*4);for(let n=0;n<this.numTriangles;n++){let s=n+2,i=0,o=0,a=0,c=0,l=0,h=0;for(s&1?a=c=l=r:i=o=h=r;(s>>=1)>1;){let u=i+a>>1,d=o+c>>1;s&1?(a=i,c=o,i=l,o=h):(i=a,o=c,a=l,c=h),l=u,h=d}let f=n*4;this.coords[f+0]=i,this.coords[f+1]=o,this.coords[f+2]=a,this.coords[f+3]=c}}createTile(e){return new ol(e,this)}},ol=class{constructor(e,r){let n=r.gridSize;if(e.length!==n*n)throw new Error(`Expected terrain data of length ${n*n} (${n} x ${n}), got ${e.length}.`);this.terrain=e,this.martini=r,this.errors=new Float32Array(e.length),this.update()}update(){let{numTriangles:e,numParentTriangles:r,coords:n,gridSize:s}=this.martini,{terrain:i,errors:o}=this;for(let a=e-1;a>=0;a--){let c=a*4,l=n[c+0],h=n[c+1],f=n[c+2],u=n[c+3],d=l+f>>1,p=h+u>>1,_=d+p-h,A=p+l-d,T=(i[h*s+l]+i[u*s+f])/2,x=p*s+d,R=Math.abs(T-i[x]);if(o[x]=Math.max(o[x],R),a<r){let S=(h+A>>1)*s+(l+_>>1),B=(u+A>>1)*s+(f+_>>1);o[x]=Math.max(o[x],o[S],o[B])}}}getMesh(e=0){let{gridSize:r,indices:n}=this.martini,{errors:s}=this,i=0,o=0,a=r-1;n.fill(0);function c(d,p,_,A,T,x){let R=d+_>>1,S=p+A>>1;Math.abs(d-T)+Math.abs(p-x)>1&&s[S*r+R]>e?(c(T,x,d,p,R,S),c(_,A,T,x,R,S)):(n[p*r+d]=n[p*r+d]||++i,n[A*r+_]=n[A*r+_]||++i,n[x*r+T]=n[x*r+T]||++i,o++)}c(0,0,a,a,a,0),c(a,a,0,0,0,a);let l=new Uint16Array(i*2),h=new Uint32Array(o*3),f=0;function u(d,p,_,A,T,x){let R=d+_>>1,S=p+A>>1;if(Math.abs(d-T)+Math.abs(p-x)>1&&s[S*r+R]>e)u(T,x,d,p,R,S),u(_,A,T,x,R,S);else{let B=n[p*r+d]-1,M=n[A*r+_]-1,F=n[x*r+T]-1;l[2*B]=d,l[2*B+1]=p,l[2*M]=_,l[2*M+1]=A,l[2*F]=T,l[2*F+1]=x,h[f++]=B,h[f++]=M,h[f++]=F}}return u(0,0,a,a,a,0),u(a,a,0,0,0,a),{vertices:l,triangles:h}}};var Xn=class{constructor(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:r;this.data=e,this.width=r,this.height=n,this.coords=[],this.triangles=[],this._halfedges=[],this._candidates=[],this._queueIndices=[],this._queue=[],this._errors=[],this._rms=[],this._pending=[],this._pendingLen=0,this._rmsSum=0;let s=r-1,i=n-1,o=this._addPoint(0,0),a=this._addPoint(s,0),c=this._addPoint(0,i),l=this._addPoint(s,i),h=this._addTriangle(l,o,c,-1,-1,-1);this._addTriangle(o,l,a,h,-1,-1),this._flush()}run(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;for(;this.getMaxError()>e;)this.refine()}refine(){this._step(),this._flush()}getMaxError(){return this._errors[0]}getRMSD(){return this._rmsSum>0?Math.sqrt(this._rmsSum/(this.width*this.height)):0}heightAt(e,r){return this.data[this.width*r+e]}_flush(){let e=this.coords;for(let r=0;r<this._pendingLen;r++){let n=this._pending[r],s=2*this.triangles[n*3+0],i=2*this.triangles[n*3+1],o=2*this.triangles[n*3+2];this._findCandidate(e[s],e[s+1],e[i],e[i+1],e[o],e[o+1],n)}this._pendingLen=0}_findCandidate(e,r,n,s,i,o,a){let c=Math.min(e,n,i),l=Math.min(r,s,o),h=Math.max(e,n,i),f=Math.max(r,s,o),u=ar(n,s,i,o,c,l),d=ar(i,o,e,r,c,l),p=ar(e,r,n,s,c,l),_=s-r,A=e-n,T=o-s,x=n-i,R=r-o,S=i-e,B=ar(e,r,n,s,i,o),M=this.heightAt(e,r)/B,F=this.heightAt(n,s)/B,C=this.heightAt(i,o)/B,E=0,g=0,y=0,O=0;for(let b=l;b<=f;b++){let N=0;u<0&&T!==0&&(N=Math.max(N,Math.floor(-u/T))),d<0&&R!==0&&(N=Math.max(N,Math.floor(-d/R))),p<0&&_!==0&&(N=Math.max(N,Math.floor(-p/_)));let U=u+T*N,Y=d+R*N,W=p+_*N,Q=!1;for(let J=c+N;J<=h;J++){if(U>=0&&Y>=0&&W>=0){Q=!0;let q=M*U+F*Y+C*W,tt=Math.abs(q-this.heightAt(J,b));O+=tt*tt,tt>E&&(E=tt,g=J,y=b)}else if(Q)break;U+=T,Y+=R,W+=_}u+=x,d+=S,p+=A}(g===e&&y===r||g===n&&y===s||g===i&&y===o)&&(E=0),this._candidates[2*a]=g,this._candidates[2*a+1]=y,this._rms[a]=O,this._queuePush(a,E,O)}_step(){let e=this._queuePop(),r=e*3+0,n=e*3+1,s=e*3+2,i=this.triangles[r],o=this.triangles[n],a=this.triangles[s],c=this.coords[2*i],l=this.coords[2*i+1],h=this.coords[2*o],f=this.coords[2*o+1],u=this.coords[2*a],d=this.coords[2*a+1],p=this._candidates[2*e],_=this._candidates[2*e+1],A=this._addPoint(p,_);if(ar(c,l,h,f,p,_)===0)this._handleCollinear(A,r);else if(ar(h,f,u,d,p,_)===0)this._handleCollinear(A,n);else if(ar(u,d,c,l,p,_)===0)this._handleCollinear(A,s);else{let T=this._halfedges[r],x=this._halfedges[n],R=this._halfedges[s],S=this._addTriangle(i,o,A,T,-1,-1,r),B=this._addTriangle(o,a,A,x,-1,S+1),M=this._addTriangle(a,i,A,R,S+2,B+1);this._legalize(S),this._legalize(B),this._legalize(M)}}_addPoint(e,r){let n=this.coords.length>>1;return this.coords.push(e,r),n}_addTriangle(e,r,n,s,i,o){let a=arguments.length>6&&arguments[6]!==void 0?arguments[6]:this.triangles.length,c=a/3;return this.triangles[a+0]=e,this.triangles[a+1]=r,this.triangles[a+2]=n,this._halfedges[a+0]=s,this._halfedges[a+1]=i,this._halfedges[a+2]=o,s>=0&&(this._halfedges[s]=a+0),i>=0&&(this._halfedges[i]=a+1),o>=0&&(this._halfedges[o]=a+2),this._candidates[2*c+0]=0,this._candidates[2*c+1]=0,this._queueIndices[c]=-1,this._rms[c]=0,this._pending[this._pendingLen++]=c,a}_legalize(e){let r=this._halfedges[e];if(r<0)return;let n=e-e%3,s=r-r%3,i=n+(e+1)%3,o=n+(e+2)%3,a=s+(r+2)%3,c=s+(r+1)%3,l=this.triangles[o],h=this.triangles[e],f=this.triangles[i],u=this.triangles[a],d=this.coords;if(!xC(d[2*l],d[2*l+1],d[2*h],d[2*h+1],d[2*f],d[2*f+1],d[2*u],d[2*u+1]))return;let p=this._halfedges[i],_=this._halfedges[o],A=this._halfedges[a],T=this._halfedges[c];this._queueRemove(n/3),this._queueRemove(s/3);let x=this._addTriangle(l,u,f,-1,A,p,n),R=this._addTriangle(u,l,h,x,_,T,s);this._legalize(x+1),this._legalize(R+2)}_handleCollinear(e,r){let n=r-r%3,s=n+(r+1)%3,i=n+(r+2)%3,o=this.triangles[i],a=this.triangles[r],c=this.triangles[s],l=this._halfedges[s],h=this._halfedges[i],f=this._halfedges[r];if(f<0){let M=this._addTriangle(e,o,a,-1,h,-1,n),F=this._addTriangle(o,e,c,M,-1,l);this._legalize(M+1),this._legalize(F+2);return}let u=f-f%3,d=u+(f+2)%3,p=u+(f+1)%3,_=this.triangles[d],A=this._halfedges[d],T=this._halfedges[p];this._queueRemove(u/3);let x=this._addTriangle(o,a,e,h,-1,-1,n),R=this._addTriangle(a,_,e,T,-1,x+1,u),S=this._addTriangle(_,c,e,A,-1,R+1),B=this._addTriangle(c,o,e,l,x+2,S+1);this._legalize(x),this._legalize(R),this._legalize(S),this._legalize(B)}_queuePush(e,r,n){let s=this._queue.length;this._queueIndices[e]=s,this._queue.push(e),this._errors.push(r),this._rmsSum+=n,this._queueUp(s)}_queuePop(){let e=this._queue.length-1;return this._queueSwap(0,e),this._queueDown(0,e),this._queuePopBack()}_queuePopBack(){let e=this._queue.pop();return this._errors.pop(),this._rmsSum-=this._rms[e],this._queueIndices[e]=-1,e}_queueRemove(e){let r=this._queueIndices[e];if(r<0){let s=this._pending.indexOf(e);if(s!==-1)this._pending[s]=this._pending[--this._pendingLen];else throw new Error("Broken triangulation (something went wrong).");return}let n=this._queue.length-1;n!==r&&(this._queueSwap(r,n),this._queueDown(r,n)||this._queueUp(r)),this._queuePopBack()}_queueLess(e,r){return this._errors[e]>this._errors[r]}_queueSwap(e,r){let n=this._queue[e],s=this._queue[r];this._queue[e]=s,this._queue[r]=n,this._queueIndices[n]=r,this._queueIndices[s]=e;let i=this._errors[e];this._errors[e]=this._errors[r],this._errors[r]=i}_queueUp(e){let r=e;for(;;){let n=r-1>>1;if(n===r||!this._queueLess(r,n))break;this._queueSwap(n,r),r=n}}_queueDown(e,r){let n=e;for(;;){let s=2*n+1;if(s>=r||s<0)break;let i=s+1,o=s;if(i<r&&this._queueLess(i,s)&&(o=i),!this._queueLess(o,n))break;this._queueSwap(n,o),n=o}return n>e}};function ar(t,e,r,n,s,i){return(r-s)*(e-i)-(n-i)*(t-s)}function xC(t,e,r,n,s,i,o,a){let c=t-o,l=e-a,h=r-o,f=n-a,u=s-o,d=i-a,p=c*c+l*l,_=h*h+f*f,A=u*u+d*d;return c*(f*A-_*d)-l*(h*A-_*u)+p*(h*d-f*u)<0}function mg(t,e){let{meshMaxError:r,bounds:n,elevationDecoder:s}=e,{data:i,width:o,height:a}=t,c,l;switch(e.tesselator){case"martini":c=ki(i,o,a,s,e.tesselator),l=Ag(r,o,c);break;case"delatin":c=ki(i,o,a,s,e.tesselator),l=_g(r,o,a,c);break;default:o===a&&!(a&o-1)?(c=ki(i,o,a,s,"martini"),l=Ag(r,o,c)):(c=ki(i,o,a,s,"delatin"),l=_g(r,o,a,c));break}let{vertices:h}=l,{triangles:f}=l,u=SC(h,c,o,a,n),d=$e(u);if(e.skirtHeight){let{attributes:p,triangles:_}=zi(u,f,e.skirtHeight);u=p,f=_}return{loaderData:{header:{}},header:{vertexCount:f.length,boundingBox:d},mode:4,indices:{value:Uint32Array.from(f),size:1},attributes:u}}function Ag(t,e,r){let n=e+1,i=new Vn(n).createTile(r),{vertices:o,triangles:a}=i.getMesh(t);return{vertices:o,triangles:a}}function _g(t,e,r,n){let s=new Xn(n,e+1,r+1);s.run(t);let{coords:i,triangles:o}=s;return{vertices:i,triangles:o}}function ki(t,e,r,n,s){let{rScaler:i,bScaler:o,gScaler:a,offset:c}=n,l=new Float32Array((e+1)*(r+1));for(let h=0,f=0;f<r;f++)for(let u=0;u<e;u++,h++){let d=h*4,p=t[d+0],_=t[d+1],A=t[d+2];l[h+f]=p*i+_*a+A*o+c}if(s==="martini"){for(let h=(e+1)*e,f=0;f<e;f++,h++)l[h]=l[h-e-1];for(let h=r,f=0;f<r+1;f++,h+=r+1)l[h]=l[h-1]}return l}function SC(t,e,r,n,s){let i=r+1,o=t.length/2,a=new Float32Array(o*3),c=new Float32Array(o*2),[l,h,f,u]=s||[0,0,r,n],d=(f-l)/r,p=(u-h)/n;for(let _=0;_<o;_++){let A=t[_*2],T=t[_*2+1],x=T*i+A;a[3*_+0]=A*d+l,a[3*_+1]=-T*p+u,a[3*_+2]=e[x],c[2*_+0]=A/r,c[2*_+1]=T/n}return{POSITION:{value:a,size:3},TEXCOORD_0:{value:c,size:2}}}var Gi="4.1.0";var Ki={name:"Terrain",id:"terrain",module:"terrain",version:Gi,worker:!0,extensions:["png","pngraw","jpg","jpeg","gif","webp","bmp"],mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/bmp"],options:{terrain:{tesselator:"auto",bounds:void 0,meshMaxError:10,elevationDecoder:{rScaler:1,gScaler:0,bScaler:0,offset:0},skirtHeight:void 0}}};var Tg={name:"Quantized Mesh",id:"quantized-mesh",module:"terrain",version:Gi,worker:!0,extensions:["terrain"],mimeTypes:["application/vnd.quantized-mesh"],options:{"quantized-mesh":{bounds:[0,0,1,1],skirtHeight:null}}};var CC={...Ki,parse:BC};async function BC(t,e,r){let n={...e,mimeType:"application/x.image",image:{...e?.image,type:"data"}},s=await Ct(t,[],n,r),i={...CC.options.terrain,...e?.terrain};return mg(s,i)}var h4={...Tg,parseSync:(t,e)=>il(t,e?.["quantized-mesh"]),parse:async(t,e)=>il(t,e?.["quantized-mesh"])};var Eg=[1],MC={...te.defaultProps,elevationData:Ie,texture:{...Ie,optional:!0},meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0,loaders:[Ki]};function Rg(t){return Array.isArray(t)?t.join(";"):t||""}var Ji=class extends Yi.CompositeLayer{updateState({props:e,oldProps:r}){let n=e.elevationData!==r.elevationData;if(n){let{elevationData:i}=e,o=i&&(Array.isArray(i)||i.includes("{x}")&&i.includes("{y}"));this.setState({isTiled:o})}let s=n||e.meshMaxError!==r.meshMaxError||e.elevationDecoder!==r.elevationDecoder||e.bounds!==r.bounds;if(!this.state.isTiled&&s){let i=this.loadTerrain(e);this.setState({terrain:i})}e.workerUrl&&Yi.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:e,bounds:r,elevationDecoder:n,meshMaxError:s,signal:i}){if(!e)return null;let o=this.getLoadOptions();o={...o,terrain:{skirtHeight:this.state.isTiled?s*2:0,...o?.terrain,bounds:r,meshMaxError:s,elevationDecoder:n}};let{fetch:a}=this.props;return a(e,{propName:"elevationData",layer:this,loadOptions:o,signal:i})}getTiledTerrainData(e){let{elevationData:r,fetch:n,texture:s,elevationDecoder:i,meshMaxError:o}=this.props,{viewport:a}=this.context,c=$t(r,e),l=s&&$t(s,e),{signal:h}=e,f=[0,0],u=[0,0];if(a.isGeospatial){let A=e.bbox;f=a.projectFlat([A.west,A.south]),u=a.projectFlat([A.east,A.north])}else{let A=e.bbox;f=[A.left,A.bottom],u=[A.right,A.top]}let d=[f[0],f[1],u[0],u[1]],p=this.loadTerrain({elevationData:c,bounds:d,elevationDecoder:i,meshMaxError:o,signal:h}),_=l?n(l,{propName:"texture",layer:this,loaders:[],signal:h}).catch(A=>null):Promise.resolve(null);return Promise.all([p,_])}renderSubLayers(e){let r=this.getSubLayerClass("mesh",al.SimpleMeshLayer),{color:n,wireframe:s,material:i}=this.props,{data:o}=e;if(!o)return null;let[a,c]=o;return new r(e,{data:Eg,mesh:a,texture:c,_instanced:!1,coordinateSystem:xg.COORDINATE_SYSTEM.CARTESIAN,getPosition:l=>[0,0,0],getColor:n,wireframe:s,material:i})}onViewportLoad(e){if(!e)return;let{zRange:r}=this.state,n=e.map(o=>o.content).filter(Boolean).map(o=>o[0].header.boundingBox.map(c=>c[2]));if(n.length===0)return;let s=Math.min(...n.map(o=>o[0])),i=Math.max(...n.map(o=>o[1]));(!r||s<r[0]||i>r[1])&&this.setState({zRange:[s,i]})}renderLayers(){let{color:e,material:r,elevationData:n,texture:s,wireframe:i,meshMaxError:o,elevationDecoder:a,tileSize:c,maxZoom:l,minZoom:h,extent:f,maxRequests:u,onTileLoad:d,onTileUnload:p,onTileError:_,maxCacheSize:A,maxCacheByteSize:T,refinementStrategy:x}=this.props;if(this.state.isTiled)return new te(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:Rg(n),texture:Rg(s),meshMaxError:o,elevationDecoder:a}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:c,maxZoom:l,minZoom:h,extent:f,maxRequests:u,onTileLoad:d,onTileUnload:p,onTileError:_,maxCacheSize:A,maxCacheByteSize:T,refinementStrategy:x});if(!n)return null;let R=this.getSubLayerClass("mesh",al.SimpleMeshLayer);return new R(this.getSubLayerProps({id:"mesh"}),{data:Eg,mesh:this.state.terrain,texture:s,_instanced:!1,getPosition:S=>[0,0,0],getColor:e,material:r,wireframe:i})}},Wn=Ji;(()=>{Ji.defaultProps=MC})(),(()=>{Ji.layerName="TerrainLayer"})();var ao=v(Lt(),1),Bl=v(Ut(),1),r0=v(Cg(),1);var zn={x:0,y:1,z:2};function cr(t,e={}){let{start:r=0,end:n=t.length,plane:s="xy"}=e,i=e.size||2,o=0,a=zn[s[0]],c=zn[s[1]];for(let l=r,h=n-i;l<n;l+=i)o+=(t[l+a]-t[h+a])*(t[l+c]+t[h+c]),h=l;return o/2}function ll(t,e,r=2,n,s="xy"){let i=e&&e.length,o=i?e[0]*r:t.length,a=Mg(t,0,o,r,!0,n&&n[0],s),c=[];if(!a||a.next===a.prev)return c;let l,h,f,u,d,p,_;if(i&&(a=PC(t,e,a,r,n,s)),t.length>80*r){u=h=t[0],d=f=t[1];for(let A=r;A<o;A+=r)p=t[A],_=t[A+1],p<u&&(u=p),_<d&&(d=_),p>h&&(h=p),_>f&&(f=_);l=Math.max(h-u,f-d),l=l!==0?32767/l:0}return kn(a,c,r,u,d,l,0),c}function Mg(t,e,r,n,s,i,o){let a,c;i===void 0&&(i=cr(t,{start:e,end:r,size:n,plane:o}));let l=zn[o[0]],h=zn[o[1]];if(s===i<0)for(a=e;a<r;a+=n)c=Bg(a,t[a+l],t[a+h],c);else for(a=r-n;a>=e;a-=n)c=Bg(a,t[a+l],t[a+h],c);return c&&Zi(c,c.next)&&(Kn(c),c=c.next),c}function lr(t,e){if(!t)return t;e||(e=t);let r=t,n;do if(n=!1,!r.steiner&&(Zi(r,r.next)||rt(r.prev,r,r.next)===0)){if(Kn(r),r=e=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==e);return e}function kn(t,e,r,n,s,i,o){if(!t)return;!o&&i&&LC(t,n,s,i);let a=t,c,l;for(;t.prev!==t.next;){if(c=t.prev,l=t.next,i?NC(t,n,s,i):FC(t)){e.push(c.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),Kn(t),t=l.next,a=l.next;continue}if(t=l,t===a){o?o===1?(t=OC(lr(t),e,r),kn(t,e,r,n,s,i,2)):o===2&&bC(t,e,r,n,s,i):kn(lr(t),e,r,n,s,i,1);break}}}function FC(t){let e=t.prev,r=t,n=t.next;if(rt(e,r,n)>=0)return!1;let s=e.x,i=r.x,o=n.x,a=e.y,c=r.y,l=n.y,h=s<i?s<o?s:o:i<o?i:o,f=a<c?a<l?a:l:c<l?c:l,u=s>i?s>o?s:o:i>o?i:o,d=a>c?a>l?a:l:c>l?c:l,p=n.next;for(;p!==e;){if(p.x>=h&&p.x<=u&&p.y>=f&&p.y<=d&&kr(s,a,i,c,o,l,p.x,p.y)&&rt(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function NC(t,e,r,n){let s=t.prev,i=t,o=t.next;if(rt(s,i,o)>=0)return!1;let a=s.x,c=i.x,l=o.x,h=s.y,f=i.y,u=o.y,d=a<c?a<l?a:l:c<l?c:l,p=h<f?h<u?h:u:f<u?f:u,_=a>c?a>l?a:l:c>l?c:l,A=h>f?h>u?h:u:f>u?f:u,T=cl(d,p,e,r,n),x=cl(_,A,e,r,n),R=t.prevZ,S=t.nextZ;for(;R&&R.z>=T&&S&&S.z<=x;){if(R.x>=d&&R.x<=_&&R.y>=p&&R.y<=A&&R!==s&&R!==o&&kr(a,h,c,f,l,u,R.x,R.y)&&rt(R.prev,R,R.next)>=0||(R=R.prevZ,S.x>=d&&S.x<=_&&S.y>=p&&S.y<=A&&S!==s&&S!==o&&kr(a,h,c,f,l,u,S.x,S.y)&&rt(S.prev,S,S.next)>=0))return!1;S=S.nextZ}for(;R&&R.z>=T;){if(R.x>=d&&R.x<=_&&R.y>=p&&R.y<=A&&R!==s&&R!==o&&kr(a,h,c,f,l,u,R.x,R.y)&&rt(R.prev,R,R.next)>=0)return!1;R=R.prevZ}for(;S&&S.z<=x;){if(S.x>=d&&S.x<=_&&S.y>=p&&S.y<=A&&S!==s&&S!==o&&kr(a,h,c,f,l,u,S.x,S.y)&&rt(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function OC(t,e,r){let n=t;do{let s=n.prev,i=n.next.next;!Zi(s,i)&&yg(s,n,n.next,i)&&Gn(s,i)&&Gn(i,s)&&(e.push(s.i/r|0),e.push(n.i/r|0),e.push(i.i/r|0),Kn(n),Kn(n.next),n=t=i),n=n.next}while(n!==t);return lr(n)}function bC(t,e,r,n,s,i){let o=t;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&XC(o,a)){let c=Ig(o,a);o=lr(o,o.next),c=lr(c,c.next),kn(o,e,r,n,s,i,0),kn(c,e,r,n,s,i,0);return}a=a.next}o=o.next}while(o!==t)}function PC(t,e,r,n,s,i){let o=[],a,c,l,h,f;for(a=0,c=e.length;a<c;a++)l=e[a]*n,h=a<c-1?e[a+1]*n:t.length,f=Mg(t,l,h,n,!1,s&&s[a+1],i),f===f.next&&(f.steiner=!0),o.push(VC(f));for(o.sort(DC),a=0;a<o.length;a++)r=wC(o[a],r);return r}function DC(t,e){return t.x-e.x}function wC(t,e){let r=vC(t,e);if(!r)return e;let n=Ig(r,t);return lr(n,n.next),lr(r,r.next)}function vC(t,e){let r=e,n=t.x,s=t.y,i=-1/0,o;do{if(s<=r.y&&s>=r.next.y&&r.next.y!==r.y){let u=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(u<=n&&u>i&&(i=u,o=r.x<r.next.x?r:r.next,u===n))return o}r=r.next}while(r!==e);if(!o)return null;let a=o,c=o.x,l=o.y,h=1/0,f;r=o;do n>=r.x&&r.x>=c&&n!==r.x&&kr(s<l?n:i,s,c,l,s<l?i:n,s,r.x,r.y)&&(f=Math.abs(s-r.y)/(n-r.x),Gn(r,t)&&(f<h||f===h&&(r.x>o.x||r.x===o.x&&UC(o,r)))&&(o=r,h=f)),r=r.next;while(r!==a);return o}function UC(t,e){return rt(t.prev,t,e.prev)<0&&rt(e.next,t,t.next)<0}function LC(t,e,r,n){let s=t;do s.z===0&&(s.z=cl(s.x,s.y,e,r,n)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==t);s.prevZ.nextZ=null,s.prevZ=null,HC(s)}function HC(t){let e,r,n=1,s,i,o,a,c,l;do{for(i=t,t=null,l=null,s=0;i;){for(s++,a=i,o=0,r=0;r<n&&(o++,a=a.nextZ,!!a);r++);for(c=n;o>0||c>0&&a;)o!==0&&(c===0||!a||i.z<=a.z)?(e=i,i=i.nextZ,o--):(e=a,a=a.nextZ,c--),l?l.nextZ=e:t=e,e.prevZ=l,l=e;i=a}l.nextZ=null,n*=2}while(s>1);return t}function cl(t,e,r,n,s){return t=(t-r)*s|0,e=(e-n)*s|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function VC(t){let e=t,r=t;do(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;while(e!==t);return r}function kr(t,e,r,n,s,i,o,a){return(s-o)*(e-a)>=(t-o)*(i-a)&&(t-o)*(n-a)>=(r-o)*(e-a)&&(r-o)*(i-a)>=(s-o)*(n-a)}function XC(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!WC(t,e)&&(Gn(t,e)&&Gn(e,t)&&zC(t,e)&&(rt(t.prev,t,e.prev)||rt(t,e.prev,e))||Zi(t,e)&&rt(t.prev,t,t.next)>0&&rt(e.prev,e,e.next)>0)}function rt(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Zi(t,e){return t.x===e.x&&t.y===e.y}function yg(t,e,r,n){let s=ji(rt(t,e,r)),i=ji(rt(t,e,n)),o=ji(rt(r,n,t)),a=ji(rt(r,n,e));return!!(s!==i&&o!==a||s===0&&qi(t,r,e)||i===0&&qi(t,n,e)||o===0&&qi(r,t,n)||a===0&&qi(r,e,n))}function qi(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function ji(t){return t>0?1:t<0?-1:0}function WC(t,e){let r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&yg(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function Gn(t,e){return rt(t.prev,t,t.next)<0?rt(t,e,t.next)>=0&&rt(t,t.prev,e)>=0:rt(t,e,t.prev)<0||rt(t,t.next,e)<0}function zC(t,e){let r=t,n=!1,s=(t.x+e.x)/2,i=(t.y+e.y)/2;do r.y>i!=r.next.y>i&&r.next.y!==r.y&&s<(r.next.x-r.x)*(i-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function Ig(t,e){let r=new Jn(t.i,t.x,t.y),n=new Jn(e.i,e.x,e.y),s=t.next,i=e.prev;return t.next=e,e.prev=t,r.next=s,s.prev=r,n.next=r,r.prev=n,i.next=n,n.prev=i,n}function Bg(t,e,r,n){let s=new Jn(t,e,r);return n?(s.next=n.next,s.prev=n,n.next.prev=s,n.next=s):(s.prev=s,s.next=s),s}function Kn(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}var Jn=class{constructor(e,r,n){P(this,"i",void 0),P(this,"x",void 0),P(this,"y",void 0),P(this,"prev",null),P(this,"next",null),P(this,"z",0),P(this,"prevZ",null),P(this,"nextZ",null),P(this,"steiner",!1),this.i=e,this.x=r,this.y=n}};function ul(t,e,r){let n=YC(t),s=Object.keys(n).filter(i=>n[i]!==Array);return qC(t,{propArrayTypes:n,...e},{numericPropKeys:r&&r.numericPropKeys||s,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function YC(t){let e={};for(let r of t)if(r.properties)for(let n in r.properties){let s=r.properties[n];e[n]=eB(s,e[n])}return e}function qC(t,e,r){let{pointPositionsCount:n,pointFeaturesCount:s,linePositionsCount:i,linePathsCount:o,lineFeaturesCount:a,polygonPositionsCount:c,polygonObjectsCount:l,polygonRingsCount:h,polygonFeaturesCount:f,propArrayTypes:u,coordLength:d}=e,{numericPropKeys:p=[],PositionDataType:_=Float32Array,triangulate:A=!0}=r,T=t[0]&&"id"in t[0],x=t.length>65535?Uint32Array:Uint16Array,R={type:"Point",positions:new _(n*d),globalFeatureIds:new x(n),featureIds:s>65535?new Uint32Array(n):new Uint16Array(n),numericProps:{},properties:[],fields:[]},S={type:"LineString",pathIndices:i>65535?new Uint32Array(o+1):new Uint16Array(o+1),positions:new _(i*d),globalFeatureIds:new x(i),featureIds:a>65535?new Uint32Array(i):new Uint16Array(i),numericProps:{},properties:[],fields:[]},B={type:"Polygon",polygonIndices:c>65535?new Uint32Array(l+1):new Uint16Array(l+1),primitivePolygonIndices:c>65535?new Uint32Array(h+1):new Uint16Array(h+1),positions:new _(c*d),globalFeatureIds:new x(c),featureIds:f>65535?new Uint32Array(c):new Uint16Array(c),numericProps:{},properties:[],fields:[]};A&&(B.triangles=[]);for(let F of[R,S,B])for(let C of p){let E=u[C];F.numericProps[C]=new E(F.positions.length/d)}S.pathIndices[o]=i,B.polygonIndices[l]=c,B.primitivePolygonIndices[h]=c;let M={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let F of t){let C=F.geometry,E=F.properties||{};switch(C.type){case"Point":jC(C,R,M,d,E),R.properties.push(fl(E,p)),T&&R.fields.push({id:F.id}),M.pointFeature++;break;case"LineString":ZC(C,S,M,d,E),S.properties.push(fl(E,p)),T&&S.fields.push({id:F.id}),M.lineFeature++;break;case"Polygon":QC(C,B,M,d,E),B.properties.push(fl(E,p)),T&&B.fields.push({id:F.id}),M.polygonFeature++;break;default:throw new Error("Invalid geometry type")}M.feature++}return tB(R,S,B,d)}function jC(t,e,r,n,s){e.positions.set(t.data,r.pointPosition*n);let i=t.data.length/n;dl(e,s,r.pointPosition,i),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+i),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+i),r.pointPosition+=i}function ZC(t,e,r,n,s){e.positions.set(t.data,r.linePosition*n);let i=t.data.length/n;dl(e,s,r.linePosition,i),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+i),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+i);for(let o=0,a=t.indices.length;o<a;++o){let c=t.indices[o],l=o===a-1?t.data.length:t.indices[o+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(l-c)/n}}function QC(t,e,r,n,s){e.positions.set(t.data,r.polygonPosition*n);let i=t.data.length/n;dl(e,s,r.polygonPosition,i),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+i),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+i);for(let o=0,a=t.indices.length;o<a;++o){let c=r.polygonPosition;e.polygonIndices[r.polygonObject++]=c;let l=t.areas[o],h=t.indices[o],f=t.indices[o+1];for(let d=0,p=h.length;d<p;++d){let _=h[d],A=d===p-1?f===void 0?t.data.length:f[0]:h[d+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(A-_)/n}let u=r.polygonPosition;$C(e,l,h,{startPosition:c,endPosition:u,coordLength:n})}}function $C(t,e,r,n){let{startPosition:s,endPosition:i,coordLength:o}=n;if(!t.triangles)return;let a=s*o,c=i*o,l=t.positions.subarray(a,c),h=r[0],f=r.slice(1).map(d=>(d-h)/o),u=ll(l,f,o,e);for(let d=0,p=u.length;d<p;++d)t.triangles.push(s+u[d])}function hl(t,e){let r={};for(let n in t)r[n]={value:t[n],size:e};return r}function tB(t,e,r,n){let s={shape:"binary-feature-collection",points:{...t,positions:{value:t.positions,size:n},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:hl(t.numericProps,1)},lines:{...e,positions:{value:e.positions,size:n},pathIndices:{value:e.pathIndices,size:1},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:hl(e.numericProps,1)},polygons:{...r,positions:{value:r.positions,size:n},polygonIndices:{value:r.polygonIndices,size:1},primitivePolygonIndices:{value:r.primitivePolygonIndices,size:1},globalFeatureIds:{value:r.globalFeatureIds,size:1},featureIds:{value:r.featureIds,size:1},numericProps:hl(r.numericProps,1)}};return s.polygons&&r.triangles&&(s.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),s}function dl(t,e,r,n){for(let s in t.numericProps)if(s in e){let i=e[s];t.numericProps[s].fill(i,r,r+n)}}function fl(t,e){let r={};for(let n in t)e.includes(n)||(r[n]=t[n]);return r}function eB(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function to(t,e){let r=e?.globalFeatureId;return r!==void 0?rB(t,r):nB(t,e?.type)}function rB(t,e){let r=bg(t);for(let n of r){let s=0,i=n.featureIds.value[0];for(let o=0;o<n.featureIds.value.length;o++){let a=n.featureIds.value[o];if(a!==i){if(e===n.globalFeatureIds.value[s])return Qi(n,s,o);s=o,i=a}}if(e===n.globalFeatureIds.value[s])return Qi(n,s,n.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function nB(t,e){let r=bg(t,e);return sB(r)}function Og(t,e,r){switch(t.type){case"Point":return cB(t,e,r);case"LineString":return aB(t,e,r);case"Polygon":return Pg(t,e,r);default:let n=t;throw new Error(`Unsupported geometry type: ${n?.type}`)}}function bg(t,e){let r=[];return t.points&&(t.points.type="Point",r.push(t.points)),t.lines&&(t.lines.type="LineString",r.push(t.lines)),t.polygons&&(t.polygons.type="Polygon",r.push(t.polygons)),r}function sB(t){let e=[];for(let r of t){if(r.featureIds.value.length===0)continue;let n=0,s=r.featureIds.value[0];for(let i=0;i<r.featureIds.value.length;i++){let o=r.featureIds.value[i];o!==s&&(e.push(Qi(r,n,i)),n=i,s=o)}e.push(Qi(r,n,r.featureIds.value.length))}return e}function Qi(t,e,r){let n=Og(t,e,r),s=oB(t,e,r),i=iB(t,e,r);return{type:"Feature",geometry:n,properties:s,...i}}function iB(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2?arguments[2]:void 0;return t.fields&&t.fields[t.featureIds.value[e]]}function oB(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2?arguments[2]:void 0,n=Object.assign({},t.properties[t.featureIds.value[e]]);for(let s in t.numericProps)n[s]=t.numericProps[s].value[e];return n}function Pg(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1/0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1/0,{positions:n}=t,s=t.polygonIndices.value.filter(c=>c>=e&&c<=r),i=t.primitivePolygonIndices.value.filter(c=>c>=e&&c<=r);if(!(s.length>2)){let c=[];for(let l=0;l<i.length-1;l++){let h=i[l],f=i[l+1],u=$i(n,h,f);c.push(u)}return{type:"Polygon",coordinates:c}}let a=[];for(let c=0;c<s.length-1;c++){let l=s[c],h=s[c+1],f=Pg(t,l,h).coordinates;a.push(f)}return{type:"MultiPolygon",coordinates:a}}function aB(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1/0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1/0,{positions:n}=t,s=t.pathIndices.value.filter(a=>a>=e&&a<=r);if(!(s.length>2))return{type:"LineString",coordinates:$i(n,s[0],s[1])};let o=[];for(let a=0;a<s.length-1;a++){let c=$i(n,s[a],s[a+1]);o.push(c)}return{type:"MultiLineString",coordinates:o}}function cB(t,e,r){let{positions:n}=t,s=$i(n,e,r);return s.length>1?{type:"MultiPoint",coordinates:s}:{type:"Point",coordinates:s[0]}}function $i(t,e,r){e=e||0,r=r||t.value.length/t.size;let n=[];for(let s=e;s<r;s++){let i=Array();for(let o=s*t.size;o<(s+1)*t.size;o++)i.push(Number(t.value[o]));n.push(i)}return n}var El=v(Vg(),1);function Xg(t){let e=t.length;if(e<=1)return[t];let r=[],n,s;for(let i=0;i<e;i++){let o=MB(t[i]);o!==0&&(s===void 0&&(s=o<0),s===o<0?(n&&r.push(n),n=[t[i]]):n&&n.push(t[i]))}return n&&r.push(n),r}function MB(t){let e=0;for(let r=0,n=t.length-1,s,i;r<t.length;n=r++)s=t[r],i=t[n],e+=(i[0]-s[0])*(s[1]+i[1]);return e}function Wg(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?yB(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function yB(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],s=e._values[t.readVarint()];e.properties[n]=s}}var hr=class{static get types(){return["Unknown","Point","LineString","Polygon"]}constructor(e,r,n,s,i){this.properties=void 0,this.extent=void 0,this.type=void 0,this.id=void 0,this._pbf=void 0,this._geometry=void 0,this._keys=void 0,this._values=void 0,this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=s,this._values=i,e.readFields(Wg,this,r)}loadGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,s=0,i=0,o=0,a=[],c;for(;e.pos<r;){if(s<=0){let l=e.readVarint();n=l&7,s=l>>3}if(s--,n===1||n===2)i+=e.readSVarint(),o+=e.readSVarint(),n===1&&(c&&a.push(c),c=[]),c&&c.push([i,o]);else if(n===7)c&&c.push(c[0].slice());else throw new Error(`unknown command ${n}`)}return c&&a.push(c),a}bbox(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,s=0,i=0,o=0,a=1/0,c=-1/0,l=1/0,h=-1/0;for(;e.pos<r;){if(s<=0){let f=e.readVarint();n=f&7,s=f>>3}if(s--,n===1||n===2)i+=e.readSVarint(),o+=e.readSVarint(),i<a&&(a=i),i>c&&(c=i),o<l&&(l=o),o>h&&(h=o);else if(n!==7)throw new Error(`unknown command ${n}`)}return[a,l,c,h]}_toGeoJSON(e){let r=this.loadGeometry(),n=hr.types[this.type],s,i;switch(this.type){case 1:let a=[];for(s=0;s<r.length;s++)a[s]=r[s][0];r=a,e(r,this);break;case 2:for(s=0;s<r.length;s++)e(r[s],this);break;case 3:for(r=Xg(r),s=0;s<r.length;s++)for(i=0;i<r[s].length;i++)e(r[s][i],this);break}r.length===1?r=r[0]:n=`Multi${n}`;let o={type:"Feature",geometry:{type:n,coordinates:r},properties:this.properties};return this.id!==null&&(o.id=this.id),o}toGeoJSON(e){if(typeof e=="function")return this._toGeoJSON(e);let{x:r,y:n,z:s}=e,i=this.extent*Math.pow(2,s),o=this.extent*r,a=this.extent*n;function c(l){for(let h=0;h<l.length;h++){let f=l[h];f[0]=(f[0]+o)*360/i-180;let u=180-(f[1]+a)*360/i;f[1]=360/Math.PI*Math.atan(Math.exp(u*Math.PI/180))-90}}return this._toGeoJSON(c)}};var Yn=class{constructor(e,r){this.version=void 0,this.name=void 0,this.extent=void 0,this.length=void 0,this._pbf=void 0,this._keys=void 0,this._values=void 0,this._features=void 0,this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(IB,this,r),this.length=this._features.length}feature(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let r=this._pbf.readVarint()+this._pbf.pos;return new hr(this._pbf,r,this.extent,this._keys,this._values)}};function IB(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(FB(r)))}function FB(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var qn=class{constructor(e,r){this.layers=void 0,this.layers=e.readFields(NB,{},r)}};function NB(t,e,r){if(t===3&&r){let n=new Yn(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function zg(t){let e=t.indices.length,r="Polygon";if(e<=1)return{type:r,data:t.data,areas:[[cr(t.data)]],indices:[t.indices]};let n=[],s=[],i=[],o=[],a,c=0;for(let l,h=0,f;h<e;h++){f=t.indices[h]-c,l=t.indices[h+1]-c||t.data.length;let u=t.data.slice(f,l),d=cr(u);if(d===0){let p=t.data.slice(0,f),_=t.data.slice(l);t.data=p.concat(_),c+=l-f;continue}a===void 0&&(a=d<0),a===d<0?(o.length&&(n.push(i),s.push(o)),o=[f],i=[d]):(i.push(d),o.push(f))}return i&&n.push(i),o.length&&s.push(o),{type:r,areas:n,indices:s,data:t.data}}function kg(t,e,r,n){for(let s=0,i=t.length;s<i;s+=2){t[s]=(t[s]+e)*360/n-180;let o=180-(t[s+1]+r)*360/n;t[s+1]=360/Math.PI*Math.atan(Math.exp(o*Math.PI/180))-90}}function Gg(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?OB(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function OB(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],s=e._values[t.readVarint()];e.properties[n]=s}}var Kg,fr,Al,no,_l,ml,jn;var Zn=class{constructor(e,r,n,s,i,o){this.properties=void 0,this.extent=void 0,this.type=void 0,this.id=void 0,this._pbf=void 0,this._geometry=void 0,this._keys=void 0,this._values=void 0,this._geometryInfo=void 0,this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=s,this._values=i,this._geometryInfo=o,e.readFields(Gg,this,r)}loadGeometry(){let e=this._pbf;e.pos=this._geometry,Kg=e.readVarint()+e.pos,fr=1,no=0,_l=0,ml=0,jn=0;let r=[],n=[];for(;e.pos<Kg;)if(no<=0&&(Al=e.readVarint(),fr=Al&7,no=Al>>3),no--,fr===1||fr===2)_l+=e.readSVarint(),ml+=e.readSVarint(),fr===1&&r.push(jn),n.push(_l,ml),jn+=2;else if(fr===7){if(jn>0){let s=r[r.length-1];n.push(n[s],n[s+1]),jn+=2}}else throw new Error(`unknown command ${fr}`);return{data:n,indices:r}}_toBinaryCoordinates(e){let r=this.loadGeometry(),n;e(r.data,this);let s=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=r.indices.length,n={type:"Point",...r};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=r.indices.length,this._geometryInfo.linePositionsCount+=r.data.length/s,n={type:"LineString",...r};break;case 3:n=zg(r),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=n.indices.length;for(let o of n.indices)this._geometryInfo.polygonRingsCount+=o.length;this._geometryInfo.polygonPositionsCount+=n.data.length/s;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let i={type:"Feature",geometry:n,properties:this.properties};return this.id!==null&&(i.id=this.id),i}toBinaryCoordinates(e){if(typeof e=="function")return this._toBinaryCoordinates(e);let{x:r,y:n,z:s}=e,i=this.extent*Math.pow(2,s),o=this.extent*r,a=this.extent*n;return this._toBinaryCoordinates(c=>kg(c,o,a,i))}};var Qn=class{constructor(e,r){this.version=void 0,this.name=void 0,this.extent=void 0,this.length=void 0,this._pbf=void 0,this._keys=void 0,this._values=void 0,this._features=void 0,this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(bB,this,r),this.length=this._features.length}feature(e,r){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let n=this._pbf.readVarint()+this._pbf.pos;return new Zn(this._pbf,n,this.extent,this._keys,this._values,r)}};function bB(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(PB(r)))}function PB(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var $n=class{constructor(e,r){this.layers=void 0,this.layers=e.readFields(DB,{},r)}};function DB(t,e,r){if(t===3&&r){let n=new Qn(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function so(t,e){var r,n;let s=vB(e),i=(e==null||(r=e.gis)===null||r===void 0?void 0:r.format)||(e==null||(n=e.mvt)===null||n===void 0?void 0:n.shape)||e?.shape;switch(i){case"columnar-table":return{shape:"columnar-table",data:Tl(t,s)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:Jg(t,s)};case"geojson":return Jg(t,s);case"binary-geometry":return Tl(t,s);case"binary":return Tl(t,s);default:throw new Error(i||"undefined shape")}}function Tl(t,e){let[r,n]=wB(t,e),s=ul(r,n);return s.byteLength=t.byteLength,s}function wB(t,e){let r=[],n={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(t.byteLength<=0)return[r,n];let s=new $n(new El.default(t));return(e&&Array.isArray(e.layers)?e.layers:Object.keys(s.layers)).forEach(o=>{let a=s.layers[o];if(a)for(let c=0;c<a.length;c++){let l=a.feature(c,n),h=LB(l,e,o);r.push(h)}}),[r,n]}function Jg(t,e){if(t.byteLength<=0)return[];let r=[],n=new qn(new El.default(t));return(Array.isArray(e.layers)?e.layers:Object.keys(n.layers)).forEach(i=>{let o=n.layers[i];if(o)for(let a=0;a<o.length;a++){let c=o.feature(a),l=UB(c,e,i);r.push(l)}}),r}function vB(t){var e;if(!(t!=null&&t.mvt))throw new Error("mvt options required");let r=((e=t.mvt)===null||e===void 0?void 0:e.coordinates)==="wgs84",{tileIndex:n}=t.mvt,s=n&&Number.isFinite(n.x)&&Number.isFinite(n.y)&&Number.isFinite(n.z);if(r&&!s)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return t.mvt}function UB(t,e,r){let n=t.toGeoJSON(e.coordinates==="wgs84"?e.tileIndex:HB);return e.layerProperty&&(n.properties[e.layerProperty]=r),n}function LB(t,e,r){let n=t.toBinaryCoordinates(e.coordinates==="wgs84"?e.tileIndex:VB);return e.layerProperty&&n.properties&&(n.properties[e.layerProperty]=r),n}function HB(t,e){let{extent:r}=e;for(let n=0;n<t.length;n++){let s=t[n];s[0]/=r,s[1]/=r}}function VB(t,e){let{extent:r}=e;for(let n=0,s=t.length;n<s;++n)t[n]/=r}var XB="4.1.0",io={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",version:XB,extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],worker:!0,category:"geometry",options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:null}}},WB={...io,parse:async(t,e)=>so(t,e),parseSync:so,binary:!0};var zB={Point:Yg,MultiPoint:kB,LineString:qg,MultiLineString:GB,Polygon:jg,MultiPolygon:KB};function Yg([t,e],[r,n],s){let i=Re(r[0],n[0],t),o=Re(r[1],n[1],e);return s.unprojectFlat([i,o])}function Rl(t,e,r){return t.map(n=>Yg(n,e,r))}function kB(t,e,r){return Rl(t,e,r)}function qg(t,e,r){return Rl(t,e,r)}function GB(t,e,r){return t.map(n=>qg(n,e,r))}function jg(t,e,r){return t.map(n=>Rl(n,e,r))}function KB(t,e,r){return t.map(n=>jg(n,e,r))}function Zg(t,e,r){let n=r.projectFlat([e.west,e.north]),s=r.projectFlat([e.east,e.south]),i=[n,s];return{...t,coordinates:zB[t.type](t.coordinates,i,r)}}var JB=["points","lines","polygons"];function xl(t,e,r,n){for(let s of JB){let i=t[s]&&YB(t[s],e,r,n);if(i>=0)return i}return-1}function YB(t,e,r,n){let s=t.featureIds.value;if(!s.length)return-1;let i=0,o=s[s.length-1]+1;if(n){let c=qB(t,n);if(c)i=c[0],o=c[1]+1;else return-1}let a=-1;if(e in t.numericProps){let c=t.numericProps[e].value.findIndex((l,h)=>l===r&&s[h]>=i&&s[h]<o);return c>=0?t.globalFeatureIds.value[c]:-1}else e?a=Qg(t.properties,c=>c[e]===r,i,o):t.fields&&(a=Qg(t.fields,c=>c.id===r,i,o));return a>=0?jB(t,a):-1}function qB(t,e){if(!t.__layers){let r={},{properties:n}=t;for(let s=0;s<n.length;s++){let{layerName:i}=n[s];i&&(r[i]?r[i][1]=s:r[i]=[s,s])}t.__layers=r}return t.__layers[e]}function jB(t,e){if(!t.__ids){let r=[],n=t.featureIds.value,s=t.globalFeatureIds.value;for(let i=0;i<n.length;i++)r[n[i]]=s[i];t.__ids=r}return t.__ids[e]}function Qg(t,e,r,n){for(let s=r;s<n;s++)if(e(t[s],s))return s;return-1}var Sl=512,ZB={...Bl.GeoJsonLayer.defaultProps,data:Ie,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[io],binary:!0},oo=class extends te{constructor(...e){super(...e)}initializeState(){super.initializeState();let e=this.context.viewport.resolution!==void 0?!1:this.props.binary;this.setState({binary:e,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return Boolean(this.state?.data&&super.isLoaded)}updateState({props:e,oldProps:r,context:n,changeFlags:s}){s.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:e,oldProps:r,context:n,changeFlags:s}),this._setWGS84PropertyForTiles());let{highlightColor:i}=e;i!==r.highlightColor&&Array.isArray(i)&&this.setState({highlightColor:i})}async _updateTileData(){let e=this.props.data,r=null;if(typeof e=="string"&&!Na(e)){let{onDataLoad:n,fetch:s}=this.props;this.setState({data:null,tileJSON:null});try{r=await s(e,{propName:"data",layer:this,loaders:[]})}catch(i){this.raiseError(i,"loading TileJSON"),e=null}n&&n(r,{propName:"data",layer:this})}else e&&typeof e=="object"&&"tilejson"in e&&(r=e);r&&(e=r.tiles),this.setState({data:e,tileJSON:r})}_getTilesetOptions(){let e=super._getTilesetOptions(),r=this.state.tileJSON,{minZoom:n,maxZoom:s}=this.props;return r&&(Number.isFinite(r.minzoom)&&r.minzoom>n&&(e.minZoom=r.minzoom),Number.isFinite(r.maxzoom)&&(!Number.isFinite(s)||r.maxzoom<s)&&(e.maxZoom=r.maxzoom)),e}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(e){let{data:r,binary:n}=this.state,{index:s,signal:i}=e,o=$t(r,e);if(!o)return Promise.reject("Invalid URL");let a=this.getLoadOptions(),{fetch:c}=this.props;return a={...a,mimeType:"application/x-protobuf",mvt:{...a?.mvt,coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:s},gis:n?{format:"binary"}:{}},c(o,{propName:"data",layer:this,loadOptions:a,signal:i})}renderSubLayers(e){let{x:r,y:n,z:s}=e.tile.index,i=Math.pow(2,s),o=Sl/i,a=-o,c=Sl*r/i,l=Sl*(1-n/i),h=new D().scale([o,a,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=h,e.coordinateOrigin=[c,l,0],e.coordinateSystem=ao.COORDINATE_SYSTEM.CARTESIAN,e.extensions=[...e.extensions||[],new r0.ClipExtension]);let f=super.renderSubLayers(e);return this.state.binary&&!(f instanceof Bl.GeoJsonLayer)&&ao.log.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),f}_updateAutoHighlight(e){let{uniqueIdProperty:r}=this.props,{hoveredFeatureId:n,hoveredFeatureLayerName:s}=this.state,i=e.object,o=null,a=null;i&&(o=Cl(i,r),a=$g(i));let{highlightColor:c}=this.props;typeof c=="function"&&(c=c(e)),(n!==o||s!==a)&&this.setState({highlightColor:c,hoveredFeatureId:o,hoveredFeatureLayerName:a})}getPickingInfo(e){let r=super.getPickingInfo(e),n=Boolean(this.context.viewport.resolution);if(this.state.binary&&r.index!==-1){let{data:s}=e.sourceLayer.props;r.object=to(s,{globalFeatureId:r.index})}return r.object&&!n&&(r.object=e0(r.object,r.tile.bbox,this.context.viewport)),r}getSubLayerPropsByTile(e){return{highlightedObjectIndex:this.getHighlightedObjectIndex(e),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(e){let{hoveredFeatureId:r,hoveredFeatureLayerName:n,binary:s}=this.state,{uniqueIdProperty:i,highlightedFeatureId:o}=this.props,a=e.content,c=t0(o);if(!(t0(r)||c))return-1;let h=c?o:r;return Array.isArray(a)?a.findIndex(f=>{let u=Cl(f,i)===h,d=c||$g(f)===n;return u&&d}):a&&s?xl(a,i,h,c?"":n):-1}_pickObjects(e){let{deck:r,viewport:n}=this.context,s=n.width,i=n.height,o=n.x,a=n.y,c=[this.id];return r.pickObjects({x:o,y:a,width:s,height:i,layerIds:c,maxObjects:e})}getRenderedFeatures(e=null){let r=this._pickObjects(e),n=new Set,s=[];for(let i of r){let o=Cl(i.object,this.props.uniqueIdProperty);o===void 0?s.push(i.object):n.has(o)||(n.add(o),s.push(i.object))}return s}_setWGS84PropertyForTiles(){let e="dataInWGS84";this.state.tileset.selectedTiles.forEach(n=>{n.hasOwnProperty(e)||Object.defineProperty(n,e,{get:()=>{if(!n.content)return null;if(this.state.binary&&Array.isArray(n.content)&&!n.content.length)return[];let{bbox:s}=n;if(n._contentWGS84===void 0&&Oa(s)){let i=this.state.binary?to(n.content):n.content;n._contentWGS84=i.map(o=>e0(o,s,this.context.viewport))}return n._contentWGS84}})})}},ts=oo;(()=>{oo.layerName="MVTLayer"})(),(()=>{oo.defaultProps=ZB})();function Cl(t,e){if(t.properties&&e)return t.properties[e];if("id"in t)return t.id}function $g(t){return t.properties?.layerName||null}function t0(t){return t!=null&&t!==""}function e0(t,e,r){let n={...t,geometry:{type:t.geometry.type}};return Object.defineProperty(n.geometry,"coordinates",{get:()=>Zg(t.geometry,e,r).coordinates}),n}var n0="0123456789bcdefghjkmnpqrstuvwxyz",s0={};for(let t=0;t<n0.length;t++)s0[n0.charAt(t)]=t;var QB=-90,$B=90,tM=-180,eM=180;function rM(t){let e=!0,r=$B,n=QB,s=eM,i=tM,o,a=0;for(let c=0,l=t.length;c<l;c++){let h=t[c].toLowerCase();a=s0[h];for(let f=4;f>=0;f--){let u=a>>f&1;e?(o=(s+i)/2,u===1?i=o:s=o):(o=(r+n)/2,u===1?n=o:r=o),e=!e}}return[n,i,r,s]}function i0(t){let[e,r,n,s]=rM(t);return[s,n,s,e,r,e,r,n,s,n]}var nM={getGeohash:{type:"accessor",value:t=>t.geohash}},co=class extends It{indexToBounds(){let{data:e,getGeohash:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,s)=>i0(r(n,s))}}},es=co;(()=>{co.layerName="GeohashLayer"})(),(()=>{co.defaultProps=nM})();return d0(rs);})();
|
|
638
638
|
return __exports__;
|
|
639
639
|
});
|