@aibee/crc-bmap 0.12.19 → 0.12.20
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/lib/index.cjs
CHANGED
|
@@ -11811,7 +11811,7 @@ void main() {
|
|
|
11811
11811
|
|
|
11812
11812
|
}\`,xv=class{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,i){if(this.texture===null){let s=new uo,u=t.properties.get(s);u.__webglTexture=e.texture,(e.depthNear!=i.depthNear||e.depthFar!=i.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=s}}render(t,e){if(this.texture!==null){if(this.mesh===null){let i=e.cameras[0].viewport,s=new Qo({extensions:{fragDepth:!0},vertexShader:L7,fragmentShader:N7,uniforms:{depthColor:{value:this.texture},depthWidth:{value:i.z},depthHeight:{value:i.w}}});this.mesh=new Lo(new Jp(20,20),s)}t.render(this.mesh,e)}}reset(){this.texture=null,this.mesh=null}},Ev=class extends _a{constructor(t,e){super();let i=this,s=null,u=1,c=null,f="local-floor",p=1,d=null,g=null,y=null,v=null,E=null,M=null,A=new xv,_=e.getContextAttributes(),x=null,T=null,w=[],R=[],B=new Ft,U=null,D=new Zi;D.layers.enable(1),D.viewport=new Yr;let P=new Zi;P.layers.enable(2),P.viewport=new Yr;let ct=[D,P],L=new _v;L.layers.enable(1),L.layers.enable(2);let W=null,V=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(nt){let bt=w[nt];return bt===void 0&&(bt=new rf,w[nt]=bt),bt.getTargetRaySpace()},this.getControllerGrip=function(nt){let bt=w[nt];return bt===void 0&&(bt=new rf,w[nt]=bt),bt.getGripSpace()},this.getHand=function(nt){let bt=w[nt];return bt===void 0&&(bt=new rf,w[nt]=bt),bt.getHandSpace()};function Mt(nt){let bt=R.indexOf(nt.inputSource);if(bt===-1)return;let Vt=w[bt];Vt!==void 0&&(Vt.update(nt.inputSource,nt.frame,d||c),Vt.dispatchEvent({type:nt.type,data:nt.inputSource}))}function $(){s.removeEventListener("select",Mt),s.removeEventListener("selectstart",Mt),s.removeEventListener("selectend",Mt),s.removeEventListener("squeeze",Mt),s.removeEventListener("squeezestart",Mt),s.removeEventListener("squeezeend",Mt),s.removeEventListener("end",$),s.removeEventListener("inputsourceschange",gt);for(let nt=0;nt<w.length;nt++){let bt=R[nt];bt!==null&&(R[nt]=null,w[nt].disconnect(bt))}W=null,V=null,A.reset(),t.setRenderTarget(x),E=null,v=null,y=null,s=null,T=null,jt.stop(),i.isPresenting=!1,t.setPixelRatio(U),t.setSize(B.width,B.height,!1),i.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(nt){u=nt,i.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(nt){f=nt,i.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return d||c},this.setReferenceSpace=function(nt){d=nt},this.getBaseLayer=function(){return v!==null?v:E},this.getBinding=function(){return y},this.getFrame=function(){return M},this.getSession=function(){return s},this.setSession=function(nt){return Ri(this,null,function*(){if(s=nt,s!==null){if(x=t.getRenderTarget(),s.addEventListener("select",Mt),s.addEventListener("selectstart",Mt),s.addEventListener("selectend",Mt),s.addEventListener("squeeze",Mt),s.addEventListener("squeezestart",Mt),s.addEventListener("squeezeend",Mt),s.addEventListener("end",$),s.addEventListener("inputsourceschange",gt),_.xrCompatible!==!0&&(yield e.makeXRCompatible()),U=t.getPixelRatio(),t.getSize(B),s.renderState.layers===void 0||t.capabilities.isWebGL2===!1){let bt={antialias:s.renderState.layers===void 0?_.antialias:!0,alpha:!0,depth:_.depth,stencil:_.stencil,framebufferScaleFactor:u};E=new XRWebGLLayer(s,e,bt),s.updateRenderState({baseLayer:E}),t.setPixelRatio(1),t.setSize(E.framebufferWidth,E.framebufferHeight,!1),T=new Us(E.framebufferWidth,E.framebufferHeight,{format:Ro,type:ma,colorSpace:t.outputColorSpace,stencilBuffer:_.stencil})}else{let bt=null,Vt=null,$t=null;_.depth&&($t=_.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,bt=_.stencil?Al:au,Vt=_.stencil?su:pa);let Ut={colorFormat:e.RGBA8,depthFormat:$t,scaleFactor:u};y=new XRWebGLBinding(s,e),v=y.createProjectionLayer(Ut),s.updateRenderState({layers:[v]}),t.setPixelRatio(1),t.setSize(v.textureWidth,v.textureHeight,!1),T=new Us(v.textureWidth,v.textureHeight,{format:Ro,type:ma,depthTexture:new Kp(v.textureWidth,v.textureHeight,Vt,void 0,void 0,void 0,void 0,void 0,void 0,bt),stencilBuffer:_.stencil,colorSpace:t.outputColorSpace,samples:_.antialias?4:0});let Gt=t.properties.get(T);Gt.__ignoreDepthValues=v.ignoreDepthValues}T.isXRRenderTarget=!0,this.setFoveation(p),d=null,c=yield s.requestReferenceSpace(f),jt.setContext(s),jt.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}})},this.getEnvironmentBlendMode=function(){if(s!==null)return s.environmentBlendMode};function gt(nt){for(let bt=0;bt<nt.removed.length;bt++){let Vt=nt.removed[bt],$t=R.indexOf(Vt);$t>=0&&(R[$t]=null,w[$t].disconnect(Vt))}for(let bt=0;bt<nt.added.length;bt++){let Vt=nt.added[bt],$t=R.indexOf(Vt);if($t===-1){for(let Gt=0;Gt<w.length;Gt++)if(Gt>=R.length){R.push(Vt),$t=Gt;break}else if(R[Gt]===null){R[Gt]=Vt,$t=Gt;break}if($t===-1)break}let Ut=w[$t];Ut&&Ut.connect(Vt)}}let ft=new st,vt=new st;function it(nt,bt,Vt){ft.setFromMatrixPosition(bt.matrixWorld),vt.setFromMatrixPosition(Vt.matrixWorld);let $t=ft.distanceTo(vt),Ut=bt.projectionMatrix.elements,Gt=Vt.projectionMatrix.elements,Ct=Ut[14]/(Ut[10]-1),ee=Ut[14]/(Ut[10]+1),Z=(Ut[9]+1)/Ut[5],Ot=(Ut[9]-1)/Ut[5],_t=(Ut[8]-1)/Ut[0],Nt=(Gt[8]+1)/Gt[0],wt=Ct*_t,Ht=Ct*Nt,Xt=$t/(-_t+Nt),Pt=Xt*-_t;bt.matrixWorld.decompose(nt.position,nt.quaternion,nt.scale),nt.translateX(Pt),nt.translateZ(Xt),nt.matrixWorld.compose(nt.position,nt.quaternion,nt.scale),nt.matrixWorldInverse.copy(nt.matrixWorld).invert();let ne=Ct+Xt,Y=ee+Xt,N=wt-Pt,xt=Ht+($t-Pt),St=Z*ee/Y*ne,ot=Ot*ee/Y*ne;nt.projectionMatrix.makePerspective(N,xt,St,ot,ne,Y),nt.projectionMatrixInverse.copy(nt.projectionMatrix).invert()}function lt(nt,bt){bt===null?nt.matrixWorld.copy(nt.matrix):nt.matrixWorld.multiplyMatrices(bt.matrixWorld,nt.matrix),nt.matrixWorldInverse.copy(nt.matrixWorld).invert()}this.updateCamera=function(nt){if(s===null)return;A.texture!==null&&(nt.near=A.depthNear,nt.far=A.depthFar),L.near=P.near=D.near=nt.near,L.far=P.far=D.far=nt.far,(W!==L.near||V!==L.far)&&(s.updateRenderState({depthNear:L.near,depthFar:L.far}),W=L.near,V=L.far,D.near=W,D.far=V,P.near=W,P.far=V,D.updateProjectionMatrix(),P.updateProjectionMatrix(),nt.updateProjectionMatrix());let bt=nt.parent,Vt=L.cameras;lt(L,bt);for(let $t=0;$t<Vt.length;$t++)lt(Vt[$t],bt);Vt.length===2?it(L,D,P):L.projectionMatrix.copy(D.projectionMatrix),H(nt,L,bt)};function H(nt,bt,Vt){Vt===null?nt.matrix.copy(bt.matrixWorld):(nt.matrix.copy(Vt.matrixWorld),nt.matrix.invert(),nt.matrix.multiply(bt.matrixWorld)),nt.matrix.decompose(nt.position,nt.quaternion,nt.scale),nt.updateMatrixWorld(!0),nt.projectionMatrix.copy(bt.projectionMatrix),nt.projectionMatrixInverse.copy(bt.projectionMatrixInverse),nt.isPerspectiveCamera&&(nt.fov=rv*2*Math.atan(1/nt.projectionMatrix.elements[5]),nt.zoom=1)}this.getCamera=function(){return L},this.getFoveation=function(){if(!(v===null&&E===null))return p},this.setFoveation=function(nt){p=nt,v!==null&&(v.fixedFoveation=nt),E!==null&&E.fixedFoveation!==void 0&&(E.fixedFoveation=nt)},this.hasDepthSensing=function(){return A.texture!==null};let At=null;function It(nt,bt){if(g=bt.getViewerPose(d||c),M=bt,g!==null){let Vt=g.views;E!==null&&(t.setRenderTargetFramebuffer(T,E.framebuffer),t.setRenderTarget(T));let $t=!1;Vt.length!==L.cameras.length&&(L.cameras.length=0,$t=!0);for(let Gt=0;Gt<Vt.length;Gt++){let Ct=Vt[Gt],ee=null;if(E!==null)ee=E.getViewport(Ct);else{let Ot=y.getViewSubImage(v,Ct);ee=Ot.viewport,Gt===0&&(t.setRenderTargetTextures(T,Ot.colorTexture,v.ignoreDepthValues?void 0:Ot.depthStencilTexture),t.setRenderTarget(T))}let Z=ct[Gt];Z===void 0&&(Z=new Zi,Z.layers.enable(Gt),Z.viewport=new Yr,ct[Gt]=Z),Z.matrix.fromArray(Ct.transform.matrix),Z.matrix.decompose(Z.position,Z.quaternion,Z.scale),Z.projectionMatrix.fromArray(Ct.projectionMatrix),Z.projectionMatrixInverse.copy(Z.projectionMatrix).invert(),Z.viewport.set(ee.x,ee.y,ee.width,ee.height),Gt===0&&(L.matrix.copy(Z.matrix),L.matrix.decompose(L.position,L.quaternion,L.scale)),$t===!0&&L.cameras.push(Z)}let Ut=s.enabledFeatures;if(Ut&&Ut.includes("depth-sensing")){let Gt=y.getDepthInformation(Vt[0]);Gt&&Gt.isValid&&Gt.texture&&A.init(t,Gt,s.renderState)}}for(let Vt=0;Vt<w.length;Vt++){let $t=R[Vt],Ut=w[Vt];$t!==null&&Ut!==void 0&&Ut.update($t,bt,d||c)}A.render(t,L),At&&At(nt,bt),bt.detectedPlanes&&i.dispatchEvent({type:"planesdetected",data:bt}),M=null}let jt=new rP;jt.setAnimationLoop(It),this.setAnimationLoop=function(nt){At=nt},this.dispose=function(){}}},Qa=new lu,O7=new jn;function D7(n,t){function e(_,x){_.matrixAutoUpdate===!0&&_.updateMatrix(),x.value.copy(_.matrix)}function i(_,x){x.color.getRGB(_.fogColor.value,nP(n)),x.isFog?(_.fogNear.value=x.near,_.fogFar.value=x.far):x.isFogExp2&&(_.fogDensity.value=x.density)}function s(_,x,T,w,R){x.isMeshBasicMaterial||x.isMeshLambertMaterial?u(_,x):x.isMeshToonMaterial?(u(_,x),y(_,x)):x.isMeshPhongMaterial?(u(_,x),g(_,x)):x.isMeshStandardMaterial?(u(_,x),v(_,x),x.isMeshPhysicalMaterial&&E(_,x,R)):x.isMeshMatcapMaterial?(u(_,x),M(_,x)):x.isMeshDepthMaterial?u(_,x):x.isMeshDistanceMaterial?(u(_,x),A(_,x)):x.isMeshNormalMaterial?u(_,x):x.isLineBasicMaterial?(c(_,x),x.isLineDashedMaterial&&f(_,x)):x.isPointsMaterial?p(_,x,T,w):x.isSpriteMaterial?d(_,x):x.isShadowMaterial?(_.color.value.copy(x.color),_.opacity.value=x.opacity):x.isShaderMaterial&&(x.uniformsNeedUpdate=!1)}function u(_,x){_.opacity.value=x.opacity,x.color&&_.diffuse.value.copy(x.color),x.emissive&&_.emissive.value.copy(x.emissive).multiplyScalar(x.emissiveIntensity),x.map&&(_.map.value=x.map,e(x.map,_.mapTransform)),x.alphaMap&&(_.alphaMap.value=x.alphaMap,e(x.alphaMap,_.alphaMapTransform)),x.bumpMap&&(_.bumpMap.value=x.bumpMap,e(x.bumpMap,_.bumpMapTransform),_.bumpScale.value=x.bumpScale,x.side===Oi&&(_.bumpScale.value*=-1)),x.normalMap&&(_.normalMap.value=x.normalMap,e(x.normalMap,_.normalMapTransform),_.normalScale.value.copy(x.normalScale),x.side===Oi&&_.normalScale.value.negate()),x.displacementMap&&(_.displacementMap.value=x.displacementMap,e(x.displacementMap,_.displacementMapTransform),_.displacementScale.value=x.displacementScale,_.displacementBias.value=x.displacementBias),x.emissiveMap&&(_.emissiveMap.value=x.emissiveMap,e(x.emissiveMap,_.emissiveMapTransform)),x.specularMap&&(_.specularMap.value=x.specularMap,e(x.specularMap,_.specularMapTransform)),x.alphaTest>0&&(_.alphaTest.value=x.alphaTest);let T=t.get(x),w=T.envMap,R=T.envMapRotation;if(w&&(_.envMap.value=w,Qa.copy(R),Qa.x*=-1,Qa.y*=-1,Qa.z*=-1,w.isCubeTexture&&w.isRenderTargetTexture===!1&&(Qa.y*=-1,Qa.z*=-1),_.envMapRotation.value.setFromMatrix4(O7.makeRotationFromEuler(Qa)),_.flipEnvMap.value=w.isCubeTexture&&w.isRenderTargetTexture===!1?-1:1,_.reflectivity.value=x.reflectivity,_.ior.value=x.ior,_.refractionRatio.value=x.refractionRatio),x.lightMap){_.lightMap.value=x.lightMap;let B=n._useLegacyLights===!0?Math.PI:1;_.lightMapIntensity.value=x.lightMapIntensity*B,e(x.lightMap,_.lightMapTransform)}x.aoMap&&(_.aoMap.value=x.aoMap,_.aoMapIntensity.value=x.aoMapIntensity,e(x.aoMap,_.aoMapTransform))}function c(_,x){_.diffuse.value.copy(x.color),_.opacity.value=x.opacity,x.map&&(_.map.value=x.map,e(x.map,_.mapTransform))}function f(_,x){_.dashSize.value=x.dashSize,_.totalSize.value=x.dashSize+x.gapSize,_.scale.value=x.scale}function p(_,x,T,w){_.diffuse.value.copy(x.color),_.opacity.value=x.opacity,_.size.value=x.size*T,_.scale.value=w*.5,x.map&&(_.map.value=x.map,e(x.map,_.uvTransform)),x.alphaMap&&(_.alphaMap.value=x.alphaMap,e(x.alphaMap,_.alphaMapTransform)),x.alphaTest>0&&(_.alphaTest.value=x.alphaTest)}function d(_,x){_.diffuse.value.copy(x.color),_.opacity.value=x.opacity,_.rotation.value=x.rotation,x.map&&(_.map.value=x.map,e(x.map,_.mapTransform)),x.alphaMap&&(_.alphaMap.value=x.alphaMap,e(x.alphaMap,_.alphaMapTransform)),x.alphaTest>0&&(_.alphaTest.value=x.alphaTest)}function g(_,x){_.specular.value.copy(x.specular),_.shininess.value=Math.max(x.shininess,1e-4)}function y(_,x){x.gradientMap&&(_.gradientMap.value=x.gradientMap)}function v(_,x){_.metalness.value=x.metalness,x.metalnessMap&&(_.metalnessMap.value=x.metalnessMap,e(x.metalnessMap,_.metalnessMapTransform)),_.roughness.value=x.roughness,x.roughnessMap&&(_.roughnessMap.value=x.roughnessMap,e(x.roughnessMap,_.roughnessMapTransform)),t.get(x).envMap&&(_.envMapIntensity.value=x.envMapIntensity)}function E(_,x,T){_.ior.value=x.ior,x.sheen>0&&(_.sheenColor.value.copy(x.sheenColor).multiplyScalar(x.sheen),_.sheenRoughness.value=x.sheenRoughness,x.sheenColorMap&&(_.sheenColorMap.value=x.sheenColorMap,e(x.sheenColorMap,_.sheenColorMapTransform)),x.sheenRoughnessMap&&(_.sheenRoughnessMap.value=x.sheenRoughnessMap,e(x.sheenRoughnessMap,_.sheenRoughnessMapTransform))),x.clearcoat>0&&(_.clearcoat.value=x.clearcoat,_.clearcoatRoughness.value=x.clearcoatRoughness,x.clearcoatMap&&(_.clearcoatMap.value=x.clearcoatMap,e(x.clearcoatMap,_.clearcoatMapTransform)),x.clearcoatRoughnessMap&&(_.clearcoatRoughnessMap.value=x.clearcoatRoughnessMap,e(x.clearcoatRoughnessMap,_.clearcoatRoughnessMapTransform)),x.clearcoatNormalMap&&(_.clearcoatNormalMap.value=x.clearcoatNormalMap,e(x.clearcoatNormalMap,_.clearcoatNormalMapTransform),_.clearcoatNormalScale.value.copy(x.clearcoatNormalScale),x.side===Oi&&_.clearcoatNormalScale.value.negate())),x.iridescence>0&&(_.iridescence.value=x.iridescence,_.iridescenceIOR.value=x.iridescenceIOR,_.iridescenceThicknessMinimum.value=x.iridescenceThicknessRange[0],_.iridescenceThicknessMaximum.value=x.iridescenceThicknessRange[1],x.iridescenceMap&&(_.iridescenceMap.value=x.iridescenceMap,e(x.iridescenceMap,_.iridescenceMapTransform)),x.iridescenceThicknessMap&&(_.iridescenceThicknessMap.value=x.iridescenceThicknessMap,e(x.iridescenceThicknessMap,_.iridescenceThicknessMapTransform))),x.transmission>0&&(_.transmission.value=x.transmission,_.transmissionSamplerMap.value=T.texture,_.transmissionSamplerSize.value.set(T.width,T.height),x.transmissionMap&&(_.transmissionMap.value=x.transmissionMap,e(x.transmissionMap,_.transmissionMapTransform)),_.thickness.value=x.thickness,x.thicknessMap&&(_.thicknessMap.value=x.thicknessMap,e(x.thicknessMap,_.thicknessMapTransform)),_.attenuationDistance.value=x.attenuationDistance,_.attenuationColor.value.copy(x.attenuationColor)),x.anisotropy>0&&(_.anisotropyVector.value.set(x.anisotropy*Math.cos(x.anisotropyRotation),x.anisotropy*Math.sin(x.anisotropyRotation)),x.anisotropyMap&&(_.anisotropyMap.value=x.anisotropyMap,e(x.anisotropyMap,_.anisotropyMapTransform))),_.specularIntensity.value=x.specularIntensity,_.specularColor.value.copy(x.specularColor),x.specularColorMap&&(_.specularColorMap.value=x.specularColorMap,e(x.specularColorMap,_.specularColorMapTransform)),x.specularIntensityMap&&(_.specularIntensityMap.value=x.specularIntensityMap,e(x.specularIntensityMap,_.specularIntensityMapTransform))}function M(_,x){x.matcap&&(_.matcap.value=x.matcap)}function A(_,x){let T=t.get(x).light;_.referencePosition.value.setFromMatrixPosition(T.matrixWorld),_.nearDistance.value=T.shadow.camera.near,_.farDistance.value=T.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:s}}function F7(n,t,e,i){let s={},u={},c=[],f=e.isWebGL2?n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS):0;function p(T,w){let R=w.program;i.uniformBlockBinding(T,R)}function d(T,w){let R=s[T.id];R===void 0&&(M(T),R=g(T),s[T.id]=R,T.addEventListener("dispose",_));let B=w.program;i.updateUBOMapping(T,B);let U=t.render.frame;u[T.id]!==U&&(v(T),u[T.id]=U)}function g(T){let w=y();T.__bindingPointIndex=w;let R=n.createBuffer(),B=T.__size,U=T.usage;return n.bindBuffer(n.UNIFORM_BUFFER,R),n.bufferData(n.UNIFORM_BUFFER,B,U),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,w,R),R}function y(){for(let T=0;T<f;T++)if(c.indexOf(T)===-1)return c.push(T),T;return console.error("THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached."),0}function v(T){let w=s[T.id],R=T.uniforms,B=T.__cache;n.bindBuffer(n.UNIFORM_BUFFER,w);for(let U=0,D=R.length;U<D;U++){let P=Array.isArray(R[U])?R[U]:[R[U]];for(let ct=0,L=P.length;ct<L;ct++){let W=P[ct];if(E(W,U,ct,B)===!0){let V=W.__offset,Mt=Array.isArray(W.value)?W.value:[W.value],$=0;for(let gt=0;gt<Mt.length;gt++){let ft=Mt[gt],vt=A(ft);typeof ft=="number"||typeof ft=="boolean"?(W.__data[0]=ft,n.bufferSubData(n.UNIFORM_BUFFER,V+$,W.__data)):ft.isMatrix3?(W.__data[0]=ft.elements[0],W.__data[1]=ft.elements[1],W.__data[2]=ft.elements[2],W.__data[3]=0,W.__data[4]=ft.elements[3],W.__data[5]=ft.elements[4],W.__data[6]=ft.elements[5],W.__data[7]=0,W.__data[8]=ft.elements[6],W.__data[9]=ft.elements[7],W.__data[10]=ft.elements[8],W.__data[11]=0):(ft.toArray(W.__data,$),$+=vt.storage/Float32Array.BYTES_PER_ELEMENT)}n.bufferSubData(n.UNIFORM_BUFFER,V,W.__data)}}}n.bindBuffer(n.UNIFORM_BUFFER,null)}function E(T,w,R,B){let U=T.value,D=w+"_"+R;if(B[D]===void 0)return typeof U=="number"||typeof U=="boolean"?B[D]=U:B[D]=U.clone(),!0;{let P=B[D];if(typeof U=="number"||typeof U=="boolean"){if(P!==U)return B[D]=U,!0}else if(P.equals(U)===!1)return P.copy(U),!0}return!1}function M(T){let w=T.uniforms,R=0,B=16;for(let D=0,P=w.length;D<P;D++){let ct=Array.isArray(w[D])?w[D]:[w[D]];for(let L=0,W=ct.length;L<W;L++){let V=ct[L],Mt=Array.isArray(V.value)?V.value:[V.value];for(let $=0,gt=Mt.length;$<gt;$++){let ft=Mt[$],vt=A(ft),it=R%B;it!==0&&B-it<vt.boundary&&(R+=B-it),V.__data=new Float32Array(vt.storage/Float32Array.BYTES_PER_ELEMENT),V.__offset=R,R+=vt.storage}}}let U=R%B;return U>0&&(R+=B-U),T.__size=R,T.__cache={},this}function A(T){let w={boundary:0,storage:0};return typeof T=="number"||typeof T=="boolean"?(w.boundary=4,w.storage=4):T.isVector2?(w.boundary=8,w.storage=8):T.isVector3||T.isColor?(w.boundary=16,w.storage=12):T.isVector4?(w.boundary=16,w.storage=16):T.isMatrix3?(w.boundary=48,w.storage=48):T.isMatrix4?(w.boundary=64,w.storage=64):T.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",T),w}function _(T){let w=T.target;w.removeEventListener("dispose",_);let R=c.indexOf(w.__bindingPointIndex);c.splice(R,1),n.deleteBuffer(s[w.id]),delete s[w.id],delete u[w.id]}function x(){for(let T in s)n.deleteBuffer(s[T]);c=[],s={},u={}}return{bind:p,update:d,dispose:x}}var Sv=class{constructor(t={}){let{canvas:e=G6(),context:i=null,depth:s=!0,stencil:u=!0,alpha:c=!1,antialias:f=!1,premultipliedAlpha:p=!0,preserveDrawingBuffer:d=!1,powerPreference:g="default",failIfMajorPerformanceCaveat:y=!1}=t;this.isWebGLRenderer=!0;let v;i!==null?v=i.getContextAttributes().alpha:v=c;let E=new Uint32Array(4),M=new Int32Array(4),A=null,_=null,x=[],T=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=Zo,this._useLegacyLights=!1,this.toneMapping=ga,this.toneMappingExposure=1;let w=this,R=!1,B=0,U=0,D=null,P=-1,ct=null,L=new Yr,W=new Yr,V=null,Mt=new Te(0),$=0,gt=e.width,ft=e.height,vt=1,it=null,lt=null,H=new Yr(0,0,gt,ft),At=new Yr(0,0,gt,ft),It=!1,jt=new Zp,nt=!1,bt=!1,Vt=null,$t=new jn,Ut=new Ft,Gt=new st,Ct={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function ee(){return D===null?vt:1}let Z=i;function Ot(q,at){for(let Et=0;Et<q.length;Et++){let dt=q[Et],ut=e.getContext(dt,at);if(ut!==null)return ut}return null}try{let q={alpha:!0,depth:s,stencil:u,antialias:f,premultipliedAlpha:p,preserveDrawingBuffer:d,powerPreference:g,failIfMajorPerformanceCaveat:y};if("setAttribute"in e&&e.setAttribute("data-engine",\`three.js r\${Wv}\`),e.addEventListener("webglcontextlost",ht,!1),e.addEventListener("webglcontextrestored",O,!1),e.addEventListener("webglcontextcreationerror",Q,!1),Z===null){let at=["webgl2","webgl","experimental-webgl"];if(w.isWebGL1Renderer===!0&&at.shift(),Z=Ot(at,q),Z===null)throw Ot(at)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}typeof WebGLRenderingContext!="undefined"&&Z instanceof WebGLRenderingContext&&console.warn("THREE.WebGLRenderer: WebGL 1 support was deprecated in r153 and will be removed in r163."),Z.getShaderPrecisionFormat===void 0&&(Z.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(q){throw console.error("THREE.WebGLRenderer: "+q.message),q}let _t,Nt,wt,Ht,Xt,Pt,ne,Y,N,xt,St,ot,Lt,ce,Rt,Bt,Wt,j,b,I,F,k,G,rt;function tt(){_t=new KX(Z),Nt=new XX(Z,_t,t),_t.init(Nt),k=new P7(Z,_t,Nt),wt=new C7(Z,_t,Nt),Ht=new e9(Z),Xt=new m7,Pt=new I7(Z,_t,wt,Xt,Nt,k,Ht),ne=new $X(w),Y=new jX(w),N=new a8(Z,Nt),G=new HX(Z,_t,N,Nt),xt=new QX(Z,N,Ht,G),St=new o9(Z,xt,N,Ht),b=new i9(Z,Nt,Pt),Bt=new YX(Xt),ot=new g7(w,ne,Y,_t,Nt,G,Bt),Lt=new D7(w,Xt),ce=new v7,Rt=new M7(_t,Nt),j=new VX(w,ne,Y,wt,St,v,p),Wt=new T7(w,St,Nt),rt=new F7(Z,Ht,Nt,wt),I=new WX(Z,_t,Ht,Nt),F=new t9(Z,_t,Ht,Nt),Ht.programs=ot.programs,w.capabilities=Nt,w.extensions=_t,w.properties=Xt,w.renderLists=ce,w.shadowMap=Wt,w.state=wt,w.info=Ht}tt();let pt=new Ev(w,Z);this.xr=pt,this.getContext=function(){return Z},this.getContextAttributes=function(){return Z.getContextAttributes()},this.forceContextLoss=function(){let q=_t.get("WEBGL_lose_context");q&&q.loseContext()},this.forceContextRestore=function(){let q=_t.get("WEBGL_lose_context");q&&q.restoreContext()},this.getPixelRatio=function(){return vt},this.setPixelRatio=function(q){q!==void 0&&(vt=q,this.setSize(gt,ft,!1))},this.getSize=function(q){return q.set(gt,ft)},this.setSize=function(q,at,Et=!0){if(pt.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}gt=q,ft=at,e.width=Math.floor(q*vt),e.height=Math.floor(at*vt),Et===!0&&(e.style.width=q+"px",e.style.height=at+"px"),this.setViewport(0,0,q,at)},this.getDrawingBufferSize=function(q){return q.set(gt*vt,ft*vt).floor()},this.setDrawingBufferSize=function(q,at,Et){gt=q,ft=at,vt=Et,e.width=Math.floor(q*Et),e.height=Math.floor(at*Et),this.setViewport(0,0,q,at)},this.getCurrentViewport=function(q){return q.copy(L)},this.getViewport=function(q){return q.copy(H)},this.setViewport=function(q,at,Et,dt){q.isVector4?H.set(q.x,q.y,q.z,q.w):H.set(q,at,Et,dt),wt.viewport(L.copy(H).multiplyScalar(vt).round())},this.getScissor=function(q){return q.copy(At)},this.setScissor=function(q,at,Et,dt){q.isVector4?At.set(q.x,q.y,q.z,q.w):At.set(q,at,Et,dt),wt.scissor(W.copy(At).multiplyScalar(vt).round())},this.getScissorTest=function(){return It},this.setScissorTest=function(q){wt.setScissorTest(It=q)},this.setOpaqueSort=function(q){it=q},this.setTransparentSort=function(q){lt=q},this.getClearColor=function(q){return q.copy(j.getClearColor())},this.setClearColor=function(){j.setClearColor.apply(j,arguments)},this.getClearAlpha=function(){return j.getClearAlpha()},this.setClearAlpha=function(){j.setClearAlpha.apply(j,arguments)},this.clear=function(q=!0,at=!0,Et=!0){let dt=0;if(q){let ut=!1;if(D!==null){let Kt=D.texture.format;ut=Kt===JI||Kt===ZI||Kt===$I}if(ut){let Kt=D.texture.type,te=Kt===ma||Kt===pa||Kt===Xv||Kt===su||Kt===XI||Kt===YI,le=j.getClearColor(),re=j.getClearAlpha(),ve=le.r,fe=le.g,he=le.b;te?(E[0]=ve,E[1]=fe,E[2]=he,E[3]=re,Z.clearBufferuiv(Z.COLOR,0,E)):(M[0]=ve,M[1]=fe,M[2]=he,M[3]=re,Z.clearBufferiv(Z.COLOR,0,M))}else dt|=Z.COLOR_BUFFER_BIT}at&&(dt|=Z.DEPTH_BUFFER_BIT),Et&&(dt|=Z.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),Z.clear(dt)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener("webglcontextlost",ht,!1),e.removeEventListener("webglcontextrestored",O,!1),e.removeEventListener("webglcontextcreationerror",Q,!1),ce.dispose(),Rt.dispose(),Xt.dispose(),ne.dispose(),Y.dispose(),St.dispose(),G.dispose(),rt.dispose(),ot.dispose(),Wt.dispose(),pt.dispose(),pt.removeEventListener("sessionstart",we),pt.removeEventListener("sessionend",ye),Vt&&(Vt.dispose(),Vt=null),be.stop()};function ht(q){q.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),R=!0}function O(){console.log("THREE.WebGLRenderer: Context Restored."),R=!1;let q=Ht.autoReset,at=Wt.enabled,Et=Wt.autoUpdate,dt=Wt.needsUpdate,ut=Wt.type;tt(),Ht.autoReset=q,Wt.enabled=at,Wt.autoUpdate=Et,Wt.needsUpdate=dt,Wt.type=ut}function Q(q){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",q.statusMessage)}function J(q){let at=q.target;at.removeEventListener("dispose",J),et(at)}function et(q){Tt(q),Xt.remove(q)}function Tt(q){let at=Xt.get(q).programs;at!==void 0&&(at.forEach(function(Et){ot.releaseProgram(Et)}),q.isShaderMaterial&&ot.releaseShaderCache(q))}this.renderBufferDirect=function(q,at,Et,dt,ut,Kt){at===null&&(at=Ct);let te=ut.isMesh&&ut.matrixWorld.determinant()<0,le=En(q,at,Et,dt,ut);wt.setMaterial(dt,te);let re=Et.index,ve=1;if(dt.wireframe===!0){if(re=xt.getWireframeAttribute(Et),re===void 0)return;ve=2}let fe=Et.drawRange,he=Et.attributes.position,cn=fe.start*ve,Tr=(fe.start+fe.count)*ve;Kt!==null&&(cn=Math.max(cn,Kt.start*ve),Tr=Math.min(Tr,(Kt.start+Kt.count)*ve)),re!==null?(cn=Math.max(cn,0),Tr=Math.min(Tr,re.count)):he!=null&&(cn=Math.max(cn,0),Tr=Math.min(Tr,he.count));let kn=Tr-cn;if(kn<0||kn===1/0)return;G.setup(ut,dt,le,Et,re);let fi,wn=I;if(re!==null&&(fi=N.get(re),wn=F,wn.setIndex(fi)),ut.isMesh)dt.wireframe===!0?(wt.setLineWidth(dt.wireframeLinewidth*ee()),wn.setMode(Z.LINES)):wn.setMode(Z.TRIANGLES);else if(ut.isLine){let se=dt.linewidth;se===void 0&&(se=1),wt.setLineWidth(se*ee()),ut.isLineSegments?wn.setMode(Z.LINES):ut.isLineLoop?wn.setMode(Z.LINE_LOOP):wn.setMode(Z.LINE_STRIP)}else ut.isPoints?wn.setMode(Z.POINTS):ut.isSprite&&wn.setMode(Z.TRIANGLES);if(ut.isBatchedMesh)wn.renderMultiDraw(ut._multiDrawStarts,ut._multiDrawCounts,ut._multiDrawCount);else if(ut.isInstancedMesh)wn.renderInstances(cn,kn,ut.count);else if(Et.isInstancedBufferGeometry){let se=Et._maxInstanceCount!==void 0?Et._maxInstanceCount:1/0,wu=Math.min(Et.instanceCount,se);wn.renderInstances(cn,kn,wu)}else wn.render(cn,kn)};function kt(q,at,Et){q.transparent===!0&&q.side===Ns&&q.forceSinglePass===!1?(q.side=Oi,q.needsUpdate=!0,xn(q,at,Et),q.side=va,q.needsUpdate=!0,xn(q,at,Et),q.side=Ns):xn(q,at,Et)}this.compile=function(q,at,Et=null){Et===null&&(Et=q),_=Rt.get(Et),_.init(),T.push(_),Et.traverseVisible(function(ut){ut.isLight&&ut.layers.test(at.layers)&&(_.pushLight(ut),ut.castShadow&&_.pushShadow(ut))}),q!==Et&&q.traverseVisible(function(ut){ut.isLight&&ut.layers.test(at.layers)&&(_.pushLight(ut),ut.castShadow&&_.pushShadow(ut))}),_.setupLights(w._useLegacyLights);let dt=new Set;return q.traverse(function(ut){let Kt=ut.material;if(Kt)if(Array.isArray(Kt))for(let te=0;te<Kt.length;te++){let le=Kt[te];kt(le,Et,ut),dt.add(le)}else kt(Kt,Et,ut),dt.add(Kt)}),T.pop(),_=null,dt},this.compileAsync=function(q,at,Et=null){let dt=this.compile(q,at,Et);return new Promise(ut=>{function Kt(){if(dt.forEach(function(te){Xt.get(te).currentProgram.isReady()&&dt.delete(te)}),dt.size===0){ut(q);return}setTimeout(Kt,10)}_t.get("KHR_parallel_shader_compile")!==null?Kt():setTimeout(Kt,10)})};let ie=null;function oe(q){ie&&ie(q)}function we(){be.stop()}function ye(){be.start()}let be=new rP;be.setAnimationLoop(oe),typeof self!="undefined"&&be.setContext(self),this.setAnimationLoop=function(q){ie=q,pt.setAnimationLoop(q),q===null?be.stop():be.start()},pt.addEventListener("sessionstart",we),pt.addEventListener("sessionend",ye),this.render=function(q,at){if(at!==void 0&&at.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(R===!0)return;q.matrixWorldAutoUpdate===!0&&q.updateMatrixWorld(),at.parent===null&&at.matrixWorldAutoUpdate===!0&&at.updateMatrixWorld(),pt.enabled===!0&&pt.isPresenting===!0&&(pt.cameraAutoUpdate===!0&&pt.updateCamera(at),at=pt.getCamera()),q.isScene===!0&&q.onBeforeRender(w,q,at,D),_=Rt.get(q,T.length),_.init(),T.push(_),$t.multiplyMatrices(at.projectionMatrix,at.matrixWorldInverse),jt.setFromProjectionMatrix($t),bt=this.localClippingEnabled,nt=Bt.init(this.clippingPlanes,bt),A=ce.get(q,x.length),A.init(),x.push(A),Ae(q,at,0,w.sortObjects),A.finish(),w.sortObjects===!0&&A.sort(it,lt),this.info.render.frame++,nt===!0&&Bt.beginShadows();let Et=_.state.shadowsArray;if(Wt.render(Et,q,at),nt===!0&&Bt.endShadows(),this.info.autoReset===!0&&this.info.reset(),(pt.enabled===!1||pt.isPresenting===!1||pt.hasDepthSensing()===!1)&&j.render(A,q),_.setupLights(w._useLegacyLights),at.isArrayCamera){let dt=at.cameras;for(let ut=0,Kt=dt.length;ut<Kt;ut++){let te=dt[ut];Un(A,q,te,te.viewport)}}else Un(A,q,at);D!==null&&(Pt.updateMultisampleRenderTarget(D),Pt.updateRenderTargetMipmap(D)),q.isScene===!0&&q.onAfterRender(w,q,at),G.resetDefaultState(),P=-1,ct=null,T.pop(),T.length>0?_=T[T.length-1]:_=null,x.pop(),x.length>0?A=x[x.length-1]:A=null};function Ae(q,at,Et,dt){if(q.visible===!1)return;if(q.layers.test(at.layers)){if(q.isGroup)Et=q.renderOrder;else if(q.isLOD)q.autoUpdate===!0&&q.update(at);else if(q.isLight)_.pushLight(q),q.castShadow&&_.pushShadow(q);else if(q.isSprite){if(!q.frustumCulled||jt.intersectsSprite(q)){dt&&Gt.setFromMatrixPosition(q.matrixWorld).applyMatrix4($t);let te=St.update(q),le=q.material;le.visible&&A.push(q,te,le,Et,Gt.z,null)}}else if((q.isMesh||q.isLine||q.isPoints)&&(!q.frustumCulled||jt.intersectsObject(q))){let te=St.update(q),le=q.material;if(dt&&(q.boundingSphere!==void 0?(q.boundingSphere===null&&q.computeBoundingSphere(),Gt.copy(q.boundingSphere.center)):(te.boundingSphere===null&&te.computeBoundingSphere(),Gt.copy(te.boundingSphere.center)),Gt.applyMatrix4(q.matrixWorld).applyMatrix4($t)),Array.isArray(le)){let re=te.groups;for(let ve=0,fe=re.length;ve<fe;ve++){let he=re[ve],cn=le[he.materialIndex];cn&&cn.visible&&A.push(q,te,cn,Et,Gt.z,he)}}else le.visible&&A.push(q,te,le,Et,Gt.z,null)}}let Kt=q.children;for(let te=0,le=Kt.length;te<le;te++)Ae(Kt[te],at,Et,dt)}function Un(q,at,Et,dt){let ut=q.opaque,Kt=q.transmissive,te=q.transparent;_.setupLightsView(Et),nt===!0&&Bt.setGlobalState(w.clippingPlanes,Et),Kt.length>0&&dr(ut,Kt,at,Et),dt&&wt.viewport(L.copy(dt)),ut.length>0&&_n(ut,at,Et),Kt.length>0&&_n(Kt,at,Et),te.length>0&&_n(te,at,Et),wt.buffers.depth.setTest(!0),wt.buffers.depth.setMask(!0),wt.buffers.color.setMask(!0),wt.setPolygonOffset(!1)}function dr(q,at,Et,dt){if((Et.isScene===!0?Et.overrideMaterial:null)!==null)return;let Kt=Nt.isWebGL2;Vt===null&&(Vt=new Us(1,1,{generateMipmaps:!0,type:_t.has("EXT_color_buffer_half_float")?af:ma,minFilter:ru,samples:Kt?4:0})),w.getDrawingBufferSize(Ut),Kt?Vt.setSize(Ut.x,Ut.y):Vt.setSize(iv(Ut.x),iv(Ut.y));let te=w.getRenderTarget();w.setRenderTarget(Vt),w.getClearColor(Mt),$=w.getClearAlpha(),$<1&&w.setClearColor(16777215,.5),w.clear();let le=w.toneMapping;w.toneMapping=ga,_n(q,Et,dt),Pt.updateMultisampleRenderTarget(Vt),Pt.updateRenderTargetMipmap(Vt);let re=!1;for(let ve=0,fe=at.length;ve<fe;ve++){let he=at[ve],cn=he.object,Tr=he.geometry,kn=he.material,fi=he.group;if(kn.side===Ns&&cn.layers.test(dt.layers)){let wn=kn.side;kn.side=Oi,kn.needsUpdate=!0,pe(cn,Et,dt,Tr,kn,fi),kn.side=wn,kn.needsUpdate=!0,re=!0}}re===!0&&(Pt.updateMultisampleRenderTarget(Vt),Pt.updateRenderTargetMipmap(Vt)),w.setRenderTarget(te),w.setClearColor(Mt,$),w.toneMapping=le}function _n(q,at,Et){let dt=at.isScene===!0?at.overrideMaterial:null;for(let ut=0,Kt=q.length;ut<Kt;ut++){let te=q[ut],le=te.object,re=te.geometry,ve=dt===null?te.material:dt,fe=te.group;le.layers.test(Et.layers)&&pe(le,at,Et,re,ve,fe)}}function pe(q,at,Et,dt,ut,Kt){q.onBeforeRender(w,at,Et,dt,ut,Kt),q.modelViewMatrix.multiplyMatrices(Et.matrixWorldInverse,q.matrixWorld),q.normalMatrix.getNormalMatrix(q.modelViewMatrix),ut.onBeforeRender(w,at,Et,dt,q,Kt),ut.transparent===!0&&ut.side===Ns&&ut.forceSinglePass===!1?(ut.side=Oi,ut.needsUpdate=!0,w.renderBufferDirect(Et,at,dt,ut,q,Kt),ut.side=va,ut.needsUpdate=!0,w.renderBufferDirect(Et,at,dt,ut,q,Kt),ut.side=Ns):w.renderBufferDirect(Et,at,dt,ut,q,Kt),q.onAfterRender(w,at,Et,dt,ut,Kt)}function xn(q,at,Et){at.isScene!==!0&&(at=Ct);let dt=Xt.get(q),ut=_.state.lights,Kt=_.state.shadowsArray,te=ut.state.version,le=ot.getParameters(q,ut.state,Kt,at,Et),re=ot.getProgramCacheKey(le),ve=dt.programs;dt.environment=q.isMeshStandardMaterial?at.environment:null,dt.fog=at.fog,dt.envMap=(q.isMeshStandardMaterial?Y:ne).get(q.envMap||dt.environment),dt.envMapRotation=dt.environment!==null&&q.envMap===null?at.environmentRotation:q.envMapRotation,ve===void 0&&(q.addEventListener("dispose",J),ve=new Map,dt.programs=ve);let fe=ve.get(re);if(fe!==void 0){if(dt.currentProgram===fe&&dt.lightsStateVersion===te)return Cn(q,le),fe}else le.uniforms=ot.getUniforms(q),q.onBuild(Et,le,w),q.onBeforeCompile(le,w),fe=ot.acquireProgram(le,re),ve.set(re,fe),dt.uniforms=le.uniforms;let he=dt.uniforms;return(!q.isShaderMaterial&&!q.isRawShaderMaterial||q.clipping===!0)&&(he.clippingPlanes=Bt.uniform),Cn(q,le),dt.needsLights=Ar(q),dt.lightsStateVersion=te,dt.needsLights&&(he.ambientLightColor.value=ut.state.ambient,he.lightProbe.value=ut.state.probe,he.directionalLights.value=ut.state.directional,he.directionalLightShadows.value=ut.state.directionalShadow,he.spotLights.value=ut.state.spot,he.spotLightShadows.value=ut.state.spotShadow,he.rectAreaLights.value=ut.state.rectArea,he.ltc_1.value=ut.state.rectAreaLTC1,he.ltc_2.value=ut.state.rectAreaLTC2,he.pointLights.value=ut.state.point,he.pointLightShadows.value=ut.state.pointShadow,he.hemisphereLights.value=ut.state.hemi,he.directionalShadowMap.value=ut.state.directionalShadowMap,he.directionalShadowMatrix.value=ut.state.directionalShadowMatrix,he.spotShadowMap.value=ut.state.spotShadowMap,he.spotLightMatrix.value=ut.state.spotLightMatrix,he.spotLightMap.value=ut.state.spotLightMap,he.pointShadowMap.value=ut.state.pointShadowMap,he.pointShadowMatrix.value=ut.state.pointShadowMatrix),dt.currentProgram=fe,dt.uniformsList=null,fe}function Nn(q){if(q.uniformsList===null){let at=q.currentProgram.getUniforms();q.uniformsList=wl.seqWithValue(at.seq,q.uniforms)}return q.uniformsList}function Cn(q,at){let Et=Xt.get(q);Et.outputColorSpace=at.outputColorSpace,Et.batching=at.batching,Et.instancing=at.instancing,Et.instancingColor=at.instancingColor,Et.instancingMorph=at.instancingMorph,Et.skinning=at.skinning,Et.morphTargets=at.morphTargets,Et.morphNormals=at.morphNormals,Et.morphColors=at.morphColors,Et.morphTargetsCount=at.morphTargetsCount,Et.numClippingPlanes=at.numClippingPlanes,Et.numIntersection=at.numClipIntersection,Et.vertexAlphas=at.vertexAlphas,Et.vertexTangents=at.vertexTangents,Et.toneMapping=at.toneMapping}function En(q,at,Et,dt,ut){at.isScene!==!0&&(at=Ct),Pt.resetTextureUnits();let Kt=at.fog,te=dt.isMeshStandardMaterial?at.environment:null,le=D===null?w.outputColorSpace:D.isXRRenderTarget===!0?D.texture.colorSpace:xa,re=(dt.isMeshStandardMaterial?Y:ne).get(dt.envMap||te),ve=dt.vertexColors===!0&&!!Et.attributes.color&&Et.attributes.color.itemSize===4,fe=!!Et.attributes.tangent&&(!!dt.normalMap||dt.anisotropy>0),he=!!Et.morphAttributes.position,cn=!!Et.morphAttributes.normal,Tr=!!Et.morphAttributes.color,kn=ga;dt.toneMapped&&(D===null||D.isXRRenderTarget===!0)&&(kn=w.toneMapping);let fi=Et.morphAttributes.position||Et.morphAttributes.normal||Et.morphAttributes.color,wn=fi!==void 0?fi.length:0,se=Xt.get(dt),wu=_.state.lights;if(nt===!0&&(bt===!0||q!==ct)){let hi=q===ct&&dt.id===P;Bt.setState(dt,q,hi)}let fn=!1;dt.version===se.__version?(se.needsLights&&se.lightsStateVersion!==wu.state.version||se.outputColorSpace!==le||ut.isBatchedMesh&&se.batching===!1||!ut.isBatchedMesh&&se.batching===!0||ut.isInstancedMesh&&se.instancing===!1||!ut.isInstancedMesh&&se.instancing===!0||ut.isSkinnedMesh&&se.skinning===!1||!ut.isSkinnedMesh&&se.skinning===!0||ut.isInstancedMesh&&se.instancingColor===!0&&ut.instanceColor===null||ut.isInstancedMesh&&se.instancingColor===!1&&ut.instanceColor!==null||ut.isInstancedMesh&&se.instancingMorph===!0&&ut.morphTexture===null||ut.isInstancedMesh&&se.instancingMorph===!1&&ut.morphTexture!==null||se.envMap!==re||dt.fog===!0&&se.fog!==Kt||se.numClippingPlanes!==void 0&&(se.numClippingPlanes!==Bt.numPlanes||se.numIntersection!==Bt.numIntersection)||se.vertexAlphas!==ve||se.vertexTangents!==fe||se.morphTargets!==he||se.morphNormals!==cn||se.morphColors!==Tr||se.toneMapping!==kn||Nt.isWebGL2===!0&&se.morphTargetsCount!==wn)&&(fn=!0):(fn=!0,se.__version=dt.version);let co=se.currentProgram;fn===!0&&(co=xn(dt,at,ut));let ac=!1,_e=!1,Pa=!1,Mn=co.getUniforms(),fo=se.uniforms;if(wt.useProgram(co.program)&&(ac=!0,_e=!0,Pa=!0),dt.id!==P&&(P=dt.id,_e=!0),ac||ct!==q){Mn.setValue(Z,"projectionMatrix",q.projectionMatrix),Mn.setValue(Z,"viewMatrix",q.matrixWorldInverse);let hi=Mn.map.cameraPosition;hi!==void 0&&hi.setValue(Z,Gt.setFromMatrixPosition(q.matrixWorld)),Nt.logarithmicDepthBuffer&&Mn.setValue(Z,"logDepthBufFC",2/(Math.log(q.far+1)/Math.LN2)),(dt.isMeshPhongMaterial||dt.isMeshToonMaterial||dt.isMeshLambertMaterial||dt.isMeshBasicMaterial||dt.isMeshStandardMaterial||dt.isShaderMaterial)&&Mn.setValue(Z,"isOrthographic",q.isOrthographicCamera===!0),ct!==q&&(ct=q,_e=!0,Pa=!0)}if(ut.isSkinnedMesh){Mn.setOptional(Z,ut,"bindMatrix"),Mn.setOptional(Z,ut,"bindMatrixInverse");let hi=ut.skeleton;hi&&(Nt.floatVertexTextures?(hi.boneTexture===null&&hi.computeBoneTexture(),Mn.setValue(Z,"boneTexture",hi.boneTexture,Pt)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}ut.isBatchedMesh&&(Mn.setOptional(Z,ut,"batchingTexture"),Mn.setValue(Z,"batchingTexture",ut._matricesTexture,Pt));let me=Et.morphAttributes;if((me.position!==void 0||me.normal!==void 0||me.color!==void 0&&Nt.isWebGL2===!0)&&b.update(ut,Et,co),(_e||se.receiveShadow!==ut.receiveShadow)&&(se.receiveShadow=ut.receiveShadow,Mn.setValue(Z,"receiveShadow",ut.receiveShadow)),dt.isMeshGouraudMaterial&&dt.envMap!==null&&(fo.envMap.value=re,fo.flipEnvMap.value=re.isCubeTexture&&re.isRenderTargetTexture===!1?-1:1),_e&&(Mn.setValue(Z,"toneMappingExposure",w.toneMappingExposure),se.needsLights&&Kr(fo,Pa),Kt&&dt.fog===!0&&Lt.refreshFogUniforms(fo,Kt),Lt.refreshMaterialUniforms(fo,dt,vt,ft,Vt),wl.upload(Z,Nn(se),fo,Pt)),dt.isShaderMaterial&&dt.uniformsNeedUpdate===!0&&(wl.upload(Z,Nn(se),fo,Pt),dt.uniformsNeedUpdate=!1),dt.isSpriteMaterial&&Mn.setValue(Z,"center",ut.center),Mn.setValue(Z,"modelViewMatrix",ut.modelViewMatrix),Mn.setValue(Z,"normalMatrix",ut.normalMatrix),Mn.setValue(Z,"modelMatrix",ut.matrixWorld),dt.isShaderMaterial||dt.isRawShaderMaterial){let hi=dt.uniformsGroups;for(let uc=0,Mu=hi.length;uc<Mu;uc++)if(Nt.isWebGL2){let pi=hi[uc];rt.update(pi,co),rt.bind(pi,co)}else console.warn("THREE.WebGLRenderer: Uniform Buffer Objects can only be used with WebGL 2.")}return co}function Kr(q,at){q.ambientLightColor.needsUpdate=at,q.lightProbe.needsUpdate=at,q.directionalLights.needsUpdate=at,q.directionalLightShadows.needsUpdate=at,q.pointLights.needsUpdate=at,q.pointLightShadows.needsUpdate=at,q.spotLights.needsUpdate=at,q.spotLightShadows.needsUpdate=at,q.rectAreaLights.needsUpdate=at,q.hemisphereLights.needsUpdate=at}function Ar(q){return q.isMeshLambertMaterial||q.isMeshToonMaterial||q.isMeshPhongMaterial||q.isMeshStandardMaterial||q.isShadowMaterial||q.isShaderMaterial&&q.lights===!0}this.getActiveCubeFace=function(){return B},this.getActiveMipmapLevel=function(){return U},this.getRenderTarget=function(){return D},this.setRenderTargetTextures=function(q,at,Et){Xt.get(q.texture).__webglTexture=at,Xt.get(q.depthTexture).__webglTexture=Et;let dt=Xt.get(q);dt.__hasExternalTextures=!0,dt.__autoAllocateDepthBuffer=Et===void 0,dt.__autoAllocateDepthBuffer||_t.has("WEBGL_multisampled_render_to_texture")===!0&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),dt.__useRenderToTexture=!1)},this.setRenderTargetFramebuffer=function(q,at){let Et=Xt.get(q);Et.__webglFramebuffer=at,Et.__useDefaultFramebuffer=at===void 0},this.setRenderTarget=function(q,at=0,Et=0){D=q,B=at,U=Et;let dt=!0,ut=null,Kt=!1,te=!1;if(q){let re=Xt.get(q);re.__useDefaultFramebuffer!==void 0?(wt.bindFramebuffer(Z.FRAMEBUFFER,null),dt=!1):re.__webglFramebuffer===void 0?Pt.setupRenderTarget(q):re.__hasExternalTextures&&Pt.rebindTextures(q,Xt.get(q.texture).__webglTexture,Xt.get(q.depthTexture).__webglTexture);let ve=q.texture;(ve.isData3DTexture||ve.isDataArrayTexture||ve.isCompressedArrayTexture)&&(te=!0);let fe=Xt.get(q).__webglFramebuffer;q.isWebGLCubeRenderTarget?(Array.isArray(fe[at])?ut=fe[at][Et]:ut=fe[at],Kt=!0):Nt.isWebGL2&&q.samples>0&&Pt.useMultisampledRTT(q)===!1?ut=Xt.get(q).__webglMultisampledFramebuffer:Array.isArray(fe)?ut=fe[Et]:ut=fe,L.copy(q.viewport),W.copy(q.scissor),V=q.scissorTest}else L.copy(H).multiplyScalar(vt).floor(),W.copy(At).multiplyScalar(vt).floor(),V=It;if(wt.bindFramebuffer(Z.FRAMEBUFFER,ut)&&Nt.drawBuffers&&dt&&wt.drawBuffers(q,ut),wt.viewport(L),wt.scissor(W),wt.setScissorTest(V),Kt){let re=Xt.get(q.texture);Z.framebufferTexture2D(Z.FRAMEBUFFER,Z.COLOR_ATTACHMENT0,Z.TEXTURE_CUBE_MAP_POSITIVE_X+at,re.__webglTexture,Et)}else if(te){let re=Xt.get(q.texture),ve=at||0;Z.framebufferTextureLayer(Z.FRAMEBUFFER,Z.COLOR_ATTACHMENT0,re.__webglTexture,Et||0,ve)}P=-1},this.readRenderTargetPixels=function(q,at,Et,dt,ut,Kt,te){if(!(q&&q.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let le=Xt.get(q).__webglFramebuffer;if(q.isWebGLCubeRenderTarget&&te!==void 0&&(le=le[te]),le){wt.bindFramebuffer(Z.FRAMEBUFFER,le);try{let re=q.texture,ve=re.format,fe=re.type;if(ve!==Ro&&k.convert(ve)!==Z.getParameter(Z.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let he=fe===af&&(_t.has("EXT_color_buffer_half_float")||Nt.isWebGL2&&_t.has("EXT_color_buffer_float"));if(fe!==ma&&k.convert(fe)!==Z.getParameter(Z.IMPLEMENTATION_COLOR_READ_TYPE)&&!(fe===Os&&(Nt.isWebGL2||_t.has("OES_texture_float")||_t.has("WEBGL_color_buffer_float")))&&!he){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}at>=0&&at<=q.width-dt&&Et>=0&&Et<=q.height-ut&&Z.readPixels(at,Et,dt,ut,k.convert(ve),k.convert(fe),Kt)}finally{let re=D!==null?Xt.get(D).__webglFramebuffer:null;wt.bindFramebuffer(Z.FRAMEBUFFER,re)}}},this.copyFramebufferToTexture=function(q,at,Et=0){let dt=Math.pow(2,-Et),ut=Math.floor(at.image.width*dt),Kt=Math.floor(at.image.height*dt);Pt.setTexture2D(at,0),Z.copyTexSubImage2D(Z.TEXTURE_2D,Et,0,0,q.x,q.y,ut,Kt),wt.unbindTexture()},this.copyTextureToTexture=function(q,at,Et,dt=0){let ut=at.image.width,Kt=at.image.height,te=k.convert(Et.format),le=k.convert(Et.type);Pt.setTexture2D(Et,0),Z.pixelStorei(Z.UNPACK_FLIP_Y_WEBGL,Et.flipY),Z.pixelStorei(Z.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Et.premultiplyAlpha),Z.pixelStorei(Z.UNPACK_ALIGNMENT,Et.unpackAlignment),at.isDataTexture?Z.texSubImage2D(Z.TEXTURE_2D,dt,q.x,q.y,ut,Kt,te,le,at.image.data):at.isCompressedTexture?Z.compressedTexSubImage2D(Z.TEXTURE_2D,dt,q.x,q.y,at.mipmaps[0].width,at.mipmaps[0].height,te,at.mipmaps[0].data):Z.texSubImage2D(Z.TEXTURE_2D,dt,q.x,q.y,te,le,at.image),dt===0&&Et.generateMipmaps&&Z.generateMipmap(Z.TEXTURE_2D),wt.unbindTexture()},this.copyTextureToTexture3D=function(q,at,Et,dt,ut=0){if(w.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let Kt=Math.round(q.max.x-q.min.x),te=Math.round(q.max.y-q.min.y),le=q.max.z-q.min.z+1,re=k.convert(dt.format),ve=k.convert(dt.type),fe;if(dt.isData3DTexture)Pt.setTexture3D(dt,0),fe=Z.TEXTURE_3D;else if(dt.isDataArrayTexture||dt.isCompressedArrayTexture)Pt.setTexture2DArray(dt,0),fe=Z.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}Z.pixelStorei(Z.UNPACK_FLIP_Y_WEBGL,dt.flipY),Z.pixelStorei(Z.UNPACK_PREMULTIPLY_ALPHA_WEBGL,dt.premultiplyAlpha),Z.pixelStorei(Z.UNPACK_ALIGNMENT,dt.unpackAlignment);let he=Z.getParameter(Z.UNPACK_ROW_LENGTH),cn=Z.getParameter(Z.UNPACK_IMAGE_HEIGHT),Tr=Z.getParameter(Z.UNPACK_SKIP_PIXELS),kn=Z.getParameter(Z.UNPACK_SKIP_ROWS),fi=Z.getParameter(Z.UNPACK_SKIP_IMAGES),wn=Et.isCompressedTexture?Et.mipmaps[ut]:Et.image;Z.pixelStorei(Z.UNPACK_ROW_LENGTH,wn.width),Z.pixelStorei(Z.UNPACK_IMAGE_HEIGHT,wn.height),Z.pixelStorei(Z.UNPACK_SKIP_PIXELS,q.min.x),Z.pixelStorei(Z.UNPACK_SKIP_ROWS,q.min.y),Z.pixelStorei(Z.UNPACK_SKIP_IMAGES,q.min.z),Et.isDataTexture||Et.isData3DTexture?Z.texSubImage3D(fe,ut,at.x,at.y,at.z,Kt,te,le,re,ve,wn.data):dt.isCompressedArrayTexture?Z.compressedTexSubImage3D(fe,ut,at.x,at.y,at.z,Kt,te,le,re,wn.data):Z.texSubImage3D(fe,ut,at.x,at.y,at.z,Kt,te,le,re,ve,wn),Z.pixelStorei(Z.UNPACK_ROW_LENGTH,he),Z.pixelStorei(Z.UNPACK_IMAGE_HEIGHT,cn),Z.pixelStorei(Z.UNPACK_SKIP_PIXELS,Tr),Z.pixelStorei(Z.UNPACK_SKIP_ROWS,kn),Z.pixelStorei(Z.UNPACK_SKIP_IMAGES,fi),ut===0&&dt.generateMipmaps&&Z.generateMipmap(fe),wt.unbindTexture()},this.initTexture=function(q){q.isCubeTexture?Pt.setTextureCube(q,0):q.isData3DTexture?Pt.setTexture3D(q,0):q.isDataArrayTexture||q.isCompressedArrayTexture?Pt.setTexture2DArray(q,0):Pt.setTexture2D(q,0),wt.unbindTexture()},this.resetState=function(){B=0,U=0,D=null,wt.reset(),G.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Ds}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;let e=this.getContext();e.drawingBufferColorSpace=t===Yv?"display-p3":"srgb",e.unpackColorSpace=Rn.workingColorSpace===ud?"display-p3":"srgb"}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(t){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=t}},wv=class extends Sv{};wv.prototype.isWebGL1Renderer=!0;var lf=class{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.usage=ev,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=Fs()}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}get updateRange(){return tP("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,i){t*=this.stride,i*=e.stride;for(let s=0,u=this.stride;s<u;s++)this.array[t+s]=e.array[i+s];return this}set(t,e=0){return this.array.set(t,e),this}clone(t){t.arrayBuffers===void 0&&(t.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=Fs()),t.arrayBuffers[this.array.buffer._uuid]===void 0&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);let e=new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]),i=new this.constructor(e,this.stride);return i.setUsage(this.usage),i}onUpload(t){return this.onUploadCallback=t,this}toJSON(t){return t.arrayBuffers===void 0&&(t.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=Fs()),t.arrayBuffers[this.array.buffer._uuid]===void 0&&(t.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}},Si=new st,ts=class n{constructor(t,e,i,s=!1){this.isInterleavedBufferAttribute=!0,this.name="",this.data=t,this.itemSize=e,this.offset=i,this.normalized=s}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(t){this.data.needsUpdate=t}applyMatrix4(t){for(let e=0,i=this.data.count;e<i;e++)Si.fromBufferAttribute(this,e),Si.applyMatrix4(t),this.setXYZ(e,Si.x,Si.y,Si.z);return this}applyNormalMatrix(t){for(let e=0,i=this.count;e<i;e++)Si.fromBufferAttribute(this,e),Si.applyNormalMatrix(t),this.setXYZ(e,Si.x,Si.y,Si.z);return this}transformDirection(t){for(let e=0,i=this.count;e<i;e++)Si.fromBufferAttribute(this,e),Si.transformDirection(t),this.setXYZ(e,Si.x,Si.y,Si.z);return this}getComponent(t,e){let i=this.array[t*this.data.stride+this.offset+e];return this.normalized&&(i=jo(i,this.array)),i}setComponent(t,e,i){return this.normalized&&(i=Pn(i,this.array)),this.data.array[t*this.data.stride+this.offset+e]=i,this}setX(t,e){return this.normalized&&(e=Pn(e,this.array)),this.data.array[t*this.data.stride+this.offset]=e,this}setY(t,e){return this.normalized&&(e=Pn(e,this.array)),this.data.array[t*this.data.stride+this.offset+1]=e,this}setZ(t,e){return this.normalized&&(e=Pn(e,this.array)),this.data.array[t*this.data.stride+this.offset+2]=e,this}setW(t,e){return this.normalized&&(e=Pn(e,this.array)),this.data.array[t*this.data.stride+this.offset+3]=e,this}getX(t){let e=this.data.array[t*this.data.stride+this.offset];return this.normalized&&(e=jo(e,this.array)),e}getY(t){let e=this.data.array[t*this.data.stride+this.offset+1];return this.normalized&&(e=jo(e,this.array)),e}getZ(t){let e=this.data.array[t*this.data.stride+this.offset+2];return this.normalized&&(e=jo(e,this.array)),e}getW(t){let e=this.data.array[t*this.data.stride+this.offset+3];return this.normalized&&(e=jo(e,this.array)),e}setXY(t,e,i){return t=t*this.data.stride+this.offset,this.normalized&&(e=Pn(e,this.array),i=Pn(i,this.array)),this.data.array[t+0]=e,this.data.array[t+1]=i,this}setXYZ(t,e,i,s){return t=t*this.data.stride+this.offset,this.normalized&&(e=Pn(e,this.array),i=Pn(i,this.array),s=Pn(s,this.array)),this.data.array[t+0]=e,this.data.array[t+1]=i,this.data.array[t+2]=s,this}setXYZW(t,e,i,s,u){return t=t*this.data.stride+this.offset,this.normalized&&(e=Pn(e,this.array),i=Pn(i,this.array),s=Pn(s,this.array),u=Pn(u,this.array)),this.data.array[t+0]=e,this.data.array[t+1]=i,this.data.array[t+2]=s,this.data.array[t+3]=u,this}clone(t){if(t===void 0){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.");let e=[];for(let i=0;i<this.count;i++){let s=i*this.data.stride+this.offset;for(let u=0;u<this.itemSize;u++)e.push(this.data.array[s+u])}return new Yn(new this.array.constructor(e),this.itemSize,this.normalized)}else return t.interleavedBuffers===void 0&&(t.interleavedBuffers={}),t.interleavedBuffers[this.data.uuid]===void 0&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t)),new n(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(t){if(t===void 0){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.");let e=[];for(let i=0;i<this.count;i++){let s=i*this.data.stride+this.offset;for(let u=0;u<this.itemSize;u++)e.push(this.data.array[s+u])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:e,normalized:this.normalized}}else return t.interleavedBuffers===void 0&&(t.interleavedBuffers={}),t.interleavedBuffers[this.data.uuid]===void 0&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}},Mv=class extends cu{constructor(t){super(),this.isSpriteMaterial=!0,this.type="SpriteMaterial",this.color=new Te(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this.fog=t.fog,this}},fa,tf=new st,gl=new st,ml=new st,yl=new Ft,ef=new Ft,lP=new jn,bp=new st,nf=new st,Ap=new st,DI=new Ft,Wy=new Ft,FI=new Ft,bv=class extends Oo{constructor(t=new Mv){if(super(),this.isSprite=!0,this.type="Sprite",fa===void 0){fa=new ui;let e=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),i=new lf(e,5);fa.setIndex([0,1,2,0,2,3]),fa.setAttribute("position",new ts(i,3,0,!1)),fa.setAttribute("uv",new ts(i,2,3,!1))}this.geometry=fa,this.material=t,this.center=new Ft(.5,.5)}raycast(t,e){t.camera===null&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),gl.setFromMatrixScale(this.matrixWorld),lP.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),ml.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&this.material.sizeAttenuation===!1&&gl.multiplyScalar(-ml.z);let i=this.material.rotation,s,u;i!==0&&(u=Math.cos(i),s=Math.sin(i));let c=this.center;Tp(bp.set(-.5,-.5,0),ml,c,gl,s,u),Tp(nf.set(.5,-.5,0),ml,c,gl,s,u),Tp(Ap.set(.5,.5,0),ml,c,gl,s,u),DI.set(0,0),Wy.set(1,0),FI.set(1,1);let f=t.ray.intersectTriangle(bp,nf,Ap,!1,tf);if(f===null&&(Tp(nf.set(-.5,.5,0),ml,c,gl,s,u),Wy.set(0,1),f=t.ray.intersectTriangle(bp,Ap,nf,!1,tf),f===null))return;let p=t.ray.origin.distanceTo(tf);p<t.near||p>t.far||e.push({distance:p,point:tf.clone(),uv:iu.getInterpolation(tf,bp,nf,Ap,DI,Wy,FI,new Ft),face:null,object:this})}copy(t,e){return super.copy(t,e),t.center!==void 0&&this.center.copy(t.center),this.material=t.material,this}};bv.Dispose=function(){fa.dispose(),fa=void 0};function Tp(n,t,e,i,s,u){yl.subVectors(n,e).addScalar(.5).multiply(i),s!==void 0?(ef.x=u*yl.x-s*yl.y,ef.y=s*yl.x+u*yl.y):ef.copy(yl),n.copy(t),n.x+=ef.x,n.y+=ef.y,n.applyMatrix4(lP)}var lo=class{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){let i=this.getUtoTmapping(t);return this.getPoint(i,e)}getPoints(t=5){let e=[];for(let i=0;i<=t;i++)e.push(this.getPoint(i/t));return e}getSpacedPoints(t=5){let e=[];for(let i=0;i<=t;i++)e.push(this.getPointAt(i/t));return e}getLength(){let t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;let e=[],i,s=this.getPoint(0),u=0;e.push(0);for(let c=1;c<=t;c++)i=this.getPoint(c/t),u+=i.distanceTo(s),e.push(u),s=i;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){let i=this.getLengths(),s=0,u=i.length,c;e?c=e:c=t*i[u-1];let f=0,p=u-1,d;for(;f<=p;)if(s=Math.floor(f+(p-f)/2),d=i[s]-c,d<0)f=s+1;else if(d>0)p=s-1;else{p=s;break}if(s=p,i[s]===c)return s/(u-1);let g=i[s],v=i[s+1]-g,E=(c-g)/v;return(s+E)/(u-1)}getTangent(t,e){let s=t-1e-4,u=t+1e-4;s<0&&(s=0),u>1&&(u=1);let c=this.getPoint(s),f=this.getPoint(u),p=e||(c.isVector2?new Ft:new st);return p.copy(f).sub(c).normalize(),p}getTangentAt(t,e){let i=this.getUtoTmapping(t);return this.getTangent(i,e)}computeFrenetFrames(t,e){let i=new st,s=[],u=[],c=[],f=new st,p=new jn;for(let E=0;E<=t;E++){let M=E/t;s[E]=this.getTangentAt(M,new st)}u[0]=new st,c[0]=new st;let d=Number.MAX_VALUE,g=Math.abs(s[0].x),y=Math.abs(s[0].y),v=Math.abs(s[0].z);g<=d&&(d=g,i.set(1,0,0)),y<=d&&(d=y,i.set(0,1,0)),v<=d&&i.set(0,0,1),f.crossVectors(s[0],i).normalize(),u[0].crossVectors(s[0],f),c[0].crossVectors(s[0],u[0]);for(let E=1;E<=t;E++){if(u[E]=u[E-1].clone(),c[E]=c[E-1].clone(),f.crossVectors(s[E-1],s[E]),f.length()>Number.EPSILON){f.normalize();let M=Math.acos(ai(s[E-1].dot(s[E]),-1,1));u[E].applyMatrix4(p.makeRotationAxis(f,M))}c[E].crossVectors(s[E],u[E])}if(e===!0){let E=Math.acos(ai(u[0].dot(u[t]),-1,1));E/=t,s[0].dot(f.crossVectors(u[0],u[t]))>0&&(E=-E);for(let M=1;M<=t;M++)u[M].applyMatrix4(p.makeRotationAxis(s[M],E*M)),c[M].crossVectors(s[M],u[M])}return{tangents:s,normals:u,binormals:c}}clone(){return new this.constructor().copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){let t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}},cf=class extends lo{constructor(t=0,e=0,i=1,s=1,u=0,c=Math.PI*2,f=!1,p=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=i,this.yRadius=s,this.aStartAngle=u,this.aEndAngle=c,this.aClockwise=f,this.aRotation=p}getPoint(t,e=new Ft){let i=e,s=Math.PI*2,u=this.aEndAngle-this.aStartAngle,c=Math.abs(u)<Number.EPSILON;for(;u<0;)u+=s;for(;u>s;)u-=s;u<Number.EPSILON&&(c?u=0:u=s),this.aClockwise===!0&&!c&&(u===s?u=-s:u=u-s);let f=this.aStartAngle+t*u,p=this.aX+this.xRadius*Math.cos(f),d=this.aY+this.yRadius*Math.sin(f);if(this.aRotation!==0){let g=Math.cos(this.aRotation),y=Math.sin(this.aRotation),v=p-this.aX,E=d-this.aY;p=v*g-E*y+this.aX,d=v*y+E*g+this.aY}return i.set(p,d)}copy(t){return super.copy(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}toJSON(){let t=super.toJSON();return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t}fromJSON(t){return super.fromJSON(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}},Av=class extends cf{constructor(t,e,i,s,u,c){super(t,e,i,i,s,u,c),this.isArcCurve=!0,this.type="ArcCurve"}};function Zv(){let n=0,t=0,e=0,i=0;function s(u,c,f,p){n=u,t=f,e=-3*u+3*c-2*f-p,i=2*u-2*c+f+p}return{initCatmullRom:function(u,c,f,p,d){s(c,f,d*(f-u),d*(p-c))},initNonuniformCatmullRom:function(u,c,f,p,d,g,y){let v=(c-u)/d-(f-u)/(d+g)+(f-c)/g,E=(f-c)/g-(p-c)/(g+y)+(p-f)/y;v*=g,E*=g,s(c,f,v,E)},calc:function(u){let c=u*u,f=c*u;return n+t*u+e*c+i*f}}}var Cp=new st,Xy=new Zv,Yy=new Zv,$y=new Zv,Tv=class extends lo{constructor(t=[],e=!1,i="centripetal",s=.5){super(),this.isCatmullRomCurve3=!0,this.type="CatmullRomCurve3",this.points=t,this.closed=e,this.curveType=i,this.tension=s}getPoint(t,e=new st){let i=e,s=this.points,u=s.length,c=(u-(this.closed?0:1))*t,f=Math.floor(c),p=c-f;this.closed?f+=f>0?0:(Math.floor(Math.abs(f)/u)+1)*u:p===0&&f===u-1&&(f=u-2,p=1);let d,g;this.closed||f>0?d=s[(f-1)%u]:(Cp.subVectors(s[0],s[1]).add(s[0]),d=Cp);let y=s[f%u],v=s[(f+1)%u];if(this.closed||f+2<u?g=s[(f+2)%u]:(Cp.subVectors(s[u-1],s[u-2]).add(s[u-1]),g=Cp),this.curveType==="centripetal"||this.curveType==="chordal"){let E=this.curveType==="chordal"?.5:.25,M=Math.pow(d.distanceToSquared(y),E),A=Math.pow(y.distanceToSquared(v),E),_=Math.pow(v.distanceToSquared(g),E);A<1e-4&&(A=1),M<1e-4&&(M=A),_<1e-4&&(_=A),Xy.initNonuniformCatmullRom(d.x,y.x,v.x,g.x,M,A,_),Yy.initNonuniformCatmullRom(d.y,y.y,v.y,g.y,M,A,_),$y.initNonuniformCatmullRom(d.z,y.z,v.z,g.z,M,A,_)}else this.curveType==="catmullrom"&&(Xy.initCatmullRom(d.x,y.x,v.x,g.x,this.tension),Yy.initCatmullRom(d.y,y.y,v.y,g.y,this.tension),$y.initCatmullRom(d.z,y.z,v.z,g.z,this.tension));return i.set(Xy.calc(p),Yy.calc(p),$y.calc(p)),i}copy(t){super.copy(t),this.points=[];for(let e=0,i=t.points.length;e<i;e++){let s=t.points[e];this.points.push(s.clone())}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}toJSON(){let t=super.toJSON();t.points=[];for(let e=0,i=this.points.length;e<i;e++){let s=this.points[e];t.points.push(s.toArray())}return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,i=t.points.length;e<i;e++){let s=t.points[e];this.points.push(new st().fromArray(s))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}};function UI(n,t,e,i,s){let u=(i-t)*.5,c=(s-e)*.5,f=n*n,p=n*f;return(2*e-2*i+u+c)*p+(-3*e+3*i-2*u-c)*f+u*n+e}function U7(n,t){let e=1-n;return e*e*t}function B7(n,t){return 2*(1-n)*n*t}function z7(n,t){return n*n*t}function of(n,t,e,i){return U7(n,t)+B7(n,e)+z7(n,i)}function G7(n,t){let e=1-n;return e*e*e*t}function k7(n,t){let e=1-n;return 3*e*e*n*t}function q7(n,t){return 3*(1-n)*n*n*t}function V7(n,t){return n*n*n*t}function sf(n,t,e,i,s){return G7(n,t)+k7(n,e)+q7(n,i)+V7(n,s)}var Qp=class extends lo{constructor(t=new Ft,e=new Ft,i=new Ft,s=new Ft){super(),this.isCubicBezierCurve=!0,this.type="CubicBezierCurve",this.v0=t,this.v1=e,this.v2=i,this.v3=s}getPoint(t,e=new Ft){let i=e,s=this.v0,u=this.v1,c=this.v2,f=this.v3;return i.set(sf(t,s.x,u.x,c.x,f.x),sf(t,s.y,u.y,c.y,f.y)),i}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){let t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}},Cv=class extends lo{constructor(t=new st,e=new st,i=new st,s=new st){super(),this.isCubicBezierCurve3=!0,this.type="CubicBezierCurve3",this.v0=t,this.v1=e,this.v2=i,this.v3=s}getPoint(t,e=new st){let i=e,s=this.v0,u=this.v1,c=this.v2,f=this.v3;return i.set(sf(t,s.x,u.x,c.x,f.x),sf(t,s.y,u.y,c.y,f.y),sf(t,s.z,u.z,c.z,f.z)),i}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){let t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}},td=class extends lo{constructor(t=new Ft,e=new Ft){super(),this.isLineCurve=!0,this.type="LineCurve",this.v1=t,this.v2=e}getPoint(t,e=new Ft){let i=e;return t===1?i.copy(this.v2):(i.copy(this.v2).sub(this.v1),i.multiplyScalar(t).add(this.v1)),i}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e=new Ft){return e.subVectors(this.v2,this.v1).normalize()}getTangentAt(t,e){return this.getTangent(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){let t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}},Iv=class extends lo{constructor(t=new st,e=new st){super(),this.isLineCurve3=!0,this.type="LineCurve3",this.v1=t,this.v2=e}getPoint(t,e=new st){let i=e;return t===1?i.copy(this.v2):(i.copy(this.v2).sub(this.v1),i.multiplyScalar(t).add(this.v1)),i}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e=new st){return e.subVectors(this.v2,this.v1).normalize()}getTangentAt(t,e){return this.getTangent(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){let t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}},ed=class extends lo{constructor(t=new Ft,e=new Ft,i=new Ft){super(),this.isQuadraticBezierCurve=!0,this.type="QuadraticBezierCurve",this.v0=t,this.v1=e,this.v2=i}getPoint(t,e=new Ft){let i=e,s=this.v0,u=this.v1,c=this.v2;return i.set(of(t,s.x,u.x,c.x),of(t,s.y,u.y,c.y)),i}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){let t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}},Pv=class extends lo{constructor(t=new st,e=new st,i=new st){super(),this.isQuadraticBezierCurve3=!0,this.type="QuadraticBezierCurve3",this.v0=t,this.v1=e,this.v2=i}getPoint(t,e=new st){let i=e,s=this.v0,u=this.v1,c=this.v2;return i.set(of(t,s.x,u.x,c.x),of(t,s.y,u.y,c.y),of(t,s.z,u.z,c.z)),i}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){let t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}},nd=class extends lo{constructor(t=[]){super(),this.isSplineCurve=!0,this.type="SplineCurve",this.points=t}getPoint(t,e=new Ft){let i=e,s=this.points,u=(s.length-1)*t,c=Math.floor(u),f=u-c,p=s[c===0?c:c-1],d=s[c],g=s[c>s.length-2?s.length-1:c+1],y=s[c>s.length-3?s.length-1:c+2];return i.set(UI(f,p.x,d.x,g.x,y.x),UI(f,p.y,d.y,g.y,y.y)),i}copy(t){super.copy(t),this.points=[];for(let e=0,i=t.points.length;e<i;e++){let s=t.points[e];this.points.push(s.clone())}return this}toJSON(){let t=super.toJSON();t.points=[];for(let e=0,i=this.points.length;e<i;e++){let s=this.points[e];t.points.push(s.toArray())}return t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,i=t.points.length;e<i;e++){let s=t.points[e];this.points.push(new Ft().fromArray(s))}return this}},Rv=Object.freeze({__proto__:null,ArcCurve:Av,CatmullRomCurve3:Tv,CubicBezierCurve:Qp,CubicBezierCurve3:Cv,EllipseCurve:cf,LineCurve:td,LineCurve3:Iv,QuadraticBezierCurve:ed,QuadraticBezierCurve3:Pv,SplineCurve:nd}),Lv=class extends lo{constructor(){super(),this.type="CurvePath",this.curves=[],this.autoClose=!1}add(t){this.curves.push(t)}closePath(){let t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);if(!t.equals(e)){let i=t.isVector2===!0?"LineCurve":"LineCurve3";this.curves.push(new Rv[i](e,t))}return this}getPoint(t,e){let i=t*this.getLength(),s=this.getCurveLengths(),u=0;for(;u<s.length;){if(s[u]>=i){let c=s[u]-i,f=this.curves[u],p=f.getLength(),d=p===0?0:1-c/p;return f.getPointAt(d,e)}u++}return null}getLength(){let t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;let t=[],e=0;for(let i=0,s=this.curves.length;i<s;i++)e+=this.curves[i].getLength(),t.push(e);return this.cacheLengths=t,t}getSpacedPoints(t=40){let e=[];for(let i=0;i<=t;i++)e.push(this.getPoint(i/t));return this.autoClose&&e.push(e[0]),e}getPoints(t=12){let e=[],i;for(let s=0,u=this.curves;s<u.length;s++){let c=u[s],f=c.isEllipseCurve?t*2:c.isLineCurve||c.isLineCurve3?1:c.isSplineCurve?t*c.points.length:t,p=c.getPoints(f);for(let d=0;d<p.length;d++){let g=p[d];i&&i.equals(g)||(e.push(g),i=g)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,i=t.curves.length;e<i;e++){let s=t.curves[e];this.curves.push(s.clone())}return this.autoClose=t.autoClose,this}toJSON(){let t=super.toJSON();t.autoClose=this.autoClose,t.curves=[];for(let e=0,i=this.curves.length;e<i;e++){let s=this.curves[e];t.curves.push(s.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.autoClose=t.autoClose,this.curves=[];for(let e=0,i=t.curves.length;e<i;e++){let s=t.curves[e];this.curves.push(new Rv[s.type]().fromJSON(s))}return this}},Cl=class extends Lv{constructor(t){super(),this.type="Path",this.currentPoint=new Ft,t&&this.setFromPoints(t)}setFromPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,i=t.length;e<i;e++)this.lineTo(t[e].x,t[e].y);return this}moveTo(t,e){return this.currentPoint.set(t,e),this}lineTo(t,e){let i=new td(this.currentPoint.clone(),new Ft(t,e));return this.curves.push(i),this.currentPoint.set(t,e),this}quadraticCurveTo(t,e,i,s){let u=new ed(this.currentPoint.clone(),new Ft(t,e),new Ft(i,s));return this.curves.push(u),this.currentPoint.set(i,s),this}bezierCurveTo(t,e,i,s,u,c){let f=new Qp(this.currentPoint.clone(),new Ft(t,e),new Ft(i,s),new Ft(u,c));return this.curves.push(f),this.currentPoint.set(u,c),this}splineThru(t){let e=[this.currentPoint.clone()].concat(t),i=new nd(e);return this.curves.push(i),this.currentPoint.copy(t[t.length-1]),this}arc(t,e,i,s,u,c){let f=this.currentPoint.x,p=this.currentPoint.y;return this.absarc(t+f,e+p,i,s,u,c),this}absarc(t,e,i,s,u,c){return this.absellipse(t,e,i,i,s,u,c),this}ellipse(t,e,i,s,u,c,f,p){let d=this.currentPoint.x,g=this.currentPoint.y;return this.absellipse(t+d,e+g,i,s,u,c,f,p),this}absellipse(t,e,i,s,u,c,f,p){let d=new cf(t,e,i,s,u,c,f,p);if(this.curves.length>0){let y=d.getPoint(0);y.equals(this.currentPoint)||this.lineTo(y.x,y.y)}this.curves.push(d);let g=d.getPoint(1);return this.currentPoint.copy(g),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){let t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}};var Il=class extends Cl{constructor(t){super(t),this.uuid=Fs(),this.type="Shape",this.holes=[]}getPointsHoles(t){let e=[];for(let i=0,s=this.holes.length;i<s;i++)e[i]=this.holes[i].getPoints(t);return e}extractPoints(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}}copy(t){super.copy(t),this.holes=[];for(let e=0,i=t.holes.length;e<i;e++){let s=t.holes[e];this.holes.push(s.clone())}return this}toJSON(){let t=super.toJSON();t.uuid=this.uuid,t.holes=[];for(let e=0,i=this.holes.length;e<i;e++){let s=this.holes[e];t.holes.push(s.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.uuid=t.uuid,this.holes=[];for(let e=0,i=t.holes.length;e<i;e++){let s=t.holes[e];this.holes.push(new Cl().fromJSON(s))}return this}},H7={triangulate:function(n,t,e=2){let i=t&&t.length,s=i?t[0]*e:n.length,u=cP(n,0,s,e,!0),c=[];if(!u||u.next===u.prev)return c;let f,p,d,g,y,v,E;if(i&&(u=Z7(n,t,u,e)),n.length>80*e){f=d=n[0],p=g=n[1];for(let M=e;M<s;M+=e)y=n[M],v=n[M+1],y<f&&(f=y),v<p&&(p=v),y>d&&(d=y),v>g&&(g=v);E=Math.max(d-f,g-p),E=E!==0?32767/E:0}return ff(u,c,e,f,p,E,0),c}};function cP(n,t,e,i,s){let u,c;if(s===sY(n,t,e,i)>0)for(u=t;u<e;u+=i)c=BI(u,n[u],n[u+1],c);else for(u=e-i;u>=t;u-=i)c=BI(u,n[u],n[u+1],c);return c&&cd(c,c.next)&&(pf(c),c=c.next),c}function fu(n,t){if(!n)return n;t||(t=n);let e=n,i;do if(i=!1,!e.steiner&&(cd(e,e.next)||Jn(e.prev,e,e.next)===0)){if(pf(e),e=t=e.prev,e===e.next)break;i=!0}else e=e.next;while(i||e!==t);return t}function ff(n,t,e,i,s,u,c){if(!n)return;!c&&u&&tY(n,i,s,u);let f=n,p,d;for(;n.prev!==n.next;){if(p=n.prev,d=n.next,u?X7(n,i,s,u):W7(n)){t.push(p.i/e|0),t.push(n.i/e|0),t.push(d.i/e|0),pf(n),n=d.next,f=d.next;continue}if(n=d,n===f){c?c===1?(n=Y7(fu(n),t,e),ff(n,t,e,i,s,u,2)):c===2&&$7(n,t,e,i,s,u):ff(fu(n),t,e,i,s,u,1);break}}}function W7(n){let t=n.prev,e=n,i=n.next;if(Jn(t,e,i)>=0)return!1;let s=t.x,u=e.x,c=i.x,f=t.y,p=e.y,d=i.y,g=s<u?s<c?s:c:u<c?u:c,y=f<p?f<d?f:d:p<d?p:d,v=s>u?s>c?s:c:u>c?u:c,E=f>p?f>d?f:d:p>d?p:d,M=i.next;for(;M!==t;){if(M.x>=g&&M.x<=v&&M.y>=y&&M.y<=E&&xl(s,f,u,p,c,d,M.x,M.y)&&Jn(M.prev,M,M.next)>=0)return!1;M=M.next}return!0}function X7(n,t,e,i){let s=n.prev,u=n,c=n.next;if(Jn(s,u,c)>=0)return!1;let f=s.x,p=u.x,d=c.x,g=s.y,y=u.y,v=c.y,E=f<p?f<d?f:d:p<d?p:d,M=g<y?g<v?g:v:y<v?y:v,A=f>p?f>d?f:d:p>d?p:d,_=g>y?g>v?g:v:y>v?y:v,x=Nv(E,M,t,e,i),T=Nv(A,_,t,e,i),w=n.prevZ,R=n.nextZ;for(;w&&w.z>=x&&R&&R.z<=T;){if(w.x>=E&&w.x<=A&&w.y>=M&&w.y<=_&&w!==s&&w!==c&&xl(f,g,p,y,d,v,w.x,w.y)&&Jn(w.prev,w,w.next)>=0||(w=w.prevZ,R.x>=E&&R.x<=A&&R.y>=M&&R.y<=_&&R!==s&&R!==c&&xl(f,g,p,y,d,v,R.x,R.y)&&Jn(R.prev,R,R.next)>=0))return!1;R=R.nextZ}for(;w&&w.z>=x;){if(w.x>=E&&w.x<=A&&w.y>=M&&w.y<=_&&w!==s&&w!==c&&xl(f,g,p,y,d,v,w.x,w.y)&&Jn(w.prev,w,w.next)>=0)return!1;w=w.prevZ}for(;R&&R.z<=T;){if(R.x>=E&&R.x<=A&&R.y>=M&&R.y<=_&&R!==s&&R!==c&&xl(f,g,p,y,d,v,R.x,R.y)&&Jn(R.prev,R,R.next)>=0)return!1;R=R.nextZ}return!0}function Y7(n,t,e){let i=n;do{let s=i.prev,u=i.next.next;!cd(s,u)&&fP(s,i,i.next,u)&&hf(s,u)&&hf(u,s)&&(t.push(s.i/e|0),t.push(i.i/e|0),t.push(u.i/e|0),pf(i),pf(i.next),i=n=u),i=i.next}while(i!==n);return fu(i)}function $7(n,t,e,i,s,u){let c=n;do{let f=c.next.next;for(;f!==c.prev;){if(c.i!==f.i&&rY(c,f)){let p=hP(c,f);c=fu(c,c.next),p=fu(p,p.next),ff(c,t,e,i,s,u,0),ff(p,t,e,i,s,u,0);return}f=f.next}c=c.next}while(c!==n)}function Z7(n,t,e,i){let s=[],u,c,f,p,d;for(u=0,c=t.length;u<c;u++)f=t[u]*i,p=u<c-1?t[u+1]*i:n.length,d=cP(n,f,p,i,!1),d===d.next&&(d.steiner=!0),s.push(nY(d));for(s.sort(J7),u=0;u<s.length;u++)e=j7(s[u],e);return e}function J7(n,t){return n.x-t.x}function j7(n,t){let e=K7(n,t);if(!e)return t;let i=hP(e,n);return fu(i,i.next),fu(e,e.next)}function K7(n,t){let e=t,i=-1/0,s,u=n.x,c=n.y;do{if(c<=e.y&&c>=e.next.y&&e.next.y!==e.y){let v=e.x+(c-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(v<=u&&v>i&&(i=v,s=e.x<e.next.x?e:e.next,v===u))return s}e=e.next}while(e!==t);if(!s)return null;let f=s,p=s.x,d=s.y,g=1/0,y;e=s;do u>=e.x&&e.x>=p&&u!==e.x&&xl(c<d?u:i,c,p,d,c<d?i:u,c,e.x,e.y)&&(y=Math.abs(c-e.y)/(u-e.x),hf(e,n)&&(y<g||y===g&&(e.x>s.x||e.x===s.x&&Q7(s,e)))&&(s=e,g=y)),e=e.next;while(e!==f);return s}function Q7(n,t){return Jn(n.prev,n,t.prev)<0&&Jn(t.next,n,n.next)<0}function tY(n,t,e,i){let s=n;do s.z===0&&(s.z=Nv(s.x,s.y,t,e,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==n);s.prevZ.nextZ=null,s.prevZ=null,eY(s)}function eY(n){let t,e,i,s,u,c,f,p,d=1;do{for(e=n,n=null,u=null,c=0;e;){for(c++,i=e,f=0,t=0;t<d&&(f++,i=i.nextZ,!!i);t++);for(p=d;f>0||p>0&&i;)f!==0&&(p===0||!i||e.z<=i.z)?(s=e,e=e.nextZ,f--):(s=i,i=i.nextZ,p--),u?u.nextZ=s:n=s,s.prevZ=u,u=s;e=i}u.nextZ=null,d*=2}while(c>1);return n}function Nv(n,t,e,i,s){return n=(n-e)*s|0,t=(t-i)*s|0,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,n|t<<1}function nY(n){let t=n,e=n;do(t.x<e.x||t.x===e.x&&t.y<e.y)&&(e=t),t=t.next;while(t!==n);return e}function xl(n,t,e,i,s,u,c,f){return(s-c)*(t-f)>=(n-c)*(u-f)&&(n-c)*(i-f)>=(e-c)*(t-f)&&(e-c)*(u-f)>=(s-c)*(i-f)}function rY(n,t){return n.next.i!==t.i&&n.prev.i!==t.i&&!iY(n,t)&&(hf(n,t)&&hf(t,n)&&oY(n,t)&&(Jn(n.prev,n,t.prev)||Jn(n,t.prev,t))||cd(n,t)&&Jn(n.prev,n,n.next)>0&&Jn(t.prev,t,t.next)>0)}function Jn(n,t,e){return(t.y-n.y)*(e.x-t.x)-(t.x-n.x)*(e.y-t.y)}function cd(n,t){return n.x===t.x&&n.y===t.y}function fP(n,t,e,i){let s=Pp(Jn(n,t,e)),u=Pp(Jn(n,t,i)),c=Pp(Jn(e,i,n)),f=Pp(Jn(e,i,t));return!!(s!==u&&c!==f||s===0&&Ip(n,e,t)||u===0&&Ip(n,i,t)||c===0&&Ip(e,n,i)||f===0&&Ip(e,t,i))}function Ip(n,t,e){return t.x<=Math.max(n.x,e.x)&&t.x>=Math.min(n.x,e.x)&&t.y<=Math.max(n.y,e.y)&&t.y>=Math.min(n.y,e.y)}function Pp(n){return n>0?1:n<0?-1:0}function iY(n,t){let e=n;do{if(e.i!==n.i&&e.next.i!==n.i&&e.i!==t.i&&e.next.i!==t.i&&fP(e,e.next,n,t))return!0;e=e.next}while(e!==n);return!1}function hf(n,t){return Jn(n.prev,n,n.next)<0?Jn(n,t,n.next)>=0&&Jn(n,n.prev,t)>=0:Jn(n,t,n.prev)<0||Jn(n,n.next,t)<0}function oY(n,t){let e=n,i=!1,s=(n.x+t.x)/2,u=(n.y+t.y)/2;do e.y>u!=e.next.y>u&&e.next.y!==e.y&&s<(e.next.x-e.x)*(u-e.y)/(e.next.y-e.y)+e.x&&(i=!i),e=e.next;while(e!==n);return i}function hP(n,t){let e=new Ov(n.i,n.x,n.y),i=new Ov(t.i,t.x,t.y),s=n.next,u=t.prev;return n.next=t,t.prev=n,e.next=s,s.prev=e,i.next=e,e.prev=i,u.next=i,i.prev=u,i}function BI(n,t,e,i){let s=new Ov(n,t,e);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function pf(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function Ov(n,t,e){this.i=n,this.x=t,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function sY(n,t,e,i){let s=0;for(let u=t,c=e-i;u<e;u+=i)s+=(n[c]-n[u])*(n[u+1]+n[c+1]),c=u;return s}var ya=class n{static area(t){let e=t.length,i=0;for(let s=e-1,u=0;u<e;s=u++)i+=t[s].x*t[u].y-t[u].x*t[s].y;return i*.5}static isClockWise(t){return n.area(t)<0}static triangulateShape(t,e){let i=[],s=[],u=[];zI(t),GI(i,t);let c=t.length;e.forEach(zI);for(let p=0;p<e.length;p++)s.push(c),c+=e[p].length,GI(i,e[p]);let f=H7.triangulate(i,s);for(let p=0;p<f.length;p+=3)u.push(f.slice(p,p+3));return u}};function zI(n){let t=n.length;t>2&&n[t-1].equals(n[0])&&n.pop()}function GI(n,t){for(let e=0;e<t.length;e++)n.push(t[e].x),n.push(t[e].y)}var rd=class n extends ui{constructor(t=new Il([new Ft(.5,.5),new Ft(-.5,.5),new Ft(-.5,-.5),new Ft(.5,-.5)]),e={}){super(),this.type="ExtrudeGeometry",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];let i=this,s=[],u=[];for(let f=0,p=t.length;f<p;f++){let d=t[f];c(d)}this.setAttribute("position",new _r(s,3)),this.setAttribute("uv",new _r(u,2)),this.computeVertexNormals();function c(f){let p=[],d=e.curveSegments!==void 0?e.curveSegments:12,g=e.steps!==void 0?e.steps:1,y=e.depth!==void 0?e.depth:1,v=e.bevelEnabled!==void 0?e.bevelEnabled:!0,E=e.bevelThickness!==void 0?e.bevelThickness:.2,M=e.bevelSize!==void 0?e.bevelSize:E-.1,A=e.bevelOffset!==void 0?e.bevelOffset:0,_=e.bevelSegments!==void 0?e.bevelSegments:3,x=e.extrudePath,T=e.UVGenerator!==void 0?e.UVGenerator:aY,w,R=!1,B,U,D,P;x&&(w=x.getSpacedPoints(g),R=!0,v=!1,B=x.computeFrenetFrames(g,!1),U=new st,D=new st,P=new st),v||(_=0,E=0,M=0,A=0);let ct=f.extractPoints(d),L=ct.shape,W=ct.holes;if(!ya.isClockWise(L)){L=L.reverse();for(let Z=0,Ot=W.length;Z<Ot;Z++){let _t=W[Z];ya.isClockWise(_t)&&(W[Z]=_t.reverse())}}let Mt=ya.triangulateShape(L,W),$=L;for(let Z=0,Ot=W.length;Z<Ot;Z++){let _t=W[Z];L=L.concat(_t)}function gt(Z,Ot,_t){return Ot||console.error("THREE.ExtrudeGeometry: vec does not exist"),Z.clone().addScaledVector(Ot,_t)}let ft=L.length,vt=Mt.length;function it(Z,Ot,_t){let Nt,wt,Ht,Xt=Z.x-Ot.x,Pt=Z.y-Ot.y,ne=_t.x-Z.x,Y=_t.y-Z.y,N=Xt*Xt+Pt*Pt,xt=Xt*Y-Pt*ne;if(Math.abs(xt)>Number.EPSILON){let St=Math.sqrt(N),ot=Math.sqrt(ne*ne+Y*Y),Lt=Ot.x-Pt/St,ce=Ot.y+Xt/St,Rt=_t.x-Y/ot,Bt=_t.y+ne/ot,Wt=((Rt-Lt)*Y-(Bt-ce)*ne)/(Xt*Y-Pt*ne);Nt=Lt+Xt*Wt-Z.x,wt=ce+Pt*Wt-Z.y;let j=Nt*Nt+wt*wt;if(j<=2)return new Ft(Nt,wt);Ht=Math.sqrt(j/2)}else{let St=!1;Xt>Number.EPSILON?ne>Number.EPSILON&&(St=!0):Xt<-Number.EPSILON?ne<-Number.EPSILON&&(St=!0):Math.sign(Pt)===Math.sign(Y)&&(St=!0),St?(Nt=-Pt,wt=Xt,Ht=Math.sqrt(N)):(Nt=Xt,wt=Pt,Ht=Math.sqrt(N/2))}return new Ft(Nt/Ht,wt/Ht)}let lt=[];for(let Z=0,Ot=$.length,_t=Ot-1,Nt=Z+1;Z<Ot;Z++,_t++,Nt++)_t===Ot&&(_t=0),Nt===Ot&&(Nt=0),lt[Z]=it($[Z],$[_t],$[Nt]);let H=[],At,It=lt.concat();for(let Z=0,Ot=W.length;Z<Ot;Z++){let _t=W[Z];At=[];for(let Nt=0,wt=_t.length,Ht=wt-1,Xt=Nt+1;Nt<wt;Nt++,Ht++,Xt++)Ht===wt&&(Ht=0),Xt===wt&&(Xt=0),At[Nt]=it(_t[Nt],_t[Ht],_t[Xt]);H.push(At),It=It.concat(At)}for(let Z=0;Z<_;Z++){let Ot=Z/_,_t=E*Math.cos(Ot*Math.PI/2),Nt=M*Math.sin(Ot*Math.PI/2)+A;for(let wt=0,Ht=$.length;wt<Ht;wt++){let Xt=gt($[wt],lt[wt],Nt);$t(Xt.x,Xt.y,-_t)}for(let wt=0,Ht=W.length;wt<Ht;wt++){let Xt=W[wt];At=H[wt];for(let Pt=0,ne=Xt.length;Pt<ne;Pt++){let Y=gt(Xt[Pt],At[Pt],Nt);$t(Y.x,Y.y,-_t)}}}let jt=M+A;for(let Z=0;Z<ft;Z++){let Ot=v?gt(L[Z],It[Z],jt):L[Z];R?(D.copy(B.normals[0]).multiplyScalar(Ot.x),U.copy(B.binormals[0]).multiplyScalar(Ot.y),P.copy(w[0]).add(D).add(U),$t(P.x,P.y,P.z)):$t(Ot.x,Ot.y,0)}for(let Z=1;Z<=g;Z++)for(let Ot=0;Ot<ft;Ot++){let _t=v?gt(L[Ot],It[Ot],jt):L[Ot];R?(D.copy(B.normals[Z]).multiplyScalar(_t.x),U.copy(B.binormals[Z]).multiplyScalar(_t.y),P.copy(w[Z]).add(D).add(U),$t(P.x,P.y,P.z)):$t(_t.x,_t.y,y/g*Z)}for(let Z=_-1;Z>=0;Z--){let Ot=Z/_,_t=E*Math.cos(Ot*Math.PI/2),Nt=M*Math.sin(Ot*Math.PI/2)+A;for(let wt=0,Ht=$.length;wt<Ht;wt++){let Xt=gt($[wt],lt[wt],Nt);$t(Xt.x,Xt.y,y+_t)}for(let wt=0,Ht=W.length;wt<Ht;wt++){let Xt=W[wt];At=H[wt];for(let Pt=0,ne=Xt.length;Pt<ne;Pt++){let Y=gt(Xt[Pt],At[Pt],Nt);R?$t(Y.x,Y.y+w[g-1].y,w[g-1].x+_t):$t(Y.x,Y.y,y+_t)}}}nt(),bt();function nt(){let Z=s.length/3;if(v){let Ot=0,_t=ft*Ot;for(let Nt=0;Nt<vt;Nt++){let wt=Mt[Nt];Ut(wt[2]+_t,wt[1]+_t,wt[0]+_t)}Ot=g+_*2,_t=ft*Ot;for(let Nt=0;Nt<vt;Nt++){let wt=Mt[Nt];Ut(wt[0]+_t,wt[1]+_t,wt[2]+_t)}}else{for(let Ot=0;Ot<vt;Ot++){let _t=Mt[Ot];Ut(_t[2],_t[1],_t[0])}for(let Ot=0;Ot<vt;Ot++){let _t=Mt[Ot];Ut(_t[0]+ft*g,_t[1]+ft*g,_t[2]+ft*g)}}i.addGroup(Z,s.length/3-Z,0)}function bt(){let Z=s.length/3,Ot=0;Vt($,Ot),Ot+=$.length;for(let _t=0,Nt=W.length;_t<Nt;_t++){let wt=W[_t];Vt(wt,Ot),Ot+=wt.length}i.addGroup(Z,s.length/3-Z,1)}function Vt(Z,Ot){let _t=Z.length;for(;--_t>=0;){let Nt=_t,wt=_t-1;wt<0&&(wt=Z.length-1);for(let Ht=0,Xt=g+_*2;Ht<Xt;Ht++){let Pt=ft*Ht,ne=ft*(Ht+1),Y=Ot+Nt+Pt,N=Ot+wt+Pt,xt=Ot+wt+ne,St=Ot+Nt+ne;Gt(Y,N,xt,St)}}}function $t(Z,Ot,_t){p.push(Z),p.push(Ot),p.push(_t)}function Ut(Z,Ot,_t){Ct(Z),Ct(Ot),Ct(_t);let Nt=s.length/3,wt=T.generateTopUV(i,s,Nt-3,Nt-2,Nt-1);ee(wt[0]),ee(wt[1]),ee(wt[2])}function Gt(Z,Ot,_t,Nt){Ct(Z),Ct(Ot),Ct(Nt),Ct(Ot),Ct(_t),Ct(Nt);let wt=s.length/3,Ht=T.generateSideWallUV(i,s,wt-6,wt-3,wt-2,wt-1);ee(Ht[0]),ee(Ht[1]),ee(Ht[3]),ee(Ht[1]),ee(Ht[2]),ee(Ht[3])}function Ct(Z){s.push(p[Z*3+0]),s.push(p[Z*3+1]),s.push(p[Z*3+2])}function ee(Z){u.push(Z.x),u.push(Z.y)}}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}toJSON(){let t=super.toJSON(),e=this.parameters.shapes,i=this.parameters.options;return uY(e,i,t)}static fromJSON(t,e){let i=[];for(let u=0,c=t.shapes.length;u<c;u++){let f=e[t.shapes[u]];i.push(f)}let s=t.options.extrudePath;return s!==void 0&&(t.options.extrudePath=new Rv[s.type]().fromJSON(s)),new n(i,t.options)}},aY={generateTopUV:function(n,t,e,i,s){let u=t[e*3],c=t[e*3+1],f=t[i*3],p=t[i*3+1],d=t[s*3],g=t[s*3+1];return[new Ft(u,c),new Ft(f,p),new Ft(d,g)]},generateSideWallUV:function(n,t,e,i,s,u){let c=t[e*3],f=t[e*3+1],p=t[e*3+2],d=t[i*3],g=t[i*3+1],y=t[i*3+2],v=t[s*3],E=t[s*3+1],M=t[s*3+2],A=t[u*3],_=t[u*3+1],x=t[u*3+2];return Math.abs(f-g)<Math.abs(c-d)?[new Ft(c,1-p),new Ft(d,1-y),new Ft(v,1-M),new Ft(A,1-x)]:[new Ft(f,1-p),new Ft(g,1-y),new Ft(E,1-M),new Ft(_,1-x)]}};function uY(n,t,e){if(e.shapes=[],Array.isArray(n))for(let i=0,s=n.length;i<s;i++){let u=n[i];e.shapes.push(u.uuid)}else e.shapes.push(n.uuid);return e.options=Object.assign({},t),t.extrudePath!==void 0&&(e.options.extrudePath=t.extrudePath.toJSON()),e}var id=class n extends ui{constructor(t=new Il([new Ft(0,.5),new Ft(-.5,-.5),new Ft(.5,-.5)]),e=12){super(),this.type="ShapeGeometry",this.parameters={shapes:t,curveSegments:e};let i=[],s=[],u=[],c=[],f=0,p=0;if(Array.isArray(t)===!1)d(t);else for(let g=0;g<t.length;g++)d(t[g]),this.addGroup(f,p,g),f+=p,p=0;this.setIndex(i),this.setAttribute("position",new _r(s,3)),this.setAttribute("normal",new _r(u,3)),this.setAttribute("uv",new _r(c,2));function d(g){let y=s.length/3,v=g.extractPoints(e),E=v.shape,M=v.holes;ya.isClockWise(E)===!1&&(E=E.reverse());for(let _=0,x=M.length;_<x;_++){let T=M[_];ya.isClockWise(T)===!0&&(M[_]=T.reverse())}let A=ya.triangulateShape(E,M);for(let _=0,x=M.length;_<x;_++){let T=M[_];E=E.concat(T)}for(let _=0,x=E.length;_<x;_++){let T=E[_];s.push(T.x,T.y,0),u.push(0,0,1),c.push(T.x,T.y)}for(let _=0,x=A.length;_<x;_++){let T=A[_],w=T[0]+y,R=T[1]+y,B=T[2]+y;i.push(w,R,B),p+=3}}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}toJSON(){let t=super.toJSON(),e=this.parameters.shapes;return lY(e,t)}static fromJSON(t,e){let i=[];for(let s=0,u=t.shapes.length;s<u;s++){let c=e[t.shapes[s]];i.push(c)}return new n(i,t.curveSegments)}};function lY(n,t){if(t.shapes=[],Array.isArray(n))for(let e=0,i=n.length;e<i;e++){let s=n[e];t.shapes.push(s.uuid)}else t.shapes.push(n.uuid);return t}var od=class extends ui{constructor(t=null){if(super(),this.type="WireframeGeometry",this.parameters={geometry:t},t!==null){let e=[],i=new Set,s=new st,u=new st;if(t.index!==null){let c=t.attributes.position,f=t.index,p=t.groups;p.length===0&&(p=[{start:0,count:f.count,materialIndex:0}]);for(let d=0,g=p.length;d<g;++d){let y=p[d],v=y.start,E=y.count;for(let M=v,A=v+E;M<A;M+=3)for(let _=0;_<3;_++){let x=f.getX(M+_),T=f.getX(M+(_+1)%3);s.fromBufferAttribute(c,x),u.fromBufferAttribute(c,T),kI(s,u,i)===!0&&(e.push(s.x,s.y,s.z),e.push(u.x,u.y,u.z))}}}else{let c=t.attributes.position;for(let f=0,p=c.count/3;f<p;f++)for(let d=0;d<3;d++){let g=3*f+d,y=3*f+(d+1)%3;s.fromBufferAttribute(c,g),u.fromBufferAttribute(c,y),kI(s,u,i)===!0&&(e.push(s.x,s.y,s.z),e.push(u.x,u.y,u.z))}}this.setAttribute("position",new _r(e,3))}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}};function kI(n,t,e){let i=\`\${n.x},\${n.y},\${n.z}-\${t.x},\${t.y},\${t.z}\`,s=\`\${t.x},\${t.y},\${t.z}-\${n.x},\${n.y},\${n.z}\`;return e.has(i)===!0||e.has(s)===!0?!1:(e.add(i),e.add(s),!0)}function Rp(n,t,e){return!n||!e&&n.constructor===t?n:typeof t.BYTES_PER_ELEMENT=="number"?new t(n):Array.prototype.slice.call(n)}function cY(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}var Pl=class{constructor(t,e,i,s){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=s!==void 0?s:new e.constructor(i),this.sampleValues=e,this.valueSize=i,this.settings=null,this.DefaultSettings_={}}evaluate(t){let e=this.parameterPositions,i=this._cachedIndex,s=e[i],u=e[i-1];n:{t:{let c;e:{r:if(!(t<s)){for(let f=i+2;;){if(s===void 0){if(t<u)break r;return i=e.length,this._cachedIndex=i,this.copySampleValue_(i-1)}if(i===f)break;if(u=s,s=e[++i],t<s)break t}c=e.length;break e}if(!(t>=u)){let f=e[1];t<f&&(i=2,u=f);for(let p=i-2;;){if(u===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(i===p)break;if(s=u,u=e[--i-1],t>=u)break t}c=i,i=0;break e}break n}for(;i<c;){let f=i+c>>>1;t<e[f]?c=f:i=f+1}if(s=e[i],u=e[i-1],u===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(s===void 0)return i=e.length,this._cachedIndex=i,this.copySampleValue_(i-1)}this._cachedIndex=i,this.intervalChanged_(i,u,s)}return this.interpolate_(i,u,t,s)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){let e=this.resultBuffer,i=this.sampleValues,s=this.valueSize,u=t*s;for(let c=0;c!==s;++c)e[c]=i[u+c];return e}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}},Dv=class extends Pl{constructor(t,e,i,s){super(t,e,i,s),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:HC,endingEnd:HC}}intervalChanged_(t,e,i){let s=this.parameterPositions,u=t-2,c=t+1,f=s[u],p=s[c];if(f===void 0)switch(this.getSettings_().endingStart){case WC:u=t,f=2*e-i;break;case XC:u=s.length-2,f=e+s[u]-s[u+1];break;default:u=t,f=i}if(p===void 0)switch(this.getSettings_().endingEnd){case WC:c=t,p=2*i-e;break;case XC:c=1,p=i+s[1]-s[0];break;default:c=t-1,p=e}let d=(i-e)*.5,g=this.valueSize;this._weightPrev=d/(e-f),this._weightNext=d/(p-i),this._offsetPrev=u*g,this._offsetNext=c*g}interpolate_(t,e,i,s){let u=this.resultBuffer,c=this.sampleValues,f=this.valueSize,p=t*f,d=p-f,g=this._offsetPrev,y=this._offsetNext,v=this._weightPrev,E=this._weightNext,M=(i-e)/(s-e),A=M*M,_=A*M,x=-v*_+2*v*A-v*M,T=(1+v)*_+(-1.5-2*v)*A+(-.5+v)*M+1,w=(-1-E)*_+(1.5+E)*A+.5*M,R=E*_-E*A;for(let B=0;B!==f;++B)u[B]=x*c[g+B]+T*c[d+B]+w*c[p+B]+R*c[y+B];return u}},Fv=class extends Pl{constructor(t,e,i,s){super(t,e,i,s)}interpolate_(t,e,i,s){let u=this.resultBuffer,c=this.sampleValues,f=this.valueSize,p=t*f,d=p-f,g=(i-e)/(s-e),y=1-g;for(let v=0;v!==f;++v)u[v]=c[d+v]*y+c[p+v]*g;return u}},Uv=class extends Pl{constructor(t,e,i,s){super(t,e,i,s)}interpolate_(t){return this.copySampleValue_(t-1)}},Do=class{constructor(t,e,i,s){if(t===void 0)throw new Error("THREE.KeyframeTrack: track name is undefined");if(e===void 0||e.length===0)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+t);this.name=t,this.times=Rp(e,this.TimeBufferType),this.values=Rp(i,this.ValueBufferType),this.setInterpolation(s||this.DefaultInterpolation)}static toJSON(t){let e=t.constructor,i;if(e.toJSON!==this.toJSON)i=e.toJSON(t);else{i={name:t.name,times:Rp(t.times,Array),values:Rp(t.values,Array)};let s=t.getInterpolation();s!==t.DefaultInterpolation&&(i.interpolation=s)}return i.type=t.ValueTypeName,i}InterpolantFactoryMethodDiscrete(t){return new Uv(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new Fv(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new Dv(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case Np:e=this.InterpolantFactoryMethodDiscrete;break;case Op:e=this.InterpolantFactoryMethodLinear;break;case vy:e=this.InterpolantFactoryMethodSmooth;break}if(e===void 0){let i="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(this.createInterpolant===void 0)if(t!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw new Error(i);return console.warn("THREE.KeyframeTrack:",i),this}return this.createInterpolant=e,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return Np;case this.InterpolantFactoryMethodLinear:return Op;case this.InterpolantFactoryMethodSmooth:return vy}}getValueSize(){return this.values.length/this.times.length}shift(t){if(t!==0){let e=this.times;for(let i=0,s=e.length;i!==s;++i)e[i]+=t}return this}scale(t){if(t!==1){let e=this.times;for(let i=0,s=e.length;i!==s;++i)e[i]*=t}return this}trim(t,e){let i=this.times,s=i.length,u=0,c=s-1;for(;u!==s&&i[u]<t;)++u;for(;c!==-1&&i[c]>e;)--c;if(++c,u!==0||c!==s){u>=c&&(c=Math.max(c,1),u=c-1);let f=this.getValueSize();this.times=i.slice(u,c),this.values=this.values.slice(u*f,c*f)}return this}validate(){let t=!0,e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);let i=this.times,s=this.values,u=i.length;u===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let c=null;for(let f=0;f!==u;f++){let p=i[f];if(typeof p=="number"&&isNaN(p)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,f,p),t=!1;break}if(c!==null&&c>p){console.error("THREE.KeyframeTrack: Out of order keys.",this,f,p,c),t=!1;break}c=p}if(s!==void 0&&cY(s))for(let f=0,p=s.length;f!==p;++f){let d=s[f];if(isNaN(d)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,f,d),t=!1;break}}return t}optimize(){let t=this.times.slice(),e=this.values.slice(),i=this.getValueSize(),s=this.getInterpolation()===vy,u=t.length-1,c=1;for(let f=1;f<u;++f){let p=!1,d=t[f],g=t[f+1];if(d!==g&&(f!==1||d!==t[0]))if(s)p=!0;else{let y=f*i,v=y-i,E=y+i;for(let M=0;M!==i;++M){let A=e[y+M];if(A!==e[v+M]||A!==e[E+M]){p=!0;break}}}if(p){if(f!==c){t[c]=t[f];let y=f*i,v=c*i;for(let E=0;E!==i;++E)e[v+E]=e[y+E]}++c}}if(u>0){t[c]=t[u];for(let f=u*i,p=c*i,d=0;d!==i;++d)e[p+d]=e[f+d];++c}return c!==t.length?(this.times=t.slice(0,c),this.values=e.slice(0,c*i)):(this.times=t,this.values=e),this}clone(){let t=this.times.slice(),e=this.values.slice(),i=this.constructor,s=new i(this.name,t,e);return s.createInterpolant=this.createInterpolant,s}};Do.prototype.TimeBufferType=Float32Array;Do.prototype.ValueBufferType=Float32Array;Do.prototype.DefaultInterpolation=Op;var hu=class extends Do{};hu.prototype.ValueTypeName="bool";hu.prototype.ValueBufferType=Array;hu.prototype.DefaultInterpolation=Np;hu.prototype.InterpolantFactoryMethodLinear=void 0;hu.prototype.InterpolantFactoryMethodSmooth=void 0;var Bv=class extends Do{};Bv.prototype.ValueTypeName="color";var zv=class extends Do{};zv.prototype.ValueTypeName="number";var Gv=class extends Pl{constructor(t,e,i,s){super(t,e,i,s)}interpolate_(t,e,i,s){let u=this.resultBuffer,c=this.sampleValues,f=this.valueSize,p=(i-e)/(s-e),d=t*f;for(let g=d+f;d!==g;d+=4)No.slerpFlat(u,0,c,d-f,c,d,p);return u}},df=class extends Do{InterpolantFactoryMethodLinear(t){return new Gv(this.times,this.values,this.getValueSize(),t)}};df.prototype.ValueTypeName="quaternion";df.prototype.DefaultInterpolation=Op;df.prototype.InterpolantFactoryMethodSmooth=void 0;var pu=class extends Do{};pu.prototype.ValueTypeName="string";pu.prototype.ValueBufferType=Array;pu.prototype.DefaultInterpolation=Np;pu.prototype.InterpolantFactoryMethodLinear=void 0;pu.prototype.InterpolantFactoryMethodSmooth=void 0;var kv=class extends Do{};kv.prototype.ValueTypeName="vector";var qv=class{constructor(t,e,i){let s=this,u=!1,c=0,f=0,p,d=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=i,this.itemStart=function(g){f++,u===!1&&s.onStart!==void 0&&s.onStart(g,c,f),u=!0},this.itemEnd=function(g){c++,s.onProgress!==void 0&&s.onProgress(g,c,f),c===f&&(u=!1,s.onLoad!==void 0&&s.onLoad())},this.itemError=function(g){s.onError!==void 0&&s.onError(g)},this.resolveURL=function(g){return p?p(g):g},this.setURLModifier=function(g){return p=g,this},this.addHandler=function(g,y){return d.push(g,y),this},this.removeHandler=function(g){let y=d.indexOf(g);return y!==-1&&d.splice(y,2),this},this.getHandler=function(g){for(let y=0,v=d.length;y<v;y+=2){let E=d[y],M=d[y+1];if(E.global&&(E.lastIndex=0),E.test(g))return M}return null}}},fY=new qv,Vv=class{constructor(t){this.manager=t!==void 0?t:fY,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(t,e){let i=this;return new Promise(function(s,u){i.load(t,s,e,u)})}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}};Vv.DEFAULT_MATERIAL_NAME="__DEFAULT";var sd=class extends ui{constructor(){super(),this.isInstancedBufferGeometry=!0,this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(t){return super.copy(t),this.instanceCount=t.instanceCount,this}toJSON(){let t=super.toJSON();return t.instanceCount=this.instanceCount,t.isInstancedBufferGeometry=!0,t}};var Jv="\\\\[\\\\]\\\\.:\\\\/",hY=new RegExp("["+Jv+"]","g"),jv="[^"+Jv+"]",pY="[^"+Jv.replace("\\\\.","")+"]",dY=/((?:WC+[\\/:])*)/.source.replace("WC",jv),gY=/(WCOD+)?/.source.replace("WCOD",pY),mY=/(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace("WC",jv),yY=/\\.(WC+)(?:\\[(.+)\\])?/.source.replace("WC",jv),vY=new RegExp("^"+dY+gY+mY+yY+"$"),_Y=["material","materials","bones","map"],Hv=class{constructor(t,e,i){let s=i||Xn.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,s)}getValue(t,e){this.bind();let i=this._targetGroup.nCachedObjects_,s=this._bindings[i];s!==void 0&&s.getValue(t,e)}setValue(t,e){let i=this._bindings;for(let s=this._targetGroup.nCachedObjects_,u=i.length;s!==u;++s)i[s].setValue(t,e)}bind(){let t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].bind()}unbind(){let t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].unbind()}},Xn=class n{constructor(t,e,i){this.path=e,this.parsedPath=i||n.parseTrackName(e),this.node=n.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,i){return t&&t.isAnimationObjectGroup?new n.Composite(t,e,i):new n(t,e,i)}static sanitizeNodeName(t){return t.replace(/\\s/g,"_").replace(hY,"")}static parseTrackName(t){let e=vY.exec(t);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+t);let i={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},s=i.nodeName&&i.nodeName.lastIndexOf(".");if(s!==void 0&&s!==-1){let u=i.nodeName.substring(s+1);_Y.indexOf(u)!==-1&&(i.nodeName=i.nodeName.substring(0,s),i.objectName=u)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return i}static findNode(t,e){if(e===void 0||e===""||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){let i=t.skeleton.getBoneByName(e);if(i!==void 0)return i}if(t.children){let i=function(u){for(let c=0;c<u.length;c++){let f=u[c];if(f.name===e||f.uuid===e)return f;let p=i(f.children);if(p)return p}return null},s=i(t.children);if(s)return s}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.targetObject[this.propertyName]}_getValue_array(t,e){let i=this.resolvedProperty;for(let s=0,u=i.length;s!==u;++s)t[e++]=i[s]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(t,e){let i=this.resolvedProperty;for(let s=0,u=i.length;s!==u;++s)i[s]=t[e++]}_setValue_array_setNeedsUpdate(t,e){let i=this.resolvedProperty;for(let s=0,u=i.length;s!==u;++s)i[s]=t[e++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(t,e){let i=this.resolvedProperty;for(let s=0,u=i.length;s!==u;++s)i[s]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(t,e){this.bind(),this.getValue(t,e)}_setValue_unbound(t,e){this.bind(),this.setValue(t,e)}bind(){let t=this.node,e=this.parsedPath,i=e.objectName,s=e.propertyName,u=e.propertyIndex;if(t||(t=n.findNode(this.rootNode,e.nodeName),this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t){console.warn("THREE.PropertyBinding: No target node found for track: "+this.path+".");return}if(i){let d=e.objectIndex;switch(i){case"materials":if(!t.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!t.material.materials){console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);return}t=t.material.materials;break;case"bones":if(!t.skeleton){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}t=t.skeleton.bones;for(let g=0;g<t.length;g++)if(t[g].name===d){d=g;break}break;case"map":if("map"in t){t=t.map;break}if(!t.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!t.material.map){console.error("THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.",this);return}t=t.material.map;break;default:if(t[i]===void 0){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}t=t[i]}if(d!==void 0){if(t[d]===void 0){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,t);return}t=t[d]}}let c=t[s];if(c===void 0){let d=e.nodeName;console.error("THREE.PropertyBinding: Trying to update property for track: "+d+"."+s+" but it wasn't found.",t);return}let f=this.Versioning.None;this.targetObject=t,t.needsUpdate!==void 0?f=this.Versioning.NeedsUpdate:t.matrixWorldNeedsUpdate!==void 0&&(f=this.Versioning.MatrixWorldNeedsUpdate);let p=this.BindingType.Direct;if(u!==void 0){if(s==="morphTargetInfluences"){if(!t.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);return}if(!t.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}t.morphTargetDictionary[u]!==void 0&&(u=t.morphTargetDictionary[u])}p=this.BindingType.ArrayElement,this.resolvedProperty=c,this.propertyIndex=u}else c.fromArray!==void 0&&c.toArray!==void 0?(p=this.BindingType.HasFromToArray,this.resolvedProperty=c):Array.isArray(c)?(p=this.BindingType.EntireArray,this.resolvedProperty=c):this.propertyName=s;this.getValue=this.GetterByBindingType[p],this.setValue=this.SetterByBindingTypeAndVersioning[p][f]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}};Xn.Composite=Hv;Xn.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3};Xn.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2};Xn.prototype.GetterByBindingType=[Xn.prototype._getValue_direct,Xn.prototype._getValue_array,Xn.prototype._getValue_arrayElement,Xn.prototype._getValue_toArray];Xn.prototype.SetterByBindingTypeAndVersioning=[[Xn.prototype._setValue_direct,Xn.prototype._setValue_direct_setNeedsUpdate,Xn.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[Xn.prototype._setValue_array,Xn.prototype._setValue_array_setNeedsUpdate,Xn.prototype._setValue_array_setMatrixWorldNeedsUpdate],[Xn.prototype._setValue_arrayElement,Xn.prototype._setValue_arrayElement_setNeedsUpdate,Xn.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[Xn.prototype._setValue_fromArray,Xn.prototype._setValue_fromArray_setNeedsUpdate,Xn.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];var _ot=new Float32Array(1);var gf=class extends lf{constructor(t,e,i=1){super(t,e),this.isInstancedInterleavedBuffer=!0,this.meshPerAttribute=i}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}clone(t){let e=super.clone(t);return e.meshPerAttribute=this.meshPerAttribute,e}toJSON(t){let e=super.toJSON(t);return e.isInstancedInterleavedBuffer=!0,e.meshPerAttribute=this.meshPerAttribute,e}};typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:Wv}}));typeof window!="undefined"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=Wv);function fd(n,t){t===void 0&&(t=[]);let e=new Il(n.map(i=>new Ft(...i)));return t.length&&t.forEach(i=>{var s=new Cl(i.map(u=>new Ft(...u)));e.holes.push(s)}),e}var _At=Qt(Bc(),1);var Ur=63710088e-1,Fot={centimeters:Ur*100,centimetres:Ur*100,degrees:Ur/111325,feet:Ur*3.28084,inches:Ur*39.37,kilometers:Ur/1e3,kilometres:Ur/1e3,meters:Ur,metres:Ur,miles:Ur/1609.344,millimeters:Ur*1e3,millimetres:Ur*1e3,nauticalmiles:Ur/1852,radians:1,yards:Ur*1.0936},Uot={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Ur,yards:1.0936133};function bi(n,t,e){e===void 0&&(e={});var i={type:"Feature"};return(e.id===0||e.id)&&(i.id=e.id),e.bbox&&(i.bbox=e.bbox),i.properties=t||{},i.geometry=n,i}function Fn(n,t,e){if(e===void 0&&(e={}),!n)throw new Error("coordinates is required");if(!Array.isArray(n))throw new Error("coordinates must be an Array");if(n.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!es(n[0])||!es(n[1]))throw new Error("coordinates must contain numbers");var i={type:"Point",coordinates:n};return bi(i,t,e)}function $n(n,t,e){e===void 0&&(e={});for(var i=0,s=n;i<s.length;i++){var u=s[i];if(u.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var c=0;c<u[u.length-1].length;c++)if(u[u.length-1][c]!==u[0][c])throw new Error("First and last Position are not equivalent.")}var f={type:"Polygon",coordinates:n};return bi(f,t,e)}function Br(n,t,e){if(e===void 0&&(e={}),n.length<2)throw new Error("coordinates must be an array of two or more positions");var i={type:"LineString",coordinates:n};return bi(i,t,e)}function s_(n,t,e){e===void 0&&(e={});var i={type:"MultiPoint",coordinates:n};return bi(i,t,e)}function es(n){return!isNaN(n)&&n!==null&&!Array.isArray(n)}function Sr(n,t,e){if(n!==null)for(var i,s,u,c,f,p,d,g=0,y=0,v,E=n.type,M=E==="FeatureCollection",A=E==="Feature",_=M?n.features.length:1,x=0;x<_;x++){d=M?n.features[x].geometry:A?n.geometry:n,v=d?d.type==="GeometryCollection":!1,f=v?d.geometries.length:1;for(var T=0;T<f;T++){var w=0,R=0;if(c=v?d.geometries[T]:d,c!==null){p=c.coordinates;var B=c.type;switch(g=e&&(B==="Polygon"||B==="MultiPolygon")?1:0,B){case null:break;case"Point":if(t(p,y,x,w,R)===!1)return!1;y++,w++;break;case"LineString":case"MultiPoint":for(i=0;i<p.length;i++){if(t(p[i],y,x,w,R)===!1)return!1;y++,B==="MultiPoint"&&w++}B==="LineString"&&w++;break;case"Polygon":case"MultiLineString":for(i=0;i<p.length;i++){for(s=0;s<p[i].length-g;s++){if(t(p[i][s],y,x,w,R)===!1)return!1;y++}B==="MultiLineString"&&w++,B==="Polygon"&&R++}B==="Polygon"&&w++;break;case"MultiPolygon":for(i=0;i<p.length;i++){for(R=0,s=0;s<p[i].length;s++){for(u=0;u<p[i][s].length-g;u++){if(t(p[i][s][u],y,x,w,R)===!1)return!1;y++}R++}w++}break;case"GeometryCollection":for(i=0;i<c.geometries.length;i++)if(Sr(c.geometries[i],t,e)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function bP(n,t,e,i){var s=e;return Sr(n,function(u,c,f,p,d){c===0&&e===void 0?s=u:s=t(s,u,c,f,p,d)},i),s}function Ea(n,t){var e,i,s,u,c,f,p,d,g,y,v=0,E=n.type==="FeatureCollection",M=n.type==="Feature",A=E?n.features.length:1;for(e=0;e<A;e++){for(f=E?n.features[e].geometry:M?n.geometry:n,d=E?n.features[e].properties:M?n.properties:{},g=E?n.features[e].bbox:M?n.bbox:void 0,y=E?n.features[e].id:M?n.id:void 0,p=f?f.type==="GeometryCollection":!1,c=p?f.geometries.length:1,s=0;s<c;s++){if(u=p?f.geometries[s]:f,u===null){if(t(null,v,d,g,y)===!1)return!1;continue}switch(u.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(t(u,v,d,g,y)===!1)return!1;break}case"GeometryCollection":{for(i=0;i<u.geometries.length;i++)if(t(u.geometries[i],v,d,g,y)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}v++}}function Ji(n,t){Ea(n,function(e,i,s,u,c){var f=e===null?null:e.type;switch(f){case null:case"Point":case"LineString":case"Polygon":return t(bi(e,s,{bbox:u,id:c}),i,0)===!1?!1:void 0}var p;switch(f){case"MultiPoint":p="Point";break;case"MultiLineString":p="LineString";break;case"MultiPolygon":p="Polygon";break}for(var d=0;d<e.coordinates.length;d++){var g=e.coordinates[d],y={type:p,coordinates:g};if(t(bi(y,s),i,d)===!1)return!1}})}function a_(n){var t=[1/0,1/0,-1/0,-1/0];return Sr(n,function(e){t[0]>e[0]&&(t[0]=e[0]),t[1]>e[1]&&(t[1]=e[1]),t[2]<e[0]&&(t[2]=e[0]),t[3]<e[1]&&(t[3]=e[1])}),t}a_.default=a_;var Ai=a_;function $r(n){if(!n)throw new Error("coord is required");if(!Array.isArray(n)){if(n.type==="Feature"&&n.geometry!==null&&n.geometry.type==="Point")return n.geometry.coordinates;if(n.type==="Point")return n.coordinates}if(Array.isArray(n)&&n.length>=2&&!Array.isArray(n[0])&&!Array.isArray(n[1]))return n;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function u_(n,t,e){if(!n)throw new Error("No feature passed");if(!e)throw new Error(".featureOf() requires a name");if(!n||n.type!=="Feature"||!n.geometry)throw new Error("Invalid input to "+e+", Feature with geometry required");if(!n.geometry||n.geometry.type!==t)throw new Error("Invalid input to "+e+": must be a "+t+", given "+n.geometry.type)}function Zr(n){return n.type==="Feature"?n.geometry:n}var QY=Qt(gd(),1);var l$=Qt(VP(),1);function zr(n,t,e){if(e===void 0&&(e={}),!n)throw new Error("point is required");if(!t)throw new Error("polygon is required");var i=$r(n),s=Zr(t),u=s.type,c=t.bbox,f=s.coordinates;if(c&&c$(i,c)===!1)return!1;u==="Polygon"&&(f=[f]);for(var p=!1,d=0;d<f.length&&!p;d++)if(HP(i,f[d][0],e.ignoreBoundary)){for(var g=!1,y=1;y<f[d].length&&!g;)HP(i,f[d][y],!e.ignoreBoundary)&&(g=!0),y++;g||(p=!0)}return p}function HP(n,t,e){var i=!1;t[0][0]===t[t.length-1][0]&&t[0][1]===t[t.length-1][1]&&(t=t.slice(0,t.length-1));for(var s=0,u=t.length-1;s<t.length;u=s++){var c=t[s][0],f=t[s][1],p=t[u][0],d=t[u][1],g=n[1]*(c-p)+f*(p-n[0])+d*(n[0]-c)===0&&(c-n[0])*(p-n[0])<=0&&(f-n[1])*(d-n[1])<=0;if(g)return!e;var y=f>n[1]!=d>n[1]&&n[0]<(p-c)*(n[1]-f)/(d-f)+c;y&&(i=!i)}return i}function c$(n,t){return t[0]<=n[0]&&t[1]<=n[1]&&t[2]>=n[0]&&t[3]>=n[1]}var YP=new ArrayBuffer(16),hat=new Float64Array(YP),pat=new Uint32Array(YP);var b$=Qt(M_(),1);var zut=function(){function n(t){this.points=t.points||[],this.duration=t.duration||1e4,this.sharpness=t.sharpness||.85,this.centers=[],this.controls=[],this.stepLength=t.stepLength||60,this.length=this.points.length,this.delay=0;for(var e=0;e<this.length;e++)this.points[e].z=this.points[e].z||0;for(var e=0;e<this.length-1;e++){var i=this.points[e],s=this.points[e+1];this.centers.push({x:(i.x+s.x)/2,y:(i.y+s.y)/2,z:(i.z+s.z)/2})}this.controls.push([this.points[0],this.points[0]]);for(var e=0;e<this.centers.length-1;e++){var u=this.points[e+1].x-(this.centers[e].x+this.centers[e+1].x)/2,c=this.points[e+1].y-(this.centers[e].y+this.centers[e+1].y)/2,f=this.points[e+1].z-(this.centers[e].y+this.centers[e+1].z)/2;this.controls.push([{x:(1-this.sharpness)*this.points[e+1].x+this.sharpness*(this.centers[e].x+u),y:(1-this.sharpness)*this.points[e+1].y+this.sharpness*(this.centers[e].y+c),z:(1-this.sharpness)*this.points[e+1].z+this.sharpness*(this.centers[e].z+f)},{x:(1-this.sharpness)*this.points[e+1].x+this.sharpness*(this.centers[e+1].x+u),y:(1-this.sharpness)*this.points[e+1].y+this.sharpness*(this.centers[e+1].y+c),z:(1-this.sharpness)*this.points[e+1].z+this.sharpness*(this.centers[e+1].z+f)}])}return this.controls.push([this.points[this.length-1],this.points[this.length-1]]),this.steps=this.cacheSteps(this.stepLength),this}return n.prototype.cacheSteps=function(t){var e=[],i=this.pos(0);e.push(0);for(var s=0;s<this.duration;s+=10){var u=this.pos(s),c=Math.sqrt((u.x-i.x)*(u.x-i.x)+(u.y-i.y)*(u.y-i.y)+(u.z-i.z)*(u.z-i.z));c>t&&(e.push(s),i=u)}return e},n.prototype.vector=function(t){var e=this.pos(t+10),i=this.pos(t-10);return{angle:180*Math.atan2(e.y-i.y,e.x-i.x)/3.14,speed:Math.sqrt((i.x-e.x)*(i.x-e.x)+(i.y-e.y)*(i.y-e.y)+(i.z-e.z)*(i.z-e.z))}},n.prototype.pos=function(t){var e=t-this.delay;e<0&&(e=0),e>this.duration&&(e=this.duration-1);var i=e/this.duration;if(i>=1)return this.points[this.length-1];var s=Math.floor((this.points.length-1)*i),u=(this.length-1)*i-s;return A$(u,this.points[s],this.controls[s][1],this.controls[s+1][0],this.points[s+1])},n}();function A$(n,t,e,i,s){var u=T$(n),c={x:s.x*u[0]+i.x*u[1]+e.x*u[2]+t.x*u[3],y:s.y*u[0]+i.y*u[1]+e.y*u[2]+t.y*u[3],z:s.z*u[0]+i.z*u[1]+e.z*u[2]+t.z*u[3]};return c}function T$(n){var t=n*n,e=t*n;return[e,3*t*(1-n),3*n*(1-n)*(1-n),(1-n)*(1-n)*(1-n)]}function _f(n,t){t===void 0&&(t={});var e=Number(n[0]),i=Number(n[1]),s=Number(n[2]),u=Number(n[3]);if(n.length===6)throw new Error("@turf/bbox-polygon does not support BBox with 6 positions");var c=[e,i],f=[e,u],p=[s,u],d=[s,i];return $n([[c,d,p,f,c]],t.properties,{bbox:n,id:t.id})}function C$(n){return _f(Ai(n))}var b_=C$;var W$=Qt(iR(),1);var vZ=Qt(Ld(),1);var xZ=Qt(gd(),1);var wZ=Qt(M_(),1);var SR=Math.PI/180,wR=180/Math.PI,Af=function(n,t){this.lon=n,this.lat=t,this.x=SR*n,this.y=SR*t};Af.prototype.view=function(){return String(this.lon).slice(0,4)+","+String(this.lat).slice(0,4)};Af.prototype.antipode=function(){var n=-1*this.lat,t=this.lon<0?180+this.lon:(180-this.lon)*-1;return new Af(t,n)};var MR=function(){this.coords=[],this.length=0};MR.prototype.move_to=function(n){this.length++,this.coords.push(n)};var W_=function(n){this.properties=n||{},this.geometries=[]};W_.prototype.json=function(){if(this.geometries.length<=0)return{geometry:{type:"LineString",coordinates:null},type:"Feature",properties:this.properties};if(this.geometries.length===1)return{geometry:{type:"LineString",coordinates:this.geometries[0].coords},type:"Feature",properties:this.properties};for(var n=[],t=0;t<this.geometries.length;t++)n.push(this.geometries[t].coords);return{geometry:{type:"MultiLineString",coordinates:n},type:"Feature",properties:this.properties}};W_.prototype.wkt=function(){for(var n="",t="LINESTRING(",e=function(u){t+=u[0]+" "+u[1]+","},i=0;i<this.geometries.length;i++){if(this.geometries[i].coords.length===0)return"LINESTRING(empty)";var s=this.geometries[i].coords;s.forEach(e),n+=t.substring(0,t.length-1)+")"}return n};var bR=function(n,t,e){if(!n||n.x===void 0||n.y===void 0)throw new Error("GreatCircle constructor expects two args: start and end objects with x and y properties");if(!t||t.x===void 0||t.y===void 0)throw new Error("GreatCircle constructor expects two args: start and end objects with x and y properties");this.start=new Af(n.x,n.y),this.end=new Af(t.x,t.y),this.properties=e||{};var i=this.start.x-this.end.x,s=this.start.y-this.end.y,u=Math.pow(Math.sin(s/2),2)+Math.cos(this.start.y)*Math.cos(this.end.y)*Math.pow(Math.sin(i/2),2);if(this.g=2*Math.asin(Math.sqrt(u)),this.g===Math.PI)throw new Error("it appears "+n.view()+" and "+t.view()+" are 'antipodal', e.g diametrically opposite, thus there is no single route but rather infinite");if(isNaN(this.g))throw new Error("could not calculate great circle between "+n+" and "+t)};bR.prototype.interpolate=function(n){var t=Math.sin((1-n)*this.g)/Math.sin(this.g),e=Math.sin(n*this.g)/Math.sin(this.g),i=t*Math.cos(this.start.y)*Math.cos(this.start.x)+e*Math.cos(this.end.y)*Math.cos(this.end.x),s=t*Math.cos(this.start.y)*Math.sin(this.start.x)+e*Math.cos(this.end.y)*Math.sin(this.end.x),u=t*Math.sin(this.start.y)+e*Math.sin(this.end.y),c=wR*Math.atan2(u,Math.sqrt(Math.pow(i,2)+Math.pow(s,2))),f=wR*Math.atan2(s,i);return[f,c]};bR.prototype.Arc=function(n,t){var e=[];if(!n||n<=2)e.push([this.start.lon,this.start.lat]),e.push([this.end.lon,this.end.lat]);else for(var i=1/(n-1),s=0;s<n;++s){var u=i*s,c=this.interpolate(u);e.push(c)}for(var f=!1,p=0,d=t&&t.offset?t.offset:10,g=180-d,y=-180+d,v=360-d,E=1;E<e.length;++E){var M=e[E-1][0],A=e[E][0],_=Math.abs(A-M);_>v&&(A>g&&M<y||M>g&&A<y)?f=!0:_>p&&(p=_)}var x=[];if(f&&p<d){var T=[];x.push(T);for(var w=0;w<e.length;++w){var R=parseFloat(e[w][0]);if(w>0&&Math.abs(R-e[w-1][0])>v){var B=parseFloat(e[w-1][0]),U=parseFloat(e[w-1][1]),D=parseFloat(e[w][0]),P=parseFloat(e[w][1]);if(B>-180&&B<y&&D===180&&w+1<e.length&&e[w-1][0]>-180&&e[w-1][0]<y){T.push([-180,e[w][1]]),w++,T.push([e[w][0],e[w][1]]);continue}else if(B>g&&B<180&&D===-180&&w+1<e.length&&e[w-1][0]>g&&e[w-1][0]<180){T.push([180,e[w][1]]),w++,T.push([e[w][0],e[w][1]]);continue}if(B<y&&D>g){var ct=B;B=D,D=ct;var L=U;U=P,P=L}if(B>g&&D<y&&(D+=360),B<=180&&D>=180&&B<D){var W=(180-B)/(D-B),V=W*P+(1-W)*U;T.push([e[w-1][0]>g?180:-180,V]),T=[],T.push([e[w-1][0]>g?-180:180,V]),x.push(T)}else T=[],x.push(T);T.push([R,e[w][1]])}else T.push([e[w][0],e[w][1]])}}else{var Mt=[];x.push(Mt);for(var $=0;$<e.length;++$)Mt.push([e[$][0],e[$][1]])}for(var gt=new W_(this.properties),ft=0;ft<x.length;++ft){var vt=new MR;gt.geometries.push(vt);for(var it=x[ft],lt=0;lt<it.length;++lt)vt.move_to(it[lt])}return gt};var AZ=Qt(Ld(),1);var bj=Qt(Ld(),1);var Aj=Qt(_x(),1);var Ij=Qt(gd(),1);var Ce=[],Ie=[],Pe=[],Re=[],Le=[],Ne=[],Oe=[],De=[],Fe=[],Ue=[],Be=[],ze=[],Ge=[],ke=[],qe=[],Ve=[],He=[],We=[],Xe=[],Ye=[],$e=[],Ze=[],Je=[],je=[];Oe[85]=Ue[85]=-1;De[85]=Be[85]=0;Fe[85]=ze[85]=1;Xe[85]=Ze[85]=1;Ye[85]=Je[85]=0;$e[85]=je[85]=1;Ce[85]=Re[85]=0;Ie[85]=Le[85]=-1;Pe[85]=qe[85]=0;Ve[85]=Ge[85]=0;He[85]=ke[85]=1;Ne[85]=We[85]=1;Ze[1]=Ze[169]=0;Je[1]=Je[169]=-1;je[1]=je[169]=0;Ge[1]=Ge[169]=-1;ke[1]=ke[169]=0;qe[1]=qe[169]=0;Ue[4]=Ue[166]=0;Be[4]=Be[166]=-1;ze[4]=ze[166]=1;Ve[4]=Ve[166]=1;He[4]=He[166]=0;We[4]=We[166]=0;Oe[16]=Oe[154]=0;De[16]=De[154]=1;Fe[16]=Fe[154]=1;Re[16]=Re[154]=1;Le[16]=Le[154]=0;Ne[16]=Ne[154]=1;Xe[64]=Xe[106]=0;Ye[64]=Ye[106]=1;$e[64]=$e[106]=0;Ce[64]=Ce[106]=-1;Ie[64]=Ie[106]=0;Pe[64]=Pe[106]=1;Xe[2]=Xe[168]=0;Ye[2]=Ye[168]=-1;$e[2]=$e[168]=1;Ze[2]=Ze[168]=0;Je[2]=Je[168]=-1;je[2]=je[168]=0;Ge[2]=Ge[168]=-1;ke[2]=ke[168]=0;qe[2]=qe[168]=0;Ve[2]=Ve[168]=-1;He[2]=He[168]=0;We[2]=We[168]=1;Oe[8]=Oe[162]=0;De[8]=De[162]=-1;Fe[8]=Fe[162]=0;Ue[8]=Ue[162]=0;Be[8]=Be[162]=-1;ze[8]=ze[162]=1;Ge[8]=Ge[162]=1;ke[8]=ke[162]=0;qe[8]=qe[162]=1;Ve[8]=Ve[162]=1;He[8]=He[162]=0;We[8]=We[162]=0;Oe[32]=Oe[138]=0;De[32]=De[138]=1;Fe[32]=Fe[138]=1;Ue[32]=Ue[138]=0;Be[32]=Be[138]=1;ze[32]=ze[138]=0;Ce[32]=Ce[138]=1;Ie[32]=Ie[138]=0;Pe[32]=Pe[138]=0;Re[32]=Re[138]=1;Le[32]=Le[138]=0;Ne[32]=Ne[138]=1;Ze[128]=Ze[42]=0;Je[128]=Je[42]=1;je[128]=je[42]=1;Xe[128]=Xe[42]=0;Ye[128]=Ye[42]=1;$e[128]=$e[42]=0;Ce[128]=Ce[42]=-1;Ie[128]=Ie[42]=0;Pe[128]=Pe[42]=1;Re[128]=Re[42]=-1;Le[128]=Le[42]=0;Ne[128]=Ne[42]=0;Ue[5]=Ue[165]=-1;Be[5]=Be[165]=0;ze[5]=ze[165]=0;Ze[5]=Ze[165]=1;Je[5]=Je[165]=0;je[5]=je[165]=0;Ve[20]=Ve[150]=0;He[20]=He[150]=1;We[20]=We[150]=1;Re[20]=Re[150]=0;Le[20]=Le[150]=-1;Ne[20]=Ne[150]=1;Oe[80]=Oe[90]=-1;De[80]=De[90]=0;Fe[80]=Fe[90]=1;Xe[80]=Xe[90]=1;Ye[80]=Ye[90]=0;$e[80]=$e[90]=1;Ge[65]=Ge[105]=0;ke[65]=ke[105]=1;qe[65]=qe[105]=0;Ce[65]=Ce[105]=0;Ie[65]=Ie[105]=-1;Pe[65]=Pe[105]=0;Oe[160]=Oe[10]=-1;De[160]=De[10]=0;Fe[160]=Fe[10]=1;Ue[160]=Ue[10]=-1;Be[160]=Be[10]=0;ze[160]=ze[10]=0;Ze[160]=Ze[10]=1;Je[160]=Je[10]=0;je[160]=je[10]=0;Xe[160]=Xe[10]=1;Ye[160]=Ye[10]=0;$e[160]=$e[10]=1;Ve[130]=Ve[40]=0;He[130]=He[40]=1;We[130]=We[40]=1;Ge[130]=Ge[40]=0;ke[130]=ke[40]=1;qe[130]=qe[40]=0;Ce[130]=Ce[40]=0;Ie[130]=Ie[40]=-1;Pe[130]=Pe[40]=0;Re[130]=Re[40]=0;Le[130]=Le[40]=-1;Ne[130]=Ne[40]=1;Ue[37]=Ue[133]=0;Be[37]=Be[133]=1;ze[37]=ze[133]=1;Ze[37]=Ze[133]=0;Je[37]=Je[133]=1;je[37]=je[133]=0;Ce[37]=Ce[133]=-1;Ie[37]=Ie[133]=0;Pe[37]=Pe[133]=0;Re[37]=Re[133]=1;Le[37]=Le[133]=0;Ne[37]=Ne[133]=0;Ve[148]=Ve[22]=-1;He[148]=He[22]=0;We[148]=We[22]=0;Ze[148]=Ze[22]=0;Je[148]=Je[22]=-1;je[148]=je[22]=1;Xe[148]=Xe[22]=0;Ye[148]=Ye[22]=1;$e[148]=$e[22]=1;Re[148]=Re[22]=-1;Le[148]=Le[22]=0;Ne[148]=Ne[22]=1;Oe[82]=Oe[88]=0;De[82]=De[88]=-1;Fe[82]=Fe[88]=1;Ve[82]=Ve[88]=1;He[82]=He[88]=0;We[82]=We[88]=1;Ge[82]=Ge[88]=-1;ke[82]=ke[88]=0;qe[82]=qe[88]=1;Xe[82]=Xe[88]=0;Ye[82]=Ye[88]=-1;$e[82]=$e[88]=0;Oe[73]=Oe[97]=0;De[73]=De[97]=1;Fe[73]=Fe[97]=0;Ue[73]=Ue[97]=0;Be[73]=Be[97]=-1;ze[73]=ze[97]=0;Ge[73]=Ge[97]=1;ke[73]=ke[97]=0;qe[73]=qe[97]=0;Ce[73]=Ce[97]=1;Ie[73]=Ie[97]=0;Pe[73]=Pe[97]=1;Oe[145]=Oe[25]=0;De[145]=De[25]=-1;Fe[145]=Fe[25]=0;Ge[145]=Ge[25]=1;ke[145]=ke[25]=0;qe[145]=qe[25]=1;Ze[145]=Ze[25]=0;Je[145]=Je[25]=1;je[145]=je[25]=1;Re[145]=Re[25]=-1;Le[145]=Le[25]=0;Ne[145]=Ne[25]=0;Ue[70]=Ue[100]=0;Be[70]=Be[100]=1;ze[70]=ze[100]=0;Ve[70]=Ve[100]=-1;He[70]=He[100]=0;We[70]=We[100]=1;Xe[70]=Xe[100]=0;Ye[70]=Ye[100]=-1;$e[70]=$e[100]=1;Ce[70]=Ce[100]=1;Ie[70]=Ie[100]=0;Pe[70]=Pe[100]=0;Ue[101]=Ue[69]=0;Be[101]=Be[69]=1;ze[101]=ze[69]=0;Ce[101]=Ce[69]=1;Ie[101]=Ie[69]=0;Pe[101]=Pe[69]=0;Ze[149]=Ze[21]=0;Je[149]=Je[21]=1;je[149]=je[21]=1;Re[149]=Re[21]=-1;Le[149]=Le[21]=0;Ne[149]=Ne[21]=0;Ve[86]=Ve[84]=-1;He[86]=He[84]=0;We[86]=We[84]=1;Xe[86]=Xe[84]=0;Ye[86]=Ye[84]=-1;$e[86]=$e[84]=1;Oe[89]=Oe[81]=0;De[89]=De[81]=-1;Fe[89]=Fe[81]=0;Ge[89]=Ge[81]=1;ke[89]=ke[81]=0;qe[89]=qe[81]=1;Oe[96]=Oe[74]=0;De[96]=De[74]=1;Fe[96]=Fe[74]=0;Ue[96]=Ue[74]=-1;Be[96]=Be[74]=0;ze[96]=ze[74]=1;Xe[96]=Xe[74]=1;Ye[96]=Ye[74]=0;$e[96]=$e[74]=0;Ce[96]=Ce[74]=1;Ie[96]=Ie[74]=0;Pe[96]=Pe[74]=1;Oe[24]=Oe[146]=0;De[24]=De[146]=-1;Fe[24]=Fe[146]=1;Ve[24]=Ve[146]=1;He[24]=He[146]=0;We[24]=We[146]=1;Ge[24]=Ge[146]=0;ke[24]=ke[146]=1;qe[24]=qe[146]=1;Re[24]=Re[146]=0;Le[24]=Le[146]=-1;Ne[24]=Ne[146]=0;Ue[6]=Ue[164]=-1;Be[6]=Be[164]=0;ze[6]=ze[164]=1;Ve[6]=Ve[164]=-1;He[6]=He[164]=0;We[6]=We[164]=0;Ze[6]=Ze[164]=0;Je[6]=Je[164]=-1;je[6]=je[164]=1;Xe[6]=Xe[164]=1;Ye[6]=Ye[164]=0;$e[6]=$e[164]=0;Ge[129]=Ge[41]=0;ke[129]=ke[41]=1;qe[129]=qe[41]=1;Ze[129]=Ze[41]=0;Je[129]=Je[41]=1;je[129]=je[41]=0;Ce[129]=Ce[41]=-1;Ie[129]=Ie[41]=0;Pe[129]=Pe[41]=0;Re[129]=Re[41]=0;Le[129]=Le[41]=-1;Ne[129]=Ne[41]=0;Ve[66]=Ve[104]=0;He[66]=He[104]=1;We[66]=We[104]=0;Ge[66]=Ge[104]=-1;ke[66]=ke[104]=0;qe[66]=qe[104]=1;Xe[66]=Xe[104]=0;Ye[66]=Ye[104]=-1;$e[66]=$e[104]=0;Ce[66]=Ce[104]=0;Ie[66]=Ie[104]=-1;Pe[66]=Pe[104]=1;Oe[144]=Oe[26]=-1;De[144]=De[26]=0;Fe[144]=Fe[26]=0;Ze[144]=Ze[26]=1;Je[144]=Je[26]=0;je[144]=je[26]=1;Xe[144]=Xe[26]=0;Ye[144]=Ye[26]=1;$e[144]=$e[26]=1;Re[144]=Re[26]=-1;Le[144]=Le[26]=0;Ne[144]=Ne[26]=1;Ue[36]=Ue[134]=0;Be[36]=Be[134]=1;ze[36]=ze[134]=1;Ve[36]=Ve[134]=0;He[36]=He[134]=1;We[36]=We[134]=0;Ce[36]=Ce[134]=0;Ie[36]=Ie[134]=-1;Pe[36]=Pe[134]=1;Re[36]=Re[134]=1;Le[36]=Le[134]=0;Ne[36]=Ne[134]=0;Oe[9]=Oe[161]=-1;De[9]=De[161]=0;Fe[9]=Fe[161]=0;Ue[9]=Ue[161]=0;Be[9]=Be[161]=-1;ze[9]=ze[161]=0;Ge[9]=Ge[161]=1;ke[9]=ke[161]=0;qe[9]=qe[161]=0;Ze[9]=Ze[161]=1;Je[9]=Je[161]=0;je[9]=je[161]=1;Oe[136]=0;De[136]=1;Fe[136]=1;Ue[136]=0;Be[136]=1;ze[136]=0;Ve[136]=-1;He[136]=0;We[136]=1;Ge[136]=-1;ke[136]=0;qe[136]=0;Ze[136]=0;Je[136]=-1;je[136]=0;Xe[136]=0;Ye[136]=-1;$e[136]=1;Ce[136]=1;Ie[136]=0;Pe[136]=0;Re[136]=1;Le[136]=0;Ne[136]=1;Oe[34]=0;De[34]=-1;Fe[34]=0;Ue[34]=0;Be[34]=-1;ze[34]=1;Ve[34]=1;He[34]=0;We[34]=0;Ge[34]=1;ke[34]=0;qe[34]=1;Ze[34]=0;Je[34]=1;je[34]=1;Xe[34]=0;Ye[34]=1;$e[34]=0;Ce[34]=-1;Ie[34]=0;Pe[34]=1;Re[34]=-1;Le[34]=0;Ne[34]=0;Oe[35]=0;De[35]=1;Fe[35]=1;Ue[35]=0;Be[35]=-1;ze[35]=1;Ve[35]=1;He[35]=0;We[35]=0;Ge[35]=-1;ke[35]=0;qe[35]=0;Ze[35]=0;Je[35]=-1;je[35]=0;Xe[35]=0;Ye[35]=1;$e[35]=0;Ce[35]=-1;Ie[35]=0;Pe[35]=1;Re[35]=1;Le[35]=0;Ne[35]=1;Oe[153]=0;De[153]=1;Fe[153]=1;Ge[153]=-1;ke[153]=0;qe[153]=0;Ze[153]=0;Je[153]=-1;je[153]=0;Re[153]=1;Le[153]=0;Ne[153]=1;Ue[102]=0;Be[102]=-1;ze[102]=1;Ve[102]=1;He[102]=0;We[102]=0;Xe[102]=0;Ye[102]=1;$e[102]=0;Ce[102]=-1;Ie[102]=0;Pe[102]=1;Oe[155]=0;De[155]=-1;Fe[155]=0;Ge[155]=1;ke[155]=0;qe[155]=1;Ze[155]=0;Je[155]=1;je[155]=1;Re[155]=-1;Le[155]=0;Ne[155]=0;Ue[103]=0;Be[103]=1;ze[103]=0;Ve[103]=-1;He[103]=0;We[103]=1;Xe[103]=0;Ye[103]=-1;$e[103]=1;Ce[103]=1;Ie[103]=0;Pe[103]=0;Oe[152]=0;De[152]=1;Fe[152]=1;Ve[152]=-1;He[152]=0;We[152]=1;Ge[152]=-1;ke[152]=0;qe[152]=0;Ze[152]=0;Je[152]=-1;je[152]=0;Xe[152]=0;Ye[152]=-1;$e[152]=1;Re[152]=1;Le[152]=0;Ne[152]=1;Oe[156]=0;De[156]=-1;Fe[156]=1;Ve[156]=1;He[156]=0;We[156]=1;Ge[156]=-1;ke[156]=0;qe[156]=0;Ze[156]=0;Je[156]=-1;je[156]=0;Xe[156]=0;Ye[156]=1;$e[156]=1;Re[156]=-1;Le[156]=0;Ne[156]=1;Oe[137]=0;De[137]=1;Fe[137]=1;Ue[137]=0;Be[137]=1;ze[137]=0;Ge[137]=-1;ke[137]=0;qe[137]=0;Ze[137]=0;Je[137]=-1;je[137]=0;Ce[137]=1;Ie[137]=0;Pe[137]=0;Re[137]=1;Le[137]=0;Ne[137]=1;Oe[139]=0;De[139]=1;Fe[139]=1;Ue[139]=0;Be[139]=-1;ze[139]=0;Ge[139]=1;ke[139]=0;qe[139]=0;Ze[139]=0;Je[139]=1;je[139]=0;Ce[139]=-1;Ie[139]=0;Pe[139]=0;Re[139]=1;Le[139]=0;Ne[139]=1;Oe[98]=0;De[98]=-1;Fe[98]=0;Ue[98]=0;Be[98]=-1;ze[98]=1;Ve[98]=1;He[98]=0;We[98]=0;Ge[98]=1;ke[98]=0;qe[98]=1;Xe[98]=0;Ye[98]=1;$e[98]=0;Ce[98]=-1;Ie[98]=0;Pe[98]=1;Oe[99]=0;De[99]=1;Fe[99]=0;Ue[99]=0;Be[99]=-1;ze[99]=1;Ve[99]=1;He[99]=0;We[99]=0;Ge[99]=-1;ke[99]=0;qe[99]=1;Xe[99]=0;Ye[99]=-1;$e[99]=0;Ce[99]=1;Ie[99]=0;Pe[99]=1;Ue[38]=0;Be[38]=-1;ze[38]=1;Ve[38]=1;He[38]=0;We[38]=0;Ze[38]=0;Je[38]=1;je[38]=1;Xe[38]=0;Ye[38]=1;$e[38]=0;Ce[38]=-1;Ie[38]=0;Pe[38]=1;Re[38]=-1;Le[38]=0;Ne[38]=0;Ue[39]=0;Be[39]=1;ze[39]=1;Ve[39]=-1;He[39]=0;We[39]=0;Ze[39]=0;Je[39]=-1;je[39]=1;Xe[39]=0;Ye[39]=1;$e[39]=0;Ce[39]=-1;Ie[39]=0;Pe[39]=1;Re[39]=1;Le[39]=0;Ne[39]=0;var xx=function(n){return[[n.bottomleft,0],[0,0],[0,n.leftbottom]]},Ex=function(n){return[[1,n.rightbottom],[1,0],[n.bottomright,0]]},Sx=function(n){return[[n.topright,1],[1,1],[1,n.righttop]]},wx=function(n){return[[0,n.lefttop],[0,1],[n.topleft,1]]},Mx=function(n){return[[n.bottomright,0],[n.bottomleft,0],[0,n.leftbottom],[0,n.lefttop]]},bx=function(n){return[[n.bottomright,0],[n.bottomleft,0],[1,n.righttop],[1,n.rightbottom]]},Ax=function(n){return[[1,n.righttop],[1,n.rightbottom],[n.topleft,1],[n.topright,1]]},Tx=function(n){return[[0,n.leftbottom],[0,n.lefttop],[n.topleft,1],[n.topright,1]]},Pj=function(n){return[[0,0],[0,n.leftbottom],[1,n.rightbottom],[1,0]]},Rj=function(n){return[[1,0],[n.bottomright,0],[n.topright,1],[1,1]]},Lj=function(n){return[[1,1],[1,n.righttop],[0,n.lefttop],[0,1]]},Nj=function(n){return[[n.bottomleft,0],[0,0],[0,1],[n.topleft,1]]},Oj=function(n){return[[1,n.righttop],[1,n.rightbottom],[0,n.leftbottom],[0,n.lefttop]]},Dj=function(n){return[[n.topleft,1],[n.topright,1],[n.bottomright,0],[n.bottomleft,0]]},Fj=function(){return[[0,0],[0,1],[1,1],[1,0]]},Uj=function(n){return[[1,n.rightbottom],[1,0],[0,0],[0,1],[n.topleft,1]]},Bj=function(n){return[[n.topright,1],[1,1],[1,0],[0,0],[0,n.leftbottom]]},zj=function(n){return[[1,0],[n.bottomright,0],[0,n.lefttop],[0,1],[1,1]]},Gj=function(n){return[[1,1],[1,n.righttop],[n.bottomleft,0],[0,0],[0,1]]},kj=function(n){return[[1,n.righttop],[1,n.rightbottom],[0,n.lefttop],[0,1],[n.topleft,1]]},qj=function(n){return[[1,1],[1,n.righttop],[n.bottomright,0],[n.bottomleft,0],[n.topright,1]]},Vj=function(n){return[[1,n.rightbottom],[1,0],[n.bottomright,0],[0,n.leftbottom],[0,n.lefttop]]},Hj=function(n){return[[n.topright,1],[n.bottomleft,0],[0,0],[0,n.leftbottom],[n.topleft,1]]},Wj=function(n){return[[n.bottomright,0],[n.bottomleft,0],[0,n.lefttop],[0,1],[n.topleft,1]]},Xj=function(n){return[[1,1],[1,n.righttop],[0,n.leftbottom],[0,n.lefttop],[n.topright,1]]},Yj=function(n){return[[1,n.rightbottom],[1,0],[n.bottomright,0],[n.topleft,1],[n.topright,1]]},$j=function(n){return[[1,n.righttop],[1,n.rightbottom],[n.bottomleft,0],[0,0],[0,n.leftbottom]]},Zj=function(n){return[[1,n.rightbottom],[1,0],[0,0],[0,n.leftbottom],[n.topleft,1],[n.topright,1]]},Jj=function(n){return[[1,1],[1,0],[n.bottomright,0],[0,n.leftbottom],[0,n.lefttop],[n.topright,1]]},jj=function(n){return[[1,1],[1,n.righttop],[n.bottomright,0],[n.bottomleft,0],[0,n.lefttop],[0,1]]},Kj=function(n){return[[1,n.righttop],[1,n.rightbottom],[n.bottomleft,0],[0,0],[0,1],[n.topleft,1]]},Qj=function(n){return[[1,1],[1,n.righttop],[n.bottomleft,0],[0,0],[0,n.leftbottom],[n.topright,1]]},tK=function(n){return[[1,n.rightbottom],[1,0],[n.bottomright,0],[0,n.lefttop],[0,1],[n.topleft,1]]},eK=function(n){return[[1,n.righttop],[1,n.rightbottom],[n.bottomright,0],[n.bottomleft,0],[0,n.leftbottom],[0,n.lefttop],[n.topleft,1],[n.topright,1]]},nK=function(n){return[[1,1],[1,n.righttop],[n.bottomleft,0],[0,0],[0,n.leftbottom],[n.topright,1]]},rK=function(n){return[[1,n.rightbottom],[1,0],[n.bottomright,0],[0,n.lefttop],[0,1],[n.topleft,1]]},iK=function(n){return[[1,1],[1,n.righttop],[n.bottomright,0],[n.bottomleft,0],[0,n.leftbottom],[0,n.lefttop],[n.topright,1]]},oK=function(n){return[[1,n.righttop],[1,n.rightbottom],[n.bottomleft,0],[0,0],[0,n.leftbottom],[n.topleft,1],[n.topright,1]]},sK=function(n){return[[1,n.righttop],[1,n.rightbottom],[n.bottomright,0],[n.bottomleft,0],[0,n.lefttop],[0,1],[n.topleft,1]]},aK=function(n){return[[1,n.rightbottom],[1,0],[n.bottomright,0],[0,n.leftbottom],[0,n.lefttop],[n.topleft,1],[n.topright,1]]},en=[],nn=[],rn=[],on=[],sn=[],an=[],un=[],ln=[];on[1]=sn[1]=18;on[169]=sn[169]=18;rn[4]=nn[4]=12;rn[166]=nn[166]=12;en[16]=ln[16]=4;en[154]=ln[154]=4;an[64]=un[64]=22;an[106]=un[106]=22;rn[2]=an[2]=17;on[2]=sn[2]=18;rn[168]=an[168]=17;on[168]=sn[168]=18;en[8]=on[8]=9;nn[8]=rn[8]=12;en[162]=on[162]=9;nn[162]=rn[162]=12;en[32]=ln[32]=4;nn[32]=un[32]=1;en[138]=ln[138]=4;nn[138]=un[138]=1;sn[128]=ln[128]=21;an[128]=un[128]=22;sn[42]=ln[42]=21;an[42]=un[42]=22;nn[5]=sn[5]=14;nn[165]=sn[165]=14;rn[20]=ln[20]=6;rn[150]=ln[150]=6;en[80]=an[80]=11;en[90]=an[90]=11;on[65]=un[65]=3;on[105]=un[105]=3;en[160]=an[160]=11;nn[160]=sn[160]=14;en[10]=an[10]=11;nn[10]=sn[10]=14;rn[130]=ln[130]=6;on[130]=un[130]=3;rn[40]=ln[40]=6;on[40]=un[40]=3;nn[101]=un[101]=1;nn[69]=un[69]=1;sn[149]=ln[149]=21;sn[21]=ln[21]=21;rn[86]=an[86]=17;rn[84]=an[84]=17;en[89]=on[89]=9;en[81]=on[81]=9;en[96]=un[96]=0;nn[96]=an[96]=15;en[74]=un[74]=0;nn[74]=an[74]=15;en[24]=rn[24]=8;on[24]=ln[24]=7;en[146]=rn[146]=8;on[146]=ln[146]=7;nn[6]=an[6]=15;rn[6]=sn[6]=16;nn[164]=an[164]=15;rn[164]=sn[164]=16;on[129]=ln[129]=7;sn[129]=un[129]=20;on[41]=ln[41]=7;sn[41]=un[41]=20;rn[66]=un[66]=2;on[66]=an[66]=19;rn[104]=un[104]=2;on[104]=an[104]=19;en[144]=sn[144]=10;an[144]=ln[144]=23;en[26]=sn[26]=10;an[26]=ln[26]=23;nn[36]=ln[36]=5;rn[36]=un[36]=2;nn[134]=ln[134]=5;rn[134]=un[134]=2;en[9]=sn[9]=10;nn[9]=on[9]=13;en[161]=sn[161]=10;nn[161]=on[161]=13;nn[37]=ln[37]=5;sn[37]=un[37]=20;nn[133]=ln[133]=5;sn[133]=un[133]=20;rn[148]=sn[148]=16;an[148]=ln[148]=23;rn[22]=sn[22]=16;an[22]=ln[22]=23;en[82]=rn[82]=8;on[82]=an[82]=19;en[88]=rn[88]=8;on[88]=an[88]=19;en[73]=un[73]=0;nn[73]=on[73]=13;en[97]=un[97]=0;nn[97]=on[97]=13;en[145]=on[145]=9;sn[145]=ln[145]=21;en[25]=on[25]=9;sn[25]=ln[25]=21;nn[70]=un[70]=1;rn[70]=an[70]=17;nn[100]=un[100]=1;rn[100]=an[100]=17;en[34]=on[34]=9;nn[34]=rn[34]=12;sn[34]=ln[34]=21;an[34]=un[34]=22;en[136]=ln[136]=4;nn[136]=un[136]=1;rn[136]=an[136]=17;on[136]=sn[136]=18;en[35]=ln[35]=4;nn[35]=rn[35]=12;on[35]=sn[35]=18;an[35]=un[35]=22;en[153]=ln[153]=4;on[153]=sn[153]=18;nn[102]=rn[102]=12;an[102]=un[102]=22;en[155]=on[155]=9;sn[155]=ln[155]=23;nn[103]=un[103]=1;rn[103]=an[103]=17;en[152]=ln[152]=4;rn[152]=an[152]=17;on[152]=sn[152]=18;en[156]=rn[156]=8;on[156]=sn[156]=18;an[156]=ln[156]=23;en[137]=ln[137]=4;nn[137]=un[137]=1;on[137]=sn[137]=18;en[139]=ln[139]=4;nn[139]=on[139]=13;sn[139]=un[139]=20;en[98]=on[98]=9;nn[98]=rn[98]=12;an[98]=un[98]=22;en[99]=un[99]=0;nn[99]=rn[99]=12;on[99]=an[99]=19;nn[38]=rn[38]=12;sn[38]=ln[38]=21;an[38]=un[38]=22;nn[39]=ln[39]=5;rn[39]=sn[39]=16;an[39]=un[39]=22;var Yt=[];Yt[1]=Yt[169]=xx;Yt[4]=Yt[166]=Ex;Yt[16]=Yt[154]=Sx;Yt[64]=Yt[106]=wx;Yt[168]=Yt[2]=Mx;Yt[162]=Yt[8]=bx;Yt[138]=Yt[32]=Ax;Yt[42]=Yt[128]=Tx;Yt[5]=Yt[165]=Pj;Yt[20]=Yt[150]=Rj;Yt[80]=Yt[90]=Lj;Yt[65]=Yt[105]=Nj;Yt[160]=Yt[10]=Oj;Yt[130]=Yt[40]=Dj;Yt[85]=Fj;Yt[101]=Yt[69]=Uj;Yt[149]=Yt[21]=Bj;Yt[86]=Yt[84]=zj;Yt[89]=Yt[81]=Gj;Yt[96]=Yt[74]=kj;Yt[24]=Yt[146]=qj;Yt[6]=Yt[164]=Vj;Yt[129]=Yt[41]=Hj;Yt[66]=Yt[104]=Wj;Yt[144]=Yt[26]=Xj;Yt[36]=Yt[134]=Yj;Yt[9]=Yt[161]=$j;Yt[37]=Yt[133]=Zj;Yt[148]=Yt[22]=Jj;Yt[82]=Yt[88]=jj;Yt[73]=Yt[97]=Kj;Yt[145]=Yt[25]=Qj;Yt[70]=Yt[100]=tK;Yt[34]=function(n){return[Tx(n),bx(n)]};Yt[35]=eK;Yt[136]=function(n){return[Ax(n),Mx(n)]};Yt[153]=function(n){return[Sx(n),xx(n)]};Yt[102]=function(n){return[Ex(n),wx(n)]};Yt[155]=nK;Yt[103]=rK;Yt[152]=function(n){return[Sx(n),Mx(n)]};Yt[156]=iK;Yt[137]=function(n){return[Ax(n),xx(n)]};Yt[139]=oK;Yt[98]=function(n){return[bx(n),wx(n)]};Yt[99]=sK;Yt[38]=function(n){return[Ex(n),Tx(n)]};Yt[39]=aK;function lK(n){return(n>0)-(n<0)||+n}function Zl(n,t,e){var i=t[0]-n[0],s=t[1]-n[1],u=e[0]-t[0],c=e[1]-t[1];return lK(i*c-u*s)}function h2(n,t){var e=n.geometry.coordinates[0].map(function(c){return c[0]}),i=n.geometry.coordinates[0].map(function(c){return c[1]}),s=t.geometry.coordinates[0].map(function(c){return c[0]}),u=t.geometry.coordinates[0].map(function(c){return c[1]});return Math.max.apply(null,e)===Math.max.apply(null,s)&&Math.max.apply(null,i)===Math.max.apply(null,u)&&Math.min.apply(null,e)===Math.min.apply(null,s)&&Math.min.apply(null,i)===Math.min.apply(null,u)}function Cx(n,t){return t.geometry.coordinates[0].every(function(e){return zr(Fn(e),n)})}function p2(n,t){return n[0]===t[0]&&n[1]===t[1]}var cK=function(){function n(t){this.id=n.buildId(t),this.coordinates=t,this.innerEdges=[],this.outerEdges=[],this.outerEdgesSorted=!1}return n.buildId=function(t){return t.join(",")},n.prototype.removeInnerEdge=function(t){this.innerEdges=this.innerEdges.filter(function(e){return e.from.id!==t.from.id})},n.prototype.removeOuterEdge=function(t){this.outerEdges=this.outerEdges.filter(function(e){return e.to.id!==t.to.id})},n.prototype.addOuterEdge=function(t){this.outerEdges.push(t),this.outerEdgesSorted=!1},n.prototype.sortOuterEdges=function(){var t=this;this.outerEdgesSorted||(this.outerEdges.sort(function(e,i){var s=e.to,u=i.to;if(s.coordinates[0]-t.coordinates[0]>=0&&u.coordinates[0]-t.coordinates[0]<0)return 1;if(s.coordinates[0]-t.coordinates[0]<0&&u.coordinates[0]-t.coordinates[0]>=0)return-1;if(s.coordinates[0]-t.coordinates[0]===0&&u.coordinates[0]-t.coordinates[0]===0)return s.coordinates[1]-t.coordinates[1]>=0||u.coordinates[1]-t.coordinates[1]>=0?s.coordinates[1]-u.coordinates[1]:u.coordinates[1]-s.coordinates[1];var c=Zl(t.coordinates,s.coordinates,u.coordinates);if(c<0)return 1;if(c>0)return-1;var f=Math.pow(s.coordinates[0]-t.coordinates[0],2)+Math.pow(s.coordinates[1]-t.coordinates[1],2),p=Math.pow(u.coordinates[0]-t.coordinates[0],2)+Math.pow(u.coordinates[1]-t.coordinates[1],2);return f-p}),this.outerEdgesSorted=!0)},n.prototype.getOuterEdges=function(){return this.sortOuterEdges(),this.outerEdges},n.prototype.getOuterEdge=function(t){return this.sortOuterEdges(),this.outerEdges[t]},n.prototype.addInnerEdge=function(t){this.innerEdges.push(t)},n}(),Ix=cK;var fK=function(){function n(t,e){this.from=t,this.to=e,this.next=void 0,this.label=void 0,this.symetric=void 0,this.ring=void 0,this.from.addOuterEdge(this),this.to.addInnerEdge(this)}return n.prototype.getSymetric=function(){return this.symetric||(this.symetric=new n(this.to,this.from),this.symetric.symetric=this),this.symetric},n.prototype.deleteEdge=function(){this.from.removeOuterEdge(this),this.to.removeInnerEdge(this)},n.prototype.isEqual=function(t){return this.from.id===t.from.id&&this.to.id===t.to.id},n.prototype.toString=function(){return"Edge { "+this.from.id+" -> "+this.to.id+" }"},n.prototype.toLineString=function(){return Br([this.from.coordinates,this.to.coordinates])},n.prototype.compareTo=function(t){return Zl(t.from.coordinates,t.to.coordinates,this.to.coordinates)},n}(),d2=fK;var hK=function(){function n(){this.edges=[],this.polygon=void 0,this.envelope=void 0}return n.prototype.push=function(t){this.edges.push(t),this.polygon=this.envelope=void 0},n.prototype.get=function(t){return this.edges[t]},Object.defineProperty(n.prototype,"length",{get:function(){return this.edges.length},enumerable:!0,configurable:!0}),n.prototype.forEach=function(t){this.edges.forEach(t)},n.prototype.map=function(t){return this.edges.map(t)},n.prototype.some=function(t){return this.edges.some(t)},n.prototype.isValid=function(){return!0},n.prototype.isHole=function(){var t=this,e=this.edges.reduce(function(c,f,p){return f.from.coordinates[1]>t.edges[c].from.coordinates[1]&&(c=p),c},0),i=(e===0?this.length:e)-1,s=(e+1)%this.length,u=Zl(this.edges[i].from.coordinates,this.edges[e].from.coordinates,this.edges[s].from.coordinates);return u===0?this.edges[i].from.coordinates[0]>this.edges[s].from.coordinates[0]:u>0},n.prototype.toMultiPoint=function(){return s_(this.edges.map(function(t){return t.from.coordinates}))},n.prototype.toPolygon=function(){if(this.polygon)return this.polygon;var t=this.edges.map(function(e){return e.from.coordinates});return t.push(this.edges[0].from.coordinates),this.polygon=$n([t])},n.prototype.getEnvelope=function(){return this.envelope?this.envelope:this.envelope=b_(this.toPolygon())},n.findEdgeRingContaining=function(t,e){var i=t.getEnvelope(),s,u;return e.forEach(function(c){var f=c.getEnvelope();if(u&&(s=u.getEnvelope()),!h2(f,i)&&Cx(f,i)){for(var p=t.map(function(M){return M.from.coordinates}),d=void 0,g=function(M){c.some(function(A){return p2(M,A.from.coordinates)})||(d=M)},y=0,v=p;y<v.length;y++){var E=v[y];g(E)}d&&c.inside(Fn(d))&&(!u||Cx(s,f))&&(u=c)}}),u},n.prototype.inside=function(t){return zr(t,this.toPolygon())},n}(),Px=hK;function pK(n){if(!n)throw new Error("No geojson passed");if(n.type!=="FeatureCollection"&&n.type!=="GeometryCollection"&&n.type!=="MultiLineString"&&n.type!=="LineString"&&n.type!=="Feature")throw new Error("Invalid input type '"+n.type+"'. Geojson must be FeatureCollection, GeometryCollection, LineString, MultiLineString or Feature")}var Ydt=function(){function n(){this.edges=[],this.nodes={}}return n.fromGeoJson=function(t){pK(t);var e=new n;return Ji(t,function(i){u_(i,"LineString","Graph::fromGeoJson"),bP(i,function(s,u){if(s){var c=e.getNode(s),f=e.getNode(u);e.addEdge(c,f)}return u})}),e},n.prototype.getNode=function(t){var e=Ix.buildId(t),i=this.nodes[e];return i||(i=this.nodes[e]=new Ix(t)),i},n.prototype.addEdge=function(t,e){var i=new d2(t,e),s=i.getSymetric();this.edges.push(i),this.edges.push(s)},n.prototype.deleteDangles=function(){var t=this;Object.keys(this.nodes).map(function(e){return t.nodes[e]}).forEach(function(e){return t._removeIfDangle(e)})},n.prototype._removeIfDangle=function(t){var e=this;if(t.innerEdges.length<=1){var i=t.getOuterEdges().map(function(s){return s.to});this.removeNode(t),i.forEach(function(s){return e._removeIfDangle(s)})}},n.prototype.deleteCutEdges=function(){var t=this;this._computeNextCWEdges(),this._findLabeledEdgeRings(),this.edges.forEach(function(e){e.label===e.symetric.label&&(t.removeEdge(e.symetric),t.removeEdge(e))})},n.prototype._computeNextCWEdges=function(t){var e=this;typeof t=="undefined"?Object.keys(this.nodes).forEach(function(i){return e._computeNextCWEdges(e.nodes[i])}):t.getOuterEdges().forEach(function(i,s){t.getOuterEdge((s===0?t.getOuterEdges().length:s)-1).symetric.next=i})},n.prototype._computeNextCCWEdges=function(t,e){for(var i=t.getOuterEdges(),s,u,c=i.length-1;c>=0;--c){var f=i[c],p=f.symetric,d=void 0,g=void 0;f.label===e&&(d=f),p.label===e&&(g=p),!(!d||!g)&&(g&&(u=g),d&&(u&&(u.next=d,u=void 0),s||(s=d)))}u&&(u.next=s)},n.prototype._findLabeledEdgeRings=function(){var t=[],e=0;return this.edges.forEach(function(i){if(!(i.label>=0)){t.push(i);var s=i;do s.label=e,s=s.next;while(!i.isEqual(s));e++}}),t},n.prototype.getEdgeRings=function(){var t=this;this._computeNextCWEdges(),this.edges.forEach(function(i){i.label=void 0}),this._findLabeledEdgeRings().forEach(function(i){t._findIntersectionNodes(i).forEach(function(s){t._computeNextCCWEdges(s,i.label)})});var e=[];return this.edges.forEach(function(i){i.ring||e.push(t._findEdgeRing(i))}),e},n.prototype._findIntersectionNodes=function(t){var e=[],i=t,s=function(){var u=0;i.from.getOuterEdges().forEach(function(c){c.label===t.label&&++u}),u>1&&e.push(i.from),i=i.next};do s();while(!t.isEqual(i));return e},n.prototype._findEdgeRing=function(t){var e=t,i=new Px;do i.push(e),e.ring=i,e=e.next;while(!t.isEqual(e));return i},n.prototype.removeNode=function(t){var e=this;t.getOuterEdges().forEach(function(i){return e.removeEdge(i)}),t.innerEdges.forEach(function(i){return e.removeEdge(i)}),delete this.nodes[t.id]},n.prototype.removeEdge=function(t){this.edges=this.edges.filter(function(e){return!e.isEqual(t)}),t.deleteEdge()},n}();var yK=Qt(Rx(),1);var vK=Qt(Rx(),1);var xK=Qt(w2(),1);var TK=Qt(N2(),1);function D2(n){for(var t=n,e=[];t.parent;)e.unshift(t),t=t.parent;return e}function IK(){return new F2(function(n){return n.f})}var Dx={search:function(n,t,e,i){n.cleanDirty(),i=i||{};var s=i.heuristic||Dx.heuristics.manhattan,u=i.closest||!1,c=IK(),f=t;for(t.h=s(t,e),c.push(t);c.size()>0;){var p=c.pop();if(p===e)return D2(p);p.closed=!0;for(var d=n.neighbors(p),g=0,y=d.length;g<y;++g){var v=d[g];if(!(v.closed||v.isWall())){var E=p.g+v.getCost(p),M=v.visited;(!M||E<v.g)&&(v.visited=!0,v.parent=p,v.h=v.h||s(v,e),v.g=E,v.f=v.g+v.h,n.markDirty(v),u&&(v.h<f.h||v.h===f.h&&v.g<f.g)&&(f=v),M?c.rescoreElement(v):c.push(v))}}}return u?D2(f):[]},heuristics:{manhattan:function(n,t){var e=Math.abs(t.x-n.x),i=Math.abs(t.y-n.y);return e+i},diagonal:function(n,t){var e=1,i=Math.sqrt(2),s=Math.abs(t.x-n.x),u=Math.abs(t.y-n.y);return e*(s+u)+(i-2*e)*Math.min(s,u)}},cleanNode:function(n){n.f=0,n.g=0,n.h=0,n.visited=!1,n.closed=!1,n.parent=null}};function Df(n,t){t=t||{},this.nodes=[],this.diagonal=!!t.diagonal,this.grid=[];for(var e=0;e<n.length;e++){this.grid[e]=[];for(var i=0,s=n[e];i<s.length;i++){var u=new og(e,i,s[i]);this.grid[e][i]=u,this.nodes.push(u)}}this.init()}Df.prototype.init=function(){this.dirtyNodes=[];for(var n=0;n<this.nodes.length;n++)Dx.cleanNode(this.nodes[n])};Df.prototype.cleanDirty=function(){for(var n=0;n<this.dirtyNodes.length;n++)Dx.cleanNode(this.dirtyNodes[n]);this.dirtyNodes=[]};Df.prototype.markDirty=function(n){this.dirtyNodes.push(n)};Df.prototype.neighbors=function(n){var t=[],e=n.x,i=n.y,s=this.grid;return s[e-1]&&s[e-1][i]&&t.push(s[e-1][i]),s[e+1]&&s[e+1][i]&&t.push(s[e+1][i]),s[e]&&s[e][i-1]&&t.push(s[e][i-1]),s[e]&&s[e][i+1]&&t.push(s[e][i+1]),this.diagonal&&(s[e-1]&&s[e-1][i-1]&&t.push(s[e-1][i-1]),s[e+1]&&s[e+1][i-1]&&t.push(s[e+1][i-1]),s[e-1]&&s[e-1][i+1]&&t.push(s[e-1][i+1]),s[e+1]&&s[e+1][i+1]&&t.push(s[e+1][i+1])),t};Df.prototype.toString=function(){for(var n=[],t=this.grid,e,i,s,u,c=0,f=t.length;c<f;c++){for(e=[],i=t[c],s=0,u=i.length;s<u;s++)e.push(i[s].weight);n.push(e.join(" "))}return n.join(\`
|
|
11813
11813
|
\`)};function og(n,t,e){this.x=n,this.y=t,this.weight=e}og.prototype.toString=function(){return"["+this.x+" "+this.y+"]"};og.prototype.getCost=function(n){return n&&n.x!==this.x&&n.y!==this.y?this.weight*1.41421:this.weight};og.prototype.isWall=function(){return this.weight===0};function F2(n){this.content=[],this.scoreFunction=n}F2.prototype={push:function(n){this.content.push(n),this.sinkDown(this.content.length-1)},pop:function(){var n=this.content[0],t=this.content.pop();return this.content.length>0&&(this.content[0]=t,this.bubbleUp(0)),n},remove:function(n){var t=this.content.indexOf(n),e=this.content.pop();t!==this.content.length-1&&(this.content[t]=e,this.scoreFunction(e)<this.scoreFunction(n)?this.sinkDown(t):this.bubbleUp(t))},size:function(){return this.content.length},rescoreElement:function(n){this.sinkDown(this.content.indexOf(n))},sinkDown:function(n){for(var t=this.content[n];n>0;){var e=(n+1>>1)-1,i=this.content[e];if(this.scoreFunction(t)<this.scoreFunction(i))this.content[e]=t,this.content[n]=i,n=e;else break}},bubbleUp:function(n){for(var t=this.content.length,e=this.content[n],i=this.scoreFunction(e);;){var s=n+1<<1,u=s-1,c=null,f;if(u<t){var p=this.content[u];f=this.scoreFunction(p),f<i&&(c=u)}if(s<t){var d=this.content[s],g=this.scoreFunction(d);g<(c===null?i:f)&&(c=s)}if(c!==null)this.content[n]=this.content[c],this.content[c]=e,n=c;else break}}};function Fx(){this._=null}function jl(n){n.U=n.C=n.L=n.R=n.P=n.N=null}Fx.prototype={constructor:Fx,insert:function(n,t){var e,i,s;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=U2(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)i=e.U,e===i.L?(s=i.R,s&&s.C?(e.C=s.C=!1,i.C=!0,n=i):(n===e.R&&(Ff(this,e),n=e,e=n.U),e.C=!1,i.C=!0,Uf(this,i))):(s=i.L,s&&s.C?(e.C=s.C=!1,i.C=!0,n=i):(n===e.L&&(Uf(this,e),n=e,e=n.U),e.C=!1,i.C=!0,Ff(this,i))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t=n.U,e,i=n.L,s=n.R,u,c;if(i?s?u=U2(s):u=i:u=s,t?t.L===n?t.L=u:t.R=u:this._=u,i&&s?(c=u.C,u.C=n.C,u.L=i,i.U=u,u!==s?(t=u.U,u.U=n.U,n=u.R,t.L=n,u.R=s,s.U=u):(u.U=t,t=u,n=u.R)):(c=n.C,n=u),n&&(n.U=t),!c){if(n&&n.C){n.C=!1;return}do{if(n===this._)break;if(n===t.L){if(e=t.R,e.C&&(e.C=!1,t.C=!0,Ff(this,t),e=t.R),e.L&&e.L.C||e.R&&e.R.C){(!e.R||!e.R.C)&&(e.L.C=!1,e.C=!0,Uf(this,e),e=t.R),e.C=t.C,t.C=e.R.C=!1,Ff(this,t),n=this._;break}}else if(e=t.L,e.C&&(e.C=!1,t.C=!0,Uf(this,t),e=t.L),e.L&&e.L.C||e.R&&e.R.C){(!e.L||!e.L.C)&&(e.R.C=!1,e.C=!0,Ff(this,e),e=t.L),e.C=t.C,t.C=e.L.C=!1,Uf(this,t),n=this._;break}e.C=!0,n=t,t=t.U}while(!n.C);n&&(n.C=!1)}}};function Ff(n,t){var e=t,i=t.R,s=e.U;s?s.L===e?s.L=i:s.R=i:n._=i,i.U=s,e.U=i,e.R=i.L,e.R&&(e.R.U=e),i.L=e}function Uf(n,t){var e=t,i=t.L,s=e.U;s?s.L===e?s.L=i:s.R=i:n._=i,i.U=s,e.U=i,e.L=i.R,e.L&&(e.L.U=e),i.R=e}function U2(n){for(;n.L;)n=n.L;return n}var Ux=Fx;function Kl(n,t,e,i){var s=[null,null],u=kr.push(s)-1;return s.left=n,s.right=t,e&&Bf(s,n,t,e),i&&Bf(s,t,n,i),Ti[n.index].halfedges.push(u),Ti[t.index].halfedges.push(u),s}function Ql(n,t,e){var i=[t,e];return i.left=n,i}function Bf(n,t,e,i){!n[0]&&!n[1]?(n[0]=i,n.left=t,n.right=e):n.left===e?n[1]=i:n[0]=i}function PK(n,t,e,i,s){var u=n[0],c=n[1],f=u[0],p=u[1],d=c[0],g=c[1],y=0,v=1,E=d-f,M=g-p,A;if(A=t-f,!(!E&&A>0)){if(A/=E,E<0){if(A<y)return;A<v&&(v=A)}else if(E>0){if(A>v)return;A>y&&(y=A)}if(A=i-f,!(!E&&A<0)){if(A/=E,E<0){if(A>v)return;A>y&&(y=A)}else if(E>0){if(A<y)return;A<v&&(v=A)}if(A=e-p,!(!M&&A>0)){if(A/=M,M<0){if(A<y)return;A<v&&(v=A)}else if(M>0){if(A>v)return;A>y&&(y=A)}if(A=s-p,!(!M&&A<0)){if(A/=M,M<0){if(A>v)return;A>y&&(y=A)}else if(M>0){if(A<y)return;A<v&&(v=A)}return!(y>0)&&!(v<1)||(y>0&&(n[0]=[f+y*E,p+y*M]),v<1&&(n[1]=[f+v*E,p+v*M])),!0}}}}}function RK(n,t,e,i,s){var u=n[1];if(u)return!0;var c=n[0],f=n.left,p=n.right,d=f[0],g=f[1],y=p[0],v=p[1],E=(d+y)/2,M=(g+v)/2,A,_;if(v===g){if(E<t||E>=i)return;if(d>y){if(!c)c=[E,e];else if(c[1]>=s)return;u=[E,s]}else{if(!c)c=[E,s];else if(c[1]<e)return;u=[E,e]}}else if(A=(d-y)/(v-g),_=M-A*E,A<-1||A>1)if(d>y){if(!c)c=[(e-_)/A,e];else if(c[1]>=s)return;u=[(s-_)/A,s]}else{if(!c)c=[(s-_)/A,s];else if(c[1]<e)return;u=[(e-_)/A,e]}else if(g<v){if(!c)c=[t,A*t+_];else if(c[0]>=i)return;u=[i,A*i+_]}else{if(!c)c=[i,A*i+_];else if(c[0]<t)return;u=[t,A*t+_]}return n[0]=c,n[1]=u,!0}function B2(n,t,e,i){for(var s=kr.length,u;s--;)(!RK(u=kr[s],n,t,e,i)||!PK(u,n,t,e,i)||!(Math.abs(u[0][0]-u[1][0])>Ln||Math.abs(u[0][1]-u[1][1])>Ln))&&delete kr[s]}function z2(n){return Ti[n.index]={site:n,halfedges:[]}}function LK(n,t){var e=n.site,i=t.left,s=t.right;return e===s&&(s=i,i=e),s?Math.atan2(s[1]-i[1],s[0]-i[0]):(e===i?(i=t[1],s=t[0]):(i=t[0],s=t[1]),Math.atan2(i[0]-s[0],s[1]-i[1]))}function Bx(n,t){return t[+(t.left!==n.site)]}function NK(n,t){return t[+(t.left===n.site)]}function G2(){for(var n=0,t=Ti.length,e,i,s,u;n<t;++n)if((e=Ti[n])&&(u=(i=e.halfedges).length)){var c=new Array(u),f=new Array(u);for(s=0;s<u;++s)c[s]=s,f[s]=LK(e,kr[i[s]]);for(c.sort(function(p,d){return f[d]-f[p]}),s=0;s<u;++s)f[s]=i[c[s]];for(s=0;s<u;++s)i[s]=f[s]}}function k2(n,t,e,i){var s=Ti.length,u,c,f,p,d,g,y,v,E,M,A,_,x=!0;for(u=0;u<s;++u)if(c=Ti[u]){for(f=c.site,d=c.halfedges,p=d.length;p--;)kr[d[p]]||d.splice(p,1);for(p=0,g=d.length;p<g;)M=NK(c,kr[d[p]]),A=M[0],_=M[1],y=Bx(c,kr[d[++p%g]]),v=y[0],E=y[1],(Math.abs(A-v)>Ln||Math.abs(_-E)>Ln)&&(d.splice(p,0,kr.push(Ql(f,M,Math.abs(A-n)<Ln&&i-_>Ln?[n,Math.abs(v-n)<Ln?E:i]:Math.abs(_-i)<Ln&&e-A>Ln?[Math.abs(E-i)<Ln?v:e,i]:Math.abs(A-e)<Ln&&_-t>Ln?[e,Math.abs(v-e)<Ln?E:t]:Math.abs(_-t)<Ln&&A-n>Ln?[Math.abs(E-t)<Ln?v:n,t]:null))-1),++g);g&&(x=!1)}if(x){var T,w,R,B=1/0;for(u=0,x=null;u<s;++u)(c=Ti[u])&&(f=c.site,T=f[0]-n,w=f[1]-t,R=T*T+w*w,R<B&&(B=R,x=c));if(x){var U=[n,t],D=[n,i],P=[e,i],ct=[e,t];x.halfedges.push(kr.push(Ql(f=x.site,U,D))-1,kr.push(Ql(f,D,P))-1,kr.push(Ql(f,P,ct))-1,kr.push(Ql(f,ct,U))-1)}}for(u=0;u<s;++u)(c=Ti[u])&&(c.halfedges.length||delete Ti[u])}var q2=[],sg;function OK(){jl(this),this.x=this.y=this.arc=this.site=this.cy=null}function vu(n){var t=n.P,e=n.N;if(!(!t||!e)){var i=t.site,s=n.site,u=e.site;if(i!==u){var c=s[0],f=s[1],p=i[0]-c,d=i[1]-f,g=u[0]-c,y=u[1]-f,v=2*(p*y-d*g);if(!(v>=-V2)){var E=p*p+d*d,M=g*g+y*y,A=(y*E-d*M)/v,_=(p*M-g*E)/v,x=q2.pop()||new OK;x.arc=n,x.site=s,x.x=A+c,x.y=(x.cy=_+f)+Math.sqrt(A*A+_*_),n.circle=x;for(var T=null,w=tc._;w;)if(x.y<w.y||x.y===w.y&&x.x<=w.x)if(w.L)w=w.L;else{T=w.P;break}else if(w.R)w=w.R;else{T=w;break}tc.insert(T,x),T||(sg=x)}}}}function _u(n){var t=n.circle;t&&(t.P||(sg=t.N),tc.remove(t),q2.push(t),jl(t),n.circle=null)}var W2=[];function DK(){jl(this),this.edge=this.site=this.circle=null}function H2(n){var t=W2.pop()||new DK;return t.site=n,t}function zx(n){_u(n),xu.remove(n),W2.push(n),jl(n)}function X2(n){var t=n.circle,e=t.x,i=t.cy,s=[e,i],u=n.P,c=n.N,f=[n];zx(n);for(var p=u;p.circle&&Math.abs(e-p.circle.x)<Ln&&Math.abs(i-p.circle.cy)<Ln;)u=p.P,f.unshift(p),zx(p),p=u;f.unshift(p),_u(p);for(var d=c;d.circle&&Math.abs(e-d.circle.x)<Ln&&Math.abs(i-d.circle.cy)<Ln;)c=d.N,f.push(d),zx(d),d=c;f.push(d),_u(d);var g=f.length,y;for(y=1;y<g;++y)d=f[y],p=f[y-1],Bf(d.edge,p.site,d.site,s);p=f[0],d=f[g-1],d.edge=Kl(p.site,d.site,null,s),vu(p),vu(d)}function Y2(n){for(var t=n[0],e=n[1],i,s,u,c,f=xu._;f;)if(u=$2(f,e)-t,u>Ln)f=f.L;else if(c=t-FK(f,e),c>Ln){if(!f.R){i=f;break}f=f.R}else{u>-Ln?(i=f.P,s=f):c>-Ln?(i=f,s=f.N):i=s=f;break}z2(n);var p=H2(n);if(xu.insert(i,p),!(!i&&!s)){if(i===s){_u(i),s=H2(i.site),xu.insert(p,s),p.edge=s.edge=Kl(i.site,p.site),vu(i),vu(s);return}if(!s){p.edge=Kl(i.site,p.site);return}_u(i),_u(s);var d=i.site,g=d[0],y=d[1],v=n[0]-g,E=n[1]-y,M=s.site,A=M[0]-g,_=M[1]-y,x=2*(v*_-E*A),T=v*v+E*E,w=A*A+_*_,R=[(_*T-E*w)/x+g,(v*w-A*T)/x+y];Bf(s.edge,d,M,R),p.edge=Kl(d,n,null,R),s.edge=Kl(n,M,null,R),vu(i),vu(s)}}function $2(n,t){var e=n.site,i=e[0],s=e[1],u=s-t;if(!u)return i;var c=n.P;if(!c)return-1/0;e=c.site;var f=e[0],p=e[1],d=p-t;if(!d)return f;var g=f-i,y=1/u-1/d,v=g/d;return y?(-v+Math.sqrt(v*v-2*y*(g*g/(-2*d)-p+d/2+s-u/2)))/y+i:(i+f)/2}function FK(n,t){var e=n.N;if(e)return $2(e,t);var i=n.site;return i[1]===t?i[0]:1/0}var Ln=1e-6,V2=1e-12,xu,Ti,tc,kr;function UK(n,t,e){return(n[0]-e[0])*(t[1]-n[1])-(n[0]-t[0])*(e[1]-n[1])}function BK(n,t){return t[1]-n[1]||t[0]-n[0]}function ag(n,t){var e=n.sort(BK).pop(),i,s,u;for(kr=[],Ti=new Array(n.length),xu=new Ux,tc=new Ux;;)if(u=sg,e&&(!u||e[1]<u.y||e[1]===u.y&&e[0]<u.x))(e[0]!==i||e[1]!==s)&&(Y2(e),i=e[0],s=e[1]),e=n.pop();else if(u)X2(u.arc);else break;if(G2(),t){var c=+t[0][0],f=+t[0][1],p=+t[1][0],d=+t[1][1];B2(c,f,p,d),k2(c,f,p,d)}this.edges=kr,this.cells=Ti,xu=tc=kr=Ti=null}ag.prototype={constructor:ag,polygons:function(){var n=this.edges;return this.cells.map(function(t){var e=t.halfedges.map(function(i){return Bx(t,n[i])});return e.data=t.site.data,e})},triangles:function(){var n=[],t=this.edges;return this.cells.forEach(function(e,i){if(f=(u=e.halfedges).length)for(var s=e.site,u,c=-1,f,p,d=t[u[f-1]],g=d.left===s?d.right:d.left;++c<f;)p=g,d=t[u[c]],g=d.left===s?d.right:d.left,p&&g&&i<p.index&&i<g.index&&UK(s,p,g)<0&&n.push([s.data,p.data,g.data])}),n},links:function(){return this.edges.filter(function(n){return n.right}).map(function(n){return{source:n.left.data,target:n.right.data}})},find:function(n,t,e){for(var i=this,s,u=i._found||0,c=i.cells.length,f;!(f=i.cells[u]);)if(++u>=c)return null;var p=n-f.site[0],d=t-f.site[1],g=p*p+d*d;do f=i.cells[s=u],u=null,f.halfedges.forEach(function(y){var v=i.edges[y],E=v.left;if(!((E===f.site||!E)&&!(E=v.right))){var M=n-E[0],A=t-E[1],_=M*M+A*A;_<g&&(g=_,u=E.index)}});while(u!==null);return i._found=s,e==null||g<=e*e?f.site:null}};var XK=Qt(ec(),1);var t1=Qt(K2(),1);function Di(){return new cg}function cg(){this.reset()}cg.prototype={constructor:cg,reset:function(){this.s=this.t=0},add:function(n){Q2(lg,n,this.t),Q2(this,lg.s,this.s),this.s?this.t+=lg.t:this.s=lg.t},valueOf:function(){return this.s}};var lg=new cg;function Q2(n,t,e){var i=n.s=t+e,s=i-t,u=i-s;n.t=t-u+(e-s)}var yn=1e-6;var Tn=Math.PI,br=Tn/2,fg=Tn/4,os=Tn*2,Eu=180/Tn,Fi=Tn/180,nr=Math.abs,Uo=Math.atan,Ui=Math.atan2,hn=Math.cos;var hg=Math.exp;var zf=Math.log;var Me=Math.sin;var jr=Math.sqrt,Gf=Math.tan;function qx(n){return n>1?0:n<-1?Tn:Math.acos(n)}function Ci(n){return n>1?br:n<-1?-br:Math.asin(n)}function Bo(){}var YK=Di(),k0t=Di();function Su(n){var t=n[0],e=n[1],i=hn(e);return[i*hn(t),i*Me(t),Me(e)]}function kf(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function qf(n){var t=jr(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}var j0t=Di();function eO(n,t){return[n>Tn?n-os:n<-Tn?n+os:n,t]}eO.invert=eO;function Vx(){var n=[],t;return{point:function(e,i){t.push([e,i])},lineStart:function(){n.push(t=[])},lineEnd:Bo,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function Hx(n,t){return nr(n[0]-t[0])<yn&&nr(n[1]-t[1])<yn}function pg(n,t,e,i){this.x=n,this.z=t,this.o=e,this.e=i,this.v=!1,this.n=this.p=null}function Wx(n,t,e,i,s){var u=[],c=[],f,p;if(n.forEach(function(M){if(!((A=M.length-1)<=0)){var A,_=M[0],x=M[A],T;if(Hx(_,x)){for(s.lineStart(),f=0;f<A;++f)s.point((_=M[f])[0],_[1]);s.lineEnd();return}u.push(T=new pg(_,M,null,!0)),c.push(T.o=new pg(_,null,T,!1)),u.push(T=new pg(x,M,null,!1)),c.push(T.o=new pg(x,null,T,!0))}}),!!u.length){for(c.sort(t),nO(u),nO(c),f=0,p=c.length;f<p;++f)c[f].e=e=!e;for(var d=u[0],g,y;;){for(var v=d,E=!0;v.v;)if((v=v.n)===d)return;g=v.z,s.lineStart();do{if(v.v=v.o.v=!0,v.e){if(E)for(f=0,p=g.length;f<p;++f)s.point((y=g[f])[0],y[1]);else i(v.x,v.n.x,1,s);v=v.n}else{if(E)for(g=v.p.z,f=g.length-1;f>=0;--f)s.point((y=g[f])[0],y[1]);else i(v.x,v.p.x,-1,s);v=v.p}v=v.o,g=v.z,E=!E}while(!v.v);s.lineEnd()}}}function nO(n){if(t=n.length){for(var t,e=0,i=n[0],s;++e<t;)i.n=s=n[e],s.p=i,i=s;i.n=s=n[0],s.p=i}}function Aa(n,t){return n<t?-1:n>t?1:n>=t?0:NaN}function Xx(n){return n.length===1&&(n=JK(n)),{left:function(t,e,i,s){for(i==null&&(i=0),s==null&&(s=t.length);i<s;){var u=i+s>>>1;n(t[u],e)<0?i=u+1:s=u}return i},right:function(t,e,i,s){for(i==null&&(i=0),s==null&&(s=t.length);i<s;){var u=i+s>>>1;n(t[u],e)>0?s=u:i=u+1}return i}}}function JK(n){return function(t,e){return Aa(n(t),e)}}var rO=Xx(Aa),jK=rO.right,KK=rO.left;var iO=Array.prototype,tQ=iO.slice,eQ=iO.map;var Vyt=Math.sqrt(50),Hyt=Math.sqrt(10),Wyt=Math.sqrt(2);function gg(n){for(var t=n.length,e,i=-1,s=0,u,c;++i<t;)s+=n[i].length;for(u=new Array(s);--t>=0;)for(c=n[t],e=c.length;--e>=0;)u[--s]=c[e];return u}var lQ=1e9,C_t=-lQ;var Yx=Di();function $x(n,t){var e=t[0],i=t[1],s=[Me(e),-hn(e),0],u=0,c=0;Yx.reset();for(var f=0,p=n.length;f<p;++f)if(g=(d=n[f]).length)for(var d,g,y=d[g-1],v=y[0],E=y[1]/2+fg,M=Me(E),A=hn(E),_=0;_<g;++_,v=T,M=R,A=B,y=x){var x=d[_],T=x[0],w=x[1]/2+fg,R=Me(w),B=hn(w),U=T-v,D=U>=0?1:-1,P=D*U,ct=P>Tn,L=M*R;if(Yx.add(Ui(L*D*Me(P),A*B+L*hn(P))),u+=ct?U+D*os:U,ct^v>=e^T>=e){var W=kf(Su(y),Su(x));qf(W);var V=kf(s,W);qf(V);var Mt=(ct^U>=0?-1:1)*Ci(V[2]);(i>Mt||i===Mt&&(W[0]||W[1]))&&(c+=ct^U>=0?1:-1)}}return(u<-yn||u<yn&&Yx<-yn)^c&1}var B_t=Di();var rxt=Di(),ixt=Di();var hQ=1/0;var axt=-hQ;function Zx(n){this._context=n}Zx.prototype={_radius:4.5,pointRadius:function(n){return this._radius=n,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(n,t){switch(this._point){case 0:{this._context.moveTo(n,t),this._point=1;break}case 1:{this._context.lineTo(n,t);break}default:{this._context.moveTo(n+this._radius,t),this._context.arc(n,t,this._radius,0,os);break}}},result:Bo};var yxt=Di();function Jx(){this._string=[]}Jx.prototype={_radius:4.5,_circle:aO(4.5),pointRadius:function(n){return(n=+n)!==this._radius&&(this._radius=n,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._string.push("Z"),this._point=NaN},point:function(n,t){switch(this._point){case 0:{this._string.push("M",n,",",t),this._point=1;break}case 1:{this._string.push("L",n,",",t);break}default:{this._circle==null&&(this._circle=aO(this._radius)),this._string.push("M",n,",",t,this._circle);break}}},result:function(){if(this._string.length){var n=this._string.join("");return this._string=[],n}else return null}};function aO(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function jx(n,t,e,i){return function(s,u){var c=t(u),f=s.invert(i[0],i[1]),p=Vx(),d=t(p),g=!1,y,v,E,M={point:A,lineStart:x,lineEnd:T,polygonStart:function(){M.point=w,M.lineStart=R,M.lineEnd=B,v=[],y=[]},polygonEnd:function(){M.point=A,M.lineStart=x,M.lineEnd=T,v=gg(v);var U=$x(y,f);v.length?(g||(u.polygonStart(),g=!0),Wx(v,gQ,U,e,u)):U&&(g||(u.polygonStart(),g=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),g&&(u.polygonEnd(),g=!1),v=y=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}};function A(U,D){var P=s(U,D);n(U=P[0],D=P[1])&&u.point(U,D)}function _(U,D){var P=s(U,D);c.point(P[0],P[1])}function x(){M.point=_,c.lineStart()}function T(){M.point=A,c.lineEnd()}function w(U,D){E.push([U,D]);var P=s(U,D);d.point(P[0],P[1])}function R(){d.lineStart(),E=[]}function B(){w(E[0][0],E[0][1]),d.lineEnd();var U=d.clean(),D=p.result(),P,ct=D.length,L,W,V;if(E.pop(),y.push(E),E=null,!!ct){if(U&1){if(W=D[0],(L=W.length-1)>0){for(g||(u.polygonStart(),g=!0),u.lineStart(),P=0;P<L;++P)u.point((V=W[P])[0],V[1]);u.lineEnd()}return}ct>1&&U&2&&D.push(D.pop().concat(D.shift())),v.push(D.filter(dQ))}}return M}}function dQ(n){return n.length>1}function gQ(n,t){return((n=n.x)[0]<0?n[1]-br-yn:br-n[1])-((t=t.x)[0]<0?t[1]-br-yn:br-t[1])}var mQ=jx(function(){return!0},yQ,_Q,[-Tn,-br]);function yQ(n){var t=NaN,e=NaN,i=NaN,s;return{lineStart:function(){n.lineStart(),s=1},point:function(u,c){var f=u>0?Tn:-Tn,p=nr(u-t);nr(p-Tn)<yn?(n.point(t,e=(e+c)/2>0?br:-br),n.point(i,e),n.lineEnd(),n.lineStart(),n.point(f,e),n.point(u,e),s=0):i!==f&&p>=Tn&&(nr(t-i)<yn&&(t-=i*yn),nr(u-f)<yn&&(u-=f*yn),e=vQ(t,e,u,c),n.point(i,e),n.lineEnd(),n.lineStart(),n.point(f,e),s=0),n.point(t=u,e=c),i=f},lineEnd:function(){n.lineEnd(),t=e=NaN},clean:function(){return 2-s}}}function vQ(n,t,e,i){var s,u,c=Me(n-e);return nr(c)>yn?Uo((Me(t)*(u=hn(i))*Me(e)-Me(i)*(s=hn(t))*Me(n))/(s*u*c)):(t+i)/2}function _Q(n,t,e,i){var s;if(n==null)s=e*br,i.point(-Tn,s),i.point(0,s),i.point(Tn,s),i.point(Tn,0),i.point(Tn,-s),i.point(0,-s),i.point(-Tn,-s),i.point(-Tn,0),i.point(-Tn,s);else if(nr(n[0]-t[0])>yn){var u=n[0]<t[0]?Tn:-Tn;s=e*u/2,i.point(-u,s),i.point(0,s),i.point(u,s)}else i.point(t[0],t[1])}function mg(n){return function(t){var e=new Kx;for(var i in n)e[i]=n[i];return e.stream=t,e}}function Kx(){}Kx.prototype={constructor:Kx,point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var i1t=hn(30*Fi);var v1t=mg({point:function(n,t){this.stream.point(n*Fi,t*Fi)}});function yg(n){return function(t,e){var i=hn(t),s=hn(e),u=n(i*s);return[u*s*Me(t),u*Me(e)]}}function ss(n){return function(t,e){var i=jr(t*t+e*e),s=n(i),u=Me(s),c=hn(s);return[Ui(t*u,i*c),Ci(i&&e*u/i)]}}var dO=yg(function(n){return jr(2/(1+n))});dO.invert=ss(function(n){return 2*Ci(n/2)});var gO=yg(function(n){return(n=qx(n))&&n/Me(n)});gO.invert=ss(function(n){return n});function Qx(n,t){return[n,zf(Gf((br+t)/2))]}Qx.invert=function(n,t){return[n,2*Uo(hg(t))-br]};function vg(n,t){return[n,t]}vg.invert=vg;function mO(n,t){var e=hn(t),i=hn(n)*e;return[e*Me(n)/i,Me(t)/i]}mO.invert=ss(Uo);function yO(n,t){var e=t*t,i=e*e;return[n*(.8707-.131979*e+i*(-.013791+i*(.003971*e-.001529*i))),t*(1.007226+e*(.015085+i*(-.044475+.028874*e-.005916*i)))]}yO.invert=function(n,t){var e=t,i=25,s;do{var u=e*e,c=u*u;e-=s=(e*(1.007226+u*(.015085+c*(-.044475+.028874*u-.005916*c)))-t)/(1.007226+u*(.015085*3+c*(-.044475*7+.028874*9*u-.005916*11*c)))}while(nr(s)>yn&&--i>0);return[n/(.8707+(u=e*e)*(-.131979+u*(-.013791+u*u*u*(.003971-.001529*u)))),e]};function vO(n,t){return[hn(t)*Me(n),Me(t)]}vO.invert=ss(Ci);function _O(n,t){var e=hn(t),i=1+hn(n)*e;return[e*Me(n)/i,Me(t)/i]}_O.invert=ss(function(n){return 2*Uo(n)});function xO(n,t){return[zf(Gf((br+t)/2)),-n]}xO.invert=function(n,t){return[-t,2*Uo(hg(n))-br]};var bQ=Qt(ec(),1);var AQ=Qt(ec(),1);var CQ=Qt(ec(),1);var IQ=Qt(ec(),1);function SO(n,t){let e=0,i=1/0,[s,u]=t;for(let c=0;c<n.length-1;c++){let[f,p]=n[c],[d,g]=n[c+1],y=Math.min(f,d)<=s&&s<=Math.max(f,d),v=Math.min(p,g)<=u&&u<=Math.max(p,g);if(y&&v){let E=Math.abs((d-f)*(u-p)-(g-p)*(s-f));E<i&&(i=E,e=c)}}return e}function wO(n,t){let e=n[0],i=n[1],s=!1;for(let u=0,c=t.length-1;u<t.length;c=u++){let f=t[u][0],p=t[u][1],d=t[c][0],g=t[c][1];p>i!=g>i&&e<(d-f)*(i-p)/(g-p)+f&&(s=!s)}return s}var NAt=Qt(ZO(),1),OAt=Qt(o_(),1);function aD(n){return n.replace(/[A-Z]/g,t=>"_"+t.toLowerCase()).replace(/^_/,"")}function uD(n){let t={};for(let i in n)i.startsWith("on")&&(t[aD(i.slice(2))]=n[i]);let e=i=>Ri(this,null,function*(){let{data:s}=i;if(t[s.type])try{let u=yield t[s.type](s.data);if(u!=null&&u.$transfer&&Array.isArray(u.$transfer)){let c=u.$transfer;delete u.$transfer,self.postMessage({type:""+s.type+"_result",key:s.key,data:u},c)}else self.postMessage({type:""+s.type+"_result",key:s.key,data:u})}catch(u){self.postMessage({type:""+s.type+"_result",key:s.key,error:u})}else self.postMessage({type:""+s.type+"_result",key:s.key,error:"no_event"})});return self.addEventListener("message",e),()=>{self.removeEventListener("message",e)}}var qAt=Qt(bD(),1),VAt=Qt(Bc(),1);function AD(n,t,e){e===void 0&&(e=0),n.forEach(i=>{if(i.geometry.coords=JSON.parse(JSON.stringify(i.geometry.cds)),i.geometry.type==="polygon"){var s;i.geometry.coords.map(u=>{Array.isArray(u)&&u.forEach(c=>{c[0]-=t[0],c[1]-=t[1]})}),i.geometry.otherCds&&(i.geometry.otherCoords=i.geometry.otherCds.map(u=>u.map(c=>ic(c,t)))),(s=i.doors)!=null&&s.length&&i.doors.map(u=>{u.coord=ic(u.coordinate,t)}),i.center&&(i.centerCoords=ic(i.center,t))}else i.geometry.coords=ic(i.geometry.cds,t),i.center&&(i.centerCoords=ic(i.center,t));if(i.center_x&&i.center_y){let[u,c]=ic([i.center_x,i.center_y],t);i.center_coord_x=u,i.center_coord_y=c}});for(let i=0;i<n.length;i++){let s=n[i];s.deltaHeight=1e-5*(e+i+1)}}function ic(n,t){return[n[0]-t[0],n[1]-t[1]]}var jAt=Qt(p0(),1),KAt=Qt(d0(),1),QAt=Qt(g0(),1),tTt=Qt(y0(),1),eTt=Qt(v0(),1),nTt=Qt(S0(),1),rTt=Qt(I0(),1),iTt=Qt(R0(),1),oTt=Qt(L0(),1),sTt=Qt(O0(),1),aTt=Qt(F0(),1),uTt=Qt(G0(),1),lTt=Qt(V0(),1),cTt=Qt(iy(),1),fTt=Qt(oy(),1),hTt=Qt(Sh(),1);function Eg(n,t=!1){let e=n[0].index!==null,i=new Set(Object.keys(n[0].attributes)),s=new Set(Object.keys(n[0].morphAttributes)),u={},c={},f=n[0].morphTargetsRelative,p=new ui,d=0;for(let g=0;g<n.length;++g){let y=n[g],v=0;if(e!==(y.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+g+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(let E in y.attributes){if(!i.has(E))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+g+'. All geometries must have compatible attributes; make sure "'+E+'" attribute exists among all geometries, or in none of them.'),null;u[E]===void 0&&(u[E]=[]),u[E].push(y.attributes[E]),v++}if(v!==i.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+g+". Make sure all geometries have the same number of attributes."),null;if(f!==y.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+g+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(let E in y.morphAttributes){if(!s.has(E))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+g+". .morphAttributes must be consistent throughout all geometries."),null;c[E]===void 0&&(c[E]=[]),c[E].push(y.morphAttributes[E])}if(t){let E;if(e)E=y.index.count;else if(y.attributes.position!==void 0)E=y.attributes.position.count;else return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+g+". The geometry must have either an index or a position attribute"),null;p.addGroup(d,E,g),d+=E}}if(e){let g=0,y=[];for(let v=0;v<n.length;++v){let E=n[v].index;for(let M=0;M<E.count;++M)y.push(E.getX(M)+g);g+=n[v].attributes.position.count}p.setIndex(y)}for(let g in u){let y=TD(u[g]);if(!y)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+g+" attribute."),null;p.setAttribute(g,y)}for(let g in c){let y=c[g][0].length;if(y===0)break;p.morphAttributes=p.morphAttributes||{},p.morphAttributes[g]=[];for(let v=0;v<y;++v){let E=[];for(let A=0;A<c[g].length;++A)E.push(c[g][A][v]);let M=TD(E);if(!M)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+g+" morphAttribute."),null;p.morphAttributes[g].push(M)}}return p}function TD(n){let t,e,i,s=-1,u=0;for(let d=0;d<n.length;++d){let g=n[d];if(t===void 0&&(t=g.array.constructor),t!==g.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(e===void 0&&(e=g.itemSize),e!==g.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(i===void 0&&(i=g.normalized),i!==g.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(s===-1&&(s=g.gpuType),s!==g.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;u+=g.count*e}let c=new t(u),f=new Yn(c,e,i),p=0;for(let d=0;d<n.length;++d){let g=n[d];if(g.isInterleavedBufferAttribute){let y=p/e;for(let v=0,E=g.count;v<E;v++)for(let M=0;M<e;M++){let A=g.getComponent(v,M);f.setComponent(v+y,M,A)}}else c.set(g.array,p);p+=g.count*e}return s!==void 0&&(f.gpuType=s),f}function CD(n,t,e){t===void 0&&(t=!0),e===void 0&&(e=!1);let i=n.filter(f=>f.geometry.type==="polygon");if(!i.length)return null;let s=i.map(f=>{var p;let d=f.geometry.coords,g=fd(d[0],d.slice(1)),y=new rd(g,{steps:1,bevelEnabled:!1,depth:f.height,curveSegments:4});(p=f).deltaHeight||(p.deltaHeight=0),y.translate(0,0,f.airHeight+f.deltaHeight);let v=y.attributes.position.count,E=new Float32Array(v).fill(f.height+f.airHeight+f.deltaHeight);if(y.setAttribute("maxZ",new Yn(E,1)),y.setAttribute("opacity",new Yn(new Float32Array(v).fill(f.fillOpacity),1)),e){let _=new Float32Array(v).fill(f.airHeight+f.deltaHeight);y.setAttribute("minZ",new Yn(_,1))}let M=new Te(f.fillColor).convertLinearToSRGB(),A=new Float32Array(v*3);for(let _=0;_<v;_++)A[_*3]=M.r,A[_*3+1]=M.g,A[_*3+2]=M.b;return y.setAttribute("color",new Yn(A,3)),y}),u=Eg(s);s.forEach(f=>f.dispose());let c={geometry:u};return u.dispose(),t&&(c.lineGeometry=c1(i)||void 0),c}function c1(n){let{points:t,colors:e,opacities:i}=Ktt(n);if(!t.length)return null;let s=new ui().setFromPoints(t);return s.setAttribute("color",new Yn(new Float32Array(e),3)),s.setAttribute("opacity",new Yn(new Float32Array(i),1)),s}function Ktt(n){let t=[],e=[],i=[];return n.filter(s=>s.strokeOpacity>0).map(s=>{let u=s.height+(s.deltaHeight||0)+s.airHeight,{coords:c}=s.geometry,{strokeColor:f,strokeOpacity:p}=s,d=new Te(f).convertLinearToSRGB();for(let g=0;g<c.length;g++){let y=c[g];for(let v=0;v<y.length;v++){let E=y[v],M=v+1===y.length?y[0]:y[v+1];t.push(new st(E[0],E[1],u)),t.push(new st(M[0],M[1],u)),e.push(d.r,d.g,d.b),e.push(d.r,d.g,d.b),i.push(p),i.push(p)}}}),{points:t,colors:e,opacities:i}}var Hf=function(n){return n.HALF="half",n.POWER="power",n.MECHANICAL="mechanical",n.NORMAL="normal",n.VIP="vip",n}({});var ID=new Ko,Sg=new st,wg=class extends sd{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";let t=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],e=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],i=[0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5];this.setIndex(i),this.setAttribute("position",new _r(t,3)),this.setAttribute("uv",new _r(e,2))}applyMatrix4(t){let e=this.attributes.instanceStart,i=this.attributes.instanceEnd;return e!==void 0&&(e.applyMatrix4(t),i.applyMatrix4(t),e.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}setPositions(t){let e;t instanceof Float32Array?e=t:Array.isArray(t)&&(e=new Float32Array(t));let i=new gf(e,6,1);return this.setAttribute("instanceStart",new ts(i,3,0)),this.setAttribute("instanceEnd",new ts(i,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(t){let e;t instanceof Float32Array?e=t:Array.isArray(t)&&(e=new Float32Array(t));let i=new gf(e,6,1);return this.setAttribute("instanceColorStart",new ts(i,3,0)),this.setAttribute("instanceColorEnd",new ts(i,3,3)),this}fromWireframeGeometry(t){return this.setPositions(t.attributes.position.array),this}fromEdgesGeometry(t){return this.setPositions(t.attributes.position.array),this}fromMesh(t){return this.fromWireframeGeometry(new od(t.geometry)),this}fromLineSegments(t){let e=t.geometry;return this.setPositions(e.attributes.position.array),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Ko);let t=this.attributes.instanceStart,e=this.attributes.instanceEnd;t!==void 0&&e!==void 0&&(this.boundingBox.setFromBufferAttribute(t),ID.setFromBufferAttribute(e),this.boundingBox.union(ID))}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new uu),this.boundingBox===null&&this.computeBoundingBox();let t=this.attributes.instanceStart,e=this.attributes.instanceEnd;if(t!==void 0&&e!==void 0){let i=this.boundingSphere.center;this.boundingBox.getCenter(i);let s=0;for(let u=0,c=t.count;u<c;u++)Sg.fromBufferAttribute(t,u),s=Math.max(s,i.distanceToSquared(Sg)),Sg.fromBufferAttribute(e,u),s=Math.max(s,i.distanceToSquared(Sg));this.boundingSphere.radius=Math.sqrt(s),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}}toJSON(){}applyMatrix(t){return console.warn("THREE.LineSegmentsGeometry: applyMatrix() has been renamed to applyMatrix4()."),this.applyMatrix4(t)}};var xTt=Qt(sD(),1);var Mg=function(n){return n.LAYERED_RENDER_VERSION="layeredRender",n.MERGED_RENDER_VERSION="mergedRender",n}({});var f1=["range","ground","store","facility","parkingSpace"];function PD(n){return f1.indexOf(n.l_type)===-1?f1.length:f1.indexOf(n.l_type)}function Qtt(n){n.layers.sort((t,e)=>PD(t)-PD(e))}function tet(n){let t=n.layers.find(i=>i.l_type==="range"),e=[t.elements[0].center_x,t.elements[0].center_y];n.layers.map(i=>{if(i.l_type!=="range")return AD(i.elements,e)})}function RD(n){Qtt(n),tet(n)}function bg(n,t){return t===void 0&&(t=4),n.floor_id+"_"+n.version_id+(t?"_"+t:"")}var oc=[],sc=[];function eet(n,t){return Ri(this,null,function*(){return yield rp(),fy(n,""+t)})}function LD(n,t,e){return Ri(this,null,function*(){let{db:i}=yield rp();return cC(n,""+t,e,i)})}function net(n){return Ri(this,null,function*(){let t=yield fetch(n.map_url).then(e=>e.json());return t.floor=n.floor,RD(t),oc.push(t),t})}function ret(n,t){return Ri(this,null,function*(){let e=bg(n,t===Mg.LAYERED_RENDER_VERSION?1:void 0);try{let i=yield eet(np.MAP_DATA,e);return i&&(t===Mg.LAYERED_RENDER_VERSION||i.transformed)?(console.log("\\u4ECE\\u7F13\\u5B58\\u4E2D\\u53D6\\u5230\\u4E86\\u6570\\u636E"),i):(console.log("\\u7F13\\u5B58\\u4E2D\\u6CA1\\u6709\\u6570\\u636E",e,i),sc.push(n),null)}catch(i){return console.log("[get floor data error]",i),sc.push(n),null}})}function iet(n,t){return t===void 0&&(t=!0),t&&(n.layers.forEach(e=>{switch(e.l_type){case"ground":if(e.elements.length<2)break;e.mergedElements=Wf(e.elements);break;case"store":h1(e.elements),e.mergedElements=Wf(e.elements);break;case"facility":h1(e.elements),e.mergedElements=Wf(e.elements);break;case"parkingSpace":e.mergedElements=oet(e.elements),e.mergedParkingTexture=uet(e.elements);break;case"graph":h1(e.elements),e.mergedElements=Wf(e.elements);break;case"wall":e.mergedElements=Wf(e.elements,!1,!0);break;case"lane":e.mergedElements=set(e.elements);break;case"texture2d":case"texture3d":e.mergedMatrixes=ND(e.elements);break;case"glb":case"text":}}),n.transformed=!0),n}function Wf(n,t,e){t===void 0&&(t=!0),e===void 0&&(e=!1);let i=CD(n,t,e);if(i){var s;return[xc({},n[0],{mergedGeometry:i.geometry.toJSON(),lineGeometry:((s=i.lineGeometry)==null?void 0:s.toJSON())||null})]}else return[]}function oet(n){let t=[],e=[],i=[],s=[];n.forEach((c,f)=>{let p=c.geometry.coords[0],[d,g,y]=p.slice(0,3),v=Math.sqrt((g[0]-d[0])**2+(g[1]-d[1])**2),E=Math.sqrt((y[0]-g[0])**2+(y[1]-g[1])**2),M=[v,E],A=Math.max(...M),_=Math.min(...M),x;A===v?x=[g[0]-d[0],g[1]-d[1]]:x=[y[0]-g[0],y[1]-g[1]];let[T,w]=x,R=Math.atan2(w,T)-Math.PI/2,B=new jn().compose(new st(c.center_coord_x,c.center_coord_y,(c.deltaHeight||0)+c.airHeight+c.height/2),new No().setFromAxisAngle(new st(0,0,1),R),new st(_,A,c.height));i.push(...B.toArray()),s.push(...new Te(c.fillColor).convertLinearToSRGB().toArray()),t[f]=c.fillOpacity||1,e[f]=(c.deltaHeight||0)+c.airHeight+c.height});let u=c1(n);return{size:n.length,opacities:t,maxZ:e,matrixes:i,colors:s,lineGeometry:(u==null?void 0:u.toJSON())||null}}function ND(n){let t=n.reduce((i,s)=>{let{iconUrl:u}=s;return i.has(u)||i.set(u,[]),i.get(u).push(s),i},new Map);return Array.from(t.values()).map(i=>{let s=i.map(c=>new jn().compose(new st(c.centerCoords[0],c.centerCoords[1],c.deltaHeight+c.airHeight+c.height),new No().setFromAxisAngle(new st(0,0,1),c.secondRotate),new st(c.secondWidth,c.secondHeight,1)).toArray());return xc({},i[0],{mergedMatrixes:{size:s.length,array:s.flat()}})})}function set(n){let t=n.map(u=>{let c=fd(u.geometry.coords[0].slice(0,-1),u.geometry.coords.slice(1)),f=new id(c,4),p=f.getAttribute("position"),d=[],g=new Te(u.fillColor);for(let v=0;v<p.count;v++){p.setZ(v,u.airHeight+(u.deltaHeight||0));var y;d.push(g.r,g.g,g.b,(y=u.fillOpacity)!=null?y:1)}return f.setAttribute("color",new Yn(new Float32Array(d),4)),f}),e=Eg(t);t.forEach(u=>u.dispose());let i={mergedGeometry:e.toJSON()};e.dispose();let s=n.filter(u=>{var c,f;return u.double&&((f=u.geometry.otherCoords)==null||(c=f[1])==null?void 0:c.length)});return s.length&&[!0,!1].forEach(u=>{let c=s.filter(g=>g.double===!0&&g.dashed===u);if(!c.length)return;let f=[],p=[];c.forEach(g=>{let y=g.geometry.otherCoords[1],v=g.airHeight+(g.deltaHeight||0)+.01,E=new Te(g.secondColor);for(let M=0;M<y.length-1;M++){let A=y[M],_=y[M+1];f.push(A[0],A[1],v,_[0],_[1],v),p.push(E.r,E.g,E.b,E.r,E.g,E.b)}});let d=new wg;d.setPositions(f),d.setColors(p),i[u?"dashedLineGeometry":"lineGeometry"]={positions:f,colors:p},d.dispose()}),i}var aet=new Set([Hf.HALF,Hf.MECHANICAL,Hf.POWER,Hf.VIP]);function uet(n){let t=n.filter(e=>aet.has(e.parkingType)).map(e=>{let i=new Ft(...e.geometry.coords[0][0]),s=new Ft(...e.geometry.coords[0][1]),u=new Ft(...e.geometry.coords[0][2]),c=Math.min(i.distanceTo(s),s.distanceTo(u)),f=0;return c===i.distanceTo(s)?f=s.sub(i).angle()-Math.PI/2:f=u.sub(s).angle()-Math.PI/2,{uuid:e.id,iconUrl:e.parkingType,name:e.texts[0],deltaHeight:(e.deltaHeight||0)+.001,airHeight:e.airHeight,height:e.height,geometry:e.geometry,opacity:e.fillOpacity,visible:!0,secondWidth:c-1,secondHeight:c-1,secondRotate:f,centerCoords:[e.center_coord_x,e.center_coord_y]}});return ND(t)}function h1(n){n.map(t=>{var e;if((e=t.doors)!=null&&e.length&&t.geometry.type==="polygon"){let i=t.geometry.coords[0];t.doors.forEach(s=>{let u=s.type==="single"?.5:1,c=.5,f=SO(i,s.coord),p=new Ft(...s.coord),d=new Ft(...i[f]).sub(new Ft(...s.coord)).normalize(),g=new Ft().addVectors(p,d.clone().multiplyScalar(u)),y=new Ft().addVectors(p,d.clone().multiplyScalar(-u)),v=new Ft(-d.y,d.x),E=new Ft().addVectors(g,v.clone().multiplyScalar(c));wO([E.x,E.y],i)||(v.multiplyScalar(-1),E=new Ft().addVectors(g,v.clone().multiplyScalar(c)));let M=new Ft().addVectors(y,v.clone().multiplyScalar(c)),A=[[g.x,g.y],[E.x,E.y],[M.x,M.y],[y.x,y.y]];i=[...i.slice(0,f+1),...A,...i.slice(f+1)]}),t.geometry.coords[0]=i}})}var p1="";function OD(n){let t=sc.findIndex(e=>e.floor===n);if(t!==-1){console.log("\\u8C03\\u6574\\u697C\\u5C42\\u8BF7\\u6C42\\u7684\\u4F18\\u5148\\u7EA7",n,t);let e=sc.splice(t,1)[0];sc.unshift(e)}else p1=n}var d1="";function DD(n){let t=oc.findIndex(e=>e.floor===n);if(t!==-1){console.log("\\u8C03\\u6574\\u697C\\u5C42merge\\u4F18\\u5148\\u7EA7",n,t);let e=oc.splice(t,1)[0];oc.unshift(e)}else d1=n}function cet(n){OD(n),DD(n)}uD({onLoad(n){return Ri(this,null,function*(){let{floors:t,version:e}=n;for(yield rp(),yield Promise.all(t.map(i=>Ri(this,null,function*(){return ret(i,e)}))),p1&&OD(p1),yield Promise.all(sc.map(i=>Ri(this,null,function*(){let s=yield net(i);if(s&&e===Mg.LAYERED_RENDER_VERSION){let u=bg(t.find(c=>c.floor===s.floor),1);yield LD(np.MAP_DATA,u,s),console.log(s.floor+" \\u5199\\u5165\\u7F13\\u5B58\\u6210\\u529F\\uFF0Ckey="+u),self.postMessage({type:"floor_success",data:{floor:s.floor}})}}))),d1&&DD(d1);oc.length>0;){let i=oc.shift(),s=iet(i),u=bg(t.find(c=>c.floor===i.floor));yield LD(np.MAP_DATA,u,s),console.log(i.floor+" \\u5199\\u5165\\u7F13\\u5B58\\u6210\\u529F\\uFF0Ckey="+u),self.postMessage({type:"floor_success",data:{floor:i.floor}})}fC(),console.log("\\u6240\\u6709\\u6570\\u636E\\u5904\\u7406\\u5B8C\\u6210")})},onAdjustFloorPriority(n){let{floor:t}=n;cet(t)}});
|
|
11814
|
-
`],{type:"text/javascript"}),t=URL.createObjectURL(r),e=new Worker(t);return URL.revokeObjectURL(t),e}var N4={mergeParkingSpace:!0,mergeGraphic:!0,renderVersion:bi.MERGED_RENDER_VERSION},Kr=class extends St{initDb(){return v(this,null,function*(){try{let{db:t}=yield Ga();this.db=t}catch(t){console.log("[\u6253\u5F00indexDb\u9519\u8BEF]",t)}})}load(t,e){return v(this,null,function*(){if(Array.isArray(t))this.floors=t,e&&(this.placeConfig=A({},this.placeConfig,e));else{let n=yield fetch(t).then(i=>i.json());n.code===200&&(this.floors=n.data.list,this.placeConfig=A({},this.placeConfig,JSON.parse(n.data.config||"{}")))}this.getOtherDataByFreeTime()})}setCacheData(t,e,n){return this.initDbPromise.then(()=>ka(t,""+e,n))}getCacheData(t,e){return this.initDbPromise.then(()=>Eo(t,""+e))}getFloorData(t){return v(this,null,function*(){let e=yield this.getFloorJsonData(t);return e?this.getDataByJson(e):null})}getFloorDataByFloorInfo(t){return v(this,null,function*(){let e=yield this.getFloorJsonDataByFloorInfo(t);return this.getDataByJson(e)})}setLocale(t){this.locale=t,this.bmap.context.currentFloor&&this.bmap.context.currentFloor.poiLayer2.pois.forEach(e=>{e.userData.type==="store"&&(e.options.text=Du(e.userData.data,t)),e.userData.type==="facility"&&(e.options.text=Wu(e.userData.data,t))})}getFloorJsonDataByFloorInfo(t){return v(this,null,function*(){if(this.getFloorDataPromise.has(t.floor))return this.getFloorDataPromise.get(t.floor);let e=new Promise(n=>v(this,null,function*(){let i=xi(t),o=yield fetch(t.map_url).then(s=>s.json());o.floor=t.floor,Cu(o),this.setCacheData(kt.MAP_DATA,i,o),this.setCacheData(kt.MAP_VERSION,i,t.version_id),n(o)}));return this.getFloorDataPromise.set(t.floor,e),e})}getFloorJsonData(t){return v(this,null,function*(){let e=this.floors.find(n=>n.floor===t);return e?new Promise(n=>v(this,null,function*(){let i=xi(e,this.options.renderVersion===bi.LAYERED_RENDER_VERSION?1:void 0);try{let o=xi(e),s=yield this.getCacheData(kt.MAP_DATA,o);if(s&&s.transformed){console.log("\u4ECE\u7F13\u5B58\u4E2D\u53D6\u5230\u4E86\u5408\u5E76\u540E\u7684\u6570\u636E"),n(s);return}if(this.options.renderVersion===bi.LAYERED_RENDER_VERSION){let a=yield this.getCacheData(kt.MAP_DATA,i);if(a){console.log("\u4ECE\u7F13\u5B58\u4E2D\u53D6\u5230\u4E86\u6570\u636E"),n(a);return}}if(console.log("\u7F13\u5B58\u4E2D\u6CA1\u6709\u6570\u636E"),this.loadWorker){at(this.loadWorker,"adjust_floor_priority",{floor:t});let a=u=>{if(u.data.type==="floor_success"&&u.data.data.floor===t){var l;(l=this.loadWorker)==null||l.removeEventListener("message",a),n(this.getFloorJsonData(t))}};this.loadWorker.addEventListener("message",a)}else n(this.getFloorJsonDataByFloorInfo(e))}catch(o){console.log("[get floor data error]",o),n(this.getFloorJsonDataByFloorInfo(e))}})):null})}getRoadNetworkData(){return v(this,null,function*(){return(yield Promise.all(this.floors.map(e=>v(this,null,function*(){let n=xi(e,0);try{let i=yield this.getCacheData(kt.ROAD_NETWORK_DATA,n);if(i)return i;let o=yield fetch(e.route_url).then(s=>s.json());return this.setCacheData(kt.ROAD_NETWORK_DATA,n,o),this.setCacheData(kt.ROUTE_VERSION,n,e.version_id),o}catch(i){let o=yield fetch(e.route_url).then(s=>s.json());return this.setCacheData(kt.ROAD_NETWORK_DATA,n,o),o}})))).filter(e=>e.points)})}getFacilitiesData(){return v(this,null,function*(){let t=this.floors.reduce((i,o)=>i.updated_at>o.updated_at?i:o,this.floors[0]);if(!t)return null;let e=xi(t,0),n=()=>v(this,null,function*(){let i=yield fetch(t.entry_infra_url).then(o=>o.json());return i&&(this.setCacheData(kt.FACILITY_DATA,e,i),this.setCacheData(kt.FACILITY_VERSION,e,t.version_id)),i});try{let i=yield this.getCacheData(kt.FACILITY_DATA,e);return i||n()}catch(i){return console.log("[get facility error]",i),n()}})}getOtherDataByFreeTime(){return v(this,null,function*(){yield this.initDbPromise,yield at(this.loadWorker,"load",{floors:this.floors,version:this.options.renderVersion}),this.closeWorker()})}getMulFloorsData(t){return v(this,null,function*(){return Promise.all(t.map(e=>this.getFloorData(e))).then(e=>e.filter(n=>n))})}getDataByUrl(t){return v(this,null,function*(){let e=yield fetch(t).then(n=>n.json());return this.getDataByJson(e)})}getDataByJson(t,e,n){return v(this,null,function*(){Cu(t),e=this.getFloorBaseLayer(t,e);let i=A({},this.placeConfig,n);return yield this.getFloorContentLayer(t,e),yield this.getFloorPoi(t,e,i),this.changeFloorBox(t,e),e})}changeFloorBox(t,e){e.updateBox();let n=e.box.getSize(new Yu.Vector3),i=Math.max(n.x,n.y,n.z);e.userData.height=i/4+t.floorHeight}switchFloor(t,e){return v(this,null,function*(){return new Promise(n=>{let i={run:()=>this._switchFloor(t,e),meta:{type:"switchFloor"}},o=this.taskQueue.replaceByMetaType(i),s=a=>{let{task:u,res:l}=a;u.tid===o&&(this.taskQueue.removeEventListener("active-task-end",s),n(l))};this.taskQueue.addEventListener("active-task-end",s)})})}_switchFloor(t,e){return v(this,null,function*(){var n;let i=t;if(typeof t=="string"){let c=yield this.getFloorJsonData(t);if(c)i=c;else return null}else Cu(t);let o=A({},this.placeConfig,e),s=new ce(this.bmap.context);s.userData.data=t;let a=this.floors.find(c=>c.floor===i.floor);var u;let l=(u=a==null?void 0:a.map_angle)!=null?u:0;return this.bmap.dispatchEvent({type:It.SWITCH_FLOOR_BEFORE,data:{curFloor:s,graphics:[]}}),this.dispatchEvent({type:"switch-floor-before",data:{curFloor:s,graphics:[],floorData:i}}),this.bmap.context.scene.background=new Yu.Color(o.backgroundColor),this.getFloorBaseLayer(i,s),this.changeFloorBox(i,s),this.bmap.buildingCenter=s.userData.center,this.bmap.currentBuildGround=(n=s.userData.data.layers.find(c=>c.l_type==="range"))==null?void 0:n.elements[0],this.bmap.context.switchFloor(s),this.bmap.initialFloorCamera(),this.bmap.context.control.setAzimuthalAngle(l/180*Math.PI,!0),this.bmap.context.cameraBound.updateBox(),this.dispatchEvent({type:"switch-floor-ground",data:{curFloor:s,graphics:[]}}),this.bmap.dispatchEvent({type:It.SWITCH_FLOOR_GROUND,data:{curFloor:s}}),yield aa(),yield this.getFloorContentLayer(i,s),this.changeFloorBox(i,s),this.bmap.context.cameraBound.updateBox(),this.dispatchEvent({type:"switch-floor-content",data:{curFloor:s,graphics:[]}}),yield vl(2),yield this.getFloorPoi(i,s,o),this.dispatchEvent({type:"switch-floor-after",data:{curFloor:s,graphics:s.graphicLayer.children}}),this.bmap.dispatchEvent({type:It.SWITCH_FLOOR_AFTER,data:{curFloor:s,graphics:s.graphicLayer.children}}),s})}getFloorBaseLayer(t,e){e||(e=new ce(this.bmap.context));let n=[0,0];return t.layers.forEach(i=>{switch(i.l_type){case"range":let o=i.elements[0];n=[o.center_x,o.center_y],e.userData.range=o.geometry.cds[0],e.userData.rangeGraphic=o;break;case"ground":lp(i,e);break;default:break}}),e.userData.center=n,e.name=t.floor,e.userData.data=t,e}getFloorContentLayer(t,e){return v(this,null,function*(){e||(e=new ce(this.bmap.context)),e.userData.graphics=[],e.userData.graphicMap=new Map;let n=Date.now();for(let i=0;i<t.layers.length;i++){let o=t.layers[i];["range","ground"].includes(o.l_type)||(tS(o,e,this.options),console.log("time",Date.now()-n,o.l_type),n=Date.now())}return e})}getFloorPoi(t,e,n){return v(this,null,function*(){n===void 0&&(n=this.placeConfig);let i=Date.now();yield Promise.all(t.layers.map(s=>eS(s,e,this.locale,n))),console.log("poi time",Date.now()-i);let o=Date.now();aa().then(()=>{console.log("poi render time",Date.now()-o)})})}clear(){return v(this,null,function*(){y_(),this.db=null})}closeWorker(){this.loadWorker&&(this.loadWorker.terminate(),this.loadWorker=null)}dispose(){super.dispose(),this.clear(),this.closeWorker(),this.getFloorDataPromise.clear()}constructor(t,e={}){super(),this.bmap=t,this.floors=[],this.initDbPromise=Promise.resolve(),this.db=null,this.taskQueue=new Dr,this.loadWorker=cp(),this.locale="zh-cn",this.placeConfig={backgroundColor:"#f1f7f6",showFacilityName:!0,showStoreName:!0,textFontSize:14},this.getFloorDataPromise=new Map,this.options=A({},N4,e),this.placeConfig=A({},this.placeConfig,t.config.loaderPlaceConfig),this.initDbPromise=this.initDb()}};var iQ=f(I(),1);function hp(r,t){return v(this,null,function*(){let{brand:e,project:n}=r,{apiDomain:i,apiPath:{floorRange:o},apiInfo:s}=t,a=""+i+o+"?brand="+e+"&project="+n+"&phase="+n+"&building="+n;return yield fetch(a,s).then(l=>l.json()).then(l=>l.data).then(l=>{let c=(l||[])[0];return c&&(c.info=JSON.parse(c.info)),c})})}function pp(r,t){return v(this,null,function*(){let{brand:e,project:n,floor:i,ts:o,resource_type_list:s}=r,{apiDomain:a,apiPath:{floorGraphic:u},apiInfo:l}=t,c=""+a+u+"?brand="+e+"&project="+n+"&phase="+n+"&building="+n+"&floor="+i+"&ts="+o+"&resource_type_list="+s;return yield fetch(c,l).then(p=>p.json()).then(p=>p.data).then(p=>((p||[]).map(d=>d.info=JSON.parse(d.info)),p||[]))})}function F4(r,t){return v(this,null,function*(){let{project:e,floor:n}=r,{apiDomain:i,apiInfo:o}=t,s=i+"/api/inception-map/external_street/get?projectCode="+e+"&floorCode="+n;return yield fetch(s,o).then(u=>u.json()).then(u=>u.data).then(u=>JSON.parse(u[0].streetInfo||"{}")).then(u=>u.fileId?Z4(u.fileId,t):null)})}function Z4(r,t){return v(this,null,function*(){let{apiDomain:e,apiInfo:n}=t;return fetch(e+"/api/inception-map/file/getFileStream?fileId="+r,n).then(i=>i.arrayBuffer()).then(i=>{let s=new TextDecoder("utf-8").decode(i);return s?JSON.parse(s):null})})}var fp=class{load(t){return v(this,null,function*(){let e=jr(t);if(this.cacheData.has(e))return this.cacheData.get(e);let[,n]=yield Promise.all([this.loadBuildGround(t),pp(t,this.bmap.config)]),i=jr({floor:t.floor,ts:t.ts});fo(n.map(s=>s.info),this.bmap.buildingCenter,this.floorDataLengthMap.get(i)||0),n.forEach(s=>s.info.transformToBuildingGround=!1),this.cacheData.set(e,n);let o=this.floorDataLengthMap.get(i)||0;return this.floorDataLengthMap.set(i,o+n.length),this.loadExternalStreet(t),n})}loadExternalStreet(t){return v(this,null,function*(){})}switchFloorByData(t,e){if(!t.length)return;let n=e.userData.legacyToGraphicMap||new Map,i=e.userData.graphicMap||new Map,{ground:o,markGraphic:s,graphic:a}=this.bmap.config;for(let u=0;u<t.length;u++){let l=t[u];l.info.group==="ground"?(l.info.fillColor=o.color,l.info.fillOpacity=o.opacity,l.info.height=o.height,l.info.stroke=o.stroke,l.info.strokeColor=o.strokeColor,l.info.strokeOpacity=o.strokeOpacity):l.info.userData.mark?(l.info.height=s.height,l.info.fillColor=s.color,l.info.fillOpacity=s.opacity,l.info.stroke=s.stroke,l.info.strokeColor=s.strokeColor,l.info.strokeOpacity=s.strokeOpacity):(l.info.fillOpacity=a.fillOpacity,this.bmap.config.initTransToMark&&(l.info.height=s.height,l.info.fillColor=s.color,l.info.stroke=s.stroke,l.info.strokeColor=s.strokeColor,l.info.strokeOpacity=s.strokeOpacity))}for(let u of t){if(u.info.group==="ground")e.createGround(u.info);else{let l=e.addGraphic(u.info);l.userData.data=u,n.set(u.legacy_id,l)}i.set(u.element_uuid,u)}e.userData.legacyToGraphicMap=n,e.userData.graphicMap=i,e.updateBox(),e===this.bmap.context.currentFloor?(this.bmap.triggerHooks(It.SWITCH_FLOOR_BEFORE,{curFloor:e,graphics:e.graphicLayer.children}),this.bmap.initialFloorCamera(),this.bmap.triggerHooks(It.SWITCH_FLOOR_AFTER,{curFloor:e,graphics:e.graphicLayer.children})):this.bmap.switchFloorByFloor(e)}filterData(t,e){let n=e.userData.graphicMap||new Map;return t.filter(i=>!n.has(i.element_uuid))}switchFloorByStoreData(t,e){return v(this,null,function*(){let n=yield this.load(A({},t,{resource_type_list:"6"})),i=this.filterData(n,e);this.switchFloorByData(i,e)})}switchFloorByOtherData(t,e){return v(this,null,function*(){let n=yield this.load(A({},t,{resource_type_list:"1,2,3,4"})),i=this.filterData(n,e);this.switchFloorByData(i,e)})}loadBuildGround(t){return v(this,null,function*(){let{brand:e,project:n}=t,i=yield this.loadBuildingGround({brand:e,project:n});return this.bmap.currentBuildGround=i,this.bmap.changeBuildingCenter(i,{brand:e,project:n}),this.bmap.currentBuildGround})}loadBuildingGround(t){return v(this,null,function*(){let{brand:e,project:n}=t,i=jr({brand:e,project:n});if(this.buildingGroundMap.has(i))return this.buildingGroundMap.get(i);let o=hp({brand:e,project:n},this.bmap.config).then(s=>(this.buildingGroundMap.set(i,s),s));return this.buildingGroundMap.set(i,o),o})}switchFloor(t){return v(this,null,function*(){let e=new ce(this.bmap.context);e.userData.graphicMap=new Map,e.name=t.floor;try{yield Promise.all([this.switchFloorByStoreData(t,e),this.switchFloorByOtherData(t,e)])}catch(n){console.log(n)}return e})}dispose(){this.cacheData.clear(),this.floorDataLengthMap.clear(),this.buildingGroundMap.clear()}constructor(t){this.bmap=t,this.cacheData=new Map,this.floorDataLengthMap=new Map,this.buildingGroundMap=new Map,this.externalStreetMap=new Map}};var U4=function(r){return r[r.D2=0]="D2",r[r.D3=1.1]="D3",r}({}),dp=class extends de.EventDispatcher{get basicZoom(){return this.context.basicZoom}set basicZoom(t){this.context.basicZoom=t}changeBuildingCenter(t,e){let{brand:n,project:i}=e,o=t?so(t.info.geometry.cds[0]):[0,0];this.buildingCenter=o,this.dispatchEvent({type:"center-change",center:o,project:i,brand:n})}use(t){t.bmap=this,this.plugins.push(t)}unUse(t){this.plugins=this.plugins.filter(e=>e!==t)}triggerHooks(t,e){this.dispatchEvent({type:t,data:e})}switchFloor(t){return v(this,null,function*(){return this.loader||(this.loader=new Kr(this),this.loader.placeConfig=A({},this.loader.placeConfig,this.config.loaderPlaceConfig),yield this.loader.load(this.config.apiPath.loadPlaceInfo+"?place_id="+this.config.placeId+"&env=prod")),this.loader.switchFloor(t)})}switchFloorByFloor(t,e,n){e===void 0&&(e=!0),n===void 0&&(n=t.graphicLayer.children),this.triggerHooks(It.SWITCH_FLOOR_BEFORE,{curFloor:t,graphics:n}),this.buildingCenter=t.userData.center,this.currentBuildGround=t.userData.rangeGraphic,this.context.switchFloor(t,e),this.initialFloorCamera(),this.triggerHooks(It.SWITCH_FLOOR_AFTER,{curFloor:t,graphics:n})}initialFloorCamera(){this.context.cameraBound.setEnable(!1),this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,0),this.context.setPolarAngle(this.config.control.defaultPolar,0),this.context.fitCameraToGround(this.config.defaultPadding,0);let t=this.context.camera.zoom;this.context.control.minZoom=t,this.context.control.maxZoom=t*this.config.control.maxZoomScale,this.type==="3d"&&this.context.fitCameraToGround(this.config.defaultPadding,0,!1),this.basicZoom=this.context.camera.zoom,this.context.control.addEventListener("change",this.onControlChange),this.onControlChange(),this.context.cameraBound.setEnable(!0),this.context.cameraBound.changePrevCamera()}addModel(t,e){if(t.options.geometry.type==="polygon"){var n;let i=(n=this.context.currentFloor)==null?void 0:n.addModel(A({},e,{position:t.getPosition().setZ(.1),id:t.options.id}));if(i){let{facilityAngle:o=0,facilityXScale:s=1,facilityYScale:a=1}=t.options.userData;i.rotateZ((180-o)/180*Math.PI),i.scale.set(s,a,1)}}}addHeatmap(t){var e;return(e=this.context.currentFloor)==null?void 0:e.addHeatmap(t)}getLegacyToGraphicMap(){var t;return((t=this.context.currentFloor)==null?void 0:t.userData.legacyToGraphicMap)||new Map}getFloorAllGraphics(){var t;return((t=this.context.currentFloor)==null?void 0:t.graphicLayer.children.filter(e=>e instanceof vt))||[]}createGraphicPoi(t,e){if(this.context.currentFloor){e.id===void 0&&(e.id=t.options.id);let n=t.options.center,i=t.getCenter(),o=(n==null?void 0:n[0])||i.x,s=(n==null?void 0:n[1])||i.y;return console.log(o,s,n,i),this.context.currentFloor.addPoi(A({},e,{position:{x:o,y:s,z:i.z+t.options.height/2}}))}return null}createPoi2ByPosition(t,e){if(this.context.currentFloor){let n=this.mercatorToWorld([t.x,t.y]),i=new pt(this.context,A({},e,{position:{x:n.x,y:n.y,z:t.z}}));return this.context.currentFloor.poiLayer2.pushPoi(i),i}return null}removeHeatMap(){var t;(t=this.context.currentFloor)==null||t.removeHeatMap()}translateElementToCenter(t,e,n,i){e===void 0&&(e=500),n===void 0&&(n=0),i===void 0&&(i=0);let o=t.getPosition().clone(),{context:{camera:s}}=this;if(s.updateMatrix(),i){let a=new de.Vector3;a.setFromMatrixColumn(s.matrix,1),a.normalize(),a.multiplyScalar(i/s.zoom),o.add(a)}if(n){let a=new de.Vector3;a.setFromMatrixColumn(s.matrix,0),a.normalize(),a.multiplyScalar(n/s.zoom),o.add(a)}return this.context.setCameraPosition(o,e)}translateElementToCenterX(t,e){return v(this,null,function*(){return e===void 0&&(e=500),ue(new Promise(n=>{let i=this.context.control.target.clone(),o=t.getPosition();this.timer.requestAnimationFrame(()=>{let{clientSize:{width:s,height:a},camera:u}=this.context,c=X(o,u,s,a).x-s/2,h=new de.Vector3;h.setFromMatrixColumn(this.context.camera.matrix,0),h.normalize(),h.multiplyScalar(c/this.context.camera.zoom),i.add(h),this.context.setCameraPosition(i,e).then(n)})}),e+500)})}getElementDeviceCoordinate(t){let e=t.position.clone(),{clientWidth:n,clientHeight:i}=this.container;return X(e,this.context.camera,n,i)}changeMapType(t,e){return e===void 0&&(e=500),this.type=t,t==="2d"?this.context.setPolarAngle(0,e):this.context.setPolarAngle(1.1,e)}resetView(t){return v(this,null,function*(){t===void 0&&(t=300);let e=t/3;yield this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,e),yield this.context.setPolarAngle(this.config.control.defaultPolar,e),yield this.context.fitCameraToGround(this.config.defaultPadding,e,!1)})}reduceMap(t,e){t===void 0&&(t=.5),e===void 0&&(e=500);let n=this.context.camera.zoom;return this.context.setZoom(n-t,this.context.control.target,e)}enlargeMap(t,e){t===void 0&&(t=.5),e===void 0&&(e=500);let n=this.context.camera.zoom;return this.context.setZoom(n+t,this.context.control.target,e)}registryEvent(){if(window.addEventListener("keydown",this.onKeydown),window.addEventListener("keyup",this.onKeyUp),this.config.resizeObserver){let t=new ResizeObserver(this.debounceResize);t.observe(this.container),this.observe=t}}unRegistryEvent(){var t;this.context.control.removeEventListener("change",this.onControlChange),window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("keyup",this.onKeyUp),(t=this.observe)==null||t.disconnect(),this.observe=null}configurePolarShortcutKeys(t){this.polarKeys=t}configureAzimuthalShortcutKeys(t){this.azimuthalKeys=t}rotateMap(t,e){t===void 0&&(t=.1),e===void 0&&(e=500);let n=this.context.control.getAzimuthalAngle();return this.context.setAzimuthalAngle(n+t,e)}measureDistance(){return v(this,null,function*(){return this.cancelDistance(),new Promise((t,e)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgLine=new ts(this.context);let n=this.svgLine.dispose.bind(this.svgLine);this.svgLine.dispose=function(){n(),e("cancel")},this.svgLine.addEventListener("distance",i=>{let{distance:o}=i;t(o)})})})}cancelDistance(){this.svgLine&&(this.svgLine.dispose(),this.svgLine=void 0,this.context.control.enableRotate=!0)}measureArea(){return this.cancelArea(),new Promise((t,e)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgPolygon=new es(this.context);let n=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){n(),e("cancel")},this.svgPolygon.addEventListener("area",i=>{let{area:o}=i;t(o)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}fitCameraByPois(t,e,n){return v(this,null,function*(){if(e===void 0&&(e=[20,20,20,20]),n===void 0&&(n=500),!t.length)return;let i=new de.Box3;return t.forEach(o=>{let{position:s}=o;i.expandByPoint(s)}),this.context.fitCameraToBox(i,e,n,!1)})}fitCameraByPoiNodeIds(t,e,n){return v(this,null,function*(){e===void 0&&(e=[20,20,20,20]),n===void 0&&(n=500);let i=t.map(o=>this.getPoiById(o)).filter(o=>!!o);if(i.length)return this.fitCameraByPois(i,e,n)})}getGraphicByNodeId(t){var e,n;return((e=this.context.currentFloor)==null?void 0:e.graphicLayer.getGraphicByNodeId(t))||((n=this.context.currentFloor)==null?void 0:n.parkingSpaceLayer.graphicMap.get(t))||null}deleteGraphic(t){var e;(e=this.context.currentFloor)==null||e.graphicLayer.removeGraphic(t)}createGraphicByOptions(t){var e;if(!t.transformToBuildingGround&&this.currentBuildGround){let n=so(this.currentBuildGround.info.geometry.cds[0]);if(t.geometry.type==="polygon")t.geometry.coords=JSON.parse(JSON.stringify(t.geometry.cds)),t.geometry.coords.map(i=>{Array.isArray(i)&&i.forEach(o=>{o[0]-=n[0],o[1]-=n[1]})});else{let[i,o]=t.geometry.cds;t.geometry.coords=[i-n[0],o-n[1]]}}return(e=this.context.currentFloor)==null?void 0:e.graphicLayer.createGraphic(t)}mercatorToWorld(t){let e=this.buildingCenter;return new de.Vector3(t[0]-e[0],t[1]-e[1],0)}removePoiById(t){var e,n;(e=this.context.currentFloor)==null||e.poiLayer.removePoiById(t),(n=this.context.currentFloor)==null||n.poiLayer2.removePoiById(t)}getPoiById(t){var e,n;return((e=this.context.currentFloor)==null?void 0:e.poiLayer.getPoiById(t))||((n=this.context.currentFloor)==null?void 0:n.poiLayer2.getPoiById(t))}getPois(){var t,e;return[...(((t=this.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).filter(n=>!n.options.built_in),...((e=this.context.currentFloor)==null?void 0:e.poiLayer2.pois)||[]]}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}dispose(){this.loader&&(this.loader.dispose(),this.loader=null),this.unRegistryEvent(),this.timer.dispose(),this.plugins.forEach(t=>t.dispose()),this.plugins=[],this.context.dispose(),this.context=null,this.container=null,ht.dispose(),Tt.dispose(),$n.dispose(),Zt.dispose(),N.dispose(),Be.dispose(),this.debounceResize=null,de.Sprite.Dispose==null||de.Sprite.Dispose.call(de.Sprite)}constructor(t,e={}){super(),this.container=t,this.polarKeys=[],this.azimuthalKeys=[],this.prevCameraZoom=1,this.type="2d",this.currentBuildGround=null,this.observe=null,this.buildingCenter=[0,0],this.timer=new it,this.plugins=[],this.loader=null,this.onControlChange=()=>{let{camera:{zoom:n}}=this.context;n!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=n)},this.onKeydown=n=>{this.polarKeys.includes(n.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(n.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)},this.onKeyUp=n=>{if(this.polarKeys.includes(n.code)){let i=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=i,this.context.control.minPolarAngle=i}if(this.azimuthalKeys.includes(n.code)){let i=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=i,this.context.control.minAzimuthAngle=i}},this.resize=()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let n=this.context.control.getAzimuthalAngle(),i=this.context.camera.zoom;this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(0,0);let o=this.context.getFitCameraToGroundZoom(this.config.defaultPadding,0)||1;this.context.camera.zoom=i,this.context.control.minZoom=o,this.context.control.maxZoom=o*this.config.control.maxZoomScale,this.basicZoom=i,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(n,0),this.context.cameraBound.setEnable(!0)},this.config=ap(e),this.context=new cs(t,this),this.debounceResize=(0,nS.debounce)(this.resize,5),this.registryEvent()}};var z4=function(r){return r.HALF="half",r.POWER="power",r.MECHANICAL="mechanical",r.NORMAL="normal",r.VIP="vip",r}({});var bQ=f(I(),1);var rS=require("three"),Pt=class extends rS.EventDispatcher{dispose(){let t=this.bmap.plugins.findIndex(e=>e===this);t!==-1&&this.bmap.plugins.splice(t,1),this.bmap=null}constructor(t){super(),this.bmap=t,this.bmap.use(this)}};var mp=class extends Pt{fetchEquipment(){return v(this,null,function*(){let{apiDomain:t,apiPath:{equipmentList:e},apiInfo:n}=this.bmap.config,i=""+t+e;yield fetch(i,n).then(o=>o.json()).then(o=>o.data).then(o=>{this.equipmentList=o,this.equipmentMap=new Map(o.map(s=>[s.equipment_id,s]))}),this.dispatchEvent({type:"change-equipment-list",data:this.equipmentList}),this.bmap.context.currentFloor&&this.changeGraphicToEquipment(this.bmap.context.currentFloor.graphicLayer.children)})}getGraphicEquipment(t){return t.userData.data.info.userData.equipment}changeGraphicToEquipment(t){t.filter(e=>{let n=this.getGraphicEquipment(e);return n&&this.equipmentMap.has(n)}).forEach(e=>{let n=this.equipmentMap.get(this.getGraphicEquipment(e)),i=this.bmap.createGraphicPoi(e,{icon:n==null?void 0:n.equipment_icon,built_in:!0,icon_size:[14,14]});i&&(i.userData.data=n,i.userData.type="equipment")})}dispose(){var t;this.bmap.removeEventListener(It.SWITCH_FLOOR_AFTER,this.onSwitchFloor),Array.from(((t=this.bmap.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).forEach(e=>{if(e.userData.type==="equipment"){var n;(n=this.bmap.context.currentFloor)==null||n.poiLayer.removePoi(e)}}),super.dispose()}constructor(t){super(t),this.equipmentList=[],this.equipmentMap=new Map,this.onSwitchFloor=e=>{let{data:{graphics:n}}=e;this.equipmentList.length&&this.changeGraphicToEquipment(n)},this.fetchEquipment(),this.bmap.addEventListener(It.SWITCH_FLOOR_AFTER,this.onSwitchFloor)}};var jq=f(co(),1),Eq=f(ae(),1),Iq=f(I(),1),Dq=f(ip(),1);var BQ=f(I(),1),JQ=f(Z(),1),wt=require("three");var IQ=f(Yr(),1),DQ=f(_n(),1),WQ=f(An(),1),CQ=f(Sn(),1),YQ=f(Tn(),1),RQ=f(bn(),1),OQ=f(xn(),1),XQ=f(wn(),1),NQ=f(jn(),1),FQ=f(En(),1),ZQ=f(In(),1),UQ=f(Dn(),1),zQ=f(Wn(),1),KQ=f(Cn(),1),LQ=f(Yn(),1),GQ=f(Z(),1),kQ=f(kh(),1),D=require("three"),me=class extends D.BufferGeometry{constructor(){super(),this.isMeshLine=!0,this.type="MeshLine",this.positions=[],this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[],this.counters=[],this._points=[],this._geom=null,this.widthCallback=null,this.matrixWorld=new D.Matrix4,Object.defineProperties(this,{geometry:{enumerable:!0,get:function(){return this}},geom:{enumerable:!0,get:function(){return this._geom},set:function(t){this.setGeometry(t,this.widthCallback)}},points:{enumerable:!0,get:function(){return this._points},set:function(t){this.setPoints(t,this.widthCallback)}}})}};me.prototype.setMatrixWorld=function(r){this.matrixWorld=r};me.prototype.setGeometry=function(r,t){this._geometry=r,this.setPoints(r.getAttribute("position").array,t)};me.prototype.setPoints=function(r,t){if(!(r instanceof Float32Array)&&!(r instanceof Array)){console.error("ERROR: The BufferArray of points is not instancied correctly.");return}if(this._points=r,this.widthCallback=t,this.positions=[],this.counters=[],r.length&&r[0]instanceof D.Vector3)for(var e=0;e<r.length;e++){var n=r[e],i=e/r.length;this.positions.push(n.x,n.y,n.z),this.positions.push(n.x,n.y,n.z),this.counters.push(i),this.counters.push(i)}else for(var e=0;e<r.length;e+=3){var i=e/r.length;this.positions.push(r[e],r[e+1],r[e+2]),this.positions.push(r[e],r[e+1],r[e+2]),this.counters.push(i),this.counters.push(i)}this.process()};function K4(r,t){var e=new D.Matrix4,n=new D.Ray,i=new D.Sphere,o=new D.Vector3,s=this.geometry;if(s.boundingSphere||s.computeBoundingSphere(),i.copy(s.boundingSphere),i.applyMatrix4(this.matrixWorld),r.ray.intersectSphere(i,o)!==!1){e.copy(this.matrixWorld).invert(),n.copy(r.ray).applyMatrix4(e);var a=new D.Vector3,u=new D.Vector3,l=new D.Vector3,c=this instanceof D.LineSegments?2:1,h=s.index,p=s.attributes;if(h!==null)for(var d=h.array,m=p.position.array,y=p.width.array,M=0,_=d.length-1;M<_;M+=c){var S=d[M],b=d[M+1];a.fromArray(m,S*3),u.fromArray(m,b*3);var W=y[Math.floor(M/3)]!==void 0?y[Math.floor(M/3)]:1,R=r.params.Line.threshold+this.material.lineWidth*W/2,F=R*R,x=n.distanceSqToSegment(a,u,o,l);if(!(x>F)){o.applyMatrix4(this.matrixWorld);var O=r.ray.origin.distanceTo(o);O<r.near||O>r.far||(t.push({distance:O,point:l.clone().applyMatrix4(this.matrixWorld),index:M,face:null,faceIndex:null,object:this}),M=_)}}}}me.prototype.raycast=K4;me.prototype.compareV3=function(r,t){var e=r*6,n=t*6;return this.positions[e]===this.positions[n]&&this.positions[e+1]===this.positions[n+1]&&this.positions[e+2]===this.positions[n+2]};me.prototype.copyV3=function(r){var t=r*6;return[this.positions[t],this.positions[t+1],this.positions[t+2]]};me.prototype.getDistance=function(r){let t=0;for(let e=0;e<r;e++){let n=6*e,i=new D.Vector3(this.positions[n],this.positions[n+1],this.positions[n+2]),o=new D.Vector3(this.positions[n+6],this.positions[n+7],this.positions[n+8]),s=i.distanceTo(o);t+=s}return t};me.prototype.process=function(){var r=this.positions.length/6;this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[];var t;let e=this.getDistance(r-1);var n;this.compareV3(0,r-1)?n=this.copyV3(r-2):n=this.copyV3(0),this.previous.push(n[0],n[1],n[2]),this.previous.push(n[0],n[1],n[2]);for(var i=0;i<r;i++){if(this.side.push(1),this.side.push(-1),this.widthCallback?t=this.widthCallback(i/(r-1)):t=1,this.width.push(t),this.width.push(t),i===0)this.uvs.push(0,0),this.uvs.push(0,1);else if(i===r-1)this.uvs.push(1,0),this.uvs.push(1,1);else{let s=this.getDistance(i)/e;this.uvs.push(s,0),this.uvs.push(s,1)}if(i<r-1){n=this.copyV3(i),this.previous.push(n[0],n[1],n[2]),this.previous.push(n[0],n[1],n[2]);var o=i*2;this.indices_array.push(o,o+1,o+2),this.indices_array.push(o+2,o+1,o+3)}i>0&&(n=this.copyV3(i),this.next.push(n[0],n[1],n[2]),this.next.push(n[0],n[1],n[2]))}this.compareV3(r-1,0)?n=this.copyV3(1):n=this.copyV3(r-1),this.next.push(n[0],n[1],n[2]),this.next.push(n[0],n[1],n[2]),!this._attributes||this._attributes.position.count!==this.positions.length?this._attributes={position:new D.BufferAttribute(new Float32Array(this.positions),3),previous:new D.BufferAttribute(new Float32Array(this.previous),3),next:new D.BufferAttribute(new Float32Array(this.next),3),side:new D.BufferAttribute(new Float32Array(this.side),1),width:new D.BufferAttribute(new Float32Array(this.width),1),uv:new D.BufferAttribute(new Float32Array(this.uvs),2),index:new D.BufferAttribute(new Uint16Array(this.indices_array),1),counters:new D.BufferAttribute(new Float32Array(this.counters),1)}:(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.width.copyArray(new Float32Array(this.width)),this._attributes.width.needsUpdate=!0,this._attributes.uv.copyArray(new Float32Array(this.uvs)),this._attributes.uv.needsUpdate=!0,this._attributes.index.copyArray(new Uint16Array(this.indices_array)),this._attributes.index.needsUpdate=!0),this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()};function gp(r,t,e,n,i){var o;if(r=r.subarray||r.slice?r:r.buffer,e=e.subarray||e.slice?e:e.buffer,r=t?r.subarray?r.subarray(t,i&&t+i):r.slice(t,i&&t+i):r,e.set)e.set(r,n);else for(o=0;o<r.length;o++)e[o+n]=r[o];return e}me.prototype.advance=function(r){var t=this._attributes.position.array,e=this._attributes.previous.array,n=this._attributes.next.array,i=t.length;gp(t,0,e,0,i),gp(t,6,t,0,i-6),t[i-6]=r.x,t[i-5]=r.y,t[i-4]=r.z,t[i-3]=r.x,t[i-2]=r.y,t[i-1]=r.z,gp(t,6,n,0,i-6),n[i-6]=r.x,n[i-5]=r.y,n[i-4]=r.z,n[i-3]=r.x,n[i-2]=r.y,n[i-1]=r.z,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0};D.ShaderChunk.meshline_vert=["",D.ShaderChunk.logdepthbuf_pars_vertex,D.ShaderChunk.fog_pars_vertex,"","attribute vec3 previous;","attribute vec3 next;","attribute float side;","attribute float width;","attribute float counters;","","uniform vec2 resolution;","uniform float lineWidth;","uniform vec3 color;","uniform float opacity;","uniform float sizeAttenuation;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","vec2 fix( vec4 i, float aspect ) {",""," vec2 res = i.xy / i.w;"," res.x *= aspect;"," vCounters = counters;"," return res;","","}","","void main() {",""," float aspect = resolution.x / resolution.y;",""," vColor = vec4( color, opacity );"," vUV = uv;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4( position, 1.0 );"," vec4 prevPos = m * vec4( previous, 1.0 );"," vec4 nextPos = m * vec4( next, 1.0 );",""," vec2 currentP = fix( finalPosition, aspect );"," vec2 prevP = fix( prevPos, aspect );"," vec2 nextP = fix( nextPos, aspect );",""," float w = lineWidth * width;",""," vec2 dir;"," if( nextP == currentP ) dir = normalize( currentP - prevP );"," else if( prevP == currentP ) dir = normalize( nextP - currentP );"," else {"," vec2 dir1 = normalize( currentP - prevP );"," vec2 dir2 = normalize( nextP - currentP );"," dir = normalize( dir1 + dir2 );",""," vec2 perp = vec2( -dir1.y, dir1.x );"," vec2 miter = vec2( -dir.y, dir.x );"," //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );",""," }",""," //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;"," vec4 normal = vec4( -dir.y, dir.x, 0., 1. );"," normal.xy *= .5 * w;"," normal *= projectionMatrix;"," if( sizeAttenuation == 0. ) {"," normal.xy *= finalPosition.w;"," normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;"," }",""," finalPosition.xy += normal.xy * side;",""," gl_Position = finalPosition;","",D.ShaderChunk.logdepthbuf_vertex,D.ShaderChunk.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",D.ShaderChunk.fog_vertex,"}"].join(`
|
|
11814
|
+
`],{type:"text/javascript"}),t=URL.createObjectURL(r),e=new Worker(t);return URL.revokeObjectURL(t),e}var N4={mergeParkingSpace:!0,mergeGraphic:!0,renderVersion:bi.MERGED_RENDER_VERSION},Kr=class extends St{initDb(){return v(this,null,function*(){try{let{db:t}=yield Ga();this.db=t}catch(t){console.log("[\u6253\u5F00indexDb\u9519\u8BEF]",t)}})}load(t,e){return v(this,null,function*(){if(Array.isArray(t))this.floors=t,e&&(this.placeConfig=A({},this.placeConfig,e));else{let n=yield fetch(t).then(i=>i.json());n.code===200&&(this.floors=n.data.list,this.placeConfig=A({},this.placeConfig,JSON.parse(n.data.config||"{}")))}this.getOtherDataByFreeTime()})}setCacheData(t,e,n){return this.initDbPromise.then(()=>ka(t,""+e,n))}getCacheData(t,e){return this.initDbPromise.then(()=>Eo(t,""+e))}getFloorData(t){return v(this,null,function*(){let e=yield this.getFloorJsonData(t);return e?this.getDataByJson(e):null})}getFloorDataByFloorInfo(t){return v(this,null,function*(){let e=yield this.getFloorJsonDataByFloorInfo(t);return this.getDataByJson(e)})}setLocale(t){this.locale=t,this.bmap.context.currentFloor&&this.bmap.context.currentFloor.poiLayer2.pois.forEach(e=>{e.userData.type==="store"&&(e.options.text=Du(e.userData.data,t)),e.userData.type==="facility"&&(e.options.text=Wu(e.userData.data,t))})}getFloorJsonDataByFloorInfo(t){return v(this,null,function*(){if(this.getFloorDataPromise.has(t.floor))return this.getFloorDataPromise.get(t.floor);let e=new Promise(n=>v(this,null,function*(){let i=xi(t),o=yield fetch(t.map_url).then(s=>s.json());o.floor=t.floor,Cu(o),this.setCacheData(kt.MAP_DATA,i,o),this.setCacheData(kt.MAP_VERSION,i,t.version_id),n(o)}));return this.getFloorDataPromise.set(t.floor,e),e})}getFloorJsonData(t){return v(this,null,function*(){let e=this.floors.find(n=>n.floor===t);return e?new Promise(n=>v(this,null,function*(){let i=xi(e,this.options.renderVersion===bi.LAYERED_RENDER_VERSION?1:void 0);try{let o=xi(e),s=yield this.getCacheData(kt.MAP_DATA,o);if(s&&s.transformed){console.log("\u4ECE\u7F13\u5B58\u4E2D\u53D6\u5230\u4E86\u5408\u5E76\u540E\u7684\u6570\u636E"),n(s);return}if(this.options.renderVersion===bi.LAYERED_RENDER_VERSION){let a=yield this.getCacheData(kt.MAP_DATA,i);if(a){console.log("\u4ECE\u7F13\u5B58\u4E2D\u53D6\u5230\u4E86\u6570\u636E"),n(a);return}}if(console.log("\u7F13\u5B58\u4E2D\u6CA1\u6709\u6570\u636E"),this.loadWorker){at(this.loadWorker,"adjust_floor_priority",{floor:t});let a=u=>{if(u.data.type==="floor_success"&&u.data.data.floor===t){var l;(l=this.loadWorker)==null||l.removeEventListener("message",a),n(this.getFloorJsonData(t))}};this.loadWorker.addEventListener("message",a)}else n(this.getFloorJsonDataByFloorInfo(e))}catch(o){console.log("[get floor data error]",o),n(this.getFloorJsonDataByFloorInfo(e))}})):null})}getRoadNetworkData(){return v(this,null,function*(){return(yield Promise.all(this.floors.map(e=>v(this,null,function*(){let n=xi(e,0);try{let i=yield this.getCacheData(kt.ROAD_NETWORK_DATA,n);if(i)return i;let o=yield fetch(e.route_url).then(s=>s.json());return this.setCacheData(kt.ROAD_NETWORK_DATA,n,o),this.setCacheData(kt.ROUTE_VERSION,n,e.version_id),o}catch(i){let o=yield fetch(e.route_url).then(s=>s.json());return this.setCacheData(kt.ROAD_NETWORK_DATA,n,o),o}})))).filter(e=>e.points)})}getFacilitiesData(){return v(this,null,function*(){let t=this.floors.reduce((i,o)=>i.updated_at>o.updated_at?i:o,this.floors[0]);if(!t)return null;let e=xi(t,0),n=()=>v(this,null,function*(){let i=yield fetch(t.entry_infra_url).then(o=>o.json());return i&&(this.setCacheData(kt.FACILITY_DATA,e,i),this.setCacheData(kt.FACILITY_VERSION,e,t.version_id)),i});try{let i=yield this.getCacheData(kt.FACILITY_DATA,e);return i||n()}catch(i){return console.log("[get facility error]",i),n()}})}getOtherDataByFreeTime(){return v(this,null,function*(){yield this.initDbPromise,yield at(this.loadWorker,"load",{floors:this.floors,version:this.options.renderVersion}),this.closeWorker()})}getMulFloorsData(t){return v(this,null,function*(){return Promise.all(t.map(e=>this.getFloorData(e))).then(e=>e.filter(n=>n))})}getDataByUrl(t){return v(this,null,function*(){let e=yield fetch(t).then(n=>n.json());return this.getDataByJson(e)})}getDataByJson(t,e,n){return v(this,null,function*(){Cu(t),e=this.getFloorBaseLayer(t,e);let i=A({},this.placeConfig,n);return yield this.getFloorContentLayer(t,e),yield this.getFloorPoi(t,e,i),this.changeFloorBox(t,e),e})}changeFloorBox(t,e){e.updateBox();let n=e.box.getSize(new Yu.Vector3),i=Math.max(n.x,n.y,n.z);e.userData.height=i/4+t.floorHeight}switchFloor(t,e){return v(this,null,function*(){return new Promise(n=>{let i={run:()=>this._switchFloor(t,e),meta:{type:"switchFloor"}},o=this.taskQueue.replaceByMetaType(i),s=a=>{let{task:u,res:l}=a;u.tid===o&&(this.taskQueue.removeEventListener("active-task-end",s),n(l))};this.taskQueue.addEventListener("active-task-end",s)})})}_switchFloor(t,e){return v(this,null,function*(){var n;let i=t;if(typeof t=="string"){let c=yield this.getFloorJsonData(t);if(c)i=c;else return null}else Cu(t);let o=A({},this.placeConfig,e),s=new ce(this.bmap.context);s.userData.data=t;let a=this.floors.find(c=>c.floor===i.floor);var u;let l=(u=a==null?void 0:a.map_angle)!=null?u:0;return this.bmap.dispatchEvent({type:It.SWITCH_FLOOR_BEFORE,data:{curFloor:s,graphics:[]}}),this.dispatchEvent({type:"switch-floor-before",data:{curFloor:s,graphics:[],floorData:i}}),this.bmap.context.scene.background=new Yu.Color(o.backgroundColor),this.getFloorBaseLayer(i,s),this.changeFloorBox(i,s),this.bmap.buildingCenter=s.userData.center,this.bmap.currentBuildGround=(n=s.userData.data.layers.find(c=>c.l_type==="range"))==null?void 0:n.elements[0],this.bmap.context.switchFloor(s),this.bmap.initialFloorCamera(),this.bmap.context.control.setAzimuthalAngle(l/180*Math.PI,!0),this.bmap.context.cameraBound.updateBox(),this.dispatchEvent({type:"switch-floor-ground",data:{curFloor:s,graphics:[]}}),this.bmap.dispatchEvent({type:It.SWITCH_FLOOR_GROUND,data:{curFloor:s}}),yield aa(),yield this.getFloorContentLayer(i,s),this.changeFloorBox(i,s),this.bmap.context.cameraBound.updateBox(),this.dispatchEvent({type:"switch-floor-content",data:{curFloor:s,graphics:[]}}),yield vl(2),yield this.getFloorPoi(i,s,o),this.dispatchEvent({type:"switch-floor-after",data:{curFloor:s,graphics:s.graphicLayer.children}}),this.bmap.dispatchEvent({type:It.SWITCH_FLOOR_AFTER,data:{curFloor:s,graphics:s.graphicLayer.children}}),s})}getFloorBaseLayer(t,e){e||(e=new ce(this.bmap.context));let n=[0,0];return t.layers.forEach(i=>{switch(i.l_type){case"range":let o=i.elements[0];n=[o.center_x,o.center_y],e.userData.range=o.geometry.cds[0],e.userData.rangeGraphic=o;break;case"ground":lp(i,e);break;default:break}}),e.userData.center=n,e.name=t.floor,e.userData.data=t,e}getFloorContentLayer(t,e){return v(this,null,function*(){e||(e=new ce(this.bmap.context)),e.userData.graphics=[],e.userData.graphicMap=new Map;let n=Date.now();for(let i=0;i<t.layers.length;i++){let o=t.layers[i];["range","ground"].includes(o.l_type)||(tS(o,e,this.options),console.log("time",Date.now()-n,o.l_type),n=Date.now())}return e})}getFloorPoi(t,e,n){return v(this,null,function*(){n===void 0&&(n=this.placeConfig);let i=Date.now();yield Promise.all(t.layers.map(s=>eS(s,e,this.locale,n))),console.log("poi time",Date.now()-i);let o=Date.now();aa().then(()=>{console.log("poi render time",Date.now()-o)})})}clear(){return v(this,null,function*(){y_(),this.db=null})}closeWorker(){this.loadWorker&&(this.loadWorker.terminate(),this.loadWorker=null)}dispose(){super.dispose(),this.clear(),this.closeWorker(),this.getFloorDataPromise.clear()}constructor(t,e={}){super(),this.bmap=t,this.floors=[],this.initDbPromise=Promise.resolve(),this.db=null,this.taskQueue=new Dr,this.loadWorker=cp(),this.locale="zh-cn",this.placeConfig={backgroundColor:"#f1f7f6",showFacilityName:!0,showStoreName:!0,textFontSize:14},this.getFloorDataPromise=new Map,this.options=A({},N4,e),this.placeConfig=A({},this.placeConfig,t.config.loaderPlaceConfig),this.initDbPromise=this.initDb()}};var iQ=f(I(),1);function hp(r,t){return v(this,null,function*(){let{brand:e,project:n}=r,{apiDomain:i,apiPath:{floorRange:o},apiInfo:s}=t,a=""+i+o+"?brand="+e+"&project="+n+"&phase="+n+"&building="+n;return yield fetch(a,s).then(l=>l.json()).then(l=>l.data).then(l=>{let c=(l||[])[0];return c&&(c.info=JSON.parse(c.info)),c})})}function pp(r,t){return v(this,null,function*(){let{brand:e,project:n,floor:i,ts:o,resource_type_list:s}=r,{apiDomain:a,apiPath:{floorGraphic:u},apiInfo:l}=t,c=""+a+u+"?brand="+e+"&project="+n+"&phase="+n+"&building="+n+"&floor="+i+"&ts="+o+"&resource_type_list="+s;return yield fetch(c,l).then(p=>p.json()).then(p=>p.data).then(p=>((p||[]).map(d=>d.info=JSON.parse(d.info)),p||[]))})}function F4(r,t){return v(this,null,function*(){let{project:e,floor:n}=r,{apiDomain:i,apiInfo:o}=t,s=i+"/api/inception-map/external_street/get?projectCode="+e+"&floorCode="+n;return yield fetch(s,o).then(u=>u.json()).then(u=>u.data).then(u=>JSON.parse(u[0].streetInfo||"{}")).then(u=>u.fileId?Z4(u.fileId,t):null)})}function Z4(r,t){return v(this,null,function*(){let{apiDomain:e,apiInfo:n}=t;return fetch(e+"/api/inception-map/file/getFileStream?fileId="+r,n).then(i=>i.arrayBuffer()).then(i=>{let s=new TextDecoder("utf-8").decode(i);return s?JSON.parse(s):null})})}var fp=class{load(t){return v(this,null,function*(){let e=jr(t);if(this.cacheData.has(e))return this.cacheData.get(e);let[,n]=yield Promise.all([this.loadBuildGround(t),pp(t,this.bmap.config)]),i=jr({floor:t.floor,ts:t.ts});fo(n.map(s=>s.info),this.bmap.buildingCenter,this.floorDataLengthMap.get(i)||0),n.forEach(s=>s.info.transformToBuildingGround=!1),this.cacheData.set(e,n);let o=this.floorDataLengthMap.get(i)||0;return this.floorDataLengthMap.set(i,o+n.length),this.loadExternalStreet(t),n})}loadExternalStreet(t){return v(this,null,function*(){})}switchFloorByData(t,e){if(!t.length)return;let n=e.userData.legacyToGraphicMap||new Map,i=e.userData.graphicMap||new Map,{ground:o,markGraphic:s,graphic:a}=this.bmap.config;for(let u=0;u<t.length;u++){let l=t[u];l.info.group==="ground"?(l.info.fillColor=o.color,l.info.fillOpacity=o.opacity,l.info.height=o.height,l.info.stroke=o.stroke,l.info.strokeColor=o.strokeColor,l.info.strokeOpacity=o.strokeOpacity):l.info.userData.mark?(l.info.height=s.height,l.info.fillColor=s.color,l.info.fillOpacity=s.opacity,l.info.stroke=s.stroke,l.info.strokeColor=s.strokeColor,l.info.strokeOpacity=s.strokeOpacity):(l.info.fillOpacity=a.fillOpacity,this.bmap.config.initTransToMark&&(l.info.height=s.height,l.info.fillColor=s.color,l.info.stroke=s.stroke,l.info.strokeColor=s.strokeColor,l.info.strokeOpacity=s.strokeOpacity))}for(let u of t){if(u.info.group==="ground")e.createGround(u.info);else{let l=e.addGraphic(u.info);l.userData.data=u,n.set(u.legacy_id,l)}i.set(u.element_uuid,u)}e.userData.legacyToGraphicMap=n,e.userData.graphicMap=i,e.userData.rangeGraphic=this.bmap.currentBuildGround,e.userData.range=this.bmap.currentBuildGround.geometry.cds[0],e.userData.center=this.bmap.buildingCenter,e.updateBox(),e===this.bmap.context.currentFloor?(this.bmap.triggerHooks(It.SWITCH_FLOOR_BEFORE,{curFloor:e,graphics:e.graphicLayer.children}),this.bmap.initialFloorCamera(),this.bmap.triggerHooks(It.SWITCH_FLOOR_AFTER,{curFloor:e,graphics:e.graphicLayer.children})):this.bmap.switchFloorByFloor(e)}filterData(t,e){let n=e.userData.graphicMap||new Map;return t.filter(i=>!n.has(i.element_uuid))}switchFloorByStoreData(t,e){return v(this,null,function*(){let n=yield this.load(A({},t,{resource_type_list:"6"})),i=this.filterData(n,e);this.switchFloorByData(i,e)})}switchFloorByOtherData(t,e){return v(this,null,function*(){let n=yield this.load(A({},t,{resource_type_list:"1,2,3,4"})),i=this.filterData(n,e);this.switchFloorByData(i,e)})}loadBuildGround(t){return v(this,null,function*(){let{brand:e,project:n}=t,i=yield this.loadBuildingGround({brand:e,project:n});var o;return this.bmap.currentBuildGround=(o=i==null?void 0:i.info)!=null?o:null,this.bmap.changeBuildingCenter(i,{brand:e,project:n}),this.bmap.currentBuildGround})}loadBuildingGround(t){return v(this,null,function*(){let{brand:e,project:n}=t,i=jr({brand:e,project:n});if(this.buildingGroundMap.has(i))return this.buildingGroundMap.get(i);let o=hp({brand:e,project:n},this.bmap.config).then(s=>(this.buildingGroundMap.set(i,s),s));return this.buildingGroundMap.set(i,o),o})}switchFloor(t){return v(this,null,function*(){let e=new ce(this.bmap.context);e.userData.graphicMap=new Map,e.name=t.floor;try{yield Promise.all([this.switchFloorByStoreData(t,e),this.switchFloorByOtherData(t,e)])}catch(n){console.log(n)}return e})}dispose(){this.cacheData.clear(),this.floorDataLengthMap.clear(),this.buildingGroundMap.clear()}constructor(t){this.bmap=t,this.cacheData=new Map,this.floorDataLengthMap=new Map,this.buildingGroundMap=new Map,this.externalStreetMap=new Map}};var U4=function(r){return r[r.D2=0]="D2",r[r.D3=1.1]="D3",r}({}),dp=class extends de.EventDispatcher{get basicZoom(){return this.context.basicZoom}set basicZoom(t){this.context.basicZoom=t}changeBuildingCenter(t,e){let{brand:n,project:i}=e,o=t?so(t.info.geometry.cds[0]):[0,0];this.buildingCenter=o,this.dispatchEvent({type:"center-change",center:o,project:i,brand:n})}use(t){t.bmap=this,this.plugins.push(t)}unUse(t){this.plugins=this.plugins.filter(e=>e!==t)}triggerHooks(t,e){this.dispatchEvent({type:t,data:e})}switchFloor(t){return v(this,null,function*(){return this.loader||(this.loader=new Kr(this),this.loader.placeConfig=A({},this.loader.placeConfig,this.config.loaderPlaceConfig),yield this.loader.load(this.config.apiPath.loadPlaceInfo+"?place_id="+this.config.placeId+"&env=prod")),this.loader.switchFloor(t)})}switchFloorByFloor(t,e,n){e===void 0&&(e=!0),n===void 0&&(n=t.graphicLayer.children),this.triggerHooks(It.SWITCH_FLOOR_BEFORE,{curFloor:t,graphics:n}),this.buildingCenter=t.userData.center,this.currentBuildGround=t.userData.rangeGraphic,this.context.switchFloor(t,e),this.initialFloorCamera(),this.triggerHooks(It.SWITCH_FLOOR_AFTER,{curFloor:t,graphics:n})}initialFloorCamera(){this.context.cameraBound.setEnable(!1),this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,0),this.context.setPolarAngle(this.config.control.defaultPolar,0),this.context.fitCameraToGround(this.config.defaultPadding,0);let t=this.context.camera.zoom;this.context.control.minZoom=t,this.context.control.maxZoom=t*this.config.control.maxZoomScale,this.type==="3d"&&this.context.fitCameraToGround(this.config.defaultPadding,0,!1),this.basicZoom=this.context.camera.zoom,this.context.control.addEventListener("change",this.onControlChange),this.onControlChange(),this.context.cameraBound.setEnable(!0),this.context.cameraBound.changePrevCamera()}addModel(t,e){if(t.options.geometry.type==="polygon"){var n;let i=(n=this.context.currentFloor)==null?void 0:n.addModel(A({},e,{position:t.getPosition().setZ(.1),id:t.options.id}));if(i){let{facilityAngle:o=0,facilityXScale:s=1,facilityYScale:a=1}=t.options.userData;i.rotateZ((180-o)/180*Math.PI),i.scale.set(s,a,1)}}}addHeatmap(t){var e;return(e=this.context.currentFloor)==null?void 0:e.addHeatmap(t)}getLegacyToGraphicMap(){var t;return((t=this.context.currentFloor)==null?void 0:t.userData.legacyToGraphicMap)||new Map}getFloorAllGraphics(){var t;return((t=this.context.currentFloor)==null?void 0:t.graphicLayer.children.filter(e=>e instanceof vt))||[]}createGraphicPoi(t,e){if(this.context.currentFloor){e.id===void 0&&(e.id=t.options.id);let n=t.options.center,i=t.getCenter(),o=(n==null?void 0:n[0])||i.x,s=(n==null?void 0:n[1])||i.y;return console.log(o,s,n,i),this.context.currentFloor.addPoi(A({},e,{position:{x:o,y:s,z:i.z+t.options.height/2}}))}return null}createPoi2ByPosition(t,e){if(this.context.currentFloor){let n=this.mercatorToWorld([t.x,t.y]),i=new pt(this.context,A({},e,{position:{x:n.x,y:n.y,z:t.z}}));return this.context.currentFloor.poiLayer2.pushPoi(i),i}return null}removeHeatMap(){var t;(t=this.context.currentFloor)==null||t.removeHeatMap()}translateElementToCenter(t,e,n,i){e===void 0&&(e=500),n===void 0&&(n=0),i===void 0&&(i=0);let o=t.getPosition().clone(),{context:{camera:s}}=this;if(s.updateMatrix(),i){let a=new de.Vector3;a.setFromMatrixColumn(s.matrix,1),a.normalize(),a.multiplyScalar(i/s.zoom),o.add(a)}if(n){let a=new de.Vector3;a.setFromMatrixColumn(s.matrix,0),a.normalize(),a.multiplyScalar(n/s.zoom),o.add(a)}return this.context.setCameraPosition(o,e)}translateElementToCenterX(t,e){return v(this,null,function*(){return e===void 0&&(e=500),ue(new Promise(n=>{let i=this.context.control.target.clone(),o=t.getPosition();this.timer.requestAnimationFrame(()=>{let{clientSize:{width:s,height:a},camera:u}=this.context,c=X(o,u,s,a).x-s/2,h=new de.Vector3;h.setFromMatrixColumn(this.context.camera.matrix,0),h.normalize(),h.multiplyScalar(c/this.context.camera.zoom),i.add(h),this.context.setCameraPosition(i,e).then(n)})}),e+500)})}getElementDeviceCoordinate(t){let e=t.position.clone(),{clientWidth:n,clientHeight:i}=this.container;return X(e,this.context.camera,n,i)}changeMapType(t,e){return e===void 0&&(e=500),this.type=t,t==="2d"?this.context.setPolarAngle(0,e):this.context.setPolarAngle(1.1,e)}resetView(t){return v(this,null,function*(){t===void 0&&(t=300);let e=t/3;yield this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,e),yield this.context.setPolarAngle(this.config.control.defaultPolar,e),yield this.context.fitCameraToGround(this.config.defaultPadding,e,!1)})}reduceMap(t,e){t===void 0&&(t=.5),e===void 0&&(e=500);let n=this.context.camera.zoom;return this.context.setZoom(n-t,this.context.control.target,e)}enlargeMap(t,e){t===void 0&&(t=.5),e===void 0&&(e=500);let n=this.context.camera.zoom;return this.context.setZoom(n+t,this.context.control.target,e)}registryEvent(){if(window.addEventListener("keydown",this.onKeydown),window.addEventListener("keyup",this.onKeyUp),this.config.resizeObserver){let t=new ResizeObserver(this.debounceResize);t.observe(this.container),this.observe=t}}unRegistryEvent(){var t;this.context.control.removeEventListener("change",this.onControlChange),window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("keyup",this.onKeyUp),(t=this.observe)==null||t.disconnect(),this.observe=null}configurePolarShortcutKeys(t){this.polarKeys=t}configureAzimuthalShortcutKeys(t){this.azimuthalKeys=t}rotateMap(t,e){t===void 0&&(t=.1),e===void 0&&(e=500);let n=this.context.control.getAzimuthalAngle();return this.context.setAzimuthalAngle(n+t,e)}measureDistance(){return v(this,null,function*(){return this.cancelDistance(),new Promise((t,e)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgLine=new ts(this.context);let n=this.svgLine.dispose.bind(this.svgLine);this.svgLine.dispose=function(){n(),e("cancel")},this.svgLine.addEventListener("distance",i=>{let{distance:o}=i;t(o)})})})}cancelDistance(){this.svgLine&&(this.svgLine.dispose(),this.svgLine=void 0,this.context.control.enableRotate=!0)}measureArea(){return this.cancelArea(),new Promise((t,e)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgPolygon=new es(this.context);let n=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){n(),e("cancel")},this.svgPolygon.addEventListener("area",i=>{let{area:o}=i;t(o)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}fitCameraByPois(t,e,n){return v(this,null,function*(){if(e===void 0&&(e=[20,20,20,20]),n===void 0&&(n=500),!t.length)return;let i=new de.Box3;return t.forEach(o=>{let{position:s}=o;i.expandByPoint(s)}),this.context.fitCameraToBox(i,e,n,!1)})}fitCameraByPoiNodeIds(t,e,n){return v(this,null,function*(){e===void 0&&(e=[20,20,20,20]),n===void 0&&(n=500);let i=t.map(o=>this.getPoiById(o)).filter(o=>!!o);if(i.length)return this.fitCameraByPois(i,e,n)})}getGraphicByNodeId(t){var e,n;return((e=this.context.currentFloor)==null?void 0:e.graphicLayer.getGraphicByNodeId(t))||((n=this.context.currentFloor)==null?void 0:n.parkingSpaceLayer.graphicMap.get(t))||null}deleteGraphic(t){var e;(e=this.context.currentFloor)==null||e.graphicLayer.removeGraphic(t)}createGraphicByOptions(t){var e;if(!t.transformToBuildingGround&&this.currentBuildGround){let n=so(this.currentBuildGround.geometry.cds[0]);if(t.geometry.type==="polygon")t.geometry.coords=JSON.parse(JSON.stringify(t.geometry.cds)),t.geometry.coords.map(i=>{Array.isArray(i)&&i.forEach(o=>{o[0]-=n[0],o[1]-=n[1]})});else{let[i,o]=t.geometry.cds;t.geometry.coords=[i-n[0],o-n[1]]}}return(e=this.context.currentFloor)==null?void 0:e.graphicLayer.createGraphic(t)}mercatorToWorld(t){let e=this.buildingCenter;return new de.Vector3(t[0]-e[0],t[1]-e[1],0)}removePoiById(t){var e,n;(e=this.context.currentFloor)==null||e.poiLayer.removePoiById(t),(n=this.context.currentFloor)==null||n.poiLayer2.removePoiById(t)}getPoiById(t){var e,n;return((e=this.context.currentFloor)==null?void 0:e.poiLayer.getPoiById(t))||((n=this.context.currentFloor)==null?void 0:n.poiLayer2.getPoiById(t))}getPois(){var t,e;return[...(((t=this.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).filter(n=>!n.options.built_in),...((e=this.context.currentFloor)==null?void 0:e.poiLayer2.pois)||[]]}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}dispose(){this.loader&&(this.loader.dispose(),this.loader=null),this.unRegistryEvent(),this.timer.dispose(),this.plugins.forEach(t=>t.dispose()),this.plugins=[],this.context.dispose(),this.context=null,this.container=null,ht.dispose(),Tt.dispose(),$n.dispose(),Zt.dispose(),N.dispose(),Be.dispose(),this.debounceResize=null,de.Sprite.Dispose==null||de.Sprite.Dispose.call(de.Sprite)}constructor(t,e={}){super(),this.container=t,this.polarKeys=[],this.azimuthalKeys=[],this.prevCameraZoom=1,this.type="2d",this.currentBuildGround=null,this.observe=null,this.buildingCenter=[0,0],this.timer=new it,this.plugins=[],this.loader=null,this.onControlChange=()=>{let{camera:{zoom:n}}=this.context;n!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=n)},this.onKeydown=n=>{this.polarKeys.includes(n.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(n.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)},this.onKeyUp=n=>{if(this.polarKeys.includes(n.code)){let i=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=i,this.context.control.minPolarAngle=i}if(this.azimuthalKeys.includes(n.code)){let i=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=i,this.context.control.minAzimuthAngle=i}},this.resize=()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let n=this.context.control.getAzimuthalAngle(),i=this.context.camera.zoom;this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(0,0);let o=this.context.getFitCameraToGroundZoom(this.config.defaultPadding,0)||1;this.context.camera.zoom=i,this.context.control.minZoom=o,this.context.control.maxZoom=o*this.config.control.maxZoomScale,this.basicZoom=i,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(n,0),this.context.cameraBound.setEnable(!0)},this.config=ap(e),this.context=new cs(t,this),this.debounceResize=(0,nS.debounce)(this.resize,5),this.registryEvent()}};var z4=function(r){return r.HALF="half",r.POWER="power",r.MECHANICAL="mechanical",r.NORMAL="normal",r.VIP="vip",r}({});var bQ=f(I(),1);var rS=require("three"),Pt=class extends rS.EventDispatcher{dispose(){let t=this.bmap.plugins.findIndex(e=>e===this);t!==-1&&this.bmap.plugins.splice(t,1),this.bmap=null}constructor(t){super(),this.bmap=t,this.bmap.use(this)}};var mp=class extends Pt{fetchEquipment(){return v(this,null,function*(){let{apiDomain:t,apiPath:{equipmentList:e},apiInfo:n}=this.bmap.config,i=""+t+e;yield fetch(i,n).then(o=>o.json()).then(o=>o.data).then(o=>{this.equipmentList=o,this.equipmentMap=new Map(o.map(s=>[s.equipment_id,s]))}),this.dispatchEvent({type:"change-equipment-list",data:this.equipmentList}),this.bmap.context.currentFloor&&this.changeGraphicToEquipment(this.bmap.context.currentFloor.graphicLayer.children)})}getGraphicEquipment(t){return t.userData.data.info.userData.equipment}changeGraphicToEquipment(t){t.filter(e=>{let n=this.getGraphicEquipment(e);return n&&this.equipmentMap.has(n)}).forEach(e=>{let n=this.equipmentMap.get(this.getGraphicEquipment(e)),i=this.bmap.createGraphicPoi(e,{icon:n==null?void 0:n.equipment_icon,built_in:!0,icon_size:[14,14]});i&&(i.userData.data=n,i.userData.type="equipment")})}dispose(){var t;this.bmap.removeEventListener(It.SWITCH_FLOOR_AFTER,this.onSwitchFloor),Array.from(((t=this.bmap.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).forEach(e=>{if(e.userData.type==="equipment"){var n;(n=this.bmap.context.currentFloor)==null||n.poiLayer.removePoi(e)}}),super.dispose()}constructor(t){super(t),this.equipmentList=[],this.equipmentMap=new Map,this.onSwitchFloor=e=>{let{data:{graphics:n}}=e;this.equipmentList.length&&this.changeGraphicToEquipment(n)},this.fetchEquipment(),this.bmap.addEventListener(It.SWITCH_FLOOR_AFTER,this.onSwitchFloor)}};var jq=f(co(),1),Eq=f(ae(),1),Iq=f(I(),1),Dq=f(ip(),1);var BQ=f(I(),1),JQ=f(Z(),1),wt=require("three");var IQ=f(Yr(),1),DQ=f(_n(),1),WQ=f(An(),1),CQ=f(Sn(),1),YQ=f(Tn(),1),RQ=f(bn(),1),OQ=f(xn(),1),XQ=f(wn(),1),NQ=f(jn(),1),FQ=f(En(),1),ZQ=f(In(),1),UQ=f(Dn(),1),zQ=f(Wn(),1),KQ=f(Cn(),1),LQ=f(Yn(),1),GQ=f(Z(),1),kQ=f(kh(),1),D=require("three"),me=class extends D.BufferGeometry{constructor(){super(),this.isMeshLine=!0,this.type="MeshLine",this.positions=[],this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[],this.counters=[],this._points=[],this._geom=null,this.widthCallback=null,this.matrixWorld=new D.Matrix4,Object.defineProperties(this,{geometry:{enumerable:!0,get:function(){return this}},geom:{enumerable:!0,get:function(){return this._geom},set:function(t){this.setGeometry(t,this.widthCallback)}},points:{enumerable:!0,get:function(){return this._points},set:function(t){this.setPoints(t,this.widthCallback)}}})}};me.prototype.setMatrixWorld=function(r){this.matrixWorld=r};me.prototype.setGeometry=function(r,t){this._geometry=r,this.setPoints(r.getAttribute("position").array,t)};me.prototype.setPoints=function(r,t){if(!(r instanceof Float32Array)&&!(r instanceof Array)){console.error("ERROR: The BufferArray of points is not instancied correctly.");return}if(this._points=r,this.widthCallback=t,this.positions=[],this.counters=[],r.length&&r[0]instanceof D.Vector3)for(var e=0;e<r.length;e++){var n=r[e],i=e/r.length;this.positions.push(n.x,n.y,n.z),this.positions.push(n.x,n.y,n.z),this.counters.push(i),this.counters.push(i)}else for(var e=0;e<r.length;e+=3){var i=e/r.length;this.positions.push(r[e],r[e+1],r[e+2]),this.positions.push(r[e],r[e+1],r[e+2]),this.counters.push(i),this.counters.push(i)}this.process()};function K4(r,t){var e=new D.Matrix4,n=new D.Ray,i=new D.Sphere,o=new D.Vector3,s=this.geometry;if(s.boundingSphere||s.computeBoundingSphere(),i.copy(s.boundingSphere),i.applyMatrix4(this.matrixWorld),r.ray.intersectSphere(i,o)!==!1){e.copy(this.matrixWorld).invert(),n.copy(r.ray).applyMatrix4(e);var a=new D.Vector3,u=new D.Vector3,l=new D.Vector3,c=this instanceof D.LineSegments?2:1,h=s.index,p=s.attributes;if(h!==null)for(var d=h.array,m=p.position.array,y=p.width.array,M=0,_=d.length-1;M<_;M+=c){var S=d[M],b=d[M+1];a.fromArray(m,S*3),u.fromArray(m,b*3);var W=y[Math.floor(M/3)]!==void 0?y[Math.floor(M/3)]:1,R=r.params.Line.threshold+this.material.lineWidth*W/2,F=R*R,x=n.distanceSqToSegment(a,u,o,l);if(!(x>F)){o.applyMatrix4(this.matrixWorld);var O=r.ray.origin.distanceTo(o);O<r.near||O>r.far||(t.push({distance:O,point:l.clone().applyMatrix4(this.matrixWorld),index:M,face:null,faceIndex:null,object:this}),M=_)}}}}me.prototype.raycast=K4;me.prototype.compareV3=function(r,t){var e=r*6,n=t*6;return this.positions[e]===this.positions[n]&&this.positions[e+1]===this.positions[n+1]&&this.positions[e+2]===this.positions[n+2]};me.prototype.copyV3=function(r){var t=r*6;return[this.positions[t],this.positions[t+1],this.positions[t+2]]};me.prototype.getDistance=function(r){let t=0;for(let e=0;e<r;e++){let n=6*e,i=new D.Vector3(this.positions[n],this.positions[n+1],this.positions[n+2]),o=new D.Vector3(this.positions[n+6],this.positions[n+7],this.positions[n+8]),s=i.distanceTo(o);t+=s}return t};me.prototype.process=function(){var r=this.positions.length/6;this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[];var t;let e=this.getDistance(r-1);var n;this.compareV3(0,r-1)?n=this.copyV3(r-2):n=this.copyV3(0),this.previous.push(n[0],n[1],n[2]),this.previous.push(n[0],n[1],n[2]);for(var i=0;i<r;i++){if(this.side.push(1),this.side.push(-1),this.widthCallback?t=this.widthCallback(i/(r-1)):t=1,this.width.push(t),this.width.push(t),i===0)this.uvs.push(0,0),this.uvs.push(0,1);else if(i===r-1)this.uvs.push(1,0),this.uvs.push(1,1);else{let s=this.getDistance(i)/e;this.uvs.push(s,0),this.uvs.push(s,1)}if(i<r-1){n=this.copyV3(i),this.previous.push(n[0],n[1],n[2]),this.previous.push(n[0],n[1],n[2]);var o=i*2;this.indices_array.push(o,o+1,o+2),this.indices_array.push(o+2,o+1,o+3)}i>0&&(n=this.copyV3(i),this.next.push(n[0],n[1],n[2]),this.next.push(n[0],n[1],n[2]))}this.compareV3(r-1,0)?n=this.copyV3(1):n=this.copyV3(r-1),this.next.push(n[0],n[1],n[2]),this.next.push(n[0],n[1],n[2]),!this._attributes||this._attributes.position.count!==this.positions.length?this._attributes={position:new D.BufferAttribute(new Float32Array(this.positions),3),previous:new D.BufferAttribute(new Float32Array(this.previous),3),next:new D.BufferAttribute(new Float32Array(this.next),3),side:new D.BufferAttribute(new Float32Array(this.side),1),width:new D.BufferAttribute(new Float32Array(this.width),1),uv:new D.BufferAttribute(new Float32Array(this.uvs),2),index:new D.BufferAttribute(new Uint16Array(this.indices_array),1),counters:new D.BufferAttribute(new Float32Array(this.counters),1)}:(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.width.copyArray(new Float32Array(this.width)),this._attributes.width.needsUpdate=!0,this._attributes.uv.copyArray(new Float32Array(this.uvs)),this._attributes.uv.needsUpdate=!0,this._attributes.index.copyArray(new Uint16Array(this.indices_array)),this._attributes.index.needsUpdate=!0),this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()};function gp(r,t,e,n,i){var o;if(r=r.subarray||r.slice?r:r.buffer,e=e.subarray||e.slice?e:e.buffer,r=t?r.subarray?r.subarray(t,i&&t+i):r.slice(t,i&&t+i):r,e.set)e.set(r,n);else for(o=0;o<r.length;o++)e[o+n]=r[o];return e}me.prototype.advance=function(r){var t=this._attributes.position.array,e=this._attributes.previous.array,n=this._attributes.next.array,i=t.length;gp(t,0,e,0,i),gp(t,6,t,0,i-6),t[i-6]=r.x,t[i-5]=r.y,t[i-4]=r.z,t[i-3]=r.x,t[i-2]=r.y,t[i-1]=r.z,gp(t,6,n,0,i-6),n[i-6]=r.x,n[i-5]=r.y,n[i-4]=r.z,n[i-3]=r.x,n[i-2]=r.y,n[i-1]=r.z,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0};D.ShaderChunk.meshline_vert=["",D.ShaderChunk.logdepthbuf_pars_vertex,D.ShaderChunk.fog_pars_vertex,"","attribute vec3 previous;","attribute vec3 next;","attribute float side;","attribute float width;","attribute float counters;","","uniform vec2 resolution;","uniform float lineWidth;","uniform vec3 color;","uniform float opacity;","uniform float sizeAttenuation;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","vec2 fix( vec4 i, float aspect ) {",""," vec2 res = i.xy / i.w;"," res.x *= aspect;"," vCounters = counters;"," return res;","","}","","void main() {",""," float aspect = resolution.x / resolution.y;",""," vColor = vec4( color, opacity );"," vUV = uv;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4( position, 1.0 );"," vec4 prevPos = m * vec4( previous, 1.0 );"," vec4 nextPos = m * vec4( next, 1.0 );",""," vec2 currentP = fix( finalPosition, aspect );"," vec2 prevP = fix( prevPos, aspect );"," vec2 nextP = fix( nextPos, aspect );",""," float w = lineWidth * width;",""," vec2 dir;"," if( nextP == currentP ) dir = normalize( currentP - prevP );"," else if( prevP == currentP ) dir = normalize( nextP - currentP );"," else {"," vec2 dir1 = normalize( currentP - prevP );"," vec2 dir2 = normalize( nextP - currentP );"," dir = normalize( dir1 + dir2 );",""," vec2 perp = vec2( -dir1.y, dir1.x );"," vec2 miter = vec2( -dir.y, dir.x );"," //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );",""," }",""," //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;"," vec4 normal = vec4( -dir.y, dir.x, 0., 1. );"," normal.xy *= .5 * w;"," normal *= projectionMatrix;"," if( sizeAttenuation == 0. ) {"," normal.xy *= finalPosition.w;"," normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;"," }",""," finalPosition.xy += normal.xy * side;",""," gl_Position = finalPosition;","",D.ShaderChunk.logdepthbuf_vertex,D.ShaderChunk.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",D.ShaderChunk.fog_vertex,"}"].join(`
|
|
11815
11815
|
`);D.ShaderChunk.meshline_frag=["",D.ShaderChunk.fog_pars_fragment,D.ShaderChunk.logdepthbuf_pars_fragment,"","uniform sampler2D map;","uniform sampler2D alphaMap;","uniform float useMap;","uniform float useAlphaMap;","uniform float useDash;","uniform float dashArray;","uniform float dashOffset;","uniform float dashRatio;","uniform float visibility;","uniform float alphaTest;","uniform vec2 repeat;","uniform float thresholdRatio;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","void main() {",""," if (vUV.x <= thresholdRatio) {"," discard;"," }",D.ShaderChunk.logdepthbuf_fragment,""," vec4 c = vColor;"," if( useMap == 1. ) c *= texture2D( map, vUV * repeat );"," if( useAlphaMap == 1. ) c.a *= texture2D( alphaMap, vUV * repeat ).a;"," if( c.a < alphaTest ) discard;"," if( useDash == 1. ){"," c.a *= ceil(mod(vCounters + dashOffset, dashArray) - (dashArray * dashRatio));"," }"," gl_FragColor = c;"," gl_FragColor.a *= step(vCounters, visibility);","",D.ShaderChunk.fog_fragment,"}"].join(`
|
|
11816
11816
|
`);var hs=class extends D.ShaderMaterial{constructor(t){super({uniforms:Object.assign({},D.UniformsLib.fog,{lineWidth:{value:1},map:{value:null},useMap:{value:0},alphaMap:{value:null},useAlphaMap:{value:0},color:{value:new D.Color(16777215)},opacity:{value:1},resolution:{value:new D.Vector2(1,1)},sizeAttenuation:{value:1},dashArray:{value:0},dashOffset:{value:0},dashRatio:{value:.5},useDash:{value:0},visibility:{value:1},alphaTest:{value:0},repeat:{value:new D.Vector2(1,1)},thresholdRatio:{value:0},transparent:{value:!0},depthTest:{vale:!1},depthWrite:{value:!1}}),vertexShader:D.ShaderChunk.meshline_vert,fragmentShader:D.ShaderChunk.meshline_frag}),this.isMeshLineMaterial=!0,this.type="MeshLineMaterial",Object.defineProperties(this,{lineWidth:{enumerable:!0,get:function(){return this.uniforms.lineWidth.value},set:function(e){this.uniforms.lineWidth.value=e}},map:{enumerable:!0,get:function(){return this.uniforms.map.value},set:function(e){this.uniforms.map.value=e}},useMap:{enumerable:!0,get:function(){return this.uniforms.useMap.value},set:function(e){this.uniforms.useMap.value=e}},alphaMap:{enumerable:!0,get:function(){return this.uniforms.alphaMap.value},set:function(e){this.uniforms.alphaMap.value=e}},useAlphaMap:{enumerable:!0,get:function(){return this.uniforms.useAlphaMap.value},set:function(e){this.uniforms.useAlphaMap.value=e}},color:{enumerable:!0,get:function(){return this.uniforms.color.value},set:function(e){this.uniforms.color.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}},sizeAttenuation:{enumerable:!0,get:function(){return this.uniforms.sizeAttenuation.value},set:function(e){this.uniforms.sizeAttenuation.value=e}},dashArray:{enumerable:!0,get:function(){return this.uniforms.dashArray.value},set:function(e){this.uniforms.dashArray.value=e,this.useDash=e!==0?1:0}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(e){this.uniforms.dashOffset.value=e}},dashRatio:{enumerable:!0,get:function(){return this.uniforms.dashRatio.value},set:function(e){this.uniforms.dashRatio.value=e}},useDash:{enumerable:!0,get:function(){return this.uniforms.useDash.value},set:function(e){this.uniforms.useDash.value=e}},visibility:{enumerable:!0,get:function(){return this.uniforms.visibility.value},set:function(e){this.uniforms.visibility.value=e}},alphaTest:{enumerable:!0,get:function(){return this.uniforms.alphaTest.value},set:function(e){this.uniforms.alphaTest.value=e}},repeat:{enumerable:!0,get:function(){return this.uniforms.repeat.value},set:function(e){this.uniforms.repeat.value.copy(e)}},thresholdRatio:{enumerable:!0,get:function(){return this.uniforms.thresholdRatio.value},set:function(e){this.uniforms.thresholdRatio.value=e}}}),this.setValues(t)}};hs.prototype.copy=function(r){return D.ShaderMaterial.prototype.copy.call(this,r),this.lineWidth=r.lineWidth,this.map=r.map,this.useMap=r.useMap,this.alphaMap=r.alphaMap,this.useAlphaMap=r.useAlphaMap,this.color.copy(r.color),this.opacity=r.opacity,this.resolution.copy(r.resolution),this.sizeAttenuation=r.sizeAttenuation,this.dashArray.copy(r.dashArray),this.dashOffset.copy(r.dashOffset),this.dashRatio.copy(r.dashRatio),this.useDash=r.useDash,this.visibility=r.visibility,this.alphaTest=r.alphaTest,this.repeat.copy(r.repeat),this};var iS={texture_url:cu,lineWidth:10,color:16777215},Ru=class extends wt.Object3D{registryEvent(){this.navigation.bmap.context.addEventListener("control-change",this.onControlChange),this.navigation.bmap.context.addEventListener("update",this.onUpdate),this.navigation.bmap.context.addEventListener("resize",this.onResize)}unRegistryEvent(){this.navigation.bmap.context.removeEventListener("control-change",this.onControlChange),this.navigation.bmap.context.removeEventListener("update",this.onUpdate),this.navigation.bmap.context.removeEventListener("resize",this.onResize)}getRepeat(){let{points:t,navigation:{bmap:{context:{camera:e,clientSize:{width:n,height:i}}}}}=this,o=t.map(a=>{let[u,l]=a;return X(new wt.Vector3(u,l,0),e,n,i)}).map(a=>{let{x:u,y:l}=a;return[u,l]});return Lt(o)/32}changeRepeat(){if(!this.material)return;let t=this.getRepeat();this.material.repeat=new wt.Vector2(t,1)}loadTexture(t){return new Promise((e,n)=>{new wt.TextureLoader().load(t,e,void 0,n)})}transformPoints(t){let e=[];for(let n=0;n<t.length;n++)e.push(...t[n],0);return e}updatePoints(t){this.points=t,this.changeRepeat();let e=this.transformPoints(t);this.geometry&&this.geometry.setPoints(e)}movePath(t){this.material&&(this.material.thresholdRatio=t)}create(t){return v(this,null,function*(){let e=this.geometry=new me;if(this.updatePoints(t),!this.texture){let o=this.texture=yield this.loadTexture(this.config.texture_url);o.wrapS=o.wrapT=wt.RepeatWrapping}let n=this.material=new hs({useMap:!0,color:new wt.Color(this.config.color),transparent:!0,resolution:new wt.Vector2(this.navigation.bmap.context.clientSize.width,this.navigation.bmap.context.clientSize.height),depthTest:!1,sizeAttenuation:!1,lineWidth:this.config.lineWidth*2,map:this.texture,blending:wt.NormalBlending,repeat:new wt.Vector2(this.getRepeat(),1)}),i=this.mesh=new wt.Mesh(e,n);return i.renderOrder=99999,this.add(i),i})}dispose(){var t,e,n;this.unRegistryEvent(),this.clear(),(t=this.geometry)==null||t.dispose(),(e=this.material)==null||e.dispose(),(n=this.texture)==null||n.dispose(),this.navigation=null}constructor(t,e){super(),this.navigation=t,this.mesh=null,this.geometry=null,this.material=null,this.texture=null,this.config=iS,this.points=[],this.basicRepeat=1,this.prevCameraZoom=0,this.onControlChange=()=>{let n=this.navigation.bmap.context.camera.zoom;n!==this.prevCameraZoom&&(this.prevCameraZoom=n,this.changeRepeat())},this.onUpdate=()=>{this.texture},this.onResize=()=>{if(this.material){let{width:n,height:i}=this.navigation.bmap.context.clientSize;this.material.resolution.set(n,i)}},this.config=Object.assign({},iS,e),this.registryEvent(),this.prevCameraZoom=this.navigation.bmap.context.camera.zoom}};var ji=require("@tweenjs/tween.js"),ee=require("three");var nq=f(mu(),1),rq=f(I(),1),iq=f(Z(),1),oS=require("three");var sS=require("@tweenjs/tween.js"),aS=require("lodash"),wi=require("@turf/turf");var L4={offsetDistance:15,offsetToResetTime:3e3,directionEmitThreshold:5,simulationSpeed:1},Ou=class extends St{get curRoutePath(){return this.paths[this.routeIndex]||null}get curRoutePathPoints(){var t;return((t=this.curRoutePath)==null?void 0:t.points)||[]}registryEvent(){this.navigation.bmap.context.addEventListener("update",this.onUpdate),this.navigation.addEventListener("add-path",this.onAddPaths)}unRegistryEvent(){this.navigation.bmap.context.removeEventListener("update",this.onUpdate),this.navigation.removeEventListener("add-path",this.onAddPaths)}setRoadData(t){this.roadData=t}resetStatus(t){this.offset=!1,this.reset=!1,this.routeIndex=0,this.pointIndex=0,this.resetTimer&&(this.timer.clearTimeout(this.resetTimer),this.resetTimer=null),t.length&&(this.position=t[0].points[0])}emitNavigationStatus(){let t=this.getNavigationInfo();t&&this.dispatchEvent({type:"navigation-info",info:t})}adsorb(t,e){let{curRoutePathPoints:n,position:i,curRoutePath:o,paths:s,routeIndex:a}=this;if(!n.length)return null;let u=n,l=this.paths[this.routeIndex].floor,c=this.getCurRouteRemainDistance();if(i){let M=qe(n,i);u=u.slice(M+1),u.unshift(i)}let h=[{floor:o==null?void 0:o.floor,points:u},...s.slice(a+1)],{distance:p,closestPoint:d,index:m,i:y}=h.reduce((M,_,S)=>{if(_.floor!==t)return M;let{distance:b,closestPoint:W,index:R}=_.points.reduce((F,x,O,E)=>{if(!E[O+1])return A({},F,{distance:F.distance===1/0?B(x,e):F.distance});let{distance:C,closestPoint:j}=Zl(e,x,E[O+1]);if(l===t){let H=[e,...E.slice(O+1)],rt=Lt(H);if(c-rt>10)return F}return C<F.distance?{distance:C,closestPoint:j,index:O}:F},{distance:1/0,closestPoint:_.points[0],index:0});return b<M.distance?{distance:b,closestPoint:W,index:S,i:R}:M},{distance:1/0,closestPoint:u[0],index:0,i:0});return{distance:p,closestPoint:d,routeIndex:m+a,pointIndex:m===0?y+this.pointIndex:y}}toPosition(t,e){let n=this.adsorb(t,e);if(!n)return;let{distance:i,closestPoint:o,routeIndex:s,pointIndex:a}=n;i>this.options.offsetDistance?(this.offset=!0,this.resetTimer||(this.resetTimer=this.timer.setTimeout(()=>{this.reset=!0,this.resetTimer=null},this.options.offsetToResetTime))):(this.offset=!1,this.reset=!1,this.resetTimer&&(this.timer.clearTimeout(this.resetTimer),this.resetTimer=null)),this.routeIndex=s,this.pointIndex=a,this.position=o,this.emitNavigationStatus()}startSimulation(){this.resetStatus(this.paths),this.emitNavigationStatus(),this.startCurRouteSimulation()}pause(){var t;this.tweenUtil.clear(),(t=this.throttleUpdatePosition)==null||t.cancel(),this.paused=!0}continue(){this.paused=!1,this.startCurRouteSimulation()}startCurRouteSimulation(){return v(this,null,function*(){let{curRoutePath:t}=this;if(!t)return;this.simulationTween&&this.tweenUtil.remove(this.simulationTween);let e=[];return new Promise(n=>{let i=[this.position,...this.curRoutePathPoints.slice(this.pointIndex+1)],o=this.getCurRouteRemainDistance(),s=o/this.options.simulationSpeed,a=this.throttleUpdatePosition=(0,aS.throttle)(l=>{let c=Er(i,l.distance);c&&(e.push({floor:t.floor,pos:c}),this.toPosition(t.floor,c))},100),u=this.simulationTween=new sS.Tween({distance:0},this.tweenUtil.group).to({distance:o},s*1e3).onUpdate(a).onComplete(()=>{this.tweenUtil.remove(u),a.flush(),a.cancel(),this.routeIndex+1<this.paths.length?(this.routeIndex++,this.position=this.paths[this.routeIndex].points[0],this.pointIndex=0,setTimeout(()=>{n(this.startCurRouteSimulation())},3e3)):(n(!0),console.log(e,this.routeIndex,this.paths))}).start()})})}changeSimulationSpeed(t){this.options.simulationSpeed=t,this.paused||this.startCurRouteSimulation()}getCurRouteRemainDistance(){let{curRoutePathPoints:t,pointIndex:e,position:n}=this;if(!t.length)return 0;let i=[n,...t.slice(e+1)];return Lt(i)}getCurRouteToStartDistance(){let{curRoutePathPoints:t,pointIndex:e,position:n}=this;if(!t.length)return 0;let i=[...t.slice(0,e+1),n];return Lt(i)}getRemainDistance(){let t=this.getCurRouteRemainDistance();return{total:this.paths.slice(this.routeIndex+1).reduce((i,o)=>i+o.distance,0)+t,curRoute:t}}getNextDirDistance(){var t;if(!this.position)return null;let{pointIndex:e,curRoutePathPoints:n,position:i,curRoutePath:o}=this,s=e,a=en.FRONT,u=(o==null||(t=o.pointInfos[s])==null?void 0:t.crossName)||"",l=0,c=0,h=0;for(;a===en.FRONT&&s<=n.length;){let y=n[s],M=n[s+1],_=n[s+2];if(!y||!M)a=en.END;else if(l+=B(y,M),!_)a=en.END;else{a=fa(y,M,_),c=ao(y,M,_),h=(new oS.Vector2(_[0]-M[0],_[1]-M[1]).angle()*180/Math.PI-90+360)%360;var p;u=(p=o==null?void 0:o.pointInfos[s+1].crossName)!=null?p:"",s+=1}}n[s]&&(l=B(i,n[s]));let d=da(c);if(a===en.END&&l<=this.options.directionEmitThreshold)return{dir:a,distance:l,crossName:u,angle:c,nextAngle:h,nextDir:d};let m=this.getCurRouteToStartDistance();return e===0&&m<=5?{dir:en.START,distance:l,crossName:u,angle:c,nextAngle:h,nextDir:d}:(l>=this.options.directionEmitThreshold&&(a=en.FRONT),{dir:a,distance:l,crossName:u,angle:c,nextAngle:h,nextDir:d})}getCurPointAreaInfo(){let t=this.roadData.find(e=>e.floor===this.paths[this.routeIndex].floor);if(t){let e=(t.areas||[]).find(n=>{let i=(0,wi.polygon)(n.cds),o=(0,wi.point)(this.position);return(0,wi.booleanPointInPolygon)(o,i)});if(e)return e}return{imageUrl:null}}getNavigationInfo(){let{total:t,curRoute:e}=this.getRemainDistance(),n=this.getNextDirDistance();if(!n)return null;let{dir:i,distance:o,crossName:s,angle:a,nextAngle:u,nextDir:l}=n;e<=10&&(i=en.END);let{imageUrl:c}=this.getCurPointAreaInfo();return{distance:t,curRouteDistance:e,nextDirDistance:o,dir:i,angle:a,nextAngle:u,pos:this.position,routeIndex:this.routeIndex,crossName:s,offset:this.offset,reset:this.reset,imageUrl:c,nextDir:l}}dispose(){this.timer.dispose(),this.unRegistryEvent(),this.tweenUtil.clear(),this.navigation=null}constructor(t,e,n){super(),this.navigation=t,this.offset=!1,this.reset=!1,this.position=[0,0],this.routeIndex=0,this.pointIndex=0,this.paths=[],this.timer=new it,this.resetTimer=null,this.tweenUtil=new gn,this.paused=!1,this.onAddPaths=i=>{let{paths:o}=i;this.paths=o,this.resetStatus(o),this.simulationTween&&!this.paused&&this.startSimulation()},this.onUpdate=()=>{this.tweenUtil.update()},this.options=Object.assign({},L4,e),this.roadData=n,this.registryEvent()}};var uq=f(La(),1),lq=f(_n(),1),cq=f(An(),1),hq=f(Sn(),1),pq=f(Tn(),1),fq=f(bn(),1),dq=f(xn(),1),mq=f(wn(),1),gq=f(jn(),1),yq=f(En(),1),Mq=f(In(),1),vq=f(Dn(),1),Pq=f(Wn(),1),_q=f(Cn(),1),Aq=f(Yn(),1),Sq=f(eh(),1),Tq=f(I(),1),Ee=require("three");var Fn=class r extends pt{addDebug(){r.canvas.style.cssText=`
|
|
11817
11817
|
position: fixed;
|