@realsee/five 6.4.0-alpha.38 → 6.4.0-alpha.39
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/five/index.js +12 -12
- package/five/index.mjs +161 -161
- package/gltf-loader/index.js +3 -3
- package/gltf-loader/index.mjs +3 -3
- package/line/index.js +3 -3
- package/line/index.mjs +3 -3
- package/package.json +1 -1
- package/plugins/index.js +2 -2
- package/plugins/index.mjs +2 -2
- package/react/index.js +2 -2
- package/react/index.mjs +2 -2
- package/shader-lib/index.d.ts +6 -0
- package/shader-lib/index.js +37 -12
- package/shader-lib/index.mjs +224 -161
- package/sticker/index.js +3 -3
- package/sticker/index.mjs +3 -3
- package/umd/five-gltf-loader.js +3 -3
- package/umd/five-line.js +3 -3
- package/umd/five-plugins.js +2 -2
- package/umd/five-react.js +2 -2
- package/umd/five-shader-lib.js +37 -12
- package/umd/five-sticker.js +3 -3
- package/umd/five-vfx.js +2 -2
- package/umd/five-vue.js +2 -2
- package/umd/five.js +25 -25
- package/vfx/index.js +2 -2
- package/vfx/index.mjs +2 -2
- package/vue/index.js +2 -2
- package/vue/index.mjs +2 -2
- package/work-downloader/index.d.ts +1 -1
- package/work-downloader/index.js +2 -2
- package/work-downloader/index.mjs +2 -2
package/five/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five
|
|
4
|
-
* Generated:
|
|
5
|
-
* Version: 6.4.0-alpha.
|
|
4
|
+
* Generated: 6/5/2025
|
|
5
|
+
* Version: 6.4.0-alpha.39
|
|
6
6
|
* Terms:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
* Update: July 28, 2021
|
|
@@ -414,7 +414,7 @@ varying vec2 vUv;
|
|
|
414
414
|
void main() {
|
|
415
415
|
gl_FragColor = texture2D(map, vUv);
|
|
416
416
|
}
|
|
417
|
-
`,cacheMaterials=[],cameraPX=new THREE__namespace.PerspectiveCamera(90,1,.1,2);cameraPX.up.set(0,-1,0);cameraPX.lookAt(new THREE__namespace.Vector3(1,0,0));cameraPX.updateMatrix();cameraPX.matrixAutoUpdate=!1;var cameraNX=new THREE__namespace.PerspectiveCamera(90,1,.1,2);cameraNX.up.set(0,-1,0);cameraNX.lookAt(new THREE__namespace.Vector3(-1,0,0));cameraNX.updateMatrix();cameraNX.matrixAutoUpdate=!1;var cameraPY=new THREE__namespace.PerspectiveCamera(90,1,.1,2);cameraPY.up.set(0,0,1);cameraPY.lookAt(new THREE__namespace.Vector3(0,1,0));cameraPY.updateMatrix();cameraPY.matrixAutoUpdate=!1;var cameraNY=new THREE__namespace.PerspectiveCamera(90,1,.1,2);cameraNY.up.set(0,0,-1);cameraNY.lookAt(new THREE__namespace.Vector3(0,-1,0));cameraNY.updateMatrix();cameraNY.matrixAutoUpdate=!1;var cameraPZ=new THREE__namespace.PerspectiveCamera(90,1,.1,2);cameraPZ.up.set(0,-1,0);cameraPZ.lookAt(new THREE__namespace.Vector3(0,0,1));cameraPZ.updateMatrix();cameraPZ.matrixAutoUpdate=!1;var cameraNZ=new THREE__namespace.PerspectiveCamera(90,1,.1,2);cameraNZ.up.set(0,-1,0);cameraNZ.lookAt(new THREE__namespace.Vector3(0,0,-1));cameraNZ.updateMatrix();cameraNZ.matrixAutoUpdate=!1;var FACES={front:{camera:cameraPZ,index:4},back:{camera:cameraNZ,index:5},up:{camera:cameraPY,index:2},down:{camera:cameraNY,index:3},left:{camera:cameraNX,index:1},right:{camera:cameraPX,index:0}};function getMaterial(){var n=cacheMaterials.pop();return n||new THREE__namespace.ShaderMaterial({uniforms:{map:{value:null},flipY:{value:0}},vertexShader:PLANE_VERTEX_SHADER,fragmentShader:PLANE_FRAGMENT_SHADER,depthTest:!1,depthWrite:!1,stencilWrite:!1,blending:THREE__namespace.NoBlending,lights:!1,toneMapped:!1,fog:!1})}function releaseMaterial(n){n.uniforms.map.value=null,cacheMaterials.push(n)}function renderTexturesToCubeRenderTarget(n,t,e){var r=new THREE__namespace.Scene;r.matrixAutoUpdate=!1;var o=new THREE__namespace.Group;o.scale.set(1,1,-1),r.add(o);for(var s=[],u=new Set,l=0,c=n;l<c.length;l++){var f=c[l];u.add(f.face);var d=getMaterial();s.push(d),d.uniforms.map.value=f.texture,d.uniforms.flipY.value=f.flipY?1:0;var p=new THREE__namespace.Group,v=new THREE__namespace.Mesh(PLAME_GEOMETRY,d);v.position.set(f.position.x+f.size.x/2-.5,1-(f.position.y+f.size.y/2)-.5,-.5),v.scale.set(f.size.x,f.size.y,1),p.quaternion.copy(QUATERNION[f.face]),p.add(v),o.add(p)}var A=e.autoClear,g=e.sortObjects,h=e.xr.enabled,y=t.texture.generateMipmaps;e.autoClear=!1,e.sortObjects=!1,e.xr.enabled=!1,t.texture.generateMipmaps=!1;var m=e.getRenderTarget(),E=0;u.forEach(function(_){++E===u.size&&(t.texture.generateMipmaps=y),e.setRenderTarget(t,FACES[_].index),e.render(r,FACES[_].camera)}),e.setRenderTarget(m),e.autoClear=A,e.sortObjects=g,e.xr.enabled=h;for(var b=0,T=s;b<T.length;b++){var d=T[b];releaseMaterial(d)}}var canUseNativeImageBitmap=function(){return!1}();function createImageBitmapLikeImage(n){n===void 0&&(n={});var t=Object.assign(document.createElementNS("http://www.w3.org/1999/xhtml","img"),{crossOrigin:"",close:function(){n.onClose&&n.onClose.call(this),this.onerror=this.onload=this.close=noop$1,this.removeAttribute("src")}});return t}function createImageBitmapLike(n){return new Promise(function(t,e){var r=URL.createObjectURL(n),o=createImageBitmapLikeImage({onClose:function(){this.src===r&&URL.revokeObjectURL(r)}});o.onload=function(){o.src===r&&URL.revokeObjectURL(r),o.onload=o.onerror=noop$1,setTimeout(function(){t(o)},10)},o.onerror=function(){var s=o.src;o.onload=o.onerror=noop$1,o.close(),e(new Error("image load error: ".concat(s)))},o.decoding="async",o.src=r})}var canvasPool=[];function createCanvas(n,t){var e=canvasPool.shift();if(e)return e.width=n,e.height=t,e;var r=Object.assign(document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),{close:function(){r.close=noop$1,canvasPool.push(r)}});return r}function poolImageToTexture(n,t){if(t&&(n.width>t.width||n.height>t.height)){var e=createCanvas(Math.min(n.width,t.width),Math.min(n.height,t.height)),r=e.getContext("2d");r.clearRect(0,0,e.width,e.height),r.drawImage(n,0,0,e.width,e.height),n.close();var o=new THREE__namespace.Texture(e);o.needsUpdate=!0,o.flipY=!0;var s=o.dispose;return o.dispose=function(){e.close(),s.call(o),o.dispose=s},o}else{var u=new THREE__namespace.Texture(n);u.needsUpdate=!0,typeof ImageBitmap!="undefined"&&n instanceof ImageBitmap?u.flipY=!1:u.flipY=!0;var l=u.dispose;return u.dispose=function(){n.close(),l.call(u),u.dispose=l},u}}function poolImagesToCubeTexture(n){var t=new THREE__namespace.CubeTexture(n);t.needsUpdate=!0,t.flipY=!1;var e=t.dispose;return t.dispose=function(){for(var r=0,o=n;r<o.length;r++){var s=o[r];s.close()}e.call(t),t.dispose=e},t}var sharedSortVector3$1=new THREE__namespace.Vector3,FACE_ORDER=["right","left","up","down","front","back"],TileCubeTextureTarget=function(){function n(t,e,r,o,s){var u,l,c;this.tileTree=e,this.tileSources=r,this.options=o,this.renderer=s,this.name="",this.needsRender=!1,this.baseLevel=0,this.maxRequest=n.DEFAULT_MAX_REQUEST,this.disposed=!1,this.loadedCubeNodes=new Set,this.loadingCubeNodes=new Set,this.drawedCubeNodes=new Set,this.baseCubeTexture=null,this._cubeRenderTarget=null,this.prepareToRender=[],this.baseCubeTexture=t;var f=(u=this.baseCubeTexture.images)!==null&&u!==void 0?u:[],d=Array.isArray(f)&&f[0]&&f[0].width||((c=(l=o.imageURL)===null||l===void 0?void 0:l.options)===null||c===void 0?void 0:c.size);typeof d!="number"&&(d=2048),this.baseLevel=Math.floor(d/512)-1}return Object.defineProperty(n.prototype,"cubeRenderTarget",{get:function(){return this._cubeRenderTarget},set:function(t){var e,r,o,s,u,l;if(t===null)throw new Error("cannot set cubeRenderTarget to null.");t.width!==this.options.textureSize&&t.setSize(this.options.textureSize,this.options.textureSize),t.texture.format=(e=this.options.format)!==null&&e!==void 0?e:THREE__namespace.RGBAFormat,t.texture.minFilter=(r=this.options.minFilter)!==null&&r!==void 0?r:THREE__namespace.LinearFilter,t.texture.magFilter=(o=this.options.magFilter)!==null&&o!==void 0?o:THREE__namespace.LinearFilter,t.texture.wrapS=(s=this.options.wrapS)!==null&&s!==void 0?s:THREE__namespace.ClampToEdgeWrapping,t.texture.wrapT=(u=this.options.wrapT)!==null&&u!==void 0?u:THREE__namespace.ClampToEdgeWrapping,t.texture.generateMipmaps=(l=this.options.generateMipmaps)!==null&&l!==void 0?l:!0,this.baseCubeTexture&&(renderCubeTextureToCubeRenderTarget(this.baseCubeTexture,t,this.renderer),this.baseCubeTexture.dispose(),this.baseCubeTexture=null),this._cubeRenderTarget&&renderCubeTextureToCubeRenderTarget(this._cubeRenderTarget.texture,t,this.renderer),this._cubeRenderTarget=t},enumerable:!1,configurable:!0}),n.prototype.requestTile=function(t){var e=this,r,o,s,u,l,c,f=this.tileSources.filter(function(h){return h.level===t.level})[0];if(this.baseLevel>=t.level||!f)return this.loadedCubeNodes.add(t),this.prepareToRender.push({node:t,texture:null}),!1;var d=f.size,p=Math.pow(2,t.level)*t.position.y,v=Math.pow(2,t.level)*t.position.x,A="".concat(((s=(o=(r=this.options.imageURL)===null||r===void 0?void 0:r.options)===null||o===void 0?void 0:o.key)!==null&&s!==void 0?s:"pano.0").replace(/^pano/,"pano_tile"),".").concat(t.face,".").concat(t.level,".").concat(p,".").concat(v),g=__assign(__assign({},pick((l=(u=this.options.imageURL)===null||u===void 0?void 0:u.options)!==null&&l!==void 0?l:{key:"unknown"},["format","sharpen","mappings"])),{key:A,size:f.scale>=1?void 0:d*t.size*f.scale,cut:t.size===1?void 0:[d*t.position.x,d*t.position.y,d*t.size,d*t.size]});return t.size===1&&console.warn("tile: ".concat(g.key," should not appear.")),t.level===1&&f.scale>=.5&&(g.format==="jpg"||/\.jpg$/.test(f[t.face]))&&(g.size=void 0,g.quality||(g.quality=70)),this.loadingCubeNodes.add(t),this.options.textureLoader.loadTexture(f[t.face],{imageURL:{transform:(c=this.options.imageURL)===null||c===void 0?void 0:c.transform,options:__assign({},g)},format:THREE__namespace.RGBAFormat,timeout:this.options.timeout,magFilter:this.options.magFilter,minFilter:this.options.minFilter,fetcher:this.options.fetcher}).then(function(h){if(e.disposed){h.body.dispose();return}e.prepareToRender.push({node:t,texture:h.body}),e.loadedCubeNodes.add(t)}).catch(noop$1).then(function(){e.disposed||e.loadingCubeNodes.delete(t)}),!0},n.prototype.update=function(t,e){var r=this;if(!this.disposed){var o=t.planes[5].normal,s=Math.max(this.maxRequest-this.loadingCubeNodes.size,0),u=[];traverseTileCubeNode(this.tileTree,function(m){if(m.level>e||!t.intersectsBox(m.box))return!1;!r.loadedCubeNodes.has(m)&&!r.loadingCubeNodes.has(m)&&u.push(m)}),u.sort(function(m,E){return m.level!==E.level?m.level-E.level:m.box.getCenter(sharedSortVector3$1).angleTo(o)-E.box.getCenter(sharedSortVector3$1).angleTo(o)});for(var l=0,c=u;l<c.length;l++){var f=c[l];if(s<=0)break;var d=this.requestTile(f);d&&s--}if(this.cubeRenderTarget&&this.prepareToRender.length){this.prepareToRender.sort(function(m,E){return m.node.level-E.node.level});for(var p=[],v=0;v<this.prepareToRender.length;v++){var A=this.prepareToRender[v],f=A.node,g=A.texture;(f.parent===null||this.drawedCubeNodes.has(f.parent))&&(this.drawedCubeNodes.add(f),g&&p.push({face:f.face,position:f.position,size:new THREE__namespace.Vector2(f.size,f.size),texture:g,flipY:!g.flipY}),this.prepareToRender.splice(v,1),v--)}if(p.length){renderTexturesToCubeRenderTarget(p,this.cubeRenderTarget,this.renderer);for(var h=0,y=p;h<y.length;h++){var g=y[h];g.texture.dispose()}this.needsRender=!0}}}},Object.defineProperty(n.prototype,"tilePending",{get:function(){return this.loadingCubeNodes.size},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"texture",{get:function(){if(!this._cubeRenderTarget)throw new Error("cubeRenderTarget never set.");return this._cubeRenderTarget.texture},enumerable:!1,configurable:!0}),n.prototype.dispose=function(){if(!this.disposed){this.disposed=!0,this.baseCubeTexture&&(this.baseCubeTexture.dispose(),this.baseCubeTexture=null),this.loadingCubeNodes.clear(),this.loadedCubeNodes.clear();for(var t=0,e=this.prepareToRender;t<e.length;t++){var r=e[t];r.texture&&r.texture.dispose()}this.prepareToRender.length=0}},n.DEFAULT_MAX_REQUEST=3,n}(),TextureLoader=function(){function n(){}return n.prototype.loadTexture=function(t,e,r,o,s,u){var l,c,f,d,p,v,A;r===void 0&&(r=noop$1),o===void 0&&(o=noop$1),s===void 0&&(s=noop$1);var g={};typeof e.flipY!="undefined"&&(g.flipY=e.flipY),typeof e.format!="undefined"&&(g.format=e.format),typeof e.encoding!="undefined"&&(g.encoding=e.encoding),g.generateMipmaps=(l=e.generateMipmaps)!==null&&l!==void 0?l:!1,g.minFilter=(c=e.minFilter)!==null&&c!==void 0?c:THREE__namespace.LinearFilter,g.magFilter=(f=e.magFilter)!==null&&f!==void 0?f:THREE__namespace.LinearFilter;var h=(p=(d=e.imageURL)===null||d===void 0?void 0:d.options)!==null&&p!==void 0?p:{key:"unknown"};t=applyImageURLOptions(t,(v=e.imageURL)===null||v===void 0?void 0:v.transform,h);var y=getProtocol(t),m=(A=e.viaAjax)!==null&&A!==void 0?A:canUseNativeImageBitmap,E=isJsonpSource(t),b=/^https?:/.test(y);if(E?m=!0:b||(m=!1),m){var T=null,_="blob";return e.fetcher.ajax(t,{timeout:e.timeout,responseType:_},void 0,void 0,s).then(function(C){return createImageBitmapLike(C.body)}).then(function(C){return poolImageToTexture(C,e.maxSize)}).then(function(C){return Object.assign(C,g),C}).then(function(C){var B={meta:T,body:C};return r(B),B}).catch(function(C){return o(C),Promise.reject(C)})}else{var R=null,S;return Promise.resolve().then(function(){return createImageBitmapLikeImage()}).then(function(C){return S=C,e.fetcher.loadImage(t,{timeout:e.timeout},void 0,void 0,s,C)}).then(function(C){return R=C.meta,poolImageToTexture(C.body,e.maxSize)}).then(function(C){return Object.assign(C,g),C}).then(function(C){var B={meta:R,body:C};return r(B),B}).catch(function(C){return S&&S.close(),o(C),Promise.reject(C)})}},n.prototype.loadCubeTexture=function(t,e,r,o,s,u){var l,c,f,d,p,v,A;r===void 0&&(r=noop$1),o===void 0&&(o=noop$1),s===void 0&&(s=noop$1);var g={};typeof e.format!="undefined"&&(g.format=e.format),g.generateMipmaps=(l=e.generateMipmaps)!==null&&l!==void 0?l:!1,g.minFilter=(c=e.minFilter)!==null&&c!==void 0?c:THREE__namespace.LinearFilter,g.magFilter=(f=e.magFilter)!==null&&f!==void 0?f:THREE__namespace.LinearFilter;for(var h=[t[FACE_ORDER[0]],t[FACE_ORDER[1]],t[FACE_ORDER[2]],t[FACE_ORDER[3]],t[FACE_ORDER[4]],t[FACE_ORDER[5]]],y=[],m=[0,0,0,0,0,0],E=[],b=function(_){var R=(p=(d=e.imageURL)===null||d===void 0?void 0:d.options)!==null&&p!==void 0?p:{key:"unknown"},S=applyImageURLOptions(h[_],(v=e.imageURL)===null||v===void 0?void 0:v.transform,__assign(__assign({},R),{key:R.key+"."+FACE_ORDER[_]})),C=getProtocol(S),B=function(N){m[_]=N,s(m.reduce(function(k,U){return k+U},0)/6)},L=(A=e.viaAjax)!==null&&A!==void 0?A:!1,M=/^https?:$/.test(C),w=isJsonpSource(S);if(w?L=!0:M||(L=!1),L){var H="blob",O=e.fetcher.ajax(S,{timeout:e.timeout,responseType:H},void 0,void 0,B).then(function(N){return E[_]=N.meta,createImageBitmapLike(N.body)});y.push(O)}else{var I,O=Promise.resolve().then(function(){return createImageBitmapLikeImage()}).then(function(k){return I=k,e.fetcher.loadImage(S,{timeout:e.timeout},void 0,void 0,B,k)}).then(function(k){return E[_]=k.meta,k.body}).catch(function(k){return I&&I.close(),Promise.reject(k)});y.push(O)}},T=0;T<6;T++)b(T);return Promise.all(y).then(function(_){return poolImagesToCubeTexture(_)}).then(function(_){return Object.assign(_,__assign({encoding:THREE__namespace.sRGBEncoding},g)),_}).then(function(_){var R={body:_,meta:E};return r(R),R}).catch(function(_){for(var R=0,S=y;R<S.length;R++){var C=S[R];C.then(function(B){return B.close()}).catch(noop$1)}return o(_),Promise.reject(_)})},n.prototype.loadTiledCubeTexture=function(t,e,r,o,s,u,l){var c=this;return o===void 0&&(o=noop$1),s===void 0&&(s=noop$1),u===void 0&&(u=noop$1),new Promise(function(f,d){var p,v;c.loadCubeTexture(t,{imageURL:{transform:(p=r.imageURL)===null||p===void 0?void 0:p.transform,options:(v=r.imageURL)===null||v===void 0?void 0:v.options},format:THREE__namespace.RGBAFormat,viaAjax:r.viaAjax,timeout:r.timeout,fetcher:r.fetcher,magFilter:r.magFilter,minFilter:r.minFilter,generateMipmaps:r.generateMipmaps},function(A){var g,h=A.meta,y=A.body,m=(g=r.tileMaxLevel)!==null&&g!==void 0?g:2,E=Math.max(1024*m,512),b=createTileCubeTree(m),T=new TileCubeTextureTarget(y,b,e,{textureSize:E,textureLoader:c,imageURL:r.imageURL,magFilter:r.magFilter,minFilter:r.minFilter,generateMipmaps:r.generateMipmaps,timeout:r.timeout,fetcher:r.fetcher},l),_={meta:h,body:T};o(_),f(_)},function(A){s(A),d(A)},u,l).catch(noop$1)})},n}();const meshNoneVertexShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("n\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{H0v{pyqr-Ip|zz|{K0v{pyqr-Iz|}untrl}nlrr\x07K0v{pyqr-Ixv{{v{tl}nlrr\x07K0v{pyqr-Iy|tqr}uosl}nlrr\x07K0v{pyqr-Ipyv}}v{tl}yn{rl}nlrr\x07KZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--0v{pyqr-Ixv{onrlrr\x07K--0v{pyqr-Iortv{lrr\x07K--0v{pyqr-Iz|}untrlrr\x07K--0v{pyqr-Ixv{{v{tlrr\x07K--0v{pyqr-I}|wrplrr\x07K--0v{pyqr-Iy|tqr}uoslrr\x07K--0v{pyqr-Ipyv}}v{tl}yn{rlrr\x07K--Sv{ny]|vv|{-J-rpA5n{s|zrq9->;=6H--0vsqrs-b`RlV[`aN[PV[T----Sv{ny]|vv|{-J-v{n{prZnv\x07-7-Sv{ny]|vv|{H--0r{qvs--Sv{ny]|vv|{-J-z|qryZnv\x07-7-Sv{ny]|vv|{H--zn@-pnzrn_|nv|{Znv\x07-J-zn@5vrZnv\x07h=jh=j9-vrZnv\x07h>jh=j9-vrZnv\x07h?jh=j9-vrZnv\x07h=jh>j9-vrZnv\x07h>jh>j9-vrZnv\x07h?jh>j9-vrZnv\x07h=jh?j9-vrZnv\x07h>jh?j9-vrZnv\x07h?jh?j6H--PnzrnQvrpv|{-J-{|znyv r5pnzrn_|nv|{Znv\x07-7-rp@5=;=9-=;=9-:>;=66H--0v{pyqr-I|yq}|lrr\x07K--0v{pyqr-Is|tlrr\x07K--ZNV[lR[Q\f"),meshNoneFragmentShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=EC9-=;>=C9-=;>AF9->;=6{vs|z-nz}yrPor-}n{|=lzn}H{vs|z-znA-}n{|=lznv\x07H{vs|z-sy|n-}n{|=l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|=lyzv{n{prZn}H0r{qvs{vs|z-nz}yrPor-}n{|>lzn}H{vs|z-znA-}n{|>lznv\x07H{vs|z-sy|n-}n{|>l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|>lyzv{n{prZn}H0r{qvs{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trHn\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{H{vs|z-sy|n-u|{Sy||V{qr\x07H{vs|z-rp?-r|yv|{H{vs|z-sy|n-}v\x07ry_nv|H0vs{qrs-SYNal`UNQRQ--n\bv{t-rp@-[|znyH0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-Iqvurv{tl}nlsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-I}rpynzn}l}nlsntzr{K0v{pyqr-Iy|tqr}uosl}nlsntzr{K0v{pyqr-Ipyv}}v{tl}yn{rl}nlsntzr{Krp@- ||zcrp|5rp@-qvrpv|{9-rp@-rp|9-sy|n- ||z6-\n--sy|n-urn-J-q|5qvrpv|{9-rp|6H--rp@-q-J-qvrpv|{-7-urnH--rp@-}-J-rp|-:-qH--rp@-\0-J-}-7- ||zH--r{-{|znyv r5q-8-\x006H\fZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--0v{pyqr-Ipyv}}v{tl}yn{rlsntzr{K--<<-JJJ-全景图-JJJ--rp@-}n{|=a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|=lznv\x07h@j;\x07\b 6H--}n{|=a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|=a|crr\x079-}n{|=l ||z6H--}n{|=a|crr\x07-J-}n{|=a|crr\x07-7-zn@5}n{|=lznv\x076H--rp@-}n{|>a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|>lznv\x07h@j;\x07\b 6H--}n{|>a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|>a|crr\x079-}n{|>l ||z6H--}n{|>a|crr\x07-J-}n{|>a|crr\x07-7-zn@5}n{|>lznv\x076H--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-r\x07rPor5}n{|=lzn}9-}n{|=a|crr\x076H--rpA-}n{|>P|y|-J-r\x07rPor5}n{|>lzn}9-}n{|>a|crr\x076H--0vs-qrsv{rq5b`RlYbZV[N[PR6----}n{|=P|y|;n-J->;=-:-r\x07rPor5}n{|=lyzv{n{prZn}9-}n{|=a|crr\x076;H----}n{|>P|y|;n-J->;=-:-r\x07rPor5}n{|>lyzv{n{prZn}9-}n{|>a|crr\x076;H--0r{qvs--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv\x075}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv\x075}n{|P|y|9-}n{|>P|y|9-zn\x075=;=9-oynpx]|tr-:-]V-8->;=66H--0ryvs-qrsv{rq5b`Rl`]_RNQla_N[`VaV\\[6----rp?-prr{Pr{rP||q-J-r|yv|{-7-}v\x07ry_nv|-<-?;=H----sy|n-n{vv|{_nqv-J-qvn{pr5rp?5=;=9-=;=69-prr{Pr{rP||q6-7->;?H----sy|n-n{vv|{]|tr-J--qvn{pr5tylSntP||q;\x07\b9-prr{Pr{rP||q6-<-n{vv|{_nqvH----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-z||ur}5=;=9-=;?9-}|tr-:-n{vv|{]|tr66H--0ryr----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-}|tr6H--0r{qvs--tylSntP|y|-J-zv\x075}n{|P|y|9-rpA5}n{|P|y|;to9-=;=69-pynz}5z|qryNy}un-7-@=;=9-=;=9->;=66H--<<-JJJJJJJJJJJJJJJJ--ZNV[lZ\\QRYlP\\Y\\_--0v{pyqr-Is|tlsntzr{K--0v{pyqr-I}rzyv}yvrqlny}unlsntzr{K--0v{pyqr-Iqvurv{tlsntzr{K--ZNV[lR[Q\f"),meshBasicVertexShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvs0vs-qrsv{rq5b`RlcR_aRelZN_X6--nvor-sy|n-znxH0r{qvsn\bv{t-sy|n-V_||sZnxHn\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-rp@-cvr]|vv|{H0vs{qrs-SYNal`UNQRQ--n\bv{t-rp@-[|znyH--0vsqrs-b`RlaN[TR[a----n\bv{t-rp@-an{tr{H----n\bv{t-rp@-Ovn{tr{H--0r{qvs0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-Il}nlrr\x07K0v{pyqr-I?l}nlrr\x07K0v{pyqr-Ir{zn}l}nlrr\x07K0v{pyqr-Ip|y|l}nlrr\x07K0v{pyqr-Is|tl}nlrr\x07K0v{pyqr-Iz|}untrl}nlrr\x07K0v{pyqr-Ixv{{v{tl}nlrr\x07K0v{pyqr-Iy|tqr}uosl}nlrr\x07K0v{pyqr-Ipyv}}v{tl}yn{rl}nlrr\x07KZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--0v{pyqr-Ilrr\x07K--0v{pyqr-I?lrr\x07K--0v{pyqr-Ip|y|lrr\x07K--0v{pyqr-Ixv{onrlrr\x07K--0v{pyqr-Iortv{{|znylrr\x07K--0v{pyqr-Iz|}u{|znylrr\x07K--0v{pyqr-Ixv{{|znylrr\x07K--0v{pyqr-Iqrsny{|znylrr\x07K--0vs{qrs-SYNal`UNQRQ-<<-[|zny-p|z}rq-vu-qrvnvr-ur{-SYNal`UNQRQ--[|zny-J-{|znyv r5-n{s|zrq[|zny-6H--0r{qvs--0v{pyqr-Iortv{lrr\x07K--0v{pyqr-Iz|}untrlrr\x07K--0v{pyqr-Ixv{{v{tlrr\x07K--0v{pyqr-I}|wrplrr\x07K--0v{pyqr-Iy|tqr}uoslrr\x07K--0v{pyqr-Ipyv}}v{tl}yn{rlrr\x07K--cvr]|vv|{-J-:z]|vv|{;\x07\b H--Sv{ny]|vv|{-J-rpA5n{s|zrq9->;=6H--0vsqrs-b`RlV[`aN[PV[T----Sv{ny]|vv|{-J-v{n{prZnv\x07-7-Sv{ny]|vv|{H--0r{qvs--Sv{ny]|vv|{-J-z|qryZnv\x07-7-Sv{ny]|vv|{H--zn@-pnzrn_|nv|{Znv\x07-J-zn@5vrZnv\x07h=jh=j9-vrZnv\x07h>jh=j9-vrZnv\x07h?jh=j9-vrZnv\x07h=jh>j9-vrZnv\x07h>jh>j9-vrZnv\x07h?jh>j9-vrZnv\x07h=jh?j9-vrZnv\x07h>jh?j9-vrZnv\x07h?jh?j6H--PnzrnQvrpv|{-J-{|znyv r5pnzrn_|nv|{Znv\x07-7-rp@5=;=9-=;=9-:>;=66H--0vs-qrsv{rq5b`RlRQY6----Y|tQr}u-J-y|t?5:z]|vv|{; 6H--0r{qvs--V_||sZnx-J-=;=H--0vs-qrsv{rq5b`RlcR_aRelZN_X6----V_||sZnx-J-r}5no5znx-:->;=69-=;>6H--0r{qvs--0v{pyqr-I|yq}|lrr\x07K--0v{pyqr-Ir{zn}lrr\x07K--0v{pyqr-Is|tlrr\x07K--ZNV[lR[Q\f"),meshBasicFragmentShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=EC9-=;>=C9-=;>AF9->;=6{vs|z-sy|n-sy||V{qr\x07H{vs|z-nz}yrPor-}n{|=lzn}H{vs|z-znA-}n{|=lznv\x07H{vs|z-sy|n-}n{|=l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|=lyzv{n{prZn}H0r{qvs{vs|z-nz}yrPor-}n{|>lzn}H{vs|z-znA-}n{|>lznv\x07H{vs|z-sy|n-}n{|>l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|>lyzv{n{prZn}H0r{qvs{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trH0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6--{vs|z-rp@-p|{n{P|y|H0r{qvs0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6--{vs|z-nz}yr?Q-tnqvr{ar\x07rH0r{qvsp-Pyv}}r-\n--znA-znv\x07V{rrH--sy|n-sy||V{qr\x07H\fH0vs-[bZlPYV]]R_`-K-=--{vs|z-Pyv}}r-pyv}}rh[bZlPYV]]R_`jH0r{qvs0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvsn\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-rp@-cvr]|vv|{Hn\bv{t-sy|n-V_||sZnxH{vs|z-sy|n-u|{Sy||V{qr\x07H{vs|z-rp?-r|yv|{H{vs|z-sy|n-}v\x07ry_nv|H{vs|z-rp@-qvssrH{vs|z-sy|n-p|y|Ny}unH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-ovtu{rH{vs|z-rp@-z|qryO|{qv{tZn\x07H{vs|z-rp@-z|qryO|{qv{tZv{H<<u调整{vs|z-sy|n-p|y|`nnv|{H{vs|z-sy|n-p|y|Ovtu{rH0vs{qrs-SYNal`UNQRQ--n\bv{t-rp@-[|znyH--0vsqrs-b`RlaN[TR[a----n\bv{t-rp@-an{tr{H----n\bv{t-rp@-Ovn{tr{H--0r{qvs0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-Iqvurv{tl}nlsntzr{K0v{pyqr-Ip|y|l}nlsntzr{K0v{pyqr-Il}nlsntzr{K0v{pyqr-I?l}nlsntzr{K0v{pyqr-Izn}l}nlsntzr{K0v{pyqr-Iny}unzn}l}nlsntzr{K0v{pyqr-In|zn}l}nlsntzr{K0v{pyqr-Iyvtuzn}l}nlsntzr{K0v{pyqr-Ir{zn}lp|zz|{l}nlsntzr{K0v{pyqr-Ir{zn}l}nlsntzr{K0v{pyqr-Iporllrsyrpv|{lsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-I}rpynzn}l}nlsntzr{K0v{pyqr-Iy|tqr}uosl}nlsntzr{K0v{pyqr-Ipyv}}v{tl}yn{rl}nlsntzr{Krp@- ||zcrp|5rp@-qvrpv|{9-rp@-rp|9-sy|n- ||z6-\n--sy|n-urn-J-q|5qvrpv|{9-rp|6H--rp@-q-J-qvrpv|{-7-urnH--rp@-}-J-rp|-:-qH--rp@-\0-J-}-7- ||zH--r{-{|znyv r5q-8-\x006H\frp@-to?u5rp@-p6-\n----rpA-X-J-rpA5=;=9-:>;=-<-@;=9-?;=-<-@;=9-:>;=6H----rpA-}-J-zv\x075rpA5p;ot9-X; 69-rpA5p;to9-X;\x07\b69-r}5p;o9-p;t66H----rpA-\0-J-zv\x075rpA5};\x07\b9-p;69-rpA5p;9-};\b \x0769-r}5};\x079-p;66H----sy|n-q-J-\0;\x07-:-zv{5\0;9-\0;\b6H----sy|n-r-J->;=r:>=H----r{-rp@5no5\0; -8-5\0;-:-\0;\b6-<-5C;=-7-q-8-r669-q-<-5\0;\x07-8-r69-\0;\x076H\frp@-u?to5rp@-p6-\n----rpA-X-J-rpA5>;=9-?;=-<-@;=9->;=-<-@;=9-@;=6H----rp@-}-J-no5snp5p;\x07\x07\x07-8-X;\x07\b 6-7-C;=-:-X;6H----r{-p; -7-zv\x075X;\x07\x07\x079-pynz}5}-:-X;\x07\x07\x079-=;=9->;=69-p;\b6H\frp@-trP|y|O\bUrvtu5nz}yr?Q-tnqvr{ar\x07r9-rpA-Sv{ny]|vv|{6-\n--sy|n--J-5Sv{ny]|vv|{;\b-:-z|qryO|{qv{tZv{;\b6-<-5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6H--r{-r\x07r?Q5tnqvr{ar\x07r9-rp?59-=;B66;toH\fZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--<<-JJJ-顶部裁切-JJJ--sy|n-||sP]|tr-J-}|5pynz}5:PnzrnQvrpv|{;\b9-=;=9->;=69-@;=6H--vs-5----V_||sZnx-K-=;B-33----Sv{ny]|vv|{;\b-K-z|qryO|{qv{tZn\x07;\b-:-||sP]|tr-7-5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6--6-\n----qvpnqH--\f--<<-JJJJJJJJJJJJJJ--<<-JJJ-前置裁切计算-JJJ--0vs-[bZlPYV]]R_`-K-=----o||y-pyv}}rqH----rpA-pyv}}r]|vv|{H----0}ntzn-{|yyly||}ln----s|-5-v{-v-J-=H-v-I-[bZlPYV]]R_`H-v-88-6-\n------pyv}}r]|vv|{-J-pyv}}rh-v-j;znv\x07V{rr-7-Sv{ny]|vv|{H------pyv}}rq-J-5pyv}}rh-v-j;sy||V{qr\x07-I-=;=-\v\v-no5sy||V{qr\x07-:-pyv}}rh-v-j;sy||V{qr\x076-I->;=6H------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\x07-K-:=;B-33-pyv}}r]|vv|{;\x07-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\b-K-:=;B-33-pyv}}r]|vv|{;\b-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{; -K-:=;B-33-pyv}}r]|vv|{; -I-=;BH------vs-5pyv}}rq6-\n--------qvpnqH------\f----\f----0}ntzn-{|yyly||}lr{q--0r{qvs--<<-JJJJJJJJJJJJJJJJJJ--0v{pyqr-Ipyv}}v{tl}yn{rlsntzr{K--rpA-qvssrP|y|-J-rpA5-qvssr9-p|y|Ny}un-7-|}npv\b-6H--<<-JJJ-高度色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6----qvssrP|y|;to-J-trP|y|O\bUrvtu5tnqvr{ar\x07r9-Sv{ny]|vv|{6H--0r{qvs--<<-JJJJJJJJJJJ--<<-JJJ-纯色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6----qvssrP|y|;to-J-p|{n{P|y|H--0r{qvs--<<-JJJJJJJJJJJ--0v{pyqr-Iy|tqr}uoslsntzr{K--0v{pyqr-Izn}lsntzr{K--0v{pyqr-Ip|y|lsntzr{K--0v{pyqr-Iny}unzn}lsntzr{K--0v{pyqr-Iny}unrlsntzr{K--0v{pyqr-I}rpynzn}lsntzr{K--0v{pyqr-I{|znylsntzr{lortv{K--_rsyrprqYvtu-rsyrprqYvtu-J-_rsyrprqYvtu5-rp@5-=;=-69-rp@5-=;=-69-rp@5-=;=-69-rp@5-=;=-6-6H--<<-nppzynv|{-5onxrq-v{qvrp-yvtuv{t-|{y\b6--0vsqrs-b`RlYVTUaZN]----rpA-yvtuZn}ar\x07ryJ-r\x07r?Q5-yvtuZn}9-b?-6H----rsyrprqYvtu;v{qvrpQvssr-8J-yvtuZn}ar\x07rya|Yv{rn5-yvtuZn}ar\x07ry-6;to-7-yvtuZn}V{r{v\bH--0ryr----rsyrprqYvtu;v{qvrpQvssr-8J-rp@5->;=-6H--0r{qvs--<<-z|qynv|{--0v{pyqr-In|zn}lsntzr{K--rsyrprqYvtu;v{qvrpQvssr-7J-qvssrP|y|;toH--rp@-|t|v{tYvtu-J-rsyrprqYvtu;v{qvrpQvssrH--0v{pyqr-Ir{zn}lsntzr{K--tylSntP|y|-J-rpA5-|t|v{tYvtu9-qvssrP|y|;n-6H--<<-JJJ-楼层显示-JJJ--sy|n-sy||\\}npv\b-J->;=H--vs-5u|{Sy||V{qr\x07-K-:=;=>-33-no5sy||V{qr\x07-:-u|{Sy||V{qr\x076-K-=;FF6-\n----sy||\\}npv\b-J-=;?-7-zv{55>;=-8-PnzrnQvrpv|{;\b69->;=6H--\f--tylSntP|y|;n-J-tylSntP|y|;n-7-sy||\\}npv\b-7-ovtu{rH--<<-JJJJJJJJJJJJJJ--ZNV[lZ\\QRYlP\\Y\\_--<<色调映射-色彩空间转换--0v{pyqr-I|{rzn}}v{tlsntzr{K--0v{pyqr-Ir{p|qv{tlsntzr{K--<<-JJJ-颜色增益调整-JJJ--rp@-toP|y|-J-tylSntP|y|;toH--rp@-uP|y|-J-to?u5toP|y|6H--uP|y|;\b-8J-p|y|`nnv|{H--uP|y|; -8J-p|y|Ovtu{rH--tylSntP|y|;to-J-u?to5uP|y|6H--<<-JJJ-全景图-JJJ--rp@-}n{|=a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|=lznv\x07h@j;\x07\b 6H--}n{|=a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|=a|crr\x079-}n{|=l ||z6H--}n{|=a|crr\x07-J-}n{|=a|crr\x07-7-zn@5}n{|=lznv\x076H--rp@-}n{|>a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|>lznv\x07h@j;\x07\b 6H--}n{|>a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|>a|crr\x079-}n{|>l ||z6H--}n{|>a|crr\x07-J-}n{|>a|crr\x07-7-zn@5}n{|>lznv\x076H--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-r\x07rPor5}n{|=lzn}9-}n{|=a|crr\x076H--rpA-}n{|>P|y|-J-r\x07rPor5}n{|>lzn}9-}n{|>a|crr\x076H--0vs-qrsv{rq5b`RlYbZV[N[PR6----}n{|=P|y|;n-J->;=-:-r\x07rPor5}n{|=lyzv{n{prZn}9-}n{|=a|crr\x076;H----}n{|>P|y|;n-J->;=-:-r\x07rPor5}n{|>lyzv{n{prZn}9-}n{|>a|crr\x076;H--0r{qvs--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv\x075}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv\x075}n{|P|y|9-}n{|>P|y|9-zn\x075=;=9-oynpx]|tr-:-]V-8->;=66H--0ryvs-qrsv{rq5b`Rl`]_RNQla_N[`VaV\\[6----rp?-prr{Pr{rP||q-J-r|yv|{-7-}v\x07ry_nv|-<-?;=H----sy|n-n{vv|{_nqv-J-qvn{pr5rp?5=;=9-=;=69-prr{Pr{rP||q6-7->;?H----sy|n-n{vv|{]|tr-J-qvn{pr5tylSntP||q;\x07\b9-prr{Pr{rP||q6-<-n{vv|{_nqvH----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-z||ur}5=;=9-=;?9-}|tr-:-n{vv|{]|tr66H--0ryr----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-}|tr6H--0r{qvs--tylSntP|y|-J-zv\x075}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H--<<-JJJJJJJJJJJJJ--0v{pyqr-Is|tlsntzr{K--0v{pyqr-I}rzyv}yvrqlny}unlsntzr{K--0v{pyqr-Iqvurv{tlsntzr{K--0vs-qrsv{rq5b`RlRQY6----tylSntP|y|;n-J-Y|tQr}uH--0r{qvs--ZNV[lR[Q\f"),meshPhongVertexShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("0qrsv{r-]U\\[T0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvs0vs-qrsv{rq5b`RlcR_aRelZN_X6--nvor-sy|n-znxH0r{qvsn\bv{t-sy|n-V_||sZnxHn\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-rp@-cvr]|vv|{H0vs{qrs-SYNal`UNQRQ--n\bv{t-rp@-[|znyH--0vsqrs-b`RlaN[TR[a----n\bv{t-rp@-an{tr{H----n\bv{t-rp@-Ovn{tr{H--0r{qvs0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-Il}nlrr\x07K0v{pyqr-I?l}nlrr\x07K0v{pyqr-Iqv}ynprzr{zn}l}nlrr\x07K0v{pyqr-Ir{zn}l}nlrr\x07K0v{pyqr-Ip|y|l}nlrr\x07K0v{pyqr-Is|tl}nlrr\x07K0v{pyqr-Iz|}untrl}nlrr\x07K0v{pyqr-Ixv{{v{tl}nlrr\x07K0v{pyqr-Iunq|zn}l}nlrr\x07K0v{pyqr-Iy|tqr}uosl}nlrr\x07K0v{pyqr-Ipyv}}v{tl}yn{rl}nlrr\x07KZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--0v{pyqr-Ilrr\x07K--0v{pyqr-I?lrr\x07K--0v{pyqr-Ip|y|lrr\x07K--0v{pyqr-Iortv{{|znylrr\x07K--0v{pyqr-Iz|}u{|znylrr\x07K--0v{pyqr-Ixv{onrlrr\x07K--0v{pyqr-Ixv{{|znylrr\x07K--0v{pyqr-Iqrsny{|znylrr\x07K--0vs{qrs-SYNal`UNQRQ-<<-[|zny-p|z}rq-vu-qrvnvr-ur{-SYNal`UNQRQ----[|zny-J-{|znyv r5-n{s|zrq[|zny-6H----0vsqrs-b`RlaN[TR[a------an{tr{-J-{|znyv r5-n{s|zrqan{tr{-6H------Ovn{tr{-J-{|znyv r5-p|5-[|zny9-an{tr{-6-7-n{tr{;-6H----0r{qvs--0r{qvs--0v{pyqr-Iortv{lrr\x07K--0v{pyqr-Iz|}untrlrr\x07K--0v{pyqr-Ixv{{v{tlrr\x07K--0v{pyqr-Iqv}ynprzr{zn}lrr\x07K--0v{pyqr-I}|wrplrr\x07K--0v{pyqr-Iy|tqr}uoslrr\x07K--0v{pyqr-Ipyv}}v{tl}yn{rlrr\x07K--cvr]|vv|{-J-:-z]|vv|{;\x07\b H--Sv{ny]|vv|{-J-rpA5n{s|zrq9->;=6H--0vsqrs-b`RlV[`aN[PV[T----Sv{ny]|vv|{-J-v{n{prZnv\x07-7-Sv{ny]|vv|{H--0r{qvs--Sv{ny]|vv|{-J-z|qryZnv\x07-7-Sv{ny]|vv|{H--zn@-pnzrn_|nv|{Znv\x07-J-zn@5vrZnv\x07h=jh=j9-vrZnv\x07h>jh=j9-vrZnv\x07h?jh=j9-vrZnv\x07h=jh>j9-vrZnv\x07h>jh>j9-vrZnv\x07h?jh>j9-vrZnv\x07h=jh?j9-vrZnv\x07h>jh?j9-vrZnv\x07h?jh?j6H--PnzrnQvrpv|{-J-{|znyv r5pnzrn_|nv|{Znv\x07-7-rp@5=;=9-=;=9-:>;=66H--0vs-qrsv{rq5b`RlRQY6----Y|tQr}u-J-y|t?5:z]|vv|{; 6H--0r{qvs--V_||sZnx-J-=;=H--0vs-qrsv{rq5b`RlcR_aRelZN_X6----V_||sZnx-J-r}5no5znx-:->;=69-=;>6H--0r{qvs--0v{pyqr-I|yq}|lrr\x07K--0v{pyqr-Ir{zn}lrr\x07K--0v{pyqr-Iunq|zn}lrr\x07K--0v{pyqr-Is|tlrr\x07K--ZNV[lR[Q\f"),meshPhongFragmentShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("0qrsv{r-]U\\[T0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=EC9-=;>=C9-=;>AF9->;=6{vs|z-sy|n-sy||V{qr\x07H{vs|z-nz}yrPor-}n{|=lzn}H{vs|z-znA-}n{|=lznv\x07H{vs|z-sy|n-}n{|=l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|=lyzv{n{prZn}H0r{qvs{vs|z-nz}yrPor-}n{|>lzn}H{vs|z-znA-}n{|>lznv\x07H{vs|z-sy|n-}n{|>l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|>lyzv{n{prZn}H0r{qvs{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trH0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6--{vs|z-rp@-p|{n{P|y|H0r{qvs0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6--{vs|z-nz}yr?Q-tnqvr{ar\x07rH0r{qvsp-Pyv}}r-\n--znA-znv\x07V{rrH--sy|n-sy||V{qr\x07H\fH0vs-[bZlPYV]]R_`-K-=--{vs|z-Pyv}}r-pyv}}rh[bZlPYV]]R_`jH0r{qvs0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvsn\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-sy|n-V_||sZnxH{vs|z-sy|n-u|{Sy||V{qr\x07H{vs|z-rp?-r|yv|{H{vs|z-sy|n-}v\x07ry_nv|H{vs|z-rp@-qvssrH{vs|z-sy|n-p|y|Ny}unH{vs|z-rp@-rzvvrH{vs|z-rp@-}rpynH{vs|z-sy|n-uv{v{rH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-ovtu{rH{vs|z-rp@-z|qryO|{qv{tZn\x07H{vs|z-rp@-z|qryO|{qv{tZv{H<<u调整{vs|z-sy|n-p|y|`nnv|{H{vs|z-sy|n-p|y|Ovtu{rH0vs{qrs-SYNal`UNQRQ--0vsqrs-b`RlaN[TR[a----n\bv{t-rp@-an{tr{H----n\bv{t-rp@-Ovn{tr{H--0r{qvs0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-I}npxv{tK0v{pyqr-Iqvurv{tl}nlsntzr{K0v{pyqr-Ip|y|l}nlsntzr{K0v{pyqr-Il}nlsntzr{K0v{pyqr-I?l}nlsntzr{K0v{pyqr-Izn}l}nlsntzr{K0v{pyqr-Iny}unzn}l}nlsntzr{K0v{pyqr-In|zn}l}nlsntzr{K0v{pyqr-Iyvtuzn}l}nlsntzr{K0v{pyqr-Irzvvrzn}l}nlsntzr{K0v{pyqr-IoqsK0v{pyqr-Iporllrsyrpv|{lsntzr{K0v{pyqr-Ir{zn}lp|zz|{l}nlsntzr{K0v{pyqr-Ir{zn}l}nlsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-Iyvtul}nlortv{K0v{pyqr-Iyvtul}u|{tl}nlsntzr{K0v{pyqr-Iunq|zn}l}nlsntzr{K0v{pyqr-Ioz}zn}l}nlsntzr{K0v{pyqr-I{|znyzn}l}nlsntzr{K0v{pyqr-I}rpynzn}l}nlsntzr{K0v{pyqr-Iy|tqr}uosl}nlsntzr{K0v{pyqr-Ipyv}}v{tl}yn{rl}nlsntzr{Krp@- ||zcrp|5rp@-qvrpv|{9-rp@-rp|9-sy|n- ||z6-\n--sy|n-urn-J-q|5qvrpv|{9-rp|6H--rp@-q-J-qvrpv|{-7-urnH--rp@-}-J-rp|-:-qH--rp@-\0-J-}-7- ||zH--r{-{|znyv r5q-8-\x006H\frp@-to?u5rp@-p6-\n----rpA-X-J-rpA5=;=9-:>;=-<-@;=9-?;=-<-@;=9-:>;=6H----rpA-}-J-zv\x075rpA5p;ot9-X; 69-rpA5p;to9-X;\x07\b69-r}5p;o9-p;t66H----rpA-\0-J-zv\x075rpA5};\x07\b9-p;69-rpA5p;9-};\b \x0769-r}5};\x079-p;66H----sy|n-q-J-\0;\x07-:-zv{5\0;9-\0;\b6H----sy|n-r-J->;=r:>=H----r{-rp@5no5\0; -8-5\0;-:-\0;\b6-<-5C;=-7-q-8-r669-q-<-5\0;\x07-8-r69-\0;\x076H\frp@-u?to5rp@-p6-\n----rpA-X-J-rpA5>;=9-?;=-<-@;=9->;=-<-@;=9-@;=6H----rp@-}-J-no5snp5p;\x07\x07\x07-8-X;\x07\b 6-7-C;=-:-X;6H----r{-p; -7-zv\x075X;\x07\x07\x079-pynz}5}-:-X;\x07\x07\x079-=;=9->;=69-p;\b6H\frp@-trP|y|O\bUrvtu5nz}yr?Q-tnqvr{ar\x07r9-rpA-Sv{ny]|vv|{6-\n--sy|n--J-5Sv{ny]|vv|{;\b-:-z|qryO|{qv{tZv{;\b6-<-5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6H--r{-r\x07r?Q5tnqvr{ar\x07r9-rp?59-=;B66;toH\fZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--<<-JJJ-顶部裁切-JJJ--sy|n-||sP]|tr-J-}|5pynz}5:PnzrnQvrpv|{;\b9-=;=9->;=69-@;=6H--vs-5----V_||sZnx-K-=;B-33----Sv{ny]|vv|{;\b-K-z|qryO|{qv{tZn\x07;\b-:-||sP]|tr-7-5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6--6-\n----qvpnqH--\f--<<-JJJJJJJJJJJJJJ--<<-JJJ-前置裁切计算-JJJ--0vs-[bZlPYV]]R_`-K-=----o||y-pyv}}rqH----rpA-pyv}}r]|vv|{H----0}ntzn-{|yyly||}ln----s|-5-v{-v-J-=H-v-I-[bZlPYV]]R_`H-v-88-6-\n------pyv}}r]|vv|{-J-pyv}}rh-v-j;znv\x07V{rr-7-Sv{ny]|vv|{H------pyv}}rq-J-5pyv}}rh-v-j;sy||V{qr\x07-I-=;=-\v\v-no5sy||V{qr\x07-:-pyv}}rh-v-j;sy||V{qr\x076-I->;=6H------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\x07-K-:=;B-33-pyv}}r]|vv|{;\x07-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\b-K-:=;B-33-pyv}}r]|vv|{;\b-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{; -K-:=;B-33-pyv}}r]|vv|{; -I-=;BH------vs-5pyv}}rq6-\n--------qvpnqH------\f----\f----0}ntzn-{|yyly||}lr{q--0r{qvs--<<-JJJJJJJJJJJJJJJJ--0v{pyqr-Ipyv}}v{tl}yn{rlsntzr{K--rpA-qvssrP|y|-J-rpA5-qvssr9-p|y|Ny}un-7-|}npv\b-6H--<<-JJJ-高度色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6----qvssrP|y|;to-J-trP|y|O\bUrvtu5tnqvr{ar\x07r9-Sv{ny]|vv|{6H--0r{qvs--<<-JJJJJJJJJJJ--<<-JJJ-纯色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6----qvssrP|y|;to-J-p|{n{P|y|H--0r{qvs--<<-JJJJJJJJJJJ--_rsyrprqYvtu-rsyrprqYvtu-J-_rsyrprqYvtu5-rp@5-=;=-69-rp@5-=;=-69-rp@5-=;=-69-rp@5-=;=-6-6H--rp@-|nyRzvvr_nqvn{pr-J-rzvvrH--0v{pyqr-Iy|tqr}uoslsntzr{K--0v{pyqr-Izn}lsntzr{K--0v{pyqr-Ip|y|lsntzr{K--0v{pyqr-Iny}unzn}lsntzr{K--0v{pyqr-Iny}unrlsntzr{K--0v{pyqr-I}rpynzn}lsntzr{K--0v{pyqr-I{|znylsntzr{lortv{K--0v{pyqr-I{|znylsntzr{lzn}K--0v{pyqr-Irzvvrzn}lsntzr{K--<<-nppzynv|{--0v{pyqr-Iyvtul}u|{tlsntzr{K--0v{pyqr-Iyvtulsntzr{lortv{K--0v{pyqr-Iyvtulsntzr{lzn}K--0v{pyqr-Iyvtulsntzr{lr{qK--<<-z|qynv|{--0v{pyqr-In|zn}lsntzr{K--rp@-|t|v{tYvtu-J-rsyrprqYvtu;qvrpQvssr-8-rsyrprqYvtu;v{qvrpQvssr-8-rsyrprqYvtu;qvrp`}rpyn-8-rsyrprqYvtu;v{qvrp`}rpyn-8-|nyRzvvr_nqvn{prH--0v{pyqr-Ir{zn}lsntzr{K--tylSntP|y|-J-rpA5-|t|v{tYvtu9-qvssrP|y|;n-6H--<<-JJJ-楼层显示-JJJ--sy|n-sy||\\}npv\b-J->;=H--vs-5u|{Sy||V{qr\x07-K-:=;=>-33-no5sy||V{qr\x07-:-u|{Sy||V{qr\x076-K-=;FF6-\n----sy||\\}npv\b-J-=;?-7-zv{55>;=-8-PnzrnQvrpv|{;\b69->;=6H--\f--tylSntP|y|;n-J-tylSntP|y|;n-7-sy||\\}npv\b-7-ovtu{rH--<<-JJJJJJJJJJJJJJ--ZNV[lZ\\QRYlP\\Y\\_--<<色调映射-色彩空间转换--0v{pyqr-I|{rzn}}v{tlsntzr{K--0v{pyqr-Ir{p|qv{tlsntzr{K--<<-JJJ-颜色增益调整-JJJ--rp@-toP|y|-J-tylSntP|y|;toH--rp@-uP|y|-J-to?u5toP|y|6H--uP|y|;\b-8J-p|y|`nnv|{H--uP|y|; -8J-p|y|Ovtu{rH--tylSntP|y|;to-J-u?to5uP|y|6H--<<-JJJ-全景图-JJJ--rp@-}n{|=a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|=lznv\x07h@j;\x07\b 6H--}n{|=a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|=a|crr\x079-}n{|=l ||z6H--}n{|=a|crr\x07-J-}n{|=a|crr\x07-7-zn@5}n{|=lznv\x076H--rp@-}n{|>a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|>lznv\x07h@j;\x07\b 6H--}n{|>a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|>a|crr\x079-}n{|>l ||z6H--}n{|>a|crr\x07-J-}n{|>a|crr\x07-7-zn@5}n{|>lznv\x076H--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-r\x07rPor5}n{|=lzn}9-}n{|=a|crr\x076H--rpA-}n{|>P|y|-J-r\x07rPor5}n{|>lzn}9-}n{|>a|crr\x076H--0vs-qrsv{rq5b`RlYbZV[N[PR6----}n{|=P|y|;n-J->;=-:-r\x07rPor5}n{|=lyzv{n{prZn}9-}n{|=a|crr\x076;H----}n{|>P|y|;n-J->;=-:-r\x07rPor5}n{|>lyzv{n{prZn}9-}n{|>a|crr\x076;H--0r{qvs--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv\x075}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv\x075}n{|P|y|9-}n{|>P|y|9-zn\x075=;=9-oynpx]|tr-:-]V-8->;=66H--0ryvs-qrsv{rq5b`Rl`]_RNQla_N[`VaV\\[6----rp?-prr{Pr{rP||q-J-r|yv|{-7-}v\x07ry_nv|-<-?;=H----sy|n-n{vv|{_nqv-J-qvn{pr5rp?5=;=9-=;=69-prr{Pr{rP||q6-7->;?H----sy|n-n{vv|{]|tr-J-qvn{pr5tylSntP||q;\x07\b9-prr{Pr{rP||q6-<-n{vv|{_nqvH----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-z||ur}5=;=9-=;?9-}|tr-:-n{vv|{]|tr66H--0ryr----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-}|tr6H--0r{qvs--tylSntP|y|-J-zv\x075}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H--<<-JJJJJJJJJJJJJJ--0v{pyqr-Is|tlsntzr{K--0v{pyqr-I}rzyv}yvrqlny}unlsntzr{K--0v{pyqr-Iqvurv{tlsntzr{K--0vs-qrsv{rq5b`RlRQY6----tylSntP|y|;n-J-Y|tQr}uH--0r{qvs--ZNV[lR[Q\f"),meshStandardVertexShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("0qrsv{r-`aN[QN_Q0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvs0vs-qrsv{rq5b`RlcR_aRelZN_X6--nvor-sy|n-znxH0r{qvsn\bv{t-sy|n-V_||sZnxHn\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-rp@-cvr]|vv|{H0vs{qrs-SYNal`UNQRQ--n\bv{t-rp@-[|znyH--0vsqrs-b`RlaN[TR[a----n\bv{t-rp@-an{tr{H----n\bv{t-rp@-Ovn{tr{H--0r{qvs0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-Il}nlrr\x07K0v{pyqr-I?l}nlrr\x07K0v{pyqr-Iqv}ynprzr{zn}l}nlrr\x07K0v{pyqr-Ir{zn}l}nlrr\x07K0v{pyqr-Ip|y|l}nlrr\x07K0v{pyqr-Is|tl}nlrr\x07K0v{pyqr-Iz|}untrl}nlrr\x07K0v{pyqr-Ixv{{v{tl}nlrr\x07K0v{pyqr-Iunq|zn}l}nlrr\x07K0v{pyqr-Iy|tqr}uosl}nlrr\x07K0v{pyqr-Ipyv}}v{tl}yn{rl}nlrr\x07KZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--0v{pyqr-Ilrr\x07K--0v{pyqr-I?lrr\x07K--0v{pyqr-Ip|y|lrr\x07K--0v{pyqr-Iortv{{|znylrr\x07K--0v{pyqr-Iz|}u{|znylrr\x07K--0v{pyqr-Ixv{onrlrr\x07K--0v{pyqr-Ixv{{|znylrr\x07K--0v{pyqr-Iqrsny{|znylrr\x07K0vs{qrs-SYNal`UNQRQ-<<-[|zny-p|z}rq-vu-qrvnvr-ur{-SYNal`UNQRQ--[|zny-J-{|znyv r5-n{s|zrq[|zny-6H--0vsqrs-b`RlaN[TR[a----an{tr{-J-{|znyv r5-n{s|zrqan{tr{-6H----Ovn{tr{-J-{|znyv r5-p|5-[|zny9-an{tr{-6-7-n{tr{;-6H--0r{qvs0r{qvs--0v{pyqr-Iortv{lrr\x07K--0v{pyqr-Iz|}untrlrr\x07K--0v{pyqr-Ixv{{v{tlrr\x07K--0v{pyqr-Iqv}ynprzr{zn}lrr\x07K--0v{pyqr-I}|wrplrr\x07K--0v{pyqr-Iy|tqr}uoslrr\x07K--0v{pyqr-Ipyv}}v{tl}yn{rlrr\x07K--cvr]|vv|{-J-:-z]|vv|{;\x07\b H--Sv{ny]|vv|{-J-rpA5n{s|zrq9->;=6H--0vsqrs-b`RlV[`aN[PV[T----Sv{ny]|vv|{-J-v{n{prZnv\x07-7-Sv{ny]|vv|{H--0r{qvs--Sv{ny]|vv|{-J-z|qryZnv\x07-7-Sv{ny]|vv|{H--zn@-pnzrn_|nv|{Znv\x07-J-zn@5vrZnv\x07h=jh=j9-vrZnv\x07h>jh=j9-vrZnv\x07h?jh=j9-vrZnv\x07h=jh>j9-vrZnv\x07h>jh>j9-vrZnv\x07h?jh>j9-vrZnv\x07h=jh?j9-vrZnv\x07h>jh?j9-vrZnv\x07h?jh?j6H--PnzrnQvrpv|{-J-{|znyv r5pnzrn_|nv|{Znv\x07-7-rp@5=;=9-=;=9-:>;=66H--0vs-qrsv{rq5b`RlRQY6----Y|tQr}u-J-y|t?5:z]|vv|{; 6H--0r{qvs--V_||sZnx-J-=;=H--0vs-qrsv{rq5b`RlcR_aRelZN_X6----V_||sZnx-J-r}5no5znx-:->;=69-=;>6H--0r{qvs--0v{pyqr-I|yq}|lrr\x07K--0v{pyqr-Ir{zn}lrr\x07K--0v{pyqr-Iunq|zn}lrr\x07K--0v{pyqr-Is|tlrr\x07K--ZNV[lR[Q\f"),meshStandardFragmentShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("0qrsv{r-`aN[QN_Q0qrsv{r-_RSYRPaVcVaf0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=EC9-=;>=C9-=;>AF9->;=6{vs|z-sy|n-sy||V{qr\x07H{vs|z-nz}yrPor-}n{|=lzn}H{vs|z-znA-}n{|=lznv\x07H{vs|z-sy|n-}n{|=l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|=lyzv{n{prZn}H0r{qvs{vs|z-nz}yrPor-}n{|>lzn}H{vs|z-znA-}n{|>lznv\x07H{vs|z-sy|n-}n{|>l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|>lyzv{n{prZn}H0r{qvs{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trH0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6--{vs|z-rp@-p|{n{P|y|H0r{qvs0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6--{vs|z-nz}yr?Q-tnqvr{ar\x07rH0r{qvsp-Pyv}}r-\n--znA-znv\x07V{rrH--sy|n-sy||V{qr\x07H\fH0vs-[bZlPYV]]R_`-K-=--{vs|z-Pyv}}r-pyv}}rh[bZlPYV]]R_`jH0r{qvs0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvsn\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-sy|n-V_||sZnxH{vs|z-sy|n-u|{Sy||V{qr\x07H{vs|z-rp?-r|yv|{H{vs|z-sy|n-}v\x07ry_nv|H{vs|z-rp@-qvssrH{vs|z-sy|n-p|y|Ny}unH{vs|z-rp@-rzvvrH{vs|z-sy|n-|tu{rH{vs|z-sy|n-zrny{rH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-ovtu{rH0vsqrs-_RSYRPaVcVaf--{vs|z-sy|n-rsyrpvv\bH0r{qvs{vs|z-rp@-z|qryO|{qv{tZn\x07H{vs|z-rp@-z|qryO|{qv{tZv{H<<u调整{vs|z-sy|n-p|y|`nnv|{H{vs|z-sy|n-p|y|Ovtu{rHn\bv{t-rp@-cvr]|vv|{H0vs{qrs-SYNal`UNQRQ--n\bv{t-rp@-[|znyH--0vsqrs-b`RlaN[TR[a----n\bv{t-rp@-an{tr{H----n\bv{t-rp@-Ovn{tr{H--0r{qvs0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-I}npxv{tK0v{pyqr-Iqvurv{tl}nlsntzr{K0v{pyqr-Ip|y|l}nlsntzr{K0v{pyqr-Il}nlsntzr{K0v{pyqr-I?l}nlsntzr{K0v{pyqr-Izn}l}nlsntzr{K0v{pyqr-Iny}unzn}l}nlsntzr{K0v{pyqr-In|zn}l}nlsntzr{K0v{pyqr-Iyvtuzn}l}nlsntzr{K0v{pyqr-Irzvvrzn}l}nlsntzr{K0v{pyqr-IoqsK0v{pyqr-Iporllrsyrpv|{lsntzr{K0v{pyqr-Ir{zn}lp|zz|{l}nlsntzr{K0v{pyqr-Ir{zn}l}u\bvpnyl}nlsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-Iyvtul}nlortv{K0v{pyqr-Iyvtul}u\bvpnyl}nlsntzr{K0v{pyqr-Iunq|zn}l}nlsntzr{K0v{pyqr-Ioz}zn}l}nlsntzr{K0v{pyqr-I{|znyzn}l}nlsntzr{K0v{pyqr-I|tu{rzn}l}nlsntzr{K0v{pyqr-Izrny{rzn}l}nlsntzr{K0v{pyqr-Iy|tqr}uosl}nlsntzr{K0v{pyqr-Ipyv}}v{tl}yn{rl}nlsntzr{Krp@- ||zcrp|5rp@-qvrpv|{9-rp@-rp|9-sy|n- ||z6-\n--sy|n-urn-J-q|5qvrpv|{9-rp|6H--rp@-q-J-qvrpv|{-7-urnH--rp@-}-J-rp|-:-qH--rp@-\0-J-}-7- ||zH--r{-{|znyv r5q-8-\x006H\frp@-to?u5rp@-p6-\n----rpA-X-J-rpA5=;=9-:>;=-<-@;=9-?;=-<-@;=9-:>;=6H----rpA-}-J-zv\x075rpA5p;ot9-X; 69-rpA5p;to9-X;\x07\b69-r}5p;o9-p;t66H----rpA-\0-J-zv\x075rpA5};\x07\b9-p;69-rpA5p;9-};\b \x0769-r}5};\x079-p;66H----sy|n-q-J-\0;\x07-:-zv{5\0;9-\0;\b6H----sy|n-r-J->;=r:>=H----r{-rp@5no5\0; -8-5\0;-:-\0;\b6-<-5C;=-7-q-8-r669-q-<-5\0;\x07-8-r69-\0;\x076H\frp@-u?to5rp@-p6-\n----rpA-X-J-rpA5>;=9-?;=-<-@;=9->;=-<-@;=9-@;=6H----rp@-}-J-no5snp5p;\x07\x07\x07-8-X;\x07\b 6-7-C;=-:-X;6H----r{-p; -7-zv\x075X;\x07\x07\x079-pynz}5}-:-X;\x07\x07\x079-=;=9->;=69-p;\b6H\frp@-trP|y|O\bUrvtu5nz}yr?Q-tnqvr{ar\x07r9-rpA-Sv{ny]|vv|{6-\n--sy|n--J-5Sv{ny]|vv|{;\b-:-z|qryO|{qv{tZv{;\b6-<-5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6H--r{-r\x07r?Q5tnqvr{ar\x07r9-rp?59-=;B66;toH\fZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--<<-JJJ-顶部裁切-JJJ--sy|n-||sP]|tr-J-}|5pynz}5:PnzrnQvrpv|{;\b9-=;=9->;=69-@;=6H--vs-5----V_||sZnx-K-=;B-33----Sv{ny]|vv|{;\b-K-z|qryO|{qv{tZn\x07;\b-:-||sP]|tr-7-5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6--6-\n----qvpnqH--\f--<<-JJJJJJJJJJJJJJ--<<-JJJ-前置裁切计算-JJJ--0vs-[bZlPYV]]R_`-K-=----o||y-pyv}}rqH----rpA-pyv}}r]|vv|{H----0}ntzn-{|yyly||}ln----s|-5-v{-v-J-=H-v-I-[bZlPYV]]R_`H-v-88-6-\n------pyv}}r]|vv|{-J-pyv}}rh-v-j;znv\x07V{rr-7-Sv{ny]|vv|{H------pyv}}rq-J-5pyv}}rh-v-j;sy||V{qr\x07-I-=;=-\v\v-no5sy||V{qr\x07-:-pyv}}rh-v-j;sy||V{qr\x076-I->;=6H------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\x07-K-:=;B-33-pyv}}r]|vv|{;\x07-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\b-K-:=;B-33-pyv}}r]|vv|{;\b-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{; -K-:=;B-33-pyv}}r]|vv|{; -I-=;BH------vs-5pyv}}rq6-\n--------qvpnqH------\f----\f----0}ntzn-{|yyly||}lr{q--0r{qvs--<<-JJJJJJJJJJJJJJJJ--0v{pyqr-Ipyv}}v{tl}yn{rlsntzr{K--rpA-qvssrP|y|-J-rpA5-qvssr9-p|y|Ny}un-7-|}npv\b-6H--<<-JJJ-高度色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6----qvssrP|y|;to-J-trP|y|O\bUrvtu5tnqvr{ar\x07r9-Sv{ny]|vv|{6H--0r{qvs--<<-JJJJJJJJJJJ--<<-JJJ-纯色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6----qvssrP|y|;to-J-p|{n{P|y|H--0r{qvs--<<-JJJJJJJJJJJ--_rsyrprqYvtu-rsyrprqYvtu-J-_rsyrprqYvtu5-rp@5-=;=-69-rp@5-=;=-69-rp@5-=;=-69-rp@5-=;=-6-6H--rp@-|nyRzvvr_nqvn{pr-J-rzvvrH--0v{pyqr-Iy|tqr}uoslsntzr{K--0v{pyqr-Izn}lsntzr{K--0v{pyqr-Ip|y|lsntzr{K--0v{pyqr-Iny}unzn}lsntzr{K--0v{pyqr-Iny}unrlsntzr{K--0v{pyqr-I|tu{rzn}lsntzr{K0v{pyqr-Izrny{rzn}lsntzr{K--0v{pyqr-I{|znylsntzr{lortv{K--0v{pyqr-I{|znylsntzr{lzn}K--0v{pyqr-Irzvvrzn}lsntzr{K--<<-nppzynv|{--0v{pyqr-Iyvtul}u\bvpnylsntzr{K--0v{pyqr-Iyvtulsntzr{lortv{K--0v{pyqr-Iyvtulsntzr{lzn}K--0v{pyqr-Iyvtulsntzr{lr{qK--<<-z|qynv|{--0v{pyqr-In|zn}lsntzr{K--rp@-|t|v{tYvtu-J-rsyrprqYvtu;qvrpQvssr-8-rsyrprqYvtu;v{qvrpQvssr-8-rsyrprqYvtu;qvrp`}rpyn-8-rsyrprqYvtu;v{qvrp`}rpyn-8-|nyRzvvr_nqvn{prH--tylSntP|y|-J-rpA5-|t|v{tYvtu9-qvssrP|y|;n-6H--<<-JJJ-楼层显示-JJJ--sy|n-sy||\\}npv\b-J->;=H--vs-5u|{Sy||V{qr\x07-K-:=;=>-33-no5sy||V{qr\x07-:-u|{Sy||V{qr\x076-K-=;FF6-\n----sy||\\}npv\b-J-=;?-7-zv{55>;=-8-PnzrnQvrpv|{;\b69->;=6H--\f--tylSntP|y|;n-J-tylSntP|y|;n-7-sy||\\}npv\b-7-ovtu{rH--<<-JJJJJJJJJJJJJJ--ZNV[lZ\\QRYlP\\Y\\_--<<色调映射-色彩空间转换--0v{pyqr-I|{rzn}}v{tlsntzr{K--0v{pyqr-Ir{p|qv{tlsntzr{K--<<-JJJ-颜色增益调整-JJJ--rp@-toP|y|-J-tylSntP|y|;toH--rp@-uP|y|-J-to?u5toP|y|6H--uP|y|;\b-8J-p|y|`nnv|{H--uP|y|; -8J-p|y|Ovtu{rH--tylSntP|y|;to-J-u?to5uP|y|6H--<<-JJJ-全景图-JJJ--rp@-}n{|=a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|=lznv\x07h@j;\x07\b 6H--}n{|=a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|=a|crr\x079-}n{|=l ||z6H--}n{|=a|crr\x07-J-}n{|=a|crr\x07-7-zn@5}n{|=lznv\x076H--rp@-}n{|>a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|>lznv\x07h@j;\x07\b 6H--}n{|>a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|>a|crr\x079-}n{|>l ||z6H--}n{|>a|crr\x07-J-}n{|>a|crr\x07-7-zn@5}n{|>lznv\x076H--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-r\x07rPor5}n{|=lzn}9-}n{|=a|crr\x076H--rpA-}n{|>P|y|-J-r\x07rPor5}n{|>lzn}9-}n{|>a|crr\x076H--0vs-qrsv{rq5b`RlYbZV[N[PR6----}n{|=P|y|;n-J->;=-:-r\x07rPor5}n{|=lyzv{n{prZn}9-}n{|=a|crr\x076;H----}n{|>P|y|;n-J->;=-:-r\x07rPor5}n{|>lyzv{n{prZn}9-}n{|>a|crr\x076;H--0r{qvs--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv\x075}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv\x075}n{|P|y|9-}n{|>P|y|9-zn\x075=;=9-oynpx]|tr-:-]V-8->;=66H--0ryvs-qrsv{rq5b`Rl`]_RNQla_N[`VaV\\[6----rp?-prr{Pr{rP||q-J-r|yv|{-7-}v\x07ry_nv|-<-?;=H----sy|n-n{vv|{_nqv-J-qvn{pr5rp?5=;=9-=;=69-prr{Pr{rP||q6-7->;?H----sy|n-n{vv|{]|tr-J-qvn{pr5tylSntP||q;\x07\b9-prr{Pr{rP||q6-<-n{vv|{_nqvH----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-z||ur}5=;=9-=;?9-}|tr-:-n{vv|{]|tr66H--0ryr----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-}|tr6H--0r{qvs--tylSntP|y|-J-zv\x075}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H--<<-JJJJJJJJJJJJJJ--0v{pyqr-Is|tlsntzr{K--0v{pyqr-I}rzyv}yvrqlny}unlsntzr{K--0v{pyqr-Iqvurv{tlsntzr{K--0vs-qrsv{rq5b`RlRQY6----tylSntP|y|;n-J-Y|tQr}uH--0r{qvs--ZNV[lR[Q\f");var pbmUniforms$1={colorAlpha:new THREE__namespace.Uniform(0),modelAlpha:new THREE__namespace.Uniform(0),progress:new THREE__namespace.Uniform(0),pano0_map:new THREE__namespace.Uniform(null),pano0_luminanceMap:new THREE__namespace.Uniform(null),pano0_matrix:new THREE__namespace.Uniform(new THREE__namespace.Matrix4),pano0_zoom:new THREE__namespace.Uniform(1),pano1_map:new THREE__namespace.Uniform(null),pano1_luminanceMap:new THREE__namespace.Uniform(null),pano1_matrix:new THREE__namespace.Uniform(new THREE__namespace.Matrix4),pano1_zoom:new THREE__namespace.Uniform(1),gradientTexture:new THREE__namespace.Uniform(null),clippers:new THREE__namespace.Uniform([]),shownFloorIndex:new THREE__namespace.Uniform(-1),constantColor:new THREE__namespace.Uniform(new THREE__namespace.Vector3),geometricError:new THREE__namespace.Uniform(0),pixelRatio:new THREE__namespace.Uniform(1),resolution:new THREE__namespace.Uniform(new THREE__namespace.Vector2(512,512)),floorIndex:new THREE__namespace.Uniform(0),brightness:new THREE__namespace.Uniform(1),modelBoundingMin:new THREE__namespace.Uniform(new THREE__namespace.Vector3),modelBoundingMax:new THREE__namespace.Uniform(new THREE__namespace.Vector3),colorSaturation:new THREE__namespace.Uniform(0),colorBrightness:new THREE__namespace.Uniform(0),outlineGain:new THREE__namespace.Uniform(0),distanceGain:new THREE__namespace.Uniform(0)},shaderLib={none:{vertexShader:meshNoneVertexShader,fragmentShader:meshNoneFragmentShader,uniforms:THREE__namespace.UniformsUtils.merge([pbmUniforms$1,{opacity:{value:1}},THREE__namespace.UniformsLib.fog]),lights:!1,clipping:!1},basic:{vertexShader:meshBasicVertexShader,fragmentShader:meshBasicFragmentShader,uniforms:THREE__namespace.UniformsUtils.merge([pbmUniforms$1,THREE__namespace.ShaderLib.basic.uniforms]),lights:!1,clipping:!0},phong:{vertexShader:meshPhongVertexShader,fragmentShader:meshPhongFragmentShader,uniforms:THREE__namespace.UniformsUtils.merge([pbmUniforms$1,THREE__namespace.ShaderLib.phong.uniforms]),lights:!0,clipping:!0},standard:{vertexShader:meshStandardVertexShader,fragmentShader:meshStandardFragmentShader,uniforms:THREE__namespace.UniformsUtils.merge([pbmUniforms$1,THREE__namespace.ShaderLib.standard.uniforms]),lights:!0,clipping:!0}},PBMMeshMaterial=function(n){__extends(t,n);function t(e,r){e===void 0&&(e="basic"),r===void 0&&(r={});var o=this,s,u,l,c,f,d,p,v,A,g,h,y,m,E,b,T,_,R,S,C,B,L,M,w,H,O,I,N,k=shaderLib[e];o=n.call(this,{vertexShader:k.vertexShader,fragmentShader:k.fragmentShader,uniforms:THREE__namespace.UniformsUtils.clone(k.uniforms),lights:k.lights,clipping:k.clipping,defines:{USE_COLOR_CONSTANT:!1,USE_COLOR_ALTITUDE:!1,USE_EDL:!1,USE_HQ_WEIGHT:!1,USE_HQ_DEPTH:!1,NUM_CLIPPING_BOX:!1,USE_CLIPFLOOR:!1,USE_VERTEX_MARK:!1,USE_LUMINANCE:!1,USE_BLACK_TRANSITION:!1,USE_SPREAD_TRANSITION:!1,USE_POINT_NORMAL:!1,USE_POINT_CIRCLE:!1,USE_POINT_ADAPTIVE_SIZE:!1,USE_POINT_COLOR_ALTITUDE:!1}})||this,o.shaderType=e,o.vertexTangents=!1,o.color=new THREE__namespace.Color(16777215),o.colorAlpha=1,o.map=null,o.lightMap=null,o.lightMapIntensity=1,o.aoMap=null,o.aoMapIntensity=1,o.specularMap=null,o.specular=new THREE__namespace.Color(1118481),o.roughnessMap=null,o.roughness=1,o.metalnessMap=null,o.metalness=0,o.alphaMap=null,o.alphaMode="OPAQUE",o.combine=null,o.envMap=null,o.envMapIntensity=1,o.reflectivity=.4,o.refractionRatio=.98,o.emissiveMap=null,o.emissive=new THREE__namespace.Color(0),o.emissiveIntensity=1,o.bumpMap=null,o.bumpScale=1,o.normalMap=null,o.normalMapType=THREE__namespace.TangentSpaceNormalMap,o.normalScale=new THREE__namespace.Vector2(1,1),o.displacementMap=null,o.displacementScale=1,o.displacementBias=0,o.shininess=30;var U,D=null,q=null;return o.shaderType==="phong"&&(o.combine=THREE__namespace.MultiplyOperation),Object.defineProperties(o,{pano0:{get:function(){return D},set:function(z){if(D!==z){D=z,z===null?(this.uniforms.pano0_map.value=null,this.uniforms.pano0_luminanceMap.value=null,this.uniforms.pano0_matrix.value.identity(),this.uniforms.pano0_zoom.value=1):(this.uniforms.pano0_map.value=z.map instanceof TileCubeTextureTarget?z.map.texture:z.map,this.uniforms.pano0_luminanceMap.value=z.luminanceMap instanceof TileCubeTextureTarget?z.luminanceMap.texture:z.luminanceMap,this.uniforms.pano0_matrix.value.copy(z.matrix),this.uniforms.pano0_zoom.value=z.zoom);var Q=this.uniforms.pano0_luminanceMap.value!==null&&this.uniforms.pano1_luminanceMap.value!==null,G=this.defines.USE_LUMINANCE;G!==Q&&(this.defines.USE_LUMINANCE=Q,this.needsUpdate=!0)}}},pano1:{get:function(){return q},set:function(z){if(q!==z){q=z,z===null?(this.uniforms.pano1_map.value=null,this.uniforms.pano1_luminanceMap.value=null,this.uniforms.pano1_matrix.value.identity(),this.uniforms.pano1_zoom.value=1):(this.uniforms.pano1_map.value=z.map instanceof TileCubeTextureTarget?z.map.texture:z.map,this.uniforms.pano1_luminanceMap.value=z.luminanceMap instanceof TileCubeTextureTarget?z.luminanceMap.texture:z.luminanceMap,this.uniforms.pano1_matrix.value.copy(z.matrix),this.uniforms.pano1_zoom.value=z.zoom);var Q=this.uniforms.pano0_luminanceMap.value!==null&&this.uniforms.pano1_luminanceMap.value!==null,G=this.defines.USE_LUMINANCE;G!==Q&&(this.defines.USE_LUMINANCE=Q,this.needsUpdate=!0)}}},modelAlpha:{get:function(){return this.uniforms.modelAlpha.value},set:function(z){this.uniforms.modelAlpha.value=z}},progress:{get:function(){return this.uniforms.progress.value},set:function(z){this.uniforms.progress.value=z}},transition:{get:function(){return this.defines.USE_BLACK_TRANSITION?"BLACK":this.defines.USE_SPREAD_TRANSITION?"SPREAD":"FADE"},set:function(z){var Q=this.defines.USE_BLACK_TRANSITION,G=this.defines.USE_SPREAD_TRANSITION;this.defines.USE_BLACK_TRANSITION=!1,this.defines.USE_SPREAD_TRANSITION=!1,this.defines["USE_".concat(z,"_TRANSITION")]=!0;var X=!1;Q!==this.defines.USE_BLACK_TRANSITION&&(X=!0),G!==this.defines.USE_SPREAD_TRANSITION&&(X=!0),X&&(this.needsUpdate=!0)}},colorStyle:{get:function(){return this.defines.USE_COLOR_CONSTANT?"CONSTANT":this.defines.USE_COLOR_ALTITUDE?"ALTITUDE":"RGB"},set:function(z){var Q=z==="CONSTANT",G=z==="ALTITUDE";this.defines.USE_COLOR_CONSTANT!==Q&&(this.defines.USE_COLOR_CONSTANT=Q,this.needsUpdate=!0),this.defines.USE_COLOR_ALTITUDE!==G&&(this.defines.USE_COLOR_ALTITUDE=G,this.needsUpdate=!0)}},constantColor:{get:function(){return this.uniforms.constantColor.value},set:function(z){this.uniforms.constantColor.value=z}},opacity:{get:function(){return this.uniforms.opacity.value},set:function(z){this.uniforms.opacity.value=z}},shownFloorIndex:{get:function(){return this.uniforms.shownFloorIndex.value},set:function(z){this.uniforms.shownFloorIndex.value=z}},gradientTexture:{get:function(){return this.uniforms.gradientTexture.value},set:function(z){this.uniforms.gradientTexture.value=z}},brightness:{get:function(){return this.uniforms.brightness.value},set:function(z){this.uniforms.brightness.value=z}},clippers:{get:function(){return U},set:function(z){U!==z&&(U=z,this.uniforms.clippers.value=(U||[]).map(function(Q){var G=typeof Q.floorIndex=="number"?Q.floorIndex:-1,X=new THREE__namespace.Matrix4().getInverse(Q.clippingBoxMatrix);return{matrixInverse:X,floorIndex:G}}),this.needsUpdate=!0)}},useEDL:{get:function(){return this.defines.USE_EDL},set:function(z){z!==this.defines.USE_EDL&&(this.defines.USE_EDL=z,this.needsUpdate=!0)}},useHQWeight:{get:function(){return this.defines.USE_HQ_WEIGHT},set:function(z){z!==this.defines.USE_HQ_WEIGHT&&(this.defines.USE_HQ_WEIGHT=z,this.needsUpdate=!0)}},useHQDepth:{get:function(){return this.defines.USE_HQ_DEPTH},set:function(z){z!==this.defines.USE_HQ_DEPTH&&(this.defines.USE_HQ_DEPTH=z,this.needsUpdate=!0)}},floorIndex:{get:function(){return this.uniforms.floorIndex.value},set:function(z){this.uniforms.floorIndex.value=z}},colorSaturation:{get:function(){return this.uniforms.colorSaturation.value},set:function(z){this.uniforms.colorSaturation.value=z}},colorBrightness:{get:function(){return this.uniforms.colorBrightness.value},set:function(z){this.uniforms.colorBrightness.value=z}},outlineGain:{get:function(){return this.uniforms.outlineGain.value},set:function(z){this.uniforms.outlineGain.value=z}},distanceGain:{get:function(){return this.uniforms.distanceGain.value},set:function(z){this.uniforms.distanceGain.value=z}}}),o.pano0=(s=r.pano0)!==null&&s!==void 0?s:defaultPbmParameters.pano0,o.pano1=(u=r.pano1)!==null&&u!==void 0?u:defaultPbmParameters.pano1,o.modelAlpha=(l=r.modelAlpha)!==null&&l!==void 0?l:defaultPbmParameters.modelAlpha,o.progress=(c=r.progress)!==null&&c!==void 0?c:defaultPbmParameters.progress,o.transition=(f=r.transition)!==null&&f!==void 0?f:defaultPbmParameters.transition,o.constantColor=(d=r.constantColor)!==null&&d!==void 0?d:defaultPbmParameters.constantColor,o.opacity=(p=r.opacity)!==null&&p!==void 0?p:defaultPbmParameters.opacity,o.floorStyle=(v=r.floorStyle)!==null&&v!==void 0?v:defaultPbmParameters.floorStyle,o.shownFloorIndex=(A=r.shownFloorIndex)!==null&&A!==void 0?A:defaultPbmParameters.shownFloorIndex,o.clippers=(g=r.clippers)!==null&&g!==void 0?g:defaultPbmParameters.clippers,o.useEDL=(h=r.useEDL)!==null&&h!==void 0?h:defaultPbmParameters.useEDL,o.useHQWeight=(y=r.useHQWeight)!==null&&y!==void 0?y:defaultPbmParameters.useHQWeight,o.useHQDepth=(m=r.useHQDepth)!==null&&m!==void 0?m:defaultPbmParameters.useHQDepth,o.pointSize=(E=r.pointSize)!==null&&E!==void 0?E:defaultPbmParameters.pointSize,o.colorStyle=(b=r.colorStyle)!==null&&b!==void 0?b:defaultPbmParameters.colorStyle,o.pointShape=(T=r.pointShape)!==null&&T!==void 0?T:defaultPbmParameters.pointShape,o.pointScale=(_=r.pointScale)!==null&&_!==void 0?_:defaultPbmParameters.pointScale,o.pointBack=(R=r.pointBack)!==null&&R!==void 0?R:defaultPbmParameters.pointBack,o.pointMinPixel=(S=r.pointMinPixel)!==null&&S!==void 0?S:defaultPbmParameters.pointMinPixel,o.pointMaxPixel=(C=r.pointMaxPixel)!==null&&C!==void 0?C:defaultPbmParameters.pointMaxPixel,o.gradientTexture=(B=r.gradientTexture)!==null&&B!==void 0?B:defaultPbmParameters.gradientTexture,o.brightness=(L=r.brightness)!==null&&L!==void 0?L:defaultPbmParameters.brightness,o.colorSaturation=(M=r.colorSaturation)!==null&&M!==void 0?M:defaultPbmParameters.colorSaturation,o.colorBrightness=(w=r.colorBrightness)!==null&&w!==void 0?w:defaultPbmParameters.colorBrightness,o.customShaders=(H=r.customShaders)!==null&&H!==void 0?H:defaultPbmParameters.customShaders,o.outlineGain=(O=r.outlineGain)!==null&&O!==void 0?O:defaultPbmParameters.outlineGain,o.distanceGain=(I=r.distanceGain)!==null&&I!==void 0?I:defaultPbmParameters.distanceGain,o.useAddBlend=(N=r.useAddBlend)!==null&&N!==void 0?N:defaultPbmParameters.useAddBlend,o.customShaderHash="",o.customShaderUniforms={},o.customShaderDefines={},o.floorIndex=0,o.transparent=!1,o}return t.prototype.onBeforeCompile=function(e,r){var o=this,s,u,l=this.customShaders.filter(function(y){return y.type.includes(o.shaderType)}),c=l.reduce(function(y,m){return y+m.vertex.mainBefore},""),f=l.reduce(function(y,m){return y+m.vertex.mainStart},""),d=l.reduce(function(y,m){return y+m.vertex.mainEnd},""),p=l.reduce(function(y,m){return y+m.fragment.mainBefore},""),v=l.reduce(function(y,m){return y+m.fragment.mainStart},""),A=l.reduce(function(y,m){return y+m.fragment.mainModelColor},""),g=l.reduce(function(y,m){return y+m.fragment.mainEnd},"");e.vertexShader=e.vertexShader.replace(/MAIN_BEFORE/g,c),e.fragmentShader=e.fragmentShader.replace(/MAIN_BEFORE/g,p),e.vertexShader=e.vertexShader.replace(/MAIN_START/g,f),e.fragmentShader=e.fragmentShader.replace(/MAIN_START/g,v),e.vertexShader=e.vertexShader.replace(/MAIN_END/g,d),e.fragmentShader=e.fragmentShader.replace(/MAIN_END/g,g),e.fragmentShader=e.fragmentShader.replace(/MAIN_MODEL_COLOR/g,A);var h=String((u=(s=this.clippers)===null||s===void 0?void 0:s.length)!==null&&u!==void 0?u:0);e.vertexShader=e.vertexShader.replace(/NUM_CLIPPERS/g,h),e.fragmentShader=e.fragmentShader.replace(/NUM_CLIPPERS/g,h),l.forEach(function(y){y.onBeforeCompile(e,r)})},t.prototype.refreshUniforms=function(e){var r,o,s=this.uniforms;s.diffuse&&s.diffuse.value.copy(this.color),s.opacity&&(s.opacity.value=this.opacity),s.color&&s.diffuse.value.copy(this.color),s.colorAlpha&&(s.colorAlpha.value=this.colorAlpha),s.emissive&&s.emissive.value.copy(this.emissive).multiplyScalar(this.emissiveIntensity),s.roughness&&(s.roughness.value=this.roughness),s.metalness&&(s.metalness.value=this.metalness),s.map&&(s.map.value=this.map),s.alphaMap&&(s.alphaMap.value=this.alphaMap),s.specularMap&&(s.specularMap.value=this.specularMap),s.roughnessMap&&(s.roughnessMap.value=this.roughnessMap),s.metalnessMap&&(s.metalnessMap.value=this.metalnessMap),s.envMap&&(s.envMap.value=this.envMap,s.flipEnvMap.value=!((r=this.envMap)===null||r===void 0)&&r.isCubeTexture?-1:1,s.reflectivity.value=this.reflectivity,s.refractionRatio.value=this.refractionRatio,s.maxMipLevel.value=this.envMap&&(o=e==null?void 0:e.properties.get(this.envMap).__maxMipLevel)!==null&&o!==void 0?o:0,s.envMapIntensity&&(s.envMapIntensity.value=this.envMapIntensity)),s.lightMap&&(s.lightMap.value=this.lightMap,s.lightMapIntensity.value=this.lightMapIntensity),s.aoMap&&(s.aoMap.value=this.aoMap,s.aoMapIntensity.value=this.aoMapIntensity),s.specular&&s.specular.value.copy(this.specular),s.shininess&&(s.shininess.value=Math.max(this.shininess,1e-4)),s.emissiveMap&&(s.emissiveMap.value=this.emissiveMap),s.bumpMap&&(s.bumpMap.value=this.bumpMap,s.bumpScale.value=this.bumpScale,this.side===THREE__namespace.BackSide&&(s.bumpScale.value*=-1)),s.normalMap&&(s.normalMap.value=this.normalMap,s.normalScale.value.copy(this.normalScale),this.side===THREE__namespace.BackSide&&s.normalScale.value.negate()),s.displacementMap&&(s.displacementMap.value=this.displacementMap,s.displacementScale.value=this.displacementScale,s.displacementBias.value=this.displacementBias);var u;this.map?u=this.map:this.specularMap?u=this.specularMap:this.displacementMap?u=this.displacementMap:this.normalMap?u=this.normalMap:this.bumpMap?u=this.bumpMap:this.alphaMap?u=this.alphaMap:this.emissiveMap&&(u=this.emissiveMap),u!==void 0&&(u.matrixAutoUpdate===!0&&u.updateMatrix(),s.uvTransform.value.copy(u.matrix));var l;this.aoMap?l=this.aoMap:this.lightMap&&(l=this.lightMap),l!==void 0&&(l.matrixAutoUpdate===!0&&l.updateMatrix(),s.uv2Transform.value.copy(l.matrix))},t.prototype.update=function(e,r,o){var s="".concat(o.id,":").concat(o.materialVersion);s!==this.syncModelVersion&&(Object.assign(this,o.getMaterial()),this.syncModelVersion=s);var u=this.customShaders.map(function(m){return m.getHash()}).join("");this.customShaderHash!==u&&(this.customShaderHash=u,this.needsUpdate=!0);for(var l=this.customShaders.reduce(function(m,E){return Object.assign(m,E.defines)},{}),c=Object.keys(this.customShaderDefines),f=0,d=c;f<d.length;f++){var p=d[f];delete this.defines[p]}this.customShaderDefines=l,Object.assign(this.defines,this.customShaderDefines);for(var v=this.customShaders.reduce(function(m,E){return Object.assign(m,E.uniforms)},{}),A=Object.keys(this.customShaderUniforms),g=0,h=A;g<h.length;g++){var y=h[g];delete this.uniforms[y]}this.customShaderUniforms=v,Object.assign(this.uniforms,this.customShaderUniforms),this.visible=!0,this.envMap||(this.envMap=r.environment),this.refreshUniforms(e),this.useAddBlend?(this.depthWrite=!1,this.depthTest=!1,this.blending=THREE__namespace.AdditiveBlending):(this.depthWrite=!0,this.depthTest=!0,this.blending=THREE__namespace.NormalBlending),this.shaderType==="none"?(this.depthWrite=!1,this.transparent=!0):(this.transparent=this.alphaMode==="BLEND",this.depthWrite=!0,this.shownFloorIndex>-1&&this.shownFloorIndex!==this.floorIndex&&(this.transparent=!0),this.opacity*this.colorAlpha<1&&(this.transparent=!0),this.alphaMap&&(this.transparent=!0),this.brightness<1&&(this.transparent=!0),this.transparent&&(this.depthWrite=!1),this.floorStyle==="VISIBILITY"&&this.shownFloorIndex!==-1&&this.floorIndex!==this.shownFloorIndex&&(this.visible=!1)),this.uniforms.pixelRatio.value=r.pixelRatio,this.uniforms.resolution.value.copy(r.resolution),this.uniforms.modelBoundingMax.value.copy(o.bounding.max),this.uniforms.modelBoundingMin.value.copy(o.bounding.min)},t.prototype.copy=function(e){return n.prototype.copy.call(this,e),this.color.copy(e.color),this.colorAlpha=e.colorAlpha,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.specular.copy(e.specular),this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.emissiveMap=e.emissiveMap,this.emissive.copy(e.emissive),this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.shininess=e.shininess,this.customShaders=e.customShaders,this.pano0=e.pano0,this.pano1=e.pano1,this.modelAlpha=e.modelAlpha,this.progress=e.progress,this.transition=e.transition,this.opacity=e.opacity,this.floorStyle=e.floorStyle,this.colorStyle=e.colorStyle,this.constantColor=e.constantColor,this.shownFloorIndex=e.shownFloorIndex,this.brightness=e.brightness,this.clippers=e.clippers,this.useEDL=e.useEDL,this.useHQWeight=e.useHQWeight,this.useHQDepth=e.useHQDepth,this.pointSize=e.pointSize,this.pointShape=e.pointShape,this.pointScale=e.pointScale,this.pointBack=e.pointBack,this.pointMinPixel=e.pointMinPixel,this.pointMaxPixel=e.pointMaxPixel,this.gradientTexture=e.gradientTexture,this.floorIndex=e.floorIndex,this.colorSaturation=e.colorSaturation,this.colorBrightness=e.colorBrightness,this.outlineGain=e.outlineGain,this.distanceGain=e.distanceGain,this.useAddBlend=e.useAddBlend,this.refreshUniforms(),this},t.prototype.clone=function(){return new this.constructor(this.shaderType).copy(this)},t}(THREE__namespace.ShaderMaterial);const pointCloudFragmentShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("{vs|z-sy|n-sy||V{qr\x07H0vs-qrsv{rq5b`Rl]\\V[al[\\_ZNY6--n\bv{t-rp@-[|znyH0r{qvs0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvsp-Pyv}}r-\n--znA-znv\x07V{rrH--sy|n-sy||V{qr\x07H\fH0vs-[bZlPYV]]R_`-K-=--{vs|z-Pyv}}r-pyv}}rh[bZlPYV]]R_`jH0r{qvsn\bv{t-rpA-d|yq]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-rp@-P|y|Hn\bv{t-sy|n-]|v{`v rH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-u|{Sy||V{qr\x07H<<u调整{vs|z-sy|n-p|y|`nnv|{H{vs|z-sy|n-p|y|Ovtu{rH{vs|z-rp@-z|qryO|{qv{tZn\x07H{vs|z-rp@-z|qryO|{qv{tZv{H<<-边缘增益{vs|z-sy|n-|yv{rTnv{H{vs|z-sy|n-qvn{prTnv{H0v{pyqr-Ip|zz|{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-Iy|tqr}uosl}nlsntzr{K0v{pyqr-Ipyv}}v{tl}yn{rl}nlsntzr{Krp@-nqwP|y|arz}rnr5rp@-p|y|9-sy|n-rz}rnr6\n----<<-将色温范围从-:>;=-到->;=-映射到实际的色温范围----sy|n-rz}-J-5rz}rnr-8->;=6-7-B===;=H-<<-范围从-=-到->====----<<-计算色温系数----sy|n-lsnp|9-tlsnp|9-olsnp|H----vs-5rz}-IJ-CC==;=6-\n--------lsnp|-J->;=H--------tlsnp|-J-=;@F==E>BDEDCF=>FC=DEA-7-y|t5rz}-<->==;=6-:-=;C@>EA>AA@DEEC?DAB=FEH--------olsnp|-J-rz}-IJ->F==;=-L-=;=-G-=;BA@?=CDEF>>=>FC=DEA@-7-y|t5rz}-<->==;=-:->=;=6-:->;>FC?BA=EF>AH----\f-ryr-\n--------lsnp|-J->;?F?F@C>EC=C?DAB=FE=A-7-}|5rz}-<->==;=-:-C=;=9-:=;>@@?=ADBF?6H--------tlsnp|-J->;>?FEF=EC=EFB?FA>>DCB-7-}|5rz}-<->==;=-:-C=;=9-:=;=DBB>AEAF?6H--------olsnp|-J->;=H----\f----<<-调整颜色----rp@-nqwrqP|y|H----nqwrqP|y|;-J-pynz}5p|y|;-7-lsnp|9-=;=9->;=6H----nqwrqP|y|;t-J-pynz}5p|y|;t-7-tlsnp|9-=;=9->;=6H----nqwrqP|y|;o-J-pynz}5p|y|;o-7-olsnp|9-=;=9->;=6H----r{-nqwrqP|y|H\frp@-to?u5rp@-p6-\n----rpA-X-J-rpA5=;=9-:>;=-<-@;=9-?;=-<-@;=9-:>;=6H----rpA-}-J-zv\x075rpA5p;ot9-X; 69-rpA5p;to9-X;\x07\b69-r}5p;o9-p;t66H----rpA-\0-J-zv\x075rpA5};\x07\b9-p;69-rpA5p;9-};\b \x0769-r}5};\x079-p;66H----sy|n-q-J-\0;\x07-:-zv{5\0;9-\0;\b6H----sy|n-r-J->;=r:>=H----r{-rp@5no5\0; -8-5\0;-:-\0;\b6-<-5C;=-7-q-8-r669-q-<-5\0;\x07-8-r69-\0;\x076H\frp@-u?to5rp@-p6-\n----rpA-X-J-rpA5>;=9-?;=-<-@;=9->;=-<-@;=9-@;=6H----rp@-}-J-no5snp5p;\x07\x07\x07-8-X;\x07\b 6-7-C;=-:-X;6H----r{-p; -7-zv\x075X;\x07\x07\x079-pynz}5}-:-X;\x07\x07\x079-=;=9->;=69-p;\b6H\fZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--<<-JJJ-点大小剔除-JJJ--vs-5]|v{`v r-I-=;==>6-\n----qvpnqH--\f--<<-JJJ-前置裁切计算-JJJ--0vs-[bZlPYV]]R_`-K-=----o||y-pyv}}rqH----rpA-pyv}}r]|vv|{H----0}ntzn-{|yyly||}ln----s|-5-v{-v-J-=H-v-I-[bZlPYV]]R_`H-v-88-6-\n------pyv}}r]|vv|{-J-pyv}}rh-v-j;znv\x07V{rr-7-d|yq]|vv|{H------pyv}}rq-J-5pyv}}rh-v-j;sy||V{qr\x07-I-=;=-\v\v-no5sy||V{qr\x07-:-pyv}}rh-v-j;sy||V{qr\x076-I->;=6H------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\x07-K-:=;B-33-pyv}}r]|vv|{;\x07-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\b-K-:=;B-33-pyv}}r]|vv|{;\b-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{; -K-:=;B-33-pyv}}r]|vv|{; -I-=;BH------vs-5pyv}}rq6-\n--------qvpnqH------\f----\f----0}ntzn-{|yyly||}lr{q--0r{qvs--<<-JJJJJJJJJJJJJJJJ--sy|n-}-J-?;=-7-tyl]|v{P||q;\x07-:->;=H--sy|n-}-J-?;=-7-tyl]|v{P||q;\b-:->;=H--sy|n-}-J-}-7-}-8-}-7-}H--<<-JJJ-形状裁切-JJJ--0vs-qrsv{rq5b`Rl]\\V[al`UN]RlPV_PYR6----vs-5]|v{`v r-K-@;=-33-}-K->;=6-\n------qvpnqH----\f--0r{qvs--<<-JJJJJJJJJJJJJ--0v{pyqr-Ipyv}}v{tl}yn{rlsntzr{K--0v{pyqr-Iy|tqr}uoslsntzr{K--<<-JJJ-颜色-JJJ--rpA-sv{nyP|y|-J-_TOa|Yv{rn5rpA5P|y|9-|}npv\b66H--0vs-qrsv{rq5b`Rl]\\V[al[\\_ZNY6----0vs-qrsv{rq5b`Rl]\\V[alONPXlUVQQR[6------rp@-pnzrnQvrpv|{-J-{|znyv r5pnzrn]|vv|{-:-d|yq]|vv|{;\x07\b 6H------vs-5q|5pnzrnQvrpv|{9-[|zny6-I-=;=6-\n--------qvpnqH------\f----0ryvs-qrsv{rq5b`Rl]\\V[alONPXlQN_X6------rp@-pnzrnQvrpv|{-J-{|znyv r5pnzrn]|vv|{-:-d|yq]|vv|{;\x07\b 6H------vs-5q|5pnzrnQvrpv|{9-[|zny6-I-=;=6-\n--------sv{nyP|y|;\x07\b -J-sv{nyP|y|;\x07\b -7-=;EH------\f----0r{qvs--0r{qvs--tylSntP|y|-J-sv{nyP|y|H--<<-JJJJJJJJJJJ--<<-JJJ-楼层显示-JJJ--sy|n-sy||\\}npv\b-J->;=H--vs-5u|{Sy||V{qr\x07-K-:=;=>-33-no5sy||V{qr\x07-:-u|{Sy||V{qr\x076-K-=;FF6-\n----sy||\\}npv\b-J-=;>-7-zv{55>;=-8-PnzrnQvrpv|{;\b69->;=6H--\f--tylSntP|y|;n-J-tylSntP|y|;n-7-sy||\\}npv\bH--<<-JJJJJJJJJJJJJJ--tylSntP|y|;n-J-tylSntP|y|;n-7-z|qryNy}unH--ZNV[lZ\\QRYlP\\Y\\_--0v{pyqr-I|{rzn}}v{tlsntzr{K--0v{pyqr-Ir{p|qv{tlsntzr{K--<<-JJJ-颜色增益调整-JJJ--rp@-toP|y|-J-tylSntP|y|;toH--rp@-uP|y|-J-to?u5toP|y|6H--uP|y|;\b-8J-p|y|`nnv|{H--uP|y|; -8J-p|y|Ovtu{rH--tylSntP|y|;to-J-u?to5uP|y|6H--0v{pyqr-Is|tlsntzr{K--0v{pyqr-I}rzyv}yvrqlny}unlsntzr{K--<<-边缘增强--0vs-qrsv{rq5b`Rl]\\V[al[\\_ZNY6----rp@-toP|y|?-J-tylSntP|y|;toH----rp@-uP|y|?-J-to?u5toP|y|?6H----rp@-vrQv-J-{|znyv r5v\\u|tn}uvp-L-PnzrnQvrpv|{-G-d|yq]|vv|{;\x07\b -:-pnzrn]|vv|{6H----<<-计算边缘增益----sy|n-p|aurn-J-q|5{|znyv r5[|zny69-vrQv6H----sy|n-n{tyr-J-np|5p|aurn6H----sy|n-|yv{rSnp|-J-}|5>;=-:-no5n{tyr-:-]VlUNYS6-<-]VlUNYS9-B;=6H----uP|y|?; -8J-|yv{rTnv{-7-|yv{rSnp|H-<<-增加亮度----uP|y|?; -J-pynz}5uP|y|?; 9-=;=9->;=6H------<<-距离增益----rp@-o|{qv{tPr{r-J-5z|qryO|{qv{tZn\x07-8-z|qryO|{qv{tZv{6-<-?;=H----sy|n-o|{qv{tYr{tu-J-yr{tu5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6-7->;BH----sy|n-nrntrQvn{pr-J->=;=H-<<-设定一个平均距离----rp@-pnzrna|]|v{-J-d|yq]|vv|{;\x07\b -:-pnzrn]|vv|{H----sy|n-pnzrnO|{qv{tQvn{pr-J-zn\x075=;=9-yr{tu5pnzrn]|vv|{-:-o|{qv{tPr{r6-:-o|{qv{tYr{tu-<-?;=6H----sy|n-pnzrnQvn{pr-J-yr{tu5v\\u|tn}uvp-L-vrQv-7-q|5vrQv9-pnzrna|]|v{6-G-pnzrna|]|v{6-:-pnzrnO|{qv{tQvn{prH----sy|n-qvn{prSnp|-J-pynz}5zn\x075pnzrnQvn{pr-:-nrntrQvn{pr9-=;=6-<-o|{qv{tYr{tu9-=;=9->;=6H----qvn{prSnp|-J-5=;E-:-pynz}5>;=-:-}|5>;=-:-qvn{prSnp|9-@;=69-=;=9->;=66-7->?;=H----tylSntP|y|;n-8J-zv\x075tylSntP|y|;n-7-qvn{prTnv{-7-qvn{prSnp|9-=;=9-|yv{rSnp|6H-<<-增加透明度----tylSntP|y|;n-J-pynz}5tylSntP|y|;n9-=;=9->;=6H----tylSntP|y|;to-J-u?to5uP|y|?6H--0r{qvs--0vs-qrsv{rq5b`RlRQY6----tylSntP|y|;n-J-Y|tQr}uH--0r{qvs--0vs-qrsv{rq5b`RlU^ldRVTUa6----sy|n-qvn{pr-J-?;=-7-yr{tu5tyl]|v{P||q;\x07\b-:-=;B6H----sy|n-rvtu-J-zn\x075=;=9->;=-:-qvn{pr6H----rvtu-J-}|5rvtu9->;B6H----tylSntP|y|;n-J-rvtuH----tylSntP|y|;\x07\b -J-tylSntP|y|;\x07\b -7-rvtuH--0r{qvs--ZNV[lR[Q\f"),pointCloudVertexShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("nvor-rp@-p|y|H0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6--{vs|z-rp@-p|{n{P|y|H0r{qvs0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6--{vs|z-nz}yr?Q-tnqvr{ar\x07rH0r{qvs0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvs{vs|z-rp?-r|yv|{H{vs|z-sy|n-}v\x07ry_nv|H{vs|z-sy|n-}|v{`pnyrH{vs|z-sy|n-}|v{Zv{]v\x07ryH{vs|z-sy|n-}|v{Zn\x07]v\x07ryH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-tr|zrvpR|H{vs|z-rp@-z|qryO|{qv{tZn\x07H{vs|z-rp@-z|qryO|{qv{tZv{Hn\bv{t-rpA-d|yq]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-rp@-P|y|Hn\bv{t-sy|n-]|v{`v rH0vs-qrsv{rq5b`Rl]\\V[al[\\_ZNY6--n\bv{t-rp@-[|znyH0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-Is|tl}nlrr\x07K0v{pyqr-Iz|}untrl}nlrr\x07K0v{pyqr-Iy|tqr}uosl}nlrr\x07K0v{pyqr-Ipyv}}v{tl}yn{rl}nlrr\x07Krp@-trP|y|O\bUrvtu5nz}yr?Q-tnqvr{ar\x07r9-rpA-d|yq]|vv|{6-\n--sy|n--J-5d|yq]|vv|{;\b-:-z|qryO|{qv{tZv{;\b6-<-5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6H--r{-r\x07r?Q5tnqvr{ar\x07r9-rp?59-=;B66;toH\fZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--0v{pyqr-Iortv{lrr\x07K--d|yq]|vv|{-J-rpA5n{s|zrq9->;=6H--0vsqrs-b`RlV[`aN[PV[T----d|yq]|vv|{-J-v{n{prZnv\x07-7-d|yq]|vv|{H--0r{qvs--d|yq]|vv|{-J-z|qryZnv\x07-7-d|yq]|vv|{H--rpA-z]|vv|{-J-vrZnv\x07-7-d|yq]|vv|{H--tyl]|vv|{-J-}|wrpv|{Znv\x07-7-z]|vv|{H--0v{pyqr-Iy|tqr}uoslrr\x07K--0v{pyqr-Ipyv}}v{tl}yn{rlrr\x07K--zn@-pnzrn_|nv|{Znv\x07-J-zn@5vrZnv\x07h=jh=j9-vrZnv\x07h>jh=j9-vrZnv\x07h?jh=j9-vrZnv\x07h=jh>j9-vrZnv\x07h>jh>j9-vrZnv\x07h?jh>j9-vrZnv\x07h=jh?j9-vrZnv\x07h>jh?j9-vrZnv\x07h?jh?j6H--PnzrnQvrpv|{-J-{|znyv r5pnzrn_|nv|{Znv\x07-7-rp@5=;=9-=;=9-:>;=66H--<<传递nvor的p|y|到s里使用--<<动态调整}|v{`v r--sy|n-rny]|v{`v r-J-}|v{`pnyr-7-}v\x07ry_nv|H--0vs-qrsv{rq5b`Rl]\\V[al`VgRlTR\\ZRa_VP6----rny]|v{`v r-7J-tr|zrvpR|H----sy|n-urvtu-J->;=-<-}|wrpv|{Znv\x07h>jh>j-7-zv\x075>;=9-:z]|vv|{; 9-:}|wrpv|{Znv\x07h?jh@j6-7-?;=H----rny]|v{`v r-J-r|yv|{;\b-7-rny]|v{`v r-<-urvtuH--0ryvs-qrsv{rq5b`Rl]\\V[al`VgRlNaaR[bNaV\\[6----sy|n-urvtu-J->;=-<-}|wrpv|{Znv\x07h>jh>j-7-zv\x075>;=9-:z]|vv|{; 9-:}|wrpv|{Znv\x07h?jh@j6-7-?;=H----rny]|v{`v r-J-r|yv|{;\b-7-rny]|v{`v r-<-urvtuH--0r{qvs--tyl]|v{`v r-J-pynz}5rny]|v{`v r9-}|v{Zv{]v\x07ry-7-}v\x07ry_nv|9-}|v{Zn\x07]v\x07ry-7-}v\x07ry_nv|6H--]|v{`v r-J-tyl]|v{`v rH--P|y|-J-p|y|H--<<-JJJ-高度色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6----P|y|-J-trP|y|O\bUrvtu5tnqvr{ar\x07r9-d|yq]|vv|{6H--0r{qvs--<<-JJJJJJJJJJJ--<<-JJJ-纯色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6----P|y|-J-p|{n{P|y|H--0r{qvs--<<-JJJJJJJJJJJ--0vs-qrsv{rq5b`Rl]\\V[al[\\_ZNY6----[|zny-J-{|znyv r5zn@5z|qryZnv\x076-7-{|zny6H--0r{qvs--0vs-qrsv{rq5b`RlRQY6----Y|tQr}u-J-y|t?5:z]|vv|{; 6H--0r{qvs--0vs-qrsv{rq5b`RlU^lQR]aU6----<<-sy|n-}|wSnp|-J-:=;B-7-r|yv|{;\b-<-5n{5s|-<-?;=6-7-z]|vv|{; 6H----<<-sy|n-_nqv-J-rny]|v{`v r-<-}|wSnp|H----sy|n-|vtv{nyQr}u-J-tyl]|vv|{;H----sy|n-nqwrqQr}u-J-|vtv{nyQr}u-8-=;>H----sy|n-nqw-J-nqwrqQr}u-<-|vtv{nyQr}uH----z]|vv|{;\x07\b -J-z]|vv|{;\x07\b -7-nqwH----tyl]|vv|{-J-}|wrpv|{Znv\x07-7-z]|vv|{H--0r{qvs--0v{pyqr-I|yq}|lrr\x07K--0v{pyqr-Is|tlrr\x07K--ZNV[lR[Q\f");var pbmUniforms=Object.assign({pointScale:new THREE__namespace.Uniform(1),pointMinPixel:new THREE__namespace.Uniform(1),pointMaxPixel:new THREE__namespace.Uniform(1),opacity:new THREE__namespace.Uniform(1),gradientTexture:new THREE__namespace.Uniform(null),modelAlpha:new THREE__namespace.Uniform(0),clippers:new THREE__namespace.Uniform([]),shownFloorIndex:new THREE__namespace.Uniform(-1),constantColor:new THREE__namespace.Uniform(new THREE__namespace.Vector3),geometricError:new THREE__namespace.Uniform(0),pixelRatio:new THREE__namespace.Uniform(1),resolution:new THREE__namespace.Uniform(new THREE__namespace.Vector2(512,512)),floorIndex:new THREE__namespace.Uniform(0),brightness:new THREE__namespace.Uniform(1),modelBoundingMin:new THREE__namespace.Uniform(new THREE__namespace.Vector3),modelBoundingMax:new THREE__namespace.Uniform(new THREE__namespace.Vector3),colorSaturation:new THREE__namespace.Uniform(0),colorBrightness:new THREE__namespace.Uniform(0),outlineGain:new THREE__namespace.Uniform(0),distanceGain:new THREE__namespace.Uniform(0)},THREE__namespace.UniformsUtils.clone(THREE__namespace.UniformsLib.fog)),PBMPointCloudMaterial=function(n){__extends(t,n);function t(e){e===void 0&&(e={});var r,o,s,u,l,c,f,d,p,v,A,g,h,y,m,E,b,T,_,R,S,C,B,L,M,w,H,O,I=n.call(this,{vertexShader:pointCloudVertexShader,fragmentShader:pointCloudFragmentShader,uniforms:THREE__namespace.UniformsUtils.clone(pbmUniforms),lights:!1,clipping:!0,defines:{USE_COLOR_CONSTANT:!1,USE_COLOR_ALTITUDE:!1,USE_EDL:!1,USE_HQ_WEIGHT:!1,USE_HQ_DEPTH:!1,NUM_CLIPPING_BOX:!1,USE_CLIPFLOOR:!1,USE_VERTEX_MARK:!1,USE_MAP:!0,USE_UV:!0,USE_LUMINANCE:!1,USE_BLACK_TRANSITION:!1,USE_POINT_NORMAL:!1,USE_POINT_SHAPE_CIRCLE:!1,USE_POINT_SIZE_ATTENUATION:!1,USE_POINT_SIZE_GEOMETRIC:!1,USE_POINT_BACK_HIDDEN:!1,USE_POINT_BACK_DARK:!1}})||this,N;return I.customShaderHash="",I.customShaderUniforms={},I.customShaderDefines={},Object.defineProperties(I,{constantColor:{get:function(){return this.uniforms.constantColor.value},set:function(k){this.uniforms.constantColor.value=k}},opacity:{get:function(){return this.uniforms.opacity.value},set:function(k){this.uniforms.opacity.value=k}},modelAlpha:{get:function(){return this.uniforms.modelAlpha.value},set:function(k){this.uniforms.modelAlpha.value=k}},shownFloorIndex:{get:function(){return this.uniforms.shownFloorIndex.value},set:function(k){this.uniforms.shownFloorIndex.value=k}},clippers:{get:function(){return N},set:function(k){N!==k&&(N=k,this.uniforms.clippers.value=(N||[]).map(function(U){var D=typeof U.floorIndex=="number"?U.floorIndex:-1,q=new THREE__namespace.Matrix4().getInverse(U.clippingBoxMatrix);return{matrixInverse:q,floorIndex:D}}),this.needsUpdate=!0)}},colorStyle:{get:function(){return this.defines.USE_COLOR_CONSTANT?"CONSTANT":this.defines.USE_COLOR_ALTITUDE?"ALTITUDE":"RGB"},set:function(k){var U=k==="CONSTANT",D=k==="ALTITUDE";this.defines.USE_COLOR_CONSTANT!==U&&(this.defines.USE_COLOR_CONSTANT=U,this.needsUpdate=!0),this.defines.USE_COLOR_ALTITUDE!==D&&(this.defines.USE_COLOR_ALTITUDE=D,this.needsUpdate=!0)}},pointSize:{get:function(){return this.defines.USE_POINT_SIZE_GEOMETRIC===!0?"GEOMETRIC":this.defines.USE_POINT_SIZE_ATTENUATION===!0?"ATTENUATION":"FIXED"},set:function(k){var U=k==="ATTENUATION",D=k==="GEOMETRIC";this.defines.USE_POINT_SIZE_GEOMETRIC!==D&&(this.defines.USE_POINT_SIZE_GEOMETRIC=D,this.needsUpdate=!0),this.defines.USE_POINT_SIZE_ATTENUATION!==U&&(this.defines.USE_POINT_SIZE_ATTENUATION=U,this.needsUpdate=!0)}},pointShape:{get:function(){return this.defines.USE_POINT_SHAPE_CIRCLE===!0?"CIRCLE":"SQUARE"},set:function(k){var U=k==="CIRCLE";this.defines.USE_POINT_SHAPE_CIRCLE!==U&&(this.defines.USE_POINT_SHAPE_CIRCLE=U,this.needsUpdate=!0)}},pointScale:{get:function(){return this.uniforms.pointScale.value},set:function(k){this.uniforms.pointScale.value=k}},pointBack:{get:function(){return this.defines.USE_POINT_BACK_HIDDEN===!0?"HIDDEN":this.defines.USE_POINT_BACK_DARK===!0?"DARK":"VISIBLE"},set:function(k){var U=k==="HIDDEN",D=k==="DARK";this.defines.USE_POINT_BACK_HIDDEN!==U&&(this.defines.USE_POINT_BACK_HIDDEN=U,this.needsUpdate=!0),this.defines.USE_POINT_BACK_DARK!==D&&(this.defines.USE_POINT_BACK_DARK=D,this.needsUpdate=!0)}},pointMinPixel:{get:function(){return this.uniforms.pointMinPixel.value},set:function(k){this.uniforms.pointMinPixel.value=k}},pointMaxPixel:{get:function(){return this.uniforms.pointMaxPixel.value},set:function(k){this.uniforms.pointMaxPixel.value=k}},useEDL:{get:function(){return this.defines.USE_EDL},set:function(k){k!==this.defines.USE_EDL&&(this.defines.USE_EDL=k,this.needsUpdate=!0)}},useHQWeight:{get:function(){return this.defines.USE_HQ_WEIGHT},set:function(k){k!==this.defines.USE_HQ_WEIGHT&&(this.defines.USE_HQ_WEIGHT=k,this.needsUpdate=!0)}},useHQDepth:{get:function(){return this.defines.USE_HQ_DEPTH},set:function(k){k!==this.defines.USE_HQ_DEPTH&&(this.defines.USE_HQ_DEPTH=k,this.needsUpdate=!0)}},gradientTexture:{get:function(){return this.uniforms.gradientTexture.value},set:function(k){this.uniforms.gradientTexture.value=k}},floorIndex:{get:function(){return this.uniforms.floorIndex.value},set:function(k){this.uniforms.floorIndex.value=k}},brightness:{get:function(){return this.uniforms.brightness.value},set:function(k){this.uniforms.brightness.value=k}},colorSaturation:{get:function(){return this.uniforms.colorSaturation.value},set:function(k){this.uniforms.colorSaturation.value=k}},colorBrightness:{get:function(){return this.uniforms.colorBrightness.value},set:function(k){this.uniforms.colorBrightness.value=k}},outlineGain:{get:function(){return this.uniforms.outlineGain.value},set:function(k){this.uniforms.outlineGain.value=k}},distanceGain:{get:function(){return this.uniforms.distanceGain.value},set:function(k){this.uniforms.distanceGain.value=k}}}),I.pano0=(r=e.pano0)!==null&&r!==void 0?r:defaultPbmParameters.pano0,I.pano1=(o=e.pano1)!==null&&o!==void 0?o:defaultPbmParameters.pano1,I.modelAlpha=(s=e.modelAlpha)!==null&&s!==void 0?s:defaultPbmParameters.modelAlpha,I.progress=(u=e.progress)!==null&&u!==void 0?u:defaultPbmParameters.progress,I.transition=(l=e.transition)!==null&&l!==void 0?l:defaultPbmParameters.transition,I.colorStyle=(c=e.colorStyle)!==null&&c!==void 0?c:defaultPbmParameters.colorStyle,I.constantColor=(f=e.constantColor)!==null&&f!==void 0?f:defaultPbmParameters.constantColor,I.opacity=(d=e.opacity)!==null&&d!==void 0?d:defaultPbmParameters.opacity,I.floorStyle=(p=e.floorStyle)!==null&&p!==void 0?p:defaultPbmParameters.floorStyle,I.shownFloorIndex=(v=e.shownFloorIndex)!==null&&v!==void 0?v:defaultPbmParameters.shownFloorIndex,I.clippers=(A=e.clippers)!==null&&A!==void 0?A:defaultPbmParameters.clippers,I.useEDL=(g=e.useEDL)!==null&&g!==void 0?g:defaultPbmParameters.useEDL,I.useHQWeight=(h=e.useHQWeight)!==null&&h!==void 0?h:defaultPbmParameters.useHQWeight,I.useHQDepth=(y=e.useHQDepth)!==null&&y!==void 0?y:defaultPbmParameters.useHQDepth,I.pointShape=(m=e.pointShape)!==null&&m!==void 0?m:defaultPbmParameters.pointShape,I.pointSize=(E=e.pointSize)!==null&&E!==void 0?E:defaultPbmParameters.pointSize,I.pointScale=(b=e.pointScale)!==null&&b!==void 0?b:defaultPbmParameters.pointScale,I.pointBack=(T=e.pointBack)!==null&&T!==void 0?T:defaultPbmParameters.pointBack,I.pointMinPixel=(_=e.pointMinPixel)!==null&&_!==void 0?_:defaultPbmParameters.pointMinPixel,I.pointMaxPixel=(R=e.pointMaxPixel)!==null&&R!==void 0?R:defaultPbmParameters.pointMaxPixel,I.gradientTexture=(S=e.gradientTexture)!==null&&S!==void 0?S:defaultPbmParameters.gradientTexture,I.brightness=(C=e.brightness)!==null&&C!==void 0?C:defaultPbmParameters.brightness,I.colorSaturation=(B=e.colorSaturation)!==null&&B!==void 0?B:defaultPbmParameters.colorSaturation,I.colorBrightness=(L=e.colorBrightness)!==null&&L!==void 0?L:defaultPbmParameters.colorBrightness,I.outlineGain=(M=e.outlineGain)!==null&&M!==void 0?M:defaultPbmParameters.outlineGain,I.distanceGain=(w=e.distanceGain)!==null&&w!==void 0?w:defaultPbmParameters.distanceGain,I.customShaders=(H=e.customShaders)!==null&&H!==void 0?H:defaultPbmParameters.customShaders,I.useAddBlend=(O=e.useAddBlend)!==null&&O!==void 0?O:defaultPbmParameters.useAddBlend,I.customShaderHash="",I.floorIndex=0,I.transparent=!0,I}return t.prototype.onBeforeCompile=function(e,r){var o,s,u=this.customShaders.filter(function(h){return h.type.includes("pointcloud")}),l=u.reduce(function(h,y){return h+y.vertex.mainBefore},""),c=u.reduce(function(h,y){return h+y.vertex.mainStart},""),f=u.reduce(function(h,y){return h+y.vertex.mainEnd},""),d=u.reduce(function(h,y){return h+y.fragment.mainBefore},""),p=u.reduce(function(h,y){return h+y.fragment.mainStart},""),v=u.reduce(function(h,y){return h+y.fragment.mainModelColor},""),A=u.reduce(function(h,y){return h+y.fragment.mainEnd},"");e.vertexShader=e.vertexShader.replace(/MAIN_BEFORE/g,l),e.fragmentShader=e.fragmentShader.replace(/MAIN_BEFORE/g,d),e.vertexShader=e.vertexShader.replace(/MAIN_START/g,c),e.fragmentShader=e.fragmentShader.replace(/MAIN_START/g,p),e.vertexShader=e.vertexShader.replace(/MAIN_END/g,f),e.fragmentShader=e.fragmentShader.replace(/MAIN_END/g,A),e.fragmentShader=e.fragmentShader.replace(/MAIN_MODEL_COLOR/g,v);var g=String((s=(o=this.clippers)===null||o===void 0?void 0:o.length)!==null&&s!==void 0?s:0);e.vertexShader=e.vertexShader.replace(/NUM_CLIPPERS/g,g),e.fragmentShader=e.fragmentShader.replace(/NUM_CLIPPERS/g,g),u.forEach(function(h){h.onBeforeCompile(e,r)})},t.prototype.update=function(e,r,o){var s="".concat(o.id,":").concat(o.materialVersion);s!==this.syncModelVersion&&(Object.assign(this,o.getMaterial()),this.syncModelVersion=s);var u=this.customShaders.map(function(m){return m.getHash()}).join("");this.customShaderHash!==u&&(this.customShaderHash=u,this.needsUpdate=!0);for(var l=this.customShaders.reduce(function(m,E){return Object.assign(m,E.defines)},{}),c=Object.keys(this.customShaderDefines),f=0,d=c;f<d.length;f++){var p=d[f];delete this.defines[p]}this.customShaderDefines=l,Object.assign(this.defines,this.customShaderDefines);for(var v=this.customShaders.reduce(function(m,E){return Object.assign(m,E.uniforms)},{}),A=Object.keys(this.customShaderUniforms),g=0,h=A;g<h.length;g++){var y=h[g];delete this.uniforms[y]}this.customShaderUniforms=v,Object.assign(this.uniforms,this.customShaderUniforms),this.visible=!0,this.transparent=!1,this.shownFloorIndex>-1&&(this.transparent=this.shownFloorIndex!==this.floorIndex),this.modelAlpha<1&&(this.transparent=!0),this.opacity<1&&(this.transparent=!0),this.brightness<1&&(this.transparent=!0),this.useAddBlend?(this.depthWrite=!1,this.depthTest=!1,this.blending=THREE__namespace.AdditiveBlending):(this.depthWrite=!0,this.depthTest=!0,this.blending=THREE__namespace.NormalBlending),this.useEDL&&(this.transparent=!1),this.useHQWeight?(this.depthWrite=!1,this.blending=THREE__namespace.CustomBlending,this.blendSrc=THREE__namespace.SrcAlphaFactor,this.blendSrcAlpha=THREE__namespace.SrcAlphaFactor,this.blendDst=THREE__namespace.OneFactor,this.blendDstAlpha=THREE__namespace.OneFactor):(this.blending=THREE__namespace.NormalBlending,this.blendDst=THREE__namespace.OneMinusSrcAlphaFactor,this.blendEquation=THREE__namespace.AddEquation,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null),this.floorStyle==="VISIBILITY"&&this.shownFloorIndex!==-1&&this.floorIndex!==this.shownFloorIndex&&(this.visible=!1),this.uniforms.pixelRatio.value=r.pixelRatio,this.uniforms.resolution.value.copy(r.resolution),this.uniforms.modelBoundingMax.value.copy(o.bounding.max),this.uniforms.modelBoundingMin.value.copy(o.bounding.min)},t.prototype.copy=function(e){return n.prototype.copy.call(this,this),this.customShaders=e.customShaders,this.pano0=e.pano0,this.pano1=e.pano1,this.progress=e.progress,this.transition=e.transition,this.floorStyle=e.floorStyle,this.shownFloorIndex=e.shownFloorIndex,this.brightness=e.brightness,this.clippers=e.clippers,this.constantColor=e.constantColor,this.modelAlpha=e.modelAlpha,this.useEDL=e.useEDL,this.useHQWeight=e.useHQWeight,this.useHQDepth=e.useHQDepth,this.colorStyle=e.colorStyle,this.pointSize=e.pointSize,this.pointShape=e.pointShape,this.pointScale=e.pointScale,this.pointBack=e.pointBack,this.pointMinPixel=e.pointMinPixel,this.pointMaxPixel=e.pointMaxPixel,this.gradientTexture=e.gradientTexture,this.colorSaturation=e.colorSaturation,this.colorBrightness=e.colorBrightness,this.outlineGain=e.outlineGain,this.distanceGain=e.distanceGain,this.useAddBlend=e.useAddBlend,this},t}(THREE__namespace.ShaderMaterial),InternalWebGLRenderer=function(n){__extends(t,n);function t(e){var r=e.preserveDrawingBuffer,o=r===void 0?!0:r,s=e.premultipliedAlpha,u=s===void 0?!0:s,l=e.stencil,c=l===void 0?!0:l,f=e.backgroundColor,d=f===void 0?1579548:f,p=e.backgroundAlpha,v=p===void 0?1:p,A=e.pixelRatio,g=A===void 0?1:A,h=e.antialias,y=h===void 0?!1:h,m=e.webgl2,E=e.logarithmicDepthBuffer,b=e.precision,T=e.powerPreference,_=this,R={antialias:y,alpha:!0,depth:!0,preserveDrawingBuffer:o,stencil:c,premultipliedAlpha:u,powerPreference:T},S={logarithmicDepthBuffer:E,precision:b};if(m){var C=document.createElement("canvas"),B=C.getContext("webgl2",R);B?_=n.call(this,__assign(__assign(__assign({},R),S),{antialias:!0,canvas:C,context:B}))||this:(console.error("error occurred when getting webgl2 canvas context, mybe webgl2 not support, fallback to webgl."),_=n.call(this,__assign(__assign({},R),S))||this)}else _=n.call(this,__assign(__assign({},R),S))||this;return _.setPixelRatio(g),_.setClearColor(d,v),_.outputEncoding=THREE__namespace.sRGBEncoding,_.autoClear=!0,_}return t}(THREE__namespace.WebGLRenderer),Scene=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.add=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return n.prototype.add.apply(this,e)},t.prototype.remove=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return n.prototype.remove.apply(this,e)},t}(THREE__namespace.Scene);function coordinatesToVector(n,t){var e=Math.abs(Math.cos(n.latitude)),r=-Math.sin(n.longitude)*e,o=-Math.sin(n.latitude),s=-Math.cos(n.longitude)*e;return t?t.set(r,o,s):new THREE__namespace.Vector3(r,o,s)}var DEFAULT_ASPECT=1,DEFAULT_NEAR=.1,DEFAULT_FAR=2e3,TAU$2=Math.PI*2,PI_2=Math.PI/2;function formatRad$1(n){return n>0&&n<=TAU$2?n:(n%TAU$2+TAU$2)%TAU$2}function matrixLerp(n,t,e,r){e=Math.pow(e,4);for(var o=0;o<16;o++)r.elements[o]=n.elements[o]+(t.elements[o]-n.elements[o])*e;return r}var Camera=function(n){__extends(t,n);function t(e,r,o,s,u,l,c){r===void 0&&(r=DEFAULT_ASPECT),o===void 0&&(o=DEFAULT_NEAR),s===void 0&&(s=DEFAULT_FAR),u===void 0&&(u=new THREE__namespace.Vector2),l===void 0&&(l=new THREE__namespace.Vector2(512,512)),c===void 0&&(c=1);var f=n.call(this)||this;f.fov=e,f.aspect=r,f.near=o,f.far=s,f.perspToOrtho=u,f.resolution=l,f.pixelRatio=c,f.time=0,f.needsRender=!0,f.refineModel=!0,f.pose={longitude:0,latitude:0,fov:e,distance:0,offset:new THREE__namespace.Vector3},f.computePose(),f.perspectiveCamera=new THREE__namespace.PerspectiveCamera(f.fov,f.aspect,.001,f.far);var d=Math.max(f.orthoDistance,.01)*Math.tan(.5*f.fov/180*Math.PI),p=-.5*f.aspect*2*d;return f.orthographicCamera=new THREE__namespace.OrthographicCamera(p,-p,d,-d,.001,f.far),f.computeProjectionMatrix(),f.lastValues={position:f.position.clone(),quaternion:f.quaternion.clone(),scale:f.scale.clone(),fov:f.fov,aspect:f.aspect,near:f.near,far:f.far,orthoDistance:f.orthoDistance,perspToOrtho:f.perspToOrtho.clone()},f.type=f.perspToOrtho.x<1?"PerspectiveCamera":"OrthographicCamera",f.autoNearFar=!0,f.environment=null,f}return Object.defineProperty(t.prototype,"orthoDistance",{get:function(){return this.pose.distance>1?this.pose.distance:1+(this.pose.distance-1)*this.perspToOrtho.x},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"zoom",{get:function(){return this.type==="OrthographicCamera"?this.orthographicCamera.zoom:this.type==="PerspectiveCamera"?this.perspectiveCamera.zoom:1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"top",{get:function(){return this.type==="OrthographicCamera"?this.orthographicCamera.top:0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bottom",{get:function(){return this.type==="OrthographicCamera"?this.orthographicCamera.bottom:0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"left",{get:function(){return this.type==="OrthographicCamera"?this.orthographicCamera.left:0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"right",{get:function(){return this.type==="OrthographicCamera"?this.orthographicCamera.right:0},enumerable:!1,configurable:!0}),t.prototype.getDirection=function(e){return coordinatesToVector(this.pose,e)},t.prototype.computePose=function(e){e===void 0&&(e=0),this.updateMatrix();var r=this.matrix.elements;return this.pose.latitude=Math.asin(clamp$1(r[9],-1,1)),Math.abs(r[9])<.9999999?this.pose.longitude=formatRad$1(Math.atan2(r[8],r[10])):this.pose.longitude=formatRad$1(Math.atan2(-r[2],r[0])),this.pose.fov=this.fov,this.pose.distance=e,this.pose.offset=new THREE__namespace.Vector3(-r[8],-r[9],-r[10]).setLength(this.pose.distance).add(this.position),this},t.prototype.setFromPose=function(e){var r,o,s,u,l,c=formatRad$1((r=e.longitude)!==null&&r!==void 0?r:this.pose.longitude),f=Math.max(-PI_2+1e-4,Math.min(PI_2-1e-4,(o=e.latitude)!==null&&o!==void 0?o:this.pose.latitude)),d=(s=e.fov)!==null&&s!==void 0?s:this.pose.fov,p=(u=e.distance)!==null&&u!==void 0?u:this.pose.distance,v=(l=e.offset)!==null&&l!==void 0?l:this.pose.offset,A=coordinatesToVector({longitude:c,latitude:f}).normalize();return this.position.set(0,0,0),this.lookAt(A),this.position.add(v).sub(A.clone().setLength(p)),this.fov!==d&&(this.fov=d,this.updateProjectionMatrix()),this.updateMatrixWorld(!0),this.pose.longitude=c,this.pose.latitude=f,this.pose.fov=d,this.pose.distance=p,this.pose.offset.copy(v),this.needsRender=!0,this},t.prototype.copyPose=function(){return{longitude:this.pose.longitude,latitude:this.pose.latitude,fov:this.pose.fov,distance:this.pose.distance,offset:this.pose.offset.clone()}},t.prototype.computeProjectionMatrix=function(){matrixLerp(this.orthographicCamera.projectionMatrix,this.perspectiveCamera.projectionMatrix,1-this.perspToOrtho.x,this.projectionMatrix),this.projectionMatrixInverse.getInverse(this.projectionMatrix),this.needsRender=!0},t.prototype.setViewOffset=function(e,r,o,s,u,l){this.perspectiveCamera.setViewOffset(e,r,o,s,u,l),this.orthographicCamera.setViewOffset(e,r,o,s,u,l),this.computeProjectionMatrix()},t.prototype.clearViewOffset=function(){this.perspectiveCamera.clearViewOffset(),this.orthographicCamera.clearViewOffset(),this.computeProjectionMatrix()},t.prototype.updateProjectionMatrix=function(){this.perspectiveCamera.updateProjectionMatrix(),this.orthographicCamera.updateProjectionMatrix(),this.computeProjectionMatrix()},Object.defineProperty(t.prototype,"perspectiveProjectionMatrix",{get:function(){return this.perspectiveCamera.projectionMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"perspectiveProjectionMatrixInverse",{get:function(){return this.perspectiveCamera.projectionMatrixInverse},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"orthographicProjectionMatrix",{get:function(){return this.orthographicCamera.projectionMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"orthographicProjectionMatrixInverse",{get:function(){return this.orthographicCamera.projectionMatrixInverse},enumerable:!1,configurable:!0}),t.prototype.updateTime=function(e){this.time=e;var r=!1;if((this.lastValues.fov!==this.fov||this.lastValues.near!==this.near||this.lastValues.far!==this.far||this.lastValues.aspect!==this.aspect)&&(this.perspectiveCamera.fov=this.fov,this.perspectiveCamera.near=this.near,this.perspectiveCamera.far=this.far,this.perspectiveCamera.aspect=this.aspect,this.perspectiveCamera.updateProjectionMatrix(),r=!0),!this.lastValues.position.equals(this.position)||!this.lastValues.quaternion.equals(this.quaternion)||!this.lastValues.scale.equals(this.scale)||!this.lastValues.perspToOrtho.equals(this.perspToOrtho)||this.lastValues.fov!==this.fov||this.lastValues.near!==this.near||this.lastValues.far!==this.far||this.lastValues.orthoDistance!==this.orthoDistance||this.lastValues.aspect!==this.aspect){var o=Math.max(this.orthoDistance,.01)*Math.tan(.5*this.fov/180*Math.PI),s=-.5*this.aspect*2*o;this.orthographicCamera.left=s,this.orthographicCamera.right=-s,this.orthographicCamera.top=o,this.orthographicCamera.bottom=-o,this.orthographicCamera.near=this.near,this.orthographicCamera.far=this.far,this.orthographicCamera.updateProjectionMatrix(),r=!0}r&&this.computeProjectionMatrix(),this.lastValues.position.copy(this.position),this.lastValues.quaternion.copy(this.quaternion),this.lastValues.scale.copy(this.scale),this.lastValues.fov=this.fov,this.lastValues.aspect=this.aspect,this.lastValues.near=this.near,this.lastValues.far=this.far,this.lastValues.orthoDistance=this.orthoDistance,this.lastValues.perspToOrtho.copy(this.perspToOrtho),this.type=this.perspToOrtho.x<1?"PerspectiveCamera":"OrthographicCamera"},Object.defineProperty(t.prototype,"isPerspectiveCamera",{get:function(){return this.perspToOrtho.x<1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isOrthographicCamera",{get:function(){return this.perspToOrtho.x>=1},enumerable:!1,configurable:!0}),t.prototype.copy=function(e,r){return n.prototype.copy.call(this,e,r),this.fov=e.fov,this.aspect=e.aspect,this.near=e.near,this.far=e.far,this.perspToOrtho.copy(e.perspToOrtho),this.updateTime(now()),this},t}(THREE__namespace.Camera),VolumePlaneIntersect;(function(n){n[n.Outside=-1]="Outside",n[n.Intersecting=0]="Intersecting",n[n.Inside=1]="Inside"})(VolumePlaneIntersect||(VolumePlaneIntersect={}));var EPSILON$2=1e-6,scratchVector=new THREE__namespace.Vector3,scratchMatrix4$4=new THREE__namespace.Matrix4,scratchXAxis=new THREE__namespace.Vector3,scratchYAxis=new THREE__namespace.Vector3,scratchZAxis=new THREE__namespace.Vector3,scratchSize=new THREE__namespace.Vector3,scratchBox3=new THREE__namespace.Box3,scratchSphere$1=new THREE__namespace.Sphere,scratchMatrix4Inverse$1=new THREE__namespace.Matrix4,scratchRay$1=new THREE__namespace.Ray,scratchObject3D=new THREE__namespace.Object3D,scratchFrustum=new THREE__namespace.Frustum;function quaternionFromMatrix3(n,t){var e=n.elements;return t.setFromRotationMatrix(scratchMatrix4$4.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1)),t}var CullingVolume=function(){function n(t){t===void 0&&(t=[]),this.planes=t}return Object.defineProperty(n,"MASK_OUTSIDE",{get:function(){return 4294967295},enumerable:!1,configurable:!0}),Object.defineProperty(n,"MASK_INSIDE",{get:function(){return 0},enumerable:!1,configurable:!0}),Object.defineProperty(n,"MASK_INDETERMINATE",{get:function(){return 2147483647},enumerable:!1,configurable:!0}),n.prototype.setFromFrustum=function(t){return this.planes=t.planes.map(function(e){return e.clone()}),this},n.prototype.setFromCamera=function(t){return scratchMatrix4$4.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),scratchFrustum.setFromProjectionMatrix(scratchMatrix4$4),this.setFromFrustum(scratchFrustum),this},n.prototype.applyMatrix4=function(t){for(var e=0,r=this.planes;e<r.length;e++){var o=r[e];o.applyMatrix4(t)}},n.prototype.copy=function(t){return this.planes=t.planes.map(function(e){return e.clone()}),this},n.prototype.clone=function(){return new n().copy(this)},n.prototype.computeVisibility=function(t){for(var e=VolumePlaneIntersect.Inside,r=0,o=this.planes;r<o.length;r++){var s=o[r],u=t.intersectPlane(s);switch(u){case VolumePlaneIntersect.Outside:return VolumePlaneIntersect.Outside;case VolumePlaneIntersect.Intersecting:e=VolumePlaneIntersect.Intersecting;break}}return e},n.prototype.computeVisibilityWithPlaneMask=function(t,e){if(e===n.MASK_OUTSIDE||e===n.MASK_INSIDE)return e;for(var r=n.MASK_INSIDE,o=Math.min(32,this.planes.length),s=0;s<o;++s){var u=1<<s;if(e&u){var l=this.planes[s],c=t.intersectPlane(l);if(c===VolumePlaneIntersect.Outside)return n.MASK_OUTSIDE;c===VolumePlaneIntersect.Intersecting&&(r|=u)}}return r},n}(),BoxBoundingVolume=function(){function n(){this.type="box",this.center=new THREE__namespace.Vector3,this.halfSize=new THREE__namespace.Vector3,this.rotation=new THREE__namespace.Matrix3}return n.prototype.fromJson=function(t){var e=t.box;this.center.set(e[0],e[1],e[2]);var r=e[3],o=e[4],s=e[5],u=e[6],l=e[7],c=e[8],f=e[9],d=e[10],p=e[11],v=Math.max(Math.sqrt(r*r+o*o+s*s),.001),A=Math.max(Math.sqrt(u*u+l*l+c*c),.001),g=Math.max(Math.sqrt(f*f+d*d+p*p),.001);this.halfSize.set(v,A,g);var h=this.halfSize.toArray().reduce(function(y,m){return y+m},0);return(isNaN(h)||h<=0)&&this.halfSize.setScalar(EPSILON$2),this.rotation.fromArray([r/v,o/v,s/v,u/A,l/A,c/A,f/g,d/g,p/g]),isNaN(this.rotation.toArray().reduce(function(y,m){return y+m},0))&&this.rotation.identity(),this},n.prototype.toJson=function(){return this.rotation.extractBasis(scratchXAxis,scratchYAxis,scratchZAxis),{box:__spreadArray(__spreadArray(__spreadArray(__spreadArray([],this.center.toArray(),!0),scratchXAxis.multiplyScalar(this.halfSize.x).toArray(),!0),scratchYAxis.multiplyScalar(this.halfSize.y).toArray(),!0),scratchZAxis.multiplyScalar(this.halfSize.z).toArray(),!0)}},n.prototype.copy=function(t){return this.center.copy(t.center),this.halfSize.copy(t.halfSize),this.rotation.copy(t.rotation),this},n.prototype.clone=function(){return new n().copy(this)},n.prototype.applyMatrix4=function(t){return scratchObject3D.position.copy(this.center),quaternionFromMatrix3(this.rotation,scratchObject3D.quaternion),scratchObject3D.scale.copy(this.halfSize),scratchObject3D.matrix.compose(scratchObject3D.position,scratchObject3D.quaternion,scratchObject3D.scale),scratchObject3D.matrix.premultiply(t),scratchObject3D.matrix.decompose(scratchObject3D.position,scratchObject3D.quaternion,scratchObject3D.scale),this.center.copy(scratchObject3D.position),this.rotation.setFromMatrix4(scratchMatrix4$4.makeRotationFromQuaternion(scratchObject3D.quaternion)),this.halfSize.copy(scratchObject3D.scale),this},n.prototype.getCenter=function(t){return t.copy(this.center)},n.prototype.distanceSquaredToPoint=function(t){var e=this.rotation.elements,r=t.x-this.center.x,o=t.y-this.center.y,s=t.z-this.center.z,u=0,l;return l=r*e[0]+o*e[1]+s*e[2],l<0&&(l=-l),l-=this.halfSize.x,l>0&&(u+=l*l),l=r*e[3]+o*e[4]+s*e[5],l<0&&(l=-l),l-=this.halfSize.y,l>0&&(u+=l*l),l=r*e[6]+o*e[7]+s*e[8],l<0&&(l=-l),l-=this.halfSize.z,l>0&&(u+=l*l),u},n.prototype.distanceToPoint=function(t){return Math.sqrt(this.distanceSquaredToPoint(t))},n.prototype.distanceToPlane=function(t){var e=t.projectPoint(this.center,new THREE__namespace.Vector3);return this.distanceToPoint(e)},n.prototype.getBoundingBox=function(t){return t.makeEmpty(),this.rotation.extractBasis(scratchXAxis,scratchYAxis,scratchZAxis),scratchXAxis.setLength(this.halfSize.x),scratchYAxis.setLength(this.halfSize.y),scratchZAxis.setLength(this.halfSize.z),t.expandByPoint(scratchVector.copy(this.center).add(scratchXAxis)),t.expandByPoint(scratchVector.copy(this.center).sub(scratchXAxis)),t.expandByPoint(scratchVector.copy(this.center).add(scratchYAxis)),t.expandByPoint(scratchVector.copy(this.center).sub(scratchYAxis)),t.expandByPoint(scratchVector.copy(this.center).add(scratchZAxis)),t.expandByPoint(scratchVector.copy(this.center).sub(scratchZAxis)),t},n.prototype.toGeometry=function(){var t=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),e=new Float32Array(8*3);scratchVector.set(this.halfSize.x,this.halfSize.y,this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,0),scratchVector.set(-this.halfSize.x,this.halfSize.y,this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,3),scratchVector.set(-this.halfSize.x,-this.halfSize.y,this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,6),scratchVector.set(this.halfSize.x,-this.halfSize.y,this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,9),scratchVector.set(this.halfSize.x,this.halfSize.y,-this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,12),scratchVector.set(-this.halfSize.x,this.halfSize.y,-this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,15),scratchVector.set(-this.halfSize.x,-this.halfSize.y,-this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,18),scratchVector.set(this.halfSize.x,-this.halfSize.y,-this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,21);var r=new THREE__namespace.BufferGeometry;return r.setIndex(new THREE__namespace.BufferAttribute(t,1)),r.setAttribute("position",new THREE__namespace.BufferAttribute(e,3)),r.computeBoundingBox(),r.computeBoundingSphere(),r},n.prototype.intersectPlane=function(t){var e=this.center,r=t.normal,o=this.rotation.elements,s=this.halfSize,u=r.x,l=r.y,c=r.z,f=Math.abs(u*o[0]*s.x+l*o[1]*s.x+c*o[2]*s.x)+Math.abs(u*o[3]*s.y+l*o[4]*s.y+c*o[5]*s.y)+Math.abs(u*o[6]*s.z+l*o[7]*s.z+c*o[8]*s.z),d=r.dot(e)+t.constant;return d<=-f?VolumePlaneIntersect.Outside:d>=f?VolumePlaneIntersect.Inside:VolumePlaneIntersect.Intersecting},n.prototype.intersectRay=function(t,e){if(scratchSize.copy(this.halfSize).multiplyScalar(2),scratchBox3.setFromCenterAndSize(scratchVector.set(0,0,0),scratchSize),this.rotation.extractBasis(scratchXAxis,scratchYAxis,scratchZAxis),scratchMatrix4$4.makeBasis(scratchXAxis,scratchYAxis,scratchZAxis),scratchMatrix4$4.setPosition(this.center),scratchMatrix4Inverse$1.getInverse(scratchMatrix4$4),scratchRay$1.copy(t).applyMatrix4(scratchMatrix4Inverse$1),scratchBox3.containsPoint(scratchRay$1.origin))return!0;var r=scratchRay$1.intersectBox(scratchBox3,scratchVector);return r?e!==void 0?r.applyMatrix4(scratchMatrix4$4).distanceTo(t.origin)<e:!0:!1},n}(),SphereBoundingVolume=function(){function n(){this.type="sphere",this.center=new THREE__namespace.Vector3,this.radius=-1}return n.prototype.fromJson=function(t){var e=t.sphere;return this.center.set(e[0],e[1],e[2]),this.radius=Math.max(e[3],EPSILON$2),this},n.prototype.toJson=function(){return{sphere:__spreadArray(__spreadArray([],this.center.toArray(),!0),[this.radius],!1)}},n.prototype.copy=function(t){return this.center.copy(t.center),this.radius=t.radius,this},n.prototype.clone=function(){return new n().copy(this)},n.prototype.getBoundingBox=function(t){return t.setFromCenterAndSize(this.center,scratchSize.set(1,1,1).multiplyScalar(this.radius*2)),t},n.prototype.toGeometry=function(){for(var t=32,e=new Float32Array(t*3*2*2),r=0;r<=t;r++){var o=0;o=r/t*Math.PI*2,e[r*6+0]=this.center.x+Math.cos(o)*this.radius,e[r*6+1]=this.center.y+Math.sin(o)*this.radius,e[r*6+2]=this.center.z+0,o=(r+1)/t*Math.PI*2,e[r*6+3]=this.center.x+Math.cos(o)*this.radius,e[r*6+4]=this.center.y+Math.sin(o)*this.radius,e[r*6+5]=this.center.z+0}for(var r=t;r<=t*2;r++){var o=0;o=r/t*Math.PI*2,e[r*6+0]=this.center.x+Math.cos(o)*this.radius,e[r*6+1]=this.center.y+0,e[r*6+2]=this.center.z+Math.sin(o)*this.radius,o=(r+1)/t*Math.PI*2,e[r*6+3]=this.center.x+Math.cos(o)*this.radius,e[r*6+4]=this.center.y+0,e[r*6+5]=this.center.z+Math.sin(o)*this.radius}var s=new THREE__namespace.BufferGeometry;return s.setAttribute("position",new THREE__namespace.BufferAttribute(e,3)),s.computeBoundingBox(),s.computeBoundingSphere(),s},n.prototype.applyMatrix4=function(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this},n.prototype.getCenter=function(t){return t.copy(this.center)},n.prototype.distanceSquaredToPoint=function(t){var e=this.distanceToPoint(t);return e*e},n.prototype.distanceToPoint=function(t){var e=this.center.distanceTo(t)-this.radius;return e<=0?0:e},n.prototype.distanceToPlane=function(t){var e=Math.abs(t.distanceToPoint(this.center));return Math.max(0,e-this.radius)},n.prototype.intersectPlane=function(t){var e=this.center,r=this.radius,o=t.normal,s=o.dot(e)+t.constant;return s<-r?VolumePlaneIntersect.Outside:s<r?VolumePlaneIntersect.Intersecting:VolumePlaneIntersect.Inside},n.prototype.intersectRay=function(t,e){if(scratchSphere$1.set(this.center,this.radius),scratchSphere$1.containsPoint(t.origin))return!0;var r=t.intersectSphere(scratchSphere$1,scratchVector);return r?e!==void 0?t.origin.distanceTo(r)<e:!0:!1},n}(),RegionBoundingVolume=function(){function n(){throw this.type="regin",this.west=0,this.south=0,this.east=0,this.north=0,this.minHeight=0,this.maxHeight=0,new Error("Region bounding volume not supported.")}return n.prototype.fromJson=function(t){var e=t.region;return this.west=e[0],this.south=e[1],this.east=e[2],this.north=e[3],this.minHeight=e[4],this.maxHeight=e[5],this},n.prototype.toJson=function(){return{region:[this.west,this.south,this.east,this.north,this.minHeight,this.maxHeight]}},n.prototype.copy=function(t){return this.west=t.west,this.south=t.south,this.east=t.east,this.north=t.north,this.minHeight=t.minHeight,this.maxHeight=t.maxHeight,this},n.prototype.clone=function(){return new n().copy(this)},n.prototype.getBoundingBox=function(t){throw new Error("not implemented")},n.prototype.toGeometry=function(){throw new Error("not implemented")},n.prototype.applyMatrix4=function(t){throw new Error("not implemented")},n.prototype.getCenter=function(t){throw new Error("not implemented")},n.prototype.distanceToPoint=function(t){throw new Error("not implemented")},n.prototype.distanceSquaredToPoint=function(t){throw new Error("not implemented")},n.prototype.distanceToPlane=function(t){throw new Error("not implemented")},n.prototype.intersectPlane=function(t){throw new Error("not implemented")},n.prototype.intersectRay=function(t){throw new Error("not implemented")},n}();function isBoundingVolume(n){return n instanceof BoxBoundingVolume||n instanceof SphereBoundingVolume||n instanceof RegionBoundingVolume}function makeBoundingVolume(n){if("box"in n)return new BoxBoundingVolume().fromJson(n);if("sphere"in n)return new SphereBoundingVolume().fromJson(n);if("region"in n)return new RegionBoundingVolume().fromJson(n);throw new Error("BoundingVolume ".concat(JSON.stringify(n)," never suppored."))}var debugMaterials=[4821759,8191922,16637280,16739958,5822969,376977,16747077,9259235,14514687].map(function(n){return new THREE__namespace.LineBasicMaterial({color:n,depthWrite:!1,depthTest:!1,transparent:!0})}),debugBoxGeometry=function(){var n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),t=new Float32Array(8*3);scratchVector.set(1,1,1).toArray(t,0),scratchVector.set(-1,1,1).toArray(t,3),scratchVector.set(-1,-1,1).toArray(t,6),scratchVector.set(1,-1,1).toArray(t,9),scratchVector.set(1,1,-1).toArray(t,12),scratchVector.set(-1,1,-1).toArray(t,15),scratchVector.set(-1,-1,-1).toArray(t,18),scratchVector.set(1,-1,-1).toArray(t,21);var e=new THREE__namespace.BufferGeometry;return e.setIndex(new THREE__namespace.BufferAttribute(n,1)),e.setAttribute("position",new THREE__namespace.BufferAttribute(t,3)),e.computeBoundingBox(),e.computeBoundingSphere(),e}(),debugSphereGeometry=function(){for(var n=32,t=new Float32Array(n*3*2*2),e=0;e<=n;e++){var r=0;r=e/n*Math.PI*2,t[e*6+0]=Math.cos(r),t[e*6+1]=Math.sin(r),t[e*6+2]=0,r=(e+1)/n*Math.PI*2,t[e*6+3]=Math.cos(r),t[e*6+4]=Math.sin(r),t[e*6+5]=0}for(var e=n;e<=n*2;e++){var r=0;r=e/n*Math.PI*2,t[e*6+0]=Math.cos(r),t[e*6+1]=0,t[e*6+2]=Math.sin(r),r=(e+1)/n*Math.PI*2,t[e*6+3]=Math.cos(r),t[e*6+4]=0,t[e*6+5]=Math.sin(r)}var o=new THREE__namespace.BufferGeometry;return o.setAttribute("position",new THREE__namespace.BufferAttribute(t,3)),o.computeBoundingBox(),o.computeBoundingSphere(),o}();function createDebugBoundingMesh(n,t){if(n instanceof BoxBoundingVolume){var e=new THREE__namespace.LineSegments(debugBoxGeometry,debugMaterials[Math.min(t,debugMaterials.length-1)]);return e.position.copy(n.center),quaternionFromMatrix3(n.rotation,e.quaternion),e.scale.set(n.halfSize.x,n.halfSize.y,n.halfSize.z),e.matrix.compose(e.position,e.quaternion,e.scale),e}else if(n instanceof SphereBoundingVolume){var e=new THREE__namespace.LineSegments(debugSphereGeometry,debugMaterials[Math.min(t,debugMaterials.length-1)]);return e.position.copy(n.center),e.scale.set(n.radius,n.radius,n.radius),e.matrix.compose(e.position,e.quaternion,e.scale),e}throw new Error("never")}var scratchVector3$4=new THREE__namespace.Vector3,Tile=function(){function n(t,e,r,o){var s=this,u,l,c,f;this.parent=null,this.contentParent=null,this.floor=0,this.id=t,this.state={visible:!1,frameNumber:0,selectedFrameNumber:0,requestedFrameNumber:0,touchedFrameNumber:0,distanceToCamera:0,centerZDepth:0,centerScreenY:0,screenSpaceError:0,visibilityPlaneMask:0,inRequestVolume:!1,shouldRefine:!1,stackLength:0,finalResolution:!0,selectionDepth:0,shouldSelect:!1,lastSelect:!1,ancestorWithContent:null,ancestorWithContentAvailable:null},this.parent=o!=null?o:null,this.contentParent=o?o.hasRenderContent?o:o.contentParent:null,this.level=this.parent?this.parent.level+1:0,this.tileset=r,this.refine=(u=e.refine)!==null&&u!==void 0?u:this.parent?this.parent.refine:"REPLACE",this.transform=new THREE__namespace.Matrix4,e.transform&&this.transform.fromArray(e.transform),this.parent&&this.transform.premultiply(this.parent.transform),typeof e.geometricError=="number"?this.geometricError=e.geometricError*this.transform.getMaxScaleOnAxis():this.geometricError=(c=(l=this.parent)===null||l===void 0?void 0:l.geometricError)!==null&&c!==void 0?c:0,e.content&&e.content.uri?(this.content={uri:e.content.uri,loadState:"UNLOADED",loadStateUpdateTime:now(),loadfailRetryDelay:0,byteLength:0,memoryUsage:0},e.content.group!==void 0&&(this.content.group=e.content.group),e.content.boundingVolume&&(this.content.boundingVolume=makeBoundingVolume(e.content.boundingVolume).applyMatrix4(this.transform)),/\.json$/.test(this.content.uri)?this.type="TILESET":this.type="SCENEGRAPH"):(this.content=null,this.type="EMPTY"),this.levelOfContent=this.parent?this.parent.levelOfContent:-1,this.type==="SCENEGRAPH"&&(this.levelOfContent=this.levelOfContent+1),e.boundingVolume&&(this.boundingVolume=makeBoundingVolume(e.boundingVolume).applyMatrix4(this.transform)),e.viewerRequestVolume&&(this.viewerRequestVolume=makeBoundingVolume(e.viewerRequestVolume).applyMatrix4(this.transform)),this.extras=(f=e.extras)!==null&&f!==void 0?f:{},typeof this.extras.floor!="number"&&o&&typeof o.extras.floor=="number"&&(this.extras.floor=o.extras.floor),typeof this.extras.floor=="number"&&(this.floor=this.extras.floor,this.tileset.floorLength=Math.max(this.tileset.floorLength,this.floor+1)),this.boundingVolume&&(this.boundingVolumeDebugObject=createDebugBoundingMesh(this.boundingVolume,this.levelOfContent)),e.children?this.children=e.children.map(function(d,p){return new n("".concat(s.id,".").concat(p),d,r,s)}):this.children=[]}return n.prototype.traverse=function(t){t(this);for(var e=0,r=this.children;e<r.length;e++){var o=r[e];o.traverse(t)}},n.prototype.updateState=function(t){this.state.frameNumber=t.frameNumber;var e=this.tileset.transformIsIdentity?null:this.tileset.transform;if(this.boundingVolume){var r=e?this.boundingVolume.clone().applyMatrix4(e):this.boundingVolume;if(t.camera.type==="OrthographicCamera"){var o=new THREE__namespace.Plane().setFromNormalAndCoplanarPoint(t.camera.direction,t.camera.position);this.state.distanceToCamera=r.distanceToPlane(o)}else this.state.distanceToCamera=r.distanceToPoint(t.camera.position);var s=r.getCenter(scratchVector3$4).sub(t.camera.position);this.state.centerZDepth=t.camera.direction.dot(s),this.state.centerScreenY=t.camera.up.dot(s);var u=this.parent?this.parent.state.visibilityPlaneMask:CullingVolume.MASK_INDETERMINATE;this.state.visibilityPlaneMask=t.cullingVolume.computeVisibilityWithPlaneMask(r,u),this.state.visible=this.state.visibilityPlaneMask!==CullingVolume.MASK_OUTSIDE}else this.state.distanceToCamera=0,this.state.centerZDepth=0,this.state.visibilityPlaneMask=CullingVolume.MASK_INDETERMINATE,this.state.visible=!0;if((this.levelOfContent<=t.minLevelOfDetail||this.geometricError>=t.maxGeometricError)&&(this.state.visible=!0),this.viewerRequestVolume){var l=e?this.viewerRequestVolume.clone().applyMatrix4(e):this.viewerRequestVolume;this.state.inRequestVolume=l.distanceSquaredToPoint(t.camera.position)<=0}else this.state.inRequestVolume=!0;this.state.screenSpaceError=this.getScreenSpaceError(t,this.state.distanceToCamera,!1)},Object.defineProperty(n.prototype,"selected",{get:function(){return this.state.selectedFrameNumber===this.tileset.frameNumber},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"hasChildren",{get:function(){return this.children.length>0},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"siblingIndex",{get:function(){var t,e;return(e=(t=this.parent)===null||t===void 0?void 0:t.children.indexOf(this))!==null&&e!==void 0?e:0},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"hasTilesetContent",{get:function(){return this.children.length>0&&this.type==="TILESET"},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"hasRenderContent",{get:function(){return this.type==="SCENEGRAPH"},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"contentAvailable",{get:function(){var t;return this.hasRenderContent&&((t=this.content)===null||t===void 0?void 0:t.loadState)==="READY"},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"hasUnloadedContent",{get:function(){var t;return((t=this.content)===null||t===void 0?void 0:t.loadState)==="UNLOADED"},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"hasEmptyContent",{get:function(){return this.type==="EMPTY"},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"contentReady",{get:function(){var t;return((t=this.content)===null||t===void 0?void 0:t.loadState)==="READY"||this.hasEmptyContent},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"contentByteLength",{get:function(){return this.content?this.content.byteLength:0},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"contentMemoryUsage",{get:function(){return this.content?this.content.memoryUsage:0},enumerable:!1,configurable:!0}),n.prototype.getScreenSpaceError=function(t,e,r){var o=this.tileset.transformIsIdentity?1:this.tileset.transform.getMaxScaleOnAxis(),s=this.parent?this.parent.geometricError:this.tileset.geometricError,u=o*(r?s:this.geometricError);if(u===0)return 0;var l=t.height,c=t.sseDenominator;if(t.camera.type==="OrthographicCamera"){var f=t.camera.projectionMatrix.elements,d=1/(f[5]/2),p=.9,v=d/l*p,A=u/v;return A}else{var g=Math.max(e,.001),v=g*c/l,A=u/v;return A}},n.prototype.getPriority=function(){var t=this.refine==="ADD"||this.tileset.skipLevelOfDetail;if(t&&!this.state.visible||this.tileset.frameNumber-this.state.touchedFrameNumber>=1)return-1;var e=this.parent,r=e&&(!t||this.state.screenSpaceError===0),o=r?e.state.screenSpaceError:this.state.screenSpaceError,s=this.tileset.root?this.tileset.root.state.screenSpaceError:0,u=Math.max(s-o,0);return u},n}(),priorityCache=new Map;function getPriority(n,t){if(t&&t.has(n))return t.get(n);var e=n.refine==="ADD"||n.tileset.skipLevelOfDetail,r=n.parent,o=r&&(!e||n.state.screenSpaceError===0),s=o?r.state.screenSpaceError:n.state.screenSpaceError,u=n.tileset.root?n.tileset.root.state.screenSpaceError:0,l=Math.max(u-s,0);return t&&t.set(n,l),l}var TileRequestScheduler=function(){function n(t,e){this.tileset=t,this.options=e,this.activeRequests=0,this.requestQueue=[]}return n.prototype.reset=function(){for(var t=0,e=this.requestQueue;t<e.length;t++){var r=e[t];this.options.onTileSkip&&this.options.onTileSkip(r.tile)}this.requestQueue.length=0},n.prototype.update=function(t,e,r){for(var o=this,s=r.time,u=this.requestQueue,l=new Set(t),c=0;c<u.length;c++){var f=u[c];if(l.has(f.tile)){l.delete(f.tile);continue}f.status==="WAITING"&&(u.splice(c,1),c--,this.options.onTileSkip&&this.options.onTileSkip(f.tile))}l.size>0&&(l.forEach(function(m){u.push({tile:m,status:"WAITING",time:s,error:null})}),l.clear());for(var d=this.tileset.maxRequests,c=0;c<u.length&&d>0;c++){var f=u[c];if(f.status==="DONE")f.error!==null?this.options.onTileError&&this.options.onTileError(f.tile,f.error):(d--,f.tile.content&&(f.tile.content.loadState="READY"),this.options.onTileLoad&&this.options.onTileLoad(f.tile)),u.splice(c,1),c--;else if(f.status==="PENDING"&&s-f.time<1e3)break}switch(priorityCache.clear(),e){case"SCREEN_SPACE_ERROR":{u.sort(function(m,E){if(m.tile.state.requestedFrameNumber!==E.tile.state.requestedFrameNumber)return E.tile.state.requestedFrameNumber-m.tile.state.requestedFrameNumber;if(m.tile.state.requestedFrameNumber===r.frameNumber){var b=getPriority(m.tile,priorityCache),T=getPriority(E.tile,priorityCache);return b-T}else return m.tile.level!==E.tile.level?m.tile.level-E.tile.level:m.tile.state.distanceToCamera-E.tile.state.distanceToCamera});break}case"SCREEN_VERTICAL":{u.sort(function(m,E){return m.tile.state.requestedFrameNumber!==E.tile.state.requestedFrameNumber?E.tile.state.requestedFrameNumber-m.tile.state.requestedFrameNumber:m.tile.state.requestedFrameNumber===r.frameNumber?m.tile.state.centerScreenY!==E.tile.state.centerScreenY?m.tile.state.centerScreenY-E.tile.state.centerScreenY:m.tile.state.centerZDepth!==E.tile.state.centerZDepth?m.tile.state.centerZDepth-E.tile.state.centerZDepth:m.tile.level!==E.tile.level?m.tile.level-E.tile.level:m.tile.state.distanceToCamera-E.tile.state.distanceToCamera:m.tile.level!==E.tile.level?m.tile.level-E.tile.level:m.tile.state.distanceToCamera-E.tile.state.distanceToCamera});break}case"SCREEN_LEVEL_VERTICAL":{u.sort(function(m,E){return m.tile.state.requestedFrameNumber!==E.tile.state.requestedFrameNumber?E.tile.state.requestedFrameNumber-m.tile.state.requestedFrameNumber:m.tile.state.requestedFrameNumber===r.frameNumber?m.tile.level!==E.tile.level?m.tile.level-E.tile.level:m.tile.state.centerScreenY!==E.tile.state.centerScreenY?m.tile.state.centerScreenY-E.tile.state.centerScreenY:m.tile.state.centerZDepth!==E.tile.state.centerZDepth?m.tile.state.centerZDepth-E.tile.state.centerZDepth:m.tile.state.distanceToCamera-E.tile.state.distanceToCamera:m.tile.level!==E.tile.level?m.tile.level-E.tile.level:m.tile.state.distanceToCamera-E.tile.state.distanceToCamera});break}}if(d=Math.max(this.tileset.maxRequests-this.activeRequests,0),!this.tileset.skipLevelOfDetail)for(var p=0,v=u.length,c=0;c<v;c++){var A=u[c].tile;if(A.hasTilesetContent||A.contentParent===null||A.contentParent.state.selectedFrameNumber===this.tileset.frameNumber){var g=u.splice(c,1);u.splice.apply(u,__spreadArray([p++,0],g,!1))}}for(var h=function(m){var E=u[m];E.status==="WAITING"&&(d--,E.status="PENDING",E.time=s,y.activeRequests++,y.tileset.options.tileLoader(E.tile).catch(function(b){E.error=b}).then(function(){E.status="DONE",E.tile.content&&E.tile.content.loadState==="READY"&&(E.tile.content.loadState="LOADING"),o.activeRequests--}))},y=this,c=0;c<u.length&&d>0;c++)h(c)},n}(),CacheNode=function(){function n(t,e,r){this.item=t,this.previous=e,this.next=r}return n}(),CacheNodeList=function(){function n(){this.head=null,this.tail=null,this._length=0}return Object.defineProperty(n.prototype,"length",{get:function(){return this._length},enumerable:!1,configurable:!0}),n.prototype.add=function(t){var e=new CacheNode(t,this.tail,null);return this.tail?(this.tail.next=e,this.tail=e):(this.head=e,this.tail=e),this._length++,e},n.prototype.remove=function(t){t.previous&&t.next?(t.previous.next=t.next,t.next.previous=t.previous):t.previous?(t.previous.next=null,this.tail=t.previous):t.next?(t.next.previous=null,this.head=t.next):(this.head=null,this.tail=null),t.next=null,t.previous=null,this._length--},n.prototype.splice=function(t,e){t!==e&&(this.remove(e),this.insert(t,e))},n.prototype.insert=function(t,e){var r=t.next;t.next=e,this.tail===t?this.tail=e:r.previous=e,e.next=r,e.previous=t,this._length++},n.prototype.toArray=function(){for(var t=[],e=this.head;e;)t.push(e),e=e.next;return t},n}(),TileCache=function(){function n(t){t===void 0&&(t={}),this.options=t,this.cacheNodeMap=new Map,this.list=new CacheNodeList,this.sentinel=this.list.add("sentinel")}return n.prototype.reset=function(){this.list.tail&&this.list.splice(this.list.tail,this.sentinel)},n.prototype.touchTile=function(t){var e=this.cacheNodeMap.get(t);e&&this.list.splice(this.sentinel,e)},n.prototype.loadTile=function(t){if(!this.cacheNodeMap.has(t)){var e=this.list.add(t);this.cacheNodeMap.set(t,e),this.options.onTileLoad&&this.options.onTileLoad(t)}},n.prototype.unloadTile=function(t){var e=this.cacheNodeMap.get(t);e&&(this.list.remove(e),this.cacheNodeMap.delete(t),this.options.onTileUnload&&this.options.onTileUnload(t))},n.prototype.unloadTiles=function(t){for(var e=this.list.head;e!==this.sentinel&&t();){var r=e.item;e=e.next,this.unloadTile(r)}},n.prototype.toArray=function(){for(var t=[],e=0,r=this.list.toArray();e<r.length;e++){var o=r[e];o.item!=="sentinel"&&t.push(o.item)}return t},n}(),ManagedArray=function(){function n(){this.map=new Map,this.array=[],this._length=0}return Object.defineProperty(n.prototype,"length",{get:function(){return this._length},enumerable:!1,configurable:!0}),n.prototype.get=function(t){return this.array[t]},n.prototype.set=function(t,e){t>=this.length&&(this._length=t+1),this.map.has(this.array[t])&&this.map.delete(this.array[t]),this.array[t]=e,this.map.set(e,t)},n.prototype.delete=function(t){var e=this.map.get(t);e!==void 0&&e>=0&&(this.array.splice(e,1),this.map.delete(t),this._length--)},n.prototype.push=function(t){if(!this.map.has(t)){var e=this._length++;this.array[e]=t,this.map.set(t,e)}},n.prototype.pop=function(){var t=this.array[--this._length];return this.map.delete(t),this.array[this._length]=void 0,t},n.prototype.reset=function(){this.array=[],this.map=new Map,this._length=0},n.prototype.find=function(t){return this.map.has(t)},n.prototype.peek=function(){return this.array[this._length-1]},n}(),TilesetBaseTraverser=function(){function n(t){this.tileset=t,this._canSelectTile=!0,this._loadAllTilesTraversalStack=new ManagedArray,this.root=null}return n.prototype.traverse=function(t,e,r){this.root=t,this.reset()},n.prototype.reset=function(){this._loadAllTilesTraversalStack.reset(),this.tileset.hasMixedContent=!1,this.tileset.needsRefinedTiles.clear(),this.tileset.requestedTiles.length=0,this.tileset.selectedTiles.length=0},n.prototype.updateTile=function(t,e){this.updateTileVisibility(t,e),t.state.shouldSelect=!1,t.state.finalResolution=!0},n.prototype.selectTile=function(t,e){var r=t.contentAvailable&&this._canSelectTile;r&&t.state.selectedFrameNumber<e.frameNumber&&(t.state.selectedFrameNumber=e.frameNumber,this.tileset.selectedTiles.push(t),this.tileset.needsRefinedTiles.add(t))},n.prototype.loadTile=function(t,e){t.state.requestedFrameNumber<e.frameNumber&&(t.state.requestedFrameNumber=e.frameNumber,t.content&&(t.content.loadState==="FAILED"&&e.time-t.content.loadStateUpdateTime>t.content.loadfailRetryDelay&&(t.content.loadState="UNLOADED",t.content.loadStateUpdateTime=e.time),t.content.loadState==="UNLOADED"&&this.tileset.requestedTiles.push(t))),this.tileset.needsRefinedTiles.add(t)},n.prototype.touchTile=function(t,e){this.tileset.cache.touchTile(t),t.state.touchedFrameNumber=e.frameNumber},n.prototype.canTraverse=function(t,e){return!t.state.inRequestVolume||t.levelOfContent>=e.maxLevelOfDetail||t.levelOfContent>=0&&t.geometricError<=e.minGeometricError||t.children.length===0?!1:t.levelOfContent<=e.minLevelOfDetail||t.geometricError>=e.maxGeometricError||t.hasTilesetContent?!0:t.state.screenSpaceError>this.tileset.currentMaxScreenSpaceError},n.prototype.updateTileVisibility=function(t,e){if(t.updateState(e),!(!t.state.visible||!t.state.inRequestVolume)){var r=t.children.length>0;if(t.hasTilesetContent&&r){var o=t.children[0];this.updateTileVisibility(o,e),t.state.visible=o.state.visible;return}if(this.meetsScreenSpaceErrorEarly(t,e)){t.state.visible=!1;return}var s=t.refine==="REPLACE";if(s&&r&&!this.anyChildrenVisible(t,e)){t.state.visible=!1;return}}},n.prototype.anyChildrenVisible=function(t,e){for(var r=!1,o=t.children,s=0,u=o;s<u.length;s++){var l=u[s];l.updateState(e),r=r||l.state.visible}return r},n.prototype.meetsScreenSpaceErrorEarly=function(t,e){var r=t.parent;return!r||r.refine!=="ADD"||r.levelOfContent<e.minLevelOfDetail||r.geometricError>e.maxGeometricError?!1:r.levelOfContent>e.maxLevelOfDetail||r.levelOfContent>=0&&r.geometricError<e.minGeometricError?!0:t.getScreenSpaceError(e,t.state.distanceToCamera,!0)<this.tileset.currentMaxScreenSpaceError},n.prototype.sortTilesByDistanceToCamera=function(t){t.sort(function(e,r){return r.state.distanceToCamera===0&&e.state.distanceToCamera===0?r.state.centerZDepth-e.state.centerZDepth:r.state.distanceToCamera-e.state.distanceToCamera})},n.prototype.loadAllTiles=function(t,e){var r=this._loadAllTilesTraversalStack;for(r.push(t);r.length>0;){var o=r.pop();o.content&&o.content.loadState==="UNLOADED"&&o.state.requestedFrameNumber<e.frameNumber&&this.tileset.requestedTiles.push(o),this.touchTile(o,e);for(var s=0,u=o.children;s<u.length;s++){var l=u[s];r.push(l)}}},n}(),TilesetNormalTraverser=function(n){__extends(t,n);function t(e){var r=n.call(this,e)||this;return r.tileset=e,r._traversalStack=new ManagedArray,r._emptyTraversalStack=new ManagedArray,r}return t.prototype.traverse=function(e,r,o){o===void 0&&(o=[]),n.prototype.traverse.call(this,e,r,o);for(var s=0,u=o;s<u.length;s++){var l=u[s];this._traversalStack.reset(),this._emptyTraversalStack.reset(),l.camera.refine&&(this._canSelectTile=l.camera.visible,this.updateTile(e,l),this.executeTraversal(e,l))}this._traversalStack.reset(),this._emptyTraversalStack.reset(),r.camera.refine&&(this._canSelectTile=r.camera.visible,this.updateTile(e,r),this.executeTraversal(e,r)),this.tileset.loadAll&&this.loadAllTiles(e,r)},t.prototype.reset=function(){n.prototype.reset.call(this),this._traversalStack.reset(),this._emptyTraversalStack.reset()},t.prototype.executeTraversal=function(e,r){var o=this._traversalStack;for(e.state.visible&&e.state.inRequestVolume&&o.push(e);o.length>0;){var s=o.pop(),u=s.parent,l=!u||u.state.shouldRefine,c=!1;this.canTraverse(s,r)&&(c=this.updateAndPushChildren(s,r,o)&&l);var f=!c&&l;s.hasRenderContent?s.refine==="ADD"?(this.loadTile(s,r),this.selectDesiredTile(s,r)):s.refine==="REPLACE"&&(this.loadTile(s,r),f&&this.selectDesiredTile(s,r)):(this.loadTile(s,r),f&&this.selectDesiredTile(s,r)),this.touchTile(s,r),s.state.shouldRefine=c}},t.prototype.updateAndPushChildren=function(e,r,o){for(var s=e.children,u=0,l=s;u<l.length;u++){var c=l[u];this.updateTile(c,r)}this.sortTilesByDistanceToCamera(s);for(var f=e.refine==="REPLACE"&&e.hasRenderContent,d=!1,p=!0,v=0,A=s;v<A.length;v++){var c=A[v];if(c.levelOfContent<=r.minLevelOfDetail||c.geometricError>=r.maxGeometricError||c.state.visible&&c.state.inRequestVolume?(o.find(c)&&o.delete(c),o.push(c),d===!1&&(d=!0)):(f||this.tileset.loadSiblings)&&(this.loadTile(c,r),this.touchTile(c,r)),f){var g=void 0;c.state.inRequestVolume?c.hasRenderContent?g=c.contentAvailable:g=this.executeEmptyTraversal(c,r):g=!1,p=p&&g}}return d||(p=!1),p},t.prototype.selectDesiredTile=function(e,r){e.contentAvailable&&n.prototype.selectTile.call(this,e,r)},t.prototype.executeEmptyTraversal=function(e,r){var o=!0,s=this._emptyTraversalStack;for(s.push(e);s.length>0&&o;){var u=s.pop(),l=!u.hasRenderContent&&this.canTraverse(u,r);if(!l&&!u.contentAvailable&&(o=!1),this.updateTile(u,r),u.state.visible||(this.loadTile(u,r),this.touchTile(u,r)),l)for(var c=u.children,f=0,d=c;f<d.length;f++){var p=d[f];s.find(p)&&s.delete(p),s.push(p)}}return o},t}(TilesetBaseTraverser),TilesetSkipTraverser=function(n){__extends(t,n);function t(e){var r=n.call(this,e)||this;return r.tileset=e,r.baseScreenSpaceError=1024,r.skipScreenSpaceErrorFactor=16,r.skipLevels=1,r._traversalStack=new ManagedArray,r._descendantTraversalStack=new ManagedArray,r._selectionTraversalStack=new ManagedArray,r._selectionTraversalancestorStack=new ManagedArray,r}return t.prototype.traverse=function(e,r,o){o===void 0&&(o=[]),n.prototype.traverse.call(this,e,r,o);for(var s=0,u=o;s<u.length;s++){var l=u[s];this._traversalStack.reset(),l.camera.refine&&(this._canSelectTile=l.camera.visible,this.updateTile(e,l),this.executeTraversal(e,l),this.traverseAndSelect(e,l))}this.tileset.hasMixedContent=!1,this._traversalStack.reset(),this._descendantTraversalStack.reset(),this._selectionTraversalStack.reset(),this._selectionTraversalancestorStack.reset(),r.camera.refine&&(this._canSelectTile=r.camera.visible,this.updateTile(e,r),this.executeTraversal(e,r),this.traverseAndSelect(e,r)),this.tileset.loadAll&&this.loadAllTiles(e,r)},t.prototype.reset=function(){n.prototype.reset.call(this),this._traversalStack.reset(),this._descendantTraversalStack.reset(),this._selectionTraversalStack.reset(),this._selectionTraversalancestorStack.reset()},t.prototype.executeTraversal=function(e,r){var o=this._traversalStack;for(e.state.visible&&e.state.inRequestVolume&&o.push(e);o.length>0;){var s=o.pop();this.updateTileAncestorContentLinks(s,r);var u=s.parent,l=!u||u.state.shouldRefine,c=!1;this.canTraverse(s,r)&&(c=this.updateAndPushChildren(s,r,o)&&l);var f=!c&&l;s.hasRenderContent?s.refine==="ADD"?(this.loadTile(s,r),this.selectDesiredTile(s,r)):s.refine==="REPLACE"&&(this.inBaseTraversal(s,this.baseScreenSpaceError)?(this.loadTile(s,r),f&&this.selectDesiredTile(s,r)):f?(this.loadTile(s,r),this.selectDesiredTile(s,r)):this.reachedSkippingThreshold(s)&&this.loadTile(s,r)):(this.loadTile(s,r),f&&this.selectDesiredTile(s,r)),this.touchTile(s,r),s.state.shouldRefine=c}},t.prototype.updateAndPushChildren=function(e,r,o){for(var s=e.children,u=0,l=s;u<l.length;u++){var c=l[u];this.updateTile(c,r)}this.sortTilesByDistanceToCamera(s);for(var f=!1,d=0,p=s;d<p.length;d++){var c=p[d];c.levelOfContent<=r.minLevelOfDetail||c.geometricError>=r.maxGeometricError||c.state.visible&&c.state.inRequestVolume?(o.push(c),f===!1&&(f=!0)):this.tileset.loadSiblings&&(this.loadTile(c,r),this.touchTile(c,r))}return f},t.prototype.selectDesiredTile=function(e,r){var o=e.contentAvailable?e:e.state.ancestorWithContentAvailable;o&&(o.state.shouldSelect=!0),e.contentAvailable||this.selectDescendants(e,r)},t.prototype.selectDescendants=function(e,r){var o=this._descendantTraversalStack;for(o.push(e);o.length>0;)for(var s=o.pop(),u=s.children,l=0,c=u;l<c.length;l++){var f=c[l];f.state.visible&&(f.contentAvailable?(this.updateTile(f,r),this.touchTile(f,r),this.selectTile(f,r)):o.push(f))}},t.prototype.reachedSkippingThreshold=function(e){var r=e.state.ancestorWithContent,o=r!==null&&e.state.screenSpaceError<r.state.screenSpaceError/this.skipScreenSpaceErrorFactor&&e.levelOfContent>r.levelOfContent+this.skipLevels;return o},t.prototype.updateTileAncestorContentLinks=function(e,r){e.state.ancestorWithContent=null,e.state.ancestorWithContentAvailable=null;var o=e.parent;if(o){var s=!(o.hasRenderContent&&o.hasUnloadedContent)||o.state.requestedFrameNumber===r.frameNumber;e.state.ancestorWithContent=s?o:o.state.ancestorWithContent,e.state.ancestorWithContentAvailable=o.contentAvailable?o:o.state.ancestorWithContentAvailable}},t.prototype.inBaseTraversal=function(e,r){return e.state.ancestorWithContent?e.parent&&e.state.screenSpaceError===0?e.parent.state.screenSpaceError>r:e.state.screenSpaceError>r:!0},t.prototype.traverseAndSelect=function(e,r){var o=this._selectionTraversalStack,s=this._selectionTraversalancestorStack,u;for(o.push(e);o.length>0||s.length>0;){if(s.length>0){var l=s.peek();if(l.state.stackLength===o.length){s.pop(),l!==u&&(l.state.finalResolution=!1),this.selectTile(l,r);continue}}var c=o.pop();if(c){var f=this.canTraverse(c,r);if(c.state.shouldSelect)if(c.refine==="ADD")this.selectTile(c,r);else{if(c.state.selectionDepth=s.length,c.state.selectionDepth>0&&(c.tileset.hasMixedContent=!0),u=c,!f){this.selectTile(c,r);continue}s.push(c),c.state.stackLength=o.length}if(f)for(var d=0,p=c.children;d<p.length;d++){var v=p[d];v.state.visible&&o.push(v)}}}},t}(TilesetBaseTraverser),TilesetMostDetailTraverser=function(n){__extends(t,n);function t(e){var r=n.call(this,e)||this;return r.tileset=e,r._traversalStack=new ManagedArray,r}return t.prototype.canTraverse=function(e,r){return!(!e.state.inRequestVolume||e.levelOfContent>=r.maxLevelOfDetail||e.levelOfContent>=0&&e.geometricError<=r.minGeometricError||e.children.length===0)},t.prototype.traverse=function(e,r,o){n.prototype.traverse.call(this,e,r,[]),this._traversalStack.reset(),e.updateState(r);for(var s=0,u=o;s<u.length;s++){var l=u[s];this._traversalStack.reset(),l.camera.refine&&(this._canSelectTile=l.camera.visible,e.updateState(l),this.executeTraversal(e,l))}this._traversalStack.reset(),r.camera.refine&&(this._canSelectTile=r.camera.visible,e.updateState(r),this.executeTraversal(e,r)),this.tileset.loadAll&&this.loadAllTiles(e,r)},t.prototype.reset=function(){n.prototype.reset.call(this),this._traversalStack.reset()},t.prototype.executeTraversal=function(e,r){var o=this._traversalStack;for(o.push(e);o.length>0;){var s=o.pop(),u=s.refine==="ADD",l=s.refine==="REPLACE",c=this.canTraverse(s,r);c&&this.updateAndPushChildren(s,r,o),(u||l&&!c)&&(this.loadTile(s,r),this.touchTile(s,r),this.selectDesiredTile(s,r))}},t.prototype.updateAndPushChildren=function(e,r,o){for(var s=e.children,u=0;u<s.length;++u){var l=s[u];l.updateState(r),l.state.visible&&o.push(l)}},t.prototype.selectDesiredTile=function(e,r){e.contentAvailable&&n.prototype.selectTile.call(this,e,r)},t}(TilesetBaseTraverser),Trajectory=function(){function n(t,e,r){this.index=t,this.name=e.name,this.visible=!1,this.tileset=r,this.transform=new THREE__namespace.Matrix4,e.transform&&this.transform.fromArray(e.transform),this.transform.premultiply(this.tileset.root.transform),this.content={uri:e.file,byteLength:0,memoryUsage:0,loadState:"UNLOADED",loadStateUpdateTime:now(),loadfailRetryDelay:0,data:void 0}}return n}(),identityMatrix4=new THREE__namespace.Matrix4,Tileset=function(){function n(t,e,r){var o=this,s,u,l,c,f,d,p,v,A;if(this.id=t,this.transform=new THREE__namespace.Matrix4,this.transformIsIdentity=!0,this.hasMixedContent=!1,this.url=(s=r.url)!==null&&s!==void 0?s:"",this.referer=(u=r.referer)!==null&&u!==void 0?u:"",this.asset={version:e.asset.version,tilesetVersion:e.asset.tilesetVersion||"",gltfUpAxis:(l=e.asset.gltfUpAxis)!==null&&l!==void 0?l:"Y",overview:e.asset.overview,trajectories:(f=(c=e.asset.trajectories)===null||c===void 0?void 0:c.list)!==null&&f!==void 0?f:[],extras:e.asset.extras},this.rootMeta=(d=e.rootMeta)!==null&&d!==void 0?d:{},this.pointLength=(p=this.rootMeta.numTotalPoints)!==null&&p!==void 0?p:1/0,this.floorLength=(v=this.rootMeta.numFloors)!==null&&v!==void 0?v:1,this.properties=(A=e.properties)!==null&&A!==void 0?A:{},this.options=r,this.memoryOverflow=n.DEFAULT_MEMORY_OVERFLOW,this.maxMemoryUsage=n.DEFAULT_MAX_MEMORY_USAGE,this.memoryAdjustedScreenSpaceError=n.DEFAULT_MEMORY_ADJUSTED_SCREEN_SPACE_ERROR,this.maxScreenSpaceError=n.DEFAULT_MAX_SCREEN_SPACE_ERROR,this.skipLevelOfDetail=n.DEFAULT_SKIP_LEVEL_OF_DETAIL,this.mostDetail=n.DEFAULT_MOST_DETAIL,this.loadSiblings=n.DEFAULT_LOAD_SIBLINGS,this.loadAll=n.DEFAULT_LOAD_ALL,this.maxRequests=n.DEFAULT_MAX_REQUESTS,this.tileRequestOrder=n.DEFAULT_REQUEST_ORDER,this.requestedTiles=[],this.selectedTiles=[],this.unloadTiles=[],this.needsRefinedTiles=new Set,this.selectedTrajectories=[],this.normalTraverser=new TilesetNormalTraverser(this),this.skipTraverser=new TilesetSkipTraverser(this),this.mostDetailTraverser=new TilesetMostDetailTraverser(this),this.cache=new TileCache({onTileLoad:function(y){o.cacheMemoryUsageInBytes+=y.contentMemoryUsage},onTileUnload:function(y){o.cacheMemoryUsageInBytes-=y.contentMemoryUsage,o.unloadTiles.push(y)}}),this.requestScheduler=new TileRequestScheduler(this,{onTileSkip:function(y){},onTileLoad:function(y){var m;!((m=y.content)===null||m===void 0)&&m.data&&(o.loadedTiles.add(y),o.cache.loadTile(y)),o.options.onTileLoad(y)},onTileError:function(y,m){o.options.onTileError(y,m)}}),this.frameNumber=0,this.maxLevelOfDetail=0,this.minLevelOfDetail=0,this.minGeometricError=0,this.maxGeometricError=0,this.loadedTiles=new Set,this.cacheMemoryUsageInBytes=0,this.currentMaxScreenSpaceError=this.maxScreenSpaceError,this.root=new Tile("".concat(this.id,".0"),e.root,this),this.geometricError=e.geometricError,this.trajectories=[],this.asset.trajectories)for(var g=0;g<this.asset.trajectories.length;g++){var h=new Trajectory(g,this.asset.trajectories[g],this);this.trajectories.push(h)}}return n.prototype.adjustScreenSpaceError=function(){if(this.memoryAdjustedScreenSpaceError){var t=0;this.needsRefinedTiles.forEach(function(o){o.content&&(t+=o.content.memoryUsage)});var e=(this.maxMemoryUsage-this.memoryOverflow)*1024*1024,r=this.maxMemoryUsage*1024*1024;t<e?this.currentMaxScreenSpaceError=Math.max(this.currentMaxScreenSpaceError/1.02,this.maxScreenSpaceError):t>r&&this.selectedTiles.length>0&&(this.currentMaxScreenSpaceError*=1.02)}else this.currentMaxScreenSpaceError=this.maxScreenSpaceError},Object.defineProperty(n.prototype,"traverser",{get:function(){return this.mostDetail?this.mostDetailTraverser:this.skipLevelOfDetail?this.skipTraverser:this.normalTraverser},enumerable:!1,configurable:!0}),n.prototype.reset=function(){for(var t=this,e=[this.root],r;r=e.pop();){for(var o=0,s=r.children.length;o<s;o++)e.push(r.children[o]);this.cache.unloadTile(r)}for(var u=function(){var d=l.unloadTiles.pop();d&&(l.loadedTiles.delete(d),l.cacheMemoryUsageInBytes-=d.contentMemoryUsage,l.options.tileUnloader(d).catch(function(){}).then(function(){t.options.onTileUnload&&t.options.onTileUnload(d)}))},l=this;this.unloadTiles.length;)u();this.cache.reset(),this.traverser.reset(),this.requestScheduler.reset(),this.loadedTiles.clear();for(var c=function(){var d=f.trajectories.pop();d&&f.options.trajectoryUnloader(d).catch(function(){}).then(function(){t.options.onTrajectoryUnload&&t.options.onTrajectoryUnload(d)})},f=this;this.trajectories.length;)c()},n.prototype.update=function(t,e){var r=this,o;e===void 0&&(e=[]),this.frameNumber=t.frameNumber,this.minLevelOfDetail=t.minLevelOfDetail,this.maxLevelOfDetail=t.maxLevelOfDetail,this.minGeometricError=t.minGeometricError,this.maxGeometricError=t.maxGeometricError,this.adjustScreenSpaceError(),this.transformIsIdentity=this.transform.equals(identityMatrix4),this.traverser.traverse(this.root,t,e),this.cache.unloadTiles(function(){var v=r.cacheMemoryUsageInBytes>r.maxMemoryUsage*1024*1024;return v}),this.requestScheduler.update(this.requestedTiles,this.tileRequestOrder,t);for(var s=function(){var v=u.unloadTiles.pop();v&&(u.loadedTiles.delete(v),u.options.tileUnloader(v).catch(function(){}).then(function(){r.options.onTileUnload&&r.options.onTileUnload(v)}))},u=this;this.unloadTiles.length;)s();this.selectedTrajectories.length=0;for(var l=function(v){v.visible===!0&&v.content.loadState==="READY"&&(!((o=v.content.data)===null||o===void 0)&&o.object)?c.selectedTrajectories.push(v):v.visible===!0&&(v.content.loadState==="FAILED"&&t.time-v.content.loadStateUpdateTime>v.content.loadfailRetryDelay&&(v.content.loadState="UNLOADED",v.content.loadStateUpdateTime=t.time),v.content.loadState==="UNLOADED"&&c.options.trajectoryLoader(v).then(function(){r.options.onTrajectoryLoad(v)}).catch(function(A){r.options.onTrajectoryError(v,A)}))},c=this,f=0,d=this.trajectories;f<d.length;f++){var p=d[f];l(p)}},n.DEFAULT_MAX_MEMORY_USAGE=16,n.DEFAULT_MEMORY_OVERFLOW=4,n.DEFAULT_MEMORY_ADJUSTED_SCREEN_SPACE_ERROR=!1,n.DEFAULT_MAX_SCREEN_SPACE_ERROR=4,n.DEFAULT_SKIP_LEVEL_OF_DETAIL=!1,n.DEFAULT_MOST_DETAIL=!1,n.DEFAULT_LOAD_SIBLINGS=!1,n.DEFAULT_LOAD_ALL=!1,n.DEFAULT_MAX_REQUESTS=6,n.DEFAULT_REQUEST_ORDER="SCREEN_SPACE_ERROR",n}(),BVHObject=function(){function n(t,e){this.position=t,this.indices=e}return n.prototype.getPositionCount=function(){var t,e,r=this.indices,o=this.position;return r?r.array.length/((t=r.stride)!==null&&t!==void 0?t:1):o.array.length/((e=o.stride)!==null&&e!==void 0?e:3)},n.prototype.getPositionByIndex=function(t,e){var r,o,s,u,l=this.indices,c=this.position,f=t;if(l){var d=l.array,p=(r=l.stride)!==null&&r!==void 0?r:1,v=(o=l.offset)!==null&&o!==void 0?o:0;f=d[t*p+v]}var A=c.array,g=(s=c.stride)!==null&&s!==void 0?s:3,h=(u=c.offset)!==null&&u!==void 0?u:0;return f=f*g+h,e.x=A[f],e.y=A[f+1],e.z=A[f+2],e},n.prototype.createTree=function(t,e,r){throw new Error("not implemented")},n.prototype.trianglesInSphere=function(t,e){throw new Error("not implemented")},n.prototype.intersectRay=function(t,e,r,o){throw new Error("not implemented")},n}(),BVHNode=function(){function n(t,e,r,o,s){this.id=t,this.extents=e,this.startIndex=r,this.endIndex=o,this.deepth=s}return n}(),BYTES_PER_NODE=6*4+4+4+2+2;function packBVHNode(n,t){for(var e=new ArrayBuffer(t*BYTES_PER_NODE),r=new Float32Array(e),o=new Uint32Array(e),s=new Uint16Array(e),u=[n],l,c;l=u.pop();)c=l.id*BYTES_PER_NODE/4,r[c]=l.extents[0],r[c+1]=l.extents[1],r[c+2]=l.extents[2],r[c+3]=l.extents[3],r[c+4]=l.extents[4],r[c+5]=l.extents[5],o[c+6]=l.startIndex,o[c+7]=l.endIndex,c=l.id*BYTES_PER_NODE/2,l.node0&&(s[c+16]=l.node0.id,u.push(l.node0)),l.node1&&(s[c+17]=l.node1.id,u.push(l.node1));return e}function intersectNodeBox(n,t,e,r,o,s,u,l,c){c===void 0&&(c=0),e=e-c,r=r-c,o=o-c,s=s+c,u=u+c,l=l+c;var f=0,d=0,p=0,v=0,A=0,g=0;return t.x>=0?(f=(e-n.x)*t.x,d=(s-n.x)*t.x):(f=(s-n.x)*t.x,d=(e-n.x)*t.x),t.y>=0?(p=(r-n.y)*t.y,v=(u-n.y)*t.y):(p=(u-n.y)*t.y,v=(r-n.y)*t.y),!(f>v||p>d||(p>f&&(f=p),v<d&&(d=v),t.z>=0?(A=(o-n.z)*t.z,g=(l-n.z)*t.z):(A=(l-n.z)*t.z,g=(o-n.z)*t.z),f>g||A>d)||(A>f&&(f=A),g<d&&(d=g),d<0))}var BVHVector3=function(){function n(t,e,r){this.x=t,this.y=e,this.z=r}return n.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},n.prototype.set=function(t,e,r){return this.x=t,this.y=e,this.z=r,this},n.prototype.fromArray=function(t,e){return e===void 0&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this},n.prototype.toArray=function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t},n.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this},n.prototype.multiplyScalar=function(t){return this.x*=t,this.y*=t,this.z*=t,this},n.prototype.subVectors=function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},n.prototype.addScaledVector=function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this},n.prototype.dot=function(t){return this.x*t.x+this.y*t.y+this.z*t.z},n.prototype.cross=function(t){var e=this.x,r=this.y,o=this.z;return this.x=r*t.z-o*t.y,this.y=o*t.x-e*t.z,this.z=e*t.y-r*t.x,this},n.prototype.crossVectors=function(t,e){var r=t.x,o=t.y,s=t.z,u=e.x,l=e.y,c=e.z;return this.x=o*c-s*l,this.y=s*u-r*c,this.z=r*l-o*u,this},n.prototype.distanceTo=function(t){return Math.sqrt(this.distanceToSquared(t))},n.prototype.distanceToSquared=function(t){var e=this.x-t.x,r=this.y-t.y,o=this.z-t.z;return e*e+r*r+o*o},n.prototype.clone=function(){return new n(this.x,this.y,this.z)},n}(),BVHIntersect=function(){function n(t,e,r){this.triangle=t,this.intersectionPoint=e,this.index=r}return n}(),EPSILON$1=1e-6,scratchVector3$3=new BVHVector3(0,0,0),scratchVector3A=new BVHVector3(0,0,0),scratchVector3B=new BVHVector3(0,0,0),scratchVector3C=new BVHVector3(0,0,0),BVHMesh=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.createTree=function(e,r,o){r=Math.min(r,16);var s=this.getPositionCount()/3,u=s>65535?new Uint32Array(s):new Uint16Array(s),l=new Float32Array(s*6),c=[],f=0,d=-1;if(o)for(var p=0,v=0,A=0,g=void 0,h=void 0,y=void 0,m=void 0,E=void 0,b=void 0,T=void 0;p<s;p+=1,v+=3,A+=6)u[p]=p,this.getPositionByIndex(v,scratchVector3A),this.getPositionByIndex(v+1,scratchVector3B),this.getPositionByIndex(v+2,scratchVector3C),g=m=scratchVector3A.x,T=scratchVector3B.x,T<g&&(g=T),T>m&&(m=T),T=scratchVector3C.x,T<g&&(g=T),T>m&&(m=T),h=E=scratchVector3A.y,T=scratchVector3B.y,T<h&&(h=T),T>E&&(E=T),T=scratchVector3C.y,T<h&&(h=T),T>E&&(E=T),y=b=scratchVector3A.z,T=scratchVector3B.z,T<y&&(y=T),T>b&&(b=T),T=scratchVector3C.z,T<y&&(y=T),T>b&&(b=T),l[A]=g,l[A+1]=h,l[A+2]=y,l[A+3]=m,l[A+4]=E,l[A+5]=b;else{for(var _=1/0,R=1/0,S=1/0,C=-1/0,B=-1/0,L=-1/0,p=0,v=0,A=0,g=void 0,h=void 0,y=void 0,m=void 0,E=void 0,b=void 0,T=void 0;p<s;p+=1,v+=3,A+=6)u[p]=p,this.getPositionByIndex(v,scratchVector3A),this.getPositionByIndex(v+1,scratchVector3B),this.getPositionByIndex(v+2,scratchVector3C),g=m=scratchVector3A.x,T=scratchVector3B.x,T<g&&(g=T),T>m&&(m=T),T=scratchVector3C.x,T<g&&(g=T),T>m&&(m=T),h=E=scratchVector3A.y,T=scratchVector3B.y,T<h&&(h=T),T>E&&(E=T),T=scratchVector3C.y,T<h&&(h=T),T>E&&(E=T),y=b=scratchVector3A.z,T=scratchVector3B.z,T<y&&(y=T),T>b&&(b=T),T=scratchVector3C.z,T<y&&(y=T),T>b&&(b=T),l[A]=g,l[A+1]=h,l[A+2]=y,l[A+3]=m,l[A+4]=E,l[A+5]=b,g<_&&(_=g),m>C&&(C=m),h<R&&(R=h),E>B&&(B=E),y<S&&(S=y),b>L&&(L=b);o=[_,R,S,C,B,L]}var M=new BVHNode(++d,o,0,s,0);c[f++]=M;var w=[],H=[0,1,2],O=function(N,k){return w[k]-w[N]};function I(N){var k=N.startIndex,U=N.endIndex,D=N.extents;w[0]=D[3]-D[0],w[1]=D[4]-D[1],w[2]=D[5]-D[2],H.sort(O);for(var q=0;q<3;q++){for(var z=H[q],Q=D[z]+D[z+3],G=k,X=U-1,$=-1,W=void 0;G<=X;)$===-1?(W=u[G],l[W*6+z]+l[W*6+z+3]<Q?G++:$=W):(W=u[X],l[W*6+z]+l[W*6+z+3]>=Q||(u[G]=W,u[X]=$,$=-1,G++),X--);if(G>k&&G<U){var oe=new BVHNode(++d,calcExtents(u,l,k,G,EPSILON$1),k,G,N.deepth+1);oe.deepth<r&&oe.endIndex-oe.startIndex>e&&(c[f++]=oe);var ae=new BVHNode(++d,calcExtents(u,l,G,U,EPSILON$1),G,U,N.deepth+1);ae.deepth<r&&ae.endIndex-ae.startIndex>e&&(c[f++]=ae),N.node0=oe,N.node1=ae,N.startIndex=0,N.endIndex=0;break}}}for(;f;)I(c[--f]);return this.offsetArray=u,this.rootNodePacked=packBVHNode(M,d+1),c.length=0,this},t.prototype.trianglesInSphere=function(e,r){for(var o=this.offsetArray,s=this.rootNodePacked,u=new Float32Array(s),l=new Uint32Array(s),c=new Uint16Array(s),f=[0],d=[],p,v,A,g;(p=f.pop())!==void 0;){g=p*BYTES_PER_NODE/4;var h=clamp(e.x,u[g],u[g+3])-e.x,y=clamp(e.y,u[g+1],u[g+4])-e.y,m=clamp(e.z,u[g+2],u[g+5])-e.z;if(h*h+y*y+m*m<=r*r){for(var E=l[g+6];E<l[g+7];E++)d.push(o[E]);g=p*BYTES_PER_NODE/2,v=c[g+16],A=c[g+17],v&&f.push(v),A&&f.push(A)}}for(var b=d.length,T=new Float32Array(b*9),E=0;E<b;E++){var _=d[E];this.getPositionByIndex(_,scratchVector3$3),T[E*9]=scratchVector3$3.x,T[E*9+1]=scratchVector3$3.y,T[E*9+2]=scratchVector3$3.z,this.getPositionByIndex(_+1,scratchVector3$3),T[E*9+3]=scratchVector3$3.x,T[E*9+4]=scratchVector3$3.y,T[E*9+5]=scratchVector3$3.z,this.getPositionByIndex(_+2,scratchVector3$3),T[E*9+6]=scratchVector3$3.x,T[E*9+7]=scratchVector3$3.y,T[E*9+8]=scratchVector3$3.z}return T},t.prototype.intersectRay=function(e,r,o,s){for(var u=this.offsetArray,l=this.rootNodePacked,c=new Float32Array(l),f=new Uint32Array(l),d=new Uint16Array(l),p=new BVHVector3(1/r.x,1/r.y,1/r.z),v=[0],A,g,h,y;(A=v.pop())!==void 0;)if(y=A*BYTES_PER_NODE/4,intersectNodeBox(e,p,c[y],c[y+1],c[y+2],c[y+3],c[y+4],c[y+5])){for(var m=f[y+6],E=f[y+7],b=void 0,T=void 0,_=void 0,R=e.x,S=e.y,C=e.z,B=r.x,L=r.y,M=r.z,w=void 0,H=void 0,O=void 0,I=void 0,N=void 0,k=void 0,U=void 0,D=void 0,q=void 0,z=void 0,Q=void 0,G=void 0,X=void 0,$=void 0,W=void 0,oe=void 0,ae=void 0,re=void 0,j=void 0,se=void 0,ie=void 0,ue=void 0,fe=void 0,ne=void 0,Te=void 0,_e=void 0,ve=void 0;m<E;m++){if(b=u[m],T=b*3,this.getPositionByIndex(T,scratchVector3$3),w=scratchVector3$3.x,H=scratchVector3$3.y,O=scratchVector3$3.z,this.getPositionByIndex(T+1,scratchVector3$3),I=scratchVector3$3.x,N=scratchVector3$3.y,k=scratchVector3$3.z,this.getPositionByIndex(T+2,scratchVector3$3),U=scratchVector3$3.x,D=scratchVector3$3.y,q=scratchVector3$3.z,z=I-w,Q=N-H,G=k-O,X=U-w,$=D-H,W=q-O,oe=Q*W-G*$,ae=G*X-z*W,re=z*$-Q*X,fe=B*oe+L*ae+M*re,fe>0)ue=1;else if(fe<0)ue=-1,fe=-fe;else continue;j=R-w,se=S-H,ie=C-O,ne=ue*(B*(se*W-ie*$)+L*(ie*X-j*W)+M*(j*$-se*X)),!(ne<0)&&(Te=ue*(B*(Q*ie-G*se)+L*(G*j-z*ie)+M*(z*se-Q*j)),!(Te<0)&&(ne+Te>fe||(_e=-ue*(j*oe+se*ae+ie*re),!(_e<0)&&(ve=_e/fe,s.push(new BVHIntersect([w,H,O,I,N,k,U,D,q],[R+B*ve,S+L*ve,C+M*ve],b))))))}y=A*BYTES_PER_NODE/2,g=d[y+16],h=d[y+17],g&&v.push(g),h&&v.push(h)}return s},t}(BVHObject);function clamp(n,t,e){return n<t?t:n>e?e:n}function calcExtents(n,t,e,r,o){if(e>=r)return[0,0,0,0,0,0];for(var s=1/0,u=1/0,l=1/0,c=-1/0,f=-1/0,d=-1/0,p=e,v=void 0,A=void 0;p<r;p++)v=n[p]*6,A=t[v],A<s&&(s=A),A=t[v+1],A<u&&(u=A),A=t[v+2],A<l&&(l=A),A=t[v+3],A>c&&(c=A),A=t[v+4],A>f&&(f=A),A=t[v+5],A>d&&(d=A);return[s-o,u-o,l-o,c+o,f+o,d+o]}var EPSILON=1e-6,ORDER_AXISES=["x","y","z"],scratchVector3$2=new BVHVector3(0,0,0),BVHPoints=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.createTree=function(e,r,o){r=Math.min(r,16);var s=this.getPositionByIndex.bind(this),u=this.getPositionCount(),l=u>65535?new Uint32Array(u):new Uint16Array(u),c=[],f=0,d=-1;if(o)for(var p=0;p<u;p+=1)l[p]=p;else{s(0,scratchVector3$2);for(var v=scratchVector3$2.x,A=scratchVector3$2.y,g=scratchVector3$2.z,h=v,y=A,m=g,p=0,E=void 0,b=void 0,T=void 0;p<u;p+=1)l[p]=p,s(p,scratchVector3$2),E=scratchVector3$2.x,b=scratchVector3$2.y,T=scratchVector3$2.z,E<v?v=E:E>h&&(h=E),b<A?A=b:b>y&&(y=b),T<g?g=T:T>m&&(m=T);o=[v,A,g,h,y,m]}var _=new BVHNode(++d,o,0,u,0);c[f++]=_;var R=[],S=[0,1,2],C=function(L,M){return R[M]-R[L]};function B(L){var M=L.startIndex,w=L.endIndex,H=L.extents;R[0]=H[3]-H[0],R[1]=H[4]-H[1],R[2]=H[5]-H[2];for(var O=S.sort(C)[0],I=ORDER_AXISES[O],N=(H[O]+H[O+3])/2,k=M,U=w-1,D=-1,q;k<=U;)D===-1?(q=l[k],s(q,scratchVector3$2),scratchVector3$2[I]<N?k++:D=q):(q=l[U],s(q,scratchVector3$2),scratchVector3$2[I]>=N||(l[k]=q,l[U]=D,D=-1,k++),U--);if(k>M){var z=H.slice();z[O+3]=N+EPSILON;var Q=new BVHNode(++d,z,M,k,L.deepth+1);Q.deepth<r&&Q.endIndex-Q.startIndex>e&&(c[f++]=Q),L.node0=Q}if(w>k){var G=H.slice();G[O]=N-EPSILON;var X=new BVHNode(++d,G,k,w,L.deepth+1);X.deepth<r&&X.endIndex-X.startIndex>e&&(c[f++]=X),L.node1=X}L.startIndex=0,L.endIndex=0}for(;f;)B(c[--f]);return this.offsetArray=l,this.rootNodePacked=packBVHNode(_,d+1),c.length=0,this},t.prototype.intersectRay=function(e,r,o,s){for(var u=this.offsetArray,l=this.rootNodePacked,c=new Float32Array(l),f=new Uint32Array(l),d=new Uint16Array(l),p=o*o,v=new BVHVector3(1/r.x,1/r.y,1/r.z),A=[0],g,h,y,m;(g=A.pop())!==void 0;)if(m=g*BYTES_PER_NODE/4,intersectNodeBox(e,v,c[m],c[m+1],c[m+2],c[m+3],c[m+4],c[m+5],o)){for(var E=f[m+6],b=f[m+7],T=void 0,_=void 0,R=void 0,S=void 0,C=void 0,B=void 0,L=void 0,M=void 0,w=void 0,H=void 0,O=void 0,I=void 0;E<b;E++)T=u[E],this.getPositionByIndex(T,scratchVector3$2),_=scratchVector3$2.x,R=scratchVector3$2.y,S=scratchVector3$2.z,C=e.x,B=e.y,L=e.z,M=r.x,w=r.y,H=r.z,O=M*(_-C)+w*(R-B)+H*(S-L),O>0&&(C+=M*O,B+=w*O,L+=H*O),M=_-C,w=R-B,H=S-L,O=M*M+w*w+H*H,O<=p&&s.push(new BVHIntersect([_,R,S,_,R,S,_,R,S],[C,B,L],T));m=g*BYTES_PER_NODE/2,h=d[m+16],y=d[m+17],h&&A.push(h),y&&A.push(y)}return s},t}(BVHObject);const encodedJs$1="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlcj1mdW5jdGlvbihlLHIpe3JldHVybiBlcj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxvKXt0Ll9fcHJvdG9fXz1vfXx8ZnVuY3Rpb24odCxvKXtmb3IodmFyIGYgaW4gbylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobyxmKSYmKHRbZl09b1tmXSl9LGVyKGUscil9O2Z1bmN0aW9uIGhyKGUscil7aWYodHlwZW9mIHIhPSJmdW5jdGlvbiImJnIhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcocikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZXIoZSxyKTtmdW5jdGlvbiB0KCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPXI9PT1udWxsP09iamVjdC5jcmVhdGUocik6KHQucHJvdG90eXBlPXIucHJvdG90eXBlLG5ldyB0KX10eXBlb2YgU3VwcHJlc3NlZEVycm9yPT0iZnVuY3Rpb24iJiZTdXBwcmVzc2VkRXJyb3I7dmFyIGRyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShyLHQpe3RoaXMucG9zaXRpb249cix0aGlzLmluZGljZXM9dH1yZXR1cm4gZS5wcm90b3R5cGUuZ2V0UG9zaXRpb25Db3VudD1mdW5jdGlvbigpe3ZhciByLHQsbz10aGlzLmluZGljZXMsZj10aGlzLnBvc2l0aW9uO3JldHVybiBvP28uYXJyYXkubGVuZ3RoLygocj1vLnN0cmlkZSkhPT1udWxsJiZyIT09dm9pZCAwP3I6MSk6Zi5hcnJheS5sZW5ndGgvKCh0PWYuc3RyaWRlKSE9PW51bGwmJnQhPT12b2lkIDA/dDozKX0sZS5wcm90b3R5cGUuZ2V0UG9zaXRpb25CeUluZGV4PWZ1bmN0aW9uKHIsdCl7dmFyIG8sZixkLHYsbj10aGlzLmluZGljZXMscz10aGlzLnBvc2l0aW9uLHU9cjtpZihuKXt2YXIgdz1uLmFycmF5LHk9KG89bi5zdHJpZGUpIT09bnVsbCYmbyE9PXZvaWQgMD9vOjEscD0oZj1uLm9mZnNldCkhPT1udWxsJiZmIT09dm9pZCAwP2Y6MDt1PXdbcip5K3BdfXZhciBhPXMuYXJyYXksaD0oZD1zLnN0cmlkZSkhPT1udWxsJiZkIT09dm9pZCAwP2Q6MyxBPSh2PXMub2Zmc2V0KSE9PW51bGwmJnYhPT12b2lkIDA/djowO3JldHVybiB1PXUqaCtBLHQueD1hW3VdLHQueT1hW3UrMV0sdC56PWFbdSsyXSx0fSxlLnByb3RvdHlwZS5jcmVhdGVUcmVlPWZ1bmN0aW9uKHIsdCxvKXt0aHJvdyBuZXcgRXJyb3IoIm5vdCBpbXBsZW1lbnRlZCIpfSxlLnByb3RvdHlwZS50cmlhbmdsZXNJblNwaGVyZT1mdW5jdGlvbihyLHQpe3Rocm93IG5ldyBFcnJvcigibm90IGltcGxlbWVudGVkIil9LGUucHJvdG90eXBlLmludGVyc2VjdFJheT1mdW5jdGlvbihyLHQsbyxmKXt0aHJvdyBuZXcgRXJyb3IoIm5vdCBpbXBsZW1lbnRlZCIpfSxlfSgpLG09ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHIsdCxvLGYsZCl7dGhpcy5pZD1yLHRoaXMuZXh0ZW50cz10LHRoaXMuc3RhcnRJbmRleD1vLHRoaXMuZW5kSW5kZXg9Zix0aGlzLmRlZXB0aD1kfXJldHVybiBlfSgpLFE9Nio0KzQrNCsyKzI7ZnVuY3Rpb24geXIoZSxyKXtmb3IodmFyIHQ9bmV3IEFycmF5QnVmZmVyKHIqUSksbz1uZXcgRmxvYXQzMkFycmF5KHQpLGY9bmV3IFVpbnQzMkFycmF5KHQpLGQ9bmV3IFVpbnQxNkFycmF5KHQpLHY9W2VdLG4scztuPXYucG9wKCk7KXM9bi5pZCpRLzQsb1tzXT1uLmV4dGVudHNbMF0sb1tzKzFdPW4uZXh0ZW50c1sxXSxvW3MrMl09bi5leHRlbnRzWzJdLG9bcyszXT1uLmV4dGVudHNbM10sb1tzKzRdPW4uZXh0ZW50c1s0XSxvW3MrNV09bi5leHRlbnRzWzVdLGZbcys2XT1uLnN0YXJ0SW5kZXgsZltzKzddPW4uZW5kSW5kZXgscz1uLmlkKlEvMixuLm5vZGUwJiYoZFtzKzE2XT1uLm5vZGUwLmlkLHYucHVzaChuLm5vZGUwKSksbi5ub2RlMSYmKGRbcysxN109bi5ub2RlMS5pZCx2LnB1c2gobi5ub2RlMSkpO3JldHVybiB0fWZ1bmN0aW9uIGNyKGUscix0LG8sZixkLHYsbixzKXtzPT09dm9pZCAwJiYocz0wKSx0PXQtcyxvPW8tcyxmPWYtcyxkPWQrcyx2PXYrcyxuPW4rczt2YXIgdT0wLHc9MCx5PTAscD0wLGE9MCxoPTA7cmV0dXJuIHIueD49MD8odT0odC1lLngpKnIueCx3PShkLWUueCkqci54KToodT0oZC1lLngpKnIueCx3PSh0LWUueCkqci54KSxyLnk+PTA/KHk9KG8tZS55KSpyLnkscD0odi1lLnkpKnIueSk6KHk9KHYtZS55KSpyLnkscD0oby1lLnkpKnIueSksISh1PnB8fHk+d3x8KHk+dSYmKHU9eSkscDx3JiYodz1wKSxyLno+PTA/KGE9KGYtZS56KSpyLnosaD0obi1lLnopKnIueik6KGE9KG4tZS56KSpyLnosaD0oZi1lLnopKnIueiksdT5ofHxhPncpfHwoYT51JiYodT1hKSxoPHcmJih3PWgpLHc8MCkpfXZhciBZPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShyLHQsbyl7dGhpcy54PXIsdGhpcy55PXQsdGhpcy56PW99cmV0dXJuIGUucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMueD1yLngsdGhpcy55PXIueSx0aGlzLno9ci56LHRoaXN9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbihyLHQsbyl7cmV0dXJuIHRoaXMueD1yLHRoaXMueT10LHRoaXMuej1vLHRoaXN9LGUucHJvdG90eXBlLmZyb21BcnJheT1mdW5jdGlvbihyLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD0wKSx0aGlzLng9clt0XSx0aGlzLnk9clt0KzFdLHRoaXMuej1yW3QrMl0sdGhpc30sZS5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihyLHQpe3JldHVybiByPT09dm9pZCAwJiYocj1bXSksdD09PXZvaWQgMCYmKHQ9MCksclt0XT10aGlzLngsclt0KzFdPXRoaXMueSxyW3QrMl09dGhpcy56LHJ9LGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy54Kz1yLngsdGhpcy55Kz1yLnksdGhpcy56Kz1yLnosdGhpc30sZS5wcm90b3R5cGUubXVsdGlwbHlTY2FsYXI9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMueCo9cix0aGlzLnkqPXIsdGhpcy56Kj1yLHRoaXN9LGUucHJvdG90eXBlLnN1YlZlY3RvcnM9ZnVuY3Rpb24ocix0KXtyZXR1cm4gdGhpcy54PXIueC10LngsdGhpcy55PXIueS10LnksdGhpcy56PXIuei10LnosdGhpc30sZS5wcm90b3R5cGUuYWRkU2NhbGVkVmVjdG9yPWZ1bmN0aW9uKHIsdCl7cmV0dXJuIHRoaXMueCs9ci54KnQsdGhpcy55Kz1yLnkqdCx0aGlzLnorPXIueip0LHRoaXN9LGUucHJvdG90eXBlLmRvdD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy54KnIueCt0aGlzLnkqci55K3RoaXMueipyLnp9LGUucHJvdG90eXBlLmNyb3NzPWZ1bmN0aW9uKHIpe3ZhciB0PXRoaXMueCxvPXRoaXMueSxmPXRoaXMuejtyZXR1cm4gdGhpcy54PW8qci56LWYqci55LHRoaXMueT1mKnIueC10KnIueix0aGlzLno9dCpyLnktbypyLngsdGhpc30sZS5wcm90b3R5cGUuY3Jvc3NWZWN0b3JzPWZ1bmN0aW9uKHIsdCl7dmFyIG89ci54LGY9ci55LGQ9ci56LHY9dC54LG49dC55LHM9dC56O3JldHVybiB0aGlzLng9ZipzLWQqbix0aGlzLnk9ZCp2LW8qcyx0aGlzLno9bypuLWYqdix0aGlzfSxlLnByb3RvdHlwZS5kaXN0YW5jZVRvPWZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLnNxcnQodGhpcy5kaXN0YW5jZVRvU3F1YXJlZChyKSl9LGUucHJvdG90eXBlLmRpc3RhbmNlVG9TcXVhcmVkPWZ1bmN0aW9uKHIpe3ZhciB0PXRoaXMueC1yLngsbz10aGlzLnktci55LGY9dGhpcy56LXIuejtyZXR1cm4gdCp0K28qbytmKmZ9LGUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBlKHRoaXMueCx0aGlzLnksdGhpcy56KX0sZX0oKSxwcj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUocix0LG8pe3RoaXMudHJpYW5nbGU9cix0aGlzLmludGVyc2VjdGlvblBvaW50PXQsdGhpcy5pbmRleD1vfXJldHVybiBlfSgpLGxyPTFlLTYsUz1uZXcgWSgwLDAsMCksRD1uZXcgWSgwLDAsMCksZz1uZXcgWSgwLDAsMCksWD1uZXcgWSgwLDAsMCksQXI9ZnVuY3Rpb24oZSl7aHIocixlKTtmdW5jdGlvbiByKCl7cmV0dXJuIGUhPT1udWxsJiZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gci5wcm90b3R5cGUuY3JlYXRlVHJlZT1mdW5jdGlvbih0LG8sZil7bz1NYXRoLm1pbihvLDE2KTt2YXIgZD10aGlzLmdldFBvc2l0aW9uQ291bnQoKS8zLHY9ZD42NTUzNT9uZXcgVWludDMyQXJyYXkoZCk6bmV3IFVpbnQxNkFycmF5KGQpLG49bmV3IEZsb2F0MzJBcnJheShkKjYpLHM9W10sdT0wLHc9LTE7aWYoZilmb3IodmFyIHk9MCxwPTAsYT0wLGg9dm9pZCAwLEE9dm9pZCAwLGw9dm9pZCAwLEk9dm9pZCAwLGM9dm9pZCAwLHo9dm9pZCAwLGk9dm9pZCAwO3k8ZDt5Kz0xLHArPTMsYSs9Nil2W3ldPXksdGhpcy5nZXRQb3NpdGlvbkJ5SW5kZXgocCxEKSx0aGlzLmdldFBvc2l0aW9uQnlJbmRleChwKzEsZyksdGhpcy5nZXRQb3NpdGlvbkJ5SW5kZXgocCsyLFgpLGg9ST1ELngsaT1nLngsaTxoJiYoaD1pKSxpPkkmJihJPWkpLGk9WC54LGk8aCYmKGg9aSksaT5JJiYoST1pKSxBPWM9RC55LGk9Zy55LGk8QSYmKEE9aSksaT5jJiYoYz1pKSxpPVgueSxpPEEmJihBPWkpLGk+YyYmKGM9aSksbD16PUQueixpPWcueixpPGwmJihsPWkpLGk+eiYmKHo9aSksaT1YLnosaTxsJiYobD1pKSxpPnomJih6PWkpLG5bYV09aCxuW2ErMV09QSxuW2ErMl09bCxuW2ErM109SSxuW2ErNF09YyxuW2ErNV09ejtlbHNle2Zvcih2YXIgaz0xLzAsSD0xLzAsaj0xLzAscT0tMS8wLE09LTEvMCxQPS0xLzAseT0wLHA9MCxhPTAsaD12b2lkIDAsQT12b2lkIDAsbD12b2lkIDAsST12b2lkIDAsYz12b2lkIDAsej12b2lkIDAsaT12b2lkIDA7eTxkO3krPTEscCs9MyxhKz02KXZbeV09eSx0aGlzLmdldFBvc2l0aW9uQnlJbmRleChwLEQpLHRoaXMuZ2V0UG9zaXRpb25CeUluZGV4KHArMSxnKSx0aGlzLmdldFBvc2l0aW9uQnlJbmRleChwKzIsWCksaD1JPUQueCxpPWcueCxpPGgmJihoPWkpLGk+SSYmKEk9aSksaT1YLngsaTxoJiYoaD1pKSxpPkkmJihJPWkpLEE9Yz1ELnksaT1nLnksaTxBJiYoQT1pKSxpPmMmJihjPWkpLGk9WC55LGk8QSYmKEE9aSksaT5jJiYoYz1pKSxsPXo9RC56LGk9Zy56LGk8bCYmKGw9aSksaT56JiYoej1pKSxpPVgueixpPGwmJihsPWkpLGk+eiYmKHo9aSksblthXT1oLG5bYSsxXT1BLG5bYSsyXT1sLG5bYSszXT1JLG5bYSs0XT1jLG5bYSs1XT16LGg8ayYmKGs9aCksST5xJiYocT1JKSxBPEgmJihIPUEpLGM+TSYmKE09YyksbDxqJiYoaj1sKSx6PlAmJihQPXopO2Y9W2ssSCxqLHEsTSxQXX12YXIgVD1uZXcgbSgrK3csZiwwLGQsMCk7c1t1KytdPVQ7dmFyIE49W10sQj1bMCwxLDJdLFY9ZnVuY3Rpb24oVSxfKXtyZXR1cm4gTltfXS1OW1VdfTtmdW5jdGlvbiBSKFUpe3ZhciBfPVUuc3RhcnRJbmRleCwkPVUuZW5kSW5kZXgsRj1VLmV4dGVudHM7TlswXT1GWzNdLUZbMF0sTlsxXT1GWzRdLUZbMV0sTlsyXT1GWzVdLUZbMl0sQi5zb3J0KFYpO2Zvcih2YXIgVz0wO1c8MztXKyspe2Zvcih2YXIgTD1CW1ddLEc9RltMXStGW0wrM10seD1fLEM9JC0xLEs9LTEsSj12b2lkIDA7eDw9QzspSz09PS0xPyhKPXZbeF0sbltKKjYrTF0rbltKKjYrTCszXTxHP3grKzpLPUopOihKPXZbQ10sbltKKjYrTF0rbltKKjYrTCszXT49R3x8KHZbeF09Six2W0NdPUssSz0tMSx4KyspLEMtLSk7aWYoeD5fJiZ4PCQpe3ZhciBiPW5ldyBtKCsrdyxJcih2LG4sXyx4LGxyKSxfLHgsVS5kZWVwdGgrMSk7Yi5kZWVwdGg8byYmYi5lbmRJbmRleC1iLnN0YXJ0SW5kZXg+dCYmKHNbdSsrXT1iKTt2YXIgTz1uZXcgbSgrK3csSXIodixuLHgsJCxscikseCwkLFUuZGVlcHRoKzEpO08uZGVlcHRoPG8mJk8uZW5kSW5kZXgtTy5zdGFydEluZGV4PnQmJihzW3UrK109TyksVS5ub2RlMD1iLFUubm9kZTE9TyxVLnN0YXJ0SW5kZXg9MCxVLmVuZEluZGV4PTA7YnJlYWt9fX1mb3IoO3U7KVIoc1stLXVdKTtyZXR1cm4gdGhpcy5vZmZzZXRBcnJheT12LHRoaXMucm9vdE5vZGVQYWNrZWQ9eXIoVCx3KzEpLHMubGVuZ3RoPTAsdGhpc30sci5wcm90b3R5cGUudHJpYW5nbGVzSW5TcGhlcmU9ZnVuY3Rpb24odCxvKXtmb3IodmFyIGY9dGhpcy5vZmZzZXRBcnJheSxkPXRoaXMucm9vdE5vZGVQYWNrZWQsdj1uZXcgRmxvYXQzMkFycmF5KGQpLG49bmV3IFVpbnQzMkFycmF5KGQpLHM9bmV3IFVpbnQxNkFycmF5KGQpLHU9WzBdLHc9W10seSxwLGEsaDsoeT11LnBvcCgpKSE9PXZvaWQgMDspe2g9eSpRLzQ7dmFyIEE9c3IodC54LHZbaF0sdltoKzNdKS10LngsbD1zcih0LnksdltoKzFdLHZbaCs0XSktdC55LEk9c3IodC56LHZbaCsyXSx2W2grNV0pLXQuejtpZihBKkErbCpsK0kqSTw9bypvKXtmb3IodmFyIGM9bltoKzZdO2M8bltoKzddO2MrKyl3LnB1c2goZltjXSk7aD15KlEvMixwPXNbaCsxNl0sYT1zW2grMTddLHAmJnUucHVzaChwKSxhJiZ1LnB1c2goYSl9fWZvcih2YXIgej13Lmxlbmd0aCxpPW5ldyBGbG9hdDMyQXJyYXkoeio5KSxjPTA7Yzx6O2MrKyl7dmFyIGs9d1tjXTt0aGlzLmdldFBvc2l0aW9uQnlJbmRleChrLFMpLGlbYyo5XT1TLngsaVtjKjkrMV09Uy55LGlbYyo5KzJdPVMueix0aGlzLmdldFBvc2l0aW9uQnlJbmRleChrKzEsUyksaVtjKjkrM109Uy54LGlbYyo5KzRdPVMueSxpW2MqOSs1XT1TLnosdGhpcy5nZXRQb3NpdGlvbkJ5SW5kZXgoaysyLFMpLGlbYyo5KzZdPVMueCxpW2MqOSs3XT1TLnksaVtjKjkrOF09Uy56fXJldHVybiBpfSxyLnByb3RvdHlwZS5pbnRlcnNlY3RSYXk9ZnVuY3Rpb24odCxvLGYsZCl7Zm9yKHZhciB2PXRoaXMub2Zmc2V0QXJyYXksbj10aGlzLnJvb3ROb2RlUGFja2VkLHM9bmV3IEZsb2F0MzJBcnJheShuKSx1PW5ldyBVaW50MzJBcnJheShuKSx3PW5ldyBVaW50MTZBcnJheShuKSx5PW5ldyBZKDEvby54LDEvby55LDEvby56KSxwPVswXSxhLGgsQSxsOyhhPXAucG9wKCkpIT09dm9pZCAwOylpZihsPWEqUS80LGNyKHQseSxzW2xdLHNbbCsxXSxzW2wrMl0sc1tsKzNdLHNbbCs0XSxzW2wrNV0pKXtmb3IodmFyIEk9dVtsKzZdLGM9dVtsKzddLHo9dm9pZCAwLGk9dm9pZCAwLGs9dm9pZCAwLEg9dC54LGo9dC55LHE9dC56LE09by54LFA9by55LFQ9by56LE49dm9pZCAwLEI9dm9pZCAwLFY9dm9pZCAwLFI9dm9pZCAwLFU9dm9pZCAwLF89dm9pZCAwLCQ9dm9pZCAwLEY9dm9pZCAwLFc9dm9pZCAwLEw9dm9pZCAwLEc9dm9pZCAwLHg9dm9pZCAwLEM9dm9pZCAwLEs9dm9pZCAwLEo9dm9pZCAwLGI9dm9pZCAwLE89dm9pZCAwLGFyPXZvaWQgMCxycj12b2lkIDAsdHI9dm9pZCAwLG9yPXZvaWQgMCxpcj12b2lkIDAsWj12b2lkIDAsdnI9dm9pZCAwLGZyPXZvaWQgMCx1cj12b2lkIDAsbnI9dm9pZCAwO0k8YztJKyspe2lmKHo9dltJXSxpPXoqMyx0aGlzLmdldFBvc2l0aW9uQnlJbmRleChpLFMpLE49Uy54LEI9Uy55LFY9Uy56LHRoaXMuZ2V0UG9zaXRpb25CeUluZGV4KGkrMSxTKSxSPVMueCxVPVMueSxfPVMueix0aGlzLmdldFBvc2l0aW9uQnlJbmRleChpKzIsUyksJD1TLngsRj1TLnksVz1TLnosTD1SLU4sRz1VLUIseD1fLVYsQz0kLU4sSz1GLUIsSj1XLVYsYj1HKkoteCpLLE89eCpDLUwqSixhcj1MKkstRypDLFo9TSpiK1AqTytUKmFyLFo+MClpcj0xO2Vsc2UgaWYoWjwwKWlyPS0xLFo9LVo7ZWxzZSBjb250aW51ZTtycj1ILU4sdHI9ai1CLG9yPXEtVix2cj1pciooTSoodHIqSi1vcipLKStQKihvcipDLXJyKkopK1QqKHJyKkstdHIqQykpLCEodnI8MCkmJihmcj1pciooTSooRypvci14KnRyKStQKih4KnJyLUwqb3IpK1QqKEwqdHItRypycikpLCEoZnI8MCkmJih2citmcj5afHwodXI9LWlyKihycipiK3RyKk8rb3IqYXIpLCEodXI8MCkmJihucj11ci9aLGQucHVzaChuZXcgcHIoW04sQixWLFIsVSxfLCQsRixXXSxbSCtNKm5yLGorUCpucixxK1QqbnJdLHopKSkpKSl9bD1hKlEvMixoPXdbbCsxNl0sQT13W2wrMTddLGgmJnAucHVzaChoKSxBJiZwLnB1c2goQSl9cmV0dXJuIGR9LHJ9KGRyKTtmdW5jdGlvbiBzcihlLHIsdCl7cmV0dXJuIGU8cj9yOmU+dD90OmV9ZnVuY3Rpb24gSXIoZSxyLHQsbyxmKXtpZih0Pj1vKXJldHVyblswLDAsMCwwLDAsMF07Zm9yKHZhciBkPTEvMCx2PTEvMCxuPTEvMCxzPS0xLzAsdT0tMS8wLHc9LTEvMCx5PXQscD12b2lkIDAsYT12b2lkIDA7eTxvO3krKylwPWVbeV0qNixhPXJbcF0sYTxkJiYoZD1hKSxhPXJbcCsxXSxhPHYmJih2PWEpLGE9cltwKzJdLGE8biYmKG49YSksYT1yW3ArM10sYT5zJiYocz1hKSxhPXJbcCs0XSxhPnUmJih1PWEpLGE9cltwKzVdLGE+dyYmKHc9YSk7cmV0dXJuW2QtZix2LWYsbi1mLHMrZix1K2YsdytmXX12YXIgd3I9MWUtNix6cj1bIngiLCJ5IiwieiJdLEU9bmV3IFkoMCwwLDApLFByPWZ1bmN0aW9uKGUpe2hyKHIsZSk7ZnVuY3Rpb24gcigpe3JldHVybiBlIT09bnVsbCYmZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIucHJvdG90eXBlLmNyZWF0ZVRyZWU9ZnVuY3Rpb24odCxvLGYpe289TWF0aC5taW4obywxNik7dmFyIGQ9dGhpcy5nZXRQb3NpdGlvbkJ5SW5kZXguYmluZCh0aGlzKSx2PXRoaXMuZ2V0UG9zaXRpb25Db3VudCgpLG49dj42NTUzNT9uZXcgVWludDMyQXJyYXkodik6bmV3IFVpbnQxNkFycmF5KHYpLHM9W10sdT0wLHc9LTE7aWYoZilmb3IodmFyIHk9MDt5PHY7eSs9MSluW3ldPXk7ZWxzZXtkKDAsRSk7Zm9yKHZhciBwPUUueCxhPUUueSxoPUUueixBPXAsbD1hLEk9aCx5PTAsYz12b2lkIDAsej12b2lkIDAsaT12b2lkIDA7eTx2O3krPTEpblt5XT15LGQoeSxFKSxjPUUueCx6PUUueSxpPUUueixjPHA/cD1jOmM+QSYmKEE9YyksejxhP2E9ejp6PmwmJihsPXopLGk8aD9oPWk6aT5JJiYoST1pKTtmPVtwLGEsaCxBLGwsSV19dmFyIGs9bmV3IG0oKyt3LGYsMCx2LDApO3NbdSsrXT1rO3ZhciBIPVtdLGo9WzAsMSwyXSxxPWZ1bmN0aW9uKFAsVCl7cmV0dXJuIEhbVF0tSFtQXX07ZnVuY3Rpb24gTShQKXt2YXIgVD1QLnN0YXJ0SW5kZXgsTj1QLmVuZEluZGV4LEI9UC5leHRlbnRzO0hbMF09QlszXS1CWzBdLEhbMV09Qls0XS1CWzFdLEhbMl09Qls1XS1CWzJdO2Zvcih2YXIgVj1qLnNvcnQocSlbMF0sUj16cltWXSxVPShCW1ZdK0JbViszXSkvMixfPVQsJD1OLTEsRj0tMSxXO188PSQ7KUY9PT0tMT8oVz1uW19dLGQoVyxFKSxFW1JdPFU/XysrOkY9Vyk6KFc9blskXSxkKFcsRSksRVtSXT49VXx8KG5bX109VyxuWyRdPUYsRj0tMSxfKyspLCQtLSk7aWYoXz5UKXt2YXIgTD1CLnNsaWNlKCk7TFtWKzNdPVUrd3I7dmFyIEc9bmV3IG0oKyt3LEwsVCxfLFAuZGVlcHRoKzEpO0cuZGVlcHRoPG8mJkcuZW5kSW5kZXgtRy5zdGFydEluZGV4PnQmJihzW3UrK109RyksUC5ub2RlMD1HfWlmKE4+Xyl7dmFyIHg9Qi5zbGljZSgpO3hbVl09VS13cjt2YXIgQz1uZXcgbSgrK3cseCxfLE4sUC5kZWVwdGgrMSk7Qy5kZWVwdGg8byYmQy5lbmRJbmRleC1DLnN0YXJ0SW5kZXg+dCYmKHNbdSsrXT1DKSxQLm5vZGUxPUN9UC5zdGFydEluZGV4PTAsUC5lbmRJbmRleD0wfWZvcig7dTspTShzWy0tdV0pO3JldHVybiB0aGlzLm9mZnNldEFycmF5PW4sdGhpcy5yb290Tm9kZVBhY2tlZD15cihrLHcrMSkscy5sZW5ndGg9MCx0aGlzfSxyLnByb3RvdHlwZS5pbnRlcnNlY3RSYXk9ZnVuY3Rpb24odCxvLGYsZCl7Zm9yKHZhciB2PXRoaXMub2Zmc2V0QXJyYXksbj10aGlzLnJvb3ROb2RlUGFja2VkLHM9bmV3IEZsb2F0MzJBcnJheShuKSx1PW5ldyBVaW50MzJBcnJheShuKSx3PW5ldyBVaW50MTZBcnJheShuKSx5PWYqZixwPW5ldyBZKDEvby54LDEvby55LDEvby56KSxhPVswXSxoLEEsbCxJOyhoPWEucG9wKCkpIT09dm9pZCAwOylpZihJPWgqUS80LGNyKHQscCxzW0ldLHNbSSsxXSxzW0krMl0sc1tJKzNdLHNbSSs0XSxzW0krNV0sZikpe2Zvcih2YXIgYz11W0krNl0sej11W0krN10saT12b2lkIDAsaz12b2lkIDAsSD12b2lkIDAsaj12b2lkIDAscT12b2lkIDAsTT12b2lkIDAsUD12b2lkIDAsVD12b2lkIDAsTj12b2lkIDAsQj12b2lkIDAsVj12b2lkIDAsUj12b2lkIDA7Yzx6O2MrKylpPXZbY10sdGhpcy5nZXRQb3NpdGlvbkJ5SW5kZXgoaSxFKSxrPUUueCxIPUUueSxqPUUueixxPXQueCxNPXQueSxQPXQueixUPW8ueCxOPW8ueSxCPW8ueixWPVQqKGstcSkrTiooSC1NKStCKihqLVApLFY+MCYmKHErPVQqVixNKz1OKlYsUCs9QipWKSxUPWstcSxOPUgtTSxCPWotUCxWPVQqVCtOKk4rQipCLFY8PXkmJmQucHVzaChuZXcgcHIoW2ssSCxqLGssSCxqLGssSCxqXSxbcSxNLFBdLGkpKTtJPWgqUS8yLEE9d1tJKzE2XSxsPXdbSSsxN10sQSYmYS5wdXNoKEEpLGwmJmEucHVzaChsKX1yZXR1cm4gZH0scn0oZHIpO2Z1bmN0aW9uIEJyKGUpe29ubWVzc2FnZT1mdW5jdGlvbihyKXtQcm9taXNlLnJlc29sdmUoci5kYXRhKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfSkudGhlbihmdW5jdGlvbih0KXt2YXIgbz10Lm91dHB1dCxmPXQudHJhbnNmZXI7cmV0dXJuIHBvc3RNZXNzYWdlKG8sZil9KS5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4gcG9zdE1lc3NhZ2UoeyQkZXJyb3I6dH0pfSl9fUJyKGZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLnJlc29sdmUoZSkudGhlbihmdW5jdGlvbihyKXtmb3IodmFyIHQ9W10sbz1uZXcgU2V0LGY9MCxkPXI7ZjxkLmxlbmd0aDtmKyspe3ZhciB2PWRbZl0sbj12b2lkIDA7aWYodi50eXBlPT09Im1lc2giKW49bmV3IEFyKHYuYXR0cmlidXRlcy5wb3NpdGlvbix2LmluZGljZXMpO2Vsc2UgaWYodi50eXBlPT09InBvaW50cyIpbj1uZXcgUHIodi5hdHRyaWJ1dGVzLnBvc2l0aW9uLHYuaW5kaWNlcyk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgVHlwZSIpO24uY3JlYXRlVHJlZSh2Lm1heEl0ZW1QZXJOb2RlLHYubWF4VHJlZURlcHRoLHYuZXh0ZW50cyk7dmFyIHM9e3R5cGU6di50eXBlLGF0dHJpYnV0ZXM6di5hdHRyaWJ1dGVzLGluZGljZXM6di5pbmRpY2VzLG9mZnNldEFycmF5Om4ub2Zmc2V0QXJyYXkscm9vdE5vZGVQYWNrZWQ6bi5yb290Tm9kZVBhY2tlZH07dC5wdXNoKHMpO3ZhciB1PXZvaWQgMDtmb3IodmFyIHcgaW4gcy5hdHRyaWJ1dGVzKXt2YXIgeT1zLmF0dHJpYnV0ZXNbd107eSYmeS5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmby5hZGQoeS5idWZmZXIpfXU9cy5pbmRpY2VzLHUmJnUuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXImJm8uYWRkKHUuYnVmZmVyKSx1PXMub2Zmc2V0QXJyYXksdSYmdS5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmby5hZGQodS5idWZmZXIpLG8uYWRkKHMucm9vdE5vZGVQYWNrZWQpfXJldHVybntvdXRwdXQ6dCx0cmFuc2ZlcjpBcnJheS5mcm9tKG8pfX0pfSl9KSgpOwo=",decodeBase64$1=n=>Uint8Array.from(atob(n),t=>t.charCodeAt(0)),blob$2=typeof self!="undefined"&&self.Blob&&new Blob([decodeBase64$1(encodedJs$1)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$1(n){let t;try{if(t=blob$2&&(self.URL||self.webkitURL).createObjectURL(blob$2),!t)throw"";const e=new Worker(t,{name:n==null?void 0:n.name});return e.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),e}catch(e){return new Worker("data:text/javascript;base64,"+encodedJs$1,{name:n==null?void 0:n.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}var WorkerPool$1=function(){function n(t,e){this.pool=e,this.workerCreator=t,this.queue=[],this.workers=[],this.workersResolver=[],this.workerStatus=0}return n.prototype.initWorker=function(t){if(this.workerCreator&&!this.workers[t]){var e=this.workerCreator();e.addEventListener("message",this.onMessage.bind(this,t)),this.workers[t]=e}},n.prototype.getIdleWorker=function(){for(var t=0;t<this.pool;t++)if(!(this.workerStatus&1<<t))return t;return-1},n.prototype.onMessage=function(t,e){var r=this.workersResolver[t],o=r.resolve,s=r.reject;if(e.data&&"$$error"in e.data?s(e.data.$$error):o(e.data),this.queue.length){var u=this.queue.shift(),l=u.resolve,c=u.reject,f=u.input,d=u.transfer;this.workersResolver[t]={resolve:l,reject:c},this.workers[t].postMessage(f,d)}else this.workerStatus^=1<<t},n.prototype.postMessage=function(t,e){var r=this;return e===void 0&&(e=[]),new Promise(function(o,s){var u=r.getIdleWorker();u!==-1?(r.initWorker(u),r.workerStatus|=1<<u,r.workersResolver[u]={resolve:o,reject:s},r.workers[u].postMessage(t,e)):r.queue.push({resolve:o,reject:s,input:t,transfer:e})})},n.prototype.dispose=function(){this.workers.forEach(function(t){return t.terminate()}),this.workersResolver.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0},n}(),bvhWorkerPool=new WorkerPool$1(function(){return new WorkerWrapper$1},4),bvhMeshMap=new Map,scratchRay=new THREE__namespace.Ray,scratchNormalMatrix=new THREE__namespace.Matrix3,scratchInverseMatrix=new THREE__namespace.Matrix4,scratchIntersectionFaceA=new THREE__namespace.Vector3,scratchIntersectionFaceB=new THREE__namespace.Vector3,scratchIntersectionFaceC=new THREE__namespace.Vector3,scratchIntersectionTriangle=new THREE__namespace.Triangle;function raycastMesh(n,t,e,r){var o,s=n.matrixWorld;scratchInverseMatrix.getInverse(s),scratchRay.copy(e.ray).applyMatrix4(scratchInverseMatrix);for(var u=t.intersectRay(scratchRay.origin,scratchRay.direction,0,[]),l=n.geometry,c=n.material,f=l.groups,d=l.index,p=0,v=u.length;p<v;p++){var A=u[p],g=A.triangle,h=A.index,y=A.intersectionPoint,m=new THREE__namespace.Vector3(y[0],y[1],y[2]).applyMatrix4(s),E=e.ray.origin.distanceTo(m);if(!(E<e.near||E>e.far)){var b=void 0;if(Array.isArray(c)){if(f)for(var T=h*3,_=0,R=f;_<R.length;_++){var S=R[_];if(T>=S.start&&T-S.start<S.count){b=c[(o=S.materialIndex)!==null&&o!==void 0?o:0];break}}}else b=c;if(b){var C=scratchIntersectionTriangle.set(scratchIntersectionFaceA.set(g[0],g[1],g[2]).applyMatrix4(s),scratchIntersectionFaceB.set(g[3],g[4],g[5]).applyMatrix4(s),scratchIntersectionFaceC.set(g[6],g[7],g[8]).applyMatrix4(s)).getNormal(new THREE__namespace.Vector3),B=h*3,L=new THREE__namespace.Face3(d?d.array[B]:B,d?d.array[B+1]:B+1,d?d.array[B+2]:B+2,C),M=e.ray.direction.dot(C);b.side===THREE__namespace.FrontSide&&M>=0||b.side===THREE__namespace.BackSide&&M<=0||r.push({distance:E,object:n,face:L,point:m,distanceToRay:0,faceIndex:h})}}}}function raycastPoints(n,t,e,r){var o,s,u=n.matrixWorld;scratchNormalMatrix.getNormalMatrix(u),scratchInverseMatrix.getInverse(u);var l=((s=(o=e.params.Points)===null||o===void 0?void 0:o.threshold)!==null&&s!==void 0?s:1)*scratchInverseMatrix.getMaxScaleOnAxis();scratchRay.copy(e.ray).applyMatrix4(scratchInverseMatrix);for(var c=t.intersectRay(scratchRay.origin,scratchRay.direction,l,[]),f=n.geometry,d=f.index,p=f.getAttribute("normal"),v=0,A=c.length;v<A;v++){var g=c[v],h=g.triangle,y=g.index,m=g.intersectionPoint,E=new THREE__namespace.Vector3(m[0],m[1],m[2]).applyMatrix4(u),b=e.ray.origin.distanceTo(E);if(!(b<e.near||b>e.far)){var T=scratchIntersectionFaceA.set(h[0],h[1],h[2]).applyMatrix4(u),_=d?d.array[y]:y,R=void 0;if(p instanceof THREE__namespace.BufferAttribute){var S=new THREE__namespace.Vector3().fromBufferAttribute(p,_).applyNormalMatrix(scratchNormalMatrix);R=new THREE__namespace.Face3(_,_,_,S)}r.push({distance:b,object:n,face:R,point:E,distanceToRay:E.distanceTo(T),index:y})}}}var BVH_MESH_PROP="__bvh_mesh__",originMeshRaycast=THREE__namespace.Mesh.prototype.raycast;function overrideMeshRaycast(n,t){var e=getBvhTreeForMesh(this);e?raycastMesh(this,e,n,t):originMeshRaycast.call(this,n,t)}function getBvhTreeForMesh(n){var t=n[BVH_MESH_PROP];return t instanceof BVHMesh,t}function bindBvhTreeForMesh(n,t){var e;Object.assign(n,(e={},e[BVH_MESH_PROP]=t,e.raycast=overrideMeshRaycast,e))}var BVH_POINTS_PROP="__bvh_points__",originPointsRaycast=THREE__namespace.Points.prototype.raycast;function overridePointsRaycast(n,t){var e=getBvhTreeForPoints(this);e?raycastPoints(this,e,n,t):originPointsRaycast.call(this,n,t)}function getBvhTreeForPoints(n){var t=n[BVH_POINTS_PROP];return t instanceof BVHPoints,t}function bindBvhTreeForPoints(n,t){var e;Object.assign(n,(e={},e[BVH_POINTS_PROP]=t,e.raycast=overridePointsRaycast,e))}function generateBvhTree(n,t,e,r){var o=[];return n.traverse(function(s){(s instanceof THREE__namespace.Mesh||s instanceof THREE__namespace.Points)&&s.geometry instanceof THREE__namespace.BufferGeometry&&o.push(s)}),Promise.resolve().then(function(){for(var s=[],u=new Set,l=null,c=0;c<o.length;c++){var f=o[c],d=f.geometry;if(d instanceof THREE__namespace.BufferGeometry){var p=void 0;if(f instanceof THREE__namespace.Mesh?p="mesh":f instanceof THREE__namespace.Points&&(p="points"),!!p){var v=d.boundingBox,A=v?[v.min.x,v.min.y,v.min.z,v.max.x,v.max.y,v.max.z]:void 0,g={};for(var h in d.attributes){var y=d.attributes[h];y instanceof THREE__namespace.InterleavedBufferAttribute?(g[h]={array:y.data.array,stride:y.data.stride,offset:y.offset},l=y.data.array,l&&l.buffer instanceof ArrayBuffer&&u.add(l.buffer)):(g[h]={array:y.array},l=y.array,l&&l.buffer instanceof ArrayBuffer&&u.add(l.buffer))}var m=void 0,E=d.getIndex();E&&(E instanceof THREE__namespace.InterleavedBufferAttribute?(m={array:E.data.array,stride:E.data.stride,offset:E.offset},l=E.data.array,l&&l.buffer instanceof ArrayBuffer&&u.add(l.buffer)):(m={array:E.array},l=E.array,l&&l.buffer instanceof ArrayBuffer&&u.add(l.buffer)));var b={type:p,attributes:g,indices:m,maxItemPerNode:e,maxTreeDepth:r,extents:A};s.push(b)}}}return bvhWorkerPool.postMessage(s,Array.from(u))}).then(function(s){for(var u=0;u<o.length;u++){var l=o[u],c=l.geometry,f=s[u];if(c instanceof THREE__namespace.BufferGeometry){for(var d in f.attributes){var p=f.attributes[d].array,v=c.attributes[d];v instanceof THREE__namespace.InterleavedBufferAttribute?v.data.array=p:v.array=p}var A=c.getIndex();if(A&&f.indices){var p=f.indices.array;A instanceof THREE__namespace.InterleavedBufferAttribute?A.data.array=p:A.array=p}if(l instanceof THREE__namespace.Mesh){var g=new BVHMesh(f.attributes.position,f.indices);g.offsetArray=f.offsetArray,g.rootNodePacked=f.rootNodePacked,bindBvhTreeForMesh(l,g)}else if(l instanceof THREE__namespace.Points){var g=new BVHPoints(f.attributes.position,f.indices);g.offsetArray=f.offsetArray,g.rootNodePacked=f.rootNodePacked,bindBvhTreeForPoints(l,g)}}}return n})}var TileNode=function(n){__extends(t,n);function t(e,r,o){o===void 0&&(o=noop$1);var s=n.call(this)||this;return s.contentObject=r,s.name=e,s.materials=[],s.pbmObjects=[],s.disposers=[o],s.add(r),r.traverse(function(u){var l;if(u instanceof THREE__namespace.Mesh||u instanceof THREE__namespace.Points){var c=u.material;Array.isArray(c)?(l=s.materials).push.apply(l,c):s.materials.push(c)}(u instanceof PBMMesh||u instanceof PBMSkinnedMesh||u instanceof PBMPointCloud)&&s.pbmObjects.push(u)}),s}return t.prototype.generateBvhTree=function(){return generateBvhTree(this,!0,200,10)},t.prototype.intersectRaycaster=function(e,r,o){r===void 0&&(r=!0),o===void 0&&(o=[]);for(var s=this.children.slice(),u,l=[];u=s.pop();)if(u.visible){u.raycast(e,l);for(var c=0,f=u.children.length;c<f;c++)s.push(u.children[c])}return l.forEach(function(d){var p=0;if((d.object instanceof PBMMesh||d.object instanceof PBMSkinnedMesh||d.object instanceof PBMPointCloud)&&d.face){var v=Array.isArray(d.object.material)?d.object.material[d.face.materialIndex]:d.object.material;v&&(p=v.floorIndex)}d.floor=p}),r&&l.sort(function(d,p){return d.distance-p.distance}),o.push.apply(o,l),o},t.prototype.update=function(e,r,o,s){for(var u=0,l=this.pbmObjects;u<l.length;u++){var c=l[u];c.update(e,r,o,s)}},t.prototype.dispose=function(){for(var e=0,r=this.disposers;e<r.length;e++){var o=r[e];o()}this.disposers.length=0,this.pbmObjects.length=0},t.prototype.clone=function(){return new t(this.name,this.contentObject.clone())},t}(THREE__namespace.Object3D);function pathJoin(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=[];n=n.map(function(l){return(l!=null?l:"").trim()}).filter(function(l){return l.length>0&&!/^\/+$/.test(l)});for(var r=0;r<n.length;r++){var o=r===0,s=r===n.length-1,u=n[r];o||(u=u.replace(/^\.\//,"").replace(/^\/+/,"")),s||(u=u.replace(/\/+$/,"")),e.push(u)}return e.join("/")}function normalizeURL(n){var t,e=/^(http\:|https\:|file\:)?\/\/[^/]/.exec(n);if(!e)return n;var r=e[1]||"",o=n.slice(r.length+2),s=o.indexOf("#");s>=0&&(n.slice(s),o=n.slice(0,s));var u=o.indexOf("?");u>=0&&(n.slice(u),o=n.slice(0,u));for(var l=o.split("/"),c=l.shift(),f=(t=l.pop())!==null&&t!==void 0?t:"",d=[],p=0,v=l;p<v.length;p++){var A=v[p];if(!(A===""||A===".")){if(A===".."){d.pop();continue}d.push(A)}}return r+"//"+c+"/"+d.join("/")+"/"+f}function isAbsoluteURL(n){return n.indexOf("//")===0||/^[0-9a-z]+\:/i.test(n)}function normalizeTileHeader(n,t,e){var r;if(n.content){var o=(r=n.content.uri)!==null&&r!==void 0?r:n.content.url;typeof o=="string"&&!isAbsoluteURL(o)&&(n.content.uri=normalizeURL(pathJoin(t,o)))}if(n.transform){for(var s=!1,u=0;u<16;u++){var l=n.transform[u];if(typeof l!="number"||isNaN(l)||!isFinite(l)){s=!0;break}}if(n.transform[15]===0&&(s=!0),s)throw new Error("Invalid Tile Transform: "+JSON.stringify(n.transform))}if(n.children)for(var c=0,f=n.children;c<f.length;c++){var d=f[c];normalizeTileHeader(d,t)}return n}function normalizeTilesetHeader(n,t){if(n.asset||(n.asset={}),n.rootMeta||(n.rootMeta={}),n.rootMeta.taskParameters||(n.rootMeta.taskParameters={}),n.asset.overview){var e=n.asset.overview;isAbsoluteURL(e.imageFile)||(e.imageFile=normalizeURL(pathJoin(t,e.imageFile))),isAbsoluteURL(e.worldFile)||(e.worldFile=normalizeURL(pathJoin(t,e.worldFile)))}if(n.asset.trajectories)for(var r=0;r<n.asset.trajectories.list.length;r++){var o=n.asset.trajectories.list[r];o.file=normalizeURL(pathJoin(t,o.file))}return normalizeTileHeader(n.root,t),n}function initTextures(n,t,e){for(var r,o,s=Promise.resolve(),u=n.slice(),l=function(){for(var c=[],f=0,d=void 0;d=u.shift();){c.push(d);var p=((r=d.image)===null||r===void 0?void 0:r.width)*((o=d.image)===null||o===void 0?void 0:o.height);if(!isNaN(p)&&isFinite(p)&&(f+=p),f>=e)break}s=s.then(function(){return new Promise(function(v){AnimationFrameLoop.shared.add(function(){for(var A=0,g=c;A<g.length;A++){var h=g[A];t.initTexture(h)}v()},!0)})}).catch(function(){})};u.length>0;)l();return s}function appendSearch(n,t){if(t===void 0&&(t=""),(t[0]==="?"||t[0]==="&")&&(t=t.slice(1)),!t)return n;var e=n.indexOf("#"),r="";return e>=0&&(r=n.slice(e),n=n.slice(0,e)),(n[n.length-1]==="?"||n[n.length-1]==="&")&&(n=n.slice(0,-1)),n.indexOf("?")>=0?"".concat(n,"&").concat(t).concat(r):"".concat(n,"?").concat(t).concat(r)}var SIZEOF_UINT32$1=4;function parseHeader$1(n,t,e){var r=new DataView(t);if(n.magic=r.getUint32(e,!0),e+=SIZEOF_UINT32$1,n.version=r.getUint32(e,!0),e+=SIZEOF_UINT32$1,n.byteLength=r.getUint32(e,!0),e+=SIZEOF_UINT32$1,n.version!==1)throw new Error("3D Tile Version ".concat(n.version," not supported"));return e}var _a$4,GL_TYPE;(function(n){n[n.BYTE=5120]="BYTE",n[n.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",n[n.SHORT=5122]="SHORT",n[n.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",n[n.INT=5124]="INT",n[n.UNSIGNED_INT=5125]="UNSIGNED_INT",n[n.FLOAT=5126]="FLOAT",n[n.DOUBLE=5130]="DOUBLE"})(GL_TYPE||(GL_TYPE={}));var GL_TYPE_TO_ARRAY_TYPE=(_a$4={},_a$4[GL_TYPE.DOUBLE]=Float64Array,_a$4[GL_TYPE.FLOAT]=Float32Array,_a$4[GL_TYPE.UNSIGNED_SHORT]=Uint16Array,_a$4[GL_TYPE.UNSIGNED_INT]=Uint32Array,_a$4[GL_TYPE.UNSIGNED_BYTE]=Uint8Array,_a$4[GL_TYPE.BYTE]=Int8Array,_a$4[GL_TYPE.SHORT]=Int16Array,_a$4[GL_TYPE.INT]=Int32Array,_a$4),NAME_TO_GL_TYPE={DOUBLE:GL_TYPE.DOUBLE,FLOAT:GL_TYPE.FLOAT,UNSIGNED_SHORT:GL_TYPE.UNSIGNED_SHORT,UNSIGNED_INT:GL_TYPE.UNSIGNED_INT,UNSIGNED_BYTE:GL_TYPE.UNSIGNED_BYTE,BYTE:GL_TYPE.BYTE,SHORT:GL_TYPE.SHORT,INT:GL_TYPE.INT};function getArrayType(n){var t=GL_TYPE_TO_ARRAY_TYPE[n];if(!t)throw new Error("Failed to convert GL type");return t}function getByteSize(n){var t=getArrayType(n);return t.BYTES_PER_ELEMENT}function createTypedArray(n,t,e,r){e===void 0&&(e=0);var o=getArrayType(n);if(e%getByteSize(n)!==0){var s=r?t.slice(e,e+r*getByteSize(n)):t.slice(e);return new o(s)}else return new o(t,e,r!=null?r:(t.byteLength-e)/getByteSize(n))}function glTypeFromName(n){var t=NAME_TO_GL_TYPE[n];if(!t)throw new Error("Failed to convert GL type");return t}var FeatureTable=function(){function n(t,e){this.featuresLength=0,this.cachedTypedArrays={},this.json=t,this.buffer=e;var r=this.getGlobalProperty("POINTS_LENGTH",GL_TYPE.UNSIGNED_INT,1);r&&r.length&&(this.featuresLength=r[0])}return n.prototype.getExtension=function(t){return this.json.extensions&&this.json.extensions[t]},n.prototype.hasProperty=function(t){return!!this.json[t]},n.prototype.getGlobalProperty=function(t,e,r){var o=this.json[t];if(typeof o=="number"){var s=getArrayType(e);return new s([o])}else if(Array.isArray(o)){var s=getArrayType(e);return new s(o)}else if(o&&Number.isFinite(o.byteOffset))return this.getTypedArrayFromBinary(t,e,r,1,o.byteOffset);return null},n.prototype.getPropertyArray=function(t,e,r){var o=this.json[t];return o&&Number.isFinite(o.byteOffset)?("componentType"in o&&(e=glTypeFromName(o.componentType)),this.getTypedArrayFromBinary(t,e,r,this.featuresLength,o.byteOffset)):this.getTypedArrayFromArray(t,e,o)},n.prototype.getProperty=function(t,e,r,o,s){var u=this.json[t];if(!u)return null;var l=this.getPropertyArray(t,e,r);if(r===1)return s[0]=l[o],s;for(var c=0;c<r;++c)s[c]=l[r*o+c];return s},n.prototype.getTypedArrayFromBinary=function(t,e,r,o,s){var u=this.cachedTypedArrays,l=u[t];return l||(l=createTypedArray(e,this.buffer.buffer,this.buffer.byteOffset+s,o*r),u[t]=l),l},n.prototype.getTypedArrayFromArray=function(t,e,r){var o=this.cachedTypedArrays,s=o[t];return s||(s=createTypedArray(e,r),o[t]=s),s},n}(),SIZEOF_UINT32=4,DEPRECATION_WARNING="b3dm tile in legacy format.";function getStringFromArrayBuffer(n,t,e){var r=new TextDecoder("utf8"),o=new Uint8Array(n,t,e),s=r.decode(o);return s}function parseTable(n,t,e){return e=parseTablesHeader(n,t,e),e=parseFeatureTable(n,t,e),e=parseBatchTable(n,t,e),e}function parseTablesHeader(n,t,e){var r=new DataView(t),o=0;n.header=n.header||{};var s=r.getUint32(e,!0);e+=SIZEOF_UINT32;var u=r.getUint32(e,!0);e+=SIZEOF_UINT32;var l=r.getUint32(e,!0);e+=SIZEOF_UINT32;var c=r.getUint32(e,!0);return e+=SIZEOF_UINT32,l>=570425344?(e-=SIZEOF_UINT32*2,o=s,l=u,c=0,s=0,u=0,console.warn(DEPRECATION_WARNING)):c>=570425344&&(e-=SIZEOF_UINT32,o=l,l=s,c=u,s=0,u=0,console.warn(DEPRECATION_WARNING)),n.header.featureTableJsonByteLength=s,n.header.featureTableBinaryByteLength=u,n.header.batchTableJsonByteLength=l,n.header.batchTableBinaryByteLength=c,n.header.batchLength=o,e}function parseFeatureTable(n,t,e){var r=n.header||{},o=r.featureTableJsonByteLength,s=r.featureTableBinaryByteLength,u=r.batchLength;if(n.featureTableJson={BATCH_LENGTH:u||0},o&&o>0){var l=getStringFromArrayBuffer(t,e,o);n.featureTableJson=JSON.parse(l)}e+=o||0,n.featureTableBinary=new Uint8Array(t,e,s),e+=s||0,n.rtcCenter=[0,0,0];var c=new FeatureTable(n.featureTableJson,n.featureTableBinary);if(Array.isArray(c.json.RTC_CENTER)){var f=c.json.RTC_CENTER;n.rtcCenter[0]=f[0],n.rtcCenter[1]=f[1],n.rtcCenter[2]=f[2]}else{var f=c.getGlobalProperty("RTC_CENTER",GL_TYPE.FLOAT,3);f&&(n.rtcCenter[0]=f[0],n.rtcCenter[1]=f[1],n.rtcCenter[2]=f[2])}return e}function parseBatchTable(n,t,e){var r=n.header||{},o=r.batchTableJsonByteLength,s=r.batchTableBinaryByteLength;if(o&&o>0){var u=getStringFromArrayBuffer(t,e,o);n.batchTableJson=JSON.parse(u),e+=o,s&&s>0&&(n.batchTableBinary=new Uint8Array(t,e,s),n.batchTableBinary=new Uint8Array(n.batchTableBinary),e+=s)}return e}function sliceArrayBuffer(n,t,e){var r=e!==void 0?new Uint8Array(n).subarray(t,t+e):new Uint8Array(n).subarray(t),o=new Uint8Array(r);return o.buffer}function parseGlTFArrayBuffer(n,t,e){var r=n.byteLength-e;if(r===0)throw new Error("glTF byte length must be greater than 0.");return e%4!==0&&console.warn("".concat(n.type,": embedded glb is not aligned to a 4-byte boundary.")),n.gltfArrayBuffer=sliceArrayBuffer(t,e,r),n.byteLength}function decodeText(n){if(typeof TextDecoder!="undefined")return new TextDecoder().decode(n);for(var t="",e=0,r=n.length;e<r;e++)t+=String.fromCharCode(n[e]);try{return decodeURIComponent(escape(t))}catch(o){return t}}var WEBGL_CONSTANTS={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},WEBGL_COMPONENT_TYPES={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},WEBGL_FILTERS={9728:THREE__namespace.NearestFilter,9729:THREE__namespace.LinearFilter,9984:THREE__namespace.NearestMipmapNearestFilter,9985:THREE__namespace.LinearMipmapNearestFilter,9986:THREE__namespace.NearestMipmapLinearFilter,9987:THREE__namespace.LinearMipmapLinearFilter},WEBGL_WRAPPINGS={33071:THREE__namespace.ClampToEdgeWrapping,33648:THREE__namespace.MirroredRepeatWrapping,10497:THREE__namespace.RepeatWrapping},WEBGL_TYPE_SIZES={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ATTRIBUTES={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},PATH_PROPERTIES={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},INTERPOLATION={CUBICSPLINE:void 0,LINEAR:THREE__namespace.InterpolateLinear,STEP:THREE__namespace.InterpolateDiscrete},ALPHA_MODES={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function values(n){var t=[];for(var e in n)t.push(n[e]);return t}function composeDsiposeSet(n){var t=Array.from(n);return function(){for(var e=0,r=t;e<r.length;e++){var o=r[e];typeof o.dispose=="function"&&o.dispose(),typeof o.close=="function"&&o.close()}}}var Parser=function(){function n(t,e,r){this.json=t,this.extensions=e,this.options=r,this.cache=new Map,this.disposeSet=new Set,this.textureSet=new Set,this.nodeNamesUsed={}}return n.prototype.dispose=function(){this.cache.clear(),this.disposeSet.forEach(function(t){typeof t.dispose=="function"&&t.dispose(),typeof t.close=="function"&&t.close()}),this.disposeSet.clear(),this.textureSet.clear(),this.extensions={},this.json={asset:{version:"unknown"}}},n.prototype.markDefs=function(){for(var t=this.json.nodes||[],e=this.json.skins||[],r=this.json.meshes||[],o=0,s=e.length;o<s;o++)for(var u=e[o].joints,l=0,c=u.length;l<c;l++)t[u[l]].isBone=!0;for(var f=0,d=t.length;f<d;f++){var p=t[f];p.mesh!==void 0&&p.skin!==void 0&&(r[p.mesh].isSkinnedMesh=!0)}},n.prototype.parse=function(){var t=this,e=this.json,r=this.extensions;this.markDefs();for(var o=0,s=values(r);o<s.length;o++){var u=s[o];u.markDefs(this)}return Promise.all(values(r).map(function(l){return l.prepare(t)})).then(function(){var l,c,f;return Promise.all([Promise.all(((l=e.scenes)!==null&&l!==void 0?l:[]).map(function(d,p){return t.loadScene(p)})),Promise.all(((c=e.animations)!==null&&c!==void 0?c:[]).map(function(d,p){return t.loadAnimation(p)})),Promise.all(((f=e.cameras)!==null&&f!==void 0?f:[]).map(function(d,p){return t.loadCamera(p)}))])}).then(function(l){var c=l[0],f=l[1],d=l[2],p={json:e,scene:c[e.scene||0],scenes:c,animations:f,cameras:d,textures:[],dispose:noop$1};return p}).then(function(l){return Promise.all(values(r).map(function(c){return c.emitResult(l,t)})).then(function(){return l})}).then(function(l){var c=Array.from(t.textureSet),f=composeDsiposeSet(t.disposeSet);return Object.assign(l,{textures:c,dispose:f}),t.textureSet.clear(),t.disposeSet.clear(),t.dispose(),l})},n.prototype.loadCamera=function(t){var e="camera:"+t,r=this.cache.get(e);if(r)return r;for(var o=null,s=0,u=values(this.extensions);s<u.length;s++){var l=u[s];if(o=l.loadCamera(t,this),o)break}if(!o){var c=void 0,f=this.json.cameras[t],d=f[f.type];d?f.type==="perspective"?c=new THREE__namespace.PerspectiveCamera(THREE__namespace.MathUtils.radToDeg(d.yfov),d.aspectRatio||1,d.znear||1,d.zfar||2e6):f.type==="orthographic"?c=new THREE__namespace.OrthographicCamera(-d.xmag,d.xmag,d.ymag,-d.ymag,d.znear,d.zfar):(console.warn("glTF: Invalid camera type ".concat(f.type,".")),c=new THREE__namespace.Camera):(console.warn("glTF: Missing camera parameters."),c=new THREE__namespace.Camera),f.name&&(c.name=this.createUniqueName(f.name)),o=Promise.resolve(c)}return this.cache.set(e,o),o},n.prototype.loadSkin=function(t){var e="animation:"+t,r=this.cache.get(e);if(r)return r;var o,s=this.json.skins[t],u={joints:s.joints};return s.inverseBindMatrices===void 0?o=Promise.resolve(u):o=this.loadAccessor(s.inverseBindMatrices).then(function(l){return l&&(u.inverseBindMatrices=l),u}),this.cache.set(e,o),o},n.prototype.loadAnimation=function(t){var e="animation:"+t,r=this.cache.get(e);if(r)return r;for(var o=null,s=0,u=values(this.extensions);s<u.length;s++){var l=u[s];if(o=l.loadAnimation(t,this),o)break}if(!o){for(var c=this.json,f=c.animations[t],d=[],p=[],v=[],A=[],g=[],h=0,y=f.channels.length;h<y;h++){var m=f.channels[h],E=f.samplers[m.sampler],b=m.target,T=b.node!==void 0?b.node:b.id,_=f.parameters!==void 0?f.parameters[E.input]:E.input,R=f.parameters!==void 0?f.parameters[E.output]:E.output;d.push(this.loadNode(T)),p.push(this.loadAccessor(_)),v.push(this.loadAccessor(R)),A.push(E),g.push(b)}o=Promise.all([Promise.all(d),Promise.all(p),Promise.all(v),Promise.all(A),Promise.all(g)]).then(function(S){for(var C=S[0],B=S[1],L=S[2],M=S[3],w=S[4],H=[],O=function(U,D){var q=C[U],z=B[U],Q=L[U],G=M[U],X=w[U];if(q===void 0)return"continue";q.updateMatrix(),q.matrixAutoUpdate=!0;var $=void 0;switch(PATH_PROPERTIES[X.path]){case PATH_PROPERTIES.weights:$=THREE__namespace.NumberKeyframeTrack;break;case PATH_PROPERTIES.rotation:$=THREE__namespace.QuaternionKeyframeTrack;break;case PATH_PROPERTIES.position:case PATH_PROPERTIES.scale:default:$=THREE__namespace.VectorKeyframeTrack;break}var W=q.name?q.name:q.uuid,oe=G.interpolation!==void 0?INTERPOLATION[G.interpolation]:THREE__namespace.InterpolateLinear,ae=[];PATH_PROPERTIES[X.path]===PATH_PROPERTIES.weights?q.traverse(function(ne){ne.morphTargetInfluences&&ae.push(ne.name?ne.name:ne.uuid)}):ae.push(W);var re=Q.array;if(Q.normalized){for(var j=getNormalizedComponentScale(re.constructor),se=new Float32Array(re.length),ie=0,ue=re.length;ie<ue;ie++)se[ie]=re[ie]*j;re=se}for(var ie=0,ue=ae.length;ie<ue;ie++){var fe=new $(ae[ie]+"."+PATH_PROPERTIES[X.path],z.array,re,oe);H.push(fe)}},I=0,N=C.length;I<N;I++)O(I);var k=f.name?f.name:"animation_"+t;return new THREE__namespace.AnimationClip(k,void 0,H)})}return this.cache.set(e,o),o},n.prototype.loadBuffer=function(t){var e=this.json.buffers[t];if(e.type&&e.type!=="arraybuffer")throw new Error("glTF: "+e.type+" buffer type is not supported.");var r="buffer:"+t,o=this.cache.get(r);if(o)return o;for(var s=null,u=0,l=values(this.extensions);u<l.length;u++){var c=l[u];if(s=c.loadBuffer(t,this),s)break}if(!s){var f=this.json.buffers[t];s=this.options.fetcher.ajax(this.resolveResouce(f.uri),{responseType:"arraybuffer"}).then(function(d){return d.body})}return this.cache.set(r,s),s},n.prototype.loadBufferView=function(t){var e="bufferView:"+t,r=this.cache.get(e);if(r)return r;for(var o=null,s=0,u=values(this.extensions);s<u.length;s++){var l=u[s];if(o=l.loadBufferView(t,this),o)break}if(!o){var c=this.json.bufferViews[t];o=this.loadBuffer(c.buffer).then(function(f){var d=c.byteLength||0,p=c.byteOffset||0;return f.slice(p,p+d)})}return this.cache.set(e,o),o},n.prototype.loadAccessor=function(t){var e=this,r="accessor:"+t,o=this.cache.get(r);if(o)return o;var s=null;if(!s){var u=this.json.accessors[t];if(u.bufferView===void 0&&u.sparse===void 0)s=Promise.resolve(null);else{var l=[];u.bufferView!==void 0?l.push(this.loadBufferView(u.bufferView)):l.push(Promise.resolve(null)),u.sparse!==void 0&&(l.push(this.loadBufferView(u.sparse.indices.bufferView)),l.push(this.loadBufferView(u.sparse.values.bufferView))),s=Promise.all(l).then(function(c){var f=c[0],d=WEBGL_TYPE_SIZES[u.type],p=WEBGL_COMPONENT_TYPES[u.componentType],v=p.BYTES_PER_ELEMENT,A=v*d,g=u.byteOffset||0,h=u.bufferView!==void 0?e.json.bufferViews[u.bufferView].byteStride:void 0,y=u.normalized===!0,m,E;if(h&&h!==A){var b=Math.floor(g/h),T="InterleavedBuffer:"+u.bufferView+":"+u.componentType+":"+b+":"+u.count,_=e.cache.get(T);_||(m=new p(f,b*h,u.count*h/v),_=new THREE__namespace.InterleavedBuffer(m,h/v),e.cache.set(T,_)),E=new THREE__namespace.InterleavedBufferAttribute(_,d,g%h/v,y)}else f===null?m=new p(u.count*d):m=new p(f,g,u.count*d),E=new THREE__namespace.BufferAttribute(m,d,y);if(u.sparse!==void 0){var R=WEBGL_TYPE_SIZES.SCALAR,S=WEBGL_COMPONENT_TYPES[u.sparse.indices.componentType],C=u.sparse.indices.byteOffset||0,B=u.sparse.values.byteOffset||0,L=new S(c[1],C,u.sparse.count*R),M=new p(c[2],B,u.sparse.count*d);f!==null&&(E=new THREE__namespace.BufferAttribute(E.array.slice(),E.itemSize,E.normalized));for(var w=0,H=L.length;w<H;w++){var O=L[w];if(E.setX(O,M[w*d]),d>=2&&E.setY(O,M[w*d+1]),d>=3&&E.setZ(O,M[w*d+2]),d>=4&&E.setW(O,M[w*d+3]),d>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return E})}}return this.cache.set(r,s),s},n.prototype.createPrimitiveKey=function(t){for(var e=0,r=values(this.extensions);e<r.length;e++){var o=r[e],s=o.createPrimitiveKey(t,this);if(s)return s}for(var u="",l=Object.keys(t.attributes).sort(),c=0,f=l.length;c<f;c++)u+=l[c]+":"+t.attributes[l[c]]+";";return t.indices+":"+u+":"+t.mode},n.prototype.loadGeometry=function(t){for(var e=this,r=null,o=0,s=values(this.extensions);o<s.length;o++){var u=s[o];if(r=u.loadGeometry(t,this),r)break}return r||(r=this.addGeometryPrimitiveAttributes(new THREE__namespace.BufferGeometry,t)),r=r.then(function(l){return e.disposeSet.add(l),l}),r},n.prototype.loadImage=function(t){for(var e=this,r=null,o=0,s=values(this.extensions);o<s.length;o++){var u=s[o];if(r=u.loadImage(t,this),r)break}if(!r){var l=this.json.images[t];if(l.bufferView!==void 0){var c=this.json.bufferViews[l.bufferView];r=this.loadBuffer(c.buffer).then(function(d){var p=c.byteOffset||0,v=c.byteLength||0,A=new Uint8Array(d,p,v),g=new Blob([A],{type:l.mimeType});return createImageBitmapLike(g)})}else if(l.uri){var f=this.resolveResouce(l.uri);r=this.options.fetcher.loadImage(f,{},void 0,void 0,void 0,createImageBitmapLikeImage()).then(function(d){return d.body})}else throw new Error("glTF: Invalid image defs.")}return r=r.then(function(d){return e.disposeSet.add(d),d}),r},n.prototype.loadMaterialAsMeshStandardMaterial=function(t){var e=this,r=[],o=new THREE__namespace.MeshStandardMaterial;if(o.color=new THREE__namespace.Color(1,1,1),o.opacity=1,Object.keys(t.attributes).filter(function(d){return ATTRIBUTES[d]==="color"}).length>0&&(o.vertexColors=!0),Object.keys(t.attributes).filter(function(d){return ATTRIBUTES[d]==="normal"}).length===0&&(o.flatShading=!0),Object.keys(t.attributes).filter(function(d){return ATTRIBUTES[d]==="tangent"}).length===0?(o.normalScale&&(o.normalScale.y*=-1),o.clearcoatNormalScale&&(o.clearcoatNormalScale.y*=-1)):o.vertexTangents=!0,t.material!==void 0){var s=this.json.materials[t.material];s.name&&(o.name=s.name);var u=s.pbrMetallicRoughness||{};if(Array.isArray(u.baseColorFactor)){var l=u.baseColorFactor;o.color.fromArray(l),o.opacity=l[3]}u.baseColorTexture!==void 0&&r.push(this.createMaterialTexture(u.baseColorTexture).then(function(d){d.encoding=THREE__namespace.sRGBEncoding,o.map=d,e.disposeSet.add(d)})),o.metalness=u.metallicFactor!==void 0?u.metallicFactor:1,o.roughness=u.roughnessFactor!==void 0?u.roughnessFactor:1,u.metallicRoughnessTexture!==void 0&&r.push(this.createMaterialTexture(u.metallicRoughnessTexture).then(function(d){o.metalnessMap=d,o.roughnessMap=d,e.disposeSet.add(d)})),s.doubleSided===!0&&(o.side=THREE__namespace.DoubleSide);var c=s.alphaMode||ALPHA_MODES.OPAQUE;if(c===ALPHA_MODES.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,c===ALPHA_MODES.MASK&&(o.alphaTest=s.alphaCutoff!==void 0?s.alphaCutoff:.5)),s.normalTexture!==void 0&&(r.push(this.createMaterialTexture(s.normalTexture).then(function(d){o.normalMap=d,e.disposeSet.add(d)})),o.normalScale=new THREE__namespace.Vector2(1,1),s.normalTexture.scale!==void 0)){var f=s.normalTexture.scale;o.normalScale.set(f,f)}s.occlusionTexture!==void 0&&(r.push(this.createMaterialTexture(s.occlusionTexture).then(function(d){o.aoMap=d,e.disposeSet.add(d)})),s.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=s.occlusionTexture.strength)),s.emissiveFactor!==void 0&&(o.emissive=new THREE__namespace.Color().fromArray(s.emissiveFactor)),s.emissiveTexture!==void 0&&r.push(this.createMaterialTexture(s.emissiveTexture).then(function(d){o.emissiveMap=d,e.disposeSet.add(d)}))}return this.disposeSet.add(o),Promise.all(r).then(function(){return o})},n.prototype.loadMaterialAsMeshBasicMaterial=function(t){var e=this,r=[],o=new THREE__namespace.MeshBasicMaterial;if(o.color=new THREE__namespace.Color(1,1,1),o.opacity=1,Object.keys(t.attributes).filter(function(f){return ATTRIBUTES[f]==="color"}).length>0&&(o.vertexColors=!0),Object.keys(t.attributes).filter(function(f){return ATTRIBUTES[f]==="normal"}).length===0&&(o.flatShading=!0),Object.keys(t.attributes).filter(function(f){return ATTRIBUTES[f]==="tangent"}).length===0&&(o.normalScale&&(o.normalScale.y*=-1),o.clearcoatNormalScale&&(o.clearcoatNormalScale.y*=-1)),t.material!==void 0){var s=this.json.materials[t.material];s.name&&(o.name=s.name);var u=s.pbrMetallicRoughness||{};if(Array.isArray(u.baseColorFactor)){var l=u.baseColorFactor;o.color.fromArray(l),o.opacity=l[3]}u.baseColorTexture!==void 0&&r.push(this.createMaterialTexture(u.baseColorTexture).then(function(f){o.map=f,e.disposeSet.add(f)})),s.doubleSided===!0&&(o.side=THREE__namespace.DoubleSide);var c=s.alphaMode||ALPHA_MODES.OPAQUE;c===ALPHA_MODES.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,c===ALPHA_MODES.MASK&&(o.alphaTest=s.alphaCutoff!==void 0?s.alphaCutoff:.5)),s.occlusionTexture!==void 0&&(r.push(this.createMaterialTexture(s.occlusionTexture).then(function(f){o.aoMap=f,e.disposeSet.add(f)})),s.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=s.occlusionTexture.strength))}return this.disposeSet.add(o),Promise.all(r).then(function(){return o})},n.prototype.loadMaterialAsLineBasicMaterial=function(t){var e=[],r=new THREE__namespace.LineBasicMaterial;if(r.color=new THREE__namespace.Color(1,1,1),r.opacity=1,Object.keys(t.attributes).filter(function(c){return ATTRIBUTES[c]==="color"}).length>0&&(r.vertexColors=!0),Object.keys(t.attributes).filter(function(c){return ATTRIBUTES[c]==="tangent"}).length===0&&(r.normalScale&&(r.normalScale.y*=-1),r.clearcoatNormalScale&&(r.clearcoatNormalScale.y*=-1)),t.material!==void 0){var o=this.json.materials[t.material];o.name&&(r.name=o.name);var s=o.pbrMetallicRoughness||{};if(Array.isArray(s.baseColorFactor)){var u=s.baseColorFactor;r.color.fromArray(u),r.opacity=u[3]}o.doubleSided===!0&&(r.side=THREE__namespace.DoubleSide);var l=o.alphaMode||ALPHA_MODES.OPAQUE;l===ALPHA_MODES.BLEND?(r.transparent=!0,r.depthWrite=!1):(r.transparent=!1,l===ALPHA_MODES.MASK&&(r.alphaTest=o.alphaCutoff!==void 0?o.alphaCutoff:.5))}return this.disposeSet.add(r),Promise.all(e).then(function(){return r})},n.prototype.loadMaterialAsPointsMaterial=function(t){var e=this,r=[],o=new THREE__namespace.PointsMaterial;if(o.color=new THREE__namespace.Color(1,1,1),o.opacity=1,o.sizeAttenuation=!1,Object.keys(t.attributes).filter(function(f){return ATTRIBUTES[f]==="color"}).length>0&&(o.vertexColors=!0),Object.keys(t.attributes).filter(function(f){return ATTRIBUTES[f]==="tangent"}).length===0&&(o.normalScale&&(o.normalScale.y*=-1),o.clearcoatNormalScale&&(o.clearcoatNormalScale.y*=-1)),t.material!==void 0){var s=this.json.materials[t.material];s.name&&(o.name=s.name);var u=s.pbrMetallicRoughness||{};if(Array.isArray(u.baseColorFactor)){var l=u.baseColorFactor;o.color.fromArray(l),o.opacity=l[3]}u.baseColorTexture!==void 0&&r.push(this.createMaterialTexture(u.baseColorTexture).then(function(f){f.encoding=THREE__namespace.sRGBEncoding,o.map=f,e.disposeSet.add(f)})),s.doubleSided===!0&&(o.side=THREE__namespace.DoubleSide);var c=s.alphaMode||ALPHA_MODES.OPAQUE;c===ALPHA_MODES.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,c===ALPHA_MODES.MASK&&(o.alphaTest=s.alphaCutoff!==void 0?s.alphaCutoff:.5))}return this.disposeSet.add(o),Promise.all(r).then(function(){return o})},n.prototype.loadMaterial=function(t){var e=this,r,o=(r=t.mode)!==null&&r!==void 0?r:WEBGL_CONSTANTS.TRIANGLES,s="material:"+this.createPrimitiveKey(t),u=this.cache.get(s);if(u)return u;for(var l=null,c=0,f=values(this.extensions);c<f.length;c++){var d=f[c];if(l=d.loadMaterial(t,this),l)break}if(!l)if(o===WEBGL_CONSTANTS.TRIANGLES||o===WEBGL_CONSTANTS.TRIANGLE_STRIP||o===WEBGL_CONSTANTS.TRIANGLE_FAN)l=this.loadMaterialAsMeshStandardMaterial(t);else if(o===WEBGL_CONSTANTS.LINES||o===WEBGL_CONSTANTS.LINE_STRIP||o===WEBGL_CONSTANTS.LINE_LOOP)l=this.loadMaterialAsLineBasicMaterial(t);else if(o===WEBGL_CONSTANTS.POINTS)l=this.loadMaterialAsPointsMaterial(t);else throw new Error("glTF: Primitive mode unsupported: "+o);return l=l.then(function(p){return Promise.all(values(e.extensions).map(function(v){return v.extendMaterial(p,t,e)})).then(function(){return p})}),this.cache.set(s,l),l},n.prototype.loadTexture=function(t){var e=this,r="texture:"+t,o=this.cache.get(r);if(o)return o;for(var s=null,u=0,l=values(this.extensions);u<l.length;u++){var c=l[u];if(s=c.loadTexture(t,this),s)break}if(!s){var f=this.json.textures[t];s=this.loadImage(f.source).then(function(d){var p=new THREE__namespace.Texture(d);p.needsUpdate=!0,p.flipY=!1,f.name&&(p.name=f.name);var v=e.json.samplers||{},A=v[f.sampler]||{};return p.magFilter=WEBGL_FILTERS[A.magFilter]||THREE__namespace.LinearFilter,p.minFilter=WEBGL_FILTERS[A.minFilter]||THREE__namespace.LinearMipmapLinearFilter,p.wrapS=WEBGL_WRAPPINGS[A.wrapS]||THREE__namespace.RepeatWrapping,p.wrapT=WEBGL_WRAPPINGS[A.wrapT]||THREE__namespace.RepeatWrapping,p.onUpdate=function(){d.close()},p})}return s=s.then(function(d){return e.disposeSet.add(d),d}),this.cache.set(r,s),s},n.prototype.loadMesh=function(t){for(var e=this,r=null,o=0,s=values(this.extensions);o<s.length;o++){var u=s[o];if(r=u.loadMesh(t,this),r)break}if(!r){var l=this.json.meshes[t],c=l.primitives,f=Promise.all(c.map(function(p){return e.loadGeometry(p)})),d=Promise.all(c.map(function(p){return e.loadMaterial(p)}));r=Promise.all([f,d]).then(function(p){for(var v=p[0],A=p[1],g=[],h=0;h<c.length;h++){var y=c[h],m=v[h],E=A[h],b=y.mode||WEBGL_CONSTANTS.TRIANGLES,T=void 0;if(b===WEBGL_CONSTANTS.TRIANGLES||b===WEBGL_CONSTANTS.TRIANGLE_STRIP||b===WEBGL_CONSTANTS.TRIANGLE_FAN)if(b===WEBGL_CONSTANTS.TRIANGLE_STRIP?m=e.toGeometryTrianglesDrawMode(m,THREE__namespace.TriangleStripDrawMode):b===WEBGL_CONSTANTS.TRIANGLE_FAN&&(m=e.toGeometryTrianglesDrawMode(m,THREE__namespace.TriangleFanDrawMode)),e.disposeSet.add(m),l.isSkinnedMesh){var _=new THREE__namespace.SkinnedMesh(m,E);m.attributes.skinWeight.normalized||_.normalizeSkinWeights(),T=_}else T=new THREE__namespace.Mesh(m,E);else if(b===WEBGL_CONSTANTS.POINTS)T=new THREE__namespace.Points(m,E);else if(b===WEBGL_CONSTANTS.LINES)T=new THREE__namespace.LineSegments(m,E);else if(b===WEBGL_CONSTANTS.LINE_STRIP)T=new THREE__namespace.Line(m,E);else if(b===WEBGL_CONSTANTS.LINE_LOOP)T=new THREE__namespace.LineLoop(m,E);else throw new Error("glTF: Primitive mode unsupported: "+b);if(Object.keys(m.morphAttributes).length>0){if(l.weights!==void 0)for(var R=0,S=l.weights.length;R<S;R++)T.morphTargetInfluences[R]=l.weights[R];if(l.extras&&Array.isArray(l.extras.targetNames)){var C=l.extras.targetNames;if(T.morphTargetInfluences.length===C.length){T.morphTargetDictionary={};for(var R=0,S=C.length;R<S;R++)T.morphTargetDictionary[C[R]]=R}else console.warn("glTF: Invalid extras.targetNames length. Ignoring names.")}}T.name=e.createUniqueName(l.name||"mesh_"+t),g.push(T)}if(g.length===1)return g[0];for(var B=new THREE__namespace.Group,L=0,M=g;L<M.length;L++){var T=M[L];B.add(T)}return B})}return r},n.prototype.loadNodeAttachments=function(t){for(var e=[],r=0,o=values(this.extensions);r<o.length;r++){var s=o[r],u=s.loadNodeAttachments(t,this);u&&e.push(u)}return e},n.prototype.loadNode=function(t){var e="node:"+t,r=this.cache.get(e);if(r)return r;var o=this.json,s=o.nodes[t],u=s.name?this.createUniqueName(s.name):"",l=[];s.mesh!==void 0&&l.push(this.loadMesh(s.mesh).then(function(v){if(s.weights!==void 0){var A=s.weights;v.traverse(function(g){if(g instanceof THREE__namespace.Mesh||g instanceof THREE__namespace.Line||g instanceof THREE__namespace.Points)for(var h=0,y=A.length;h<y;h++)g.morphTargetInfluences[h]=A[h]})}return v})),s.camera!==void 0&&l.push(this.loadCamera(s.camera));for(var c=this.loadNodeAttachments(t),f=0,d=c;f<d.length;f++){var p=d[f];l.push(p)}return Promise.all(l).then(function(v){var A;if(s.isBone===!0?A=new THREE__namespace.Bone:v.length>1?A=new THREE__namespace.Group:v.length===1?A=v[0]:A=new THREE__namespace.Object3D,A!==v[0])for(var g=0,h=v.length;g<h;g++)A.add(v[g]);if(s.name&&(A.name=u),s.matrix!==void 0){var y=new THREE__namespace.Matrix4;y.fromArray(s.matrix),A.applyMatrix4(y)}else s.translation!==void 0&&A.position.fromArray(s.translation),s.rotation!==void 0&&A.quaternion.fromArray(s.rotation),s.scale!==void 0&&A.scale.fromArray(s.scale);return A})},n.prototype.loadScene=function(t){var e=this.json,r=e.scenes[t],o=new THREE__namespace.Group;r.name&&(o.name=this.createUniqueName(r.name));for(var s=r.nodes||[],u=[],l=0,c=s.length;l<c;l++)u.push(this.buildNodeHierarchy(s[l],o));return Promise.all(u).then(function(){return o})},n.prototype.createMaterialTexture=function(t){var e=this;return this.loadTexture(t.index).then(function(r){for(var o=0,s=values(e.extensions);o<s.length;o++){var u=s[o],l=u.extendTexture(r,t,e);l&&(r=l)}return e.textureSet.add(r),e.disposeSet.add(r),r})},n.prototype.addGeometryPrimitiveAttributes=function(t,e){var r=this,o=e.attributes,s=[],u=function(_){var R=ATTRIBUTES[_]||_.toLowerCase();if(R in t.attributes)return"continue";s.push(l.loadAccessor(o[_]).then(function(S){S&&t.setAttribute(R,S)}))},l=this;for(var c in o)u(c);e.indices!==void 0&&!t.index&&s.push(this.loadAccessor(e.indices).then(function(_){_&&t.setIndex(_)}));var f=new THREE__namespace.Box3;if(o.POSITION!==void 0){var d=this.json.accessors[o.POSITION],p=d.min,v=d.max;if(p!==void 0&&v!==void 0){if(f.set(new THREE__namespace.Vector3(p[0],p[1],p[2]),new THREE__namespace.Vector3(v[0],v[1],v[2])),d.normalized){var A=getNormalizedComponentScale(WEBGL_COMPONENT_TYPES[d.componentType]);f.min.multiplyScalar(A),f.max.multiplyScalar(A)}}else console.warn("glTF: Missing min/max properties for accessor POSITION.")}var g=e.targets;if(g!==void 0){for(var h=new THREE__namespace.Vector3,y=new THREE__namespace.Vector3,m=0,E=g.length;m<E;m++){var b=g[m];if(b.POSITION!==void 0){var d=this.json.accessors[b.POSITION],p=d.min,v=d.max;if(p!==void 0&&v!==void 0){if(y.setX(Math.max(Math.abs(p[0]),Math.abs(v[0]))),y.setY(Math.max(Math.abs(p[1]),Math.abs(v[1]))),y.setZ(Math.max(Math.abs(p[2]),Math.abs(v[2]))),d.normalized){var A=getNormalizedComponentScale(WEBGL_COMPONENT_TYPES[d.componentType]);y.multiplyScalar(A)}h.max(y)}else console.warn("glTF: Missing min/max properties for accessor POSITION.")}}f.expandByVector(h)}t.boundingBox=f;var T=new THREE__namespace.Sphere;return f.getCenter(T.center),T.radius=f.min.distanceTo(f.max)/2,t.boundingSphere=T,Promise.all(s).then(function(){if(t.attributes.uv&&!t.attributes.uv2&&r.options.copyUV2&&t.setAttribute("uv2",t.attributes.uv),e.targets){for(var _=!1,R=!1,S=0,C=e.targets.length;S<C;S++){var B=e.targets[S];if(B.POSITION!==void 0&&(_=!0),B.NORMAL!==void 0&&(R=!0),_&&R)break}if(!_&&!R)return t;var L=[];t.morphTargetsRelative=!0;for(var M=function(w,H){var O=e.targets[w];_?L.push(r.loadAccessor(O.POSITION).then(function(I){I&&(t.morphAttributes.position[w]=I)})):t.morphAttributes.position[w]=t.attributes.position,R?L.push(r.loadAccessor(O.NORMAL).then(function(I){I&&(t.morphAttributes.normal[w]=I)})):t.morphAttributes.normal[w]=t.attributes.normal},S=0,C=e.targets.length;S<C;S++)M(S,C);return Promise.all(L).then(function(){return t})}else return t})},n.prototype.buildNodeHierarchy=function(t,e){var r=this,o=this.json.nodes[t];return this.loadNode(t).then(function(s){if(o.skin===void 0)return s;var u;return r.loadSkin(o.skin).then(function(l){u=l;for(var c=[],f=0,d=u.joints.length;f<d;f++)c.push(r.loadNode(u.joints[f]));return Promise.all(c)}).then(function(l){return s.traverse(function(c){if(c instanceof THREE__namespace.SkinnedMesh){for(var f=[],d=[],p=0,v=l.length;p<v;p++){var A=l[p];if(A instanceof THREE__namespace.Bone){f.push(A);var g=new THREE__namespace.Matrix4;u.inverseBindMatrices!==void 0&&g.fromArray(u.inverseBindMatrices.array,p*16),d.push(g)}else console.warn('glTF: Joint "%s" could not be found.',u.joints[p])}c.bind(new THREE__namespace.Skeleton(f,d),c.matrixWorld)}}),s})}).then(function(s){e.add(s);var u=[];if(o.children)for(var l=o.children,c=0,f=l.length;c<f;c++){var d=l[c];u.push(r.buildNodeHierarchy(d,s))}return Promise.all(u).then(function(){return s})})},n.prototype.createUniqueName=function(t){for(var e=THREE__namespace.PropertyBinding.sanitizeNodeName(t||""),r=e,o=1;this.nodeNamesUsed[r];++o)r=e+"_"+o;return this.nodeNamesUsed[r]=!0,r},n.prototype.resolveResouce=function(t){return pathJoin(this.options.resourcePath,appendSearch(t,this.options.search))},n.prototype.toGeometryTrianglesDrawMode=function(t,e){var r=t.getIndex();if(r===null){var o=[],s=t.getAttribute("position");if(s!==void 0){for(var u=0;u<s.count;u++)o.push(u);t.setIndex(o),r=t.getIndex()}}if(r===null)return console.error("glTF: Undefined position attribute. Processing not possible."),t;var l=r.count-2,c=[];if(e===THREE__namespace.TriangleFanDrawMode)for(var u=1;u<=l;u++)c.push(r.getX(0)),c.push(r.getX(u)),c.push(r.getX(u+1));else for(var u=0;u<l;u++)u%2===0?(c.push(r.getX(u)),c.push(r.getX(u+1)),c.push(r.getX(u+2))):(c.push(r.getX(u+2)),c.push(r.getX(u+1)),c.push(r.getX(u)));c.length/3!==l&&console.error("glTF: Unable to generate correct amount of triangles.");var f=t.clone();return f.setIndex(c),this.disposeSet.add(f),f},n}();function getNormalizedComponentScale(n){switch(n){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("glTF: Unsupported normalized accessor component type.")}}var BaseExtension=function(){function n(){}return n.prototype.markDefs=function(t){},n.prototype.prepare=function(t){},n.prototype.emitResult=function(t,e){},n.prototype.createPrimitiveKey=function(t,e){},n.prototype.extendTexture=function(t,e,r){return null},n.prototype.loadBuffer=function(t,e){return null},n.prototype.loadBufferView=function(t,e){return null},n.prototype.loadImage=function(t,e){return null},n.prototype.loadTexture=function(t,e){return null},n.prototype.loadGeometry=function(t,e){return null},n.prototype.loadMaterial=function(t,e){return null},n.prototype.extendMaterial=function(t,e,r){return Promise.resolve()},n.prototype.loadMesh=function(t,e){return null},n.prototype.loadNodeAttachments=function(t,e){return null},n.prototype.loadCamera=function(t,e){return null},n.prototype.loadAnimation=function(t,e){return null},n}(),KHR_binary_glTF=function(n){__extends(t,n);function t(){var e=n.call(this)||this;return e.header={magic:"",version:0,length:0},e.content="",e.body=null,e}return t.getMagic=function(e){return decodeText(new Uint8Array(e.slice(0,4)))},t.prototype.loadGlbBinary=function(e){var r=new DataView(e,0,t.HEADER_LENGTH);if(this.header={magic:t.getMagic(e),version:r.getUint32(4,!0),length:r.getUint32(8,!0)},this.header.magic!==t.HEADER_MAGIC)throw new Error("glTF:KHR_binary_glTF: Unsupported.");if(this.header.version<2)throw new Error("glTF:KHR_binary_glTF: Legacy binary file detected.");for(var o=new DataView(e,t.HEADER_LENGTH),s=0,u=null,l=null;s<o.byteLength;){var c=o.getUint32(s,!0);if(s+=4,c!==0){var f=o.getUint32(s,!0);if(s+=4,f===t.CHUNK_TYPES.JSON){var d=new Uint8Array(e,t.HEADER_LENGTH+s,c);u=decodeText(d)}else if(f===t.CHUNK_TYPES.BIN){var p=t.HEADER_LENGTH+s;l=e.slice(p,p+c)}s+=c}}if(u===null)throw new Error("glTF:KHR_binary_glTF: JSON content not found.");this.content=u,this.body=l},t.prototype.loadBuffer=function(e,r){var o=r.json.buffers[e];return o.uri===void 0&&e===0&&this.body?Promise.resolve(this.body):null},t.prototype.clear=function(){this.body=null,this.content=""},t.HEADER_MAGIC="glTF",t.HEADER_LENGTH=12,t.CHUNK_TYPES={JSON:1313821514,BIN:5130562},t}(BaseExtension),defaultDecoderPath="https://vr-public.realsee-cdn.cn/release/static/image/release/five/resource/draco/1.5.6/",defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"},Draco=function(){function n(){this.decoderPath=defaultDecoderPath,this.decoderConfig={},this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL=""}return n.prototype.setDecoderPath=function(t){this.decoderPath=t},n.prototype.setDecoderConfig=function(t){return this.decoderConfig=t,this},n.prototype.setWorkerLimit=function(t){return this.workerLimit=t,this},n.prototype.decodeDracoFile=function(t,e,r,o){var s={attributeIDs:r||defaultAttributeIDs,attributeTypes:o||defaultAttributeTypes,useUniqueIDs:!!r};this.decodeGeometry(t,s).then(e)},n.prototype.decodeGeometry=function(t,e){var r=this;e===void 0&&(e={attributeIDs:defaultAttributeIDs,attributeTypes:defaultAttributeTypes,useUniqueIDs:!1});for(var o in e.attributeTypes){var s=e.attributeTypes[o];s.BYTES_PER_ELEMENT!==void 0&&(e.attributeTypes[o]=s.name)}var u,l=this.workerNextTaskID++,c=t.byteLength,f=this._getWorker(l,c).then(function(d){return u=d,new Promise(function(p,v){u._callbacks[l]={resolve:p,reject:v},u.postMessage({type:"decode",id:l,taskConfig:e,buffer:t},[t])})}).then(function(d){return r._createGeometry(d.geometry)});return f.catch(function(){return!0}).then(function(){u&&l&&r._releaseTask(u,l)}),f},n.prototype._createGeometry=function(t){var e=new THREE__namespace.BufferGeometry;t.index&&e.setIndex(new THREE__namespace.BufferAttribute(t.index.array,1));for(var r=0;r<t.attributes.length;r++){var o=t.attributes[r],s=o.name,u=o.array,l=o.itemSize,c=!(u instanceof Float32Array||u instanceof Float64Array);e.setAttribute(s,new THREE__namespace.BufferAttribute(u,l,c))}return e},n.prototype._initDecoder=function(){var t=this;if(this.decoderPending)return this.decoderPending;var e=typeof WebAssembly!="object"||this.decoderConfig.type==="js";if(e){var r=ajax(this.decoderPath+"draco_decoder.js",{responseType:"text"}).then(function(s){return s.body});this.decoderPending=r.then(function(s){var u=["/* draco decoder */",s,"","/* worker */",DRACOWorker].join(`
|
|
417
|
+
`,cacheMaterials=[],cameraPX=new THREE__namespace.PerspectiveCamera(90,1,.1,2);cameraPX.up.set(0,-1,0);cameraPX.lookAt(new THREE__namespace.Vector3(1,0,0));cameraPX.updateMatrix();cameraPX.matrixAutoUpdate=!1;var cameraNX=new THREE__namespace.PerspectiveCamera(90,1,.1,2);cameraNX.up.set(0,-1,0);cameraNX.lookAt(new THREE__namespace.Vector3(-1,0,0));cameraNX.updateMatrix();cameraNX.matrixAutoUpdate=!1;var cameraPY=new THREE__namespace.PerspectiveCamera(90,1,.1,2);cameraPY.up.set(0,0,1);cameraPY.lookAt(new THREE__namespace.Vector3(0,1,0));cameraPY.updateMatrix();cameraPY.matrixAutoUpdate=!1;var cameraNY=new THREE__namespace.PerspectiveCamera(90,1,.1,2);cameraNY.up.set(0,0,-1);cameraNY.lookAt(new THREE__namespace.Vector3(0,-1,0));cameraNY.updateMatrix();cameraNY.matrixAutoUpdate=!1;var cameraPZ=new THREE__namespace.PerspectiveCamera(90,1,.1,2);cameraPZ.up.set(0,-1,0);cameraPZ.lookAt(new THREE__namespace.Vector3(0,0,1));cameraPZ.updateMatrix();cameraPZ.matrixAutoUpdate=!1;var cameraNZ=new THREE__namespace.PerspectiveCamera(90,1,.1,2);cameraNZ.up.set(0,-1,0);cameraNZ.lookAt(new THREE__namespace.Vector3(0,0,-1));cameraNZ.updateMatrix();cameraNZ.matrixAutoUpdate=!1;var FACES={front:{camera:cameraPZ,index:4},back:{camera:cameraNZ,index:5},up:{camera:cameraPY,index:2},down:{camera:cameraNY,index:3},left:{camera:cameraNX,index:1},right:{camera:cameraPX,index:0}};function getMaterial(){var n=cacheMaterials.pop();return n||new THREE__namespace.ShaderMaterial({uniforms:{map:{value:null},flipY:{value:0}},vertexShader:PLANE_VERTEX_SHADER,fragmentShader:PLANE_FRAGMENT_SHADER,depthTest:!1,depthWrite:!1,stencilWrite:!1,blending:THREE__namespace.NoBlending,lights:!1,toneMapped:!1,fog:!1})}function releaseMaterial(n){n.uniforms.map.value=null,cacheMaterials.push(n)}function renderTexturesToCubeRenderTarget(n,t,e){var r=new THREE__namespace.Scene;r.matrixAutoUpdate=!1;var o=new THREE__namespace.Group;o.scale.set(1,1,-1),r.add(o);for(var s=[],u=new Set,l=0,c=n;l<c.length;l++){var f=c[l];u.add(f.face);var d=getMaterial();s.push(d),d.uniforms.map.value=f.texture,d.uniforms.flipY.value=f.flipY?1:0;var p=new THREE__namespace.Group,v=new THREE__namespace.Mesh(PLAME_GEOMETRY,d);v.position.set(f.position.x+f.size.x/2-.5,1-(f.position.y+f.size.y/2)-.5,-.5),v.scale.set(f.size.x,f.size.y,1),p.quaternion.copy(QUATERNION[f.face]),p.add(v),o.add(p)}var A=e.autoClear,g=e.sortObjects,h=e.xr.enabled,y=t.texture.generateMipmaps;e.autoClear=!1,e.sortObjects=!1,e.xr.enabled=!1,t.texture.generateMipmaps=!1;var m=e.getRenderTarget(),E=0;u.forEach(function(_){++E===u.size&&(t.texture.generateMipmaps=y),e.setRenderTarget(t,FACES[_].index),e.render(r,FACES[_].camera)}),e.setRenderTarget(m),e.autoClear=A,e.sortObjects=g,e.xr.enabled=h;for(var b=0,T=s;b<T.length;b++){var d=T[b];releaseMaterial(d)}}var canUseNativeImageBitmap=function(){return!1}();function createImageBitmapLikeImage(n){n===void 0&&(n={});var t=Object.assign(document.createElementNS("http://www.w3.org/1999/xhtml","img"),{crossOrigin:"",close:function(){n.onClose&&n.onClose.call(this),this.onerror=this.onload=this.close=noop$1,this.removeAttribute("src")}});return t}function createImageBitmapLike(n){return new Promise(function(t,e){var r=URL.createObjectURL(n),o=createImageBitmapLikeImage({onClose:function(){this.src===r&&URL.revokeObjectURL(r)}});o.onload=function(){o.src===r&&URL.revokeObjectURL(r),o.onload=o.onerror=noop$1,setTimeout(function(){t(o)},10)},o.onerror=function(){var s=o.src;o.onload=o.onerror=noop$1,o.close(),e(new Error("image load error: ".concat(s)))},o.decoding="async",o.src=r})}var canvasPool=[];function createCanvas(n,t){var e=canvasPool.shift();if(e)return e.width=n,e.height=t,e;var r=Object.assign(document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),{close:function(){r.close=noop$1,canvasPool.push(r)}});return r}function poolImageToTexture(n,t){if(t&&(n.width>t.width||n.height>t.height)){var e=createCanvas(Math.min(n.width,t.width),Math.min(n.height,t.height)),r=e.getContext("2d");r.clearRect(0,0,e.width,e.height),r.drawImage(n,0,0,e.width,e.height),n.close();var o=new THREE__namespace.Texture(e);o.needsUpdate=!0,o.flipY=!0;var s=o.dispose;return o.dispose=function(){e.close(),s.call(o),o.dispose=s},o}else{var u=new THREE__namespace.Texture(n);u.needsUpdate=!0,typeof ImageBitmap!="undefined"&&n instanceof ImageBitmap?u.flipY=!1:u.flipY=!0;var l=u.dispose;return u.dispose=function(){n.close(),l.call(u),u.dispose=l},u}}function poolImagesToCubeTexture(n){var t=new THREE__namespace.CubeTexture(n);t.needsUpdate=!0,t.flipY=!1;var e=t.dispose;return t.dispose=function(){for(var r=0,o=n;r<o.length;r++){var s=o[r];s.close()}e.call(t),t.dispose=e},t}var sharedSortVector3$1=new THREE__namespace.Vector3,FACE_ORDER=["right","left","up","down","front","back"],TileCubeTextureTarget=function(){function n(t,e,r,o,s){var u,l,c;this.tileTree=e,this.tileSources=r,this.options=o,this.renderer=s,this.name="",this.needsRender=!1,this.baseLevel=0,this.maxRequest=n.DEFAULT_MAX_REQUEST,this.disposed=!1,this.loadedCubeNodes=new Set,this.loadingCubeNodes=new Set,this.drawedCubeNodes=new Set,this.baseCubeTexture=null,this._cubeRenderTarget=null,this.prepareToRender=[],this.baseCubeTexture=t;var f=(u=this.baseCubeTexture.images)!==null&&u!==void 0?u:[],d=Array.isArray(f)&&f[0]&&f[0].width||((c=(l=o.imageURL)===null||l===void 0?void 0:l.options)===null||c===void 0?void 0:c.size);typeof d!="number"&&(d=2048),this.baseLevel=Math.floor(d/512)-1}return Object.defineProperty(n.prototype,"cubeRenderTarget",{get:function(){return this._cubeRenderTarget},set:function(t){var e,r,o,s,u,l;if(t===null)throw new Error("cannot set cubeRenderTarget to null.");t.width!==this.options.textureSize&&t.setSize(this.options.textureSize,this.options.textureSize),t.texture.format=(e=this.options.format)!==null&&e!==void 0?e:THREE__namespace.RGBAFormat,t.texture.minFilter=(r=this.options.minFilter)!==null&&r!==void 0?r:THREE__namespace.LinearFilter,t.texture.magFilter=(o=this.options.magFilter)!==null&&o!==void 0?o:THREE__namespace.LinearFilter,t.texture.wrapS=(s=this.options.wrapS)!==null&&s!==void 0?s:THREE__namespace.ClampToEdgeWrapping,t.texture.wrapT=(u=this.options.wrapT)!==null&&u!==void 0?u:THREE__namespace.ClampToEdgeWrapping,t.texture.generateMipmaps=(l=this.options.generateMipmaps)!==null&&l!==void 0?l:!0,this.baseCubeTexture&&(renderCubeTextureToCubeRenderTarget(this.baseCubeTexture,t,this.renderer),this.baseCubeTexture.dispose(),this.baseCubeTexture=null),this._cubeRenderTarget&&renderCubeTextureToCubeRenderTarget(this._cubeRenderTarget.texture,t,this.renderer),this._cubeRenderTarget=t},enumerable:!1,configurable:!0}),n.prototype.requestTile=function(t){var e=this,r,o,s,u,l,c,f=this.tileSources.filter(function(h){return h.level===t.level})[0];if(this.baseLevel>=t.level||!f)return this.loadedCubeNodes.add(t),this.prepareToRender.push({node:t,texture:null}),!1;var d=f.size,p=Math.pow(2,t.level)*t.position.y,v=Math.pow(2,t.level)*t.position.x,A="".concat(((s=(o=(r=this.options.imageURL)===null||r===void 0?void 0:r.options)===null||o===void 0?void 0:o.key)!==null&&s!==void 0?s:"pano.0").replace(/^pano/,"pano_tile"),".").concat(t.face,".").concat(t.level,".").concat(p,".").concat(v),g=__assign(__assign({},pick((l=(u=this.options.imageURL)===null||u===void 0?void 0:u.options)!==null&&l!==void 0?l:{key:"unknown"},["format","sharpen","mappings"])),{key:A,size:f.scale>=1?void 0:d*t.size*f.scale,cut:t.size===1?void 0:[d*t.position.x,d*t.position.y,d*t.size,d*t.size]});return t.size===1&&console.warn("tile: ".concat(g.key," should not appear.")),t.level===1&&f.scale>=.5&&(g.format==="jpg"||/\.jpg$/.test(f[t.face]))&&(g.size=void 0,g.quality||(g.quality=70)),this.loadingCubeNodes.add(t),this.options.textureLoader.loadTexture(f[t.face],{imageURL:{transform:(c=this.options.imageURL)===null||c===void 0?void 0:c.transform,options:__assign({},g)},format:THREE__namespace.RGBAFormat,timeout:this.options.timeout,magFilter:this.options.magFilter,minFilter:this.options.minFilter,fetcher:this.options.fetcher}).then(function(h){if(e.disposed){h.body.dispose();return}e.prepareToRender.push({node:t,texture:h.body}),e.loadedCubeNodes.add(t)}).catch(noop$1).then(function(){e.disposed||e.loadingCubeNodes.delete(t)}),!0},n.prototype.update=function(t,e){var r=this;if(!this.disposed){var o=t.planes[5].normal,s=Math.max(this.maxRequest-this.loadingCubeNodes.size,0),u=[];traverseTileCubeNode(this.tileTree,function(m){if(m.level>e||!t.intersectsBox(m.box))return!1;!r.loadedCubeNodes.has(m)&&!r.loadingCubeNodes.has(m)&&u.push(m)}),u.sort(function(m,E){return m.level!==E.level?m.level-E.level:m.box.getCenter(sharedSortVector3$1).angleTo(o)-E.box.getCenter(sharedSortVector3$1).angleTo(o)});for(var l=0,c=u;l<c.length;l++){var f=c[l];if(s<=0)break;var d=this.requestTile(f);d&&s--}if(this.cubeRenderTarget&&this.prepareToRender.length){this.prepareToRender.sort(function(m,E){return m.node.level-E.node.level});for(var p=[],v=0;v<this.prepareToRender.length;v++){var A=this.prepareToRender[v],f=A.node,g=A.texture;(f.parent===null||this.drawedCubeNodes.has(f.parent))&&(this.drawedCubeNodes.add(f),g&&p.push({face:f.face,position:f.position,size:new THREE__namespace.Vector2(f.size,f.size),texture:g,flipY:!g.flipY}),this.prepareToRender.splice(v,1),v--)}if(p.length){renderTexturesToCubeRenderTarget(p,this.cubeRenderTarget,this.renderer);for(var h=0,y=p;h<y.length;h++){var g=y[h];g.texture.dispose()}this.needsRender=!0}}}},Object.defineProperty(n.prototype,"tilePending",{get:function(){return this.loadingCubeNodes.size},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"texture",{get:function(){if(!this._cubeRenderTarget)throw new Error("cubeRenderTarget never set.");return this._cubeRenderTarget.texture},enumerable:!1,configurable:!0}),n.prototype.dispose=function(){if(!this.disposed){this.disposed=!0,this.baseCubeTexture&&(this.baseCubeTexture.dispose(),this.baseCubeTexture=null),this.loadingCubeNodes.clear(),this.loadedCubeNodes.clear();for(var t=0,e=this.prepareToRender;t<e.length;t++){var r=e[t];r.texture&&r.texture.dispose()}this.prepareToRender.length=0}},n.DEFAULT_MAX_REQUEST=3,n}(),TextureLoader=function(){function n(){}return n.prototype.loadTexture=function(t,e,r,o,s,u){var l,c,f,d,p,v,A;r===void 0&&(r=noop$1),o===void 0&&(o=noop$1),s===void 0&&(s=noop$1);var g={};typeof e.flipY!="undefined"&&(g.flipY=e.flipY),typeof e.format!="undefined"&&(g.format=e.format),typeof e.encoding!="undefined"&&(g.encoding=e.encoding),g.generateMipmaps=(l=e.generateMipmaps)!==null&&l!==void 0?l:!1,g.minFilter=(c=e.minFilter)!==null&&c!==void 0?c:THREE__namespace.LinearFilter,g.magFilter=(f=e.magFilter)!==null&&f!==void 0?f:THREE__namespace.LinearFilter;var h=(p=(d=e.imageURL)===null||d===void 0?void 0:d.options)!==null&&p!==void 0?p:{key:"unknown"};t=applyImageURLOptions(t,(v=e.imageURL)===null||v===void 0?void 0:v.transform,h);var y=getProtocol(t),m=(A=e.viaAjax)!==null&&A!==void 0?A:canUseNativeImageBitmap,E=isJsonpSource(t),b=/^https?:/.test(y);if(E?m=!0:b||(m=!1),m){var T=null,_="blob";return e.fetcher.ajax(t,{timeout:e.timeout,responseType:_},void 0,void 0,s).then(function(C){return createImageBitmapLike(C.body)}).then(function(C){return poolImageToTexture(C,e.maxSize)}).then(function(C){return Object.assign(C,g),C}).then(function(C){var B={meta:T,body:C};return r(B),B}).catch(function(C){return o(C),Promise.reject(C)})}else{var R=null,S;return Promise.resolve().then(function(){return createImageBitmapLikeImage()}).then(function(C){return S=C,e.fetcher.loadImage(t,{timeout:e.timeout},void 0,void 0,s,C)}).then(function(C){return R=C.meta,poolImageToTexture(C.body,e.maxSize)}).then(function(C){return Object.assign(C,g),C}).then(function(C){var B={meta:R,body:C};return r(B),B}).catch(function(C){return S&&S.close(),o(C),Promise.reject(C)})}},n.prototype.loadCubeTexture=function(t,e,r,o,s,u){var l,c,f,d,p,v,A;r===void 0&&(r=noop$1),o===void 0&&(o=noop$1),s===void 0&&(s=noop$1);var g={};typeof e.format!="undefined"&&(g.format=e.format),g.generateMipmaps=(l=e.generateMipmaps)!==null&&l!==void 0?l:!1,g.minFilter=(c=e.minFilter)!==null&&c!==void 0?c:THREE__namespace.LinearFilter,g.magFilter=(f=e.magFilter)!==null&&f!==void 0?f:THREE__namespace.LinearFilter;for(var h=[t[FACE_ORDER[0]],t[FACE_ORDER[1]],t[FACE_ORDER[2]],t[FACE_ORDER[3]],t[FACE_ORDER[4]],t[FACE_ORDER[5]]],y=[],m=[0,0,0,0,0,0],E=[],b=function(_){var R=(p=(d=e.imageURL)===null||d===void 0?void 0:d.options)!==null&&p!==void 0?p:{key:"unknown"},S=applyImageURLOptions(h[_],(v=e.imageURL)===null||v===void 0?void 0:v.transform,__assign(__assign({},R),{key:R.key+"."+FACE_ORDER[_]})),C=getProtocol(S),B=function(N){m[_]=N,s(m.reduce(function(k,U){return k+U},0)/6)},L=(A=e.viaAjax)!==null&&A!==void 0?A:!1,M=/^https?:$/.test(C),w=isJsonpSource(S);if(w?L=!0:M||(L=!1),L){var H="blob",O=e.fetcher.ajax(S,{timeout:e.timeout,responseType:H},void 0,void 0,B).then(function(N){return E[_]=N.meta,createImageBitmapLike(N.body)});y.push(O)}else{var I,O=Promise.resolve().then(function(){return createImageBitmapLikeImage()}).then(function(k){return I=k,e.fetcher.loadImage(S,{timeout:e.timeout},void 0,void 0,B,k)}).then(function(k){return E[_]=k.meta,k.body}).catch(function(k){return I&&I.close(),Promise.reject(k)});y.push(O)}},T=0;T<6;T++)b(T);return Promise.all(y).then(function(_){return poolImagesToCubeTexture(_)}).then(function(_){return Object.assign(_,__assign({encoding:THREE__namespace.sRGBEncoding},g)),_}).then(function(_){var R={body:_,meta:E};return r(R),R}).catch(function(_){for(var R=0,S=y;R<S.length;R++){var C=S[R];C.then(function(B){return B.close()}).catch(noop$1)}return o(_),Promise.reject(_)})},n.prototype.loadTiledCubeTexture=function(t,e,r,o,s,u,l){var c=this;return o===void 0&&(o=noop$1),s===void 0&&(s=noop$1),u===void 0&&(u=noop$1),new Promise(function(f,d){var p,v;c.loadCubeTexture(t,{imageURL:{transform:(p=r.imageURL)===null||p===void 0?void 0:p.transform,options:(v=r.imageURL)===null||v===void 0?void 0:v.options},format:THREE__namespace.RGBAFormat,viaAjax:r.viaAjax,timeout:r.timeout,fetcher:r.fetcher,magFilter:r.magFilter,minFilter:r.minFilter,generateMipmaps:r.generateMipmaps},function(A){var g,h=A.meta,y=A.body,m=(g=r.tileMaxLevel)!==null&&g!==void 0?g:2,E=Math.max(1024*m,512),b=createTileCubeTree(m),T=new TileCubeTextureTarget(y,b,e,{textureSize:E,textureLoader:c,imageURL:r.imageURL,magFilter:r.magFilter,minFilter:r.minFilter,generateMipmaps:r.generateMipmaps,timeout:r.timeout,fetcher:r.fetcher},l),_={meta:h,body:T};o(_),f(_)},function(A){s(A),d(A)},u,l).catch(noop$1)})},n}();const meshNoneVertexShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("n\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{H0v{pyqr-Ip|zz|{K0v{pyqr-Iz|}untrl}nlrr\x07K0v{pyqr-Ixv{{v{tl}nlrr\x07K0v{pyqr-Iy|tqr}uosl}nlrr\x07K0v{pyqr-Ipyv}}v{tl}yn{rl}nlrr\x07KZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--0v{pyqr-Ixv{onrlrr\x07K--0v{pyqr-Iortv{lrr\x07K--0v{pyqr-Iz|}untrlrr\x07K--0v{pyqr-Ixv{{v{tlrr\x07K--0v{pyqr-I}|wrplrr\x07K--0v{pyqr-Iy|tqr}uoslrr\x07K--0v{pyqr-Ipyv}}v{tl}yn{rlrr\x07K--Sv{ny]|vv|{-J-rpA5n{s|zrq9->;=6H--0vsqrs-b`RlV[`aN[PV[T----Sv{ny]|vv|{-J-v{n{prZnv\x07-7-Sv{ny]|vv|{H--0r{qvs--Sv{ny]|vv|{-J-z|qryZnv\x07-7-Sv{ny]|vv|{H--zn@-pnzrn_|nv|{Znv\x07-J-zn@5vrZnv\x07h=jh=j9-vrZnv\x07h>jh=j9-vrZnv\x07h?jh=j9-vrZnv\x07h=jh>j9-vrZnv\x07h>jh>j9-vrZnv\x07h?jh>j9-vrZnv\x07h=jh?j9-vrZnv\x07h>jh?j9-vrZnv\x07h?jh?j6H--PnzrnQvrpv|{-J-{|znyv r5pnzrn_|nv|{Znv\x07-7-rp@5=;=9-=;=9-:>;=66H--0v{pyqr-I|yq}|lrr\x07K--0v{pyqr-Is|tlrr\x07K--ZNV[lR[Q\f"),meshNoneFragmentShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=EC9-=;>=C9-=;>AF9->;=6{vs|z-nz}yrPor-}n{|=lzn}H{vs|z-znA-}n{|=lznv\x07H{vs|z-sy|n-}n{|=l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|=lyzv{n{prZn}H0r{qvs{vs|z-nz}yrPor-}n{|>lzn}H{vs|z-znA-}n{|>lznv\x07H{vs|z-sy|n-}n{|>l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|>lyzv{n{prZn}H0r{qvs{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trHn\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{H{vs|z-sy|n-u|{Sy||V{qr\x07H{vs|z-rp?-r|yv|{H{vs|z-sy|n-}v\x07ry_nv|H0vs{qrs-SYNal`UNQRQ--n\bv{t-rp@-[|znyH0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-Iqvurv{tl}nlsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-I}rpynzn}l}nlsntzr{K0v{pyqr-Iy|tqr}uosl}nlsntzr{K0v{pyqr-Ipyv}}v{tl}yn{rl}nlsntzr{Krp@- ||zcrp|5rp@-qvrpv|{9-rp@-rp|9-sy|n- ||z6-\n--sy|n-urn-J-q|5qvrpv|{9-rp|6H--rp@-q-J-qvrpv|{-7-urnH--rp@-}-J-rp|-:-qH--rp@-\0-J-}-7- ||zH--r{-{|znyv r5q-8-\x006H\fZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--0v{pyqr-Ipyv}}v{tl}yn{rlsntzr{K--<<-JJJ-全景图-JJJ--rp@-}n{|=a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|=lznv\x07h@j;\x07\b 6H--}n{|=a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|=a|crr\x079-}n{|=l ||z6H--}n{|=a|crr\x07-J-}n{|=a|crr\x07-7-zn@5}n{|=lznv\x076H--rp@-}n{|>a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|>lznv\x07h@j;\x07\b 6H--}n{|>a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|>a|crr\x079-}n{|>l ||z6H--}n{|>a|crr\x07-J-}n{|>a|crr\x07-7-zn@5}n{|>lznv\x076H--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-r\x07rPor5}n{|=lzn}9-}n{|=a|crr\x076H--rpA-}n{|>P|y|-J-r\x07rPor5}n{|>lzn}9-}n{|>a|crr\x076H--0vs-qrsv{rq5b`RlYbZV[N[PR6----}n{|=P|y|;n-J->;=-:-r\x07rPor5}n{|=lyzv{n{prZn}9-}n{|=a|crr\x076;H----}n{|>P|y|;n-J->;=-:-r\x07rPor5}n{|>lyzv{n{prZn}9-}n{|>a|crr\x076;H--0r{qvs--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv\x075}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv\x075}n{|P|y|9-}n{|>P|y|9-zn\x075=;=9-oynpx]|tr-:-]V-8->;=66H--0ryvs-qrsv{rq5b`Rl`]_RNQla_N[`VaV\\[6----rp?-prr{Pr{rP||q-J-r|yv|{-7-}v\x07ry_nv|-<-?;=H----sy|n-n{vv|{_nqv-J-qvn{pr5rp?5=;=9-=;=69-prr{Pr{rP||q6-7->;?H----sy|n-n{vv|{]|tr-J--qvn{pr5tylSntP||q;\x07\b9-prr{Pr{rP||q6-<-n{vv|{_nqvH----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-z||ur}5=;=9-=;?9-}|tr-:-n{vv|{]|tr66H--0ryr----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-}|tr6H--0r{qvs--tylSntP|y|-J-zv\x075}n{|P|y|9-rpA5}n{|P|y|;to9-=;=69-pynz}5z|qryNy}un-7-@=;=9-=;=9->;=66H--<<-JJJJJJJJJJJJJJJJ--ZNV[lZ\\QRYlP\\Y\\_--0v{pyqr-Is|tlsntzr{K--0v{pyqr-I}rzyv}yvrqlny}unlsntzr{K--0v{pyqr-Iqvurv{tlsntzr{K--ZNV[lR[Q\f"),meshBasicVertexShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("0qrsv{r-ZN_Xl`aR]->;=0qrsv{r-_\\\\SlZN_X->;=0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvs0vs-qrsv{rq5b`RlcR_aRelZN_X6--nvor-sy|n-lsrnrlvqlznxH0r{qvsn\bv{t-sy|n-_||sZnxHn\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-rp@-cvr]|vv|{H0vs{qrs-SYNal`UNQRQ--n\bv{t-rp@-[|znyH--0vsqrs-b`RlaN[TR[a----n\bv{t-rp@-an{tr{H----n\bv{t-rp@-Ovn{tr{H--0r{qvs0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-Il}nlrr\x07K0v{pyqr-I?l}nlrr\x07K0v{pyqr-Ir{zn}l}nlrr\x07K0v{pyqr-Ip|y|l}nlrr\x07K0v{pyqr-Is|tl}nlrr\x07K0v{pyqr-Iz|}untrl}nlrr\x07K0v{pyqr-Ixv{{v{tl}nlrr\x07K0v{pyqr-Iy|tqr}uosl}nlrr\x07K0v{pyqr-Ipyv}}v{tl}yn{rl}nlrr\x07KZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--0v{pyqr-Ilrr\x07K--0v{pyqr-I?lrr\x07K--0v{pyqr-Ip|y|lrr\x07K--0v{pyqr-Ixv{onrlrr\x07K--0v{pyqr-Iortv{{|znylrr\x07K--0v{pyqr-Iz|}u{|znylrr\x07K--0v{pyqr-Ixv{{|znylrr\x07K--0v{pyqr-Iqrsny{|znylrr\x07K--0vs{qrs-SYNal`UNQRQ-<<-[|zny-p|z}rq-vu-qrvnvr-ur{-SYNal`UNQRQ--[|zny-J-{|znyv r5-n{s|zrq[|zny-6H--0r{qvs--0v{pyqr-Iortv{lrr\x07K--0v{pyqr-Iz|}untrlrr\x07K--0v{pyqr-Ixv{{v{tlrr\x07K--0v{pyqr-I}|wrplrr\x07K--0v{pyqr-Iy|tqr}uoslrr\x07K--0v{pyqr-Ipyv}}v{tl}yn{rlrr\x07K--cvr]|vv|{-J-:z]|vv|{;\x07\b H--Sv{ny]|vv|{-J-rpA5n{s|zrq9->;=6H--0vsqrs-b`RlV[`aN[PV[T----Sv{ny]|vv|{-J-v{n{prZnv\x07-7-Sv{ny]|vv|{H--0r{qvs--Sv{ny]|vv|{-J-z|qryZnv\x07-7-Sv{ny]|vv|{H--zn@-pnzrn_|nv|{Znv\x07-J-zn@5vrZnv\x07h=jh=j9-vrZnv\x07h>jh=j9-vrZnv\x07h?jh=j9-vrZnv\x07h=jh>j9-vrZnv\x07h>jh>j9-vrZnv\x07h?jh>j9-vrZnv\x07h=jh?j9-vrZnv\x07h>jh?j9-vrZnv\x07h?jh?j6H--PnzrnQvrpv|{-J-{|znyv r5pnzrn_|nv|{Znv\x07-7-rp@5=;=9-=;=9-:>;=66H--0vs-qrsv{rq5b`RlRQY6----Y|tQr}u-J-y|t?5:z]|vv|{; 6H--0r{qvs--_||sZnx-J-=;=H--0vs-qrsv{rq5b`RlcR_aRelZN_X6----_||sZnx-J-z||ur}5_\\\\SlZN_X-:-ZN_Xl`aR]9-_\\\\SlZN_X9-lsrnrlvqlznx6H--0r{qvs--0v{pyqr-I|yq}|lrr\x07K--0v{pyqr-Ir{zn}lrr\x07K--0v{pyqr-Is|tlrr\x07K--ZNV[lR[Q\f"),meshBasicFragmentShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=EC9-=;>=C9-=;>AF9->;=6{vs|z-sy|n-sy||V{qr\x07H{vs|z-nz}yrPor-}n{|=lzn}H{vs|z-znA-}n{|=lznv\x07H{vs|z-sy|n-}n{|=l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|=lyzv{n{prZn}H0r{qvs{vs|z-nz}yrPor-}n{|>lzn}H{vs|z-znA-}n{|>lznv\x07H{vs|z-sy|n-}n{|>l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|>lyzv{n{prZn}H0r{qvs{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trH0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6--{vs|z-rp@-p|{n{P|y|H0r{qvs0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6--{vs|z-nz}yr?Q-tnqvr{ar\x07rH0r{qvsp-Pyv}}r-\n--znA-znv\x07V{rrH--sy|n-sy||V{qr\x07H\fH0vs-[bZlPYV]]R_`-K-=--{vs|z-Pyv}}r-pyv}}rh[bZlPYV]]R_`jH0r{qvs0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvsn\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-rp@-cvr]|vv|{Hn\bv{t-sy|n-_||sZnxH{vs|z-sy|n-u|{Sy||V{qr\x07H{vs|z-rp?-r|yv|{H{vs|z-sy|n-}v\x07ry_nv|H{vs|z-rp@-qvssrH{vs|z-sy|n-p|y|Ny}unH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-ovtu{rH{vs|z-rp@-z|qryO|{qv{tZn\x07H{vs|z-rp@-z|qryO|{qv{tZv{H<<u调整{vs|z-sy|n-p|y|`nnv|{H{vs|z-sy|n-p|y|Ovtu{rH0vs{qrs-SYNal`UNQRQ--n\bv{t-rp@-[|znyH--0vsqrs-b`RlaN[TR[a----n\bv{t-rp@-an{tr{H----n\bv{t-rp@-Ovn{tr{H--0r{qvs0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-Iqvurv{tl}nlsntzr{K0v{pyqr-Ip|y|l}nlsntzr{K0v{pyqr-Il}nlsntzr{K0v{pyqr-I?l}nlsntzr{K0v{pyqr-Izn}l}nlsntzr{K0v{pyqr-Iny}unzn}l}nlsntzr{K0v{pyqr-In|zn}l}nlsntzr{K0v{pyqr-Iyvtuzn}l}nlsntzr{K0v{pyqr-Ir{zn}lp|zz|{l}nlsntzr{K0v{pyqr-Ir{zn}l}nlsntzr{K0v{pyqr-Iporllrsyrpv|{lsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-I}rpynzn}l}nlsntzr{K0v{pyqr-Iy|tqr}uosl}nlsntzr{K0v{pyqr-Ipyv}}v{tl}yn{rl}nlsntzr{Krp@- ||zcrp|5rp@-qvrpv|{9-rp@-rp|9-sy|n- ||z6-\n--sy|n-urn-J-q|5qvrpv|{9-rp|6H--rp@-q-J-qvrpv|{-7-urnH--rp@-}-J-rp|-:-qH--rp@-\0-J-}-7- ||zH--r{-{|znyv r5q-8-\x006H\frp@-to?u5rp@-p6-\n----rpA-X-J-rpA5=;=9-:>;=-<-@;=9-?;=-<-@;=9-:>;=6H----rpA-}-J-zv\x075rpA5p;ot9-X; 69-rpA5p;to9-X;\x07\b69-r}5p;o9-p;t66H----rpA-\0-J-zv\x075rpA5};\x07\b9-p;69-rpA5p;9-};\b \x0769-r}5};\x079-p;66H----sy|n-q-J-\0;\x07-:-zv{5\0;9-\0;\b6H----sy|n-r-J->;=r:>=H----r{-rp@5no5\0; -8-5\0;-:-\0;\b6-<-5C;=-7-q-8-r669-q-<-5\0;\x07-8-r69-\0;\x076H\frp@-u?to5rp@-p6-\n----rpA-X-J-rpA5>;=9-?;=-<-@;=9->;=-<-@;=9-@;=6H----rp@-}-J-no5snp5p;\x07\x07\x07-8-X;\x07\b 6-7-C;=-:-X;6H----r{-p; -7-zv\x075X;\x07\x07\x079-pynz}5}-:-X;\x07\x07\x079-=;=9->;=69-p;\b6H\frp@-trP|y|O\bUrvtu5nz}yr?Q-tnqvr{ar\x07r9-rpA-Sv{ny]|vv|{6-\n--sy|n--J-5Sv{ny]|vv|{;\b-:-z|qryO|{qv{tZv{;\b6-<-5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6H--r{-r\x07r?Q5tnqvr{ar\x07r9-rp?59-=;B66;toH\fZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--<<-JJJ-顶部裁切-JJJ--sy|n-||sP]|tr-J-}|5pynz}5:PnzrnQvrpv|{;\b9-=;=9->;=69-@;=6H--vs-5----_||sZnx-K-=;B-33----Sv{ny]|vv|{;\b-K-z|qryO|{qv{tZn\x07;\b-:-||sP]|tr-7-5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6--6-\n----qvpnqH--\f--<<-JJJJJJJJJJJJJJ--<<-JJJ-前置裁切计算-JJJ--0vs-[bZlPYV]]R_`-K-=----o||y-pyv}}rqH----rpA-pyv}}r]|vv|{H----0}ntzn-{|yyly||}ln----s|-5-v{-v-J-=H-v-I-[bZlPYV]]R_`H-v-88-6-\n------pyv}}r]|vv|{-J-pyv}}rh-v-j;znv\x07V{rr-7-Sv{ny]|vv|{H------pyv}}rq-J-5pyv}}rh-v-j;sy||V{qr\x07-I-=;=-\v\v-no5sy||V{qr\x07-:-pyv}}rh-v-j;sy||V{qr\x076-I->;=6H------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\x07-K-:=;B-33-pyv}}r]|vv|{;\x07-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\b-K-:=;B-33-pyv}}r]|vv|{;\b-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{; -K-:=;B-33-pyv}}r]|vv|{; -I-=;BH------vs-5pyv}}rq6-\n--------qvpnqH------\f----\f----0}ntzn-{|yyly||}lr{q--0r{qvs--<<-JJJJJJJJJJJJJJJJJJ--0v{pyqr-Ipyv}}v{tl}yn{rlsntzr{K--rpA-qvssrP|y|-J-rpA5-qvssr9-p|y|Ny}un-7-|}npv\b-6H--<<-JJJ-高度色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6----qvssrP|y|;to-J-trP|y|O\bUrvtu5tnqvr{ar\x07r9-Sv{ny]|vv|{6H--0r{qvs--<<-JJJJJJJJJJJ--<<-JJJ-纯色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6----qvssrP|y|;to-J-p|{n{P|y|H--0r{qvs--<<-JJJJJJJJJJJ--0v{pyqr-Iy|tqr}uoslsntzr{K--0v{pyqr-Izn}lsntzr{K--0v{pyqr-Ip|y|lsntzr{K--0v{pyqr-Iny}unzn}lsntzr{K--0v{pyqr-Iny}unrlsntzr{K--0v{pyqr-I}rpynzn}lsntzr{K--0v{pyqr-I{|znylsntzr{lortv{K--_rsyrprqYvtu-rsyrprqYvtu-J-_rsyrprqYvtu5-rp@5-=;=-69-rp@5-=;=-69-rp@5-=;=-69-rp@5-=;=-6-6H--<<-nppzynv|{-5onxrq-v{qvrp-yvtuv{t-|{y\b6--0vsqrs-b`RlYVTUaZN]----rpA-yvtuZn}ar\x07ryJ-r\x07r?Q5-yvtuZn}9-b?-6H----rsyrprqYvtu;v{qvrpQvssr-8J-yvtuZn}ar\x07rya|Yv{rn5-yvtuZn}ar\x07ry-6;to-7-yvtuZn}V{r{v\bH--0ryr----rsyrprqYvtu;v{qvrpQvssr-8J-rp@5->;=-6H--0r{qvs--<<-z|qynv|{--0v{pyqr-In|zn}lsntzr{K--rsyrprqYvtu;v{qvrpQvssr-7J-qvssrP|y|;toH--rp@-|t|v{tYvtu-J-rsyrprqYvtu;v{qvrpQvssrH--0v{pyqr-Ir{zn}lsntzr{K--tylSntP|y|-J-rpA5-|t|v{tYvtu9-qvssrP|y|;n-6H--<<-JJJ-楼层显示-JJJ--sy|n-sy||\\}npv\b-J->;=H--vs-5u|{Sy||V{qr\x07-K-:=;=>-33-no5sy||V{qr\x07-:-u|{Sy||V{qr\x076-K-=;FF6-\n----sy||\\}npv\b-J-=;?-7-zv{55>;=-8-PnzrnQvrpv|{;\b69->;=6H--\f--tylSntP|y|;n-J-tylSntP|y|;n-7-sy||\\}npv\b-7-ovtu{rH--<<-JJJJJJJJJJJJJJ--ZNV[lZ\\QRYlP\\Y\\_--<<色调映射-色彩空间转换--0v{pyqr-I|{rzn}}v{tlsntzr{K--0v{pyqr-Ir{p|qv{tlsntzr{K--<<-JJJ-颜色增益调整-JJJ--rp@-toP|y|-J-tylSntP|y|;toH--rp@-uP|y|-J-to?u5toP|y|6H--uP|y|;\b-8J-p|y|`nnv|{H--uP|y|; -8J-p|y|Ovtu{rH--tylSntP|y|;to-J-u?to5uP|y|6H--<<-JJJ-全景图-JJJ--rp@-}n{|=a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|=lznv\x07h@j;\x07\b 6H--}n{|=a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|=a|crr\x079-}n{|=l ||z6H--}n{|=a|crr\x07-J-}n{|=a|crr\x07-7-zn@5}n{|=lznv\x076H--rp@-}n{|>a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|>lznv\x07h@j;\x07\b 6H--}n{|>a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|>a|crr\x079-}n{|>l ||z6H--}n{|>a|crr\x07-J-}n{|>a|crr\x07-7-zn@5}n{|>lznv\x076H--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-r\x07rPor5}n{|=lzn}9-}n{|=a|crr\x076H--rpA-}n{|>P|y|-J-r\x07rPor5}n{|>lzn}9-}n{|>a|crr\x076H--0vs-qrsv{rq5b`RlYbZV[N[PR6----}n{|=P|y|;n-J->;=-:-r\x07rPor5}n{|=lyzv{n{prZn}9-}n{|=a|crr\x076;H----}n{|>P|y|;n-J->;=-:-r\x07rPor5}n{|>lyzv{n{prZn}9-}n{|>a|crr\x076;H--0r{qvs--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv\x075}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv\x075}n{|P|y|9-}n{|>P|y|9-zn\x075=;=9-oynpx]|tr-:-]V-8->;=66H--0ryvs-qrsv{rq5b`Rl`]_RNQla_N[`VaV\\[6----rp?-prr{Pr{rP||q-J-r|yv|{-7-}v\x07ry_nv|-<-?;=H----sy|n-n{vv|{_nqv-J-qvn{pr5rp?5=;=9-=;=69-prr{Pr{rP||q6-7->;?H----sy|n-n{vv|{]|tr-J-qvn{pr5tylSntP||q;\x07\b9-prr{Pr{rP||q6-<-n{vv|{_nqvH----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-z||ur}5=;=9-=;?9-}|tr-:-n{vv|{]|tr66H--0ryr----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-}|tr6H--0r{qvs--tylSntP|y|-J-zv\x075}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H--<<-JJJJJJJJJJJJJ--0v{pyqr-Is|tlsntzr{K--0v{pyqr-I}rzyv}yvrqlny}unlsntzr{K--0v{pyqr-Iqvurv{tlsntzr{K--0vs-qrsv{rq5b`RlRQY6----tylSntP|y|;n-J-Y|tQr}uH--0r{qvs--ZNV[lR[Q\f"),meshPhongVertexShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("0qrsv{r-]U\\[T0qrsv{r-ZN_Xl`aR]->;=0qrsv{r-_\\\\SlZN_X->;=0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvs0vs-qrsv{rq5b`RlcR_aRelZN_X6--nvor-sy|n-lsrnrlvqlznxH0r{qvsn\bv{t-sy|n-_||sZnxHn\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-rp@-cvr]|vv|{H0vs{qrs-SYNal`UNQRQ--n\bv{t-rp@-[|znyH--0vsqrs-b`RlaN[TR[a----n\bv{t-rp@-an{tr{H----n\bv{t-rp@-Ovn{tr{H--0r{qvs0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-Il}nlrr\x07K0v{pyqr-I?l}nlrr\x07K0v{pyqr-Iqv}ynprzr{zn}l}nlrr\x07K0v{pyqr-Ir{zn}l}nlrr\x07K0v{pyqr-Ip|y|l}nlrr\x07K0v{pyqr-Is|tl}nlrr\x07K0v{pyqr-Iz|}untrl}nlrr\x07K0v{pyqr-Ixv{{v{tl}nlrr\x07K0v{pyqr-Iunq|zn}l}nlrr\x07K0v{pyqr-Iy|tqr}uosl}nlrr\x07K0v{pyqr-Ipyv}}v{tl}yn{rl}nlrr\x07KZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--0v{pyqr-Ilrr\x07K--0v{pyqr-I?lrr\x07K--0v{pyqr-Ip|y|lrr\x07K--0v{pyqr-Iortv{{|znylrr\x07K--0v{pyqr-Iz|}u{|znylrr\x07K--0v{pyqr-Ixv{onrlrr\x07K--0v{pyqr-Ixv{{|znylrr\x07K--0v{pyqr-Iqrsny{|znylrr\x07K--0vs{qrs-SYNal`UNQRQ-<<-[|zny-p|z}rq-vu-qrvnvr-ur{-SYNal`UNQRQ----[|zny-J-{|znyv r5-n{s|zrq[|zny-6H----0vsqrs-b`RlaN[TR[a------an{tr{-J-{|znyv r5-n{s|zrqan{tr{-6H------Ovn{tr{-J-{|znyv r5-p|5-[|zny9-an{tr{-6-7-n{tr{;-6H----0r{qvs--0r{qvs--0v{pyqr-Iortv{lrr\x07K--0v{pyqr-Iz|}untrlrr\x07K--0v{pyqr-Ixv{{v{tlrr\x07K--0v{pyqr-Iqv}ynprzr{zn}lrr\x07K--0v{pyqr-I}|wrplrr\x07K--0v{pyqr-Iy|tqr}uoslrr\x07K--0v{pyqr-Ipyv}}v{tl}yn{rlrr\x07K--cvr]|vv|{-J-:-z]|vv|{;\x07\b H--Sv{ny]|vv|{-J-rpA5n{s|zrq9->;=6H--0vsqrs-b`RlV[`aN[PV[T----Sv{ny]|vv|{-J-v{n{prZnv\x07-7-Sv{ny]|vv|{H--0r{qvs--Sv{ny]|vv|{-J-z|qryZnv\x07-7-Sv{ny]|vv|{H--zn@-pnzrn_|nv|{Znv\x07-J-zn@5vrZnv\x07h=jh=j9-vrZnv\x07h>jh=j9-vrZnv\x07h?jh=j9-vrZnv\x07h=jh>j9-vrZnv\x07h>jh>j9-vrZnv\x07h?jh>j9-vrZnv\x07h=jh?j9-vrZnv\x07h>jh?j9-vrZnv\x07h?jh?j6H--PnzrnQvrpv|{-J-{|znyv r5pnzrn_|nv|{Znv\x07-7-rp@5=;=9-=;=9-:>;=66H--0vs-qrsv{rq5b`RlRQY6----Y|tQr}u-J-y|t?5:z]|vv|{; 6H--0r{qvs--_||sZnx-J-=;=H--0vs-qrsv{rq5b`RlcR_aRelZN_X6----_||sZnx-J-z||ur}5_\\\\SlZN_X-:-ZN_Xl`aR]9-_\\\\SlZN_X9-lsrnrlvqlznx6H--0r{qvs--0v{pyqr-I|yq}|lrr\x07K--0v{pyqr-Ir{zn}lrr\x07K--0v{pyqr-Iunq|zn}lrr\x07K--0v{pyqr-Is|tlrr\x07K--ZNV[lR[Q\f"),meshPhongFragmentShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("0qrsv{r-]U\\[T0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=EC9-=;>=C9-=;>AF9->;=6{vs|z-sy|n-sy||V{qr\x07H{vs|z-nz}yrPor-}n{|=lzn}H{vs|z-znA-}n{|=lznv\x07H{vs|z-sy|n-}n{|=l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|=lyzv{n{prZn}H0r{qvs{vs|z-nz}yrPor-}n{|>lzn}H{vs|z-znA-}n{|>lznv\x07H{vs|z-sy|n-}n{|>l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|>lyzv{n{prZn}H0r{qvs{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trH0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6--{vs|z-rp@-p|{n{P|y|H0r{qvs0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6--{vs|z-nz}yr?Q-tnqvr{ar\x07rH0r{qvsp-Pyv}}r-\n--znA-znv\x07V{rrH--sy|n-sy||V{qr\x07H\fH0vs-[bZlPYV]]R_`-K-=--{vs|z-Pyv}}r-pyv}}rh[bZlPYV]]R_`jH0r{qvs0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvsn\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-sy|n-_||sZnxH{vs|z-sy|n-u|{Sy||V{qr\x07H{vs|z-rp?-r|yv|{H{vs|z-sy|n-}v\x07ry_nv|H{vs|z-rp@-qvssrH{vs|z-sy|n-p|y|Ny}unH{vs|z-rp@-rzvvrH{vs|z-rp@-}rpynH{vs|z-sy|n-uv{v{rH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-ovtu{rH{vs|z-rp@-z|qryO|{qv{tZn\x07H{vs|z-rp@-z|qryO|{qv{tZv{H<<u调整{vs|z-sy|n-p|y|`nnv|{H{vs|z-sy|n-p|y|Ovtu{rH0vs{qrs-SYNal`UNQRQ--0vsqrs-b`RlaN[TR[a----n\bv{t-rp@-an{tr{H----n\bv{t-rp@-Ovn{tr{H--0r{qvs0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-I}npxv{tK0v{pyqr-Iqvurv{tl}nlsntzr{K0v{pyqr-Ip|y|l}nlsntzr{K0v{pyqr-Il}nlsntzr{K0v{pyqr-I?l}nlsntzr{K0v{pyqr-Izn}l}nlsntzr{K0v{pyqr-Iny}unzn}l}nlsntzr{K0v{pyqr-In|zn}l}nlsntzr{K0v{pyqr-Iyvtuzn}l}nlsntzr{K0v{pyqr-Irzvvrzn}l}nlsntzr{K0v{pyqr-IoqsK0v{pyqr-Iporllrsyrpv|{lsntzr{K0v{pyqr-Ir{zn}lp|zz|{l}nlsntzr{K0v{pyqr-Ir{zn}l}nlsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-Iyvtul}nlortv{K0v{pyqr-Iyvtul}u|{tl}nlsntzr{K0v{pyqr-Iunq|zn}l}nlsntzr{K0v{pyqr-Ioz}zn}l}nlsntzr{K0v{pyqr-I{|znyzn}l}nlsntzr{K0v{pyqr-I}rpynzn}l}nlsntzr{K0v{pyqr-Iy|tqr}uosl}nlsntzr{K0v{pyqr-Ipyv}}v{tl}yn{rl}nlsntzr{Krp@- ||zcrp|5rp@-qvrpv|{9-rp@-rp|9-sy|n- ||z6-\n--sy|n-urn-J-q|5qvrpv|{9-rp|6H--rp@-q-J-qvrpv|{-7-urnH--rp@-}-J-rp|-:-qH--rp@-\0-J-}-7- ||zH--r{-{|znyv r5q-8-\x006H\frp@-to?u5rp@-p6-\n----rpA-X-J-rpA5=;=9-:>;=-<-@;=9-?;=-<-@;=9-:>;=6H----rpA-}-J-zv\x075rpA5p;ot9-X; 69-rpA5p;to9-X;\x07\b69-r}5p;o9-p;t66H----rpA-\0-J-zv\x075rpA5};\x07\b9-p;69-rpA5p;9-};\b \x0769-r}5};\x079-p;66H----sy|n-q-J-\0;\x07-:-zv{5\0;9-\0;\b6H----sy|n-r-J->;=r:>=H----r{-rp@5no5\0; -8-5\0;-:-\0;\b6-<-5C;=-7-q-8-r669-q-<-5\0;\x07-8-r69-\0;\x076H\frp@-u?to5rp@-p6-\n----rpA-X-J-rpA5>;=9-?;=-<-@;=9->;=-<-@;=9-@;=6H----rp@-}-J-no5snp5p;\x07\x07\x07-8-X;\x07\b 6-7-C;=-:-X;6H----r{-p; -7-zv\x075X;\x07\x07\x079-pynz}5}-:-X;\x07\x07\x079-=;=9->;=69-p;\b6H\frp@-trP|y|O\bUrvtu5nz}yr?Q-tnqvr{ar\x07r9-rpA-Sv{ny]|vv|{6-\n--sy|n--J-5Sv{ny]|vv|{;\b-:-z|qryO|{qv{tZv{;\b6-<-5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6H--r{-r\x07r?Q5tnqvr{ar\x07r9-rp?59-=;B66;toH\fZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--<<-JJJ-顶部裁切-JJJ--sy|n-||sP]|tr-J-}|5pynz}5:PnzrnQvrpv|{;\b9-=;=9->;=69-@;=6H--vs-5----_||sZnx-K-=;B-33----Sv{ny]|vv|{;\b-K-z|qryO|{qv{tZn\x07;\b-:-||sP]|tr-7-5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6--6-\n----qvpnqH--\f--<<-JJJJJJJJJJJJJJ--<<-JJJ-前置裁切计算-JJJ--0vs-[bZlPYV]]R_`-K-=----o||y-pyv}}rqH----rpA-pyv}}r]|vv|{H----0}ntzn-{|yyly||}ln----s|-5-v{-v-J-=H-v-I-[bZlPYV]]R_`H-v-88-6-\n------pyv}}r]|vv|{-J-pyv}}rh-v-j;znv\x07V{rr-7-Sv{ny]|vv|{H------pyv}}rq-J-5pyv}}rh-v-j;sy||V{qr\x07-I-=;=-\v\v-no5sy||V{qr\x07-:-pyv}}rh-v-j;sy||V{qr\x076-I->;=6H------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\x07-K-:=;B-33-pyv}}r]|vv|{;\x07-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\b-K-:=;B-33-pyv}}r]|vv|{;\b-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{; -K-:=;B-33-pyv}}r]|vv|{; -I-=;BH------vs-5pyv}}rq6-\n--------qvpnqH------\f----\f----0}ntzn-{|yyly||}lr{q--0r{qvs--<<-JJJJJJJJJJJJJJJJ--0v{pyqr-Ipyv}}v{tl}yn{rlsntzr{K--rpA-qvssrP|y|-J-rpA5-qvssr9-p|y|Ny}un-7-|}npv\b-6H--<<-JJJ-高度色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6----qvssrP|y|;to-J-trP|y|O\bUrvtu5tnqvr{ar\x07r9-Sv{ny]|vv|{6H--0r{qvs--<<-JJJJJJJJJJJ--<<-JJJ-纯色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6----qvssrP|y|;to-J-p|{n{P|y|H--0r{qvs--<<-JJJJJJJJJJJ--_rsyrprqYvtu-rsyrprqYvtu-J-_rsyrprqYvtu5-rp@5-=;=-69-rp@5-=;=-69-rp@5-=;=-69-rp@5-=;=-6-6H--rp@-|nyRzvvr_nqvn{pr-J-rzvvrH--0v{pyqr-Iy|tqr}uoslsntzr{K--0v{pyqr-Izn}lsntzr{K--0v{pyqr-Ip|y|lsntzr{K--0v{pyqr-Iny}unzn}lsntzr{K--0v{pyqr-Iny}unrlsntzr{K--0v{pyqr-I}rpynzn}lsntzr{K--0v{pyqr-I{|znylsntzr{lortv{K--0v{pyqr-I{|znylsntzr{lzn}K--0v{pyqr-Irzvvrzn}lsntzr{K--<<-nppzynv|{--0v{pyqr-Iyvtul}u|{tlsntzr{K--0v{pyqr-Iyvtulsntzr{lortv{K--0v{pyqr-Iyvtulsntzr{lzn}K--0v{pyqr-Iyvtulsntzr{lr{qK--<<-z|qynv|{--0v{pyqr-In|zn}lsntzr{K--rp@-|t|v{tYvtu-J-rsyrprqYvtu;qvrpQvssr-8-rsyrprqYvtu;v{qvrpQvssr-8-rsyrprqYvtu;qvrp`}rpyn-8-rsyrprqYvtu;v{qvrp`}rpyn-8-|nyRzvvr_nqvn{prH--0v{pyqr-Ir{zn}lsntzr{K--tylSntP|y|-J-rpA5-|t|v{tYvtu9-qvssrP|y|;n-6H--<<-JJJ-楼层显示-JJJ--sy|n-sy||\\}npv\b-J->;=H--vs-5u|{Sy||V{qr\x07-K-:=;=>-33-no5sy||V{qr\x07-:-u|{Sy||V{qr\x076-K-=;FF6-\n----sy||\\}npv\b-J-=;?-7-zv{55>;=-8-PnzrnQvrpv|{;\b69->;=6H--\f--tylSntP|y|;n-J-tylSntP|y|;n-7-sy||\\}npv\b-7-ovtu{rH--<<-JJJJJJJJJJJJJJ--ZNV[lZ\\QRYlP\\Y\\_--<<色调映射-色彩空间转换--0v{pyqr-I|{rzn}}v{tlsntzr{K--0v{pyqr-Ir{p|qv{tlsntzr{K--<<-JJJ-颜色增益调整-JJJ--rp@-toP|y|-J-tylSntP|y|;toH--rp@-uP|y|-J-to?u5toP|y|6H--uP|y|;\b-8J-p|y|`nnv|{H--uP|y|; -8J-p|y|Ovtu{rH--tylSntP|y|;to-J-u?to5uP|y|6H--<<-JJJ-全景图-JJJ--rp@-}n{|=a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|=lznv\x07h@j;\x07\b 6H--}n{|=a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|=a|crr\x079-}n{|=l ||z6H--}n{|=a|crr\x07-J-}n{|=a|crr\x07-7-zn@5}n{|=lznv\x076H--rp@-}n{|>a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|>lznv\x07h@j;\x07\b 6H--}n{|>a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|>a|crr\x079-}n{|>l ||z6H--}n{|>a|crr\x07-J-}n{|>a|crr\x07-7-zn@5}n{|>lznv\x076H--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-r\x07rPor5}n{|=lzn}9-}n{|=a|crr\x076H--rpA-}n{|>P|y|-J-r\x07rPor5}n{|>lzn}9-}n{|>a|crr\x076H--0vs-qrsv{rq5b`RlYbZV[N[PR6----}n{|=P|y|;n-J->;=-:-r\x07rPor5}n{|=lyzv{n{prZn}9-}n{|=a|crr\x076;H----}n{|>P|y|;n-J->;=-:-r\x07rPor5}n{|>lyzv{n{prZn}9-}n{|>a|crr\x076;H--0r{qvs--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv\x075}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv\x075}n{|P|y|9-}n{|>P|y|9-zn\x075=;=9-oynpx]|tr-:-]V-8->;=66H--0ryvs-qrsv{rq5b`Rl`]_RNQla_N[`VaV\\[6----rp?-prr{Pr{rP||q-J-r|yv|{-7-}v\x07ry_nv|-<-?;=H----sy|n-n{vv|{_nqv-J-qvn{pr5rp?5=;=9-=;=69-prr{Pr{rP||q6-7->;?H----sy|n-n{vv|{]|tr-J-qvn{pr5tylSntP||q;\x07\b9-prr{Pr{rP||q6-<-n{vv|{_nqvH----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-z||ur}5=;=9-=;?9-}|tr-:-n{vv|{]|tr66H--0ryr----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-}|tr6H--0r{qvs--tylSntP|y|-J-zv\x075}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H--<<-JJJJJJJJJJJJJJ--0v{pyqr-Is|tlsntzr{K--0v{pyqr-I}rzyv}yvrqlny}unlsntzr{K--0v{pyqr-Iqvurv{tlsntzr{K--0vs-qrsv{rq5b`RlRQY6----tylSntP|y|;n-J-Y|tQr}uH--0r{qvs--ZNV[lR[Q\f"),meshStandardVertexShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("0qrsv{r-`aN[QN_Q0qrsv{r-ZN_Xl`aR]->;=0qrsv{r-_\\\\SlZN_X->;=0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvs0vs-qrsv{rq5b`RlcR_aRelZN_X6--nvor-sy|n-lsrnrlvqlznxH0r{qvsn\bv{t-sy|n-_||sZnxHn\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-rp@-cvr]|vv|{H0vs{qrs-SYNal`UNQRQ--n\bv{t-rp@-[|znyH--0vsqrs-b`RlaN[TR[a----n\bv{t-rp@-an{tr{H----n\bv{t-rp@-Ovn{tr{H--0r{qvs0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-Il}nlrr\x07K0v{pyqr-I?l}nlrr\x07K0v{pyqr-Iqv}ynprzr{zn}l}nlrr\x07K0v{pyqr-Ir{zn}l}nlrr\x07K0v{pyqr-Ip|y|l}nlrr\x07K0v{pyqr-Is|tl}nlrr\x07K0v{pyqr-Iz|}untrl}nlrr\x07K0v{pyqr-Ixv{{v{tl}nlrr\x07K0v{pyqr-Iunq|zn}l}nlrr\x07K0v{pyqr-Iy|tqr}uosl}nlrr\x07K0v{pyqr-Ipyv}}v{tl}yn{rl}nlrr\x07KZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--0v{pyqr-Ilrr\x07K--0v{pyqr-I?lrr\x07K--0v{pyqr-Ip|y|lrr\x07K--0v{pyqr-Iortv{{|znylrr\x07K--0v{pyqr-Iz|}u{|znylrr\x07K--0v{pyqr-Ixv{onrlrr\x07K--0v{pyqr-Ixv{{|znylrr\x07K--0v{pyqr-Iqrsny{|znylrr\x07K0vs{qrs-SYNal`UNQRQ-<<-[|zny-p|z}rq-vu-qrvnvr-ur{-SYNal`UNQRQ--[|zny-J-{|znyv r5-n{s|zrq[|zny-6H--0vsqrs-b`RlaN[TR[a----an{tr{-J-{|znyv r5-n{s|zrqan{tr{-6H----Ovn{tr{-J-{|znyv r5-p|5-[|zny9-an{tr{-6-7-n{tr{;-6H--0r{qvs0r{qvs--0v{pyqr-Iortv{lrr\x07K--0v{pyqr-Iz|}untrlrr\x07K--0v{pyqr-Ixv{{v{tlrr\x07K--0v{pyqr-Iqv}ynprzr{zn}lrr\x07K--0v{pyqr-I}|wrplrr\x07K--0v{pyqr-Iy|tqr}uoslrr\x07K--0v{pyqr-Ipyv}}v{tl}yn{rlrr\x07K--cvr]|vv|{-J-:-z]|vv|{;\x07\b H--Sv{ny]|vv|{-J-rpA5n{s|zrq9->;=6H--0vsqrs-b`RlV[`aN[PV[T----Sv{ny]|vv|{-J-v{n{prZnv\x07-7-Sv{ny]|vv|{H--0r{qvs--Sv{ny]|vv|{-J-z|qryZnv\x07-7-Sv{ny]|vv|{H--zn@-pnzrn_|nv|{Znv\x07-J-zn@5vrZnv\x07h=jh=j9-vrZnv\x07h>jh=j9-vrZnv\x07h?jh=j9-vrZnv\x07h=jh>j9-vrZnv\x07h>jh>j9-vrZnv\x07h?jh>j9-vrZnv\x07h=jh?j9-vrZnv\x07h>jh?j9-vrZnv\x07h?jh?j6H--PnzrnQvrpv|{-J-{|znyv r5pnzrn_|nv|{Znv\x07-7-rp@5=;=9-=;=9-:>;=66H--0vs-qrsv{rq5b`RlRQY6----Y|tQr}u-J-y|t?5:z]|vv|{; 6H--0r{qvs--_||sZnx-J-=;=H--0vs-qrsv{rq5b`RlcR_aRelZN_X6----_||sZnx-J-z||ur}5_\\\\SlZN_X-:-ZN_Xl`aR]9-_\\\\SlZN_X9-lsrnrlvqlznx6H--0r{qvs--0v{pyqr-I|yq}|lrr\x07K--0v{pyqr-Ir{zn}lrr\x07K--0v{pyqr-Iunq|zn}lrr\x07K--0v{pyqr-Is|tlrr\x07K--ZNV[lR[Q\f"),meshStandardFragmentShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("0qrsv{r-`aN[QN_Q0qrsv{r-_RSYRPaVcVaf0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=EC9-=;>=C9-=;>AF9->;=6{vs|z-sy|n-sy||V{qr\x07H{vs|z-nz}yrPor-}n{|=lzn}H{vs|z-znA-}n{|=lznv\x07H{vs|z-sy|n-}n{|=l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|=lyzv{n{prZn}H0r{qvs{vs|z-nz}yrPor-}n{|>lzn}H{vs|z-znA-}n{|>lznv\x07H{vs|z-sy|n-}n{|>l ||zH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|>lyzv{n{prZn}H0r{qvs{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trH0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6--{vs|z-rp@-p|{n{P|y|H0r{qvs0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6--{vs|z-nz}yr?Q-tnqvr{ar\x07rH0r{qvsp-Pyv}}r-\n--znA-znv\x07V{rrH--sy|n-sy||V{qr\x07H\fH0vs-[bZlPYV]]R_`-K-=--{vs|z-Pyv}}r-pyv}}rh[bZlPYV]]R_`jH0r{qvs0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvsn\bv{t-rpA-Sv{ny]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-sy|n-_||sZnxH{vs|z-sy|n-u|{Sy||V{qr\x07H{vs|z-rp?-r|yv|{H{vs|z-sy|n-}v\x07ry_nv|H{vs|z-rp@-qvssrH{vs|z-sy|n-p|y|Ny}unH{vs|z-rp@-rzvvrH{vs|z-sy|n-|tu{rH{vs|z-sy|n-zrny{rH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-ovtu{rH0vsqrs-_RSYRPaVcVaf--{vs|z-sy|n-rsyrpvv\bH0r{qvs{vs|z-rp@-z|qryO|{qv{tZn\x07H{vs|z-rp@-z|qryO|{qv{tZv{H<<u调整{vs|z-sy|n-p|y|`nnv|{H{vs|z-sy|n-p|y|Ovtu{rHn\bv{t-rp@-cvr]|vv|{H0vs{qrs-SYNal`UNQRQ--n\bv{t-rp@-[|znyH--0vsqrs-b`RlaN[TR[a----n\bv{t-rp@-an{tr{H----n\bv{t-rp@-Ovn{tr{H--0r{qvs0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-I}npxv{tK0v{pyqr-Iqvurv{tl}nlsntzr{K0v{pyqr-Ip|y|l}nlsntzr{K0v{pyqr-Il}nlsntzr{K0v{pyqr-I?l}nlsntzr{K0v{pyqr-Izn}l}nlsntzr{K0v{pyqr-Iny}unzn}l}nlsntzr{K0v{pyqr-In|zn}l}nlsntzr{K0v{pyqr-Iyvtuzn}l}nlsntzr{K0v{pyqr-Irzvvrzn}l}nlsntzr{K0v{pyqr-IoqsK0v{pyqr-Iporllrsyrpv|{lsntzr{K0v{pyqr-Ir{zn}lp|zz|{l}nlsntzr{K0v{pyqr-Ir{zn}l}u\bvpnyl}nlsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-Iyvtul}nlortv{K0v{pyqr-Iyvtul}u\bvpnyl}nlsntzr{K0v{pyqr-Iunq|zn}l}nlsntzr{K0v{pyqr-Ioz}zn}l}nlsntzr{K0v{pyqr-I{|znyzn}l}nlsntzr{K0v{pyqr-I|tu{rzn}l}nlsntzr{K0v{pyqr-Izrny{rzn}l}nlsntzr{K0v{pyqr-Iy|tqr}uosl}nlsntzr{K0v{pyqr-Ipyv}}v{tl}yn{rl}nlsntzr{Krp@- ||zcrp|5rp@-qvrpv|{9-rp@-rp|9-sy|n- ||z6-\n--sy|n-urn-J-q|5qvrpv|{9-rp|6H--rp@-q-J-qvrpv|{-7-urnH--rp@-}-J-rp|-:-qH--rp@-\0-J-}-7- ||zH--r{-{|znyv r5q-8-\x006H\frp@-to?u5rp@-p6-\n----rpA-X-J-rpA5=;=9-:>;=-<-@;=9-?;=-<-@;=9-:>;=6H----rpA-}-J-zv\x075rpA5p;ot9-X; 69-rpA5p;to9-X;\x07\b69-r}5p;o9-p;t66H----rpA-\0-J-zv\x075rpA5};\x07\b9-p;69-rpA5p;9-};\b \x0769-r}5};\x079-p;66H----sy|n-q-J-\0;\x07-:-zv{5\0;9-\0;\b6H----sy|n-r-J->;=r:>=H----r{-rp@5no5\0; -8-5\0;-:-\0;\b6-<-5C;=-7-q-8-r669-q-<-5\0;\x07-8-r69-\0;\x076H\frp@-u?to5rp@-p6-\n----rpA-X-J-rpA5>;=9-?;=-<-@;=9->;=-<-@;=9-@;=6H----rp@-}-J-no5snp5p;\x07\x07\x07-8-X;\x07\b 6-7-C;=-:-X;6H----r{-p; -7-zv\x075X;\x07\x07\x079-pynz}5}-:-X;\x07\x07\x079-=;=9->;=69-p;\b6H\frp@-trP|y|O\bUrvtu5nz}yr?Q-tnqvr{ar\x07r9-rpA-Sv{ny]|vv|{6-\n--sy|n--J-5Sv{ny]|vv|{;\b-:-z|qryO|{qv{tZv{;\b6-<-5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6H--r{-r\x07r?Q5tnqvr{ar\x07r9-rp?59-=;B66;toH\fZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--<<-JJJ-顶部裁切-JJJ--sy|n-||sP]|tr-J-}|5pynz}5:PnzrnQvrpv|{;\b9-=;=9->;=69-@;=6H--vs-5----_||sZnx-K-=;B-33----Sv{ny]|vv|{;\b-K-z|qryO|{qv{tZn\x07;\b-:-||sP]|tr-7-5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6--6-\n----qvpnqH--\f--<<-JJJJJJJJJJJJJJ--<<-JJJ-前置裁切计算-JJJ--0vs-[bZlPYV]]R_`-K-=----o||y-pyv}}rqH----rpA-pyv}}r]|vv|{H----0}ntzn-{|yyly||}ln----s|-5-v{-v-J-=H-v-I-[bZlPYV]]R_`H-v-88-6-\n------pyv}}r]|vv|{-J-pyv}}rh-v-j;znv\x07V{rr-7-Sv{ny]|vv|{H------pyv}}rq-J-5pyv}}rh-v-j;sy||V{qr\x07-I-=;=-\v\v-no5sy||V{qr\x07-:-pyv}}rh-v-j;sy||V{qr\x076-I->;=6H------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\x07-K-:=;B-33-pyv}}r]|vv|{;\x07-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\b-K-:=;B-33-pyv}}r]|vv|{;\b-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{; -K-:=;B-33-pyv}}r]|vv|{; -I-=;BH------vs-5pyv}}rq6-\n--------qvpnqH------\f----\f----0}ntzn-{|yyly||}lr{q--0r{qvs--<<-JJJJJJJJJJJJJJJJ--0v{pyqr-Ipyv}}v{tl}yn{rlsntzr{K--rpA-qvssrP|y|-J-rpA5-qvssr9-p|y|Ny}un-7-|}npv\b-6H--<<-JJJ-高度色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6----qvssrP|y|;to-J-trP|y|O\bUrvtu5tnqvr{ar\x07r9-Sv{ny]|vv|{6H--0r{qvs--<<-JJJJJJJJJJJ--<<-JJJ-纯色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6----qvssrP|y|;to-J-p|{n{P|y|H--0r{qvs--<<-JJJJJJJJJJJ--_rsyrprqYvtu-rsyrprqYvtu-J-_rsyrprqYvtu5-rp@5-=;=-69-rp@5-=;=-69-rp@5-=;=-69-rp@5-=;=-6-6H--rp@-|nyRzvvr_nqvn{pr-J-rzvvrH--0v{pyqr-Iy|tqr}uoslsntzr{K--0v{pyqr-Izn}lsntzr{K--0v{pyqr-Ip|y|lsntzr{K--0v{pyqr-Iny}unzn}lsntzr{K--0v{pyqr-Iny}unrlsntzr{K--0v{pyqr-I|tu{rzn}lsntzr{K0v{pyqr-Izrny{rzn}lsntzr{K--0v{pyqr-I{|znylsntzr{lortv{K--0v{pyqr-I{|znylsntzr{lzn}K--0v{pyqr-Irzvvrzn}lsntzr{K--<<-nppzynv|{--0v{pyqr-Iyvtul}u\bvpnylsntzr{K--0v{pyqr-Iyvtulsntzr{lortv{K--0v{pyqr-Iyvtulsntzr{lzn}K--0v{pyqr-Iyvtulsntzr{lr{qK--<<-z|qynv|{--0v{pyqr-In|zn}lsntzr{K--rp@-|t|v{tYvtu-J-rsyrprqYvtu;qvrpQvssr-8-rsyrprqYvtu;v{qvrpQvssr-8-rsyrprqYvtu;qvrp`}rpyn-8-rsyrprqYvtu;v{qvrp`}rpyn-8-|nyRzvvr_nqvn{prH--tylSntP|y|-J-rpA5-|t|v{tYvtu9-qvssrP|y|;n-6H--<<-JJJ-楼层显示-JJJ--sy|n-sy||\\}npv\b-J->;=H--vs-5u|{Sy||V{qr\x07-K-:=;=>-33-no5sy||V{qr\x07-:-u|{Sy||V{qr\x076-K-=;FF6-\n----sy||\\}npv\b-J-=;?-7-zv{55>;=-8-PnzrnQvrpv|{;\b69->;=6H--\f--tylSntP|y|;n-J-tylSntP|y|;n-7-sy||\\}npv\b-7-ovtu{rH--<<-JJJJJJJJJJJJJJ--ZNV[lZ\\QRYlP\\Y\\_--<<色调映射-色彩空间转换--0v{pyqr-I|{rzn}}v{tlsntzr{K--0v{pyqr-Ir{p|qv{tlsntzr{K--<<-JJJ-颜色增益调整-JJJ--rp@-toP|y|-J-tylSntP|y|;toH--rp@-uP|y|-J-to?u5toP|y|6H--uP|y|;\b-8J-p|y|`nnv|{H--uP|y|; -8J-p|y|Ovtu{rH--tylSntP|y|;to-J-u?to5uP|y|6H--<<-JJJ-全景图-JJJ--rp@-}n{|=a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|=lznv\x07h@j;\x07\b 6H--}n{|=a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|=a|crr\x079-}n{|=l ||z6H--}n{|=a|crr\x07-J-}n{|=a|crr\x07-7-zn@5}n{|=lznv\x076H--rp@-}n{|>a|crr\x07-J-{|znyv r5Sv{ny]|vv|{;\x07\b -:-}n{|>lznv\x07h@j;\x07\b 6H--}n{|>a|crr\x07-J- ||zcrp|5PnzrnQvrpv|{9-}n{|>a|crr\x079-}n{|>l ||z6H--}n{|>a|crr\x07-J-}n{|>a|crr\x07-7-zn@5}n{|>lznv\x076H--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-r\x07rPor5}n{|=lzn}9-}n{|=a|crr\x076H--rpA-}n{|>P|y|-J-r\x07rPor5}n{|>lzn}9-}n{|>a|crr\x076H--0vs-qrsv{rq5b`RlYbZV[N[PR6----}n{|=P|y|;n-J->;=-:-r\x07rPor5}n{|=lyzv{n{prZn}9-}n{|=a|crr\x076;H----}n{|>P|y|;n-J->;=-:-r\x07rPor5}n{|>lyzv{n{prZn}9-}n{|>a|crr\x076;H--0r{qvs--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv\x075}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv\x075}n{|P|y|9-}n{|>P|y|9-zn\x075=;=9-oynpx]|tr-:-]V-8->;=66H--0ryvs-qrsv{rq5b`Rl`]_RNQla_N[`VaV\\[6----rp?-prr{Pr{rP||q-J-r|yv|{-7-}v\x07ry_nv|-<-?;=H----sy|n-n{vv|{_nqv-J-qvn{pr5rp?5=;=9-=;=69-prr{Pr{rP||q6-7->;?H----sy|n-n{vv|{]|tr-J-qvn{pr5tylSntP||q;\x07\b9-prr{Pr{rP||q6-<-n{vv|{_nqvH----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-z||ur}5=;=9-=;?9-}|tr-:-n{vv|{]|tr66H--0ryr----}n{|P|y|-J-zv\x075}n{|=P|y|9-}n{|>P|y|9-}|tr6H--0r{qvs--tylSntP|y|-J-zv\x075}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H--<<-JJJJJJJJJJJJJJ--0v{pyqr-Is|tlsntzr{K--0v{pyqr-I}rzyv}yvrqlny}unlsntzr{K--0v{pyqr-Iqvurv{tlsntzr{K--0vs-qrsv{rq5b`RlRQY6----tylSntP|y|;n-J-Y|tQr}uH--0r{qvs--ZNV[lR[Q\f");var pbmUniforms$1={colorAlpha:new THREE__namespace.Uniform(0),modelAlpha:new THREE__namespace.Uniform(0),progress:new THREE__namespace.Uniform(0),pano0_map:new THREE__namespace.Uniform(null),pano0_luminanceMap:new THREE__namespace.Uniform(null),pano0_matrix:new THREE__namespace.Uniform(new THREE__namespace.Matrix4),pano0_zoom:new THREE__namespace.Uniform(1),pano1_map:new THREE__namespace.Uniform(null),pano1_luminanceMap:new THREE__namespace.Uniform(null),pano1_matrix:new THREE__namespace.Uniform(new THREE__namespace.Matrix4),pano1_zoom:new THREE__namespace.Uniform(1),gradientTexture:new THREE__namespace.Uniform(null),clippers:new THREE__namespace.Uniform([]),shownFloorIndex:new THREE__namespace.Uniform(-1),constantColor:new THREE__namespace.Uniform(new THREE__namespace.Vector3),geometricError:new THREE__namespace.Uniform(0),pixelRatio:new THREE__namespace.Uniform(1),resolution:new THREE__namespace.Uniform(new THREE__namespace.Vector2(512,512)),floorIndex:new THREE__namespace.Uniform(0),brightness:new THREE__namespace.Uniform(1),modelBoundingMin:new THREE__namespace.Uniform(new THREE__namespace.Vector3),modelBoundingMax:new THREE__namespace.Uniform(new THREE__namespace.Vector3),colorSaturation:new THREE__namespace.Uniform(0),colorBrightness:new THREE__namespace.Uniform(0),outlineGain:new THREE__namespace.Uniform(0),distanceGain:new THREE__namespace.Uniform(0)},shaderLib={none:{vertexShader:meshNoneVertexShader,fragmentShader:meshNoneFragmentShader,uniforms:THREE__namespace.UniformsUtils.merge([pbmUniforms$1,{opacity:{value:1}},THREE__namespace.UniformsLib.fog]),lights:!1,clipping:!1},basic:{vertexShader:meshBasicVertexShader,fragmentShader:meshBasicFragmentShader,uniforms:THREE__namespace.UniformsUtils.merge([pbmUniforms$1,THREE__namespace.ShaderLib.basic.uniforms]),lights:!1,clipping:!0},phong:{vertexShader:meshPhongVertexShader,fragmentShader:meshPhongFragmentShader,uniforms:THREE__namespace.UniformsUtils.merge([pbmUniforms$1,THREE__namespace.ShaderLib.phong.uniforms]),lights:!0,clipping:!0},standard:{vertexShader:meshStandardVertexShader,fragmentShader:meshStandardFragmentShader,uniforms:THREE__namespace.UniformsUtils.merge([pbmUniforms$1,THREE__namespace.ShaderLib.standard.uniforms]),lights:!0,clipping:!0}},PBMMeshMaterial=function(n){__extends(t,n);function t(e,r){e===void 0&&(e="basic"),r===void 0&&(r={});var o=this,s,u,l,c,f,d,p,v,A,g,h,y,m,E,b,T,_,R,S,C,B,L,M,w,H,O,I,N,k=shaderLib[e];o=n.call(this,{vertexShader:k.vertexShader,fragmentShader:k.fragmentShader,uniforms:THREE__namespace.UniformsUtils.clone(k.uniforms),lights:k.lights,clipping:k.clipping,defines:{USE_COLOR_CONSTANT:!1,USE_COLOR_ALTITUDE:!1,USE_EDL:!1,USE_HQ_WEIGHT:!1,USE_HQ_DEPTH:!1,NUM_CLIPPING_BOX:!1,USE_CLIPFLOOR:!1,USE_VERTEX_MARK:!1,USE_LUMINANCE:!1,USE_BLACK_TRANSITION:!1,USE_SPREAD_TRANSITION:!1,USE_POINT_NORMAL:!1,USE_POINT_CIRCLE:!1,USE_POINT_ADAPTIVE_SIZE:!1,USE_POINT_COLOR_ALTITUDE:!1}})||this,o.shaderType=e,o.vertexTangents=!1,o.color=new THREE__namespace.Color(16777215),o.colorAlpha=1,o.map=null,o.lightMap=null,o.lightMapIntensity=1,o.aoMap=null,o.aoMapIntensity=1,o.specularMap=null,o.specular=new THREE__namespace.Color(1118481),o.roughnessMap=null,o.roughness=1,o.metalnessMap=null,o.metalness=0,o.alphaMap=null,o.alphaMode="OPAQUE",o.combine=null,o.envMap=null,o.envMapIntensity=1,o.reflectivity=.4,o.refractionRatio=.98,o.emissiveMap=null,o.emissive=new THREE__namespace.Color(0),o.emissiveIntensity=1,o.bumpMap=null,o.bumpScale=1,o.normalMap=null,o.normalMapType=THREE__namespace.TangentSpaceNormalMap,o.normalScale=new THREE__namespace.Vector2(1,1),o.displacementMap=null,o.displacementScale=1,o.displacementBias=0,o.shininess=30;var U,D=null,q=null;return o.shaderType==="phong"&&(o.combine=THREE__namespace.MultiplyOperation),Object.defineProperties(o,{pano0:{get:function(){return D},set:function(z){if(D!==z){D=z,z===null?(this.uniforms.pano0_map.value=null,this.uniforms.pano0_luminanceMap.value=null,this.uniforms.pano0_matrix.value.identity(),this.uniforms.pano0_zoom.value=1):(this.uniforms.pano0_map.value=z.map instanceof TileCubeTextureTarget?z.map.texture:z.map,this.uniforms.pano0_luminanceMap.value=z.luminanceMap instanceof TileCubeTextureTarget?z.luminanceMap.texture:z.luminanceMap,this.uniforms.pano0_matrix.value.copy(z.matrix),this.uniforms.pano0_zoom.value=z.zoom);var Q=this.uniforms.pano0_luminanceMap.value!==null&&this.uniforms.pano1_luminanceMap.value!==null,G=this.defines.USE_LUMINANCE;G!==Q&&(this.defines.USE_LUMINANCE=Q,this.needsUpdate=!0)}}},pano1:{get:function(){return q},set:function(z){if(q!==z){q=z,z===null?(this.uniforms.pano1_map.value=null,this.uniforms.pano1_luminanceMap.value=null,this.uniforms.pano1_matrix.value.identity(),this.uniforms.pano1_zoom.value=1):(this.uniforms.pano1_map.value=z.map instanceof TileCubeTextureTarget?z.map.texture:z.map,this.uniforms.pano1_luminanceMap.value=z.luminanceMap instanceof TileCubeTextureTarget?z.luminanceMap.texture:z.luminanceMap,this.uniforms.pano1_matrix.value.copy(z.matrix),this.uniforms.pano1_zoom.value=z.zoom);var Q=this.uniforms.pano0_luminanceMap.value!==null&&this.uniforms.pano1_luminanceMap.value!==null,G=this.defines.USE_LUMINANCE;G!==Q&&(this.defines.USE_LUMINANCE=Q,this.needsUpdate=!0)}}},modelAlpha:{get:function(){return this.uniforms.modelAlpha.value},set:function(z){this.uniforms.modelAlpha.value=z}},progress:{get:function(){return this.uniforms.progress.value},set:function(z){this.uniforms.progress.value=z}},transition:{get:function(){return this.defines.USE_BLACK_TRANSITION?"BLACK":this.defines.USE_SPREAD_TRANSITION?"SPREAD":"FADE"},set:function(z){var Q=this.defines.USE_BLACK_TRANSITION,G=this.defines.USE_SPREAD_TRANSITION;this.defines.USE_BLACK_TRANSITION=!1,this.defines.USE_SPREAD_TRANSITION=!1,this.defines["USE_".concat(z,"_TRANSITION")]=!0;var X=!1;Q!==this.defines.USE_BLACK_TRANSITION&&(X=!0),G!==this.defines.USE_SPREAD_TRANSITION&&(X=!0),X&&(this.needsUpdate=!0)}},colorStyle:{get:function(){return this.defines.USE_COLOR_CONSTANT?"CONSTANT":this.defines.USE_COLOR_ALTITUDE?"ALTITUDE":"RGB"},set:function(z){var Q=z==="CONSTANT",G=z==="ALTITUDE";this.defines.USE_COLOR_CONSTANT!==Q&&(this.defines.USE_COLOR_CONSTANT=Q,this.needsUpdate=!0),this.defines.USE_COLOR_ALTITUDE!==G&&(this.defines.USE_COLOR_ALTITUDE=G,this.needsUpdate=!0)}},constantColor:{get:function(){return this.uniforms.constantColor.value},set:function(z){this.uniforms.constantColor.value=z}},opacity:{get:function(){return this.uniforms.opacity.value},set:function(z){this.uniforms.opacity.value=z}},shownFloorIndex:{get:function(){return this.uniforms.shownFloorIndex.value},set:function(z){this.uniforms.shownFloorIndex.value=z}},gradientTexture:{get:function(){return this.uniforms.gradientTexture.value},set:function(z){this.uniforms.gradientTexture.value=z}},brightness:{get:function(){return this.uniforms.brightness.value},set:function(z){this.uniforms.brightness.value=z}},clippers:{get:function(){return U},set:function(z){U!==z&&(U=z,this.uniforms.clippers.value=(U||[]).map(function(Q){var G=typeof Q.floorIndex=="number"?Q.floorIndex:-1,X=new THREE__namespace.Matrix4().getInverse(Q.clippingBoxMatrix);return{matrixInverse:X,floorIndex:G}}),this.needsUpdate=!0)}},useEDL:{get:function(){return this.defines.USE_EDL},set:function(z){z!==this.defines.USE_EDL&&(this.defines.USE_EDL=z,this.needsUpdate=!0)}},useHQWeight:{get:function(){return this.defines.USE_HQ_WEIGHT},set:function(z){z!==this.defines.USE_HQ_WEIGHT&&(this.defines.USE_HQ_WEIGHT=z,this.needsUpdate=!0)}},useHQDepth:{get:function(){return this.defines.USE_HQ_DEPTH},set:function(z){z!==this.defines.USE_HQ_DEPTH&&(this.defines.USE_HQ_DEPTH=z,this.needsUpdate=!0)}},floorIndex:{get:function(){return this.uniforms.floorIndex.value},set:function(z){this.uniforms.floorIndex.value=z}},colorSaturation:{get:function(){return this.uniforms.colorSaturation.value},set:function(z){this.uniforms.colorSaturation.value=z}},colorBrightness:{get:function(){return this.uniforms.colorBrightness.value},set:function(z){this.uniforms.colorBrightness.value=z}},outlineGain:{get:function(){return this.uniforms.outlineGain.value},set:function(z){this.uniforms.outlineGain.value=z}},distanceGain:{get:function(){return this.uniforms.distanceGain.value},set:function(z){this.uniforms.distanceGain.value=z}}}),o.pano0=(s=r.pano0)!==null&&s!==void 0?s:defaultPbmParameters.pano0,o.pano1=(u=r.pano1)!==null&&u!==void 0?u:defaultPbmParameters.pano1,o.modelAlpha=(l=r.modelAlpha)!==null&&l!==void 0?l:defaultPbmParameters.modelAlpha,o.progress=(c=r.progress)!==null&&c!==void 0?c:defaultPbmParameters.progress,o.transition=(f=r.transition)!==null&&f!==void 0?f:defaultPbmParameters.transition,o.constantColor=(d=r.constantColor)!==null&&d!==void 0?d:defaultPbmParameters.constantColor,o.opacity=(p=r.opacity)!==null&&p!==void 0?p:defaultPbmParameters.opacity,o.floorStyle=(v=r.floorStyle)!==null&&v!==void 0?v:defaultPbmParameters.floorStyle,o.shownFloorIndex=(A=r.shownFloorIndex)!==null&&A!==void 0?A:defaultPbmParameters.shownFloorIndex,o.clippers=(g=r.clippers)!==null&&g!==void 0?g:defaultPbmParameters.clippers,o.useEDL=(h=r.useEDL)!==null&&h!==void 0?h:defaultPbmParameters.useEDL,o.useHQWeight=(y=r.useHQWeight)!==null&&y!==void 0?y:defaultPbmParameters.useHQWeight,o.useHQDepth=(m=r.useHQDepth)!==null&&m!==void 0?m:defaultPbmParameters.useHQDepth,o.pointSize=(E=r.pointSize)!==null&&E!==void 0?E:defaultPbmParameters.pointSize,o.colorStyle=(b=r.colorStyle)!==null&&b!==void 0?b:defaultPbmParameters.colorStyle,o.pointShape=(T=r.pointShape)!==null&&T!==void 0?T:defaultPbmParameters.pointShape,o.pointScale=(_=r.pointScale)!==null&&_!==void 0?_:defaultPbmParameters.pointScale,o.pointBack=(R=r.pointBack)!==null&&R!==void 0?R:defaultPbmParameters.pointBack,o.pointMinPixel=(S=r.pointMinPixel)!==null&&S!==void 0?S:defaultPbmParameters.pointMinPixel,o.pointMaxPixel=(C=r.pointMaxPixel)!==null&&C!==void 0?C:defaultPbmParameters.pointMaxPixel,o.gradientTexture=(B=r.gradientTexture)!==null&&B!==void 0?B:defaultPbmParameters.gradientTexture,o.brightness=(L=r.brightness)!==null&&L!==void 0?L:defaultPbmParameters.brightness,o.colorSaturation=(M=r.colorSaturation)!==null&&M!==void 0?M:defaultPbmParameters.colorSaturation,o.colorBrightness=(w=r.colorBrightness)!==null&&w!==void 0?w:defaultPbmParameters.colorBrightness,o.customShaders=(H=r.customShaders)!==null&&H!==void 0?H:defaultPbmParameters.customShaders,o.outlineGain=(O=r.outlineGain)!==null&&O!==void 0?O:defaultPbmParameters.outlineGain,o.distanceGain=(I=r.distanceGain)!==null&&I!==void 0?I:defaultPbmParameters.distanceGain,o.useAddBlend=(N=r.useAddBlend)!==null&&N!==void 0?N:defaultPbmParameters.useAddBlend,o.customShaderHash="",o.customShaderUniforms={},o.customShaderDefines={},o.floorIndex=0,o.transparent=!1,o}return t.prototype.onBeforeCompile=function(e,r){var o=this,s,u,l=this.customShaders.filter(function(y){return y.type.includes(o.shaderType)}),c=l.reduce(function(y,m){return y+m.vertex.mainBefore},""),f=l.reduce(function(y,m){return y+m.vertex.mainStart},""),d=l.reduce(function(y,m){return y+m.vertex.mainEnd},""),p=l.reduce(function(y,m){return y+m.fragment.mainBefore},""),v=l.reduce(function(y,m){return y+m.fragment.mainStart},""),A=l.reduce(function(y,m){return y+m.fragment.mainModelColor},""),g=l.reduce(function(y,m){return y+m.fragment.mainEnd},"");e.vertexShader=e.vertexShader.replace(/MAIN_BEFORE/g,c),e.fragmentShader=e.fragmentShader.replace(/MAIN_BEFORE/g,p),e.vertexShader=e.vertexShader.replace(/MAIN_START/g,f),e.fragmentShader=e.fragmentShader.replace(/MAIN_START/g,v),e.vertexShader=e.vertexShader.replace(/MAIN_END/g,d),e.fragmentShader=e.fragmentShader.replace(/MAIN_END/g,g),e.fragmentShader=e.fragmentShader.replace(/MAIN_MODEL_COLOR/g,A);var h=String((u=(s=this.clippers)===null||s===void 0?void 0:s.length)!==null&&u!==void 0?u:0);e.vertexShader=e.vertexShader.replace(/NUM_CLIPPERS/g,h),e.fragmentShader=e.fragmentShader.replace(/NUM_CLIPPERS/g,h),l.forEach(function(y){y.onBeforeCompile(e,r)})},t.prototype.refreshUniforms=function(e){var r,o,s=this.uniforms;s.diffuse&&s.diffuse.value.copy(this.color),s.opacity&&(s.opacity.value=this.opacity),s.color&&s.diffuse.value.copy(this.color),s.colorAlpha&&(s.colorAlpha.value=this.colorAlpha),s.emissive&&s.emissive.value.copy(this.emissive).multiplyScalar(this.emissiveIntensity),s.roughness&&(s.roughness.value=this.roughness),s.metalness&&(s.metalness.value=this.metalness),s.map&&(s.map.value=this.map),s.alphaMap&&(s.alphaMap.value=this.alphaMap),s.specularMap&&(s.specularMap.value=this.specularMap),s.roughnessMap&&(s.roughnessMap.value=this.roughnessMap),s.metalnessMap&&(s.metalnessMap.value=this.metalnessMap),s.envMap&&(s.envMap.value=this.envMap,s.flipEnvMap.value=!((r=this.envMap)===null||r===void 0)&&r.isCubeTexture?-1:1,s.reflectivity.value=this.reflectivity,s.refractionRatio.value=this.refractionRatio,s.maxMipLevel.value=this.envMap&&(o=e==null?void 0:e.properties.get(this.envMap).__maxMipLevel)!==null&&o!==void 0?o:0,s.envMapIntensity&&(s.envMapIntensity.value=this.envMapIntensity)),s.lightMap&&(s.lightMap.value=this.lightMap,s.lightMapIntensity.value=this.lightMapIntensity),s.aoMap&&(s.aoMap.value=this.aoMap,s.aoMapIntensity.value=this.aoMapIntensity),s.specular&&s.specular.value.copy(this.specular),s.shininess&&(s.shininess.value=Math.max(this.shininess,1e-4)),s.emissiveMap&&(s.emissiveMap.value=this.emissiveMap),s.bumpMap&&(s.bumpMap.value=this.bumpMap,s.bumpScale.value=this.bumpScale,this.side===THREE__namespace.BackSide&&(s.bumpScale.value*=-1)),s.normalMap&&(s.normalMap.value=this.normalMap,s.normalScale.value.copy(this.normalScale),this.side===THREE__namespace.BackSide&&s.normalScale.value.negate()),s.displacementMap&&(s.displacementMap.value=this.displacementMap,s.displacementScale.value=this.displacementScale,s.displacementBias.value=this.displacementBias);var u;this.map?u=this.map:this.specularMap?u=this.specularMap:this.displacementMap?u=this.displacementMap:this.normalMap?u=this.normalMap:this.bumpMap?u=this.bumpMap:this.alphaMap?u=this.alphaMap:this.emissiveMap&&(u=this.emissiveMap),u!==void 0&&(u.matrixAutoUpdate===!0&&u.updateMatrix(),s.uvTransform.value.copy(u.matrix));var l;this.aoMap?l=this.aoMap:this.lightMap&&(l=this.lightMap),l!==void 0&&(l.matrixAutoUpdate===!0&&l.updateMatrix(),s.uv2Transform.value.copy(l.matrix))},t.prototype.update=function(e,r,o){var s="".concat(o.id,":").concat(o.materialVersion);s!==this.syncModelVersion&&(Object.assign(this,o.getMaterial()),this.syncModelVersion=s);var u=this.customShaders.map(function(m){return m.getHash()}).join("");this.customShaderHash!==u&&(this.customShaderHash=u,this.needsUpdate=!0);for(var l=this.customShaders.reduce(function(m,E){return Object.assign(m,E.defines)},{}),c=Object.keys(this.customShaderDefines),f=0,d=c;f<d.length;f++){var p=d[f];delete this.defines[p]}this.customShaderDefines=l,Object.assign(this.defines,this.customShaderDefines);for(var v=this.customShaders.reduce(function(m,E){return Object.assign(m,E.uniforms)},{}),A=Object.keys(this.customShaderUniforms),g=0,h=A;g<h.length;g++){var y=h[g];delete this.uniforms[y]}this.customShaderUniforms=v,Object.assign(this.uniforms,this.customShaderUniforms),this.visible=!0,this.envMap||(this.envMap=r.environment),this.refreshUniforms(e),this.useAddBlend?(this.depthWrite=!1,this.depthTest=!1,this.blending=THREE__namespace.AdditiveBlending):(this.depthWrite=!0,this.depthTest=!0,this.blending=THREE__namespace.NormalBlending),this.shaderType==="none"?(this.depthWrite=!1,this.transparent=!0):(this.transparent=this.alphaMode==="BLEND",this.depthWrite=!0,this.shownFloorIndex>-1&&this.shownFloorIndex!==this.floorIndex&&(this.transparent=!0),this.opacity*this.colorAlpha<1&&(this.transparent=!0),this.alphaMap&&(this.transparent=!0),this.brightness<1&&(this.transparent=!0),this.transparent&&(this.depthWrite=!1),this.floorStyle==="VISIBILITY"&&this.shownFloorIndex!==-1&&this.floorIndex!==this.shownFloorIndex&&(this.visible=!1)),this.uniforms.pixelRatio.value=r.pixelRatio,this.uniforms.resolution.value.copy(r.resolution),this.uniforms.modelBoundingMax.value.copy(o.bounding.max),this.uniforms.modelBoundingMin.value.copy(o.bounding.min)},t.prototype.copy=function(e){return n.prototype.copy.call(this,e),this.color.copy(e.color),this.colorAlpha=e.colorAlpha,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.specular.copy(e.specular),this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.emissiveMap=e.emissiveMap,this.emissive.copy(e.emissive),this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.shininess=e.shininess,this.customShaders=e.customShaders,this.pano0=e.pano0,this.pano1=e.pano1,this.modelAlpha=e.modelAlpha,this.progress=e.progress,this.transition=e.transition,this.opacity=e.opacity,this.floorStyle=e.floorStyle,this.colorStyle=e.colorStyle,this.constantColor=e.constantColor,this.shownFloorIndex=e.shownFloorIndex,this.brightness=e.brightness,this.clippers=e.clippers,this.useEDL=e.useEDL,this.useHQWeight=e.useHQWeight,this.useHQDepth=e.useHQDepth,this.pointSize=e.pointSize,this.pointShape=e.pointShape,this.pointScale=e.pointScale,this.pointBack=e.pointBack,this.pointMinPixel=e.pointMinPixel,this.pointMaxPixel=e.pointMaxPixel,this.gradientTexture=e.gradientTexture,this.floorIndex=e.floorIndex,this.colorSaturation=e.colorSaturation,this.colorBrightness=e.colorBrightness,this.outlineGain=e.outlineGain,this.distanceGain=e.distanceGain,this.useAddBlend=e.useAddBlend,this.refreshUniforms(),this},t.prototype.clone=function(){return new this.constructor(this.shaderType).copy(this)},t}(THREE__namespace.ShaderMaterial);const pointCloudFragmentShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("{vs|z-sy|n-sy||V{qr\x07H0vs-qrsv{rq5b`Rl]\\V[al[\\_ZNY6--n\bv{t-rp@-[|znyH0r{qvs0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvsp-Pyv}}r-\n--znA-znv\x07V{rrH--sy|n-sy||V{qr\x07H\fH0vs-[bZlPYV]]R_`-K-=--{vs|z-Pyv}}r-pyv}}rh[bZlPYV]]R_`jH0r{qvsn\bv{t-rpA-d|yq]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-rp@-P|y|Hn\bv{t-sy|n-]|v{`v rH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-u|{Sy||V{qr\x07H<<u调整{vs|z-sy|n-p|y|`nnv|{H{vs|z-sy|n-p|y|Ovtu{rH{vs|z-rp@-z|qryO|{qv{tZn\x07H{vs|z-rp@-z|qryO|{qv{tZv{H<<-边缘增益{vs|z-sy|n-|yv{rTnv{H{vs|z-sy|n-qvn{prTnv{H0v{pyqr-Ip|zz|{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-Iy|tqr}uosl}nlsntzr{K0v{pyqr-Ipyv}}v{tl}yn{rl}nlsntzr{Krp@-nqwP|y|arz}rnr5rp@-p|y|9-sy|n-rz}rnr6\n----<<-将色温范围从-:>;=-到->;=-映射到实际的色温范围----sy|n-rz}-J-5rz}rnr-8->;=6-7-B===;=H-<<-范围从-=-到->====----<<-计算色温系数----sy|n-lsnp|9-tlsnp|9-olsnp|H----vs-5rz}-IJ-CC==;=6-\n--------lsnp|-J->;=H--------tlsnp|-J-=;@F==E>BDEDCF=>FC=DEA-7-y|t5rz}-<->==;=6-:-=;C@>EA>AA@DEEC?DAB=FEH--------olsnp|-J-rz}-IJ->F==;=-L-=;=-G-=;BA@?=CDEF>>=>FC=DEA@-7-y|t5rz}-<->==;=-:->=;=6-:->;>FC?BA=EF>AH----\f-ryr-\n--------lsnp|-J->;?F?F@C>EC=C?DAB=FE=A-7-}|5rz}-<->==;=-:-C=;=9-:=;>@@?=ADBF?6H--------tlsnp|-J->;>?FEF=EC=EFB?FA>>DCB-7-}|5rz}-<->==;=-:-C=;=9-:=;=DBB>AEAF?6H--------olsnp|-J->;=H----\f----<<-调整颜色----rp@-nqwrqP|y|H----nqwrqP|y|;-J-pynz}5p|y|;-7-lsnp|9-=;=9->;=6H----nqwrqP|y|;t-J-pynz}5p|y|;t-7-tlsnp|9-=;=9->;=6H----nqwrqP|y|;o-J-pynz}5p|y|;o-7-olsnp|9-=;=9->;=6H----r{-nqwrqP|y|H\frp@-to?u5rp@-p6-\n----rpA-X-J-rpA5=;=9-:>;=-<-@;=9-?;=-<-@;=9-:>;=6H----rpA-}-J-zv\x075rpA5p;ot9-X; 69-rpA5p;to9-X;\x07\b69-r}5p;o9-p;t66H----rpA-\0-J-zv\x075rpA5};\x07\b9-p;69-rpA5p;9-};\b \x0769-r}5};\x079-p;66H----sy|n-q-J-\0;\x07-:-zv{5\0;9-\0;\b6H----sy|n-r-J->;=r:>=H----r{-rp@5no5\0; -8-5\0;-:-\0;\b6-<-5C;=-7-q-8-r669-q-<-5\0;\x07-8-r69-\0;\x076H\frp@-u?to5rp@-p6-\n----rpA-X-J-rpA5>;=9-?;=-<-@;=9->;=-<-@;=9-@;=6H----rp@-}-J-no5snp5p;\x07\x07\x07-8-X;\x07\b 6-7-C;=-:-X;6H----r{-p; -7-zv\x075X;\x07\x07\x079-pynz}5}-:-X;\x07\x07\x079-=;=9->;=69-p;\b6H\fZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--<<-JJJ-点大小剔除-JJJ--vs-5]|v{`v r-I-=;==>6-\n----qvpnqH--\f--<<-JJJ-前置裁切计算-JJJ--0vs-[bZlPYV]]R_`-K-=----o||y-pyv}}rqH----rpA-pyv}}r]|vv|{H----0}ntzn-{|yyly||}ln----s|-5-v{-v-J-=H-v-I-[bZlPYV]]R_`H-v-88-6-\n------pyv}}r]|vv|{-J-pyv}}rh-v-j;znv\x07V{rr-7-d|yq]|vv|{H------pyv}}rq-J-5pyv}}rh-v-j;sy||V{qr\x07-I-=;=-\v\v-no5sy||V{qr\x07-:-pyv}}rh-v-j;sy||V{qr\x076-I->;=6H------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\x07-K-:=;B-33-pyv}}r]|vv|{;\x07-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\b-K-:=;B-33-pyv}}r]|vv|{;\b-I-=;BH------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{; -K-:=;B-33-pyv}}r]|vv|{; -I-=;BH------vs-5pyv}}rq6-\n--------qvpnqH------\f----\f----0}ntzn-{|yyly||}lr{q--0r{qvs--<<-JJJJJJJJJJJJJJJJ--sy|n-}-J-?;=-7-tyl]|v{P||q;\x07-:->;=H--sy|n-}-J-?;=-7-tyl]|v{P||q;\b-:->;=H--sy|n-}-J-}-7-}-8-}-7-}H--<<-JJJ-形状裁切-JJJ--0vs-qrsv{rq5b`Rl]\\V[al`UN]RlPV_PYR6----vs-5]|v{`v r-K-@;=-33-}-K->;=6-\n------qvpnqH----\f--0r{qvs--<<-JJJJJJJJJJJJJ--0v{pyqr-Ipyv}}v{tl}yn{rlsntzr{K--0v{pyqr-Iy|tqr}uoslsntzr{K--<<-JJJ-颜色-JJJ--rpA-sv{nyP|y|-J-_TOa|Yv{rn5rpA5P|y|9-|}npv\b66H--0vs-qrsv{rq5b`Rl]\\V[al[\\_ZNY6----0vs-qrsv{rq5b`Rl]\\V[alONPXlUVQQR[6------rp@-pnzrnQvrpv|{-J-{|znyv r5pnzrn]|vv|{-:-d|yq]|vv|{;\x07\b 6H------vs-5q|5pnzrnQvrpv|{9-[|zny6-I-=;=6-\n--------qvpnqH------\f----0ryvs-qrsv{rq5b`Rl]\\V[alONPXlQN_X6------rp@-pnzrnQvrpv|{-J-{|znyv r5pnzrn]|vv|{-:-d|yq]|vv|{;\x07\b 6H------vs-5q|5pnzrnQvrpv|{9-[|zny6-I-=;=6-\n--------sv{nyP|y|;\x07\b -J-sv{nyP|y|;\x07\b -7-=;EH------\f----0r{qvs--0r{qvs--tylSntP|y|-J-sv{nyP|y|H--<<-JJJJJJJJJJJ--<<-JJJ-楼层显示-JJJ--sy|n-sy||\\}npv\b-J->;=H--vs-5u|{Sy||V{qr\x07-K-:=;=>-33-no5sy||V{qr\x07-:-u|{Sy||V{qr\x076-K-=;FF6-\n----sy||\\}npv\b-J-=;>-7-zv{55>;=-8-PnzrnQvrpv|{;\b69->;=6H--\f--tylSntP|y|;n-J-tylSntP|y|;n-7-sy||\\}npv\bH--<<-JJJJJJJJJJJJJJ--tylSntP|y|;n-J-tylSntP|y|;n-7-z|qryNy}unH--ZNV[lZ\\QRYlP\\Y\\_--0v{pyqr-I|{rzn}}v{tlsntzr{K--0v{pyqr-Ir{p|qv{tlsntzr{K--<<-JJJ-颜色增益调整-JJJ--rp@-toP|y|-J-tylSntP|y|;toH--rp@-uP|y|-J-to?u5toP|y|6H--uP|y|;\b-8J-p|y|`nnv|{H--uP|y|; -8J-p|y|Ovtu{rH--tylSntP|y|;to-J-u?to5uP|y|6H--0v{pyqr-Is|tlsntzr{K--0v{pyqr-I}rzyv}yvrqlny}unlsntzr{K--<<-边缘增强--0vs-qrsv{rq5b`Rl]\\V[al[\\_ZNY6----rp@-toP|y|?-J-tylSntP|y|;toH----rp@-uP|y|?-J-to?u5toP|y|?6H----rp@-vrQv-J-{|znyv r5v\\u|tn}uvp-L-PnzrnQvrpv|{-G-d|yq]|vv|{;\x07\b -:-pnzrn]|vv|{6H----<<-计算边缘增益----sy|n-p|aurn-J-q|5{|znyv r5[|zny69-vrQv6H----sy|n-n{tyr-J-np|5p|aurn6H----sy|n-|yv{rSnp|-J-}|5>;=-:-no5n{tyr-:-]VlUNYS6-<-]VlUNYS9-B;=6H----uP|y|?; -8J-|yv{rTnv{-7-|yv{rSnp|H-<<-增加亮度----uP|y|?; -J-pynz}5uP|y|?; 9-=;=9->;=6H------<<-距离增益----rp@-o|{qv{tPr{r-J-5z|qryO|{qv{tZn\x07-8-z|qryO|{qv{tZv{6-<-?;=H----sy|n-o|{qv{tYr{tu-J-yr{tu5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6-7->;BH----sy|n-nrntrQvn{pr-J->=;=H-<<-设定一个平均距离----rp@-pnzrna|]|v{-J-d|yq]|vv|{;\x07\b -:-pnzrn]|vv|{H----sy|n-pnzrnO|{qv{tQvn{pr-J-zn\x075=;=9-yr{tu5pnzrn]|vv|{-:-o|{qv{tPr{r6-:-o|{qv{tYr{tu-<-?;=6H----sy|n-pnzrnQvn{pr-J-yr{tu5v\\u|tn}uvp-L-vrQv-7-q|5vrQv9-pnzrna|]|v{6-G-pnzrna|]|v{6-:-pnzrnO|{qv{tQvn{prH----sy|n-qvn{prSnp|-J-pynz}5zn\x075pnzrnQvn{pr-:-nrntrQvn{pr9-=;=6-<-o|{qv{tYr{tu9-=;=9->;=6H----qvn{prSnp|-J-5=;E-:-pynz}5>;=-:-}|5>;=-:-qvn{prSnp|9-@;=69-=;=9->;=66-7->?;=H----tylSntP|y|;n-8J-zv\x075tylSntP|y|;n-7-qvn{prTnv{-7-qvn{prSnp|9-=;=9-|yv{rSnp|6H-<<-增加透明度----tylSntP|y|;n-J-pynz}5tylSntP|y|;n9-=;=9->;=6H----tylSntP|y|;to-J-u?to5uP|y|?6H--0r{qvs--0vs-qrsv{rq5b`RlRQY6----tylSntP|y|;n-J-Y|tQr}uH--0r{qvs--0vs-qrsv{rq5b`RlU^ldRVTUa6----sy|n-qvn{pr-J-?;=-7-yr{tu5tyl]|v{P||q;\x07\b-:-=;B6H----sy|n-rvtu-J-zn\x075=;=9->;=-:-qvn{pr6H----rvtu-J-}|5rvtu9->;B6H----tylSntP|y|;n-J-rvtuH----tylSntP|y|;\x07\b -J-tylSntP|y|;\x07\b -7-rvtuH--0r{qvs--ZNV[lR[Q\f"),pointCloudVertexShader=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}("nvor-rp@-p|y|H0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6--{vs|z-rp@-p|{n{P|y|H0r{qvs0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6--{vs|z-nz}yr?Q-tnqvr{ar\x07rH0r{qvs0vs-qrsv{rq5b`RlRQY6--n\bv{t-sy|n-Y|tQr}uH0r{qvs{vs|z-rp?-r|yv|{H{vs|z-sy|n-}v\x07ry_nv|H{vs|z-sy|n-}|v{`pnyrH{vs|z-sy|n-}|v{Zv{]v\x07ryH{vs|z-sy|n-}|v{Zn\x07]v\x07ryH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-tr|zrvpR|H{vs|z-rp@-z|qryO|{qv{tZn\x07H{vs|z-rp@-z|qryO|{qv{tZv{Hn\bv{t-rpA-d|yq]|vv|{Hn\bv{t-rp@-PnzrnQvrpv|{Hn\bv{t-rp@-P|y|Hn\bv{t-sy|n-]|v{`v rH0vs-qrsv{rq5b`Rl]\\V[al[\\_ZNY6--n\bv{t-rp@-[|znyH0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-Is|tl}nlrr\x07K0v{pyqr-Iz|}untrl}nlrr\x07K0v{pyqr-Iy|tqr}uosl}nlrr\x07K0v{pyqr-Ipyv}}v{tl}yn{rl}nlrr\x07Krp@-trP|y|O\bUrvtu5nz}yr?Q-tnqvr{ar\x07r9-rpA-d|yq]|vv|{6-\n--sy|n--J-5d|yq]|vv|{;\b-:-z|qryO|{qv{tZv{;\b6-<-5z|qryO|{qv{tZn\x07;\b-:-z|qryO|{qv{tZv{;\b6H--r{-r\x07r?Q5tnqvr{ar\x07r9-rp?59-=;B66;toH\fZNV[lORS\\_R|vq-znv{56-\n--ZNV[l`aN_a--0v{pyqr-Iortv{lrr\x07K--d|yq]|vv|{-J-rpA5n{s|zrq9->;=6H--0vsqrs-b`RlV[`aN[PV[T----d|yq]|vv|{-J-v{n{prZnv\x07-7-d|yq]|vv|{H--0r{qvs--d|yq]|vv|{-J-z|qryZnv\x07-7-d|yq]|vv|{H--rpA-z]|vv|{-J-vrZnv\x07-7-d|yq]|vv|{H--tyl]|vv|{-J-}|wrpv|{Znv\x07-7-z]|vv|{H--0v{pyqr-Iy|tqr}uoslrr\x07K--0v{pyqr-Ipyv}}v{tl}yn{rlrr\x07K--zn@-pnzrn_|nv|{Znv\x07-J-zn@5vrZnv\x07h=jh=j9-vrZnv\x07h>jh=j9-vrZnv\x07h?jh=j9-vrZnv\x07h=jh>j9-vrZnv\x07h>jh>j9-vrZnv\x07h?jh>j9-vrZnv\x07h=jh?j9-vrZnv\x07h>jh?j9-vrZnv\x07h?jh?j6H--PnzrnQvrpv|{-J-{|znyv r5pnzrn_|nv|{Znv\x07-7-rp@5=;=9-=;=9-:>;=66H--<<传递nvor的p|y|到s里使用--<<动态调整}|v{`v r--sy|n-rny]|v{`v r-J-}|v{`pnyr-7-}v\x07ry_nv|H--0vs-qrsv{rq5b`Rl]\\V[al`VgRlTR\\ZRa_VP6----rny]|v{`v r-7J-tr|zrvpR|H----sy|n-urvtu-J->;=-<-}|wrpv|{Znv\x07h>jh>j-7-zv\x075>;=9-:z]|vv|{; 9-:}|wrpv|{Znv\x07h?jh@j6-7-?;=H----rny]|v{`v r-J-r|yv|{;\b-7-rny]|v{`v r-<-urvtuH--0ryvs-qrsv{rq5b`Rl]\\V[al`VgRlNaaR[bNaV\\[6----sy|n-urvtu-J->;=-<-}|wrpv|{Znv\x07h>jh>j-7-zv\x075>;=9-:z]|vv|{; 9-:}|wrpv|{Znv\x07h?jh@j6-7-?;=H----rny]|v{`v r-J-r|yv|{;\b-7-rny]|v{`v r-<-urvtuH--0r{qvs--tyl]|v{`v r-J-pynz}5rny]|v{`v r9-}|v{Zv{]v\x07ry-7-}v\x07ry_nv|9-}|v{Zn\x07]v\x07ry-7-}v\x07ry_nv|6H--]|v{`v r-J-tyl]|v{`v rH--P|y|-J-p|y|H--<<-JJJ-高度色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lNYaVabQR6----P|y|-J-trP|y|O\bUrvtu5tnqvr{ar\x07r9-d|yq]|vv|{6H--0r{qvs--<<-JJJJJJJJJJJ--<<-JJJ-纯色-JJJ--0vs-qrsv{rq5b`RlP\\Y\\_lP\\[`aN[a6----P|y|-J-p|{n{P|y|H--0r{qvs--<<-JJJJJJJJJJJ--0vs-qrsv{rq5b`Rl]\\V[al[\\_ZNY6----[|zny-J-{|znyv r5zn@5z|qryZnv\x076-7-{|zny6H--0r{qvs--0vs-qrsv{rq5b`RlRQY6----Y|tQr}u-J-y|t?5:z]|vv|{; 6H--0r{qvs--0vs-qrsv{rq5b`RlU^lQR]aU6----<<-sy|n-}|wSnp|-J-:=;B-7-r|yv|{;\b-<-5n{5s|-<-?;=6-7-z]|vv|{; 6H----<<-sy|n-_nqv-J-rny]|v{`v r-<-}|wSnp|H----sy|n-|vtv{nyQr}u-J-tyl]|vv|{;H----sy|n-nqwrqQr}u-J-|vtv{nyQr}u-8-=;>H----sy|n-nqw-J-nqwrqQr}u-<-|vtv{nyQr}uH----z]|vv|{;\x07\b -J-z]|vv|{;\x07\b -7-nqwH----tyl]|vv|{-J-}|wrpv|{Znv\x07-7-z]|vv|{H--0r{qvs--0v{pyqr-I|yq}|lrr\x07K--0v{pyqr-Is|tlrr\x07K--ZNV[lR[Q\f");var pbmUniforms=Object.assign({pointScale:new THREE__namespace.Uniform(1),pointMinPixel:new THREE__namespace.Uniform(1),pointMaxPixel:new THREE__namespace.Uniform(1),opacity:new THREE__namespace.Uniform(1),gradientTexture:new THREE__namespace.Uniform(null),modelAlpha:new THREE__namespace.Uniform(0),clippers:new THREE__namespace.Uniform([]),shownFloorIndex:new THREE__namespace.Uniform(-1),constantColor:new THREE__namespace.Uniform(new THREE__namespace.Vector3),geometricError:new THREE__namespace.Uniform(0),pixelRatio:new THREE__namespace.Uniform(1),resolution:new THREE__namespace.Uniform(new THREE__namespace.Vector2(512,512)),floorIndex:new THREE__namespace.Uniform(0),brightness:new THREE__namespace.Uniform(1),modelBoundingMin:new THREE__namespace.Uniform(new THREE__namespace.Vector3),modelBoundingMax:new THREE__namespace.Uniform(new THREE__namespace.Vector3),colorSaturation:new THREE__namespace.Uniform(0),colorBrightness:new THREE__namespace.Uniform(0),outlineGain:new THREE__namespace.Uniform(0),distanceGain:new THREE__namespace.Uniform(0)},THREE__namespace.UniformsUtils.clone(THREE__namespace.UniformsLib.fog)),PBMPointCloudMaterial=function(n){__extends(t,n);function t(e){e===void 0&&(e={});var r,o,s,u,l,c,f,d,p,v,A,g,h,y,m,E,b,T,_,R,S,C,B,L,M,w,H,O,I=n.call(this,{vertexShader:pointCloudVertexShader,fragmentShader:pointCloudFragmentShader,uniforms:THREE__namespace.UniformsUtils.clone(pbmUniforms),lights:!1,clipping:!0,defines:{USE_COLOR_CONSTANT:!1,USE_COLOR_ALTITUDE:!1,USE_EDL:!1,USE_HQ_WEIGHT:!1,USE_HQ_DEPTH:!1,NUM_CLIPPING_BOX:!1,USE_CLIPFLOOR:!1,USE_VERTEX_MARK:!1,USE_MAP:!0,USE_UV:!0,USE_LUMINANCE:!1,USE_BLACK_TRANSITION:!1,USE_POINT_NORMAL:!1,USE_POINT_SHAPE_CIRCLE:!1,USE_POINT_SIZE_ATTENUATION:!1,USE_POINT_SIZE_GEOMETRIC:!1,USE_POINT_BACK_HIDDEN:!1,USE_POINT_BACK_DARK:!1}})||this,N;return I.customShaderHash="",I.customShaderUniforms={},I.customShaderDefines={},Object.defineProperties(I,{constantColor:{get:function(){return this.uniforms.constantColor.value},set:function(k){this.uniforms.constantColor.value=k}},opacity:{get:function(){return this.uniforms.opacity.value},set:function(k){this.uniforms.opacity.value=k}},modelAlpha:{get:function(){return this.uniforms.modelAlpha.value},set:function(k){this.uniforms.modelAlpha.value=k}},shownFloorIndex:{get:function(){return this.uniforms.shownFloorIndex.value},set:function(k){this.uniforms.shownFloorIndex.value=k}},clippers:{get:function(){return N},set:function(k){N!==k&&(N=k,this.uniforms.clippers.value=(N||[]).map(function(U){var D=typeof U.floorIndex=="number"?U.floorIndex:-1,q=new THREE__namespace.Matrix4().getInverse(U.clippingBoxMatrix);return{matrixInverse:q,floorIndex:D}}),this.needsUpdate=!0)}},colorStyle:{get:function(){return this.defines.USE_COLOR_CONSTANT?"CONSTANT":this.defines.USE_COLOR_ALTITUDE?"ALTITUDE":"RGB"},set:function(k){var U=k==="CONSTANT",D=k==="ALTITUDE";this.defines.USE_COLOR_CONSTANT!==U&&(this.defines.USE_COLOR_CONSTANT=U,this.needsUpdate=!0),this.defines.USE_COLOR_ALTITUDE!==D&&(this.defines.USE_COLOR_ALTITUDE=D,this.needsUpdate=!0)}},pointSize:{get:function(){return this.defines.USE_POINT_SIZE_GEOMETRIC===!0?"GEOMETRIC":this.defines.USE_POINT_SIZE_ATTENUATION===!0?"ATTENUATION":"FIXED"},set:function(k){var U=k==="ATTENUATION",D=k==="GEOMETRIC";this.defines.USE_POINT_SIZE_GEOMETRIC!==D&&(this.defines.USE_POINT_SIZE_GEOMETRIC=D,this.needsUpdate=!0),this.defines.USE_POINT_SIZE_ATTENUATION!==U&&(this.defines.USE_POINT_SIZE_ATTENUATION=U,this.needsUpdate=!0)}},pointShape:{get:function(){return this.defines.USE_POINT_SHAPE_CIRCLE===!0?"CIRCLE":"SQUARE"},set:function(k){var U=k==="CIRCLE";this.defines.USE_POINT_SHAPE_CIRCLE!==U&&(this.defines.USE_POINT_SHAPE_CIRCLE=U,this.needsUpdate=!0)}},pointScale:{get:function(){return this.uniforms.pointScale.value},set:function(k){this.uniforms.pointScale.value=k}},pointBack:{get:function(){return this.defines.USE_POINT_BACK_HIDDEN===!0?"HIDDEN":this.defines.USE_POINT_BACK_DARK===!0?"DARK":"VISIBLE"},set:function(k){var U=k==="HIDDEN",D=k==="DARK";this.defines.USE_POINT_BACK_HIDDEN!==U&&(this.defines.USE_POINT_BACK_HIDDEN=U,this.needsUpdate=!0),this.defines.USE_POINT_BACK_DARK!==D&&(this.defines.USE_POINT_BACK_DARK=D,this.needsUpdate=!0)}},pointMinPixel:{get:function(){return this.uniforms.pointMinPixel.value},set:function(k){this.uniforms.pointMinPixel.value=k}},pointMaxPixel:{get:function(){return this.uniforms.pointMaxPixel.value},set:function(k){this.uniforms.pointMaxPixel.value=k}},useEDL:{get:function(){return this.defines.USE_EDL},set:function(k){k!==this.defines.USE_EDL&&(this.defines.USE_EDL=k,this.needsUpdate=!0)}},useHQWeight:{get:function(){return this.defines.USE_HQ_WEIGHT},set:function(k){k!==this.defines.USE_HQ_WEIGHT&&(this.defines.USE_HQ_WEIGHT=k,this.needsUpdate=!0)}},useHQDepth:{get:function(){return this.defines.USE_HQ_DEPTH},set:function(k){k!==this.defines.USE_HQ_DEPTH&&(this.defines.USE_HQ_DEPTH=k,this.needsUpdate=!0)}},gradientTexture:{get:function(){return this.uniforms.gradientTexture.value},set:function(k){this.uniforms.gradientTexture.value=k}},floorIndex:{get:function(){return this.uniforms.floorIndex.value},set:function(k){this.uniforms.floorIndex.value=k}},brightness:{get:function(){return this.uniforms.brightness.value},set:function(k){this.uniforms.brightness.value=k}},colorSaturation:{get:function(){return this.uniforms.colorSaturation.value},set:function(k){this.uniforms.colorSaturation.value=k}},colorBrightness:{get:function(){return this.uniforms.colorBrightness.value},set:function(k){this.uniforms.colorBrightness.value=k}},outlineGain:{get:function(){return this.uniforms.outlineGain.value},set:function(k){this.uniforms.outlineGain.value=k}},distanceGain:{get:function(){return this.uniforms.distanceGain.value},set:function(k){this.uniforms.distanceGain.value=k}}}),I.pano0=(r=e.pano0)!==null&&r!==void 0?r:defaultPbmParameters.pano0,I.pano1=(o=e.pano1)!==null&&o!==void 0?o:defaultPbmParameters.pano1,I.modelAlpha=(s=e.modelAlpha)!==null&&s!==void 0?s:defaultPbmParameters.modelAlpha,I.progress=(u=e.progress)!==null&&u!==void 0?u:defaultPbmParameters.progress,I.transition=(l=e.transition)!==null&&l!==void 0?l:defaultPbmParameters.transition,I.colorStyle=(c=e.colorStyle)!==null&&c!==void 0?c:defaultPbmParameters.colorStyle,I.constantColor=(f=e.constantColor)!==null&&f!==void 0?f:defaultPbmParameters.constantColor,I.opacity=(d=e.opacity)!==null&&d!==void 0?d:defaultPbmParameters.opacity,I.floorStyle=(p=e.floorStyle)!==null&&p!==void 0?p:defaultPbmParameters.floorStyle,I.shownFloorIndex=(v=e.shownFloorIndex)!==null&&v!==void 0?v:defaultPbmParameters.shownFloorIndex,I.clippers=(A=e.clippers)!==null&&A!==void 0?A:defaultPbmParameters.clippers,I.useEDL=(g=e.useEDL)!==null&&g!==void 0?g:defaultPbmParameters.useEDL,I.useHQWeight=(h=e.useHQWeight)!==null&&h!==void 0?h:defaultPbmParameters.useHQWeight,I.useHQDepth=(y=e.useHQDepth)!==null&&y!==void 0?y:defaultPbmParameters.useHQDepth,I.pointShape=(m=e.pointShape)!==null&&m!==void 0?m:defaultPbmParameters.pointShape,I.pointSize=(E=e.pointSize)!==null&&E!==void 0?E:defaultPbmParameters.pointSize,I.pointScale=(b=e.pointScale)!==null&&b!==void 0?b:defaultPbmParameters.pointScale,I.pointBack=(T=e.pointBack)!==null&&T!==void 0?T:defaultPbmParameters.pointBack,I.pointMinPixel=(_=e.pointMinPixel)!==null&&_!==void 0?_:defaultPbmParameters.pointMinPixel,I.pointMaxPixel=(R=e.pointMaxPixel)!==null&&R!==void 0?R:defaultPbmParameters.pointMaxPixel,I.gradientTexture=(S=e.gradientTexture)!==null&&S!==void 0?S:defaultPbmParameters.gradientTexture,I.brightness=(C=e.brightness)!==null&&C!==void 0?C:defaultPbmParameters.brightness,I.colorSaturation=(B=e.colorSaturation)!==null&&B!==void 0?B:defaultPbmParameters.colorSaturation,I.colorBrightness=(L=e.colorBrightness)!==null&&L!==void 0?L:defaultPbmParameters.colorBrightness,I.outlineGain=(M=e.outlineGain)!==null&&M!==void 0?M:defaultPbmParameters.outlineGain,I.distanceGain=(w=e.distanceGain)!==null&&w!==void 0?w:defaultPbmParameters.distanceGain,I.customShaders=(H=e.customShaders)!==null&&H!==void 0?H:defaultPbmParameters.customShaders,I.useAddBlend=(O=e.useAddBlend)!==null&&O!==void 0?O:defaultPbmParameters.useAddBlend,I.customShaderHash="",I.floorIndex=0,I.transparent=!0,I}return t.prototype.onBeforeCompile=function(e,r){var o,s,u=this.customShaders.filter(function(h){return h.type.includes("pointcloud")}),l=u.reduce(function(h,y){return h+y.vertex.mainBefore},""),c=u.reduce(function(h,y){return h+y.vertex.mainStart},""),f=u.reduce(function(h,y){return h+y.vertex.mainEnd},""),d=u.reduce(function(h,y){return h+y.fragment.mainBefore},""),p=u.reduce(function(h,y){return h+y.fragment.mainStart},""),v=u.reduce(function(h,y){return h+y.fragment.mainModelColor},""),A=u.reduce(function(h,y){return h+y.fragment.mainEnd},"");e.vertexShader=e.vertexShader.replace(/MAIN_BEFORE/g,l),e.fragmentShader=e.fragmentShader.replace(/MAIN_BEFORE/g,d),e.vertexShader=e.vertexShader.replace(/MAIN_START/g,c),e.fragmentShader=e.fragmentShader.replace(/MAIN_START/g,p),e.vertexShader=e.vertexShader.replace(/MAIN_END/g,f),e.fragmentShader=e.fragmentShader.replace(/MAIN_END/g,A),e.fragmentShader=e.fragmentShader.replace(/MAIN_MODEL_COLOR/g,v);var g=String((s=(o=this.clippers)===null||o===void 0?void 0:o.length)!==null&&s!==void 0?s:0);e.vertexShader=e.vertexShader.replace(/NUM_CLIPPERS/g,g),e.fragmentShader=e.fragmentShader.replace(/NUM_CLIPPERS/g,g),u.forEach(function(h){h.onBeforeCompile(e,r)})},t.prototype.update=function(e,r,o){var s="".concat(o.id,":").concat(o.materialVersion);s!==this.syncModelVersion&&(Object.assign(this,o.getMaterial()),this.syncModelVersion=s);var u=this.customShaders.map(function(m){return m.getHash()}).join("");this.customShaderHash!==u&&(this.customShaderHash=u,this.needsUpdate=!0);for(var l=this.customShaders.reduce(function(m,E){return Object.assign(m,E.defines)},{}),c=Object.keys(this.customShaderDefines),f=0,d=c;f<d.length;f++){var p=d[f];delete this.defines[p]}this.customShaderDefines=l,Object.assign(this.defines,this.customShaderDefines);for(var v=this.customShaders.reduce(function(m,E){return Object.assign(m,E.uniforms)},{}),A=Object.keys(this.customShaderUniforms),g=0,h=A;g<h.length;g++){var y=h[g];delete this.uniforms[y]}this.customShaderUniforms=v,Object.assign(this.uniforms,this.customShaderUniforms),this.visible=!0,this.transparent=!1,this.shownFloorIndex>-1&&(this.transparent=this.shownFloorIndex!==this.floorIndex),this.modelAlpha<1&&(this.transparent=!0),this.opacity<1&&(this.transparent=!0),this.brightness<1&&(this.transparent=!0),this.useAddBlend?(this.depthWrite=!1,this.depthTest=!1,this.blending=THREE__namespace.AdditiveBlending):(this.depthWrite=!0,this.depthTest=!0,this.blending=THREE__namespace.NormalBlending),this.useEDL&&(this.transparent=!1),this.useHQWeight?(this.depthWrite=!1,this.blending=THREE__namespace.CustomBlending,this.blendSrc=THREE__namespace.SrcAlphaFactor,this.blendSrcAlpha=THREE__namespace.SrcAlphaFactor,this.blendDst=THREE__namespace.OneFactor,this.blendDstAlpha=THREE__namespace.OneFactor):(this.blending=THREE__namespace.NormalBlending,this.blendDst=THREE__namespace.OneMinusSrcAlphaFactor,this.blendEquation=THREE__namespace.AddEquation,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null),this.floorStyle==="VISIBILITY"&&this.shownFloorIndex!==-1&&this.floorIndex!==this.shownFloorIndex&&(this.visible=!1),this.uniforms.pixelRatio.value=r.pixelRatio,this.uniforms.resolution.value.copy(r.resolution),this.uniforms.modelBoundingMax.value.copy(o.bounding.max),this.uniforms.modelBoundingMin.value.copy(o.bounding.min)},t.prototype.copy=function(e){return n.prototype.copy.call(this,this),this.customShaders=e.customShaders,this.pano0=e.pano0,this.pano1=e.pano1,this.progress=e.progress,this.transition=e.transition,this.floorStyle=e.floorStyle,this.shownFloorIndex=e.shownFloorIndex,this.brightness=e.brightness,this.clippers=e.clippers,this.constantColor=e.constantColor,this.modelAlpha=e.modelAlpha,this.useEDL=e.useEDL,this.useHQWeight=e.useHQWeight,this.useHQDepth=e.useHQDepth,this.colorStyle=e.colorStyle,this.pointSize=e.pointSize,this.pointShape=e.pointShape,this.pointScale=e.pointScale,this.pointBack=e.pointBack,this.pointMinPixel=e.pointMinPixel,this.pointMaxPixel=e.pointMaxPixel,this.gradientTexture=e.gradientTexture,this.colorSaturation=e.colorSaturation,this.colorBrightness=e.colorBrightness,this.outlineGain=e.outlineGain,this.distanceGain=e.distanceGain,this.useAddBlend=e.useAddBlend,this},t}(THREE__namespace.ShaderMaterial),InternalWebGLRenderer=function(n){__extends(t,n);function t(e){var r=e.preserveDrawingBuffer,o=r===void 0?!0:r,s=e.premultipliedAlpha,u=s===void 0?!0:s,l=e.stencil,c=l===void 0?!0:l,f=e.backgroundColor,d=f===void 0?1579548:f,p=e.backgroundAlpha,v=p===void 0?1:p,A=e.pixelRatio,g=A===void 0?1:A,h=e.antialias,y=h===void 0?!1:h,m=e.webgl2,E=e.logarithmicDepthBuffer,b=e.precision,T=e.powerPreference,_=this,R={antialias:y,alpha:!0,depth:!0,preserveDrawingBuffer:o,stencil:c,premultipliedAlpha:u,powerPreference:T},S={logarithmicDepthBuffer:E,precision:b};if(m){var C=document.createElement("canvas"),B=C.getContext("webgl2",R);B?_=n.call(this,__assign(__assign(__assign({},R),S),{antialias:!0,canvas:C,context:B}))||this:(console.error("error occurred when getting webgl2 canvas context, mybe webgl2 not support, fallback to webgl."),_=n.call(this,__assign(__assign({},R),S))||this)}else _=n.call(this,__assign(__assign({},R),S))||this;return _.setPixelRatio(g),_.setClearColor(d,v),_.outputEncoding=THREE__namespace.sRGBEncoding,_.autoClear=!0,_}return t}(THREE__namespace.WebGLRenderer),Scene=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.add=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return n.prototype.add.apply(this,e)},t.prototype.remove=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return n.prototype.remove.apply(this,e)},t}(THREE__namespace.Scene);function coordinatesToVector(n,t){var e=Math.abs(Math.cos(n.latitude)),r=-Math.sin(n.longitude)*e,o=-Math.sin(n.latitude),s=-Math.cos(n.longitude)*e;return t?t.set(r,o,s):new THREE__namespace.Vector3(r,o,s)}var DEFAULT_ASPECT=1,DEFAULT_NEAR=.1,DEFAULT_FAR=2e3,TAU$2=Math.PI*2,PI_2=Math.PI/2;function formatRad$1(n){return n>0&&n<=TAU$2?n:(n%TAU$2+TAU$2)%TAU$2}function matrixLerp(n,t,e,r){e=Math.pow(e,4);for(var o=0;o<16;o++)r.elements[o]=n.elements[o]+(t.elements[o]-n.elements[o])*e;return r}var Camera=function(n){__extends(t,n);function t(e,r,o,s,u,l,c){r===void 0&&(r=DEFAULT_ASPECT),o===void 0&&(o=DEFAULT_NEAR),s===void 0&&(s=DEFAULT_FAR),u===void 0&&(u=new THREE__namespace.Vector2),l===void 0&&(l=new THREE__namespace.Vector2(512,512)),c===void 0&&(c=1);var f=n.call(this)||this;f.fov=e,f.aspect=r,f.near=o,f.far=s,f.perspToOrtho=u,f.resolution=l,f.pixelRatio=c,f.time=0,f.needsRender=!0,f.refineModel=!0,f.pose={longitude:0,latitude:0,fov:e,distance:0,offset:new THREE__namespace.Vector3},f.computePose(),f.perspectiveCamera=new THREE__namespace.PerspectiveCamera(f.fov,f.aspect,.001,f.far);var d=Math.max(f.orthoDistance,.01)*Math.tan(.5*f.fov/180*Math.PI),p=-.5*f.aspect*2*d;return f.orthographicCamera=new THREE__namespace.OrthographicCamera(p,-p,d,-d,.001,f.far),f.computeProjectionMatrix(),f.lastValues={position:f.position.clone(),quaternion:f.quaternion.clone(),scale:f.scale.clone(),fov:f.fov,aspect:f.aspect,near:f.near,far:f.far,orthoDistance:f.orthoDistance,perspToOrtho:f.perspToOrtho.clone()},f.type=f.perspToOrtho.x<1?"PerspectiveCamera":"OrthographicCamera",f.autoNearFar=!0,f.environment=null,f}return Object.defineProperty(t.prototype,"orthoDistance",{get:function(){return this.pose.distance>1?this.pose.distance:1+(this.pose.distance-1)*this.perspToOrtho.x},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"zoom",{get:function(){return this.type==="OrthographicCamera"?this.orthographicCamera.zoom:this.type==="PerspectiveCamera"?this.perspectiveCamera.zoom:1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"top",{get:function(){return this.type==="OrthographicCamera"?this.orthographicCamera.top:0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bottom",{get:function(){return this.type==="OrthographicCamera"?this.orthographicCamera.bottom:0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"left",{get:function(){return this.type==="OrthographicCamera"?this.orthographicCamera.left:0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"right",{get:function(){return this.type==="OrthographicCamera"?this.orthographicCamera.right:0},enumerable:!1,configurable:!0}),t.prototype.getDirection=function(e){return coordinatesToVector(this.pose,e)},t.prototype.computePose=function(e){e===void 0&&(e=0),this.updateMatrix();var r=this.matrix.elements;return this.pose.latitude=Math.asin(clamp$1(r[9],-1,1)),Math.abs(r[9])<.9999999?this.pose.longitude=formatRad$1(Math.atan2(r[8],r[10])):this.pose.longitude=formatRad$1(Math.atan2(-r[2],r[0])),this.pose.fov=this.fov,this.pose.distance=e,this.pose.offset=new THREE__namespace.Vector3(-r[8],-r[9],-r[10]).setLength(this.pose.distance).add(this.position),this},t.prototype.setFromPose=function(e){var r,o,s,u,l,c=formatRad$1((r=e.longitude)!==null&&r!==void 0?r:this.pose.longitude),f=Math.max(-PI_2+1e-4,Math.min(PI_2-1e-4,(o=e.latitude)!==null&&o!==void 0?o:this.pose.latitude)),d=(s=e.fov)!==null&&s!==void 0?s:this.pose.fov,p=(u=e.distance)!==null&&u!==void 0?u:this.pose.distance,v=(l=e.offset)!==null&&l!==void 0?l:this.pose.offset,A=coordinatesToVector({longitude:c,latitude:f}).normalize();return this.position.set(0,0,0),this.lookAt(A),this.position.add(v).sub(A.clone().setLength(p)),this.fov!==d&&(this.fov=d,this.updateProjectionMatrix()),this.updateMatrixWorld(!0),this.pose.longitude=c,this.pose.latitude=f,this.pose.fov=d,this.pose.distance=p,this.pose.offset.copy(v),this.needsRender=!0,this},t.prototype.copyPose=function(){return{longitude:this.pose.longitude,latitude:this.pose.latitude,fov:this.pose.fov,distance:this.pose.distance,offset:this.pose.offset.clone()}},t.prototype.computeProjectionMatrix=function(){matrixLerp(this.orthographicCamera.projectionMatrix,this.perspectiveCamera.projectionMatrix,1-this.perspToOrtho.x,this.projectionMatrix),this.projectionMatrixInverse.getInverse(this.projectionMatrix),this.needsRender=!0},t.prototype.setViewOffset=function(e,r,o,s,u,l){this.perspectiveCamera.setViewOffset(e,r,o,s,u,l),this.orthographicCamera.setViewOffset(e,r,o,s,u,l),this.computeProjectionMatrix()},t.prototype.clearViewOffset=function(){this.perspectiveCamera.clearViewOffset(),this.orthographicCamera.clearViewOffset(),this.computeProjectionMatrix()},t.prototype.updateProjectionMatrix=function(){this.perspectiveCamera.updateProjectionMatrix(),this.orthographicCamera.updateProjectionMatrix(),this.computeProjectionMatrix()},Object.defineProperty(t.prototype,"perspectiveProjectionMatrix",{get:function(){return this.perspectiveCamera.projectionMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"perspectiveProjectionMatrixInverse",{get:function(){return this.perspectiveCamera.projectionMatrixInverse},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"orthographicProjectionMatrix",{get:function(){return this.orthographicCamera.projectionMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"orthographicProjectionMatrixInverse",{get:function(){return this.orthographicCamera.projectionMatrixInverse},enumerable:!1,configurable:!0}),t.prototype.updateTime=function(e){this.time=e;var r=!1;if((this.lastValues.fov!==this.fov||this.lastValues.near!==this.near||this.lastValues.far!==this.far||this.lastValues.aspect!==this.aspect)&&(this.perspectiveCamera.fov=this.fov,this.perspectiveCamera.near=this.near,this.perspectiveCamera.far=this.far,this.perspectiveCamera.aspect=this.aspect,this.perspectiveCamera.updateProjectionMatrix(),r=!0),!this.lastValues.position.equals(this.position)||!this.lastValues.quaternion.equals(this.quaternion)||!this.lastValues.scale.equals(this.scale)||!this.lastValues.perspToOrtho.equals(this.perspToOrtho)||this.lastValues.fov!==this.fov||this.lastValues.near!==this.near||this.lastValues.far!==this.far||this.lastValues.orthoDistance!==this.orthoDistance||this.lastValues.aspect!==this.aspect){var o=Math.max(this.orthoDistance,.01)*Math.tan(.5*this.fov/180*Math.PI),s=-.5*this.aspect*2*o;this.orthographicCamera.left=s,this.orthographicCamera.right=-s,this.orthographicCamera.top=o,this.orthographicCamera.bottom=-o,this.orthographicCamera.near=this.near,this.orthographicCamera.far=this.far,this.orthographicCamera.updateProjectionMatrix(),r=!0}r&&this.computeProjectionMatrix(),this.lastValues.position.copy(this.position),this.lastValues.quaternion.copy(this.quaternion),this.lastValues.scale.copy(this.scale),this.lastValues.fov=this.fov,this.lastValues.aspect=this.aspect,this.lastValues.near=this.near,this.lastValues.far=this.far,this.lastValues.orthoDistance=this.orthoDistance,this.lastValues.perspToOrtho.copy(this.perspToOrtho),this.type=this.perspToOrtho.x<1?"PerspectiveCamera":"OrthographicCamera"},Object.defineProperty(t.prototype,"isPerspectiveCamera",{get:function(){return this.perspToOrtho.x<1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isOrthographicCamera",{get:function(){return this.perspToOrtho.x>=1},enumerable:!1,configurable:!0}),t.prototype.copy=function(e,r){return n.prototype.copy.call(this,e,r),this.fov=e.fov,this.aspect=e.aspect,this.near=e.near,this.far=e.far,this.perspToOrtho.copy(e.perspToOrtho),this.updateTime(now()),this},t}(THREE__namespace.Camera),VolumePlaneIntersect;(function(n){n[n.Outside=-1]="Outside",n[n.Intersecting=0]="Intersecting",n[n.Inside=1]="Inside"})(VolumePlaneIntersect||(VolumePlaneIntersect={}));var EPSILON$2=1e-6,scratchVector=new THREE__namespace.Vector3,scratchMatrix4$4=new THREE__namespace.Matrix4,scratchXAxis=new THREE__namespace.Vector3,scratchYAxis=new THREE__namespace.Vector3,scratchZAxis=new THREE__namespace.Vector3,scratchSize=new THREE__namespace.Vector3,scratchBox3=new THREE__namespace.Box3,scratchSphere$1=new THREE__namespace.Sphere,scratchMatrix4Inverse$1=new THREE__namespace.Matrix4,scratchRay$1=new THREE__namespace.Ray,scratchObject3D=new THREE__namespace.Object3D,scratchFrustum=new THREE__namespace.Frustum;function quaternionFromMatrix3(n,t){var e=n.elements;return t.setFromRotationMatrix(scratchMatrix4$4.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1)),t}var CullingVolume=function(){function n(t){t===void 0&&(t=[]),this.planes=t}return Object.defineProperty(n,"MASK_OUTSIDE",{get:function(){return 4294967295},enumerable:!1,configurable:!0}),Object.defineProperty(n,"MASK_INSIDE",{get:function(){return 0},enumerable:!1,configurable:!0}),Object.defineProperty(n,"MASK_INDETERMINATE",{get:function(){return 2147483647},enumerable:!1,configurable:!0}),n.prototype.setFromFrustum=function(t){return this.planes=t.planes.map(function(e){return e.clone()}),this},n.prototype.setFromCamera=function(t){return scratchMatrix4$4.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),scratchFrustum.setFromProjectionMatrix(scratchMatrix4$4),this.setFromFrustum(scratchFrustum),this},n.prototype.applyMatrix4=function(t){for(var e=0,r=this.planes;e<r.length;e++){var o=r[e];o.applyMatrix4(t)}},n.prototype.copy=function(t){return this.planes=t.planes.map(function(e){return e.clone()}),this},n.prototype.clone=function(){return new n().copy(this)},n.prototype.computeVisibility=function(t){for(var e=VolumePlaneIntersect.Inside,r=0,o=this.planes;r<o.length;r++){var s=o[r],u=t.intersectPlane(s);switch(u){case VolumePlaneIntersect.Outside:return VolumePlaneIntersect.Outside;case VolumePlaneIntersect.Intersecting:e=VolumePlaneIntersect.Intersecting;break}}return e},n.prototype.computeVisibilityWithPlaneMask=function(t,e){if(e===n.MASK_OUTSIDE||e===n.MASK_INSIDE)return e;for(var r=n.MASK_INSIDE,o=Math.min(32,this.planes.length),s=0;s<o;++s){var u=1<<s;if(e&u){var l=this.planes[s],c=t.intersectPlane(l);if(c===VolumePlaneIntersect.Outside)return n.MASK_OUTSIDE;c===VolumePlaneIntersect.Intersecting&&(r|=u)}}return r},n}(),BoxBoundingVolume=function(){function n(){this.type="box",this.center=new THREE__namespace.Vector3,this.halfSize=new THREE__namespace.Vector3,this.rotation=new THREE__namespace.Matrix3}return n.prototype.fromJson=function(t){var e=t.box;this.center.set(e[0],e[1],e[2]);var r=e[3],o=e[4],s=e[5],u=e[6],l=e[7],c=e[8],f=e[9],d=e[10],p=e[11],v=Math.max(Math.sqrt(r*r+o*o+s*s),.001),A=Math.max(Math.sqrt(u*u+l*l+c*c),.001),g=Math.max(Math.sqrt(f*f+d*d+p*p),.001);this.halfSize.set(v,A,g);var h=this.halfSize.toArray().reduce(function(y,m){return y+m},0);return(isNaN(h)||h<=0)&&this.halfSize.setScalar(EPSILON$2),this.rotation.fromArray([r/v,o/v,s/v,u/A,l/A,c/A,f/g,d/g,p/g]),isNaN(this.rotation.toArray().reduce(function(y,m){return y+m},0))&&this.rotation.identity(),this},n.prototype.toJson=function(){return this.rotation.extractBasis(scratchXAxis,scratchYAxis,scratchZAxis),{box:__spreadArray(__spreadArray(__spreadArray(__spreadArray([],this.center.toArray(),!0),scratchXAxis.multiplyScalar(this.halfSize.x).toArray(),!0),scratchYAxis.multiplyScalar(this.halfSize.y).toArray(),!0),scratchZAxis.multiplyScalar(this.halfSize.z).toArray(),!0)}},n.prototype.copy=function(t){return this.center.copy(t.center),this.halfSize.copy(t.halfSize),this.rotation.copy(t.rotation),this},n.prototype.clone=function(){return new n().copy(this)},n.prototype.applyMatrix4=function(t){return scratchObject3D.position.copy(this.center),quaternionFromMatrix3(this.rotation,scratchObject3D.quaternion),scratchObject3D.scale.copy(this.halfSize),scratchObject3D.matrix.compose(scratchObject3D.position,scratchObject3D.quaternion,scratchObject3D.scale),scratchObject3D.matrix.premultiply(t),scratchObject3D.matrix.decompose(scratchObject3D.position,scratchObject3D.quaternion,scratchObject3D.scale),this.center.copy(scratchObject3D.position),this.rotation.setFromMatrix4(scratchMatrix4$4.makeRotationFromQuaternion(scratchObject3D.quaternion)),this.halfSize.copy(scratchObject3D.scale),this},n.prototype.getCenter=function(t){return t.copy(this.center)},n.prototype.distanceSquaredToPoint=function(t){var e=this.rotation.elements,r=t.x-this.center.x,o=t.y-this.center.y,s=t.z-this.center.z,u=0,l;return l=r*e[0]+o*e[1]+s*e[2],l<0&&(l=-l),l-=this.halfSize.x,l>0&&(u+=l*l),l=r*e[3]+o*e[4]+s*e[5],l<0&&(l=-l),l-=this.halfSize.y,l>0&&(u+=l*l),l=r*e[6]+o*e[7]+s*e[8],l<0&&(l=-l),l-=this.halfSize.z,l>0&&(u+=l*l),u},n.prototype.distanceToPoint=function(t){return Math.sqrt(this.distanceSquaredToPoint(t))},n.prototype.distanceToPlane=function(t){var e=t.projectPoint(this.center,new THREE__namespace.Vector3);return this.distanceToPoint(e)},n.prototype.getBoundingBox=function(t){return t.makeEmpty(),this.rotation.extractBasis(scratchXAxis,scratchYAxis,scratchZAxis),scratchXAxis.setLength(this.halfSize.x),scratchYAxis.setLength(this.halfSize.y),scratchZAxis.setLength(this.halfSize.z),t.expandByPoint(scratchVector.copy(this.center).add(scratchXAxis)),t.expandByPoint(scratchVector.copy(this.center).sub(scratchXAxis)),t.expandByPoint(scratchVector.copy(this.center).add(scratchYAxis)),t.expandByPoint(scratchVector.copy(this.center).sub(scratchYAxis)),t.expandByPoint(scratchVector.copy(this.center).add(scratchZAxis)),t.expandByPoint(scratchVector.copy(this.center).sub(scratchZAxis)),t},n.prototype.toGeometry=function(){var t=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),e=new Float32Array(8*3);scratchVector.set(this.halfSize.x,this.halfSize.y,this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,0),scratchVector.set(-this.halfSize.x,this.halfSize.y,this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,3),scratchVector.set(-this.halfSize.x,-this.halfSize.y,this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,6),scratchVector.set(this.halfSize.x,-this.halfSize.y,this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,9),scratchVector.set(this.halfSize.x,this.halfSize.y,-this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,12),scratchVector.set(-this.halfSize.x,this.halfSize.y,-this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,15),scratchVector.set(-this.halfSize.x,-this.halfSize.y,-this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,18),scratchVector.set(this.halfSize.x,-this.halfSize.y,-this.halfSize.z).applyMatrix3(this.rotation).add(this.center).toArray(e,21);var r=new THREE__namespace.BufferGeometry;return r.setIndex(new THREE__namespace.BufferAttribute(t,1)),r.setAttribute("position",new THREE__namespace.BufferAttribute(e,3)),r.computeBoundingBox(),r.computeBoundingSphere(),r},n.prototype.intersectPlane=function(t){var e=this.center,r=t.normal,o=this.rotation.elements,s=this.halfSize,u=r.x,l=r.y,c=r.z,f=Math.abs(u*o[0]*s.x+l*o[1]*s.x+c*o[2]*s.x)+Math.abs(u*o[3]*s.y+l*o[4]*s.y+c*o[5]*s.y)+Math.abs(u*o[6]*s.z+l*o[7]*s.z+c*o[8]*s.z),d=r.dot(e)+t.constant;return d<=-f?VolumePlaneIntersect.Outside:d>=f?VolumePlaneIntersect.Inside:VolumePlaneIntersect.Intersecting},n.prototype.intersectRay=function(t,e){if(scratchSize.copy(this.halfSize).multiplyScalar(2),scratchBox3.setFromCenterAndSize(scratchVector.set(0,0,0),scratchSize),this.rotation.extractBasis(scratchXAxis,scratchYAxis,scratchZAxis),scratchMatrix4$4.makeBasis(scratchXAxis,scratchYAxis,scratchZAxis),scratchMatrix4$4.setPosition(this.center),scratchMatrix4Inverse$1.getInverse(scratchMatrix4$4),scratchRay$1.copy(t).applyMatrix4(scratchMatrix4Inverse$1),scratchBox3.containsPoint(scratchRay$1.origin))return!0;var r=scratchRay$1.intersectBox(scratchBox3,scratchVector);return r?e!==void 0?r.applyMatrix4(scratchMatrix4$4).distanceTo(t.origin)<e:!0:!1},n}(),SphereBoundingVolume=function(){function n(){this.type="sphere",this.center=new THREE__namespace.Vector3,this.radius=-1}return n.prototype.fromJson=function(t){var e=t.sphere;return this.center.set(e[0],e[1],e[2]),this.radius=Math.max(e[3],EPSILON$2),this},n.prototype.toJson=function(){return{sphere:__spreadArray(__spreadArray([],this.center.toArray(),!0),[this.radius],!1)}},n.prototype.copy=function(t){return this.center.copy(t.center),this.radius=t.radius,this},n.prototype.clone=function(){return new n().copy(this)},n.prototype.getBoundingBox=function(t){return t.setFromCenterAndSize(this.center,scratchSize.set(1,1,1).multiplyScalar(this.radius*2)),t},n.prototype.toGeometry=function(){for(var t=32,e=new Float32Array(t*3*2*2),r=0;r<=t;r++){var o=0;o=r/t*Math.PI*2,e[r*6+0]=this.center.x+Math.cos(o)*this.radius,e[r*6+1]=this.center.y+Math.sin(o)*this.radius,e[r*6+2]=this.center.z+0,o=(r+1)/t*Math.PI*2,e[r*6+3]=this.center.x+Math.cos(o)*this.radius,e[r*6+4]=this.center.y+Math.sin(o)*this.radius,e[r*6+5]=this.center.z+0}for(var r=t;r<=t*2;r++){var o=0;o=r/t*Math.PI*2,e[r*6+0]=this.center.x+Math.cos(o)*this.radius,e[r*6+1]=this.center.y+0,e[r*6+2]=this.center.z+Math.sin(o)*this.radius,o=(r+1)/t*Math.PI*2,e[r*6+3]=this.center.x+Math.cos(o)*this.radius,e[r*6+4]=this.center.y+0,e[r*6+5]=this.center.z+Math.sin(o)*this.radius}var s=new THREE__namespace.BufferGeometry;return s.setAttribute("position",new THREE__namespace.BufferAttribute(e,3)),s.computeBoundingBox(),s.computeBoundingSphere(),s},n.prototype.applyMatrix4=function(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this},n.prototype.getCenter=function(t){return t.copy(this.center)},n.prototype.distanceSquaredToPoint=function(t){var e=this.distanceToPoint(t);return e*e},n.prototype.distanceToPoint=function(t){var e=this.center.distanceTo(t)-this.radius;return e<=0?0:e},n.prototype.distanceToPlane=function(t){var e=Math.abs(t.distanceToPoint(this.center));return Math.max(0,e-this.radius)},n.prototype.intersectPlane=function(t){var e=this.center,r=this.radius,o=t.normal,s=o.dot(e)+t.constant;return s<-r?VolumePlaneIntersect.Outside:s<r?VolumePlaneIntersect.Intersecting:VolumePlaneIntersect.Inside},n.prototype.intersectRay=function(t,e){if(scratchSphere$1.set(this.center,this.radius),scratchSphere$1.containsPoint(t.origin))return!0;var r=t.intersectSphere(scratchSphere$1,scratchVector);return r?e!==void 0?t.origin.distanceTo(r)<e:!0:!1},n}(),RegionBoundingVolume=function(){function n(){throw this.type="regin",this.west=0,this.south=0,this.east=0,this.north=0,this.minHeight=0,this.maxHeight=0,new Error("Region bounding volume not supported.")}return n.prototype.fromJson=function(t){var e=t.region;return this.west=e[0],this.south=e[1],this.east=e[2],this.north=e[3],this.minHeight=e[4],this.maxHeight=e[5],this},n.prototype.toJson=function(){return{region:[this.west,this.south,this.east,this.north,this.minHeight,this.maxHeight]}},n.prototype.copy=function(t){return this.west=t.west,this.south=t.south,this.east=t.east,this.north=t.north,this.minHeight=t.minHeight,this.maxHeight=t.maxHeight,this},n.prototype.clone=function(){return new n().copy(this)},n.prototype.getBoundingBox=function(t){throw new Error("not implemented")},n.prototype.toGeometry=function(){throw new Error("not implemented")},n.prototype.applyMatrix4=function(t){throw new Error("not implemented")},n.prototype.getCenter=function(t){throw new Error("not implemented")},n.prototype.distanceToPoint=function(t){throw new Error("not implemented")},n.prototype.distanceSquaredToPoint=function(t){throw new Error("not implemented")},n.prototype.distanceToPlane=function(t){throw new Error("not implemented")},n.prototype.intersectPlane=function(t){throw new Error("not implemented")},n.prototype.intersectRay=function(t){throw new Error("not implemented")},n}();function isBoundingVolume(n){return n instanceof BoxBoundingVolume||n instanceof SphereBoundingVolume||n instanceof RegionBoundingVolume}function makeBoundingVolume(n){if("box"in n)return new BoxBoundingVolume().fromJson(n);if("sphere"in n)return new SphereBoundingVolume().fromJson(n);if("region"in n)return new RegionBoundingVolume().fromJson(n);throw new Error("BoundingVolume ".concat(JSON.stringify(n)," never suppored."))}var debugMaterials=[4821759,8191922,16637280,16739958,5822969,376977,16747077,9259235,14514687].map(function(n){return new THREE__namespace.LineBasicMaterial({color:n,depthWrite:!1,depthTest:!1,transparent:!0})}),debugBoxGeometry=function(){var n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),t=new Float32Array(8*3);scratchVector.set(1,1,1).toArray(t,0),scratchVector.set(-1,1,1).toArray(t,3),scratchVector.set(-1,-1,1).toArray(t,6),scratchVector.set(1,-1,1).toArray(t,9),scratchVector.set(1,1,-1).toArray(t,12),scratchVector.set(-1,1,-1).toArray(t,15),scratchVector.set(-1,-1,-1).toArray(t,18),scratchVector.set(1,-1,-1).toArray(t,21);var e=new THREE__namespace.BufferGeometry;return e.setIndex(new THREE__namespace.BufferAttribute(n,1)),e.setAttribute("position",new THREE__namespace.BufferAttribute(t,3)),e.computeBoundingBox(),e.computeBoundingSphere(),e}(),debugSphereGeometry=function(){for(var n=32,t=new Float32Array(n*3*2*2),e=0;e<=n;e++){var r=0;r=e/n*Math.PI*2,t[e*6+0]=Math.cos(r),t[e*6+1]=Math.sin(r),t[e*6+2]=0,r=(e+1)/n*Math.PI*2,t[e*6+3]=Math.cos(r),t[e*6+4]=Math.sin(r),t[e*6+5]=0}for(var e=n;e<=n*2;e++){var r=0;r=e/n*Math.PI*2,t[e*6+0]=Math.cos(r),t[e*6+1]=0,t[e*6+2]=Math.sin(r),r=(e+1)/n*Math.PI*2,t[e*6+3]=Math.cos(r),t[e*6+4]=0,t[e*6+5]=Math.sin(r)}var o=new THREE__namespace.BufferGeometry;return o.setAttribute("position",new THREE__namespace.BufferAttribute(t,3)),o.computeBoundingBox(),o.computeBoundingSphere(),o}();function createDebugBoundingMesh(n,t){if(n instanceof BoxBoundingVolume){var e=new THREE__namespace.LineSegments(debugBoxGeometry,debugMaterials[Math.min(t,debugMaterials.length-1)]);return e.position.copy(n.center),quaternionFromMatrix3(n.rotation,e.quaternion),e.scale.set(n.halfSize.x,n.halfSize.y,n.halfSize.z),e.matrix.compose(e.position,e.quaternion,e.scale),e}else if(n instanceof SphereBoundingVolume){var e=new THREE__namespace.LineSegments(debugSphereGeometry,debugMaterials[Math.min(t,debugMaterials.length-1)]);return e.position.copy(n.center),e.scale.set(n.radius,n.radius,n.radius),e.matrix.compose(e.position,e.quaternion,e.scale),e}throw new Error("never")}var scratchVector3$4=new THREE__namespace.Vector3,Tile=function(){function n(t,e,r,o){var s=this,u,l,c,f;this.parent=null,this.contentParent=null,this.floor=0,this.id=t,this.state={visible:!1,frameNumber:0,selectedFrameNumber:0,requestedFrameNumber:0,touchedFrameNumber:0,distanceToCamera:0,centerZDepth:0,centerScreenY:0,screenSpaceError:0,visibilityPlaneMask:0,inRequestVolume:!1,shouldRefine:!1,stackLength:0,finalResolution:!0,selectionDepth:0,shouldSelect:!1,lastSelect:!1,ancestorWithContent:null,ancestorWithContentAvailable:null},this.parent=o!=null?o:null,this.contentParent=o?o.hasRenderContent?o:o.contentParent:null,this.level=this.parent?this.parent.level+1:0,this.tileset=r,this.refine=(u=e.refine)!==null&&u!==void 0?u:this.parent?this.parent.refine:"REPLACE",this.transform=new THREE__namespace.Matrix4,e.transform&&this.transform.fromArray(e.transform),this.parent&&this.transform.premultiply(this.parent.transform),typeof e.geometricError=="number"?this.geometricError=e.geometricError*this.transform.getMaxScaleOnAxis():this.geometricError=(c=(l=this.parent)===null||l===void 0?void 0:l.geometricError)!==null&&c!==void 0?c:0,e.content&&e.content.uri?(this.content={uri:e.content.uri,loadState:"UNLOADED",loadStateUpdateTime:now(),loadfailRetryDelay:0,byteLength:0,memoryUsage:0},e.content.group!==void 0&&(this.content.group=e.content.group),e.content.boundingVolume&&(this.content.boundingVolume=makeBoundingVolume(e.content.boundingVolume).applyMatrix4(this.transform)),/\.json$/.test(this.content.uri)?this.type="TILESET":this.type="SCENEGRAPH"):(this.content=null,this.type="EMPTY"),this.levelOfContent=this.parent?this.parent.levelOfContent:-1,this.type==="SCENEGRAPH"&&(this.levelOfContent=this.levelOfContent+1),e.boundingVolume&&(this.boundingVolume=makeBoundingVolume(e.boundingVolume).applyMatrix4(this.transform)),e.viewerRequestVolume&&(this.viewerRequestVolume=makeBoundingVolume(e.viewerRequestVolume).applyMatrix4(this.transform)),this.extras=(f=e.extras)!==null&&f!==void 0?f:{},typeof this.extras.floor!="number"&&o&&typeof o.extras.floor=="number"&&(this.extras.floor=o.extras.floor),typeof this.extras.floor=="number"&&(this.floor=this.extras.floor,this.tileset.floorLength=Math.max(this.tileset.floorLength,this.floor+1)),this.boundingVolume&&(this.boundingVolumeDebugObject=createDebugBoundingMesh(this.boundingVolume,this.levelOfContent)),e.children?this.children=e.children.map(function(d,p){return new n("".concat(s.id,".").concat(p),d,r,s)}):this.children=[]}return n.prototype.traverse=function(t){t(this);for(var e=0,r=this.children;e<r.length;e++){var o=r[e];o.traverse(t)}},n.prototype.updateState=function(t){this.state.frameNumber=t.frameNumber;var e=this.tileset.transformIsIdentity?null:this.tileset.transform;if(this.boundingVolume){var r=e?this.boundingVolume.clone().applyMatrix4(e):this.boundingVolume;if(t.camera.type==="OrthographicCamera"){var o=new THREE__namespace.Plane().setFromNormalAndCoplanarPoint(t.camera.direction,t.camera.position);this.state.distanceToCamera=r.distanceToPlane(o)}else this.state.distanceToCamera=r.distanceToPoint(t.camera.position);var s=r.getCenter(scratchVector3$4).sub(t.camera.position);this.state.centerZDepth=t.camera.direction.dot(s),this.state.centerScreenY=t.camera.up.dot(s);var u=this.parent?this.parent.state.visibilityPlaneMask:CullingVolume.MASK_INDETERMINATE;this.state.visibilityPlaneMask=t.cullingVolume.computeVisibilityWithPlaneMask(r,u),this.state.visible=this.state.visibilityPlaneMask!==CullingVolume.MASK_OUTSIDE}else this.state.distanceToCamera=0,this.state.centerZDepth=0,this.state.visibilityPlaneMask=CullingVolume.MASK_INDETERMINATE,this.state.visible=!0;if((this.levelOfContent<=t.minLevelOfDetail||this.geometricError>=t.maxGeometricError)&&(this.state.visible=!0),this.viewerRequestVolume){var l=e?this.viewerRequestVolume.clone().applyMatrix4(e):this.viewerRequestVolume;this.state.inRequestVolume=l.distanceSquaredToPoint(t.camera.position)<=0}else this.state.inRequestVolume=!0;this.state.screenSpaceError=this.getScreenSpaceError(t,this.state.distanceToCamera,!1)},Object.defineProperty(n.prototype,"selected",{get:function(){return this.state.selectedFrameNumber===this.tileset.frameNumber},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"hasChildren",{get:function(){return this.children.length>0},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"siblingIndex",{get:function(){var t,e;return(e=(t=this.parent)===null||t===void 0?void 0:t.children.indexOf(this))!==null&&e!==void 0?e:0},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"hasTilesetContent",{get:function(){return this.children.length>0&&this.type==="TILESET"},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"hasRenderContent",{get:function(){return this.type==="SCENEGRAPH"},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"contentAvailable",{get:function(){var t;return this.hasRenderContent&&((t=this.content)===null||t===void 0?void 0:t.loadState)==="READY"},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"hasUnloadedContent",{get:function(){var t;return((t=this.content)===null||t===void 0?void 0:t.loadState)==="UNLOADED"},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"hasEmptyContent",{get:function(){return this.type==="EMPTY"},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"contentReady",{get:function(){var t;return((t=this.content)===null||t===void 0?void 0:t.loadState)==="READY"||this.hasEmptyContent},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"contentByteLength",{get:function(){return this.content?this.content.byteLength:0},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"contentMemoryUsage",{get:function(){return this.content?this.content.memoryUsage:0},enumerable:!1,configurable:!0}),n.prototype.getScreenSpaceError=function(t,e,r){var o=this.tileset.transformIsIdentity?1:this.tileset.transform.getMaxScaleOnAxis(),s=this.parent?this.parent.geometricError:this.tileset.geometricError,u=o*(r?s:this.geometricError);if(u===0)return 0;var l=t.height,c=t.sseDenominator;if(t.camera.type==="OrthographicCamera"){var f=t.camera.projectionMatrix.elements,d=1/(f[5]/2),p=.9,v=d/l*p,A=u/v;return A}else{var g=Math.max(e,.001),v=g*c/l,A=u/v;return A}},n.prototype.getPriority=function(){var t=this.refine==="ADD"||this.tileset.skipLevelOfDetail;if(t&&!this.state.visible||this.tileset.frameNumber-this.state.touchedFrameNumber>=1)return-1;var e=this.parent,r=e&&(!t||this.state.screenSpaceError===0),o=r?e.state.screenSpaceError:this.state.screenSpaceError,s=this.tileset.root?this.tileset.root.state.screenSpaceError:0,u=Math.max(s-o,0);return u},n}(),priorityCache=new Map;function getPriority(n,t){if(t&&t.has(n))return t.get(n);var e=n.refine==="ADD"||n.tileset.skipLevelOfDetail,r=n.parent,o=r&&(!e||n.state.screenSpaceError===0),s=o?r.state.screenSpaceError:n.state.screenSpaceError,u=n.tileset.root?n.tileset.root.state.screenSpaceError:0,l=Math.max(u-s,0);return t&&t.set(n,l),l}var TileRequestScheduler=function(){function n(t,e){this.tileset=t,this.options=e,this.activeRequests=0,this.requestQueue=[]}return n.prototype.reset=function(){for(var t=0,e=this.requestQueue;t<e.length;t++){var r=e[t];this.options.onTileSkip&&this.options.onTileSkip(r.tile)}this.requestQueue.length=0},n.prototype.update=function(t,e,r){for(var o=this,s=r.time,u=this.requestQueue,l=new Set(t),c=0;c<u.length;c++){var f=u[c];if(l.has(f.tile)){l.delete(f.tile);continue}f.status==="WAITING"&&(u.splice(c,1),c--,this.options.onTileSkip&&this.options.onTileSkip(f.tile))}l.size>0&&(l.forEach(function(m){u.push({tile:m,status:"WAITING",time:s,error:null})}),l.clear());for(var d=this.tileset.maxRequests,c=0;c<u.length&&d>0;c++){var f=u[c];if(f.status==="DONE")f.error!==null?this.options.onTileError&&this.options.onTileError(f.tile,f.error):(d--,f.tile.content&&(f.tile.content.loadState="READY"),this.options.onTileLoad&&this.options.onTileLoad(f.tile)),u.splice(c,1),c--;else if(f.status==="PENDING"&&s-f.time<1e3)break}switch(priorityCache.clear(),e){case"SCREEN_SPACE_ERROR":{u.sort(function(m,E){if(m.tile.state.requestedFrameNumber!==E.tile.state.requestedFrameNumber)return E.tile.state.requestedFrameNumber-m.tile.state.requestedFrameNumber;if(m.tile.state.requestedFrameNumber===r.frameNumber){var b=getPriority(m.tile,priorityCache),T=getPriority(E.tile,priorityCache);return b-T}else return m.tile.level!==E.tile.level?m.tile.level-E.tile.level:m.tile.state.distanceToCamera-E.tile.state.distanceToCamera});break}case"SCREEN_VERTICAL":{u.sort(function(m,E){return m.tile.state.requestedFrameNumber!==E.tile.state.requestedFrameNumber?E.tile.state.requestedFrameNumber-m.tile.state.requestedFrameNumber:m.tile.state.requestedFrameNumber===r.frameNumber?m.tile.state.centerScreenY!==E.tile.state.centerScreenY?m.tile.state.centerScreenY-E.tile.state.centerScreenY:m.tile.state.centerZDepth!==E.tile.state.centerZDepth?m.tile.state.centerZDepth-E.tile.state.centerZDepth:m.tile.level!==E.tile.level?m.tile.level-E.tile.level:m.tile.state.distanceToCamera-E.tile.state.distanceToCamera:m.tile.level!==E.tile.level?m.tile.level-E.tile.level:m.tile.state.distanceToCamera-E.tile.state.distanceToCamera});break}case"SCREEN_LEVEL_VERTICAL":{u.sort(function(m,E){return m.tile.state.requestedFrameNumber!==E.tile.state.requestedFrameNumber?E.tile.state.requestedFrameNumber-m.tile.state.requestedFrameNumber:m.tile.state.requestedFrameNumber===r.frameNumber?m.tile.level!==E.tile.level?m.tile.level-E.tile.level:m.tile.state.centerScreenY!==E.tile.state.centerScreenY?m.tile.state.centerScreenY-E.tile.state.centerScreenY:m.tile.state.centerZDepth!==E.tile.state.centerZDepth?m.tile.state.centerZDepth-E.tile.state.centerZDepth:m.tile.state.distanceToCamera-E.tile.state.distanceToCamera:m.tile.level!==E.tile.level?m.tile.level-E.tile.level:m.tile.state.distanceToCamera-E.tile.state.distanceToCamera});break}}if(d=Math.max(this.tileset.maxRequests-this.activeRequests,0),!this.tileset.skipLevelOfDetail)for(var p=0,v=u.length,c=0;c<v;c++){var A=u[c].tile;if(A.hasTilesetContent||A.contentParent===null||A.contentParent.state.selectedFrameNumber===this.tileset.frameNumber){var g=u.splice(c,1);u.splice.apply(u,__spreadArray([p++,0],g,!1))}}for(var h=function(m){var E=u[m];E.status==="WAITING"&&(d--,E.status="PENDING",E.time=s,y.activeRequests++,y.tileset.options.tileLoader(E.tile).catch(function(b){E.error=b}).then(function(){E.status="DONE",E.tile.content&&E.tile.content.loadState==="READY"&&(E.tile.content.loadState="LOADING"),o.activeRequests--}))},y=this,c=0;c<u.length&&d>0;c++)h(c)},n}(),CacheNode=function(){function n(t,e,r){this.item=t,this.previous=e,this.next=r}return n}(),CacheNodeList=function(){function n(){this.head=null,this.tail=null,this._length=0}return Object.defineProperty(n.prototype,"length",{get:function(){return this._length},enumerable:!1,configurable:!0}),n.prototype.add=function(t){var e=new CacheNode(t,this.tail,null);return this.tail?(this.tail.next=e,this.tail=e):(this.head=e,this.tail=e),this._length++,e},n.prototype.remove=function(t){t.previous&&t.next?(t.previous.next=t.next,t.next.previous=t.previous):t.previous?(t.previous.next=null,this.tail=t.previous):t.next?(t.next.previous=null,this.head=t.next):(this.head=null,this.tail=null),t.next=null,t.previous=null,this._length--},n.prototype.splice=function(t,e){t!==e&&(this.remove(e),this.insert(t,e))},n.prototype.insert=function(t,e){var r=t.next;t.next=e,this.tail===t?this.tail=e:r.previous=e,e.next=r,e.previous=t,this._length++},n.prototype.toArray=function(){for(var t=[],e=this.head;e;)t.push(e),e=e.next;return t},n}(),TileCache=function(){function n(t){t===void 0&&(t={}),this.options=t,this.cacheNodeMap=new Map,this.list=new CacheNodeList,this.sentinel=this.list.add("sentinel")}return n.prototype.reset=function(){this.list.tail&&this.list.splice(this.list.tail,this.sentinel)},n.prototype.touchTile=function(t){var e=this.cacheNodeMap.get(t);e&&this.list.splice(this.sentinel,e)},n.prototype.loadTile=function(t){if(!this.cacheNodeMap.has(t)){var e=this.list.add(t);this.cacheNodeMap.set(t,e),this.options.onTileLoad&&this.options.onTileLoad(t)}},n.prototype.unloadTile=function(t){var e=this.cacheNodeMap.get(t);e&&(this.list.remove(e),this.cacheNodeMap.delete(t),this.options.onTileUnload&&this.options.onTileUnload(t))},n.prototype.unloadTiles=function(t){for(var e=this.list.head;e!==this.sentinel&&t();){var r=e.item;e=e.next,this.unloadTile(r)}},n.prototype.toArray=function(){for(var t=[],e=0,r=this.list.toArray();e<r.length;e++){var o=r[e];o.item!=="sentinel"&&t.push(o.item)}return t},n}(),ManagedArray=function(){function n(){this.map=new Map,this.array=[],this._length=0}return Object.defineProperty(n.prototype,"length",{get:function(){return this._length},enumerable:!1,configurable:!0}),n.prototype.get=function(t){return this.array[t]},n.prototype.set=function(t,e){t>=this.length&&(this._length=t+1),this.map.has(this.array[t])&&this.map.delete(this.array[t]),this.array[t]=e,this.map.set(e,t)},n.prototype.delete=function(t){var e=this.map.get(t);e!==void 0&&e>=0&&(this.array.splice(e,1),this.map.delete(t),this._length--)},n.prototype.push=function(t){if(!this.map.has(t)){var e=this._length++;this.array[e]=t,this.map.set(t,e)}},n.prototype.pop=function(){var t=this.array[--this._length];return this.map.delete(t),this.array[this._length]=void 0,t},n.prototype.reset=function(){this.array=[],this.map=new Map,this._length=0},n.prototype.find=function(t){return this.map.has(t)},n.prototype.peek=function(){return this.array[this._length-1]},n}(),TilesetBaseTraverser=function(){function n(t){this.tileset=t,this._canSelectTile=!0,this._loadAllTilesTraversalStack=new ManagedArray,this.root=null}return n.prototype.traverse=function(t,e,r){this.root=t,this.reset()},n.prototype.reset=function(){this._loadAllTilesTraversalStack.reset(),this.tileset.hasMixedContent=!1,this.tileset.needsRefinedTiles.clear(),this.tileset.requestedTiles.length=0,this.tileset.selectedTiles.length=0},n.prototype.updateTile=function(t,e){this.updateTileVisibility(t,e),t.state.shouldSelect=!1,t.state.finalResolution=!0},n.prototype.selectTile=function(t,e){var r=t.contentAvailable&&this._canSelectTile;r&&t.state.selectedFrameNumber<e.frameNumber&&(t.state.selectedFrameNumber=e.frameNumber,this.tileset.selectedTiles.push(t),this.tileset.needsRefinedTiles.add(t))},n.prototype.loadTile=function(t,e){t.state.requestedFrameNumber<e.frameNumber&&(t.state.requestedFrameNumber=e.frameNumber,t.content&&(t.content.loadState==="FAILED"&&e.time-t.content.loadStateUpdateTime>t.content.loadfailRetryDelay&&(t.content.loadState="UNLOADED",t.content.loadStateUpdateTime=e.time),t.content.loadState==="UNLOADED"&&this.tileset.requestedTiles.push(t))),this.tileset.needsRefinedTiles.add(t)},n.prototype.touchTile=function(t,e){this.tileset.cache.touchTile(t),t.state.touchedFrameNumber=e.frameNumber},n.prototype.canTraverse=function(t,e){return!t.state.inRequestVolume||t.levelOfContent>=e.maxLevelOfDetail||t.levelOfContent>=0&&t.geometricError<=e.minGeometricError||t.children.length===0?!1:t.levelOfContent<=e.minLevelOfDetail||t.geometricError>=e.maxGeometricError||t.hasTilesetContent?!0:t.state.screenSpaceError>this.tileset.currentMaxScreenSpaceError},n.prototype.updateTileVisibility=function(t,e){if(t.updateState(e),!(!t.state.visible||!t.state.inRequestVolume)){var r=t.children.length>0;if(t.hasTilesetContent&&r){var o=t.children[0];this.updateTileVisibility(o,e),t.state.visible=o.state.visible;return}if(this.meetsScreenSpaceErrorEarly(t,e)){t.state.visible=!1;return}var s=t.refine==="REPLACE";if(s&&r&&!this.anyChildrenVisible(t,e)){t.state.visible=!1;return}}},n.prototype.anyChildrenVisible=function(t,e){for(var r=!1,o=t.children,s=0,u=o;s<u.length;s++){var l=u[s];l.updateState(e),r=r||l.state.visible}return r},n.prototype.meetsScreenSpaceErrorEarly=function(t,e){var r=t.parent;return!r||r.refine!=="ADD"||r.levelOfContent<e.minLevelOfDetail||r.geometricError>e.maxGeometricError?!1:r.levelOfContent>e.maxLevelOfDetail||r.levelOfContent>=0&&r.geometricError<e.minGeometricError?!0:t.getScreenSpaceError(e,t.state.distanceToCamera,!0)<this.tileset.currentMaxScreenSpaceError},n.prototype.sortTilesByDistanceToCamera=function(t){t.sort(function(e,r){return r.state.distanceToCamera===0&&e.state.distanceToCamera===0?r.state.centerZDepth-e.state.centerZDepth:r.state.distanceToCamera-e.state.distanceToCamera})},n.prototype.loadAllTiles=function(t,e){var r=this._loadAllTilesTraversalStack;for(r.push(t);r.length>0;){var o=r.pop();o.content&&o.content.loadState==="UNLOADED"&&o.state.requestedFrameNumber<e.frameNumber&&this.tileset.requestedTiles.push(o),this.touchTile(o,e);for(var s=0,u=o.children;s<u.length;s++){var l=u[s];r.push(l)}}},n}(),TilesetNormalTraverser=function(n){__extends(t,n);function t(e){var r=n.call(this,e)||this;return r.tileset=e,r._traversalStack=new ManagedArray,r._emptyTraversalStack=new ManagedArray,r}return t.prototype.traverse=function(e,r,o){o===void 0&&(o=[]),n.prototype.traverse.call(this,e,r,o);for(var s=0,u=o;s<u.length;s++){var l=u[s];this._traversalStack.reset(),this._emptyTraversalStack.reset(),l.camera.refine&&(this._canSelectTile=l.camera.visible,this.updateTile(e,l),this.executeTraversal(e,l))}this._traversalStack.reset(),this._emptyTraversalStack.reset(),r.camera.refine&&(this._canSelectTile=r.camera.visible,this.updateTile(e,r),this.executeTraversal(e,r)),this.tileset.loadAll&&this.loadAllTiles(e,r)},t.prototype.reset=function(){n.prototype.reset.call(this),this._traversalStack.reset(),this._emptyTraversalStack.reset()},t.prototype.executeTraversal=function(e,r){var o=this._traversalStack;for(e.state.visible&&e.state.inRequestVolume&&o.push(e);o.length>0;){var s=o.pop(),u=s.parent,l=!u||u.state.shouldRefine,c=!1;this.canTraverse(s,r)&&(c=this.updateAndPushChildren(s,r,o)&&l);var f=!c&&l;s.hasRenderContent?s.refine==="ADD"?(this.loadTile(s,r),this.selectDesiredTile(s,r)):s.refine==="REPLACE"&&(this.loadTile(s,r),f&&this.selectDesiredTile(s,r)):(this.loadTile(s,r),f&&this.selectDesiredTile(s,r)),this.touchTile(s,r),s.state.shouldRefine=c}},t.prototype.updateAndPushChildren=function(e,r,o){for(var s=e.children,u=0,l=s;u<l.length;u++){var c=l[u];this.updateTile(c,r)}this.sortTilesByDistanceToCamera(s);for(var f=e.refine==="REPLACE"&&e.hasRenderContent,d=!1,p=!0,v=0,A=s;v<A.length;v++){var c=A[v];if(c.levelOfContent<=r.minLevelOfDetail||c.geometricError>=r.maxGeometricError||c.state.visible&&c.state.inRequestVolume?(o.find(c)&&o.delete(c),o.push(c),d===!1&&(d=!0)):(f||this.tileset.loadSiblings)&&(this.loadTile(c,r),this.touchTile(c,r)),f){var g=void 0;c.state.inRequestVolume?c.hasRenderContent?g=c.contentAvailable:g=this.executeEmptyTraversal(c,r):g=!1,p=p&&g}}return d||(p=!1),p},t.prototype.selectDesiredTile=function(e,r){e.contentAvailable&&n.prototype.selectTile.call(this,e,r)},t.prototype.executeEmptyTraversal=function(e,r){var o=!0,s=this._emptyTraversalStack;for(s.push(e);s.length>0&&o;){var u=s.pop(),l=!u.hasRenderContent&&this.canTraverse(u,r);if(!l&&!u.contentAvailable&&(o=!1),this.updateTile(u,r),u.state.visible||(this.loadTile(u,r),this.touchTile(u,r)),l)for(var c=u.children,f=0,d=c;f<d.length;f++){var p=d[f];s.find(p)&&s.delete(p),s.push(p)}}return o},t}(TilesetBaseTraverser),TilesetSkipTraverser=function(n){__extends(t,n);function t(e){var r=n.call(this,e)||this;return r.tileset=e,r.baseScreenSpaceError=1024,r.skipScreenSpaceErrorFactor=16,r.skipLevels=1,r._traversalStack=new ManagedArray,r._descendantTraversalStack=new ManagedArray,r._selectionTraversalStack=new ManagedArray,r._selectionTraversalancestorStack=new ManagedArray,r}return t.prototype.traverse=function(e,r,o){o===void 0&&(o=[]),n.prototype.traverse.call(this,e,r,o);for(var s=0,u=o;s<u.length;s++){var l=u[s];this._traversalStack.reset(),l.camera.refine&&(this._canSelectTile=l.camera.visible,this.updateTile(e,l),this.executeTraversal(e,l),this.traverseAndSelect(e,l))}this.tileset.hasMixedContent=!1,this._traversalStack.reset(),this._descendantTraversalStack.reset(),this._selectionTraversalStack.reset(),this._selectionTraversalancestorStack.reset(),r.camera.refine&&(this._canSelectTile=r.camera.visible,this.updateTile(e,r),this.executeTraversal(e,r),this.traverseAndSelect(e,r)),this.tileset.loadAll&&this.loadAllTiles(e,r)},t.prototype.reset=function(){n.prototype.reset.call(this),this._traversalStack.reset(),this._descendantTraversalStack.reset(),this._selectionTraversalStack.reset(),this._selectionTraversalancestorStack.reset()},t.prototype.executeTraversal=function(e,r){var o=this._traversalStack;for(e.state.visible&&e.state.inRequestVolume&&o.push(e);o.length>0;){var s=o.pop();this.updateTileAncestorContentLinks(s,r);var u=s.parent,l=!u||u.state.shouldRefine,c=!1;this.canTraverse(s,r)&&(c=this.updateAndPushChildren(s,r,o)&&l);var f=!c&&l;s.hasRenderContent?s.refine==="ADD"?(this.loadTile(s,r),this.selectDesiredTile(s,r)):s.refine==="REPLACE"&&(this.inBaseTraversal(s,this.baseScreenSpaceError)?(this.loadTile(s,r),f&&this.selectDesiredTile(s,r)):f?(this.loadTile(s,r),this.selectDesiredTile(s,r)):this.reachedSkippingThreshold(s)&&this.loadTile(s,r)):(this.loadTile(s,r),f&&this.selectDesiredTile(s,r)),this.touchTile(s,r),s.state.shouldRefine=c}},t.prototype.updateAndPushChildren=function(e,r,o){for(var s=e.children,u=0,l=s;u<l.length;u++){var c=l[u];this.updateTile(c,r)}this.sortTilesByDistanceToCamera(s);for(var f=!1,d=0,p=s;d<p.length;d++){var c=p[d];c.levelOfContent<=r.minLevelOfDetail||c.geometricError>=r.maxGeometricError||c.state.visible&&c.state.inRequestVolume?(o.push(c),f===!1&&(f=!0)):this.tileset.loadSiblings&&(this.loadTile(c,r),this.touchTile(c,r))}return f},t.prototype.selectDesiredTile=function(e,r){var o=e.contentAvailable?e:e.state.ancestorWithContentAvailable;o&&(o.state.shouldSelect=!0),e.contentAvailable||this.selectDescendants(e,r)},t.prototype.selectDescendants=function(e,r){var o=this._descendantTraversalStack;for(o.push(e);o.length>0;)for(var s=o.pop(),u=s.children,l=0,c=u;l<c.length;l++){var f=c[l];f.state.visible&&(f.contentAvailable?(this.updateTile(f,r),this.touchTile(f,r),this.selectTile(f,r)):o.push(f))}},t.prototype.reachedSkippingThreshold=function(e){var r=e.state.ancestorWithContent,o=r!==null&&e.state.screenSpaceError<r.state.screenSpaceError/this.skipScreenSpaceErrorFactor&&e.levelOfContent>r.levelOfContent+this.skipLevels;return o},t.prototype.updateTileAncestorContentLinks=function(e,r){e.state.ancestorWithContent=null,e.state.ancestorWithContentAvailable=null;var o=e.parent;if(o){var s=!(o.hasRenderContent&&o.hasUnloadedContent)||o.state.requestedFrameNumber===r.frameNumber;e.state.ancestorWithContent=s?o:o.state.ancestorWithContent,e.state.ancestorWithContentAvailable=o.contentAvailable?o:o.state.ancestorWithContentAvailable}},t.prototype.inBaseTraversal=function(e,r){return e.state.ancestorWithContent?e.parent&&e.state.screenSpaceError===0?e.parent.state.screenSpaceError>r:e.state.screenSpaceError>r:!0},t.prototype.traverseAndSelect=function(e,r){var o=this._selectionTraversalStack,s=this._selectionTraversalancestorStack,u;for(o.push(e);o.length>0||s.length>0;){if(s.length>0){var l=s.peek();if(l.state.stackLength===o.length){s.pop(),l!==u&&(l.state.finalResolution=!1),this.selectTile(l,r);continue}}var c=o.pop();if(c){var f=this.canTraverse(c,r);if(c.state.shouldSelect)if(c.refine==="ADD")this.selectTile(c,r);else{if(c.state.selectionDepth=s.length,c.state.selectionDepth>0&&(c.tileset.hasMixedContent=!0),u=c,!f){this.selectTile(c,r);continue}s.push(c),c.state.stackLength=o.length}if(f)for(var d=0,p=c.children;d<p.length;d++){var v=p[d];v.state.visible&&o.push(v)}}}},t}(TilesetBaseTraverser),TilesetMostDetailTraverser=function(n){__extends(t,n);function t(e){var r=n.call(this,e)||this;return r.tileset=e,r._traversalStack=new ManagedArray,r}return t.prototype.canTraverse=function(e,r){return!(!e.state.inRequestVolume||e.levelOfContent>=r.maxLevelOfDetail||e.levelOfContent>=0&&e.geometricError<=r.minGeometricError||e.children.length===0)},t.prototype.traverse=function(e,r,o){n.prototype.traverse.call(this,e,r,[]),this._traversalStack.reset(),e.updateState(r);for(var s=0,u=o;s<u.length;s++){var l=u[s];this._traversalStack.reset(),l.camera.refine&&(this._canSelectTile=l.camera.visible,e.updateState(l),this.executeTraversal(e,l))}this._traversalStack.reset(),r.camera.refine&&(this._canSelectTile=r.camera.visible,e.updateState(r),this.executeTraversal(e,r)),this.tileset.loadAll&&this.loadAllTiles(e,r)},t.prototype.reset=function(){n.prototype.reset.call(this),this._traversalStack.reset()},t.prototype.executeTraversal=function(e,r){var o=this._traversalStack;for(o.push(e);o.length>0;){var s=o.pop(),u=s.refine==="ADD",l=s.refine==="REPLACE",c=this.canTraverse(s,r);c&&this.updateAndPushChildren(s,r,o),(u||l&&!c)&&(this.loadTile(s,r),this.touchTile(s,r),this.selectDesiredTile(s,r))}},t.prototype.updateAndPushChildren=function(e,r,o){for(var s=e.children,u=0;u<s.length;++u){var l=s[u];l.updateState(r),l.state.visible&&o.push(l)}},t.prototype.selectDesiredTile=function(e,r){e.contentAvailable&&n.prototype.selectTile.call(this,e,r)},t}(TilesetBaseTraverser),Trajectory=function(){function n(t,e,r){this.index=t,this.name=e.name,this.visible=!1,this.tileset=r,this.transform=new THREE__namespace.Matrix4,e.transform&&this.transform.fromArray(e.transform),this.transform.premultiply(this.tileset.root.transform),this.content={uri:e.file,byteLength:0,memoryUsage:0,loadState:"UNLOADED",loadStateUpdateTime:now(),loadfailRetryDelay:0,data:void 0}}return n}(),identityMatrix4=new THREE__namespace.Matrix4,Tileset=function(){function n(t,e,r){var o=this,s,u,l,c,f,d,p,v,A;if(this.id=t,this.transform=new THREE__namespace.Matrix4,this.transformIsIdentity=!0,this.hasMixedContent=!1,this.url=(s=r.url)!==null&&s!==void 0?s:"",this.referer=(u=r.referer)!==null&&u!==void 0?u:"",this.asset={version:e.asset.version,tilesetVersion:e.asset.tilesetVersion||"",gltfUpAxis:(l=e.asset.gltfUpAxis)!==null&&l!==void 0?l:"Y",overview:e.asset.overview,trajectories:(f=(c=e.asset.trajectories)===null||c===void 0?void 0:c.list)!==null&&f!==void 0?f:[],extras:e.asset.extras},this.rootMeta=(d=e.rootMeta)!==null&&d!==void 0?d:{},this.pointLength=(p=this.rootMeta.numTotalPoints)!==null&&p!==void 0?p:1/0,this.floorLength=(v=this.rootMeta.numFloors)!==null&&v!==void 0?v:1,this.properties=(A=e.properties)!==null&&A!==void 0?A:{},this.options=r,this.memoryOverflow=n.DEFAULT_MEMORY_OVERFLOW,this.maxMemoryUsage=n.DEFAULT_MAX_MEMORY_USAGE,this.memoryAdjustedScreenSpaceError=n.DEFAULT_MEMORY_ADJUSTED_SCREEN_SPACE_ERROR,this.maxScreenSpaceError=n.DEFAULT_MAX_SCREEN_SPACE_ERROR,this.skipLevelOfDetail=n.DEFAULT_SKIP_LEVEL_OF_DETAIL,this.mostDetail=n.DEFAULT_MOST_DETAIL,this.loadSiblings=n.DEFAULT_LOAD_SIBLINGS,this.loadAll=n.DEFAULT_LOAD_ALL,this.maxRequests=n.DEFAULT_MAX_REQUESTS,this.tileRequestOrder=n.DEFAULT_REQUEST_ORDER,this.requestedTiles=[],this.selectedTiles=[],this.unloadTiles=[],this.needsRefinedTiles=new Set,this.selectedTrajectories=[],this.normalTraverser=new TilesetNormalTraverser(this),this.skipTraverser=new TilesetSkipTraverser(this),this.mostDetailTraverser=new TilesetMostDetailTraverser(this),this.cache=new TileCache({onTileLoad:function(y){o.cacheMemoryUsageInBytes+=y.contentMemoryUsage},onTileUnload:function(y){o.cacheMemoryUsageInBytes-=y.contentMemoryUsage,o.unloadTiles.push(y)}}),this.requestScheduler=new TileRequestScheduler(this,{onTileSkip:function(y){},onTileLoad:function(y){var m;!((m=y.content)===null||m===void 0)&&m.data&&(o.loadedTiles.add(y),o.cache.loadTile(y)),o.options.onTileLoad(y)},onTileError:function(y,m){o.options.onTileError(y,m)}}),this.frameNumber=0,this.maxLevelOfDetail=0,this.minLevelOfDetail=0,this.minGeometricError=0,this.maxGeometricError=0,this.loadedTiles=new Set,this.cacheMemoryUsageInBytes=0,this.currentMaxScreenSpaceError=this.maxScreenSpaceError,this.root=new Tile("".concat(this.id,".0"),e.root,this),this.geometricError=e.geometricError,this.trajectories=[],this.asset.trajectories)for(var g=0;g<this.asset.trajectories.length;g++){var h=new Trajectory(g,this.asset.trajectories[g],this);this.trajectories.push(h)}}return n.prototype.adjustScreenSpaceError=function(){if(this.memoryAdjustedScreenSpaceError){var t=0;this.needsRefinedTiles.forEach(function(o){o.content&&(t+=o.content.memoryUsage)});var e=(this.maxMemoryUsage-this.memoryOverflow)*1024*1024,r=this.maxMemoryUsage*1024*1024;t<e?this.currentMaxScreenSpaceError=Math.max(this.currentMaxScreenSpaceError/1.02,this.maxScreenSpaceError):t>r&&this.selectedTiles.length>0&&(this.currentMaxScreenSpaceError*=1.02)}else this.currentMaxScreenSpaceError=this.maxScreenSpaceError},Object.defineProperty(n.prototype,"traverser",{get:function(){return this.mostDetail?this.mostDetailTraverser:this.skipLevelOfDetail?this.skipTraverser:this.normalTraverser},enumerable:!1,configurable:!0}),n.prototype.reset=function(){for(var t=this,e=[this.root],r;r=e.pop();){for(var o=0,s=r.children.length;o<s;o++)e.push(r.children[o]);this.cache.unloadTile(r)}for(var u=function(){var d=l.unloadTiles.pop();d&&(l.loadedTiles.delete(d),l.cacheMemoryUsageInBytes-=d.contentMemoryUsage,l.options.tileUnloader(d).catch(function(){}).then(function(){t.options.onTileUnload&&t.options.onTileUnload(d)}))},l=this;this.unloadTiles.length;)u();this.cache.reset(),this.traverser.reset(),this.requestScheduler.reset(),this.loadedTiles.clear();for(var c=function(){var d=f.trajectories.pop();d&&f.options.trajectoryUnloader(d).catch(function(){}).then(function(){t.options.onTrajectoryUnload&&t.options.onTrajectoryUnload(d)})},f=this;this.trajectories.length;)c()},n.prototype.update=function(t,e){var r=this,o;e===void 0&&(e=[]),this.frameNumber=t.frameNumber,this.minLevelOfDetail=t.minLevelOfDetail,this.maxLevelOfDetail=t.maxLevelOfDetail,this.minGeometricError=t.minGeometricError,this.maxGeometricError=t.maxGeometricError,this.adjustScreenSpaceError(),this.transformIsIdentity=this.transform.equals(identityMatrix4),this.traverser.traverse(this.root,t,e),this.cache.unloadTiles(function(){var v=r.cacheMemoryUsageInBytes>r.maxMemoryUsage*1024*1024;return v}),this.requestScheduler.update(this.requestedTiles,this.tileRequestOrder,t);for(var s=function(){var v=u.unloadTiles.pop();v&&(u.loadedTiles.delete(v),u.options.tileUnloader(v).catch(function(){}).then(function(){r.options.onTileUnload&&r.options.onTileUnload(v)}))},u=this;this.unloadTiles.length;)s();this.selectedTrajectories.length=0;for(var l=function(v){v.visible===!0&&v.content.loadState==="READY"&&(!((o=v.content.data)===null||o===void 0)&&o.object)?c.selectedTrajectories.push(v):v.visible===!0&&(v.content.loadState==="FAILED"&&t.time-v.content.loadStateUpdateTime>v.content.loadfailRetryDelay&&(v.content.loadState="UNLOADED",v.content.loadStateUpdateTime=t.time),v.content.loadState==="UNLOADED"&&c.options.trajectoryLoader(v).then(function(){r.options.onTrajectoryLoad(v)}).catch(function(A){r.options.onTrajectoryError(v,A)}))},c=this,f=0,d=this.trajectories;f<d.length;f++){var p=d[f];l(p)}},n.DEFAULT_MAX_MEMORY_USAGE=16,n.DEFAULT_MEMORY_OVERFLOW=4,n.DEFAULT_MEMORY_ADJUSTED_SCREEN_SPACE_ERROR=!1,n.DEFAULT_MAX_SCREEN_SPACE_ERROR=4,n.DEFAULT_SKIP_LEVEL_OF_DETAIL=!1,n.DEFAULT_MOST_DETAIL=!1,n.DEFAULT_LOAD_SIBLINGS=!1,n.DEFAULT_LOAD_ALL=!1,n.DEFAULT_MAX_REQUESTS=6,n.DEFAULT_REQUEST_ORDER="SCREEN_SPACE_ERROR",n}(),BVHObject=function(){function n(t,e){this.position=t,this.indices=e}return n.prototype.getPositionCount=function(){var t,e,r=this.indices,o=this.position;return r?r.array.length/((t=r.stride)!==null&&t!==void 0?t:1):o.array.length/((e=o.stride)!==null&&e!==void 0?e:3)},n.prototype.getPositionByIndex=function(t,e){var r,o,s,u,l=this.indices,c=this.position,f=t;if(l){var d=l.array,p=(r=l.stride)!==null&&r!==void 0?r:1,v=(o=l.offset)!==null&&o!==void 0?o:0;f=d[t*p+v]}var A=c.array,g=(s=c.stride)!==null&&s!==void 0?s:3,h=(u=c.offset)!==null&&u!==void 0?u:0;return f=f*g+h,e.x=A[f],e.y=A[f+1],e.z=A[f+2],e},n.prototype.createTree=function(t,e,r){throw new Error("not implemented")},n.prototype.trianglesInSphere=function(t,e){throw new Error("not implemented")},n.prototype.intersectRay=function(t,e,r,o){throw new Error("not implemented")},n}(),BVHNode=function(){function n(t,e,r,o,s){this.id=t,this.extents=e,this.startIndex=r,this.endIndex=o,this.deepth=s}return n}(),BYTES_PER_NODE=6*4+4+4+2+2;function packBVHNode(n,t){for(var e=new ArrayBuffer(t*BYTES_PER_NODE),r=new Float32Array(e),o=new Uint32Array(e),s=new Uint16Array(e),u=[n],l,c;l=u.pop();)c=l.id*BYTES_PER_NODE/4,r[c]=l.extents[0],r[c+1]=l.extents[1],r[c+2]=l.extents[2],r[c+3]=l.extents[3],r[c+4]=l.extents[4],r[c+5]=l.extents[5],o[c+6]=l.startIndex,o[c+7]=l.endIndex,c=l.id*BYTES_PER_NODE/2,l.node0&&(s[c+16]=l.node0.id,u.push(l.node0)),l.node1&&(s[c+17]=l.node1.id,u.push(l.node1));return e}function intersectNodeBox(n,t,e,r,o,s,u,l,c){c===void 0&&(c=0),e=e-c,r=r-c,o=o-c,s=s+c,u=u+c,l=l+c;var f=0,d=0,p=0,v=0,A=0,g=0;return t.x>=0?(f=(e-n.x)*t.x,d=(s-n.x)*t.x):(f=(s-n.x)*t.x,d=(e-n.x)*t.x),t.y>=0?(p=(r-n.y)*t.y,v=(u-n.y)*t.y):(p=(u-n.y)*t.y,v=(r-n.y)*t.y),!(f>v||p>d||(p>f&&(f=p),v<d&&(d=v),t.z>=0?(A=(o-n.z)*t.z,g=(l-n.z)*t.z):(A=(l-n.z)*t.z,g=(o-n.z)*t.z),f>g||A>d)||(A>f&&(f=A),g<d&&(d=g),d<0))}var BVHVector3=function(){function n(t,e,r){this.x=t,this.y=e,this.z=r}return n.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},n.prototype.set=function(t,e,r){return this.x=t,this.y=e,this.z=r,this},n.prototype.fromArray=function(t,e){return e===void 0&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this},n.prototype.toArray=function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t},n.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this},n.prototype.multiplyScalar=function(t){return this.x*=t,this.y*=t,this.z*=t,this},n.prototype.subVectors=function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},n.prototype.addScaledVector=function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this},n.prototype.dot=function(t){return this.x*t.x+this.y*t.y+this.z*t.z},n.prototype.cross=function(t){var e=this.x,r=this.y,o=this.z;return this.x=r*t.z-o*t.y,this.y=o*t.x-e*t.z,this.z=e*t.y-r*t.x,this},n.prototype.crossVectors=function(t,e){var r=t.x,o=t.y,s=t.z,u=e.x,l=e.y,c=e.z;return this.x=o*c-s*l,this.y=s*u-r*c,this.z=r*l-o*u,this},n.prototype.distanceTo=function(t){return Math.sqrt(this.distanceToSquared(t))},n.prototype.distanceToSquared=function(t){var e=this.x-t.x,r=this.y-t.y,o=this.z-t.z;return e*e+r*r+o*o},n.prototype.clone=function(){return new n(this.x,this.y,this.z)},n}(),BVHIntersect=function(){function n(t,e,r){this.triangle=t,this.intersectionPoint=e,this.index=r}return n}(),EPSILON$1=1e-6,scratchVector3$3=new BVHVector3(0,0,0),scratchVector3A=new BVHVector3(0,0,0),scratchVector3B=new BVHVector3(0,0,0),scratchVector3C=new BVHVector3(0,0,0),BVHMesh=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.createTree=function(e,r,o){r=Math.min(r,16);var s=this.getPositionCount()/3,u=s>65535?new Uint32Array(s):new Uint16Array(s),l=new Float32Array(s*6),c=[],f=0,d=-1;if(o)for(var p=0,v=0,A=0,g=void 0,h=void 0,y=void 0,m=void 0,E=void 0,b=void 0,T=void 0;p<s;p+=1,v+=3,A+=6)u[p]=p,this.getPositionByIndex(v,scratchVector3A),this.getPositionByIndex(v+1,scratchVector3B),this.getPositionByIndex(v+2,scratchVector3C),g=m=scratchVector3A.x,T=scratchVector3B.x,T<g&&(g=T),T>m&&(m=T),T=scratchVector3C.x,T<g&&(g=T),T>m&&(m=T),h=E=scratchVector3A.y,T=scratchVector3B.y,T<h&&(h=T),T>E&&(E=T),T=scratchVector3C.y,T<h&&(h=T),T>E&&(E=T),y=b=scratchVector3A.z,T=scratchVector3B.z,T<y&&(y=T),T>b&&(b=T),T=scratchVector3C.z,T<y&&(y=T),T>b&&(b=T),l[A]=g,l[A+1]=h,l[A+2]=y,l[A+3]=m,l[A+4]=E,l[A+5]=b;else{for(var _=1/0,R=1/0,S=1/0,C=-1/0,B=-1/0,L=-1/0,p=0,v=0,A=0,g=void 0,h=void 0,y=void 0,m=void 0,E=void 0,b=void 0,T=void 0;p<s;p+=1,v+=3,A+=6)u[p]=p,this.getPositionByIndex(v,scratchVector3A),this.getPositionByIndex(v+1,scratchVector3B),this.getPositionByIndex(v+2,scratchVector3C),g=m=scratchVector3A.x,T=scratchVector3B.x,T<g&&(g=T),T>m&&(m=T),T=scratchVector3C.x,T<g&&(g=T),T>m&&(m=T),h=E=scratchVector3A.y,T=scratchVector3B.y,T<h&&(h=T),T>E&&(E=T),T=scratchVector3C.y,T<h&&(h=T),T>E&&(E=T),y=b=scratchVector3A.z,T=scratchVector3B.z,T<y&&(y=T),T>b&&(b=T),T=scratchVector3C.z,T<y&&(y=T),T>b&&(b=T),l[A]=g,l[A+1]=h,l[A+2]=y,l[A+3]=m,l[A+4]=E,l[A+5]=b,g<_&&(_=g),m>C&&(C=m),h<R&&(R=h),E>B&&(B=E),y<S&&(S=y),b>L&&(L=b);o=[_,R,S,C,B,L]}var M=new BVHNode(++d,o,0,s,0);c[f++]=M;var w=[],H=[0,1,2],O=function(N,k){return w[k]-w[N]};function I(N){var k=N.startIndex,U=N.endIndex,D=N.extents;w[0]=D[3]-D[0],w[1]=D[4]-D[1],w[2]=D[5]-D[2],H.sort(O);for(var q=0;q<3;q++){for(var z=H[q],Q=D[z]+D[z+3],G=k,X=U-1,$=-1,W=void 0;G<=X;)$===-1?(W=u[G],l[W*6+z]+l[W*6+z+3]<Q?G++:$=W):(W=u[X],l[W*6+z]+l[W*6+z+3]>=Q||(u[G]=W,u[X]=$,$=-1,G++),X--);if(G>k&&G<U){var oe=new BVHNode(++d,calcExtents(u,l,k,G,EPSILON$1),k,G,N.deepth+1);oe.deepth<r&&oe.endIndex-oe.startIndex>e&&(c[f++]=oe);var ae=new BVHNode(++d,calcExtents(u,l,G,U,EPSILON$1),G,U,N.deepth+1);ae.deepth<r&&ae.endIndex-ae.startIndex>e&&(c[f++]=ae),N.node0=oe,N.node1=ae,N.startIndex=0,N.endIndex=0;break}}}for(;f;)I(c[--f]);return this.offsetArray=u,this.rootNodePacked=packBVHNode(M,d+1),c.length=0,this},t.prototype.trianglesInSphere=function(e,r){for(var o=this.offsetArray,s=this.rootNodePacked,u=new Float32Array(s),l=new Uint32Array(s),c=new Uint16Array(s),f=[0],d=[],p,v,A,g;(p=f.pop())!==void 0;){g=p*BYTES_PER_NODE/4;var h=clamp(e.x,u[g],u[g+3])-e.x,y=clamp(e.y,u[g+1],u[g+4])-e.y,m=clamp(e.z,u[g+2],u[g+5])-e.z;if(h*h+y*y+m*m<=r*r){for(var E=l[g+6];E<l[g+7];E++)d.push(o[E]);g=p*BYTES_PER_NODE/2,v=c[g+16],A=c[g+17],v&&f.push(v),A&&f.push(A)}}for(var b=d.length,T=new Float32Array(b*9),E=0;E<b;E++){var _=d[E];this.getPositionByIndex(_,scratchVector3$3),T[E*9]=scratchVector3$3.x,T[E*9+1]=scratchVector3$3.y,T[E*9+2]=scratchVector3$3.z,this.getPositionByIndex(_+1,scratchVector3$3),T[E*9+3]=scratchVector3$3.x,T[E*9+4]=scratchVector3$3.y,T[E*9+5]=scratchVector3$3.z,this.getPositionByIndex(_+2,scratchVector3$3),T[E*9+6]=scratchVector3$3.x,T[E*9+7]=scratchVector3$3.y,T[E*9+8]=scratchVector3$3.z}return T},t.prototype.intersectRay=function(e,r,o,s){for(var u=this.offsetArray,l=this.rootNodePacked,c=new Float32Array(l),f=new Uint32Array(l),d=new Uint16Array(l),p=new BVHVector3(1/r.x,1/r.y,1/r.z),v=[0],A,g,h,y;(A=v.pop())!==void 0;)if(y=A*BYTES_PER_NODE/4,intersectNodeBox(e,p,c[y],c[y+1],c[y+2],c[y+3],c[y+4],c[y+5])){for(var m=f[y+6],E=f[y+7],b=void 0,T=void 0,_=void 0,R=e.x,S=e.y,C=e.z,B=r.x,L=r.y,M=r.z,w=void 0,H=void 0,O=void 0,I=void 0,N=void 0,k=void 0,U=void 0,D=void 0,q=void 0,z=void 0,Q=void 0,G=void 0,X=void 0,$=void 0,W=void 0,oe=void 0,ae=void 0,re=void 0,j=void 0,se=void 0,ie=void 0,ue=void 0,fe=void 0,ne=void 0,Te=void 0,_e=void 0,ve=void 0;m<E;m++){if(b=u[m],T=b*3,this.getPositionByIndex(T,scratchVector3$3),w=scratchVector3$3.x,H=scratchVector3$3.y,O=scratchVector3$3.z,this.getPositionByIndex(T+1,scratchVector3$3),I=scratchVector3$3.x,N=scratchVector3$3.y,k=scratchVector3$3.z,this.getPositionByIndex(T+2,scratchVector3$3),U=scratchVector3$3.x,D=scratchVector3$3.y,q=scratchVector3$3.z,z=I-w,Q=N-H,G=k-O,X=U-w,$=D-H,W=q-O,oe=Q*W-G*$,ae=G*X-z*W,re=z*$-Q*X,fe=B*oe+L*ae+M*re,fe>0)ue=1;else if(fe<0)ue=-1,fe=-fe;else continue;j=R-w,se=S-H,ie=C-O,ne=ue*(B*(se*W-ie*$)+L*(ie*X-j*W)+M*(j*$-se*X)),!(ne<0)&&(Te=ue*(B*(Q*ie-G*se)+L*(G*j-z*ie)+M*(z*se-Q*j)),!(Te<0)&&(ne+Te>fe||(_e=-ue*(j*oe+se*ae+ie*re),!(_e<0)&&(ve=_e/fe,s.push(new BVHIntersect([w,H,O,I,N,k,U,D,q],[R+B*ve,S+L*ve,C+M*ve],b))))))}y=A*BYTES_PER_NODE/2,g=d[y+16],h=d[y+17],g&&v.push(g),h&&v.push(h)}return s},t}(BVHObject);function clamp(n,t,e){return n<t?t:n>e?e:n}function calcExtents(n,t,e,r,o){if(e>=r)return[0,0,0,0,0,0];for(var s=1/0,u=1/0,l=1/0,c=-1/0,f=-1/0,d=-1/0,p=e,v=void 0,A=void 0;p<r;p++)v=n[p]*6,A=t[v],A<s&&(s=A),A=t[v+1],A<u&&(u=A),A=t[v+2],A<l&&(l=A),A=t[v+3],A>c&&(c=A),A=t[v+4],A>f&&(f=A),A=t[v+5],A>d&&(d=A);return[s-o,u-o,l-o,c+o,f+o,d+o]}var EPSILON=1e-6,ORDER_AXISES=["x","y","z"],scratchVector3$2=new BVHVector3(0,0,0),BVHPoints=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.createTree=function(e,r,o){r=Math.min(r,16);var s=this.getPositionByIndex.bind(this),u=this.getPositionCount(),l=u>65535?new Uint32Array(u):new Uint16Array(u),c=[],f=0,d=-1;if(o)for(var p=0;p<u;p+=1)l[p]=p;else{s(0,scratchVector3$2);for(var v=scratchVector3$2.x,A=scratchVector3$2.y,g=scratchVector3$2.z,h=v,y=A,m=g,p=0,E=void 0,b=void 0,T=void 0;p<u;p+=1)l[p]=p,s(p,scratchVector3$2),E=scratchVector3$2.x,b=scratchVector3$2.y,T=scratchVector3$2.z,E<v?v=E:E>h&&(h=E),b<A?A=b:b>y&&(y=b),T<g?g=T:T>m&&(m=T);o=[v,A,g,h,y,m]}var _=new BVHNode(++d,o,0,u,0);c[f++]=_;var R=[],S=[0,1,2],C=function(L,M){return R[M]-R[L]};function B(L){var M=L.startIndex,w=L.endIndex,H=L.extents;R[0]=H[3]-H[0],R[1]=H[4]-H[1],R[2]=H[5]-H[2];for(var O=S.sort(C)[0],I=ORDER_AXISES[O],N=(H[O]+H[O+3])/2,k=M,U=w-1,D=-1,q;k<=U;)D===-1?(q=l[k],s(q,scratchVector3$2),scratchVector3$2[I]<N?k++:D=q):(q=l[U],s(q,scratchVector3$2),scratchVector3$2[I]>=N||(l[k]=q,l[U]=D,D=-1,k++),U--);if(k>M){var z=H.slice();z[O+3]=N+EPSILON;var Q=new BVHNode(++d,z,M,k,L.deepth+1);Q.deepth<r&&Q.endIndex-Q.startIndex>e&&(c[f++]=Q),L.node0=Q}if(w>k){var G=H.slice();G[O]=N-EPSILON;var X=new BVHNode(++d,G,k,w,L.deepth+1);X.deepth<r&&X.endIndex-X.startIndex>e&&(c[f++]=X),L.node1=X}L.startIndex=0,L.endIndex=0}for(;f;)B(c[--f]);return this.offsetArray=l,this.rootNodePacked=packBVHNode(_,d+1),c.length=0,this},t.prototype.intersectRay=function(e,r,o,s){for(var u=this.offsetArray,l=this.rootNodePacked,c=new Float32Array(l),f=new Uint32Array(l),d=new Uint16Array(l),p=o*o,v=new BVHVector3(1/r.x,1/r.y,1/r.z),A=[0],g,h,y,m;(g=A.pop())!==void 0;)if(m=g*BYTES_PER_NODE/4,intersectNodeBox(e,v,c[m],c[m+1],c[m+2],c[m+3],c[m+4],c[m+5],o)){for(var E=f[m+6],b=f[m+7],T=void 0,_=void 0,R=void 0,S=void 0,C=void 0,B=void 0,L=void 0,M=void 0,w=void 0,H=void 0,O=void 0,I=void 0;E<b;E++)T=u[E],this.getPositionByIndex(T,scratchVector3$2),_=scratchVector3$2.x,R=scratchVector3$2.y,S=scratchVector3$2.z,C=e.x,B=e.y,L=e.z,M=r.x,w=r.y,H=r.z,O=M*(_-C)+w*(R-B)+H*(S-L),O>0&&(C+=M*O,B+=w*O,L+=H*O),M=_-C,w=R-B,H=S-L,O=M*M+w*w+H*H,O<=p&&s.push(new BVHIntersect([_,R,S,_,R,S,_,R,S],[C,B,L],T));m=g*BYTES_PER_NODE/2,h=d[m+16],y=d[m+17],h&&A.push(h),y&&A.push(y)}return s},t}(BVHObject);const encodedJs$1="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlcj1mdW5jdGlvbihlLHIpe3JldHVybiBlcj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odCxvKXt0Ll9fcHJvdG9fXz1vfXx8ZnVuY3Rpb24odCxvKXtmb3IodmFyIGYgaW4gbylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobyxmKSYmKHRbZl09b1tmXSl9LGVyKGUscil9O2Z1bmN0aW9uIGhyKGUscil7aWYodHlwZW9mIHIhPSJmdW5jdGlvbiImJnIhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcocikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZXIoZSxyKTtmdW5jdGlvbiB0KCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfWUucHJvdG90eXBlPXI9PT1udWxsP09iamVjdC5jcmVhdGUocik6KHQucHJvdG90eXBlPXIucHJvdG90eXBlLG5ldyB0KX10eXBlb2YgU3VwcHJlc3NlZEVycm9yPT0iZnVuY3Rpb24iJiZTdXBwcmVzc2VkRXJyb3I7dmFyIGRyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShyLHQpe3RoaXMucG9zaXRpb249cix0aGlzLmluZGljZXM9dH1yZXR1cm4gZS5wcm90b3R5cGUuZ2V0UG9zaXRpb25Db3VudD1mdW5jdGlvbigpe3ZhciByLHQsbz10aGlzLmluZGljZXMsZj10aGlzLnBvc2l0aW9uO3JldHVybiBvP28uYXJyYXkubGVuZ3RoLygocj1vLnN0cmlkZSkhPT1udWxsJiZyIT09dm9pZCAwP3I6MSk6Zi5hcnJheS5sZW5ndGgvKCh0PWYuc3RyaWRlKSE9PW51bGwmJnQhPT12b2lkIDA/dDozKX0sZS5wcm90b3R5cGUuZ2V0UG9zaXRpb25CeUluZGV4PWZ1bmN0aW9uKHIsdCl7dmFyIG8sZixkLHYsbj10aGlzLmluZGljZXMscz10aGlzLnBvc2l0aW9uLHU9cjtpZihuKXt2YXIgdz1uLmFycmF5LHk9KG89bi5zdHJpZGUpIT09bnVsbCYmbyE9PXZvaWQgMD9vOjEscD0oZj1uLm9mZnNldCkhPT1udWxsJiZmIT09dm9pZCAwP2Y6MDt1PXdbcip5K3BdfXZhciBhPXMuYXJyYXksaD0oZD1zLnN0cmlkZSkhPT1udWxsJiZkIT09dm9pZCAwP2Q6MyxBPSh2PXMub2Zmc2V0KSE9PW51bGwmJnYhPT12b2lkIDA/djowO3JldHVybiB1PXUqaCtBLHQueD1hW3VdLHQueT1hW3UrMV0sdC56PWFbdSsyXSx0fSxlLnByb3RvdHlwZS5jcmVhdGVUcmVlPWZ1bmN0aW9uKHIsdCxvKXt0aHJvdyBuZXcgRXJyb3IoIm5vdCBpbXBsZW1lbnRlZCIpfSxlLnByb3RvdHlwZS50cmlhbmdsZXNJblNwaGVyZT1mdW5jdGlvbihyLHQpe3Rocm93IG5ldyBFcnJvcigibm90IGltcGxlbWVudGVkIil9LGUucHJvdG90eXBlLmludGVyc2VjdFJheT1mdW5jdGlvbihyLHQsbyxmKXt0aHJvdyBuZXcgRXJyb3IoIm5vdCBpbXBsZW1lbnRlZCIpfSxlfSgpLG09ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHIsdCxvLGYsZCl7dGhpcy5pZD1yLHRoaXMuZXh0ZW50cz10LHRoaXMuc3RhcnRJbmRleD1vLHRoaXMuZW5kSW5kZXg9Zix0aGlzLmRlZXB0aD1kfXJldHVybiBlfSgpLFE9Nio0KzQrNCsyKzI7ZnVuY3Rpb24geXIoZSxyKXtmb3IodmFyIHQ9bmV3IEFycmF5QnVmZmVyKHIqUSksbz1uZXcgRmxvYXQzMkFycmF5KHQpLGY9bmV3IFVpbnQzMkFycmF5KHQpLGQ9bmV3IFVpbnQxNkFycmF5KHQpLHY9W2VdLG4scztuPXYucG9wKCk7KXM9bi5pZCpRLzQsb1tzXT1uLmV4dGVudHNbMF0sb1tzKzFdPW4uZXh0ZW50c1sxXSxvW3MrMl09bi5leHRlbnRzWzJdLG9bcyszXT1uLmV4dGVudHNbM10sb1tzKzRdPW4uZXh0ZW50c1s0XSxvW3MrNV09bi5leHRlbnRzWzVdLGZbcys2XT1uLnN0YXJ0SW5kZXgsZltzKzddPW4uZW5kSW5kZXgscz1uLmlkKlEvMixuLm5vZGUwJiYoZFtzKzE2XT1uLm5vZGUwLmlkLHYucHVzaChuLm5vZGUwKSksbi5ub2RlMSYmKGRbcysxN109bi5ub2RlMS5pZCx2LnB1c2gobi5ub2RlMSkpO3JldHVybiB0fWZ1bmN0aW9uIGNyKGUscix0LG8sZixkLHYsbixzKXtzPT09dm9pZCAwJiYocz0wKSx0PXQtcyxvPW8tcyxmPWYtcyxkPWQrcyx2PXYrcyxuPW4rczt2YXIgdT0wLHc9MCx5PTAscD0wLGE9MCxoPTA7cmV0dXJuIHIueD49MD8odT0odC1lLngpKnIueCx3PShkLWUueCkqci54KToodT0oZC1lLngpKnIueCx3PSh0LWUueCkqci54KSxyLnk+PTA/KHk9KG8tZS55KSpyLnkscD0odi1lLnkpKnIueSk6KHk9KHYtZS55KSpyLnkscD0oby1lLnkpKnIueSksISh1PnB8fHk+d3x8KHk+dSYmKHU9eSkscDx3JiYodz1wKSxyLno+PTA/KGE9KGYtZS56KSpyLnosaD0obi1lLnopKnIueik6KGE9KG4tZS56KSpyLnosaD0oZi1lLnopKnIueiksdT5ofHxhPncpfHwoYT51JiYodT1hKSxoPHcmJih3PWgpLHc8MCkpfXZhciBZPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShyLHQsbyl7dGhpcy54PXIsdGhpcy55PXQsdGhpcy56PW99cmV0dXJuIGUucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMueD1yLngsdGhpcy55PXIueSx0aGlzLno9ci56LHRoaXN9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbihyLHQsbyl7cmV0dXJuIHRoaXMueD1yLHRoaXMueT10LHRoaXMuej1vLHRoaXN9LGUucHJvdG90eXBlLmZyb21BcnJheT1mdW5jdGlvbihyLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD0wKSx0aGlzLng9clt0XSx0aGlzLnk9clt0KzFdLHRoaXMuej1yW3QrMl0sdGhpc30sZS5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihyLHQpe3JldHVybiByPT09dm9pZCAwJiYocj1bXSksdD09PXZvaWQgMCYmKHQ9MCksclt0XT10aGlzLngsclt0KzFdPXRoaXMueSxyW3QrMl09dGhpcy56LHJ9LGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy54Kz1yLngsdGhpcy55Kz1yLnksdGhpcy56Kz1yLnosdGhpc30sZS5wcm90b3R5cGUubXVsdGlwbHlTY2FsYXI9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMueCo9cix0aGlzLnkqPXIsdGhpcy56Kj1yLHRoaXN9LGUucHJvdG90eXBlLnN1YlZlY3RvcnM9ZnVuY3Rpb24ocix0KXtyZXR1cm4gdGhpcy54PXIueC10LngsdGhpcy55PXIueS10LnksdGhpcy56PXIuei10LnosdGhpc30sZS5wcm90b3R5cGUuYWRkU2NhbGVkVmVjdG9yPWZ1bmN0aW9uKHIsdCl7cmV0dXJuIHRoaXMueCs9ci54KnQsdGhpcy55Kz1yLnkqdCx0aGlzLnorPXIueip0LHRoaXN9LGUucHJvdG90eXBlLmRvdD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy54KnIueCt0aGlzLnkqci55K3RoaXMueipyLnp9LGUucHJvdG90eXBlLmNyb3NzPWZ1bmN0aW9uKHIpe3ZhciB0PXRoaXMueCxvPXRoaXMueSxmPXRoaXMuejtyZXR1cm4gdGhpcy54PW8qci56LWYqci55LHRoaXMueT1mKnIueC10KnIueix0aGlzLno9dCpyLnktbypyLngsdGhpc30sZS5wcm90b3R5cGUuY3Jvc3NWZWN0b3JzPWZ1bmN0aW9uKHIsdCl7dmFyIG89ci54LGY9ci55LGQ9ci56LHY9dC54LG49dC55LHM9dC56O3JldHVybiB0aGlzLng9ZipzLWQqbix0aGlzLnk9ZCp2LW8qcyx0aGlzLno9bypuLWYqdix0aGlzfSxlLnByb3RvdHlwZS5kaXN0YW5jZVRvPWZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLnNxcnQodGhpcy5kaXN0YW5jZVRvU3F1YXJlZChyKSl9LGUucHJvdG90eXBlLmRpc3RhbmNlVG9TcXVhcmVkPWZ1bmN0aW9uKHIpe3ZhciB0PXRoaXMueC1yLngsbz10aGlzLnktci55LGY9dGhpcy56LXIuejtyZXR1cm4gdCp0K28qbytmKmZ9LGUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBlKHRoaXMueCx0aGlzLnksdGhpcy56KX0sZX0oKSxwcj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUocix0LG8pe3RoaXMudHJpYW5nbGU9cix0aGlzLmludGVyc2VjdGlvblBvaW50PXQsdGhpcy5pbmRleD1vfXJldHVybiBlfSgpLGxyPTFlLTYsUz1uZXcgWSgwLDAsMCksRD1uZXcgWSgwLDAsMCksZz1uZXcgWSgwLDAsMCksWD1uZXcgWSgwLDAsMCksQXI9ZnVuY3Rpb24oZSl7aHIocixlKTtmdW5jdGlvbiByKCl7cmV0dXJuIGUhPT1udWxsJiZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gci5wcm90b3R5cGUuY3JlYXRlVHJlZT1mdW5jdGlvbih0LG8sZil7bz1NYXRoLm1pbihvLDE2KTt2YXIgZD10aGlzLmdldFBvc2l0aW9uQ291bnQoKS8zLHY9ZD42NTUzNT9uZXcgVWludDMyQXJyYXkoZCk6bmV3IFVpbnQxNkFycmF5KGQpLG49bmV3IEZsb2F0MzJBcnJheShkKjYpLHM9W10sdT0wLHc9LTE7aWYoZilmb3IodmFyIHk9MCxwPTAsYT0wLGg9dm9pZCAwLEE9dm9pZCAwLGw9dm9pZCAwLEk9dm9pZCAwLGM9dm9pZCAwLHo9dm9pZCAwLGk9dm9pZCAwO3k8ZDt5Kz0xLHArPTMsYSs9Nil2W3ldPXksdGhpcy5nZXRQb3NpdGlvbkJ5SW5kZXgocCxEKSx0aGlzLmdldFBvc2l0aW9uQnlJbmRleChwKzEsZyksdGhpcy5nZXRQb3NpdGlvbkJ5SW5kZXgocCsyLFgpLGg9ST1ELngsaT1nLngsaTxoJiYoaD1pKSxpPkkmJihJPWkpLGk9WC54LGk8aCYmKGg9aSksaT5JJiYoST1pKSxBPWM9RC55LGk9Zy55LGk8QSYmKEE9aSksaT5jJiYoYz1pKSxpPVgueSxpPEEmJihBPWkpLGk+YyYmKGM9aSksbD16PUQueixpPWcueixpPGwmJihsPWkpLGk+eiYmKHo9aSksaT1YLnosaTxsJiYobD1pKSxpPnomJih6PWkpLG5bYV09aCxuW2ErMV09QSxuW2ErMl09bCxuW2ErM109SSxuW2ErNF09YyxuW2ErNV09ejtlbHNle2Zvcih2YXIgaz0xLzAsSD0xLzAsaj0xLzAscT0tMS8wLE09LTEvMCxQPS0xLzAseT0wLHA9MCxhPTAsaD12b2lkIDAsQT12b2lkIDAsbD12b2lkIDAsST12b2lkIDAsYz12b2lkIDAsej12b2lkIDAsaT12b2lkIDA7eTxkO3krPTEscCs9MyxhKz02KXZbeV09eSx0aGlzLmdldFBvc2l0aW9uQnlJbmRleChwLEQpLHRoaXMuZ2V0UG9zaXRpb25CeUluZGV4KHArMSxnKSx0aGlzLmdldFBvc2l0aW9uQnlJbmRleChwKzIsWCksaD1JPUQueCxpPWcueCxpPGgmJihoPWkpLGk+SSYmKEk9aSksaT1YLngsaTxoJiYoaD1pKSxpPkkmJihJPWkpLEE9Yz1ELnksaT1nLnksaTxBJiYoQT1pKSxpPmMmJihjPWkpLGk9WC55LGk8QSYmKEE9aSksaT5jJiYoYz1pKSxsPXo9RC56LGk9Zy56LGk8bCYmKGw9aSksaT56JiYoej1pKSxpPVgueixpPGwmJihsPWkpLGk+eiYmKHo9aSksblthXT1oLG5bYSsxXT1BLG5bYSsyXT1sLG5bYSszXT1JLG5bYSs0XT1jLG5bYSs1XT16LGg8ayYmKGs9aCksST5xJiYocT1JKSxBPEgmJihIPUEpLGM+TSYmKE09YyksbDxqJiYoaj1sKSx6PlAmJihQPXopO2Y9W2ssSCxqLHEsTSxQXX12YXIgVD1uZXcgbSgrK3csZiwwLGQsMCk7c1t1KytdPVQ7dmFyIE49W10sQj1bMCwxLDJdLFY9ZnVuY3Rpb24oVSxfKXtyZXR1cm4gTltfXS1OW1VdfTtmdW5jdGlvbiBSKFUpe3ZhciBfPVUuc3RhcnRJbmRleCwkPVUuZW5kSW5kZXgsRj1VLmV4dGVudHM7TlswXT1GWzNdLUZbMF0sTlsxXT1GWzRdLUZbMV0sTlsyXT1GWzVdLUZbMl0sQi5zb3J0KFYpO2Zvcih2YXIgVz0wO1c8MztXKyspe2Zvcih2YXIgTD1CW1ddLEc9RltMXStGW0wrM10seD1fLEM9JC0xLEs9LTEsSj12b2lkIDA7eDw9QzspSz09PS0xPyhKPXZbeF0sbltKKjYrTF0rbltKKjYrTCszXTxHP3grKzpLPUopOihKPXZbQ10sbltKKjYrTF0rbltKKjYrTCszXT49R3x8KHZbeF09Six2W0NdPUssSz0tMSx4KyspLEMtLSk7aWYoeD5fJiZ4PCQpe3ZhciBiPW5ldyBtKCsrdyxJcih2LG4sXyx4LGxyKSxfLHgsVS5kZWVwdGgrMSk7Yi5kZWVwdGg8byYmYi5lbmRJbmRleC1iLnN0YXJ0SW5kZXg+dCYmKHNbdSsrXT1iKTt2YXIgTz1uZXcgbSgrK3csSXIodixuLHgsJCxscikseCwkLFUuZGVlcHRoKzEpO08uZGVlcHRoPG8mJk8uZW5kSW5kZXgtTy5zdGFydEluZGV4PnQmJihzW3UrK109TyksVS5ub2RlMD1iLFUubm9kZTE9TyxVLnN0YXJ0SW5kZXg9MCxVLmVuZEluZGV4PTA7YnJlYWt9fX1mb3IoO3U7KVIoc1stLXVdKTtyZXR1cm4gdGhpcy5vZmZzZXRBcnJheT12LHRoaXMucm9vdE5vZGVQYWNrZWQ9eXIoVCx3KzEpLHMubGVuZ3RoPTAsdGhpc30sci5wcm90b3R5cGUudHJpYW5nbGVzSW5TcGhlcmU9ZnVuY3Rpb24odCxvKXtmb3IodmFyIGY9dGhpcy5vZmZzZXRBcnJheSxkPXRoaXMucm9vdE5vZGVQYWNrZWQsdj1uZXcgRmxvYXQzMkFycmF5KGQpLG49bmV3IFVpbnQzMkFycmF5KGQpLHM9bmV3IFVpbnQxNkFycmF5KGQpLHU9WzBdLHc9W10seSxwLGEsaDsoeT11LnBvcCgpKSE9PXZvaWQgMDspe2g9eSpRLzQ7dmFyIEE9c3IodC54LHZbaF0sdltoKzNdKS10LngsbD1zcih0LnksdltoKzFdLHZbaCs0XSktdC55LEk9c3IodC56LHZbaCsyXSx2W2grNV0pLXQuejtpZihBKkErbCpsK0kqSTw9bypvKXtmb3IodmFyIGM9bltoKzZdO2M8bltoKzddO2MrKyl3LnB1c2goZltjXSk7aD15KlEvMixwPXNbaCsxNl0sYT1zW2grMTddLHAmJnUucHVzaChwKSxhJiZ1LnB1c2goYSl9fWZvcih2YXIgej13Lmxlbmd0aCxpPW5ldyBGbG9hdDMyQXJyYXkoeio5KSxjPTA7Yzx6O2MrKyl7dmFyIGs9d1tjXTt0aGlzLmdldFBvc2l0aW9uQnlJbmRleChrLFMpLGlbYyo5XT1TLngsaVtjKjkrMV09Uy55LGlbYyo5KzJdPVMueix0aGlzLmdldFBvc2l0aW9uQnlJbmRleChrKzEsUyksaVtjKjkrM109Uy54LGlbYyo5KzRdPVMueSxpW2MqOSs1XT1TLnosdGhpcy5nZXRQb3NpdGlvbkJ5SW5kZXgoaysyLFMpLGlbYyo5KzZdPVMueCxpW2MqOSs3XT1TLnksaVtjKjkrOF09Uy56fXJldHVybiBpfSxyLnByb3RvdHlwZS5pbnRlcnNlY3RSYXk9ZnVuY3Rpb24odCxvLGYsZCl7Zm9yKHZhciB2PXRoaXMub2Zmc2V0QXJyYXksbj10aGlzLnJvb3ROb2RlUGFja2VkLHM9bmV3IEZsb2F0MzJBcnJheShuKSx1PW5ldyBVaW50MzJBcnJheShuKSx3PW5ldyBVaW50MTZBcnJheShuKSx5PW5ldyBZKDEvby54LDEvby55LDEvby56KSxwPVswXSxhLGgsQSxsOyhhPXAucG9wKCkpIT09dm9pZCAwOylpZihsPWEqUS80LGNyKHQseSxzW2xdLHNbbCsxXSxzW2wrMl0sc1tsKzNdLHNbbCs0XSxzW2wrNV0pKXtmb3IodmFyIEk9dVtsKzZdLGM9dVtsKzddLHo9dm9pZCAwLGk9dm9pZCAwLGs9dm9pZCAwLEg9dC54LGo9dC55LHE9dC56LE09by54LFA9by55LFQ9by56LE49dm9pZCAwLEI9dm9pZCAwLFY9dm9pZCAwLFI9dm9pZCAwLFU9dm9pZCAwLF89dm9pZCAwLCQ9dm9pZCAwLEY9dm9pZCAwLFc9dm9pZCAwLEw9dm9pZCAwLEc9dm9pZCAwLHg9dm9pZCAwLEM9dm9pZCAwLEs9dm9pZCAwLEo9dm9pZCAwLGI9dm9pZCAwLE89dm9pZCAwLGFyPXZvaWQgMCxycj12b2lkIDAsdHI9dm9pZCAwLG9yPXZvaWQgMCxpcj12b2lkIDAsWj12b2lkIDAsdnI9dm9pZCAwLGZyPXZvaWQgMCx1cj12b2lkIDAsbnI9dm9pZCAwO0k8YztJKyspe2lmKHo9dltJXSxpPXoqMyx0aGlzLmdldFBvc2l0aW9uQnlJbmRleChpLFMpLE49Uy54LEI9Uy55LFY9Uy56LHRoaXMuZ2V0UG9zaXRpb25CeUluZGV4KGkrMSxTKSxSPVMueCxVPVMueSxfPVMueix0aGlzLmdldFBvc2l0aW9uQnlJbmRleChpKzIsUyksJD1TLngsRj1TLnksVz1TLnosTD1SLU4sRz1VLUIseD1fLVYsQz0kLU4sSz1GLUIsSj1XLVYsYj1HKkoteCpLLE89eCpDLUwqSixhcj1MKkstRypDLFo9TSpiK1AqTytUKmFyLFo+MClpcj0xO2Vsc2UgaWYoWjwwKWlyPS0xLFo9LVo7ZWxzZSBjb250aW51ZTtycj1ILU4sdHI9ai1CLG9yPXEtVix2cj1pciooTSoodHIqSi1vcipLKStQKihvcipDLXJyKkopK1QqKHJyKkstdHIqQykpLCEodnI8MCkmJihmcj1pciooTSooRypvci14KnRyKStQKih4KnJyLUwqb3IpK1QqKEwqdHItRypycikpLCEoZnI8MCkmJih2citmcj5afHwodXI9LWlyKihycipiK3RyKk8rb3IqYXIpLCEodXI8MCkmJihucj11ci9aLGQucHVzaChuZXcgcHIoW04sQixWLFIsVSxfLCQsRixXXSxbSCtNKm5yLGorUCpucixxK1QqbnJdLHopKSkpKSl9bD1hKlEvMixoPXdbbCsxNl0sQT13W2wrMTddLGgmJnAucHVzaChoKSxBJiZwLnB1c2goQSl9cmV0dXJuIGR9LHJ9KGRyKTtmdW5jdGlvbiBzcihlLHIsdCl7cmV0dXJuIGU8cj9yOmU+dD90OmV9ZnVuY3Rpb24gSXIoZSxyLHQsbyxmKXtpZih0Pj1vKXJldHVyblswLDAsMCwwLDAsMF07Zm9yKHZhciBkPTEvMCx2PTEvMCxuPTEvMCxzPS0xLzAsdT0tMS8wLHc9LTEvMCx5PXQscD12b2lkIDAsYT12b2lkIDA7eTxvO3krKylwPWVbeV0qNixhPXJbcF0sYTxkJiYoZD1hKSxhPXJbcCsxXSxhPHYmJih2PWEpLGE9cltwKzJdLGE8biYmKG49YSksYT1yW3ArM10sYT5zJiYocz1hKSxhPXJbcCs0XSxhPnUmJih1PWEpLGE9cltwKzVdLGE+dyYmKHc9YSk7cmV0dXJuW2QtZix2LWYsbi1mLHMrZix1K2YsdytmXX12YXIgd3I9MWUtNix6cj1bIngiLCJ5IiwieiJdLEU9bmV3IFkoMCwwLDApLFByPWZ1bmN0aW9uKGUpe2hyKHIsZSk7ZnVuY3Rpb24gcigpe3JldHVybiBlIT09bnVsbCYmZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIucHJvdG90eXBlLmNyZWF0ZVRyZWU9ZnVuY3Rpb24odCxvLGYpe289TWF0aC5taW4obywxNik7dmFyIGQ9dGhpcy5nZXRQb3NpdGlvbkJ5SW5kZXguYmluZCh0aGlzKSx2PXRoaXMuZ2V0UG9zaXRpb25Db3VudCgpLG49dj42NTUzNT9uZXcgVWludDMyQXJyYXkodik6bmV3IFVpbnQxNkFycmF5KHYpLHM9W10sdT0wLHc9LTE7aWYoZilmb3IodmFyIHk9MDt5PHY7eSs9MSluW3ldPXk7ZWxzZXtkKDAsRSk7Zm9yKHZhciBwPUUueCxhPUUueSxoPUUueixBPXAsbD1hLEk9aCx5PTAsYz12b2lkIDAsej12b2lkIDAsaT12b2lkIDA7eTx2O3krPTEpblt5XT15LGQoeSxFKSxjPUUueCx6PUUueSxpPUUueixjPHA/cD1jOmM+QSYmKEE9YyksejxhP2E9ejp6PmwmJihsPXopLGk8aD9oPWk6aT5JJiYoST1pKTtmPVtwLGEsaCxBLGwsSV19dmFyIGs9bmV3IG0oKyt3LGYsMCx2LDApO3NbdSsrXT1rO3ZhciBIPVtdLGo9WzAsMSwyXSxxPWZ1bmN0aW9uKFAsVCl7cmV0dXJuIEhbVF0tSFtQXX07ZnVuY3Rpb24gTShQKXt2YXIgVD1QLnN0YXJ0SW5kZXgsTj1QLmVuZEluZGV4LEI9UC5leHRlbnRzO0hbMF09QlszXS1CWzBdLEhbMV09Qls0XS1CWzFdLEhbMl09Qls1XS1CWzJdO2Zvcih2YXIgVj1qLnNvcnQocSlbMF0sUj16cltWXSxVPShCW1ZdK0JbViszXSkvMixfPVQsJD1OLTEsRj0tMSxXO188PSQ7KUY9PT0tMT8oVz1uW19dLGQoVyxFKSxFW1JdPFU/XysrOkY9Vyk6KFc9blskXSxkKFcsRSksRVtSXT49VXx8KG5bX109VyxuWyRdPUYsRj0tMSxfKyspLCQtLSk7aWYoXz5UKXt2YXIgTD1CLnNsaWNlKCk7TFtWKzNdPVUrd3I7dmFyIEc9bmV3IG0oKyt3LEwsVCxfLFAuZGVlcHRoKzEpO0cuZGVlcHRoPG8mJkcuZW5kSW5kZXgtRy5zdGFydEluZGV4PnQmJihzW3UrK109RyksUC5ub2RlMD1HfWlmKE4+Xyl7dmFyIHg9Qi5zbGljZSgpO3hbVl09VS13cjt2YXIgQz1uZXcgbSgrK3cseCxfLE4sUC5kZWVwdGgrMSk7Qy5kZWVwdGg8byYmQy5lbmRJbmRleC1DLnN0YXJ0SW5kZXg+dCYmKHNbdSsrXT1DKSxQLm5vZGUxPUN9UC5zdGFydEluZGV4PTAsUC5lbmRJbmRleD0wfWZvcig7dTspTShzWy0tdV0pO3JldHVybiB0aGlzLm9mZnNldEFycmF5PW4sdGhpcy5yb290Tm9kZVBhY2tlZD15cihrLHcrMSkscy5sZW5ndGg9MCx0aGlzfSxyLnByb3RvdHlwZS5pbnRlcnNlY3RSYXk9ZnVuY3Rpb24odCxvLGYsZCl7Zm9yKHZhciB2PXRoaXMub2Zmc2V0QXJyYXksbj10aGlzLnJvb3ROb2RlUGFja2VkLHM9bmV3IEZsb2F0MzJBcnJheShuKSx1PW5ldyBVaW50MzJBcnJheShuKSx3PW5ldyBVaW50MTZBcnJheShuKSx5PWYqZixwPW5ldyBZKDEvby54LDEvby55LDEvby56KSxhPVswXSxoLEEsbCxJOyhoPWEucG9wKCkpIT09dm9pZCAwOylpZihJPWgqUS80LGNyKHQscCxzW0ldLHNbSSsxXSxzW0krMl0sc1tJKzNdLHNbSSs0XSxzW0krNV0sZikpe2Zvcih2YXIgYz11W0krNl0sej11W0krN10saT12b2lkIDAsaz12b2lkIDAsSD12b2lkIDAsaj12b2lkIDAscT12b2lkIDAsTT12b2lkIDAsUD12b2lkIDAsVD12b2lkIDAsTj12b2lkIDAsQj12b2lkIDAsVj12b2lkIDAsUj12b2lkIDA7Yzx6O2MrKylpPXZbY10sdGhpcy5nZXRQb3NpdGlvbkJ5SW5kZXgoaSxFKSxrPUUueCxIPUUueSxqPUUueixxPXQueCxNPXQueSxQPXQueixUPW8ueCxOPW8ueSxCPW8ueixWPVQqKGstcSkrTiooSC1NKStCKihqLVApLFY+MCYmKHErPVQqVixNKz1OKlYsUCs9QipWKSxUPWstcSxOPUgtTSxCPWotUCxWPVQqVCtOKk4rQipCLFY8PXkmJmQucHVzaChuZXcgcHIoW2ssSCxqLGssSCxqLGssSCxqXSxbcSxNLFBdLGkpKTtJPWgqUS8yLEE9d1tJKzE2XSxsPXdbSSsxN10sQSYmYS5wdXNoKEEpLGwmJmEucHVzaChsKX1yZXR1cm4gZH0scn0oZHIpO2Z1bmN0aW9uIEJyKGUpe29ubWVzc2FnZT1mdW5jdGlvbihyKXtQcm9taXNlLnJlc29sdmUoci5kYXRhKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfSkudGhlbihmdW5jdGlvbih0KXt2YXIgbz10Lm91dHB1dCxmPXQudHJhbnNmZXI7cmV0dXJuIHBvc3RNZXNzYWdlKG8sZil9KS5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4gcG9zdE1lc3NhZ2UoeyQkZXJyb3I6dH0pfSl9fUJyKGZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLnJlc29sdmUoZSkudGhlbihmdW5jdGlvbihyKXtmb3IodmFyIHQ9W10sbz1uZXcgU2V0LGY9MCxkPXI7ZjxkLmxlbmd0aDtmKyspe3ZhciB2PWRbZl0sbj12b2lkIDA7aWYodi50eXBlPT09Im1lc2giKW49bmV3IEFyKHYuYXR0cmlidXRlcy5wb3NpdGlvbix2LmluZGljZXMpO2Vsc2UgaWYodi50eXBlPT09InBvaW50cyIpbj1uZXcgUHIodi5hdHRyaWJ1dGVzLnBvc2l0aW9uLHYuaW5kaWNlcyk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgVHlwZSIpO24uY3JlYXRlVHJlZSh2Lm1heEl0ZW1QZXJOb2RlLHYubWF4VHJlZURlcHRoLHYuZXh0ZW50cyk7dmFyIHM9e3R5cGU6di50eXBlLGF0dHJpYnV0ZXM6di5hdHRyaWJ1dGVzLGluZGljZXM6di5pbmRpY2VzLG9mZnNldEFycmF5Om4ub2Zmc2V0QXJyYXkscm9vdE5vZGVQYWNrZWQ6bi5yb290Tm9kZVBhY2tlZH07dC5wdXNoKHMpO3ZhciB1PXZvaWQgMDtmb3IodmFyIHcgaW4gcy5hdHRyaWJ1dGVzKXt2YXIgeT1zLmF0dHJpYnV0ZXNbd107eSYmeS5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmby5hZGQoeS5idWZmZXIpfXU9cy5pbmRpY2VzLHUmJnUuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXImJm8uYWRkKHUuYnVmZmVyKSx1PXMub2Zmc2V0QXJyYXksdSYmdS5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmby5hZGQodS5idWZmZXIpLG8uYWRkKHMucm9vdE5vZGVQYWNrZWQpfXJldHVybntvdXRwdXQ6dCx0cmFuc2ZlcjpBcnJheS5mcm9tKG8pfX0pfSl9KSgpOwo=",decodeBase64$1=n=>Uint8Array.from(atob(n),t=>t.charCodeAt(0)),blob$2=typeof self!="undefined"&&self.Blob&&new Blob([decodeBase64$1(encodedJs$1)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$1(n){let t;try{if(t=blob$2&&(self.URL||self.webkitURL).createObjectURL(blob$2),!t)throw"";const e=new Worker(t,{name:n==null?void 0:n.name});return e.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),e}catch(e){return new Worker("data:text/javascript;base64,"+encodedJs$1,{name:n==null?void 0:n.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}var WorkerPool$1=function(){function n(t,e){this.pool=e,this.workerCreator=t,this.queue=[],this.workers=[],this.workersResolver=[],this.workerStatus=0}return n.prototype.initWorker=function(t){if(this.workerCreator&&!this.workers[t]){var e=this.workerCreator();e.addEventListener("message",this.onMessage.bind(this,t)),this.workers[t]=e}},n.prototype.getIdleWorker=function(){for(var t=0;t<this.pool;t++)if(!(this.workerStatus&1<<t))return t;return-1},n.prototype.onMessage=function(t,e){var r=this.workersResolver[t],o=r.resolve,s=r.reject;if(e.data&&"$$error"in e.data?s(e.data.$$error):o(e.data),this.queue.length){var u=this.queue.shift(),l=u.resolve,c=u.reject,f=u.input,d=u.transfer;this.workersResolver[t]={resolve:l,reject:c},this.workers[t].postMessage(f,d)}else this.workerStatus^=1<<t},n.prototype.postMessage=function(t,e){var r=this;return e===void 0&&(e=[]),new Promise(function(o,s){var u=r.getIdleWorker();u!==-1?(r.initWorker(u),r.workerStatus|=1<<u,r.workersResolver[u]={resolve:o,reject:s},r.workers[u].postMessage(t,e)):r.queue.push({resolve:o,reject:s,input:t,transfer:e})})},n.prototype.dispose=function(){this.workers.forEach(function(t){return t.terminate()}),this.workersResolver.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0},n}(),bvhWorkerPool=new WorkerPool$1(function(){return new WorkerWrapper$1},4),bvhMeshMap=new Map,scratchRay=new THREE__namespace.Ray,scratchNormalMatrix=new THREE__namespace.Matrix3,scratchInverseMatrix=new THREE__namespace.Matrix4,scratchIntersectionFaceA=new THREE__namespace.Vector3,scratchIntersectionFaceB=new THREE__namespace.Vector3,scratchIntersectionFaceC=new THREE__namespace.Vector3,scratchIntersectionTriangle=new THREE__namespace.Triangle;function raycastMesh(n,t,e,r){var o,s=n.matrixWorld;scratchInverseMatrix.getInverse(s),scratchRay.copy(e.ray).applyMatrix4(scratchInverseMatrix);for(var u=t.intersectRay(scratchRay.origin,scratchRay.direction,0,[]),l=n.geometry,c=n.material,f=l.groups,d=l.index,p=0,v=u.length;p<v;p++){var A=u[p],g=A.triangle,h=A.index,y=A.intersectionPoint,m=new THREE__namespace.Vector3(y[0],y[1],y[2]).applyMatrix4(s),E=e.ray.origin.distanceTo(m);if(!(E<e.near||E>e.far)){var b=void 0;if(Array.isArray(c)){if(f)for(var T=h*3,_=0,R=f;_<R.length;_++){var S=R[_];if(T>=S.start&&T-S.start<S.count){b=c[(o=S.materialIndex)!==null&&o!==void 0?o:0];break}}}else b=c;if(b){var C=scratchIntersectionTriangle.set(scratchIntersectionFaceA.set(g[0],g[1],g[2]).applyMatrix4(s),scratchIntersectionFaceB.set(g[3],g[4],g[5]).applyMatrix4(s),scratchIntersectionFaceC.set(g[6],g[7],g[8]).applyMatrix4(s)).getNormal(new THREE__namespace.Vector3),B=h*3,L=new THREE__namespace.Face3(d?d.array[B]:B,d?d.array[B+1]:B+1,d?d.array[B+2]:B+2,C),M=e.ray.direction.dot(C);b.side===THREE__namespace.FrontSide&&M>=0||b.side===THREE__namespace.BackSide&&M<=0||r.push({distance:E,object:n,face:L,point:m,distanceToRay:0,faceIndex:h})}}}}function raycastPoints(n,t,e,r){var o,s,u=n.matrixWorld;scratchNormalMatrix.getNormalMatrix(u),scratchInverseMatrix.getInverse(u);var l=((s=(o=e.params.Points)===null||o===void 0?void 0:o.threshold)!==null&&s!==void 0?s:1)*scratchInverseMatrix.getMaxScaleOnAxis();scratchRay.copy(e.ray).applyMatrix4(scratchInverseMatrix);for(var c=t.intersectRay(scratchRay.origin,scratchRay.direction,l,[]),f=n.geometry,d=f.index,p=f.getAttribute("normal"),v=0,A=c.length;v<A;v++){var g=c[v],h=g.triangle,y=g.index,m=g.intersectionPoint,E=new THREE__namespace.Vector3(m[0],m[1],m[2]).applyMatrix4(u),b=e.ray.origin.distanceTo(E);if(!(b<e.near||b>e.far)){var T=scratchIntersectionFaceA.set(h[0],h[1],h[2]).applyMatrix4(u),_=d?d.array[y]:y,R=void 0;if(p instanceof THREE__namespace.BufferAttribute){var S=new THREE__namespace.Vector3().fromBufferAttribute(p,_).applyNormalMatrix(scratchNormalMatrix);R=new THREE__namespace.Face3(_,_,_,S)}r.push({distance:b,object:n,face:R,point:E,distanceToRay:E.distanceTo(T),index:y})}}}var BVH_MESH_PROP="__bvh_mesh__",originMeshRaycast=THREE__namespace.Mesh.prototype.raycast;function overrideMeshRaycast(n,t){var e=getBvhTreeForMesh(this);e?raycastMesh(this,e,n,t):originMeshRaycast.call(this,n,t)}function getBvhTreeForMesh(n){var t=n[BVH_MESH_PROP];return t instanceof BVHMesh,t}function bindBvhTreeForMesh(n,t){var e;Object.assign(n,(e={},e[BVH_MESH_PROP]=t,e.raycast=overrideMeshRaycast,e))}var BVH_POINTS_PROP="__bvh_points__",originPointsRaycast=THREE__namespace.Points.prototype.raycast;function overridePointsRaycast(n,t){var e=getBvhTreeForPoints(this);e?raycastPoints(this,e,n,t):originPointsRaycast.call(this,n,t)}function getBvhTreeForPoints(n){var t=n[BVH_POINTS_PROP];return t instanceof BVHPoints,t}function bindBvhTreeForPoints(n,t){var e;Object.assign(n,(e={},e[BVH_POINTS_PROP]=t,e.raycast=overridePointsRaycast,e))}function generateBvhTree(n,t,e,r){var o=[];return n.traverse(function(s){(s instanceof THREE__namespace.Mesh||s instanceof THREE__namespace.Points)&&s.geometry instanceof THREE__namespace.BufferGeometry&&o.push(s)}),Promise.resolve().then(function(){for(var s=[],u=new Set,l=null,c=0;c<o.length;c++){var f=o[c],d=f.geometry;if(d instanceof THREE__namespace.BufferGeometry){var p=void 0;if(f instanceof THREE__namespace.Mesh?p="mesh":f instanceof THREE__namespace.Points&&(p="points"),!!p){var v=d.boundingBox,A=v?[v.min.x,v.min.y,v.min.z,v.max.x,v.max.y,v.max.z]:void 0,g={};for(var h in d.attributes){var y=d.attributes[h];y instanceof THREE__namespace.InterleavedBufferAttribute?(g[h]={array:y.data.array,stride:y.data.stride,offset:y.offset},l=y.data.array,l&&l.buffer instanceof ArrayBuffer&&u.add(l.buffer)):(g[h]={array:y.array},l=y.array,l&&l.buffer instanceof ArrayBuffer&&u.add(l.buffer))}var m=void 0,E=d.getIndex();E&&(E instanceof THREE__namespace.InterleavedBufferAttribute?(m={array:E.data.array,stride:E.data.stride,offset:E.offset},l=E.data.array,l&&l.buffer instanceof ArrayBuffer&&u.add(l.buffer)):(m={array:E.array},l=E.array,l&&l.buffer instanceof ArrayBuffer&&u.add(l.buffer)));var b={type:p,attributes:g,indices:m,maxItemPerNode:e,maxTreeDepth:r,extents:A};s.push(b)}}}return bvhWorkerPool.postMessage(s,Array.from(u))}).then(function(s){for(var u=0;u<o.length;u++){var l=o[u],c=l.geometry,f=s[u];if(c instanceof THREE__namespace.BufferGeometry){for(var d in f.attributes){var p=f.attributes[d].array,v=c.attributes[d];v instanceof THREE__namespace.InterleavedBufferAttribute?v.data.array=p:v.array=p}var A=c.getIndex();if(A&&f.indices){var p=f.indices.array;A instanceof THREE__namespace.InterleavedBufferAttribute?A.data.array=p:A.array=p}if(l instanceof THREE__namespace.Mesh){var g=new BVHMesh(f.attributes.position,f.indices);g.offsetArray=f.offsetArray,g.rootNodePacked=f.rootNodePacked,bindBvhTreeForMesh(l,g)}else if(l instanceof THREE__namespace.Points){var g=new BVHPoints(f.attributes.position,f.indices);g.offsetArray=f.offsetArray,g.rootNodePacked=f.rootNodePacked,bindBvhTreeForPoints(l,g)}}}return n})}var TileNode=function(n){__extends(t,n);function t(e,r,o){o===void 0&&(o=noop$1);var s=n.call(this)||this;return s.contentObject=r,s.name=e,s.materials=[],s.pbmObjects=[],s.disposers=[o],s.add(r),r.traverse(function(u){var l;if(u instanceof THREE__namespace.Mesh||u instanceof THREE__namespace.Points){var c=u.material;Array.isArray(c)?(l=s.materials).push.apply(l,c):s.materials.push(c)}(u instanceof PBMMesh||u instanceof PBMSkinnedMesh||u instanceof PBMPointCloud)&&s.pbmObjects.push(u)}),s}return t.prototype.generateBvhTree=function(){return generateBvhTree(this,!0,200,10)},t.prototype.intersectRaycaster=function(e,r,o){r===void 0&&(r=!0),o===void 0&&(o=[]);for(var s=this.children.slice(),u,l=[];u=s.pop();)if(u.visible){u.raycast(e,l);for(var c=0,f=u.children.length;c<f;c++)s.push(u.children[c])}return l.forEach(function(d){var p=0;if((d.object instanceof PBMMesh||d.object instanceof PBMSkinnedMesh||d.object instanceof PBMPointCloud)&&d.face){var v=Array.isArray(d.object.material)?d.object.material[d.face.materialIndex]:d.object.material;v&&(p=v.floorIndex)}d.floor=p}),r&&l.sort(function(d,p){return d.distance-p.distance}),o.push.apply(o,l),o},t.prototype.update=function(e,r,o,s){for(var u=0,l=this.pbmObjects;u<l.length;u++){var c=l[u];c.update(e,r,o,s)}},t.prototype.dispose=function(){for(var e=0,r=this.disposers;e<r.length;e++){var o=r[e];o()}this.disposers.length=0,this.pbmObjects.length=0},t.prototype.clone=function(){return new t(this.name,this.contentObject.clone())},t}(THREE__namespace.Object3D);function pathJoin(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e=[];n=n.map(function(l){return(l!=null?l:"").trim()}).filter(function(l){return l.length>0&&!/^\/+$/.test(l)});for(var r=0;r<n.length;r++){var o=r===0,s=r===n.length-1,u=n[r];o||(u=u.replace(/^\.\//,"").replace(/^\/+/,"")),s||(u=u.replace(/\/+$/,"")),e.push(u)}return e.join("/")}function normalizeURL(n){var t,e=/^(http\:|https\:|file\:)?\/\/[^/]/.exec(n);if(!e)return n;var r=e[1]||"",o=n.slice(r.length+2),s=o.indexOf("#");s>=0&&(n.slice(s),o=n.slice(0,s));var u=o.indexOf("?");u>=0&&(n.slice(u),o=n.slice(0,u));for(var l=o.split("/"),c=l.shift(),f=(t=l.pop())!==null&&t!==void 0?t:"",d=[],p=0,v=l;p<v.length;p++){var A=v[p];if(!(A===""||A===".")){if(A===".."){d.pop();continue}d.push(A)}}return r+"//"+c+"/"+d.join("/")+"/"+f}function isAbsoluteURL(n){return n.indexOf("//")===0||/^[0-9a-z]+\:/i.test(n)}function normalizeTileHeader(n,t,e){var r;if(n.content){var o=(r=n.content.uri)!==null&&r!==void 0?r:n.content.url;typeof o=="string"&&!isAbsoluteURL(o)&&(n.content.uri=normalizeURL(pathJoin(t,o)))}if(n.transform){for(var s=!1,u=0;u<16;u++){var l=n.transform[u];if(typeof l!="number"||isNaN(l)||!isFinite(l)){s=!0;break}}if(n.transform[15]===0&&(s=!0),s)throw new Error("Invalid Tile Transform: "+JSON.stringify(n.transform))}if(n.children)for(var c=0,f=n.children;c<f.length;c++){var d=f[c];normalizeTileHeader(d,t)}return n}function normalizeTilesetHeader(n,t){if(n.asset||(n.asset={}),n.rootMeta||(n.rootMeta={}),n.rootMeta.taskParameters||(n.rootMeta.taskParameters={}),n.asset.overview){var e=n.asset.overview;isAbsoluteURL(e.imageFile)||(e.imageFile=normalizeURL(pathJoin(t,e.imageFile))),isAbsoluteURL(e.worldFile)||(e.worldFile=normalizeURL(pathJoin(t,e.worldFile)))}if(n.asset.trajectories)for(var r=0;r<n.asset.trajectories.list.length;r++){var o=n.asset.trajectories.list[r];o.file=normalizeURL(pathJoin(t,o.file))}return normalizeTileHeader(n.root,t),n}function initTextures(n,t,e){for(var r,o,s=Promise.resolve(),u=n.slice(),l=function(){for(var c=[],f=0,d=void 0;d=u.shift();){c.push(d);var p=((r=d.image)===null||r===void 0?void 0:r.width)*((o=d.image)===null||o===void 0?void 0:o.height);if(!isNaN(p)&&isFinite(p)&&(f+=p),f>=e)break}s=s.then(function(){return new Promise(function(v){AnimationFrameLoop.shared.add(function(){for(var A=0,g=c;A<g.length;A++){var h=g[A];t.initTexture(h)}v()},!0)})}).catch(function(){})};u.length>0;)l();return s}function appendSearch(n,t){if(t===void 0&&(t=""),(t[0]==="?"||t[0]==="&")&&(t=t.slice(1)),!t)return n;var e=n.indexOf("#"),r="";return e>=0&&(r=n.slice(e),n=n.slice(0,e)),(n[n.length-1]==="?"||n[n.length-1]==="&")&&(n=n.slice(0,-1)),n.indexOf("?")>=0?"".concat(n,"&").concat(t).concat(r):"".concat(n,"?").concat(t).concat(r)}var SIZEOF_UINT32$1=4;function parseHeader$1(n,t,e){var r=new DataView(t);if(n.magic=r.getUint32(e,!0),e+=SIZEOF_UINT32$1,n.version=r.getUint32(e,!0),e+=SIZEOF_UINT32$1,n.byteLength=r.getUint32(e,!0),e+=SIZEOF_UINT32$1,n.version!==1)throw new Error("3D Tile Version ".concat(n.version," not supported"));return e}var _a$4,GL_TYPE;(function(n){n[n.BYTE=5120]="BYTE",n[n.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",n[n.SHORT=5122]="SHORT",n[n.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",n[n.INT=5124]="INT",n[n.UNSIGNED_INT=5125]="UNSIGNED_INT",n[n.FLOAT=5126]="FLOAT",n[n.DOUBLE=5130]="DOUBLE"})(GL_TYPE||(GL_TYPE={}));var GL_TYPE_TO_ARRAY_TYPE=(_a$4={},_a$4[GL_TYPE.DOUBLE]=Float64Array,_a$4[GL_TYPE.FLOAT]=Float32Array,_a$4[GL_TYPE.UNSIGNED_SHORT]=Uint16Array,_a$4[GL_TYPE.UNSIGNED_INT]=Uint32Array,_a$4[GL_TYPE.UNSIGNED_BYTE]=Uint8Array,_a$4[GL_TYPE.BYTE]=Int8Array,_a$4[GL_TYPE.SHORT]=Int16Array,_a$4[GL_TYPE.INT]=Int32Array,_a$4),NAME_TO_GL_TYPE={DOUBLE:GL_TYPE.DOUBLE,FLOAT:GL_TYPE.FLOAT,UNSIGNED_SHORT:GL_TYPE.UNSIGNED_SHORT,UNSIGNED_INT:GL_TYPE.UNSIGNED_INT,UNSIGNED_BYTE:GL_TYPE.UNSIGNED_BYTE,BYTE:GL_TYPE.BYTE,SHORT:GL_TYPE.SHORT,INT:GL_TYPE.INT};function getArrayType(n){var t=GL_TYPE_TO_ARRAY_TYPE[n];if(!t)throw new Error("Failed to convert GL type");return t}function getByteSize(n){var t=getArrayType(n);return t.BYTES_PER_ELEMENT}function createTypedArray(n,t,e,r){e===void 0&&(e=0);var o=getArrayType(n);if(e%getByteSize(n)!==0){var s=r?t.slice(e,e+r*getByteSize(n)):t.slice(e);return new o(s)}else return new o(t,e,r!=null?r:(t.byteLength-e)/getByteSize(n))}function glTypeFromName(n){var t=NAME_TO_GL_TYPE[n];if(!t)throw new Error("Failed to convert GL type");return t}var FeatureTable=function(){function n(t,e){this.featuresLength=0,this.cachedTypedArrays={},this.json=t,this.buffer=e;var r=this.getGlobalProperty("POINTS_LENGTH",GL_TYPE.UNSIGNED_INT,1);r&&r.length&&(this.featuresLength=r[0])}return n.prototype.getExtension=function(t){return this.json.extensions&&this.json.extensions[t]},n.prototype.hasProperty=function(t){return!!this.json[t]},n.prototype.getGlobalProperty=function(t,e,r){var o=this.json[t];if(typeof o=="number"){var s=getArrayType(e);return new s([o])}else if(Array.isArray(o)){var s=getArrayType(e);return new s(o)}else if(o&&Number.isFinite(o.byteOffset))return this.getTypedArrayFromBinary(t,e,r,1,o.byteOffset);return null},n.prototype.getPropertyArray=function(t,e,r){var o=this.json[t];return o&&Number.isFinite(o.byteOffset)?("componentType"in o&&(e=glTypeFromName(o.componentType)),this.getTypedArrayFromBinary(t,e,r,this.featuresLength,o.byteOffset)):this.getTypedArrayFromArray(t,e,o)},n.prototype.getProperty=function(t,e,r,o,s){var u=this.json[t];if(!u)return null;var l=this.getPropertyArray(t,e,r);if(r===1)return s[0]=l[o],s;for(var c=0;c<r;++c)s[c]=l[r*o+c];return s},n.prototype.getTypedArrayFromBinary=function(t,e,r,o,s){var u=this.cachedTypedArrays,l=u[t];return l||(l=createTypedArray(e,this.buffer.buffer,this.buffer.byteOffset+s,o*r),u[t]=l),l},n.prototype.getTypedArrayFromArray=function(t,e,r){var o=this.cachedTypedArrays,s=o[t];return s||(s=createTypedArray(e,r),o[t]=s),s},n}(),SIZEOF_UINT32=4,DEPRECATION_WARNING="b3dm tile in legacy format.";function getStringFromArrayBuffer(n,t,e){var r=new TextDecoder("utf8"),o=new Uint8Array(n,t,e),s=r.decode(o);return s}function parseTable(n,t,e){return e=parseTablesHeader(n,t,e),e=parseFeatureTable(n,t,e),e=parseBatchTable(n,t,e),e}function parseTablesHeader(n,t,e){var r=new DataView(t),o=0;n.header=n.header||{};var s=r.getUint32(e,!0);e+=SIZEOF_UINT32;var u=r.getUint32(e,!0);e+=SIZEOF_UINT32;var l=r.getUint32(e,!0);e+=SIZEOF_UINT32;var c=r.getUint32(e,!0);return e+=SIZEOF_UINT32,l>=570425344?(e-=SIZEOF_UINT32*2,o=s,l=u,c=0,s=0,u=0,console.warn(DEPRECATION_WARNING)):c>=570425344&&(e-=SIZEOF_UINT32,o=l,l=s,c=u,s=0,u=0,console.warn(DEPRECATION_WARNING)),n.header.featureTableJsonByteLength=s,n.header.featureTableBinaryByteLength=u,n.header.batchTableJsonByteLength=l,n.header.batchTableBinaryByteLength=c,n.header.batchLength=o,e}function parseFeatureTable(n,t,e){var r=n.header||{},o=r.featureTableJsonByteLength,s=r.featureTableBinaryByteLength,u=r.batchLength;if(n.featureTableJson={BATCH_LENGTH:u||0},o&&o>0){var l=getStringFromArrayBuffer(t,e,o);n.featureTableJson=JSON.parse(l)}e+=o||0,n.featureTableBinary=new Uint8Array(t,e,s),e+=s||0,n.rtcCenter=[0,0,0];var c=new FeatureTable(n.featureTableJson,n.featureTableBinary);if(Array.isArray(c.json.RTC_CENTER)){var f=c.json.RTC_CENTER;n.rtcCenter[0]=f[0],n.rtcCenter[1]=f[1],n.rtcCenter[2]=f[2]}else{var f=c.getGlobalProperty("RTC_CENTER",GL_TYPE.FLOAT,3);f&&(n.rtcCenter[0]=f[0],n.rtcCenter[1]=f[1],n.rtcCenter[2]=f[2])}return e}function parseBatchTable(n,t,e){var r=n.header||{},o=r.batchTableJsonByteLength,s=r.batchTableBinaryByteLength;if(o&&o>0){var u=getStringFromArrayBuffer(t,e,o);n.batchTableJson=JSON.parse(u),e+=o,s&&s>0&&(n.batchTableBinary=new Uint8Array(t,e,s),n.batchTableBinary=new Uint8Array(n.batchTableBinary),e+=s)}return e}function sliceArrayBuffer(n,t,e){var r=e!==void 0?new Uint8Array(n).subarray(t,t+e):new Uint8Array(n).subarray(t),o=new Uint8Array(r);return o.buffer}function parseGlTFArrayBuffer(n,t,e){var r=n.byteLength-e;if(r===0)throw new Error("glTF byte length must be greater than 0.");return e%4!==0&&console.warn("".concat(n.type,": embedded glb is not aligned to a 4-byte boundary.")),n.gltfArrayBuffer=sliceArrayBuffer(t,e,r),n.byteLength}function decodeText(n){if(typeof TextDecoder!="undefined")return new TextDecoder().decode(n);for(var t="",e=0,r=n.length;e<r;e++)t+=String.fromCharCode(n[e]);try{return decodeURIComponent(escape(t))}catch(o){return t}}var WEBGL_CONSTANTS={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},WEBGL_COMPONENT_TYPES={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},WEBGL_FILTERS={9728:THREE__namespace.NearestFilter,9729:THREE__namespace.LinearFilter,9984:THREE__namespace.NearestMipmapNearestFilter,9985:THREE__namespace.LinearMipmapNearestFilter,9986:THREE__namespace.NearestMipmapLinearFilter,9987:THREE__namespace.LinearMipmapLinearFilter},WEBGL_WRAPPINGS={33071:THREE__namespace.ClampToEdgeWrapping,33648:THREE__namespace.MirroredRepeatWrapping,10497:THREE__namespace.RepeatWrapping},WEBGL_TYPE_SIZES={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ATTRIBUTES={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},PATH_PROPERTIES={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},INTERPOLATION={CUBICSPLINE:void 0,LINEAR:THREE__namespace.InterpolateLinear,STEP:THREE__namespace.InterpolateDiscrete},ALPHA_MODES={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function values(n){var t=[];for(var e in n)t.push(n[e]);return t}function composeDsiposeSet(n){var t=Array.from(n);return function(){for(var e=0,r=t;e<r.length;e++){var o=r[e];typeof o.dispose=="function"&&o.dispose(),typeof o.close=="function"&&o.close()}}}var Parser=function(){function n(t,e,r){this.json=t,this.extensions=e,this.options=r,this.cache=new Map,this.disposeSet=new Set,this.textureSet=new Set,this.nodeNamesUsed={}}return n.prototype.dispose=function(){this.cache.clear(),this.disposeSet.forEach(function(t){typeof t.dispose=="function"&&t.dispose(),typeof t.close=="function"&&t.close()}),this.disposeSet.clear(),this.textureSet.clear(),this.extensions={},this.json={asset:{version:"unknown"}}},n.prototype.markDefs=function(){for(var t=this.json.nodes||[],e=this.json.skins||[],r=this.json.meshes||[],o=0,s=e.length;o<s;o++)for(var u=e[o].joints,l=0,c=u.length;l<c;l++)t[u[l]].isBone=!0;for(var f=0,d=t.length;f<d;f++){var p=t[f];p.mesh!==void 0&&p.skin!==void 0&&(r[p.mesh].isSkinnedMesh=!0)}},n.prototype.parse=function(){var t=this,e=this.json,r=this.extensions;this.markDefs();for(var o=0,s=values(r);o<s.length;o++){var u=s[o];u.markDefs(this)}return Promise.all(values(r).map(function(l){return l.prepare(t)})).then(function(){var l,c,f;return Promise.all([Promise.all(((l=e.scenes)!==null&&l!==void 0?l:[]).map(function(d,p){return t.loadScene(p)})),Promise.all(((c=e.animations)!==null&&c!==void 0?c:[]).map(function(d,p){return t.loadAnimation(p)})),Promise.all(((f=e.cameras)!==null&&f!==void 0?f:[]).map(function(d,p){return t.loadCamera(p)}))])}).then(function(l){var c=l[0],f=l[1],d=l[2],p={json:e,scene:c[e.scene||0],scenes:c,animations:f,cameras:d,textures:[],dispose:noop$1};return p}).then(function(l){return Promise.all(values(r).map(function(c){return c.emitResult(l,t)})).then(function(){return l})}).then(function(l){var c=Array.from(t.textureSet),f=composeDsiposeSet(t.disposeSet);return Object.assign(l,{textures:c,dispose:f}),t.textureSet.clear(),t.disposeSet.clear(),t.dispose(),l})},n.prototype.loadCamera=function(t){var e="camera:"+t,r=this.cache.get(e);if(r)return r;for(var o=null,s=0,u=values(this.extensions);s<u.length;s++){var l=u[s];if(o=l.loadCamera(t,this),o)break}if(!o){var c=void 0,f=this.json.cameras[t],d=f[f.type];d?f.type==="perspective"?c=new THREE__namespace.PerspectiveCamera(THREE__namespace.MathUtils.radToDeg(d.yfov),d.aspectRatio||1,d.znear||1,d.zfar||2e6):f.type==="orthographic"?c=new THREE__namespace.OrthographicCamera(-d.xmag,d.xmag,d.ymag,-d.ymag,d.znear,d.zfar):(console.warn("glTF: Invalid camera type ".concat(f.type,".")),c=new THREE__namespace.Camera):(console.warn("glTF: Missing camera parameters."),c=new THREE__namespace.Camera),f.name&&(c.name=this.createUniqueName(f.name)),o=Promise.resolve(c)}return this.cache.set(e,o),o},n.prototype.loadSkin=function(t){var e="skin:"+t,r=this.cache.get(e);if(r)return r;var o,s=this.json.skins[t],u={joints:s.joints};return s.inverseBindMatrices===void 0?o=Promise.resolve(u):o=this.loadAccessor(s.inverseBindMatrices).then(function(l){return l&&(u.inverseBindMatrices=l),u}),this.cache.set(e,o),o},n.prototype.loadAnimation=function(t){var e="animation:"+t,r=this.cache.get(e);if(r)return r;for(var o=null,s=0,u=values(this.extensions);s<u.length;s++){var l=u[s];if(o=l.loadAnimation(t,this),o)break}if(!o){for(var c=this.json,f=c.animations[t],d=[],p=[],v=[],A=[],g=[],h=0,y=f.channels.length;h<y;h++){var m=f.channels[h],E=f.samplers[m.sampler],b=m.target,T=b.node!==void 0?b.node:b.id,_=f.parameters!==void 0?f.parameters[E.input]:E.input,R=f.parameters!==void 0?f.parameters[E.output]:E.output;d.push(this.loadNode(T)),p.push(this.loadAccessor(_)),v.push(this.loadAccessor(R)),A.push(E),g.push(b)}o=Promise.all([Promise.all(d),Promise.all(p),Promise.all(v),Promise.all(A),Promise.all(g)]).then(function(S){for(var C=S[0],B=S[1],L=S[2],M=S[3],w=S[4],H=[],O=function(U,D){var q=C[U],z=B[U],Q=L[U],G=M[U],X=w[U];if(q===void 0)return"continue";q.updateMatrix(),q.matrixAutoUpdate=!0;var $=void 0;switch(PATH_PROPERTIES[X.path]){case PATH_PROPERTIES.weights:$=THREE__namespace.NumberKeyframeTrack;break;case PATH_PROPERTIES.rotation:$=THREE__namespace.QuaternionKeyframeTrack;break;case PATH_PROPERTIES.position:case PATH_PROPERTIES.scale:default:$=THREE__namespace.VectorKeyframeTrack;break}var W=q.name?q.name:q.uuid,oe=G.interpolation!==void 0?INTERPOLATION[G.interpolation]:THREE__namespace.InterpolateLinear,ae=[];PATH_PROPERTIES[X.path]===PATH_PROPERTIES.weights?q.traverse(function(ne){ne.morphTargetInfluences&&ae.push(ne.name?ne.name:ne.uuid)}):ae.push(W);var re=Q.array;if(Q.normalized){for(var j=getNormalizedComponentScale(re.constructor),se=new Float32Array(re.length),ie=0,ue=re.length;ie<ue;ie++)se[ie]=re[ie]*j;re=se}for(var ie=0,ue=ae.length;ie<ue;ie++){var fe=new $(ae[ie]+"."+PATH_PROPERTIES[X.path],z.array,re,oe);H.push(fe)}},I=0,N=C.length;I<N;I++)O(I);var k=f.name?f.name:"animation_"+t;return new THREE__namespace.AnimationClip(k,void 0,H)})}return this.cache.set(e,o),o},n.prototype.loadBuffer=function(t){var e=this.json.buffers[t];if(e.type&&e.type!=="arraybuffer")throw new Error("glTF: "+e.type+" buffer type is not supported.");var r="buffer:"+t,o=this.cache.get(r);if(o)return o;for(var s=null,u=0,l=values(this.extensions);u<l.length;u++){var c=l[u];if(s=c.loadBuffer(t,this),s)break}if(!s){var f=this.json.buffers[t];s=this.options.fetcher.ajax(this.resolveResouce(f.uri),{responseType:"arraybuffer"}).then(function(d){return d.body})}return this.cache.set(r,s),s},n.prototype.loadBufferView=function(t){var e="bufferView:"+t,r=this.cache.get(e);if(r)return r;for(var o=null,s=0,u=values(this.extensions);s<u.length;s++){var l=u[s];if(o=l.loadBufferView(t,this),o)break}if(!o){var c=this.json.bufferViews[t];o=this.loadBuffer(c.buffer).then(function(f){var d=c.byteLength||0,p=c.byteOffset||0;return f.slice(p,p+d)})}return this.cache.set(e,o),o},n.prototype.loadAccessor=function(t){var e=this,r="accessor:"+t,o=this.cache.get(r);if(o)return o;var s=null;if(!s){var u=this.json.accessors[t];if(u.bufferView===void 0&&u.sparse===void 0)s=Promise.resolve(null);else{var l=[];u.bufferView!==void 0?l.push(this.loadBufferView(u.bufferView)):l.push(Promise.resolve(null)),u.sparse!==void 0&&(l.push(this.loadBufferView(u.sparse.indices.bufferView)),l.push(this.loadBufferView(u.sparse.values.bufferView))),s=Promise.all(l).then(function(c){var f=c[0],d=WEBGL_TYPE_SIZES[u.type],p=WEBGL_COMPONENT_TYPES[u.componentType],v=p.BYTES_PER_ELEMENT,A=v*d,g=u.byteOffset||0,h=u.bufferView!==void 0?e.json.bufferViews[u.bufferView].byteStride:void 0,y=u.normalized===!0,m,E;if(h&&h!==A){var b=Math.floor(g/h),T="InterleavedBuffer:"+u.bufferView+":"+u.componentType+":"+b+":"+u.count,_=e.cache.get(T);_||(m=new p(f,b*h,u.count*h/v),_=new THREE__namespace.InterleavedBuffer(m,h/v),e.cache.set(T,_)),E=new THREE__namespace.InterleavedBufferAttribute(_,d,g%h/v,y)}else f===null?m=new p(u.count*d):m=new p(f,g,u.count*d),E=new THREE__namespace.BufferAttribute(m,d,y);if(u.sparse!==void 0){var R=WEBGL_TYPE_SIZES.SCALAR,S=WEBGL_COMPONENT_TYPES[u.sparse.indices.componentType],C=u.sparse.indices.byteOffset||0,B=u.sparse.values.byteOffset||0,L=new S(c[1],C,u.sparse.count*R),M=new p(c[2],B,u.sparse.count*d);f!==null&&(E=new THREE__namespace.BufferAttribute(E.array.slice(),E.itemSize,E.normalized));for(var w=0,H=L.length;w<H;w++){var O=L[w];if(E.setX(O,M[w*d]),d>=2&&E.setY(O,M[w*d+1]),d>=3&&E.setZ(O,M[w*d+2]),d>=4&&E.setW(O,M[w*d+3]),d>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return E})}}return this.cache.set(r,s),s},n.prototype.createPrimitiveKey=function(t){for(var e=0,r=values(this.extensions);e<r.length;e++){var o=r[e],s=o.createPrimitiveKey(t,this);if(s)return s}for(var u="",l=Object.keys(t.attributes).sort(),c=0,f=l.length;c<f;c++)u+=l[c]+":"+t.attributes[l[c]]+";";return t.indices+":"+u+":"+t.mode},n.prototype.loadGeometry=function(t){for(var e=this,r=null,o=0,s=values(this.extensions);o<s.length;o++){var u=s[o];if(r=u.loadGeometry(t,this),r)break}return r||(r=this.addGeometryPrimitiveAttributes(new THREE__namespace.BufferGeometry,t)),r=r.then(function(l){return e.disposeSet.add(l),l}),r},n.prototype.loadImage=function(t){for(var e=this,r=null,o=0,s=values(this.extensions);o<s.length;o++){var u=s[o];if(r=u.loadImage(t,this),r)break}if(!r){var l=this.json.images[t];if(l.bufferView!==void 0){var c=this.json.bufferViews[l.bufferView];r=this.loadBuffer(c.buffer).then(function(d){var p=c.byteOffset||0,v=c.byteLength||0,A=new Uint8Array(d,p,v),g=new Blob([A],{type:l.mimeType});return createImageBitmapLike(g)})}else if(l.uri){var f=this.resolveResouce(l.uri);r=this.options.fetcher.loadImage(f,{},void 0,void 0,void 0,createImageBitmapLikeImage()).then(function(d){return d.body})}else throw new Error("glTF: Invalid image defs.")}return r=r.then(function(d){return e.disposeSet.add(d),d}),r},n.prototype.loadMaterialAsMeshStandardMaterial=function(t){var e=this,r=[],o=new THREE__namespace.MeshStandardMaterial;o.color=new THREE__namespace.Color(1,1,1),o.opacity=1;var s={};for(var u in t.attributes){var l=ATTRIBUTES[u]||u.toLowerCase();s[l]=u}if("color"in s&&(o.vertexColors=!0),"normal"in s||(o.flatShading=!0),"tangent"in s?o.vertexTangents=!0:(o.normalScale&&(o.normalScale.y*=-1),o.clearcoatNormalScale&&(o.clearcoatNormalScale.y*=-1)),t.material!==void 0){var c=this.json.materials[t.material];c.name&&(o.name=c.name);var f=c.pbrMetallicRoughness||{};if(Array.isArray(f.baseColorFactor)){var d=f.baseColorFactor;o.color.fromArray(d),o.opacity=d[3]}f.baseColorTexture!==void 0&&r.push(this.createMaterialTexture(f.baseColorTexture).then(function(A){A.encoding=THREE__namespace.sRGBEncoding,o.map=A,e.disposeSet.add(A)})),o.metalness=f.metallicFactor!==void 0?f.metallicFactor:1,o.roughness=f.roughnessFactor!==void 0?f.roughnessFactor:1,f.metallicRoughnessTexture!==void 0&&r.push(this.createMaterialTexture(f.metallicRoughnessTexture).then(function(A){o.metalnessMap=A,o.roughnessMap=A,e.disposeSet.add(A)})),c.doubleSided===!0&&(o.side=THREE__namespace.DoubleSide);var p=c.alphaMode||ALPHA_MODES.OPAQUE;if(p===ALPHA_MODES.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,p===ALPHA_MODES.MASK&&(o.alphaTest=c.alphaCutoff!==void 0?c.alphaCutoff:.5)),c.normalTexture!==void 0&&(r.push(this.createMaterialTexture(c.normalTexture).then(function(A){o.normalMap=A,e.disposeSet.add(A)})),o.normalScale=new THREE__namespace.Vector2(1,1),c.normalTexture.scale!==void 0)){var v=c.normalTexture.scale;o.normalScale.set(v,v)}c.occlusionTexture!==void 0&&(r.push(this.createMaterialTexture(c.occlusionTexture).then(function(A){o.aoMap=A,e.disposeSet.add(A)})),c.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=c.occlusionTexture.strength)),c.emissiveFactor!==void 0&&(o.emissive=new THREE__namespace.Color().fromArray(c.emissiveFactor)),c.emissiveTexture!==void 0&&r.push(this.createMaterialTexture(c.emissiveTexture).then(function(A){o.emissiveMap=A,e.disposeSet.add(A)}))}return this.disposeSet.add(o),Promise.all(r).then(function(){return o})},n.prototype.loadMaterialAsMeshBasicMaterial=function(t){var e=this,r=[],o=new THREE__namespace.MeshBasicMaterial;o.color=new THREE__namespace.Color(1,1,1),o.opacity=1;var s={};for(var u in t.attributes){var l=ATTRIBUTES[u]||u.toLowerCase();s[l]=u}if("color"in s&&(o.vertexColors=!0),"normal"in s||(o.flatShading=!0),t.material!==void 0){var c=this.json.materials[t.material];c.name&&(o.name=c.name);var f=c.pbrMetallicRoughness||{};if(Array.isArray(f.baseColorFactor)){var d=f.baseColorFactor;o.color.fromArray(d),o.opacity=d[3]}f.baseColorTexture!==void 0&&r.push(this.createMaterialTexture(f.baseColorTexture).then(function(v){o.map=v,e.disposeSet.add(v)})),c.doubleSided===!0&&(o.side=THREE__namespace.DoubleSide);var p=c.alphaMode||ALPHA_MODES.OPAQUE;p===ALPHA_MODES.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,p===ALPHA_MODES.MASK&&(o.alphaTest=c.alphaCutoff!==void 0?c.alphaCutoff:.5)),c.occlusionTexture!==void 0&&(r.push(this.createMaterialTexture(c.occlusionTexture).then(function(v){o.aoMap=v,e.disposeSet.add(v)})),c.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=c.occlusionTexture.strength))}return this.disposeSet.add(o),Promise.all(r).then(function(){return o})},n.prototype.loadMaterialAsLineBasicMaterial=function(t){var e=[],r=new THREE__namespace.LineBasicMaterial;if(r.color=new THREE__namespace.Color(1,1,1),r.opacity=1,Object.keys(t.attributes).filter(function(c){return ATTRIBUTES[c]==="color"}).length>0&&(r.vertexColors=!0),Object.keys(t.attributes).filter(function(c){return ATTRIBUTES[c]==="tangent"}).length===0&&(r.normalScale&&(r.normalScale.y*=-1),r.clearcoatNormalScale&&(r.clearcoatNormalScale.y*=-1)),t.material!==void 0){var o=this.json.materials[t.material];o.name&&(r.name=o.name);var s=o.pbrMetallicRoughness||{};if(Array.isArray(s.baseColorFactor)){var u=s.baseColorFactor;r.color.fromArray(u),r.opacity=u[3]}o.doubleSided===!0&&(r.side=THREE__namespace.DoubleSide);var l=o.alphaMode||ALPHA_MODES.OPAQUE;l===ALPHA_MODES.BLEND?(r.transparent=!0,r.depthWrite=!1):(r.transparent=!1,l===ALPHA_MODES.MASK&&(r.alphaTest=o.alphaCutoff!==void 0?o.alphaCutoff:.5))}return this.disposeSet.add(r),Promise.all(e).then(function(){return r})},n.prototype.loadMaterialAsPointsMaterial=function(t){var e=this,r=[],o=new THREE__namespace.PointsMaterial;if(o.color=new THREE__namespace.Color(1,1,1),o.opacity=1,o.sizeAttenuation=!1,Object.keys(t.attributes).filter(function(f){return ATTRIBUTES[f]==="color"}).length>0&&(o.vertexColors=!0),Object.keys(t.attributes).filter(function(f){return ATTRIBUTES[f]==="tangent"}).length===0&&(o.normalScale&&(o.normalScale.y*=-1),o.clearcoatNormalScale&&(o.clearcoatNormalScale.y*=-1)),t.material!==void 0){var s=this.json.materials[t.material];s.name&&(o.name=s.name);var u=s.pbrMetallicRoughness||{};if(Array.isArray(u.baseColorFactor)){var l=u.baseColorFactor;o.color.fromArray(l),o.opacity=l[3]}u.baseColorTexture!==void 0&&r.push(this.createMaterialTexture(u.baseColorTexture).then(function(f){f.encoding=THREE__namespace.sRGBEncoding,o.map=f,e.disposeSet.add(f)})),s.doubleSided===!0&&(o.side=THREE__namespace.DoubleSide);var c=s.alphaMode||ALPHA_MODES.OPAQUE;c===ALPHA_MODES.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,c===ALPHA_MODES.MASK&&(o.alphaTest=s.alphaCutoff!==void 0?s.alphaCutoff:.5))}return this.disposeSet.add(o),Promise.all(r).then(function(){return o})},n.prototype.loadMaterial=function(t){var e=this,r,o=(r=t.mode)!==null&&r!==void 0?r:WEBGL_CONSTANTS.TRIANGLES,s="material:"+this.createPrimitiveKey(t),u=this.cache.get(s);if(u)return u;for(var l=null,c=0,f=values(this.extensions);c<f.length;c++){var d=f[c];if(l=d.loadMaterial(t,this),l)break}if(!l)if(o===WEBGL_CONSTANTS.TRIANGLES||o===WEBGL_CONSTANTS.TRIANGLE_STRIP||o===WEBGL_CONSTANTS.TRIANGLE_FAN)this.extensions.KHR_materials_unlit?l=this.loadMaterialAsMeshBasicMaterial(t):l=this.loadMaterialAsMeshStandardMaterial(t);else if(o===WEBGL_CONSTANTS.LINES||o===WEBGL_CONSTANTS.LINE_STRIP||o===WEBGL_CONSTANTS.LINE_LOOP)l=this.loadMaterialAsLineBasicMaterial(t);else if(o===WEBGL_CONSTANTS.POINTS)l=this.loadMaterialAsPointsMaterial(t);else throw new Error("glTF: Primitive mode unsupported: "+o);return l=l.then(function(p){return Promise.all(values(e.extensions).map(function(v){return v.extendMaterial(p,t,e)})).then(function(){return p})}),this.cache.set(s,l),l},n.prototype.loadTexture=function(t){var e=this,r="texture:"+t,o=this.cache.get(r);if(o)return o;for(var s=null,u=0,l=values(this.extensions);u<l.length;u++){var c=l[u];if(s=c.loadTexture(t,this),s)break}if(!s){var f=this.json.textures[t];s=this.loadImage(f.source).then(function(d){var p=new THREE__namespace.Texture(d);p.needsUpdate=!0,p.flipY=!1,f.name&&(p.name=f.name);var v=e.json.samplers||{},A=v[f.sampler]||{};return p.magFilter=WEBGL_FILTERS[A.magFilter]||THREE__namespace.LinearFilter,p.minFilter=WEBGL_FILTERS[A.minFilter]||THREE__namespace.LinearMipmapLinearFilter,p.wrapS=WEBGL_WRAPPINGS[A.wrapS]||THREE__namespace.RepeatWrapping,p.wrapT=WEBGL_WRAPPINGS[A.wrapT]||THREE__namespace.RepeatWrapping,p.onUpdate=function(){d.close()},p})}return s=s.then(function(d){return e.disposeSet.add(d),d}),this.cache.set(r,s),s},n.prototype.loadMesh=function(t){for(var e=this,r=null,o=0,s=values(this.extensions);o<s.length;o++){var u=s[o];if(r=u.loadMesh(t,this),r)break}if(!r){var l=this.json.meshes[t],c=l.primitives,f=Promise.all(c.map(function(p){return e.loadGeometry(p)})),d=Promise.all(c.map(function(p){return e.loadMaterial(p)}));r=Promise.all([f,d]).then(function(p){for(var v=p[0],A=p[1],g=[],h=0;h<c.length;h++){var y=c[h],m=v[h],E=A[h],b=y.mode||WEBGL_CONSTANTS.TRIANGLES,T=void 0;if(b===WEBGL_CONSTANTS.TRIANGLES||b===WEBGL_CONSTANTS.TRIANGLE_STRIP||b===WEBGL_CONSTANTS.TRIANGLE_FAN)if(b===WEBGL_CONSTANTS.TRIANGLE_STRIP?m=e.toGeometryTrianglesDrawMode(m,THREE__namespace.TriangleStripDrawMode):b===WEBGL_CONSTANTS.TRIANGLE_FAN&&(m=e.toGeometryTrianglesDrawMode(m,THREE__namespace.TriangleFanDrawMode)),e.disposeSet.add(m),l.isSkinnedMesh){var _=new THREE__namespace.SkinnedMesh(m,E);m.attributes.skinWeight.normalized||_.normalizeSkinWeights(),T=_}else T=new THREE__namespace.Mesh(m,E);else if(b===WEBGL_CONSTANTS.POINTS)T=new THREE__namespace.Points(m,E);else if(b===WEBGL_CONSTANTS.LINES)T=new THREE__namespace.LineSegments(m,E);else if(b===WEBGL_CONSTANTS.LINE_STRIP)T=new THREE__namespace.Line(m,E);else if(b===WEBGL_CONSTANTS.LINE_LOOP)T=new THREE__namespace.LineLoop(m,E);else throw new Error("glTF: Primitive mode unsupported: "+b);if(Object.keys(m.morphAttributes).length>0){if(l.weights!==void 0)for(var R=0,S=l.weights.length;R<S;R++)T.morphTargetInfluences[R]=l.weights[R];if(l.extras&&Array.isArray(l.extras.targetNames)){var C=l.extras.targetNames;if(T.morphTargetInfluences.length===C.length){T.morphTargetDictionary={};for(var R=0,S=C.length;R<S;R++)T.morphTargetDictionary[C[R]]=R}else console.warn("glTF: Invalid extras.targetNames length. Ignoring names.")}}T.name=e.createUniqueName(l.name||"mesh_"+t),g.push(T)}if(g.length===1)return g[0];for(var B=new THREE__namespace.Group,L=0,M=g;L<M.length;L++){var T=M[L];B.add(T)}return B})}return r},n.prototype.loadNodeAttachments=function(t){for(var e=[],r=0,o=values(this.extensions);r<o.length;r++){var s=o[r],u=s.loadNodeAttachments(t,this);u&&e.push(u)}return e},n.prototype.loadNode=function(t){var e="node:"+t,r=this.cache.get(e);if(r)return r;var o=this.json,s=o.nodes[t],u=s.name?this.createUniqueName(s.name):"",l=[];s.mesh!==void 0&&l.push(this.loadMesh(s.mesh).then(function(v){if(s.weights!==void 0){var A=s.weights;v.traverse(function(g){if(g instanceof THREE__namespace.Mesh||g instanceof THREE__namespace.Line||g instanceof THREE__namespace.Points)for(var h=0,y=A.length;h<y;h++)g.morphTargetInfluences[h]=A[h]})}return v})),s.camera!==void 0&&l.push(this.loadCamera(s.camera));for(var c=this.loadNodeAttachments(t),f=0,d=c;f<d.length;f++){var p=d[f];l.push(p)}return Promise.all(l).then(function(v){var A;if(s.isBone===!0?A=new THREE__namespace.Bone:v.length>1?A=new THREE__namespace.Group:v.length===1?A=v[0]:A=new THREE__namespace.Object3D,A!==v[0])for(var g=0,h=v.length;g<h;g++)A.add(v[g]);if(s.name&&(A.name=u),s.matrix!==void 0){var y=new THREE__namespace.Matrix4;y.fromArray(s.matrix),A.applyMatrix4(y)}else s.translation!==void 0&&A.position.fromArray(s.translation),s.rotation!==void 0&&A.quaternion.fromArray(s.rotation),s.scale!==void 0&&A.scale.fromArray(s.scale);return A})},n.prototype.loadScene=function(t){var e=this.json,r=e.scenes[t],o=new THREE__namespace.Group;r.name&&(o.name=this.createUniqueName(r.name));for(var s=r.nodes||[],u=[],l=0,c=s.length;l<c;l++)u.push(this.buildNodeHierarchy(s[l],o));return Promise.all(u).then(function(){return o})},n.prototype.createMaterialTexture=function(t){var e=this;return this.loadTexture(t.index).then(function(r){for(var o=0,s=values(e.extensions);o<s.length;o++){var u=s[o],l=u.extendTexture(r,t,e);l&&(r=l)}return e.textureSet.add(r),e.disposeSet.add(r),r})},n.prototype.addGeometryPrimitiveAttributes=function(t,e){var r=this,o=e.attributes,s=[],u=function(_){var R=ATTRIBUTES[_]||_.toLowerCase();if(R in t.attributes)return"continue";s.push(l.loadAccessor(o[_]).then(function(S){S&&t.setAttribute(R,S)}))},l=this;for(var c in o)u(c);e.indices!==void 0&&!t.index&&s.push(this.loadAccessor(e.indices).then(function(_){_&&t.setIndex(_)}));var f=new THREE__namespace.Box3;if(o.POSITION!==void 0){var d=this.json.accessors[o.POSITION],p=d.min,v=d.max;if(p!==void 0&&v!==void 0){if(f.set(new THREE__namespace.Vector3(p[0],p[1],p[2]),new THREE__namespace.Vector3(v[0],v[1],v[2])),d.normalized){var A=getNormalizedComponentScale(WEBGL_COMPONENT_TYPES[d.componentType]);f.min.multiplyScalar(A),f.max.multiplyScalar(A)}}else console.warn("glTF: Missing min/max properties for accessor POSITION.")}var g=e.targets;if(g!==void 0){for(var h=new THREE__namespace.Vector3,y=new THREE__namespace.Vector3,m=0,E=g.length;m<E;m++){var b=g[m];if(b.POSITION!==void 0){var d=this.json.accessors[b.POSITION],p=d.min,v=d.max;if(p!==void 0&&v!==void 0){if(y.setX(Math.max(Math.abs(p[0]),Math.abs(v[0]))),y.setY(Math.max(Math.abs(p[1]),Math.abs(v[1]))),y.setZ(Math.max(Math.abs(p[2]),Math.abs(v[2]))),d.normalized){var A=getNormalizedComponentScale(WEBGL_COMPONENT_TYPES[d.componentType]);y.multiplyScalar(A)}h.max(y)}else console.warn("glTF: Missing min/max properties for accessor POSITION.")}}f.expandByVector(h)}t.boundingBox=f;var T=new THREE__namespace.Sphere;return f.getCenter(T.center),T.radius=f.min.distanceTo(f.max)/2,t.boundingSphere=T,Promise.all(s).then(function(){if(t.attributes.uv&&!t.attributes.uv2&&r.options.copyUV2&&t.setAttribute("uv2",t.attributes.uv),e.targets){for(var _=!1,R=!1,S=0,C=e.targets.length;S<C;S++){var B=e.targets[S];if(B.POSITION!==void 0&&(_=!0),B.NORMAL!==void 0&&(R=!0),_&&R)break}if(!_&&!R)return t;var L=[];t.morphTargetsRelative=!0;for(var M=function(w,H){var O=e.targets[w];_?L.push(r.loadAccessor(O.POSITION).then(function(I){I&&(t.morphAttributes.position=t.morphAttributes.position||[],t.morphAttributes.position[w]=I)})):t.attributes.position&&(t.morphAttributes.position=t.morphAttributes.position||[],t.morphAttributes.position[w]=t.attributes.position),R?L.push(r.loadAccessor(O.NORMAL).then(function(I){I&&(t.morphAttributes.normal=t.morphAttributes.normal||[],t.morphAttributes.normal[w]=I)})):t.attributes.normal&&(t.morphAttributes.normal=t.morphAttributes.normal||[],t.morphAttributes.normal[w]=t.attributes.normal)},S=0,C=e.targets.length;S<C;S++)M(S,C);return Promise.all(L).then(function(){return t})}else return t})},n.prototype.buildNodeHierarchy=function(t,e){var r=this,o=this.json.nodes[t];return this.loadNode(t).then(function(s){if(o.skin===void 0)return s;var u;return r.loadSkin(o.skin).then(function(l){u=l;for(var c=[],f=0,d=u.joints.length;f<d;f++)c.push(r.loadNode(u.joints[f]));return Promise.all(c)}).then(function(l){return s.traverse(function(c){if(c instanceof THREE__namespace.SkinnedMesh){for(var f=[],d=[],p=0,v=l.length;p<v;p++){var A=l[p];if(A instanceof THREE__namespace.Bone){f.push(A);var g=new THREE__namespace.Matrix4;u.inverseBindMatrices!==void 0&&g.fromArray(u.inverseBindMatrices.array,p*16),d.push(g)}else console.warn('glTF: Joint "%s" could not be found.',u.joints[p])}c.bind(new THREE__namespace.Skeleton(f,d),c.matrixWorld)}}),s})}).then(function(s){e.add(s);var u=[];if(o.children)for(var l=o.children,c=0,f=l.length;c<f;c++){var d=l[c];u.push(r.buildNodeHierarchy(d,s))}return Promise.all(u).then(function(){return s})})},n.prototype.createUniqueName=function(t){for(var e=THREE__namespace.PropertyBinding.sanitizeNodeName(t||""),r=e,o=1;this.nodeNamesUsed[r];++o)r=e+"_"+o;return this.nodeNamesUsed[r]=!0,r},n.prototype.resolveResouce=function(t){return/^[a-z]{0,8}\:/i.test(t)?t:pathJoin(this.options.resourcePath,appendSearch(t,this.options.search))},n.prototype.toGeometryTrianglesDrawMode=function(t,e){var r=t.getIndex();if(r===null){var o=[],s=t.getAttribute("position");if(s!==void 0){for(var u=0;u<s.count;u++)o.push(u);t.setIndex(o),r=t.getIndex()}}if(r===null)return console.error("glTF: Undefined position attribute. Processing not possible."),t;var l=r.count-2,c=[];if(e===THREE__namespace.TriangleFanDrawMode)for(var u=1;u<=l;u++)c.push(r.getX(0)),c.push(r.getX(u)),c.push(r.getX(u+1));else for(var u=0;u<l;u++)u%2===0?(c.push(r.getX(u)),c.push(r.getX(u+1)),c.push(r.getX(u+2))):(c.push(r.getX(u+2)),c.push(r.getX(u+1)),c.push(r.getX(u)));c.length/3!==l&&console.error("glTF: Unable to generate correct amount of triangles.");var f=t.clone();return f.setIndex(c),this.disposeSet.add(f),f},n}();function getNormalizedComponentScale(n){switch(n){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("glTF: Unsupported normalized accessor component type.")}}var BaseExtension=function(){function n(){}return n.prototype.markDefs=function(t){},n.prototype.prepare=function(t){},n.prototype.emitResult=function(t,e){},n.prototype.createPrimitiveKey=function(t,e){},n.prototype.extendTexture=function(t,e,r){return null},n.prototype.loadBuffer=function(t,e){return null},n.prototype.loadBufferView=function(t,e){return null},n.prototype.loadImage=function(t,e){return null},n.prototype.loadTexture=function(t,e){return null},n.prototype.loadGeometry=function(t,e){return null},n.prototype.loadMaterial=function(t,e){return null},n.prototype.extendMaterial=function(t,e,r){return Promise.resolve()},n.prototype.loadMesh=function(t,e){return null},n.prototype.loadNodeAttachments=function(t,e){return null},n.prototype.loadCamera=function(t,e){return null},n.prototype.loadAnimation=function(t,e){return null},n}(),KHR_binary_glTF=function(n){__extends(t,n);function t(){var e=n.call(this)||this;return e.header={magic:"",version:0,length:0},e.content="",e.body=null,e}return t.getMagic=function(e){return decodeText(new Uint8Array(e.slice(0,4)))},t.prototype.loadGlbBinary=function(e){var r=new DataView(e,0,t.HEADER_LENGTH);if(this.header={magic:t.getMagic(e),version:r.getUint32(4,!0),length:r.getUint32(8,!0)},this.header.magic!==t.HEADER_MAGIC)throw new Error("glTF:KHR_binary_glTF: Unsupported.");if(this.header.version<2)throw new Error("glTF:KHR_binary_glTF: Legacy binary file detected.");for(var o=new DataView(e,t.HEADER_LENGTH),s=0,u=null,l=null;s<o.byteLength;){var c=o.getUint32(s,!0);if(s+=4,c!==0){var f=o.getUint32(s,!0);if(s+=4,f===t.CHUNK_TYPES.JSON){var d=new Uint8Array(e,t.HEADER_LENGTH+s,c);u=decodeText(d)}else if(f===t.CHUNK_TYPES.BIN){var p=t.HEADER_LENGTH+s;l=e.slice(p,p+c)}s+=c}}if(u===null)throw new Error("glTF:KHR_binary_glTF: JSON content not found.");this.content=u,this.body=l},t.prototype.loadBuffer=function(e,r){var o=r.json.buffers[e];return o.uri===void 0&&e===0&&this.body?Promise.resolve(this.body):null},t.prototype.clear=function(){this.body=null,this.content=""},t.HEADER_MAGIC="glTF",t.HEADER_LENGTH=12,t.CHUNK_TYPES={JSON:1313821514,BIN:5130562},t}(BaseExtension),defaultDecoderPath="https://vr-public.realsee-cdn.cn/release/static/image/release/five/resource/draco/1.5.6/",defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"},Draco=function(){function n(){this.decoderPath=defaultDecoderPath,this.decoderConfig={},this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL=""}return n.prototype.setDecoderPath=function(t){this.decoderPath=t},n.prototype.setDecoderConfig=function(t){return this.decoderConfig=t,this},n.prototype.setWorkerLimit=function(t){return this.workerLimit=t,this},n.prototype.decodeDracoFile=function(t,e,r,o){var s={attributeIDs:r||defaultAttributeIDs,attributeTypes:o||defaultAttributeTypes,useUniqueIDs:!!r};this.decodeGeometry(t,s).then(e)},n.prototype.decodeGeometry=function(t,e){var r=this;e===void 0&&(e={attributeIDs:defaultAttributeIDs,attributeTypes:defaultAttributeTypes,useUniqueIDs:!1});for(var o in e.attributeTypes){var s=e.attributeTypes[o];s.BYTES_PER_ELEMENT!==void 0&&(e.attributeTypes[o]=s.name)}var u,l=this.workerNextTaskID++,c=t.byteLength,f=this._getWorker(l,c).then(function(d){return u=d,new Promise(function(p,v){u._callbacks[l]={resolve:p,reject:v},u.postMessage({type:"decode",id:l,taskConfig:e,buffer:t},[t])})}).then(function(d){return r._createGeometry(d.geometry)});return f.catch(function(){return!0}).then(function(){u&&l&&r._releaseTask(u,l)}),f},n.prototype._createGeometry=function(t){var e=new THREE__namespace.BufferGeometry;t.index&&e.setIndex(new THREE__namespace.BufferAttribute(t.index.array,1));for(var r=0;r<t.attributes.length;r++){var o=t.attributes[r],s=o.name,u=o.array,l=o.itemSize,c=!(u instanceof Float32Array||u instanceof Float64Array);e.setAttribute(s,new THREE__namespace.BufferAttribute(u,l,c))}return e},n.prototype._initDecoder=function(){var t=this;if(this.decoderPending)return this.decoderPending;var e=typeof WebAssembly!="object"||this.decoderConfig.type==="js";if(e){var r=ajax(this.decoderPath+"draco_decoder.js",{responseType:"text"}).then(function(s){return s.body});this.decoderPending=r.then(function(s){var u=["/* draco decoder */",s,"","/* worker */",DRACOWorker].join(`
|
|
418
418
|
`);t.workerSourceURL=URL.createObjectURL(new Blob([u]))})}else{var r=ajax(this.decoderPath+"draco_wasm_wrapper.js",{responseType:"text"}).then(function(u){return u.body}),o=ajax(this.decoderPath+"draco_decoder.wasm",{responseType:"arraybuffer"}).then(function(u){return u.body});this.decoderPending=Promise.all([r,o]).then(function(u){var l=u[0],c=u[1];t.decoderConfig.wasmBinary=c;var f=["/* draco decoder */",l,"","/* worker */",DRACOWorker].join(`
|
|
419
419
|
`);t.workerSourceURL=URL.createObjectURL(new Blob([f]))})}return this.decoderPending},n.prototype._getWorker=function(t,e){var r=this;return this._initDecoder().then(function(){if(r.workerPool.length<r.workerLimit){var o=new Worker(r.workerSourceURL);o._callbacks={},o._taskCosts={},o._taskLoad=0,o.postMessage({type:"init",decoderConfig:r.decoderConfig}),o.onmessage=function(u){var l=u.data;switch(l.type){case"decode":o._callbacks[l.id].resolve(l);break;case"error":o._callbacks[l.id].reject(l);break;default:console.error('DRACO: Unexpected message, "'+l.type+'"')}},r.workerPool.push(o)}else r.workerPool.sort(function(u,l){return u._taskLoad>l._taskLoad?-1:1});var s=r.workerPool[r.workerPool.length-1];return s._taskCosts[t]=e,s._taskLoad+=e,s})},n.prototype._releaseTask=function(t,e){t._taskLoad-=t._taskCosts[e],delete t._callbacks[e],delete t._taskCosts[e]},n.prototype.dispose=function(){for(var t=0;t<this.workerPool.length;++t)this.workerPool[t].terminate();return this.workerPool.length=0,this},n}(),draco=new Draco,DRACOWorker=`
|
|
420
420
|
let decoderConfig;
|
|
@@ -880,7 +880,7 @@ void main() {
|
|
|
880
880
|
return ( value & ( value - 1 ) ) === 0 && value !== 0;
|
|
881
881
|
|
|
882
882
|
}
|
|
883
|
-
`,EXTENSION_NAME$5="KHR_texture_basisu",KHR_texture_basisu=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.loadTexture=function(e,r){var o=r.json.textures[e];if(!o.extensions||!o.extensions[EXTENSION_NAME$5])return null;var s=o.extensions[EXTENSION_NAME$5],u=r.json.images[s.source],l=null;if(u.bufferView!==void 0)l=r.loadBufferView(u.bufferView).then(function(d){return ktx2.parse(d)});else if(u.uri)l=r.options.fetcher.ajax(r.resolveResouce(u.uri),{responseType:"arraybuffer"}).then(function(d){return ktx2.parse(d.body)});else throw new Error("glTF: Invalid image defs.");var c=r.json.samplers||{},f=c[o.sampler]||{};return l=l.then(function(d){return d.magFilter=THREE__namespace.LinearFilter,d.minFilter=THREE__namespace.LinearFilter,d.wrapS=WEBGL_WRAPPINGS[f.wrapS]||THREE__namespace.RepeatWrapping,d.wrapT=WEBGL_WRAPPINGS[f.wrapT]||THREE__namespace.RepeatWrapping,d}),l},t}(BaseExtension),EXTENSION_NAME$4="KHR_texture_transform",KHR_texture_transform=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.extendTexture=function(e,r,o){var s=r.extensions!==void 0?r.extensions[EXTENSION_NAME$4]:void 0;return s?(s.texCoord!==void 0&&console.warn('glTF: Custom UV sets in "'+EXTENSION_NAME$4+'" extension not yet supported.'),s.offset===void 0&&s.rotation===void 0&&s.scale===void 0||(e=e.clone(),e.needsUpdate=!0,s.offset!==void 0&&e.offset.fromArray(s.offset),s.rotation!==void 0&&(e.rotation=s.rotation),s.scale!==void 0&&e.repeat.fromArray(s.scale)),e):null},t}(BaseExtension),KHR_mesh_quantization=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t}(BaseExtension),KHR_materials_unlit=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t}(BaseExtension),meshoptDecoder=function(){var n="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:78Yqdbk:qzezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhlaicefhodnadTmbalc;WFbGglcjdalcjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxdndndndnalc9WGgmTmbcbhPcehsawcjdfhzaohHinaraH9Rax6midnaraHaxfgo9RcK6mbczhlinalgic9Wfglawcj;cbffhOdndndndndnaHalco4fRbbalci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOaoRblaoRbbgAco4glalciSgCE86bbawcj;cbfaifglcGfaoclfaCfgORbbaAcl4ciGgCaCciSgCE86bbalcVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbalc7faOaCfgORbbaAciGgAaAciSgAE86bbalctfaOaAfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkaOaoRbwaoRbbgAcl4glalcsSgCE86bbawcj;cbfaifglcGfaocwfaCfgORbbaAcsGgAaAcsSgAE86bbalcVfaOaAfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekaOao8Pbb83bbaOcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaiczfhlarao9RcL0mekkaiam6miaoTmidnakTmbawaPfRbbhOawcj;cbfhlazhiakhHinaialRbbgAce4cbaAceG9R7aOfgO86bbaiadfhialcefhlaHcufgHmbkkazcefhzaPcefgPad6hsaohHaPad9hmexvkkcbhoasceGmdxikaoaxad2fhPdnakTmbcbhmcehsawcjdfhCinarao9Rax6miaoTmdaoaxfhoawamfRbbhOawcj;cbfhlaChiakhHinaialRbbgAce4cbaAceG9R7aOfgO86bbaiadfhialcefhlaHcufgHmbkaCcefhCamcefgmad6hsamad9hmbkaPhoxikcbhlcehsinarao9Rax6mdaoTmeaoaxfhoalcefglad6hsadal9hmbkaPhoxdkcbhoasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekcbc99arao9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;xzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj;8ifcjjj98G::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb",t="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;a9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;d8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgAclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;tzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbadczfhdaeclfgeav6mbkkdnaval9pmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb",e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),r=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var o=WebAssembly.validate(e)?t:n,s,u=WebAssembly.instantiate(l(o),{}).then(function(m){s=m.instance,s.exports.__wasm_call_ctors()});function l(m){for(var E=new Uint8Array(m.length),b=0;b<m.length;++b){var T=m.charCodeAt(b);E[b]=T>96?T-97:T>64?T-39:T+4}for(var _=0,b=0;b<m.length;++b)E[_++]=E[b]<60?r[E[b]]:(E[b]-60)*64+E[++b];return E.buffer.slice(0,_)}function c(m,E,b,T,_,R){var S=s.exports.sbrk,C=b+3&-4,B=S(C*T),L=S(_.length),M=new Uint8Array(s.exports.memory.buffer);M.set(_,L);var w=m(B,b,T,L,_.length);if(w==0&&R&&R(B,C,T),E.set(M.subarray(B,B+b*T)),S(B-S(0)),w!=0)throw new Error("Malformed buffer data: "+w)}var f={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},d={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},p=[],v=0;function A(m){var E={object:new Worker(m),pending:0,requests:{}};return E.object.onmessage=function(b){var T=b.data;E.pending-=T.count,E.requests[T.id][T.action](T.value),delete E.requests[T.id]},E}function g(m){for(var E="var instance; var ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(l(o))+"]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;"+c.toString()+y.toString(),b=new Blob([E],{type:"text/javascript"}),T=URL.createObjectURL(b),_=0;_<m;++_)p[_]=A(T);URL.revokeObjectURL(T)}function h(m,E,b,T,_){for(var R=p[0],S=1;S<p.length;++S)p[S].pending<R.pending&&(R=p[S]);return new Promise(function(C,B){var L=new Uint8Array(b),M=v++;R.pending+=m,R.requests[M]={resolve:C,reject:B},R.object.postMessage({id:M,count:m,size:E,source:L,mode:T,filter:_},[L.buffer])})}function y(m){u.then(function(){var E=m.data;try{var b=new Uint8Array(E.count*E.size);c(s.exports[E.mode],b,E.count,E.size,E.source,s.exports[E.filter]),self.postMessage({id:E.id,count:E.count,action:"resolve",value:b},[b.buffer])}catch(T){self.postMessage({id:E.id,count:E.count,action:"reject",value:T})}})}return{ready:u,supported:!0,useWorkers:function(m){g(m)},decodeVertexBuffer:function(m,E,b,T,_){c(s.exports.meshopt_decodeVertexBuffer,m,E,b,T,s.exports[f[_]])},decodeIndexBuffer:function(m,E,b,T){c(s.exports.meshopt_decodeIndexBuffer,m,E,b,T)},decodeIndexSequence:function(m,E,b,T){c(s.exports.meshopt_decodeIndexSequence,m,E,b,T)},decodeGltfBuffer:function(m,E,b,T,_,R){c(s.exports[d[_]],m,E,b,T,s.exports[f[R]])},decodeGltfBufferAsync:function(m,E,b,T,_){return p.length>0?h(m,E,b,d[T],f[_]):u.then(function(){var R=new Uint8Array(m*E);return c(s.exports[d[T]],R,m,E,b,s.exports[f[_]]),R})}}}(),EXTENSION_NAME$3="EXT_meshopt_compression",EXT_meshopt_compression=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.loadBufferView=function(e,r){var o=r.json,s=o.bufferViews[e];if(s.extensions&&s.extensions[EXTENSION_NAME$3]){var u=s.extensions[EXTENSION_NAME$3],l=r.loadBuffer(u.buffer);if(!meshoptDecoder.supported){if(o.extensionsRequired&&o.extensionsRequired.indexOf(EXTENSION_NAME$3)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return Promise.all([l,meshoptDecoder.ready]).then(function(c){var f=c[0],d=u.byteOffset||0,p=u.byteLength||0,v=u.count,A=u.byteStride,g=new ArrayBuffer(v*A),h=new Uint8Array(f,d,p);return meshoptDecoder.decodeGltfBuffer(new Uint8Array(g),v,A,h,u.mode,u.filter),g})}else return null},t}(BaseExtension),EXTENSION_NAME$2="EXT_texture_webp",EXT_texture_webp=function(n){__extends(t,n);function t(){var e=n!==null&&n.apply(this,arguments)||this;return e.supportsWep=!1,e}return t.prototype.prepare=function(e){var r=this;return imageSupport().then(function(o){r.supportsWep=o.webp})},t.prototype.loadTexture=function(e,r){var o=r.json,s=o.textures[e];if(!s.extensions||!s.extensions[EXTENSION_NAME$2]||!this.supportsWep)return null;var u=s.extensions[EXTENSION_NAME$2];return r.loadImage(u.source).then(function(l){var c=new THREE__namespace.Texture(l);c.needsUpdate=!0,c.flipY=!1,s.name&&(c.name=s.name);var f=r.json.samplers||{},d=f[s.sampler]||{};return c.magFilter=WEBGL_FILTERS[d.magFilter]||THREE__namespace.LinearFilter,c.minFilter=WEBGL_FILTERS[d.minFilter]||THREE__namespace.LinearMipmapLinearFilter,c.wrapS=WEBGL_WRAPPINGS[d.wrapS]||THREE__namespace.RepeatWrapping,c.wrapT=WEBGL_WRAPPINGS[d.wrapT]||THREE__namespace.RepeatWrapping,c.onUpdate=function(){l.close()},c})},t}(BaseExtension),EXTENSION_NAME$1="CESIUM_RTC",CESIUM_RTC=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.emitResult=function(e,r){if(r.json.extensions[EXTENSION_NAME$1]&&r.json.extensions[EXTENSION_NAME$1].center){var o=r.json.extensions[EXTENSION_NAME$1].center;e.CESIUM_RTC={center:new THREE__namespace.Vector3().fromArray(o)}}},t}(BaseExtension),PBM_mesh=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.loadMesh=function(e,r){var o=this,s=r.json.meshes[e],u=s.primitives,l=Promise.all(u.map(function(d){return r.loadGeometry(d)})),c=Promise.all(u.map(function(d){return o.loadPBMMaterial(d,r)})),f=Promise.all([l,c]).then(function(d){for(var p=d[0],v=d[1],A=[],g=0;g<u.length;g++){var h=u[g],y=p[g],m=v[g];y.attributes.normal===void 0&&(m.flatShading=!0),y.attributes.tangent===void 0&&m.normalScale&&(m.normalScale.y*=-1);var E=h.mode||WEBGL_CONSTANTS.TRIANGLES,b=void 0;if(E===WEBGL_CONSTANTS.TRIANGLES||E===WEBGL_CONSTANTS.TRIANGLE_STRIP||E===WEBGL_CONSTANTS.TRIANGLE_FAN)if(E===WEBGL_CONSTANTS.TRIANGLE_STRIP?y=r.toGeometryTrianglesDrawMode(y,THREE__namespace.TriangleStripDrawMode):E===WEBGL_CONSTANTS.TRIANGLE_FAN&&(y=r.toGeometryTrianglesDrawMode(y,THREE__namespace.TriangleFanDrawMode)),y.clearGroups(),y.addGroup(0,y.index?y.index.count:y.attributes.position.count,0),r.disposeSet.add(y),s.isSkinnedMesh){var T=new PBMSkinnedMesh(y,[m]);y.attributes.skinWeight.normalized||T.normalizeSkinWeights(),b=T}else b=new PBMMesh(y,[m]);else if(E===WEBGL_CONSTANTS.POINTS)b=new PBMPointCloud(y,m);else throw new Error("glTF: Primitive mode unsupported: "+E);if(Object.keys(y.morphAttributes).length>0){if(s.weights!==void 0)for(var _=0,R=s.weights.length;_<R;_++)b.morphTargetInfluences[_]=s.weights[_];if(s.extras&&Array.isArray(s.extras.targetNames)){var S=s.extras.targetNames;if(b.morphTargetInfluences.length===S.length){b.morphTargetDictionary={};for(var _=0,R=S.length;_<R;_++)b.morphTargetDictionary[S[_]]=_}else console.warn("glTF: Invalid extras.targetNames length. Ignoring names.")}}b.name=r.createUniqueName(s.name||"mesh_"+e),A.push(b)}if(A.length===1)return A[0];for(var C=new THREE__namespace.Group,B=0,L=A;B<L.length;B++){var b=L[B];C.add(b)}return C});return f},t.prototype.loadPBMMaterial=function(e,r){var o,s=(o=e.mode)!==null&&o!==void 0?o:WEBGL_CONSTANTS.TRIANGLES,u=null;if(s===WEBGL_CONSTANTS.TRIANGLES||s===WEBGL_CONSTANTS.TRIANGLE_STRIP||s===WEBGL_CONSTANTS.TRIANGLE_FAN)u=this.loadPBMMeshMaterial(e,r);else if(s===WEBGL_CONSTANTS.POINTS)u=this.loadPBMPointCloudMaterial(e,r);else throw new Error("glTF: Primitive mode unsupported: "+s);return u=u.then(function(l){return Promise.all(values(r.extensions).map(function(c){return c.extendMaterial(l,e,r)})).then(function(){return l})}),u},t.prototype.extendTexture=function(e,r,o){return e.minFilter=THREE__namespace.LinearFilter,e.magFilter=THREE__namespace.LinearFilter,e.generateMipmaps=!1,e},t.prototype.loadPBMPointCloudMaterial=function(e,r){var o=new PBMPointCloudMaterial;return Object.keys(e.attributes).filter(function(s){return ATTRIBUTES[s]==="normal"}).length>0&&(o.defines.USE_POINT_NORMAL=!0),r.disposeSet.add(o),Promise.resolve(o)},t.prototype.loadPBMMeshMaterial=function(e,r){var o=[],s=r.extensions.KHR_materials_unlit?"basic":"standard",u=new PBMMeshMaterial(s);if(u.color=new THREE__namespace.Color(1,1,1),Object.keys(e.attributes).filter(function(v){return ATTRIBUTES[v]==="color"}).length>0&&(u.vertexColors=!0),Object.keys(e.attributes).filter(function(v){return ATTRIBUTES[v]==="tangent"}).length===0?(u.normalScale&&(u.normalScale.y*=-1),u.clearcoatNormalScale&&(u.clearcoatNormalScale.y*=-1)):u.vertexTangents=!0,e.material!==void 0){var l=r.json.materials[e.material];l.name&&(u.name=l.name);var c=l.pbrMetallicRoughness||{};if(Array.isArray(c.baseColorFactor)){var f=c.baseColorFactor;u.color=new THREE__namespace.Color().fromArray(f),u.colorAlpha=f[3]}c.baseColorTexture!==void 0&&o.push(r.createMaterialTexture(c.baseColorTexture).then(function(v){r.disposeSet.add(v),v.encoding=THREE__namespace.sRGBEncoding,u.map=v})),typeof c.roughnessFactor=="number"&&(u.roughness=c.roughnessFactor),typeof c.metallicFactor=="number"&&(u.metalness=c.metallicFactor),c.metallicRoughnessTexture!==void 0&&o.push(r.createMaterialTexture(c.metallicRoughnessTexture).then(function(v){r.disposeSet.add(v),v.encoding=THREE__namespace.sRGBEncoding,u.roughnessMap=v,u.metalnessMap=v})),l.doubleSided===!0&&(u.side=THREE__namespace.DoubleSide);var d=l.alphaMode||ALPHA_MODES.OPAQUE;if(u.alphaMode="OPAQUE",d===ALPHA_MODES.BLEND?(u.alphaMode="BLEND",u.transparent=!0,u.depthWrite=!1):(u.transparent=!1,d===ALPHA_MODES.MASK&&(u.alphaMode="MASK",u.alphaTest=l.alphaCutoff!==void 0?l.alphaCutoff:.5)),l.normalTexture!==void 0&&(o.push(r.createMaterialTexture(l.normalTexture).then(function(v){r.disposeSet.add(v),u.normalMap=v})),u.normalScale=new THREE__namespace.Vector2(1,1),l.normalTexture.scale!==void 0)){var p=l.normalTexture.scale;u.normalScale.set(p,p)}}return r.disposeSet.add(u),Promise.all(o).then(function(){return u.refreshUniforms(),u})},t}(BaseExtension),EXTENSION_NAME="REALSEE_materials_lightmap",REALSEE_materials_lightmap=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.extendMaterial=function(e,r,o){var s=[];if(o.json.materials&&r.material!==void 0){var u=o.json.materials[r.material],l=u.extensions[EXTENSION_NAME];l&&(l.lightMapTexture!==void 0&&s.push(o.createMaterialTexture(l.lightMapTexture).then(function(c){e.lightMap=c})),l.lightMapIntensity!==void 0&&(e.lightMapIntensity=l.lightMapIntensity))}return Promise.all(s).then(function(){})},t}(BaseExtension),EXTENSIONS={KHR_binary_glTF,KHR_draco_mesh_compression,KHR_texture_basisu,KHR_texture_transform,KHR_mesh_quantization,KHR_materials_unlit,EXT_meshopt_compression,EXT_texture_webp,CESIUM_RTC,REALSEE_materials_lightmap,PBM_mesh};function parseGltf(n,t){var e,r,o,s={},u,l;if(typeof n=="string")l=n;else{var c=EXTENSIONS.KHR_binary_glTF.getMagic(n);if(c===EXTENSIONS.KHR_binary_glTF.HEADER_MAGIC){u=new EXTENSIONS.KHR_binary_glTF;try{u.loadGlbBinary(n)}catch(g){return Promise.reject(g)}s.KHR_binary_glTF=u,l=u.content}else l=decodeText(new Uint8Array(n))}var f=JSON.parse(l);if(t.jsonModify&&(f=t.jsonModify(f)),f.asset===void 0||Number(f.asset.version[0])<2)return Promise.reject(new Error("glTF: Unsupported asset. glTF versions >=2.0 are supported."));if(f.extensionsUsed)for(var d=f.extensionsRequired||[],p=0;p<f.extensionsUsed.length;p++){var v=f.extensionsUsed[p];s[v]||(EXTENSIONS[v]?s[v]=new EXTENSIONS[v]:d.indexOf(v)>=0&&console.warn('glTF: Unknown extension "'+v+'".'))}var A=new Parser(f,s,{copyUV2:(e=t.copyUV2)!==null&&e!==void 0?e:!0,resourcePath:(r=t.resourcePath)!==null&&r!==void 0?r:"",search:(o=t.search)!==null&&o!==void 0?o:"",fetcher:t.fetcher});return A.parse().then(function(g){return u&&u.clear(),g})}function fixNumber(n){return isNaN(n)||!isFinite(n)?0:n}function getGeometryMemoryUsed(n){var t=0;if(n instanceof THREE__namespace.BufferGeometry){for(var e in n.attributes){var r=n.getAttribute(e),o=4;"BYTES_PER_ELEMENT"in r.array&&typeof r.array.BYTES_PER_ELEMENT=="number"&&(o=r.array.BYTES_PER_ELEMENT),t+=fixNumber(r.count*r.itemSize*o)}var s=n.getIndex();if(s){var o=4;"BYTES_PER_ELEMENT"in s.array&&typeof s.array.BYTES_PER_ELEMENT=="number"&&(o=s.array.BYTES_PER_ELEMENT),t+=fixNumber(s.count*s.itemSize*o)}}else n instanceof THREE__namespace.Geometry&&(t+=fixNumber(n.faces.length*3*3*4),t+=fixNumber(n.faceVertexUvs.length*3*2*4));return t}function makeComputeBlockRectSizeFunction(n,t,e){return function(r,o,s){var u=(r+n-1)/n|0,l=(o+t-1)/t|0;return u*l*e*s}}function makeComputePaddedRectSizeFunction(n,t,e){return function(r,o,s){return(Math.max(r,n)*Math.max(o,t)/e|0)*s}}var compressedTextureFunctions=new Map([[THREE__namespace.RGB_S3TC_DXT1_Format,makeComputeBlockRectSizeFunction(4,4,8)],[THREE__namespace.RGBA_S3TC_DXT1_Format,makeComputeBlockRectSizeFunction(4,4,8)],[THREE__namespace.RGBA_S3TC_DXT3_Format,makeComputeBlockRectSizeFunction(4,4,16)],[THREE__namespace.RGBA_S3TC_DXT5_Format,makeComputeBlockRectSizeFunction(4,4,16)],[THREE__namespace.RGB_ETC1_Format,makeComputeBlockRectSizeFunction(4,4,8)],[THREE__namespace.RGB_PVRTC_4BPPV1_Format,makeComputePaddedRectSizeFunction(8,8,2)],[THREE__namespace.RGBA_PVRTC_4BPPV1_Format,makeComputePaddedRectSizeFunction(8,8,2)],[THREE__namespace.RGB_PVRTC_2BPPV1_Format,makeComputePaddedRectSizeFunction(16,8,4)],[THREE__namespace.RGBA_PVRTC_2BPPV1_Format,makeComputePaddedRectSizeFunction(16,8,4)],[THREE__namespace.RGB_ETC2_Format,makeComputeBlockRectSizeFunction(4,4,8)],[THREE__namespace.RGBA_ETC2_EAC_Format,makeComputeBlockRectSizeFunction(4,4,16)],[THREE__namespace.RGBA_ASTC_4x4_Format,makeComputeBlockRectSizeFunction(4,4,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_4x4_Format,makeComputeBlockRectSizeFunction(4,4,16)],[THREE__namespace.RGBA_ASTC_5x4_Format,makeComputeBlockRectSizeFunction(5,4,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_5x4_Format,makeComputeBlockRectSizeFunction(5,4,16)],[THREE__namespace.RGBA_ASTC_5x5_Format,makeComputeBlockRectSizeFunction(5,5,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_5x5_Format,makeComputeBlockRectSizeFunction(5,5,16)],[THREE__namespace.RGBA_ASTC_6x5_Format,makeComputeBlockRectSizeFunction(6,5,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_6x5_Format,makeComputeBlockRectSizeFunction(6,5,16)],[THREE__namespace.RGBA_ASTC_6x6_Format,makeComputeBlockRectSizeFunction(6,6,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_6x6_Format,makeComputeBlockRectSizeFunction(6,6,16)],[THREE__namespace.RGBA_ASTC_8x5_Format,makeComputeBlockRectSizeFunction(8,5,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_8x5_Format,makeComputeBlockRectSizeFunction(8,5,16)],[THREE__namespace.RGBA_ASTC_8x6_Format,makeComputeBlockRectSizeFunction(8,6,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_8x6_Format,makeComputeBlockRectSizeFunction(8,6,16)],[THREE__namespace.RGBA_ASTC_8x8_Format,makeComputeBlockRectSizeFunction(8,8,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_8x8_Format,makeComputeBlockRectSizeFunction(8,8,16)],[THREE__namespace.RGBA_ASTC_10x5_Format,makeComputeBlockRectSizeFunction(10,5,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_10x5_Format,makeComputeBlockRectSizeFunction(10,5,16)],[THREE__namespace.RGBA_ASTC_10x6_Format,makeComputeBlockRectSizeFunction(10,6,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_10x6_Format,makeComputeBlockRectSizeFunction(10,6,16)],[THREE__namespace.RGBA_ASTC_10x8_Format,makeComputeBlockRectSizeFunction(10,8,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_10x8_Format,makeComputeBlockRectSizeFunction(10,8,16)],[THREE__namespace.RGBA_ASTC_10x10_Format,makeComputeBlockRectSizeFunction(10,10,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_10x10_Format,makeComputeBlockRectSizeFunction(10,10,16)],[THREE__namespace.RGBA_ASTC_12x10_Format,makeComputeBlockRectSizeFunction(12,10,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_12x10_Format,makeComputeBlockRectSizeFunction(12,10,16)],[THREE__namespace.RGBA_ASTC_12x12_Format,makeComputeBlockRectSizeFunction(12,12,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_12x12_Format,makeComputeBlockRectSizeFunction(12,12,16)],[THREE__namespace.RGBA_BPTC_Format,makeComputeBlockRectSizeFunction(4,4,16)]]);function getTextureMemoryUsed(n){var t=0,e=1;(n.generateMipmaps===!0||n.mipmaps&&n.mipmaps.length>1)&&(e=1.33);for(var r=n instanceof THREE__namespace.CompressedTexture,o=r?compressedTextureFunctions.get(n.format):void 0,s=[].concat(n.image),u=0,l=s;u<l.length;u++){var c=l[u];if(c instanceof THREE__namespace.Texture)t+=getTextureMemoryUsed(c);else{var f=c.width,d=f===void 0?1:f,p=c.height,v=p===void 0?1:p,A=c.depth,g=A===void 0?1:A;o?t+=fixNumber(o(d,v,g)*e):t+=fixNumber(d*v*g*4*e)}}return t}var textureSet=new Set,textureNames=["map","alphaMap","bumpMap","normalMap","displacementMap","emissiveMap","specularMap","envMap","flipEnvMap","lightMap","aoMap","gradientMap","metalnessMap","roughnessMap","sheenColorMap","sheenRoughnessMap","clearcoatMap","clearcoatRoughnessMap","clearcoatNormalMap","iridescenceMap","iridescenceThicknessMap","transmissionMap","thicknessMap","anisotropyMap","specularColorMap","specularIntensityMap"];function getMaterialMemoryUsed(n){var t=0;if(textureSet.clear(),n instanceof THREE__namespace.ShaderMaterial)for(var e in n.uniforms){var r=n.uniforms[e],o=r&&r.value&&r.value instanceof THREE__namespace.Texture?r.value:void 0;o instanceof THREE__namespace.Texture&&(textureSet.has(o)||(t=getTextureMemoryUsed(o),textureSet.add(o)))}else for(var s=0,u=textureNames;s<u.length;s++){var l=u[s],o=n[l];o instanceof THREE__namespace.Texture&&(textureSet.has(o)||(t=getTextureMemoryUsed(o),textureSet.add(o)))}return textureSet.clear(),t}var sceneSet=new Set;function getMemoryUsage(n){var t=0;return sceneSet.clear(),n.traverse(function(e){if(e instanceof THREE__namespace.Mesh||e instanceof THREE__namespace.Line||e instanceof THREE__namespace.Points){var r=e.geometry;(r instanceof THREE__namespace.BufferGeometry||r instanceof THREE__namespace.Geometry)&&(sceneSet.has(r)||(t+=getGeometryMemoryUsed(r),sceneSet.add(r)));for(var o=[].concat(e.material),s=0,u=o;s<u.length;s++){var l=u[s];l instanceof THREE__namespace.Material&&(sceneSet.has(l)||(t+=getMaterialMemoryUsed(l),sceneSet.add(l)))}}}),sceneSet.clear(),t}var ROTATE_X_MATRIX$6=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadB3dm(n,t){var e,r;t===void 0&&(t={});var o=(e=t.upAxis)!==null&&e!==void 0?e:"Y",s=(r=t.fetcher)!==null&&r!==void 0?r:new Fetcher({allowHosts:["*"]}),u={uri:n,gltfUpAxis:o};return Promise.resolve().then(function(){return s.ajax(n,{responseType:"arraybuffer"}).then(function(l){return l.body})}).then(function(l){return Promise.resolve(0).then(function(c){return parseHeader$1(u,l,c)}).then(function(c){return parseTable(u,l,c)}).then(function(c){return parseGlTFArrayBuffer(u,l,c)})}).then(function(){var l;return parseGltf(u.gltfArrayBuffer,{copyUV2:!1,resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(l=n.split("?")[1])!==null&&l!==void 0?l:"",jsonModify:function(c){var f;if(c.extensionsUsed=(f=c.extensionsUsed)!==null&&f!==void 0?f:[],typeof t.light=="boolean"){var d="KHR_materials_unlit";if(t.light){var p=c.extensionsUsed.indexOf(d);p>=0&&c.extensionsUsed.splice(p,1)}else{var p=c.extensionsUsed.indexOf(d);p===-1&&c.extensionsUsed.push(d)}}{var d="PBM_mesh",p=c.extensionsUsed.indexOf(d);p===-1&&c.extensionsUsed.push(d)}return c},fetcher:s}).then(function(c){var f=new THREE__namespace.Matrix4;o==="Y"&&f.premultiply(ROTATE_X_MATRIX$6);var d=new THREE__namespace.Matrix4().setPosition(u.rtcCenter[0],u.rtcCenter[1],u.rtcCenter[2]);if(f.premultiply(d),c.CESIUM_RTC){var p=new THREE__namespace.Matrix4().setPosition(c.CESIUM_RTC.center);f.premultiply(p)}var v=c.scene;return v.applyMatrix4(f),delete u.featureTableBinary,delete u.batchTableBinary,delete u.gltfArrayBuffer,{type:"b3dm",upAxis:"Z",uri:u.uri,byteLength:u.byteLength,memoryUsage:getMemoryUsage(v),scene:v,textures:c.textures,dispose:function(){return c.dispose()}}})})}const encodedJs="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoYSl7b25tZXNzYWdlPWZ1bmN0aW9uKHIpe1Byb21pc2UucmVzb2x2ZShyLmRhdGEpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIGEobil9KS50aGVuKGZ1bmN0aW9uKG4pe3ZhciBlPW4ub3V0cHV0LHQ9bi50cmFuc2ZlcjtyZXR1cm4gcG9zdE1lc3NhZ2UoZSx0KX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3JldHVybiBwb3N0TWVzc2FnZSh7JCRlcnJvcjpufSl9KX19dmFyIHUseTsoZnVuY3Rpb24oYSl7YVthLkJZVEU9NTEyMF09IkJZVEUiLGFbYS5VTlNJR05FRF9CWVRFPTUxMjFdPSJVTlNJR05FRF9CWVRFIixhW2EuU0hPUlQ9NTEyMl09IlNIT1JUIixhW2EuVU5TSUdORURfU0hPUlQ9NTEyM109IlVOU0lHTkVEX1NIT1JUIixhW2EuSU5UPTUxMjRdPSJJTlQiLGFbYS5VTlNJR05FRF9JTlQ9NTEyNV09IlVOU0lHTkVEX0lOVCIsYVthLkZMT0FUPTUxMjZdPSJGTE9BVCIsYVthLkRPVUJMRT01MTMwXT0iRE9VQkxFIn0pKHl8fCh5PXt9KSk7dmFyIGM9KHU9e30sdVt5LkRPVUJMRV09RmxvYXQ2NEFycmF5LHVbeS5GTE9BVF09RmxvYXQzMkFycmF5LHVbeS5VTlNJR05FRF9TSE9SVF09VWludDE2QXJyYXksdVt5LlVOU0lHTkVEX0lOVF09VWludDMyQXJyYXksdVt5LlVOU0lHTkVEX0JZVEVdPVVpbnQ4QXJyYXksdVt5LkJZVEVdPUludDhBcnJheSx1W3kuU0hPUlRdPUludDE2QXJyYXksdVt5LklOVF09SW50MzJBcnJheSx1KSxGPXtET1VCTEU6eS5ET1VCTEUsRkxPQVQ6eS5GTE9BVCxVTlNJR05FRF9TSE9SVDp5LlVOU0lHTkVEX1NIT1JULFVOU0lHTkVEX0lOVDp5LlVOU0lHTkVEX0lOVCxVTlNJR05FRF9CWVRFOnkuVU5TSUdORURfQllURSxCWVRFOnkuQllURSxTSE9SVDp5LlNIT1JULElOVDp5LklOVH07ZnVuY3Rpb24gTyhhKXt2YXIgcj1jW2FdO2lmKCFyKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIGNvbnZlcnQgR0wgdHlwZSIpO3JldHVybiByfWZ1bmN0aW9uIHAoYSl7dmFyIHI9TyhhKTtyZXR1cm4gci5CWVRFU19QRVJfRUxFTUVOVH1mdW5jdGlvbiBfKGEscixuLGUpe249PT12b2lkIDAmJihuPTApO3ZhciB0PU8oYSk7aWYobiVwKGEpIT09MCl7dmFyIGk9ZT9yLnNsaWNlKG4sbitlKnAoYSkpOnIuc2xpY2Uobik7cmV0dXJuIG5ldyB0KGkpfWVsc2UgcmV0dXJuIG5ldyB0KHIsbixlIT1udWxsP2U6KHIuYnl0ZUxlbmd0aC1uKS9wKGEpKX1mdW5jdGlvbiBsKGEpe3ZhciByPUZbYV07aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gY29udmVydCBHTCB0eXBlIik7cmV0dXJuIHJ9dmFyIFI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKHIsbil7dGhpcy5mZWF0dXJlc0xlbmd0aD0wLHRoaXMuY2FjaGVkVHlwZWRBcnJheXM9e30sdGhpcy5qc29uPXIsdGhpcy5idWZmZXI9bjt2YXIgZT10aGlzLmdldEdsb2JhbFByb3BlcnR5KCJQT0lOVFNfTEVOR1RIIix5LlVOU0lHTkVEX0lOVCwxKTtlJiZlLmxlbmd0aCYmKHRoaXMuZmVhdHVyZXNMZW5ndGg9ZVswXSl9cmV0dXJuIGEucHJvdG90eXBlLmdldEV4dGVuc2lvbj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5qc29uLmV4dGVuc2lvbnMmJnRoaXMuanNvbi5leHRlbnNpb25zW3JdfSxhLnByb3RvdHlwZS5oYXNQcm9wZXJ0eT1mdW5jdGlvbihyKXtyZXR1cm4hIXRoaXMuanNvbltyXX0sYS5wcm90b3R5cGUuZ2V0R2xvYmFsUHJvcGVydHk9ZnVuY3Rpb24ocixuLGUpe3ZhciB0PXRoaXMuanNvbltyXTtpZih0eXBlb2YgdD09Im51bWJlciIpe3ZhciBpPU8obik7cmV0dXJuIG5ldyBpKFt0XSl9ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgaT1PKG4pO3JldHVybiBuZXcgaSh0KX1lbHNlIGlmKHQmJk51bWJlci5pc0Zpbml0ZSh0LmJ5dGVPZmZzZXQpKXJldHVybiB0aGlzLmdldFR5cGVkQXJyYXlGcm9tQmluYXJ5KHIsbixlLDEsdC5ieXRlT2Zmc2V0KTtyZXR1cm4gbnVsbH0sYS5wcm90b3R5cGUuZ2V0UHJvcGVydHlBcnJheT1mdW5jdGlvbihyLG4sZSl7dmFyIHQ9dGhpcy5qc29uW3JdO3JldHVybiB0JiZOdW1iZXIuaXNGaW5pdGUodC5ieXRlT2Zmc2V0KT8oImNvbXBvbmVudFR5cGUiaW4gdCYmKG49bCh0LmNvbXBvbmVudFR5cGUpKSx0aGlzLmdldFR5cGVkQXJyYXlGcm9tQmluYXJ5KHIsbixlLHRoaXMuZmVhdHVyZXNMZW5ndGgsdC5ieXRlT2Zmc2V0KSk6dGhpcy5nZXRUeXBlZEFycmF5RnJvbUFycmF5KHIsbix0KX0sYS5wcm90b3R5cGUuZ2V0UHJvcGVydHk9ZnVuY3Rpb24ocixuLGUsdCxpKXt2YXIgbz10aGlzLmpzb25bcl07aWYoIW8pcmV0dXJuIG51bGw7dmFyIHY9dGhpcy5nZXRQcm9wZXJ0eUFycmF5KHIsbixlKTtpZihlPT09MSlyZXR1cm4gaVswXT12W3RdLGk7Zm9yKHZhciBBPTA7QTxlOysrQSlpW0FdPXZbZSp0K0FdO3JldHVybiBpfSxhLnByb3RvdHlwZS5nZXRUeXBlZEFycmF5RnJvbUJpbmFyeT1mdW5jdGlvbihyLG4sZSx0LGkpe3ZhciBvPXRoaXMuY2FjaGVkVHlwZWRBcnJheXMsdj1vW3JdO3JldHVybiB2fHwodj1fKG4sdGhpcy5idWZmZXIuYnVmZmVyLHRoaXMuYnVmZmVyLmJ5dGVPZmZzZXQraSx0KmUpLG9bcl09diksdn0sYS5wcm90b3R5cGUuZ2V0VHlwZWRBcnJheUZyb21BcnJheT1mdW5jdGlvbihyLG4sZSl7dmFyIHQ9dGhpcy5jYWNoZWRUeXBlZEFycmF5cyxpPXRbcl07cmV0dXJuIGl8fChpPV8obixlKSx0W3JdPWkpLGl9LGF9KCk7QihmdW5jdGlvbihhKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGEpLnRoZW4oZnVuY3Rpb24ocil7dmFyIG49bmV3IFIoci5mZWF0dXJlVGFibGVKc29uLHIuZmVhdHVyZVRhYmxlQmluYXJ5KSxlPWQobiksdD1nKG4pLGk9UChuKSxvPVtdO3JldHVybiBlJiZvLnB1c2goZS5hcnJheS5idWZmZXIpLHQmJm8ucHVzaCh0LmFycmF5LmJ1ZmZlciksaSYmby5wdXNoKGkuYXJyYXkuYnVmZmVyKSx7b3V0cHV0Ontwb3NpdGlvbjplLGNvbG9yOnQsbm9ybWFsOml9LHRyYW5zZmVyOm99fSl9KTt2YXIgVT02NTUzNTtmdW5jdGlvbiBkKGEpe2lmKGEuaGFzUHJvcGVydHkoIlBPU0lUSU9OIikpe3ZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUE9TSVRJT04iLHkuRkxPQVQsMyk7cmV0dXJue2FycmF5OnIsaXRlbVNpemU6Myxub3JtYWxpemVkOiExfX1lbHNlIGlmKGEuaGFzUHJvcGVydHkoIlBPU0lUSU9OX1FVQU5USVpFRCIpKXt2YXIgbj1hLmdldFByb3BlcnR5QXJyYXkoIlBPU0lUSU9OX1FVQU5USVpFRCIseS5VTlNJR05FRF9TSE9SVCwzKSxlPWEuZ2V0R2xvYmFsUHJvcGVydHkoIlFVQU5USVpFRF9WT0xVTUVfU0NBTEUiLHkuRkxPQVQsMyksdD1hLmdldEdsb2JhbFByb3BlcnR5KCJRVUFOVElaRURfVk9MVU1FX09GRlNFVCIseS5GTE9BVCwzKTtpZighZXx8IXQpdGhyb3cgbmV3IEVycm9yKCJRVUFOVElaRURfVk9MVU1FX1NDQUxFIG9yIFFVQU5USVpFRF9WT0xVTUVfT0ZGU0VUIG5ldmVyIGZvdW5kLiIpO2Zvcih2YXIgaT1uZXcgRmxvYXQzMkFycmF5KG4ubGVuZ3RoKSxvPW4ubGVuZ3RoLzMsdj1lWzBdL1UsQT1lWzFdL1UsTj1lWzJdL1UsRT10WzBdLFM9dFsxXSxzPXRbMl0sVD0wLEk9dm9pZCAwO1Q8bztUKyspST1UKjMsaVtJXT1uW0ldKnYrRSxpWysrSV09bltJXSpBK1MsaVsrK0ldPW5bSV0qTitzO3JldHVybnthcnJheTppLGl0ZW1TaXplOjMsbm9ybWFsaXplZDohMX19cmV0dXJuIG51bGx9ZnVuY3Rpb24gZyhhKXtpZihhLmhhc1Byb3BlcnR5KCJSR0IiKSl7Zm9yKHZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUkdCIix5LlVOU0lHTkVEX0JZVEUsMyksbj1yLmxlbmd0aC8zLGU9bmV3IFVpbnQ4QXJyYXkobio0KSx0PTAsaT12b2lkIDAsbz12b2lkIDA7dDxuO3QrKylvPXQqNCxpPXQqMyxlW29dPXJbaV0sZVsrK29dPXJbKytpXSxlWysrb109clsrK2ldO3JldHVybnthcnJheTplLGl0ZW1TaXplOjQsbm9ybWFsaXplZDohMH19ZWxzZSBpZihhLmhhc1Byb3BlcnR5KCJSR0JBIikpe3ZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUkdCQSIseS5VTlNJR05FRF9CWVRFLDQpO3JldHVybnthcnJheTpyLGl0ZW1TaXplOjQsbm9ybWFsaXplZDohMH19ZWxzZSBpZihhLmhhc1Byb3BlcnR5KCJSR0I1NjUiKSl7Zm9yKHZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUkdCNTY1Iix5LlVOU0lHTkVEX1NIT1JULDEpLG49ci5sZW5ndGgsZT1uZXcgVWludDhBcnJheShuKjQpLHQ9MCx2PXZvaWQgMCxBPXZvaWQgMDt0PG47dCsrKUE9clt0XSx2PXQqNCxlW3ZdPShBPj4xMSYzMSk8PDMsZVsrK3ZdPShBPj41JjYzKTw8MixlWysrdl09KEEmMzEpPDwzO3JldHVybnthcnJheTplLGl0ZW1TaXplOjQsbm9ybWFsaXplZDohMH19cmV0dXJuIG51bGx9dmFyIEc9MjU1LGg9MTI3LEQ9Mi9HO2Z1bmN0aW9uIFAoYSl7aWYoYS5oYXNQcm9wZXJ0eSgiTk9STUFMIikpe2Zvcih2YXIgcj1hLmdldFByb3BlcnR5QXJyYXkoIk5PUk1BTCIseS5GTE9BVCwzKSxuPXIubGVuZ3RoLzMsZT1uZXcgSW50OEFycmF5KG4qNCksdD0wLGk9dm9pZCAwLG89dm9pZCAwO3Q8bjt0Kyspbz10KjQsaT10KjMsZVtvXT1yW2ldKmgsZVsrK29dPXJbKytpXSpoLGVbKytvXT1yWysraV0qaDtyZXR1cm57YXJyYXk6ZSxpdGVtU2l6ZTo0LG5vcm1hbGl6ZWQ6ITB9fWVsc2UgaWYoYS5oYXNQcm9wZXJ0eSgiTk9STUFMX09DVDE2UCIpKXtmb3IodmFyIHI9YS5nZXRQcm9wZXJ0eUFycmF5KCJOT1JNQUxfT0NUMTZQIix5LlVOU0lHTkVEX0JZVEUsMiksbj1yLmxlbmd0aC8yLGU9bmV3IEludDhBcnJheShuKjQpLHQ9MCx2PXZvaWQgMCxBPXZvaWQgMCxOPXZvaWQgMCxFPXZvaWQgMCxTPXZvaWQgMCxzPXZvaWQgMCxUPXZvaWQgMDt0PG47dCsrKXY9dCoyLEE9clt2XSpELTEsTj1yWysrdl0qRC0xLFM9QTwwPy1BOkEscz1OPDA/LU46TixFPTEtKFMrcyksRTwwJiYoQT0oMS1zKSooQTwwPy0xOjEpLE49KDEtUykqKE48MD8tMToxKSksVD1NYXRoLnNxcnQoQSpBK04qTitFKkUpLHY9dCo0LGVbdl09QS9UKmgsZVsrK3ZdPU4vVCpoLGVbKyt2XT1FL1QqaDtyZXR1cm57YXJyYXk6ZSxpdGVtU2l6ZTo0LG5vcm1hbGl6ZWQ6ITB9fXJldHVybiBudWxsfX0pKCk7Cg==",decodeBase64=n=>Uint8Array.from(atob(n),t=>t.charCodeAt(0)),blob$1=typeof self!="undefined"&&self.Blob&&new Blob([decodeBase64(encodedJs)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper(n){let t;try{if(t=blob$1&&(self.URL||self.webkitURL).createObjectURL(blob$1),!t)throw"";const e=new Worker(t,{name:n==null?void 0:n.name});return e.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),e}catch(e){return new Worker("data:text/javascript;base64,"+encodedJs,{name:n==null?void 0:n.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}var attributeWorkerPool=new WorkerPool$1(function(){return new WorkerWrapper},2);function parsePointCloud(n,t,e){var r=new FeatureTable(n.featureTableJson,n.featureTableBinary);return Promise.resolve().then(function(){var o=r.getExtension("3DTILES_draco_point_compression");return o?parseDraco(o,r):attributeWorkerPool.postMessage({featureTableBinary:r.buffer,featureTableJson:r.json},[r.buffer.buffer])}).then(function(o){return n.attributes=o,e})}function parseDraco(n,t){return __awaiter(this,void 0,void 0,function(){var e,r,o,s,u,l;return __generator(this,function(c){if(e=n.properties||{},r=n.byteOffset,o=n.byteLength,!e||!Number.isFinite(r)||!o)throw new Error("Draco properties, byteOffset, and byteLength must be defined");return s=t.buffer.slice(r,r+o),u=n.properties,l={POSITION:"Float32Array",NORMAL:"Float32Array",RGB:"Uint8Array",RGBA:"Uint8Array"},[2,draco.decodeGeometry(s.buffer,{attributeIDs:u,attributeTypes:l,useUniqueIDs:!0}).then(function(f){var d=f.getAttribute("POSITION"),p=f.getAttribute("RGB"),v=f.getAttribute("RGBA"),A=f.getAttribute("NORMAL"),g;if(v)g=v;else if(p){for(var h=p.count,y=p.array,m=new Uint8Array(h*4),E=0,b=void 0,T=void 0;E<h;E++)T=E*4,b=E*3,m[T]=y[b],m[++T]=y[++b],m[++T]=y[++b];g=new THREE__namespace.BufferAttribute(m,4,p.normalized)}return{position:d?{array:d.array,itemSize:d.itemSize,normalized:d.normalized}:null,color:g?{array:g.array,itemSize:g.itemSize,normalized:g.normalized}:null,normal:A?{array:A.array,itemSize:A.itemSize,normalized:A.normalized}:null}})]})})}function loadPnts(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={uri:n};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"}).then(function(s){return s.body})}).then(function(s){return Promise.resolve(0).then(function(u){return parseHeader$1(o,s,u)}).then(function(u){return parseTable(o,s,u)}).then(function(u){return parsePointCloud(o,s,u)})}).then(function(){var s;return createPoints(o.attributes,{computeBoundingBox:(s=t.computeBoundingBox)!==null&&s!==void 0?s:!0})}).then(function(s){var u=new THREE__namespace.Matrix4,l=new THREE__namespace.Matrix4().setPosition(o.rtcCenter[0],o.rtcCenter[1],o.rtcCenter[2]);return u.premultiply(l),s.object.applyMatrix4(u),delete o.gltfArrayBuffer,delete o.featureTableBinary,delete o.batchTableBinary,{type:"pnts",upAxis:"Z",uri:o.uri,byteLength:o.byteLength,memoryUsage:getMemoryUsage(s.object),scene:s.object,textures:[],dispose:function(){return s.dispose()}}})}function createPoints(n,t){var e=new Set,r=new THREE__namespace.BufferGeometry;e.add(r);var o=new PBMPointCloudMaterial;e.add(o),n.position&&r.setAttribute("position",new THREE__namespace.BufferAttribute(n.position.array,n.position.itemSize,n.position.normalized)),n.color&&r.setAttribute("color",new THREE__namespace.BufferAttribute(n.color.array,n.color.itemSize,n.color.normalized)),n.normal&&(r.setAttribute("normal",new THREE__namespace.BufferAttribute(n.normal.array,n.normal.itemSize,n.normal.normalized)),o.defines.USE_POINT_NORMAL=!0),t.computeBoundingBox&&r.computeBoundingBox();var s=new PBMPointCloud(r,o);return s.matrix.compose(s.position,s.quaternion,s.scale),s.matrixAutoUpdate=!1,s.frustumCulled=!1,Promise.resolve({object:s,dispose:function(){e.forEach(function(u){u.dispose()}),e.clear()}})}function createLZMA(){var n={};return n.OutWindow=function(){this._windowSize=0},n.OutWindow.prototype.create=function(t){(!this._buffer||this._windowSize!==t)&&(this._buffer=[]),this._windowSize=t,this._pos=0,this._streamPos=0},n.OutWindow.prototype.flush=function(){var t=this._pos-this._streamPos;if(t!==0){for(;t--;)this._stream.writeByte(this._buffer[this._streamPos++]);this._pos>=this._windowSize&&(this._pos=0),this._streamPos=this._pos}},n.OutWindow.prototype.releaseStream=function(){this.flush(),this._stream=null},n.OutWindow.prototype.setStream=function(t){this.releaseStream(),this._stream=t},n.OutWindow.prototype.init=function(t){t||(this._streamPos=0,this._pos=0)},n.OutWindow.prototype.copyBlock=function(t,e){var r=this._pos-t-1;for(r<0&&(r+=this._windowSize);e--;)r>=this._windowSize&&(r=0),this._buffer[this._pos++]=this._buffer[r++],this._pos>=this._windowSize&&this.flush()},n.OutWindow.prototype.putByte=function(t){this._buffer[this._pos++]=t,this._pos>=this._windowSize&&this.flush()},n.OutWindow.prototype.getByte=function(t){var e=this._pos-t-1;return e<0&&(e+=this._windowSize),this._buffer[e]},n.RangeDecoder=function(){},n.RangeDecoder.prototype.setStream=function(t){this._stream=t},n.RangeDecoder.prototype.releaseStream=function(){this._stream=null},n.RangeDecoder.prototype.init=function(){var t=5;for(this._code=0,this._range=-1;t--;)this._code=this._code<<8|this._stream.readByte()},n.RangeDecoder.prototype.decodeDirectBits=function(t){for(var e=0,r=t,o;r--;)this._range>>>=1,o=this._code-this._range>>>31,this._code-=this._range&o-1,e=e<<1|1-o,this._range&4278190080||(this._code=this._code<<8|this._stream.readByte(),this._range<<=8);return e},n.RangeDecoder.prototype.decodeBit=function(t,e){var r=t[e],o=(this._range>>>11)*r;return(this._code^2147483648)<(o^2147483648)?(this._range=o,t[e]+=2048-r>>>5,this._range&4278190080||(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),0):(this._range-=o,this._code-=o,t[e]-=r>>>5,this._range&4278190080||(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),1)},n.initBitModels=function(t,e){for(;e--;)t[e]=1024},n.BitTreeDecoder=function(t){this._models=[],this._numBitLevels=t},n.BitTreeDecoder.prototype.init=function(){n.initBitModels(this._models,1<<this._numBitLevels)},n.BitTreeDecoder.prototype.decode=function(t){for(var e=1,r=this._numBitLevels;r--;)e=e<<1|t.decodeBit(this._models,e);return e-(1<<this._numBitLevels)},n.BitTreeDecoder.prototype.reverseDecode=function(t){for(var e=1,r=0,o=0,s;o<this._numBitLevels;++o)s=t.decodeBit(this._models,e),e=e<<1|s,r|=s<<o;return r},n.reverseDecode2=function(t,e,r,o){for(var s=1,u=0,l=0,c;l<o;++l)c=r.decodeBit(t,e+s),s=s<<1|c,u|=c<<l;return u},n.LenDecoder=function(){this._choice=[],this._lowCoder=[],this._midCoder=[],this._highCoder=new n.BitTreeDecoder(8),this._numPosStates=0},n.LenDecoder.prototype.create=function(t){for(;this._numPosStates<t;++this._numPosStates)this._lowCoder[this._numPosStates]=new n.BitTreeDecoder(3),this._midCoder[this._numPosStates]=new n.BitTreeDecoder(3)},n.LenDecoder.prototype.init=function(){var t=this._numPosStates;for(n.initBitModels(this._choice,2);t--;)this._lowCoder[t].init(),this._midCoder[t].init();this._highCoder.init()},n.LenDecoder.prototype.decode=function(t,e){return t.decodeBit(this._choice,0)===0?this._lowCoder[e].decode(t):t.decodeBit(this._choice,1)===0?8+this._midCoder[e].decode(t):16+this._highCoder.decode(t)},n.Decoder2=function(){this._decoders=[]},n.Decoder2.prototype.init=function(){n.initBitModels(this._decoders,768)},n.Decoder2.prototype.decodeNormal=function(t){var e=1;do e=e<<1|t.decodeBit(this._decoders,e);while(e<256);return e&255},n.Decoder2.prototype.decodeWithMatchByte=function(t,e){var r=1,o,s;do if(o=e>>7&1,e<<=1,s=t.decodeBit(this._decoders,(1+o<<8)+r),r=r<<1|s,o!==s){for(;r<256;)r=r<<1|t.decodeBit(this._decoders,r);break}while(r<256);return r&255},n.LiteralDecoder=function(){},n.LiteralDecoder.prototype.create=function(t,e){var r;if(!(this._coders&&this._numPrevBits===e&&this._numPosBits===t))for(this._numPosBits=t,this._posMask=(1<<t)-1,this._numPrevBits=e,this._coders=[],r=1<<this._numPrevBits+this._numPosBits;r--;)this._coders[r]=new n.Decoder2},n.LiteralDecoder.prototype.init=function(){for(var t=1<<this._numPrevBits+this._numPosBits;t--;)this._coders[t].init()},n.LiteralDecoder.prototype.getDecoder=function(t,e){return this._coders[((t&this._posMask)<<this._numPrevBits)+((e&255)>>>8-this._numPrevBits)]},n.Decoder=function(){this._outWindow=new n.OutWindow,this._rangeDecoder=new n.RangeDecoder,this._isMatchDecoders=[],this._isRepDecoders=[],this._isRepG0Decoders=[],this._isRepG1Decoders=[],this._isRepG2Decoders=[],this._isRep0LongDecoders=[],this._posSlotDecoder=[],this._posDecoders=[],this._posAlignDecoder=new n.BitTreeDecoder(4),this._lenDecoder=new n.LenDecoder,this._repLenDecoder=new n.LenDecoder,this._literalDecoder=new n.LiteralDecoder,this._dictionarySize=-1,this._dictionarySizeCheck=-1,this._posSlotDecoder[0]=new n.BitTreeDecoder(6),this._posSlotDecoder[1]=new n.BitTreeDecoder(6),this._posSlotDecoder[2]=new n.BitTreeDecoder(6),this._posSlotDecoder[3]=new n.BitTreeDecoder(6)},n.Decoder.prototype.setDictionarySize=function(t){return t<0?!1:(this._dictionarySize!==t&&(this._dictionarySize=t,this._dictionarySizeCheck=Math.max(this._dictionarySize,1),this._outWindow.create(Math.max(this._dictionarySizeCheck,4096))),!0)},n.Decoder.prototype.setLcLpPb=function(t,e,r){var o=1<<r;return t>8||e>4||r>4?!1:(this._literalDecoder.create(e,t),this._lenDecoder.create(o),this._repLenDecoder.create(o),this._posStateMask=o-1,!0)},n.Decoder.prototype.init=function(){var t=4;for(this._outWindow.init(!1),n.initBitModels(this._isMatchDecoders,192),n.initBitModels(this._isRep0LongDecoders,192),n.initBitModels(this._isRepDecoders,12),n.initBitModels(this._isRepG0Decoders,12),n.initBitModels(this._isRepG1Decoders,12),n.initBitModels(this._isRepG2Decoders,12),n.initBitModels(this._posDecoders,114),this._literalDecoder.init();t--;)this._posSlotDecoder[t].init();this._lenDecoder.init(),this._repLenDecoder.init(),this._posAlignDecoder.init(),this._rangeDecoder.init()},n.Decoder.prototype.decode=function(t,e,r){var o=0,s=0,u=0,l=0,c=0,f=0,d=0,p,v,A,g,h,y;for(this._rangeDecoder.setStream(t),this._outWindow.setStream(e),this.init();r<0||f<r;)if(p=f&this._posStateMask,this._rangeDecoder.decodeBit(this._isMatchDecoders,(o<<4)+p)===0)v=this._literalDecoder.getDecoder(f++,d),o>=7?d=v.decodeWithMatchByte(this._rangeDecoder,this._outWindow.getByte(s)):d=v.decodeNormal(this._rangeDecoder),this._outWindow.putByte(d),o=o<4?0:o-(o<10?3:6);else{if(this._rangeDecoder.decodeBit(this._isRepDecoders,o)===1)A=0,this._rangeDecoder.decodeBit(this._isRepG0Decoders,o)===0?this._rangeDecoder.decodeBit(this._isRep0LongDecoders,(o<<4)+p)===0&&(o=o<7?9:11,A=1):(this._rangeDecoder.decodeBit(this._isRepG1Decoders,o)===0?g=u:(this._rangeDecoder.decodeBit(this._isRepG2Decoders,o)===0?g=l:(g=c,c=l),l=u),u=s,s=g),A===0&&(A=2+this._repLenDecoder.decode(this._rangeDecoder,p),o=o<7?8:11);else if(c=l,l=u,u=s,A=2+this._lenDecoder.decode(this._rangeDecoder,p),o=o<7?7:10,h=this._posSlotDecoder[A<=5?A-2:3].decode(this._rangeDecoder),h>=4){if(y=(h>>1)-1,s=(2|h&1)<<y,h<14)s+=n.reverseDecode2(this._posDecoders,s-h-1,this._rangeDecoder,y);else if(s+=this._rangeDecoder.decodeDirectBits(y-4)<<4,s+=this._posAlignDecoder.reverseDecode(this._rangeDecoder),s<0){if(s===-1)break;return!1}}else s=h;if(s>=f||s>=this._dictionarySizeCheck)return!1;this._outWindow.copyBlock(s,A),f+=A,d=this._outWindow.getByte(0)}return this._outWindow.flush(),this._outWindow.releaseStream(),this._rangeDecoder.releaseStream(),!0},n.Decoder.prototype.setDecoderProperties=function(t){var e,r,o,s,u;return t.size<5||(e=t.readByte(),r=e%9,e=~~(e/9),o=e%5,s=~~(e/5),!this.setLcLpPb(r,o,s))?!1:(u=t.readByte(),u|=t.readByte()<<8,u|=t.readByte()<<16,u+=t.readByte()*16777216,this.setDictionarySize(u))},n.decompress=function(t,e,r,o){var s=new n.Decoder;if(!s.setDecoderProperties(t))throw"Incorrect stream properties";if(!s.decode(e,r,o))throw"Error in data stream";return!0},n.decompressFile=function(t,e){var r=new n.Decoder,o;if(!r.setDecoderProperties(t))throw"Incorrect stream properties";if(o=t.readByte(),o|=t.readByte()<<8,o|=t.readByte()<<16,o+=t.readByte()*16777216,t.readByte(),t.readByte(),t.readByte(),t.readByte(),!r.decode(t,e,o))throw"Error in data stream";return!0},n}var LZMA=createLZMA();function createWASM(){function n(e){for(var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=new Uint8Array(256),s=0;s<r.length;s++)o[r.charCodeAt(s)]=s;var u=e.length*.75,l=e.length,c,f=0,d,p,v,A;e[e.length-1]==="="&&(u--,e[e.length-2]==="="&&u--);var g=new ArrayBuffer(u),h=new Uint8Array(g);for(c=0;c<l;c+=4)d=o[e.charCodeAt(c)],p=o[e.charCodeAt(c+1)],v=o[e.charCodeAt(c+2)],A=o[e.charCodeAt(c+3)],h[f++]=d<<2|p>>4,h[f++]=(p&15)<<4|v>>2,h[f++]=(v&3)<<6|A&63;return g}var t="AGFzbQEAAAABSg1gAABgAX8Bf2ACf38Bf2AEf39/fwBgA39/fwBgAX8AYAJ/fwBgA39/fwF/YAR/f39/AX9gAn9/AGABfwF/YAABf2AEf39/fwF/AhsCA2VudgVhYm9ydAADA2VudgZtZW1vcnkCAAEDJiUBAQkKAgoKCwsLCwsAAgoBAgQKAQYFCAoFBQQEBwgCBwwCAQAABAQBcAABBhoFfwFBAAt/AUEAC38BQQALfwFBAAt/AUEACwc9BgZtZW1vcnkCAAV0YWJsZQEABXJlc2V0AA0KbmV3VThBcnJheQAQCnVucGFja1NpemUAFAZkZWNvZGUAIwgBJAkHAQBBAAsBJQqAViVoAQN/IABBgICAgARLBEAACyMBIgEgAEEBIABBAUsbakEHakF4cSICPwAiA0EQdEsEQCADIAIgAWtB//8DakGAgHxxQRB2IgAgAyAAShtAAEEASARAIABAAEEASARAAAsLCyACJAEgAQsbAQF/QQFBICAAQQdqZ2t0EAEiASAANgIAIAELkQMBAX8gAUUEQA8LIABBADoAACAAIAFqQQFrQQA6AAAgAUECTQRADwsgAEEBakEAOgAAIABBAmpBADoAACAAIAFqIgJBAmtBADoAACACQQNrQQA6AAAgAUEGTQRADwsgAEEDakEAOgAAIAAgAWpBBGtBADoAACABQQhNBEAPC0EAIABrQQNxIgIgAGoiAEEANgIAIAEgAmtBfHEiASAAakEEa0EANgIAIAFBCE0EQA8LIABBBGpBADYCACAAQQhqQQA2AgAgACABaiICQQxrQQA2AgAgAkEIa0EANgIAIAFBGE0EQA8LIABBDGpBADYCACAAQRBqQQA2AgAgAEEUakEANgIAIABBGGpBADYCACAAIAFqIgJBHGtBADYCACACQRhrQQA2AgAgAkEUa0EANgIAIAJBEGtBADYCACAAQQRxQRhqIgIgAGohACABIAJrIQEDQCABQSBPBEAgAEIANwMAIABBCGpCADcDACAAQRBqQgA3AwAgAEEYakIANwMAIAFBIGshASAAQSBqIQAMAQsLC1EBA38gAEH+////AEsEQEEAQSBBLUEnEAAACyAAQQJ0IgMQAiECQQgQASIBQQA2AgAgAUEANgIEIAEgAjYCACABIAA2AgQgAkEIaiADEAMgAQtmAQF/IAFB/P///wFLBEBBAEHAAEEXQSIQAAALIAFBAXQiARACIgJBCGogARADIABFBEBBDBABIQALIABBADYCACAAQQA2AgQgAEEANgIIIAAgAjYCACAAQQA2AgQgACABNgIIIAALCgBBDBABIAAQBQsuAQF/QQgQASIBQQA2AgAgAUEANgIEIAEgADYCBCABQQEgASgCBHQQBjYCACABC6EBAQR/QRAQASIBQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgxBEBAEIQIDQCAAQRBIBEBBAxAHIQMgAigCACAAQQJ0aiADNgIIIABBAWohAAwBCwsgASACNgIEQRAQBCECQQAhAANAIABBEEgEQEEDEAchAyACKAIAIABBAnRqIAM2AgggAEEBaiEADAELCyABIAI2AgggAUEIEAc2AgwgAQs0AQF/QRQQASIAQQA2AgAgAEEAOgAEIABBADYCCCAAQQA2AgwgAEEANgIQIABBDTYCCCAAC0IBAX9BGRABIgBBADYCACAAQQA2AgQgAEEANgIIIABBADYCDCAAQQA2AhAgAEEANgIUIABBADoAGCAAQQA2AhAgAAu1AgEEf0HQABABIgBBADoAACAAQQA2AgQgAEEANgIIIABBADYCDCAAQQA2AhAgAEEAOgAUIABBADYCGCAAQQA2AhwgAEEANgIgIABBADYCJCAAQQA2AiggAEEANgIsIABBADYCMCAAQQA2AjQgAEEANgI4IABBADYCPCAAQQA2AkAgAEEANgJEIABBADYCSCAAQQA2AkxBBBAEIQIDQCABQQRIBEBBBhAHIQMgAigCACABQQJ0aiADNgIIIAFBAWohAQwBCwsgACACNgIkIABBBBAHNgIoIABB8wAQBjYCLCAAQcABEAY2AjAgAEEMEAY2AjQgAEEMEAY2AjggAEEMEAY2AjwgAEEMEAY2AkAgAEHAARAGNgJEIAAQCDYCSCAAEAg2AkwgABAJNgIEIAAQCjYCCCAACx8BAX9BCBABIgBBADYCACAAQQA2AgQgABALNgIAIAALCgAjACQBEAwkAwthAQF/IAFB+P///wNLBEBBAEHAAEEXQSIQAAALIAEQAiICQQhqIAEQAyAARQRAQQwQASEACyAAQQA2AgAgAEEANgIEIABBADYCCCAAIAI2AgAgAEEANgIEIAAgATYCCCAACwoAQQwQASAAEA4LBgAgABAPCyoAIAEgACgCCE8EQEEAQcAAQSdBPxAAAAsgACgCBCABIAAoAgBqai0ACAssACABIAAoAghPBEBBAEHAAEEyQT8QAAALIAAoAgQgASAAKAIAamogAjoACAtkAQJ/QQ0QDyECA0AgAUENSARAIAIgASAAIAEQEUH/AXEQEiABQQFqIQEMAQsLQQAhAEEAIQEDQCABQQhIBEAgAiABQQVqEBFB/wFxIAFBA3R0IAByIQAgAUEBaiEBDAELCyAACwYAIAAQEwsnACAAIAEQDzYCCCAAQQA2AgwgACABNgIUIABBADoAGCAAQQA2AgALJAAgACgCCCAAKAIYEBUgAEGABiAAKAIMIAAtABRqdBAGNgIgC5UBAQR/IAEhBSAAIgYoAgAhASAAKAIEIQcgACgCCEEBdiEEIAJBAEgEfyACIARqIgBBACAAQQBKGwUgAiIAIAQgACAESBsLIQIgA0EASAR/IAMgBGoiAEEAIABBAEobBSADIgAgBCAAIARIGwshAwNAIAIgA05FBEAgAkEBdCABaiAHaiAFOwEIIAJBAWohAgwBCwsgBgssAQF/AkACQAJAIwRBAWsOAwEBAgALAAtB/////wchAQsgAEGACEEAIAEQFwvBAQECfyAAQQIQBjYCACAAKAIAIgEoAgAgASgCBGpBgAg7AQggACgCACICKAIAIQEgAigCBCABQQJqakGACDsBCCAAKAIMKAIAQQEkBBAYGkEAIQIDQCACQRBIBEAgAiAAKAIEKAIAIgEoAgBBAnZJBH8gAkECdCABaigCCAUACygCAEEBJAQQGBogAiAAKAIIKAIAIgEoAgBBAnZJBH8gAkECdCABaigCCAUACygCAEEBJAQQGBogAkEBaiECDAELCwuHAgEFfyAAIQJBgAYgACgCDCAALQAUanQhAQNAIAMgAUgEQCACKAIgIgQoAgAhBSAEKAIEIANBAXQgBWpqQYAIOwEIIANBAWohAwwBCwsgAiEBQQAhAgNAIAJBBEkEQCACIAEoAiQoAgAiAygCAEECdkkEfyACQQJ0IANqKAIIBQALKAIAQQEkBBAYGiACQQFqIQIMAQsLIAEoAigoAgBBASQEEBgaIAEoAixBASQEEBgaIAAoAjBBASQEEBgaIAAoAjRBASQEEBgaIAAoAjhBASQEEBgaIAAoAjxBASQEEBgaIAAoAkBBASQEEBgaIAAoAkRBASQEEBgaIAAoAkgQGSAAKAJMEBkLyAwBA38DQCABQQNxIAIgAhsEQCAAIgRBAWohACABIgNBAWohASAEIAMtAAA6AAAgAkEBayECDAELCyAAQQNxRQRAA0AgAkEQTwRAIAAgASgCADYCACAAQQRqIAFBBGooAgA2AgAgAEEIaiABQQhqKAIANgIAIABBDGogAUEMaigCADYCACABQRBqIQEgAEEQaiEAIAJBEGshAgwBCwsgAkEIcQRAIAAgASgCADYCACAAQQRqIAFBBGooAgA2AgAgAUEIaiEBIABBCGohAAsgAkEEcQRAIAAgASgCADYCACABQQRqIQEgAEEEaiEACyACQQJxBEAgACABLwEAOwEAIAFBAmohASAAQQJqIQALIAJBAXEEQCAAIAEtAAA6AAALDwsgAkEgTwRAAkACQAJAIABBA3EiA0EBRwRAIANBAkYNASADQQNGDQIMAwsgASgCACEFIAAgASIDLQAAOgAAIABBAWoiASABIANBAWoiAS0AADoAAEEBaiIEQQFqIQAgAUEBaiIDQQFqIQEgBCADLQAAOgAAIAJBA2shAgNAIAJBEU8EQCAAIAFBAWooAgAiA0EIdCAFQRh2cjYCACAAQQRqIAFBBWooAgAiBUEIdCADQRh2cjYCACAAQQhqIAFBCWooAgAiA0EIdCAFQRh2cjYCACAAQQxqIAFBDWooAgAiBUEIdCADQRh2cjYCACABQRBqIQEgAEEQaiEAIAJBEGshAgwBCwsMAgsgASgCACEFIAAgAS0AADoAACAAQQFqIgRBAWohACABQQFqIgNBAWohASAEIAMtAAA6AAAgAkECayECA0AgAkESTwRAIAAgAUECaigCACIDQRB0IAVBEHZyNgIAIABBBGogAUEGaigCACIFQRB0IANBEHZyNgIAIABBCGogAUEKaigCACIDQRB0IAVBEHZyNgIAIABBDGogAUEOaigCACIFQRB0IANBEHZyNgIAIAFBEGohASAAQRBqIQAgAkEQayECDAELCwwBCyABKAIAIQUgACIEQQFqIQAgASIDQQFqIQEgBCADLQAAOgAAIAJBAWshAgNAIAJBE08EQCAAIAFBA2ooAgAiA0EYdCAFQQh2cjYCACAAQQRqIAFBB2ooAgAiBUEYdCADQQh2cjYCACAAQQhqIAFBC2ooAgAiA0EY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";return n(t)}function decodeLZMA(n,t,e){try{var r={data:t,offset:0,readByte:function(){return this.data[this.offset++]}},o=r.data.length,s={data:[],offset:0,writeByte:function(c){var f=Math.floor(this.offset/o);this.data[f]||(this.data[f]=new Uint8Array(o)),this.data[f][this.offset%o]=c,this.offset++}};n.decompressFile(r,s);for(var u=new Uint8Array(s.offset),l=0;l<s.offset;l++)u[l]=s.data[Math.floor(l/o)][l%o];e(null,u)}catch(c){e(c)}}function decodeLZMAWithWASM(n,t,e){var r=24;try{var o=new WebAssembly.Memory({initial:16}),s=new WebAssembly.Module(n),u=new WebAssembly.Instance(s,{env:{memory:o,abort:function(){e(new Error("webAssembly abort"))}}}),l=u.exports,c=l.newU8Array(t.length),f=new Uint8Array(o.buffer,c+r,t.length);f.set(t);var d=l.decode(c),p=new Uint32Array(o.buffer,d,4),v=p[0],A=p[2],g=p[3];v?e(null,new Uint8Array(o.buffer,g+r,A).slice(0,A)):e(new Error("lzma deocder error"))}catch(h){e(h)}}var lzmaWorkerSource=`
|
|
883
|
+
`,EXTENSION_NAME$5="KHR_texture_basisu",KHR_texture_basisu=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.loadTexture=function(e,r){var o=r.json.textures[e];if(!o.extensions||!o.extensions[EXTENSION_NAME$5])return null;var s=o.extensions[EXTENSION_NAME$5],u=r.json.images[s.source],l=null;if(u.bufferView!==void 0)l=r.loadBufferView(u.bufferView).then(function(d){return ktx2.parse(d)});else if(u.uri)l=r.options.fetcher.ajax(r.resolveResouce(u.uri),{responseType:"arraybuffer"}).then(function(d){return ktx2.parse(d.body)});else throw new Error("glTF: Invalid image defs.");var c=r.json.samplers||{},f=c[o.sampler]||{};return l=l.then(function(d){return d.magFilter=THREE__namespace.LinearFilter,d.minFilter=THREE__namespace.LinearFilter,d.wrapS=WEBGL_WRAPPINGS[f.wrapS]||THREE__namespace.RepeatWrapping,d.wrapT=WEBGL_WRAPPINGS[f.wrapT]||THREE__namespace.RepeatWrapping,d}),l},t}(BaseExtension),EXTENSION_NAME$4="KHR_texture_transform",KHR_texture_transform=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.extendTexture=function(e,r,o){var s=r.extensions!==void 0?r.extensions[EXTENSION_NAME$4]:void 0;return s?(s.texCoord!==void 0&&console.warn('glTF: Custom UV sets in "'+EXTENSION_NAME$4+'" extension not yet supported.'),s.offset===void 0&&s.rotation===void 0&&s.scale===void 0||(e=e.clone(),e.needsUpdate=!0,s.offset!==void 0&&e.offset.fromArray(s.offset),s.rotation!==void 0&&(e.rotation=s.rotation),s.scale!==void 0&&e.repeat.fromArray(s.scale)),e):null},t}(BaseExtension),KHR_mesh_quantization=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t}(BaseExtension),KHR_materials_unlit=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t}(BaseExtension),meshoptDecoder=function(){var n="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:78Yqdbk:qzezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhlaicefhodnadTmbalc;WFbGglcjdalcjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxdndndndnalc9WGgmTmbcbhPcehsawcjdfhzaohHinaraH9Rax6midnaraHaxfgo9RcK6mbczhlinalgic9Wfglawcj;cbffhOdndndndndnaHalco4fRbbalci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOaoRblaoRbbgAco4glalciSgCE86bbawcj;cbfaifglcGfaoclfaCfgORbbaAcl4ciGgCaCciSgCE86bbalcVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbalc7faOaCfgORbbaAciGgAaAciSgAE86bbalctfaOaAfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkaOaoRbwaoRbbgAcl4glalcsSgCE86bbawcj;cbfaifglcGfaocwfaCfgORbbaAcsGgAaAcsSgAE86bbalcVfaOaAfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekaOao8Pbb83bbaOcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaiczfhlarao9RcL0mekkaiam6miaoTmidnakTmbawaPfRbbhOawcj;cbfhlazhiakhHinaialRbbgAce4cbaAceG9R7aOfgO86bbaiadfhialcefhlaHcufgHmbkkazcefhzaPcefgPad6hsaohHaPad9hmexvkkcbhoasceGmdxikaoaxad2fhPdnakTmbcbhmcehsawcjdfhCinarao9Rax6miaoTmdaoaxfhoawamfRbbhOawcj;cbfhlaChiakhHinaialRbbgAce4cbaAceG9R7aOfgO86bbaiadfhialcefhlaHcufgHmbkaCcefhCamcefgmad6hsamad9hmbkaPhoxikcbhlcehsinarao9Rax6mdaoTmeaoaxfhoalcefglad6hsadal9hmbkaPhoxdkcbhoasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekcbc99arao9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;xzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj;8ifcjjj98G::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb",t="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;a9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;d8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgAclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;tzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbadczfhdaeclfgeav6mbkkdnaval9pmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb",e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),r=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var o=WebAssembly.validate(e)?t:n,s,u=WebAssembly.instantiate(l(o),{}).then(function(m){s=m.instance,s.exports.__wasm_call_ctors()});function l(m){for(var E=new Uint8Array(m.length),b=0;b<m.length;++b){var T=m.charCodeAt(b);E[b]=T>96?T-97:T>64?T-39:T+4}for(var _=0,b=0;b<m.length;++b)E[_++]=E[b]<60?r[E[b]]:(E[b]-60)*64+E[++b];return E.buffer.slice(0,_)}function c(m,E,b,T,_,R){var S=s.exports.sbrk,C=b+3&-4,B=S(C*T),L=S(_.length),M=new Uint8Array(s.exports.memory.buffer);M.set(_,L);var w=m(B,b,T,L,_.length);if(w==0&&R&&R(B,C,T),E.set(M.subarray(B,B+b*T)),S(B-S(0)),w!=0)throw new Error("Malformed buffer data: "+w)}var f={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},d={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},p=[],v=0;function A(m){var E={object:new Worker(m),pending:0,requests:{}};return E.object.onmessage=function(b){var T=b.data;E.pending-=T.count,E.requests[T.id][T.action](T.value),delete E.requests[T.id]},E}function g(m){for(var E="var instance; var ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(l(o))+"]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;"+c.toString()+y.toString(),b=new Blob([E],{type:"text/javascript"}),T=URL.createObjectURL(b),_=0;_<m;++_)p[_]=A(T);URL.revokeObjectURL(T)}function h(m,E,b,T,_){for(var R=p[0],S=1;S<p.length;++S)p[S].pending<R.pending&&(R=p[S]);return new Promise(function(C,B){var L=new Uint8Array(b),M=v++;R.pending+=m,R.requests[M]={resolve:C,reject:B},R.object.postMessage({id:M,count:m,size:E,source:L,mode:T,filter:_},[L.buffer])})}function y(m){u.then(function(){var E=m.data;try{var b=new Uint8Array(E.count*E.size);c(s.exports[E.mode],b,E.count,E.size,E.source,s.exports[E.filter]),self.postMessage({id:E.id,count:E.count,action:"resolve",value:b},[b.buffer])}catch(T){self.postMessage({id:E.id,count:E.count,action:"reject",value:T})}})}return{ready:u,supported:!0,useWorkers:function(m){g(m)},decodeVertexBuffer:function(m,E,b,T,_){c(s.exports.meshopt_decodeVertexBuffer,m,E,b,T,s.exports[f[_]])},decodeIndexBuffer:function(m,E,b,T){c(s.exports.meshopt_decodeIndexBuffer,m,E,b,T)},decodeIndexSequence:function(m,E,b,T){c(s.exports.meshopt_decodeIndexSequence,m,E,b,T)},decodeGltfBuffer:function(m,E,b,T,_,R){c(s.exports[d[_]],m,E,b,T,s.exports[f[R]])},decodeGltfBufferAsync:function(m,E,b,T,_){return p.length>0?h(m,E,b,d[T],f[_]):u.then(function(){var R=new Uint8Array(m*E);return c(s.exports[d[T]],R,m,E,b,s.exports[f[_]]),R})}}}(),EXTENSION_NAME$3="EXT_meshopt_compression",EXT_meshopt_compression=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.loadBufferView=function(e,r){var o=r.json,s=o.bufferViews[e];if(s.extensions&&s.extensions[EXTENSION_NAME$3]){var u=s.extensions[EXTENSION_NAME$3],l=r.loadBuffer(u.buffer);if(!meshoptDecoder.supported){if(o.extensionsRequired&&o.extensionsRequired.indexOf(EXTENSION_NAME$3)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return Promise.all([l,meshoptDecoder.ready]).then(function(c){var f=c[0],d=u.byteOffset||0,p=u.byteLength||0,v=u.count,A=u.byteStride,g=new ArrayBuffer(v*A),h=new Uint8Array(f,d,p);return meshoptDecoder.decodeGltfBuffer(new Uint8Array(g),v,A,h,u.mode,u.filter),g})}else return null},t}(BaseExtension),EXTENSION_NAME$2="EXT_texture_webp",EXT_texture_webp=function(n){__extends(t,n);function t(){var e=n!==null&&n.apply(this,arguments)||this;return e.supportsWep=!1,e}return t.prototype.prepare=function(e){var r=this;return imageSupport().then(function(o){r.supportsWep=o.webp})},t.prototype.loadTexture=function(e,r){var o=r.json,s=o.textures[e];if(!s.extensions||!s.extensions[EXTENSION_NAME$2]||!this.supportsWep)return null;var u=s.extensions[EXTENSION_NAME$2];return r.loadImage(u.source).then(function(l){var c=new THREE__namespace.Texture(l);c.needsUpdate=!0,c.flipY=!1,s.name&&(c.name=s.name);var f=r.json.samplers||{},d=f[s.sampler]||{};return c.magFilter=WEBGL_FILTERS[d.magFilter]||THREE__namespace.LinearFilter,c.minFilter=WEBGL_FILTERS[d.minFilter]||THREE__namespace.LinearMipmapLinearFilter,c.wrapS=WEBGL_WRAPPINGS[d.wrapS]||THREE__namespace.RepeatWrapping,c.wrapT=WEBGL_WRAPPINGS[d.wrapT]||THREE__namespace.RepeatWrapping,c.onUpdate=function(){l.close()},c})},t}(BaseExtension),EXTENSION_NAME$1="CESIUM_RTC",CESIUM_RTC=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.emitResult=function(e,r){if(r.json.extensions[EXTENSION_NAME$1]&&r.json.extensions[EXTENSION_NAME$1].center){var o=r.json.extensions[EXTENSION_NAME$1].center;e.CESIUM_RTC={center:new THREE__namespace.Vector3().fromArray(o)}}},t}(BaseExtension),PBM_mesh=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.loadMesh=function(e,r){var o=this,s=r.json.meshes[e],u=s.primitives,l=Promise.all(u.map(function(d){return r.loadGeometry(d)})),c=Promise.all(u.map(function(d){return o.loadPBMMaterial(d,r)})),f=Promise.all([l,c]).then(function(d){for(var p=d[0],v=d[1],A=[],g=0;g<u.length;g++){var h=u[g],y=p[g],m=v[g],E=h.mode||WEBGL_CONSTANTS.TRIANGLES,b=void 0;if(E===WEBGL_CONSTANTS.TRIANGLES||E===WEBGL_CONSTANTS.TRIANGLE_STRIP||E===WEBGL_CONSTANTS.TRIANGLE_FAN)if(E===WEBGL_CONSTANTS.TRIANGLE_STRIP?y=r.toGeometryTrianglesDrawMode(y,THREE__namespace.TriangleStripDrawMode):E===WEBGL_CONSTANTS.TRIANGLE_FAN&&(y=r.toGeometryTrianglesDrawMode(y,THREE__namespace.TriangleFanDrawMode)),y.clearGroups(),y.addGroup(0,y.index?y.index.count:y.attributes.position.count,0),r.disposeSet.add(y),s.isSkinnedMesh){var T=new PBMSkinnedMesh(y,[m]);y.attributes.skinWeight.normalized||T.normalizeSkinWeights(),b=T}else b=new PBMMesh(y,[m]);else if(E===WEBGL_CONSTANTS.POINTS)b=new PBMPointCloud(y,m);else throw new Error("glTF: Primitive mode unsupported: "+E);if(Object.keys(y.morphAttributes).length>0){if(s.weights!==void 0)for(var _=0,R=s.weights.length;_<R;_++)b.morphTargetInfluences[_]=s.weights[_];if(s.extras&&Array.isArray(s.extras.targetNames)){var S=s.extras.targetNames;if(b.morphTargetInfluences.length===S.length){b.morphTargetDictionary={};for(var _=0,R=S.length;_<R;_++)b.morphTargetDictionary[S[_]]=_}else console.warn("glTF: Invalid extras.targetNames length. Ignoring names.")}}b.name=r.createUniqueName(s.name||"mesh_"+e),A.push(b)}if(A.length===1)return A[0];for(var C=new THREE__namespace.Group,B=0,L=A;B<L.length;B++){var b=L[B];C.add(b)}return C});return f},t.prototype.loadPBMMaterial=function(e,r){var o,s=(o=e.mode)!==null&&o!==void 0?o:WEBGL_CONSTANTS.TRIANGLES,u=null;if(s===WEBGL_CONSTANTS.TRIANGLES||s===WEBGL_CONSTANTS.TRIANGLE_STRIP||s===WEBGL_CONSTANTS.TRIANGLE_FAN)u=this.loadPBMMeshMaterial(e,r);else if(s===WEBGL_CONSTANTS.POINTS)u=this.loadPBMPointCloudMaterial(e,r);else throw new Error("glTF: Primitive mode unsupported: "+s);return u=u.then(function(l){return Promise.all(values(r.extensions).map(function(c){return c.extendMaterial(l,e,r)})).then(function(){return l})}),u},t.prototype.extendTexture=function(e,r,o){return e.minFilter=THREE__namespace.LinearFilter,e.magFilter=THREE__namespace.LinearFilter,e.generateMipmaps=!1,e},t.prototype.loadPBMPointCloudMaterial=function(e,r){var o=new PBMPointCloudMaterial;return Object.keys(e.attributes).filter(function(s){return ATTRIBUTES[s]==="normal"}).length>0&&(o.defines.USE_POINT_NORMAL=!0),r.disposeSet.add(o),Promise.resolve(o)},t.prototype.loadPBMMeshMaterial=function(e,r){var o=[],s=r.extensions.KHR_materials_unlit?"basic":"standard",u=new PBMMeshMaterial(s);u.color=new THREE__namespace.Color(1,1,1);var l={};for(var c in e.attributes){var f=ATTRIBUTES[c]||c.toLowerCase();l[f]=c}if("color"in l&&(u.vertexColors=!0),"normal"in l||(u.flatShading=!0),"tangent"in l?u.vertexTangents=!0:(u.normalScale&&(u.normalScale.y*=-1),u.clearcoatNormalScale&&(u.clearcoatNormalScale.y*=-1)),"_feature_id_rsmask"in l&&(u.defines.USE_VERTEX_MARK=!0),e.material!==void 0){var d=r.json.materials[e.material];d.name&&(u.name=d.name);var p=d.pbrMetallicRoughness||{};if(Array.isArray(p.baseColorFactor)){var v=p.baseColorFactor;u.color=new THREE__namespace.Color().fromArray(v),u.colorAlpha=v[3]}p.baseColorTexture!==void 0&&o.push(r.createMaterialTexture(p.baseColorTexture).then(function(h){r.disposeSet.add(h),h.encoding=THREE__namespace.sRGBEncoding,u.map=h})),typeof p.roughnessFactor=="number"&&(u.roughness=p.roughnessFactor),typeof p.metallicFactor=="number"&&(u.metalness=p.metallicFactor),p.metallicRoughnessTexture!==void 0&&o.push(r.createMaterialTexture(p.metallicRoughnessTexture).then(function(h){r.disposeSet.add(h),h.encoding=THREE__namespace.sRGBEncoding,u.roughnessMap=h,u.metalnessMap=h})),d.doubleSided===!0&&(u.side=THREE__namespace.DoubleSide);var A=d.alphaMode||ALPHA_MODES.OPAQUE;if(u.alphaMode="OPAQUE",A===ALPHA_MODES.BLEND?(u.alphaMode="BLEND",u.transparent=!0,u.depthWrite=!1):(u.transparent=!1,A===ALPHA_MODES.MASK&&(u.alphaMode="MASK",u.alphaTest=d.alphaCutoff!==void 0?d.alphaCutoff:.5)),d.normalTexture!==void 0&&(o.push(r.createMaterialTexture(d.normalTexture).then(function(h){r.disposeSet.add(h),u.normalMap=h})),u.normalScale=new THREE__namespace.Vector2(1,1),d.normalTexture.scale!==void 0)){var g=d.normalTexture.scale;u.normalScale.set(g,g)}}return r.disposeSet.add(u),Promise.all(o).then(function(){return u.refreshUniforms(),u})},t}(BaseExtension),EXTENSION_NAME="REALSEE_materials_lightmap",REALSEE_materials_lightmap=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.extendMaterial=function(e,r,o){var s=[];if(o.json.materials&&r.material!==void 0){var u=o.json.materials[r.material],l=u.extensions[EXTENSION_NAME];l&&(l.lightMapTexture!==void 0&&s.push(o.createMaterialTexture(l.lightMapTexture).then(function(c){e.lightMap=c})),l.lightMapIntensity!==void 0&&(e.lightMapIntensity=l.lightMapIntensity))}return Promise.all(s).then(function(){})},t}(BaseExtension),EXTENSIONS={KHR_binary_glTF,KHR_draco_mesh_compression,KHR_texture_basisu,KHR_texture_transform,KHR_mesh_quantization,KHR_materials_unlit,EXT_meshopt_compression,EXT_texture_webp,CESIUM_RTC,REALSEE_materials_lightmap,PBM_mesh};function parseGltf(n,t){var e,r,o,s={},u,l;if(typeof n=="string")l=n;else{var c=EXTENSIONS.KHR_binary_glTF.getMagic(n);if(c===EXTENSIONS.KHR_binary_glTF.HEADER_MAGIC){u=new EXTENSIONS.KHR_binary_glTF;try{u.loadGlbBinary(n)}catch(g){return Promise.reject(g)}s.KHR_binary_glTF=u,l=u.content}else l=decodeText(new Uint8Array(n))}var f=JSON.parse(l);if(t.jsonModify&&(f=t.jsonModify(f)),f.asset===void 0||Number(f.asset.version[0])<2)return Promise.reject(new Error("glTF: Unsupported asset. glTF versions >=2.0 are supported."));if(f.extensionsUsed)for(var d=f.extensionsRequired||[],p=0;p<f.extensionsUsed.length;p++){var v=f.extensionsUsed[p];s[v]||(EXTENSIONS[v]?s[v]=new EXTENSIONS[v]:d.indexOf(v)>=0&&console.warn('glTF: Unknown extension "'+v+'".'))}var A=new Parser(f,s,{copyUV2:(e=t.copyUV2)!==null&&e!==void 0?e:!0,resourcePath:(r=t.resourcePath)!==null&&r!==void 0?r:"",search:(o=t.search)!==null&&o!==void 0?o:"",fetcher:t.fetcher});return A.parse().then(function(g){return u&&u.clear(),g})}function fixNumber(n){return isNaN(n)||!isFinite(n)?0:n}function getGeometryMemoryUsed(n){var t=0;if(n instanceof THREE__namespace.BufferGeometry){for(var e in n.attributes){var r=n.getAttribute(e),o=4;"BYTES_PER_ELEMENT"in r.array&&typeof r.array.BYTES_PER_ELEMENT=="number"&&(o=r.array.BYTES_PER_ELEMENT),t+=fixNumber(r.count*r.itemSize*o)}var s=n.getIndex();if(s){var o=4;"BYTES_PER_ELEMENT"in s.array&&typeof s.array.BYTES_PER_ELEMENT=="number"&&(o=s.array.BYTES_PER_ELEMENT),t+=fixNumber(s.count*s.itemSize*o)}}else n instanceof THREE__namespace.Geometry&&(t+=fixNumber(n.faces.length*3*3*4),t+=fixNumber(n.faceVertexUvs.length*3*2*4));return t}function makeComputeBlockRectSizeFunction(n,t,e){return function(r,o,s){var u=(r+n-1)/n|0,l=(o+t-1)/t|0;return u*l*e*s}}function makeComputePaddedRectSizeFunction(n,t,e){return function(r,o,s){return(Math.max(r,n)*Math.max(o,t)/e|0)*s}}var compressedTextureFunctions=new Map([[THREE__namespace.RGB_S3TC_DXT1_Format,makeComputeBlockRectSizeFunction(4,4,8)],[THREE__namespace.RGBA_S3TC_DXT1_Format,makeComputeBlockRectSizeFunction(4,4,8)],[THREE__namespace.RGBA_S3TC_DXT3_Format,makeComputeBlockRectSizeFunction(4,4,16)],[THREE__namespace.RGBA_S3TC_DXT5_Format,makeComputeBlockRectSizeFunction(4,4,16)],[THREE__namespace.RGB_ETC1_Format,makeComputeBlockRectSizeFunction(4,4,8)],[THREE__namespace.RGB_PVRTC_4BPPV1_Format,makeComputePaddedRectSizeFunction(8,8,2)],[THREE__namespace.RGBA_PVRTC_4BPPV1_Format,makeComputePaddedRectSizeFunction(8,8,2)],[THREE__namespace.RGB_PVRTC_2BPPV1_Format,makeComputePaddedRectSizeFunction(16,8,4)],[THREE__namespace.RGBA_PVRTC_2BPPV1_Format,makeComputePaddedRectSizeFunction(16,8,4)],[THREE__namespace.RGB_ETC2_Format,makeComputeBlockRectSizeFunction(4,4,8)],[THREE__namespace.RGBA_ETC2_EAC_Format,makeComputeBlockRectSizeFunction(4,4,16)],[THREE__namespace.RGBA_ASTC_4x4_Format,makeComputeBlockRectSizeFunction(4,4,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_4x4_Format,makeComputeBlockRectSizeFunction(4,4,16)],[THREE__namespace.RGBA_ASTC_5x4_Format,makeComputeBlockRectSizeFunction(5,4,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_5x4_Format,makeComputeBlockRectSizeFunction(5,4,16)],[THREE__namespace.RGBA_ASTC_5x5_Format,makeComputeBlockRectSizeFunction(5,5,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_5x5_Format,makeComputeBlockRectSizeFunction(5,5,16)],[THREE__namespace.RGBA_ASTC_6x5_Format,makeComputeBlockRectSizeFunction(6,5,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_6x5_Format,makeComputeBlockRectSizeFunction(6,5,16)],[THREE__namespace.RGBA_ASTC_6x6_Format,makeComputeBlockRectSizeFunction(6,6,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_6x6_Format,makeComputeBlockRectSizeFunction(6,6,16)],[THREE__namespace.RGBA_ASTC_8x5_Format,makeComputeBlockRectSizeFunction(8,5,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_8x5_Format,makeComputeBlockRectSizeFunction(8,5,16)],[THREE__namespace.RGBA_ASTC_8x6_Format,makeComputeBlockRectSizeFunction(8,6,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_8x6_Format,makeComputeBlockRectSizeFunction(8,6,16)],[THREE__namespace.RGBA_ASTC_8x8_Format,makeComputeBlockRectSizeFunction(8,8,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_8x8_Format,makeComputeBlockRectSizeFunction(8,8,16)],[THREE__namespace.RGBA_ASTC_10x5_Format,makeComputeBlockRectSizeFunction(10,5,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_10x5_Format,makeComputeBlockRectSizeFunction(10,5,16)],[THREE__namespace.RGBA_ASTC_10x6_Format,makeComputeBlockRectSizeFunction(10,6,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_10x6_Format,makeComputeBlockRectSizeFunction(10,6,16)],[THREE__namespace.RGBA_ASTC_10x8_Format,makeComputeBlockRectSizeFunction(10,8,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_10x8_Format,makeComputeBlockRectSizeFunction(10,8,16)],[THREE__namespace.RGBA_ASTC_10x10_Format,makeComputeBlockRectSizeFunction(10,10,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_10x10_Format,makeComputeBlockRectSizeFunction(10,10,16)],[THREE__namespace.RGBA_ASTC_12x10_Format,makeComputeBlockRectSizeFunction(12,10,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_12x10_Format,makeComputeBlockRectSizeFunction(12,10,16)],[THREE__namespace.RGBA_ASTC_12x12_Format,makeComputeBlockRectSizeFunction(12,12,16)],[THREE__namespace.SRGB8_ALPHA8_ASTC_12x12_Format,makeComputeBlockRectSizeFunction(12,12,16)],[THREE__namespace.RGBA_BPTC_Format,makeComputeBlockRectSizeFunction(4,4,16)]]);function getTextureMemoryUsed(n){var t=0,e=1;(n.generateMipmaps===!0||n.mipmaps&&n.mipmaps.length>1)&&(e=1.33);for(var r=n instanceof THREE__namespace.CompressedTexture,o=r?compressedTextureFunctions.get(n.format):void 0,s=[].concat(n.image),u=0,l=s;u<l.length;u++){var c=l[u];if(c instanceof THREE__namespace.Texture)t+=getTextureMemoryUsed(c);else{var f=c.width,d=f===void 0?1:f,p=c.height,v=p===void 0?1:p,A=c.depth,g=A===void 0?1:A;o?t+=fixNumber(o(d,v,g)*e):t+=fixNumber(d*v*g*4*e)}}return t}var textureSet=new Set,textureNames=["map","alphaMap","bumpMap","normalMap","displacementMap","emissiveMap","specularMap","envMap","flipEnvMap","lightMap","aoMap","gradientMap","metalnessMap","roughnessMap","sheenColorMap","sheenRoughnessMap","clearcoatMap","clearcoatRoughnessMap","clearcoatNormalMap","iridescenceMap","iridescenceThicknessMap","transmissionMap","thicknessMap","anisotropyMap","specularColorMap","specularIntensityMap"];function getMaterialMemoryUsed(n){var t=0;if(textureSet.clear(),n instanceof THREE__namespace.ShaderMaterial)for(var e in n.uniforms){var r=n.uniforms[e],o=r&&r.value&&r.value instanceof THREE__namespace.Texture?r.value:void 0;o instanceof THREE__namespace.Texture&&(textureSet.has(o)||(t=getTextureMemoryUsed(o),textureSet.add(o)))}else for(var s=0,u=textureNames;s<u.length;s++){var l=u[s],o=n[l];o instanceof THREE__namespace.Texture&&(textureSet.has(o)||(t=getTextureMemoryUsed(o),textureSet.add(o)))}return textureSet.clear(),t}var sceneSet=new Set;function getMemoryUsage(n){var t=0;return sceneSet.clear(),n.traverse(function(e){if(e instanceof THREE__namespace.Mesh||e instanceof THREE__namespace.Line||e instanceof THREE__namespace.Points){var r=e.geometry;(r instanceof THREE__namespace.BufferGeometry||r instanceof THREE__namespace.Geometry)&&(sceneSet.has(r)||(t+=getGeometryMemoryUsed(r),sceneSet.add(r)));for(var o=[].concat(e.material),s=0,u=o;s<u.length;s++){var l=u[s];l instanceof THREE__namespace.Material&&(sceneSet.has(l)||(t+=getMaterialMemoryUsed(l),sceneSet.add(l)))}}}),sceneSet.clear(),t}var ROTATE_X_MATRIX$6=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadB3dm(n,t){var e,r;t===void 0&&(t={});var o=(e=t.upAxis)!==null&&e!==void 0?e:"Y",s=(r=t.fetcher)!==null&&r!==void 0?r:new Fetcher({allowHosts:["*"]}),u={uri:n,gltfUpAxis:o};return Promise.resolve().then(function(){return s.ajax(n,{responseType:"arraybuffer"}).then(function(l){return l.body})}).then(function(l){return Promise.resolve(0).then(function(c){return parseHeader$1(u,l,c)}).then(function(c){return parseTable(u,l,c)}).then(function(c){return parseGlTFArrayBuffer(u,l,c)})}).then(function(){var l;return parseGltf(u.gltfArrayBuffer,{copyUV2:!1,resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(l=n.split("?")[1])!==null&&l!==void 0?l:"",jsonModify:function(c){var f;if(c.extensionsUsed=(f=c.extensionsUsed)!==null&&f!==void 0?f:[],typeof t.light=="boolean"){var d="KHR_materials_unlit";if(t.light){var p=c.extensionsUsed.indexOf(d);p>=0&&c.extensionsUsed.splice(p,1)}else{var p=c.extensionsUsed.indexOf(d);p===-1&&c.extensionsUsed.push(d)}}{var d="PBM_mesh",p=c.extensionsUsed.indexOf(d);p===-1&&c.extensionsUsed.push(d)}return c},fetcher:s}).then(function(c){var f=new THREE__namespace.Matrix4;o==="Y"&&f.premultiply(ROTATE_X_MATRIX$6);var d=new THREE__namespace.Matrix4().setPosition(u.rtcCenter[0],u.rtcCenter[1],u.rtcCenter[2]);if(f.premultiply(d),c.CESIUM_RTC){var p=new THREE__namespace.Matrix4().setPosition(c.CESIUM_RTC.center);f.premultiply(p)}var v=c.scene;return v.applyMatrix4(f),delete u.featureTableBinary,delete u.batchTableBinary,delete u.gltfArrayBuffer,{type:"b3dm",upAxis:"Z",uri:u.uri,byteLength:u.byteLength,memoryUsage:getMemoryUsage(v),scene:v,textures:c.textures,dispose:function(){return c.dispose()}}})})}const encodedJs="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoYSl7b25tZXNzYWdlPWZ1bmN0aW9uKHIpe1Byb21pc2UucmVzb2x2ZShyLmRhdGEpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIGEobil9KS50aGVuKGZ1bmN0aW9uKG4pe3ZhciBlPW4ub3V0cHV0LHQ9bi50cmFuc2ZlcjtyZXR1cm4gcG9zdE1lc3NhZ2UoZSx0KX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3JldHVybiBwb3N0TWVzc2FnZSh7JCRlcnJvcjpufSl9KX19dmFyIHUseTsoZnVuY3Rpb24oYSl7YVthLkJZVEU9NTEyMF09IkJZVEUiLGFbYS5VTlNJR05FRF9CWVRFPTUxMjFdPSJVTlNJR05FRF9CWVRFIixhW2EuU0hPUlQ9NTEyMl09IlNIT1JUIixhW2EuVU5TSUdORURfU0hPUlQ9NTEyM109IlVOU0lHTkVEX1NIT1JUIixhW2EuSU5UPTUxMjRdPSJJTlQiLGFbYS5VTlNJR05FRF9JTlQ9NTEyNV09IlVOU0lHTkVEX0lOVCIsYVthLkZMT0FUPTUxMjZdPSJGTE9BVCIsYVthLkRPVUJMRT01MTMwXT0iRE9VQkxFIn0pKHl8fCh5PXt9KSk7dmFyIGM9KHU9e30sdVt5LkRPVUJMRV09RmxvYXQ2NEFycmF5LHVbeS5GTE9BVF09RmxvYXQzMkFycmF5LHVbeS5VTlNJR05FRF9TSE9SVF09VWludDE2QXJyYXksdVt5LlVOU0lHTkVEX0lOVF09VWludDMyQXJyYXksdVt5LlVOU0lHTkVEX0JZVEVdPVVpbnQ4QXJyYXksdVt5LkJZVEVdPUludDhBcnJheSx1W3kuU0hPUlRdPUludDE2QXJyYXksdVt5LklOVF09SW50MzJBcnJheSx1KSxGPXtET1VCTEU6eS5ET1VCTEUsRkxPQVQ6eS5GTE9BVCxVTlNJR05FRF9TSE9SVDp5LlVOU0lHTkVEX1NIT1JULFVOU0lHTkVEX0lOVDp5LlVOU0lHTkVEX0lOVCxVTlNJR05FRF9CWVRFOnkuVU5TSUdORURfQllURSxCWVRFOnkuQllURSxTSE9SVDp5LlNIT1JULElOVDp5LklOVH07ZnVuY3Rpb24gTyhhKXt2YXIgcj1jW2FdO2lmKCFyKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIGNvbnZlcnQgR0wgdHlwZSIpO3JldHVybiByfWZ1bmN0aW9uIHAoYSl7dmFyIHI9TyhhKTtyZXR1cm4gci5CWVRFU19QRVJfRUxFTUVOVH1mdW5jdGlvbiBfKGEscixuLGUpe249PT12b2lkIDAmJihuPTApO3ZhciB0PU8oYSk7aWYobiVwKGEpIT09MCl7dmFyIGk9ZT9yLnNsaWNlKG4sbitlKnAoYSkpOnIuc2xpY2Uobik7cmV0dXJuIG5ldyB0KGkpfWVsc2UgcmV0dXJuIG5ldyB0KHIsbixlIT1udWxsP2U6KHIuYnl0ZUxlbmd0aC1uKS9wKGEpKX1mdW5jdGlvbiBsKGEpe3ZhciByPUZbYV07aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gY29udmVydCBHTCB0eXBlIik7cmV0dXJuIHJ9dmFyIFI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKHIsbil7dGhpcy5mZWF0dXJlc0xlbmd0aD0wLHRoaXMuY2FjaGVkVHlwZWRBcnJheXM9e30sdGhpcy5qc29uPXIsdGhpcy5idWZmZXI9bjt2YXIgZT10aGlzLmdldEdsb2JhbFByb3BlcnR5KCJQT0lOVFNfTEVOR1RIIix5LlVOU0lHTkVEX0lOVCwxKTtlJiZlLmxlbmd0aCYmKHRoaXMuZmVhdHVyZXNMZW5ndGg9ZVswXSl9cmV0dXJuIGEucHJvdG90eXBlLmdldEV4dGVuc2lvbj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5qc29uLmV4dGVuc2lvbnMmJnRoaXMuanNvbi5leHRlbnNpb25zW3JdfSxhLnByb3RvdHlwZS5oYXNQcm9wZXJ0eT1mdW5jdGlvbihyKXtyZXR1cm4hIXRoaXMuanNvbltyXX0sYS5wcm90b3R5cGUuZ2V0R2xvYmFsUHJvcGVydHk9ZnVuY3Rpb24ocixuLGUpe3ZhciB0PXRoaXMuanNvbltyXTtpZih0eXBlb2YgdD09Im51bWJlciIpe3ZhciBpPU8obik7cmV0dXJuIG5ldyBpKFt0XSl9ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgaT1PKG4pO3JldHVybiBuZXcgaSh0KX1lbHNlIGlmKHQmJk51bWJlci5pc0Zpbml0ZSh0LmJ5dGVPZmZzZXQpKXJldHVybiB0aGlzLmdldFR5cGVkQXJyYXlGcm9tQmluYXJ5KHIsbixlLDEsdC5ieXRlT2Zmc2V0KTtyZXR1cm4gbnVsbH0sYS5wcm90b3R5cGUuZ2V0UHJvcGVydHlBcnJheT1mdW5jdGlvbihyLG4sZSl7dmFyIHQ9dGhpcy5qc29uW3JdO3JldHVybiB0JiZOdW1iZXIuaXNGaW5pdGUodC5ieXRlT2Zmc2V0KT8oImNvbXBvbmVudFR5cGUiaW4gdCYmKG49bCh0LmNvbXBvbmVudFR5cGUpKSx0aGlzLmdldFR5cGVkQXJyYXlGcm9tQmluYXJ5KHIsbixlLHRoaXMuZmVhdHVyZXNMZW5ndGgsdC5ieXRlT2Zmc2V0KSk6dGhpcy5nZXRUeXBlZEFycmF5RnJvbUFycmF5KHIsbix0KX0sYS5wcm90b3R5cGUuZ2V0UHJvcGVydHk9ZnVuY3Rpb24ocixuLGUsdCxpKXt2YXIgbz10aGlzLmpzb25bcl07aWYoIW8pcmV0dXJuIG51bGw7dmFyIHY9dGhpcy5nZXRQcm9wZXJ0eUFycmF5KHIsbixlKTtpZihlPT09MSlyZXR1cm4gaVswXT12W3RdLGk7Zm9yKHZhciBBPTA7QTxlOysrQSlpW0FdPXZbZSp0K0FdO3JldHVybiBpfSxhLnByb3RvdHlwZS5nZXRUeXBlZEFycmF5RnJvbUJpbmFyeT1mdW5jdGlvbihyLG4sZSx0LGkpe3ZhciBvPXRoaXMuY2FjaGVkVHlwZWRBcnJheXMsdj1vW3JdO3JldHVybiB2fHwodj1fKG4sdGhpcy5idWZmZXIuYnVmZmVyLHRoaXMuYnVmZmVyLmJ5dGVPZmZzZXQraSx0KmUpLG9bcl09diksdn0sYS5wcm90b3R5cGUuZ2V0VHlwZWRBcnJheUZyb21BcnJheT1mdW5jdGlvbihyLG4sZSl7dmFyIHQ9dGhpcy5jYWNoZWRUeXBlZEFycmF5cyxpPXRbcl07cmV0dXJuIGl8fChpPV8obixlKSx0W3JdPWkpLGl9LGF9KCk7QihmdW5jdGlvbihhKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGEpLnRoZW4oZnVuY3Rpb24ocil7dmFyIG49bmV3IFIoci5mZWF0dXJlVGFibGVKc29uLHIuZmVhdHVyZVRhYmxlQmluYXJ5KSxlPWQobiksdD1nKG4pLGk9UChuKSxvPVtdO3JldHVybiBlJiZvLnB1c2goZS5hcnJheS5idWZmZXIpLHQmJm8ucHVzaCh0LmFycmF5LmJ1ZmZlciksaSYmby5wdXNoKGkuYXJyYXkuYnVmZmVyKSx7b3V0cHV0Ontwb3NpdGlvbjplLGNvbG9yOnQsbm9ybWFsOml9LHRyYW5zZmVyOm99fSl9KTt2YXIgVT02NTUzNTtmdW5jdGlvbiBkKGEpe2lmKGEuaGFzUHJvcGVydHkoIlBPU0lUSU9OIikpe3ZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUE9TSVRJT04iLHkuRkxPQVQsMyk7cmV0dXJue2FycmF5OnIsaXRlbVNpemU6Myxub3JtYWxpemVkOiExfX1lbHNlIGlmKGEuaGFzUHJvcGVydHkoIlBPU0lUSU9OX1FVQU5USVpFRCIpKXt2YXIgbj1hLmdldFByb3BlcnR5QXJyYXkoIlBPU0lUSU9OX1FVQU5USVpFRCIseS5VTlNJR05FRF9TSE9SVCwzKSxlPWEuZ2V0R2xvYmFsUHJvcGVydHkoIlFVQU5USVpFRF9WT0xVTUVfU0NBTEUiLHkuRkxPQVQsMyksdD1hLmdldEdsb2JhbFByb3BlcnR5KCJRVUFOVElaRURfVk9MVU1FX09GRlNFVCIseS5GTE9BVCwzKTtpZighZXx8IXQpdGhyb3cgbmV3IEVycm9yKCJRVUFOVElaRURfVk9MVU1FX1NDQUxFIG9yIFFVQU5USVpFRF9WT0xVTUVfT0ZGU0VUIG5ldmVyIGZvdW5kLiIpO2Zvcih2YXIgaT1uZXcgRmxvYXQzMkFycmF5KG4ubGVuZ3RoKSxvPW4ubGVuZ3RoLzMsdj1lWzBdL1UsQT1lWzFdL1UsTj1lWzJdL1UsRT10WzBdLFM9dFsxXSxzPXRbMl0sVD0wLEk9dm9pZCAwO1Q8bztUKyspST1UKjMsaVtJXT1uW0ldKnYrRSxpWysrSV09bltJXSpBK1MsaVsrK0ldPW5bSV0qTitzO3JldHVybnthcnJheTppLGl0ZW1TaXplOjMsbm9ybWFsaXplZDohMX19cmV0dXJuIG51bGx9ZnVuY3Rpb24gZyhhKXtpZihhLmhhc1Byb3BlcnR5KCJSR0IiKSl7Zm9yKHZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUkdCIix5LlVOU0lHTkVEX0JZVEUsMyksbj1yLmxlbmd0aC8zLGU9bmV3IFVpbnQ4QXJyYXkobio0KSx0PTAsaT12b2lkIDAsbz12b2lkIDA7dDxuO3QrKylvPXQqNCxpPXQqMyxlW29dPXJbaV0sZVsrK29dPXJbKytpXSxlWysrb109clsrK2ldO3JldHVybnthcnJheTplLGl0ZW1TaXplOjQsbm9ybWFsaXplZDohMH19ZWxzZSBpZihhLmhhc1Byb3BlcnR5KCJSR0JBIikpe3ZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUkdCQSIseS5VTlNJR05FRF9CWVRFLDQpO3JldHVybnthcnJheTpyLGl0ZW1TaXplOjQsbm9ybWFsaXplZDohMH19ZWxzZSBpZihhLmhhc1Byb3BlcnR5KCJSR0I1NjUiKSl7Zm9yKHZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUkdCNTY1Iix5LlVOU0lHTkVEX1NIT1JULDEpLG49ci5sZW5ndGgsZT1uZXcgVWludDhBcnJheShuKjQpLHQ9MCx2PXZvaWQgMCxBPXZvaWQgMDt0PG47dCsrKUE9clt0XSx2PXQqNCxlW3ZdPShBPj4xMSYzMSk8PDMsZVsrK3ZdPShBPj41JjYzKTw8MixlWysrdl09KEEmMzEpPDwzO3JldHVybnthcnJheTplLGl0ZW1TaXplOjQsbm9ybWFsaXplZDohMH19cmV0dXJuIG51bGx9dmFyIEc9MjU1LGg9MTI3LEQ9Mi9HO2Z1bmN0aW9uIFAoYSl7aWYoYS5oYXNQcm9wZXJ0eSgiTk9STUFMIikpe2Zvcih2YXIgcj1hLmdldFByb3BlcnR5QXJyYXkoIk5PUk1BTCIseS5GTE9BVCwzKSxuPXIubGVuZ3RoLzMsZT1uZXcgSW50OEFycmF5KG4qNCksdD0wLGk9dm9pZCAwLG89dm9pZCAwO3Q8bjt0Kyspbz10KjQsaT10KjMsZVtvXT1yW2ldKmgsZVsrK29dPXJbKytpXSpoLGVbKytvXT1yWysraV0qaDtyZXR1cm57YXJyYXk6ZSxpdGVtU2l6ZTo0LG5vcm1hbGl6ZWQ6ITB9fWVsc2UgaWYoYS5oYXNQcm9wZXJ0eSgiTk9STUFMX09DVDE2UCIpKXtmb3IodmFyIHI9YS5nZXRQcm9wZXJ0eUFycmF5KCJOT1JNQUxfT0NUMTZQIix5LlVOU0lHTkVEX0JZVEUsMiksbj1yLmxlbmd0aC8yLGU9bmV3IEludDhBcnJheShuKjQpLHQ9MCx2PXZvaWQgMCxBPXZvaWQgMCxOPXZvaWQgMCxFPXZvaWQgMCxTPXZvaWQgMCxzPXZvaWQgMCxUPXZvaWQgMDt0PG47dCsrKXY9dCoyLEE9clt2XSpELTEsTj1yWysrdl0qRC0xLFM9QTwwPy1BOkEscz1OPDA/LU46TixFPTEtKFMrcyksRTwwJiYoQT0oMS1zKSooQTwwPy0xOjEpLE49KDEtUykqKE48MD8tMToxKSksVD1NYXRoLnNxcnQoQSpBK04qTitFKkUpLHY9dCo0LGVbdl09QS9UKmgsZVsrK3ZdPU4vVCpoLGVbKyt2XT1FL1QqaDtyZXR1cm57YXJyYXk6ZSxpdGVtU2l6ZTo0LG5vcm1hbGl6ZWQ6ITB9fXJldHVybiBudWxsfX0pKCk7Cg==",decodeBase64=n=>Uint8Array.from(atob(n),t=>t.charCodeAt(0)),blob$1=typeof self!="undefined"&&self.Blob&&new Blob([decodeBase64(encodedJs)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper(n){let t;try{if(t=blob$1&&(self.URL||self.webkitURL).createObjectURL(blob$1),!t)throw"";const e=new Worker(t,{name:n==null?void 0:n.name});return e.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),e}catch(e){return new Worker("data:text/javascript;base64,"+encodedJs,{name:n==null?void 0:n.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}var attributeWorkerPool=new WorkerPool$1(function(){return new WorkerWrapper},2);function parsePointCloud(n,t,e){var r=new FeatureTable(n.featureTableJson,n.featureTableBinary);return Promise.resolve().then(function(){var o=r.getExtension("3DTILES_draco_point_compression");return o?parseDraco(o,r):attributeWorkerPool.postMessage({featureTableBinary:r.buffer,featureTableJson:r.json},[r.buffer.buffer])}).then(function(o){return n.attributes=o,e})}function parseDraco(n,t){return __awaiter(this,void 0,void 0,function(){var e,r,o,s,u,l;return __generator(this,function(c){if(e=n.properties||{},r=n.byteOffset,o=n.byteLength,!e||!Number.isFinite(r)||!o)throw new Error("Draco properties, byteOffset, and byteLength must be defined");return s=t.buffer.slice(r,r+o),u=n.properties,l={POSITION:"Float32Array",NORMAL:"Float32Array",RGB:"Uint8Array",RGBA:"Uint8Array"},[2,draco.decodeGeometry(s.buffer,{attributeIDs:u,attributeTypes:l,useUniqueIDs:!0}).then(function(f){var d=f.getAttribute("POSITION"),p=f.getAttribute("RGB"),v=f.getAttribute("RGBA"),A=f.getAttribute("NORMAL"),g;if(v)g=v;else if(p){for(var h=p.count,y=p.array,m=new Uint8Array(h*4),E=0,b=void 0,T=void 0;E<h;E++)T=E*4,b=E*3,m[T]=y[b],m[++T]=y[++b],m[++T]=y[++b];g=new THREE__namespace.BufferAttribute(m,4,p.normalized)}return{position:d?{array:d.array,itemSize:d.itemSize,normalized:d.normalized}:null,color:g?{array:g.array,itemSize:g.itemSize,normalized:g.normalized}:null,normal:A?{array:A.array,itemSize:A.itemSize,normalized:A.normalized}:null}})]})})}function loadPnts(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={uri:n};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"}).then(function(s){return s.body})}).then(function(s){return Promise.resolve(0).then(function(u){return parseHeader$1(o,s,u)}).then(function(u){return parseTable(o,s,u)}).then(function(u){return parsePointCloud(o,s,u)})}).then(function(){var s;return createPoints(o.attributes,{computeBoundingBox:(s=t.computeBoundingBox)!==null&&s!==void 0?s:!0})}).then(function(s){var u=new THREE__namespace.Matrix4,l=new THREE__namespace.Matrix4().setPosition(o.rtcCenter[0],o.rtcCenter[1],o.rtcCenter[2]);return u.premultiply(l),s.object.applyMatrix4(u),delete o.gltfArrayBuffer,delete o.featureTableBinary,delete o.batchTableBinary,{type:"pnts",upAxis:"Z",uri:o.uri,byteLength:o.byteLength,memoryUsage:getMemoryUsage(s.object),scene:s.object,textures:[],dispose:function(){return s.dispose()}}})}function createPoints(n,t){var e=new Set,r=new THREE__namespace.BufferGeometry;e.add(r);var o=new PBMPointCloudMaterial;e.add(o),n.position&&r.setAttribute("position",new THREE__namespace.BufferAttribute(n.position.array,n.position.itemSize,n.position.normalized)),n.color&&r.setAttribute("color",new THREE__namespace.BufferAttribute(n.color.array,n.color.itemSize,n.color.normalized)),n.normal&&(r.setAttribute("normal",new THREE__namespace.BufferAttribute(n.normal.array,n.normal.itemSize,n.normal.normalized)),o.defines.USE_POINT_NORMAL=!0),t.computeBoundingBox&&r.computeBoundingBox();var s=new PBMPointCloud(r,o);return s.matrix.compose(s.position,s.quaternion,s.scale),s.matrixAutoUpdate=!1,s.frustumCulled=!1,Promise.resolve({object:s,dispose:function(){e.forEach(function(u){u.dispose()}),e.clear()}})}function createLZMA(){var n={};return n.OutWindow=function(){this._windowSize=0},n.OutWindow.prototype.create=function(t){(!this._buffer||this._windowSize!==t)&&(this._buffer=[]),this._windowSize=t,this._pos=0,this._streamPos=0},n.OutWindow.prototype.flush=function(){var t=this._pos-this._streamPos;if(t!==0){for(;t--;)this._stream.writeByte(this._buffer[this._streamPos++]);this._pos>=this._windowSize&&(this._pos=0),this._streamPos=this._pos}},n.OutWindow.prototype.releaseStream=function(){this.flush(),this._stream=null},n.OutWindow.prototype.setStream=function(t){this.releaseStream(),this._stream=t},n.OutWindow.prototype.init=function(t){t||(this._streamPos=0,this._pos=0)},n.OutWindow.prototype.copyBlock=function(t,e){var r=this._pos-t-1;for(r<0&&(r+=this._windowSize);e--;)r>=this._windowSize&&(r=0),this._buffer[this._pos++]=this._buffer[r++],this._pos>=this._windowSize&&this.flush()},n.OutWindow.prototype.putByte=function(t){this._buffer[this._pos++]=t,this._pos>=this._windowSize&&this.flush()},n.OutWindow.prototype.getByte=function(t){var e=this._pos-t-1;return e<0&&(e+=this._windowSize),this._buffer[e]},n.RangeDecoder=function(){},n.RangeDecoder.prototype.setStream=function(t){this._stream=t},n.RangeDecoder.prototype.releaseStream=function(){this._stream=null},n.RangeDecoder.prototype.init=function(){var t=5;for(this._code=0,this._range=-1;t--;)this._code=this._code<<8|this._stream.readByte()},n.RangeDecoder.prototype.decodeDirectBits=function(t){for(var e=0,r=t,o;r--;)this._range>>>=1,o=this._code-this._range>>>31,this._code-=this._range&o-1,e=e<<1|1-o,this._range&4278190080||(this._code=this._code<<8|this._stream.readByte(),this._range<<=8);return e},n.RangeDecoder.prototype.decodeBit=function(t,e){var r=t[e],o=(this._range>>>11)*r;return(this._code^2147483648)<(o^2147483648)?(this._range=o,t[e]+=2048-r>>>5,this._range&4278190080||(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),0):(this._range-=o,this._code-=o,t[e]-=r>>>5,this._range&4278190080||(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),1)},n.initBitModels=function(t,e){for(;e--;)t[e]=1024},n.BitTreeDecoder=function(t){this._models=[],this._numBitLevels=t},n.BitTreeDecoder.prototype.init=function(){n.initBitModels(this._models,1<<this._numBitLevels)},n.BitTreeDecoder.prototype.decode=function(t){for(var e=1,r=this._numBitLevels;r--;)e=e<<1|t.decodeBit(this._models,e);return e-(1<<this._numBitLevels)},n.BitTreeDecoder.prototype.reverseDecode=function(t){for(var e=1,r=0,o=0,s;o<this._numBitLevels;++o)s=t.decodeBit(this._models,e),e=e<<1|s,r|=s<<o;return r},n.reverseDecode2=function(t,e,r,o){for(var s=1,u=0,l=0,c;l<o;++l)c=r.decodeBit(t,e+s),s=s<<1|c,u|=c<<l;return u},n.LenDecoder=function(){this._choice=[],this._lowCoder=[],this._midCoder=[],this._highCoder=new n.BitTreeDecoder(8),this._numPosStates=0},n.LenDecoder.prototype.create=function(t){for(;this._numPosStates<t;++this._numPosStates)this._lowCoder[this._numPosStates]=new n.BitTreeDecoder(3),this._midCoder[this._numPosStates]=new n.BitTreeDecoder(3)},n.LenDecoder.prototype.init=function(){var t=this._numPosStates;for(n.initBitModels(this._choice,2);t--;)this._lowCoder[t].init(),this._midCoder[t].init();this._highCoder.init()},n.LenDecoder.prototype.decode=function(t,e){return t.decodeBit(this._choice,0)===0?this._lowCoder[e].decode(t):t.decodeBit(this._choice,1)===0?8+this._midCoder[e].decode(t):16+this._highCoder.decode(t)},n.Decoder2=function(){this._decoders=[]},n.Decoder2.prototype.init=function(){n.initBitModels(this._decoders,768)},n.Decoder2.prototype.decodeNormal=function(t){var e=1;do e=e<<1|t.decodeBit(this._decoders,e);while(e<256);return e&255},n.Decoder2.prototype.decodeWithMatchByte=function(t,e){var r=1,o,s;do if(o=e>>7&1,e<<=1,s=t.decodeBit(this._decoders,(1+o<<8)+r),r=r<<1|s,o!==s){for(;r<256;)r=r<<1|t.decodeBit(this._decoders,r);break}while(r<256);return r&255},n.LiteralDecoder=function(){},n.LiteralDecoder.prototype.create=function(t,e){var r;if(!(this._coders&&this._numPrevBits===e&&this._numPosBits===t))for(this._numPosBits=t,this._posMask=(1<<t)-1,this._numPrevBits=e,this._coders=[],r=1<<this._numPrevBits+this._numPosBits;r--;)this._coders[r]=new n.Decoder2},n.LiteralDecoder.prototype.init=function(){for(var t=1<<this._numPrevBits+this._numPosBits;t--;)this._coders[t].init()},n.LiteralDecoder.prototype.getDecoder=function(t,e){return this._coders[((t&this._posMask)<<this._numPrevBits)+((e&255)>>>8-this._numPrevBits)]},n.Decoder=function(){this._outWindow=new n.OutWindow,this._rangeDecoder=new n.RangeDecoder,this._isMatchDecoders=[],this._isRepDecoders=[],this._isRepG0Decoders=[],this._isRepG1Decoders=[],this._isRepG2Decoders=[],this._isRep0LongDecoders=[],this._posSlotDecoder=[],this._posDecoders=[],this._posAlignDecoder=new n.BitTreeDecoder(4),this._lenDecoder=new n.LenDecoder,this._repLenDecoder=new n.LenDecoder,this._literalDecoder=new n.LiteralDecoder,this._dictionarySize=-1,this._dictionarySizeCheck=-1,this._posSlotDecoder[0]=new n.BitTreeDecoder(6),this._posSlotDecoder[1]=new n.BitTreeDecoder(6),this._posSlotDecoder[2]=new n.BitTreeDecoder(6),this._posSlotDecoder[3]=new n.BitTreeDecoder(6)},n.Decoder.prototype.setDictionarySize=function(t){return t<0?!1:(this._dictionarySize!==t&&(this._dictionarySize=t,this._dictionarySizeCheck=Math.max(this._dictionarySize,1),this._outWindow.create(Math.max(this._dictionarySizeCheck,4096))),!0)},n.Decoder.prototype.setLcLpPb=function(t,e,r){var o=1<<r;return t>8||e>4||r>4?!1:(this._literalDecoder.create(e,t),this._lenDecoder.create(o),this._repLenDecoder.create(o),this._posStateMask=o-1,!0)},n.Decoder.prototype.init=function(){var t=4;for(this._outWindow.init(!1),n.initBitModels(this._isMatchDecoders,192),n.initBitModels(this._isRep0LongDecoders,192),n.initBitModels(this._isRepDecoders,12),n.initBitModels(this._isRepG0Decoders,12),n.initBitModels(this._isRepG1Decoders,12),n.initBitModels(this._isRepG2Decoders,12),n.initBitModels(this._posDecoders,114),this._literalDecoder.init();t--;)this._posSlotDecoder[t].init();this._lenDecoder.init(),this._repLenDecoder.init(),this._posAlignDecoder.init(),this._rangeDecoder.init()},n.Decoder.prototype.decode=function(t,e,r){var o=0,s=0,u=0,l=0,c=0,f=0,d=0,p,v,A,g,h,y;for(this._rangeDecoder.setStream(t),this._outWindow.setStream(e),this.init();r<0||f<r;)if(p=f&this._posStateMask,this._rangeDecoder.decodeBit(this._isMatchDecoders,(o<<4)+p)===0)v=this._literalDecoder.getDecoder(f++,d),o>=7?d=v.decodeWithMatchByte(this._rangeDecoder,this._outWindow.getByte(s)):d=v.decodeNormal(this._rangeDecoder),this._outWindow.putByte(d),o=o<4?0:o-(o<10?3:6);else{if(this._rangeDecoder.decodeBit(this._isRepDecoders,o)===1)A=0,this._rangeDecoder.decodeBit(this._isRepG0Decoders,o)===0?this._rangeDecoder.decodeBit(this._isRep0LongDecoders,(o<<4)+p)===0&&(o=o<7?9:11,A=1):(this._rangeDecoder.decodeBit(this._isRepG1Decoders,o)===0?g=u:(this._rangeDecoder.decodeBit(this._isRepG2Decoders,o)===0?g=l:(g=c,c=l),l=u),u=s,s=g),A===0&&(A=2+this._repLenDecoder.decode(this._rangeDecoder,p),o=o<7?8:11);else if(c=l,l=u,u=s,A=2+this._lenDecoder.decode(this._rangeDecoder,p),o=o<7?7:10,h=this._posSlotDecoder[A<=5?A-2:3].decode(this._rangeDecoder),h>=4){if(y=(h>>1)-1,s=(2|h&1)<<y,h<14)s+=n.reverseDecode2(this._posDecoders,s-h-1,this._rangeDecoder,y);else if(s+=this._rangeDecoder.decodeDirectBits(y-4)<<4,s+=this._posAlignDecoder.reverseDecode(this._rangeDecoder),s<0){if(s===-1)break;return!1}}else s=h;if(s>=f||s>=this._dictionarySizeCheck)return!1;this._outWindow.copyBlock(s,A),f+=A,d=this._outWindow.getByte(0)}return this._outWindow.flush(),this._outWindow.releaseStream(),this._rangeDecoder.releaseStream(),!0},n.Decoder.prototype.setDecoderProperties=function(t){var e,r,o,s,u;return t.size<5||(e=t.readByte(),r=e%9,e=~~(e/9),o=e%5,s=~~(e/5),!this.setLcLpPb(r,o,s))?!1:(u=t.readByte(),u|=t.readByte()<<8,u|=t.readByte()<<16,u+=t.readByte()*16777216,this.setDictionarySize(u))},n.decompress=function(t,e,r,o){var s=new n.Decoder;if(!s.setDecoderProperties(t))throw"Incorrect stream properties";if(!s.decode(e,r,o))throw"Error in data stream";return!0},n.decompressFile=function(t,e){var r=new n.Decoder,o;if(!r.setDecoderProperties(t))throw"Incorrect stream properties";if(o=t.readByte(),o|=t.readByte()<<8,o|=t.readByte()<<16,o+=t.readByte()*16777216,t.readByte(),t.readByte(),t.readByte(),t.readByte(),!r.decode(t,e,o))throw"Error in data stream";return!0},n}var LZMA=createLZMA();function createWASM(){function n(e){for(var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=new Uint8Array(256),s=0;s<r.length;s++)o[r.charCodeAt(s)]=s;var u=e.length*.75,l=e.length,c,f=0,d,p,v,A;e[e.length-1]==="="&&(u--,e[e.length-2]==="="&&u--);var g=new ArrayBuffer(u),h=new Uint8Array(g);for(c=0;c<l;c+=4)d=o[e.charCodeAt(c)],p=o[e.charCodeAt(c+1)],v=o[e.charCodeAt(c+2)],A=o[e.charCodeAt(c+3)],h[f++]=d<<2|p>>4,h[f++]=(p&15)<<4|v>>2,h[f++]=(v&3)<<6|A&63;return g}var t="AGFzbQEAAAABSg1gAABgAX8Bf2ACf38Bf2AEf39/fwBgA39/fwBgAX8AYAJ/fwBgA39/fwF/YAR/f39/AX9gAn9/AGABfwF/YAABf2AEf39/fwF/AhsCA2VudgVhYm9ydAADA2VudgZtZW1vcnkCAAEDJiUBAQkKAgoKCwsLCwsAAgoBAgQKAQYFCAoFBQQEBwgCBwwCAQAABAQBcAABBhoFfwFBAAt/AUEAC38BQQALfwFBAAt/AUEACwc9BgZtZW1vcnkCAAV0YWJsZQEABXJlc2V0AA0KbmV3VThBcnJheQAQCnVucGFja1NpemUAFAZkZWNvZGUAIwgBJAkHAQBBAAsBJQqAViVoAQN/IABBgICAgARLBEAACyMBIgEgAEEBIABBAUsbakEHakF4cSICPwAiA0EQdEsEQCADIAIgAWtB//8DakGAgHxxQRB2IgAgAyAAShtAAEEASARAIABAAEEASARAAAsLCyACJAEgAQsbAQF/QQFBICAAQQdqZ2t0EAEiASAANgIAIAELkQMBAX8gAUUEQA8LIABBADoAACAAIAFqQQFrQQA6AAAgAUECTQRADwsgAEEBakEAOgAAIABBAmpBADoAACAAIAFqIgJBAmtBADoAACACQQNrQQA6AAAgAUEGTQRADwsgAEEDakEAOgAAIAAgAWpBBGtBADoAACABQQhNBEAPC0EAIABrQQNxIgIgAGoiAEEANgIAIAEgAmtBfHEiASAAakEEa0EANgIAIAFBCE0EQA8LIABBBGpBADYCACAAQQhqQQA2AgAgACABaiICQQxrQQA2AgAgAkEIa0EANgIAIAFBGE0EQA8LIABBDGpBADYCACAAQRBqQQA2AgAgAEEUakEANgIAIABBGGpBADYCACAAIAFqIgJBHGtBADYCACACQRhrQQA2AgAgAkEUa0EANgIAIAJBEGtBADYCACAAQQRxQRhqIgIgAGohACABIAJrIQEDQCABQSBPBEAgAEIANwMAIABBCGpCADcDACAAQRBqQgA3AwAgAEEYakIANwMAIAFBIGshASAAQSBqIQAMAQsLC1EBA38gAEH+////AEsEQEEAQSBBLUEnEAAACyAAQQJ0IgMQAiECQQgQASIBQQA2AgAgAUEANgIEIAEgAjYCACABIAA2AgQgAkEIaiADEAMgAQtmAQF/IAFB/P///wFLBEBBAEHAAEEXQSIQAAALIAFBAXQiARACIgJBCGogARADIABFBEBBDBABIQALIABBADYCACAAQQA2AgQgAEEANgIIIAAgAjYCACAAQQA2AgQgACABNgIIIAALCgBBDBABIAAQBQsuAQF/QQgQASIBQQA2AgAgAUEANgIEIAEgADYCBCABQQEgASgCBHQQBjYCACABC6EBAQR/QRAQASIBQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgxBEBAEIQIDQCAAQRBIBEBBAxAHIQMgAigCACAAQQJ0aiADNgIIIABBAWohAAwBCwsgASACNgIEQRAQBCECQQAhAANAIABBEEgEQEEDEAchAyACKAIAIABBAnRqIAM2AgggAEEBaiEADAELCyABIAI2AgggAUEIEAc2AgwgAQs0AQF/QRQQASIAQQA2AgAgAEEAOgAEIABBADYCCCAAQQA2AgwgAEEANgIQIABBDTYCCCAAC0IBAX9BGRABIgBBADYCACAAQQA2AgQgAEEANgIIIABBADYCDCAAQQA2AhAgAEEANgIUIABBADoAGCAAQQA2AhAgAAu1AgEEf0HQABABIgBBADoAACAAQQA2AgQgAEEANgIIIABBADYCDCAAQQA2AhAgAEEAOgAUIABBADYCGCAAQQA2AhwgAEEANgIgIABBADYCJCAAQQA2AiggAEEANgIsIABBADYCMCAAQQA2AjQgAEEANgI4IABBADYCPCAAQQA2AkAgAEEANgJEIABBADYCSCAAQQA2AkxBBBAEIQIDQCABQQRIBEBBBhAHIQMgAigCACABQQJ0aiADNgIIIAFBAWohAQwBCwsgACACNgIkIABBBBAHNgIoIABB8wAQBjYCLCAAQcABEAY2AjAgAEEMEAY2AjQgAEEMEAY2AjggAEEMEAY2AjwgAEEMEAY2AkAgAEHAARAGNgJEIAAQCDYCSCAAEAg2AkwgABAJNgIEIAAQCjYCCCAACx8BAX9BCBABIgBBADYCACAAQQA2AgQgABALNgIAIAALCgAjACQBEAwkAwthAQF/IAFB+P///wNLBEBBAEHAAEEXQSIQAAALIAEQAiICQQhqIAEQAyAARQRAQQwQASEACyAAQQA2AgAgAEEANgIEIABBADYCCCAAIAI2AgAgAEEANgIEIAAgATYCCCAACwoAQQwQASAAEA4LBgAgABAPCyoAIAEgACgCCE8EQEEAQcAAQSdBPxAAAAsgACgCBCABIAAoAgBqai0ACAssACABIAAoAghPBEBBAEHAAEEyQT8QAAALIAAoAgQgASAAKAIAamogAjoACAtkAQJ/QQ0QDyECA0AgAUENSARAIAIgASAAIAEQEUH/AXEQEiABQQFqIQEMAQsLQQAhAEEAIQEDQCABQQhIBEAgAiABQQVqEBFB/wFxIAFBA3R0IAByIQAgAUEBaiEBDAELCyAACwYAIAAQEwsnACAAIAEQDzYCCCAAQQA2AgwgACABNgIUIABBADoAGCAAQQA2AgALJAAgACgCCCAAKAIYEBUgAEGABiAAKAIMIAAtABRqdBAGNgIgC5UBAQR/IAEhBSAAIgYoAgAhASAAKAIEIQcgACgCCEEBdiEEIAJBAEgEfyACIARqIgBBACAAQQBKGwUgAiIAIAQgACAESBsLIQIgA0EASAR/IAMgBGoiAEEAIABBAEobBSADIgAgBCAAIARIGwshAwNAIAIgA05FBEAgAkEBdCABaiAHaiAFOwEIIAJBAWohAgwBCwsgBgssAQF/AkACQAJAIwRBAWsOAwEBAgALAAtB/////wchAQsgAEGACEEAIAEQFwvBAQECfyAAQQIQBjYCACAAKAIAIgEoAgAgASgCBGpBgAg7AQggACgCACICKAIAIQEgAigCBCABQQJqakGACDsBCCAAKAIMKAIAQQEkBBAYGkEAIQIDQCACQRBIBEAgAiAAKAIEKAIAIgEoAgBBAnZJBH8gAkECdCABaigCCAUACygCAEEBJAQQGBogAiAAKAIIKAIAIgEoAgBBAnZJBH8gAkECdCABaigCCAUACygCAEEBJAQQGBogAkEBaiECDAELCwuHAgEFfyAAIQJBgAYgACgCDCAALQAUanQhAQNAIAMgAUgEQCACKAIgIgQoAgAhBSAEKAIEIANBAXQgBWpqQYAIOwEIIANBAWohAwwBCwsgAiEBQQAhAgNAIAJBBEkEQCACIAEoAiQoAgAiAygCAEECdkkEfyACQQJ0IANqKAIIBQALKAIAQQEkBBAYGiACQQFqIQIMAQsLIAEoAigoAgBBASQEEBgaIAEoAixBASQEEBgaIAAoAjBBASQEEBgaIAAoAjRBASQEEBgaIAAoAjhBASQEEBgaIAAoAjxBASQEEBgaIAAoAkBBASQEEBgaIAAoAkRBASQEEBgaIAAoAkgQGSAAKAJMEBkLyAwBA38DQCABQQNxIAIgAhsEQCAAIgRBAWohACABIgNBAWohASAEIAMtAAA6AAAgAkEBayECDAELCyAAQQNxRQRAA0AgAkEQTwRAIAAgASgCADYCACAAQQRqIAFBBGooAgA2AgAgAEEIaiABQQhqKAIANgIAIABBDGogAUEMaigCADYCACABQRBqIQEgAEEQaiEAIAJBEGshAgwBCwsgAkEIcQRAIAAgASgCADYCACAAQQRqIAFBBGooAgA2AgAgAUEIaiEBIABBCGohAAsgAkEEcQRAIAAgASgCADYCACABQQRqIQEgAEEEaiEACyACQQJxBEAgACABLwEAOwEAIAFBAmohASAAQQJqIQALIAJBAXEEQCAAIAEtAAA6AAALDwsgAkEgTwRAAkACQAJAIABBA3EiA0EBRwRAIANBAkYNASADQQNGDQIMAwsgASgCACEFIAAgASIDLQAAOgAAIABBAWoiASABIANBAWoiAS0AADoAAEEBaiIEQQFqIQAgAUEBaiIDQQFqIQEgBCADLQAAOgAAIAJBA2shAgNAIAJBEU8EQCAAIAFBAWooAgAiA0EIdCAFQRh2cjYCACAAQQRqIAFBBWooAgAiBUEIdCADQRh2cjYCACAAQQhqIAFBCWooAgAiA0EIdCAFQRh2cjYCACAAQQxqIAFBDWooAgAiBUEIdCADQRh2cjYCACABQRBqIQEgAEEQaiEAIAJBEGshAgwBCwsMAgsgASgCACEFIAAgAS0AADoAACAAQQFqIgRBAWohACABQQFqIgNBAWohASAEIAMtAAA6AAAgAkECayECA0AgAkESTwRAIAAgAUECaigCACIDQRB0IAVBEHZyNgIAIABBBGogAUEGaigCACIFQRB0IANBEHZyNgIAIABBCGogAUEKaigCACIDQRB0IAVBEHZyNgIAIABBDGogAUEOaigCACIFQRB0IANBEHZyNgIAIAFBEGohASAAQRBqIQAgAkEQayECDAELCwwBCyABKAIAIQUgACIEQQFqIQAgASIDQQFqIQEgBCADLQAAOgAAIAJBAWshAgNAIAJBE08EQCAAIAFBA2ooAgAiA0EYdCAFQQh2cjYCACAAQQRqIAFBB2ooAgAiBUEYdCADQQh2cjYCACAAQQhqIAFBC2ooAgAiA0EY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";return n(t)}function decodeLZMA(n,t,e){try{var r={data:t,offset:0,readByte:function(){return this.data[this.offset++]}},o=r.data.length,s={data:[],offset:0,writeByte:function(c){var f=Math.floor(this.offset/o);this.data[f]||(this.data[f]=new Uint8Array(o)),this.data[f][this.offset%o]=c,this.offset++}};n.decompressFile(r,s);for(var u=new Uint8Array(s.offset),l=0;l<s.offset;l++)u[l]=s.data[Math.floor(l/o)][l%o];e(null,u)}catch(c){e(c)}}function decodeLZMAWithWASM(n,t,e){var r=24;try{var o=new WebAssembly.Memory({initial:16}),s=new WebAssembly.Module(n),u=new WebAssembly.Instance(s,{env:{memory:o,abort:function(){e(new Error("webAssembly abort"))}}}),l=u.exports,c=l.newU8Array(t.length),f=new Uint8Array(o.buffer,c+r,t.length);f.set(t);var d=l.decode(c),p=new Uint32Array(o.buffer,d,4),v=p[0],A=p[2],g=p[3];v?e(null,new Uint8Array(o.buffer,g+r,A).slice(0,A)):e(new Error("lzma deocder error"))}catch(h){e(h)}}var lzmaWorkerSource=`
|
|
884
884
|
var decodeLZMA = (function() {
|
|
885
885
|
var LZMA = (`.concat(createLZMA.toString(),`)();
|
|
886
886
|
return function(data, callback) {
|
|
@@ -925,13 +925,13 @@ self.onmessage = function(event) {
|
|
|
925
925
|
}
|
|
926
926
|
postMessage({ id: packet.id, error: "type never matched." });
|
|
927
927
|
};
|
|
928
|
-
`),support=typeof Worker!="undefined"&&typeof Blob!="undefined",lzmaWorkerURL="";if(support)try{var blob=new Blob([lzmaWorkerSource],{type:"text/javascript"});lzmaWorkerURL=URL.createObjectURL(blob)}catch(n){}var LZMAWorker=function(){function n(){var t=this;if(!support)throw new Error("LZMAWorker cannot work in this broswer.");this.callCounter=0,this.requests={};var e=this.worker=new Worker(lzmaWorkerURL);e.onmessage=function(r){var o=r.data,s=o.id,u=o.result,l=o.error,c=t.getKey(s);t.requests[c]&&(l?t.requests[c](new Error(l)):t.requests[c](null,u),delete t.requests[c])},e.onerror=function(r){return console.error(r)}}return n.prototype.getKey=function(t){return"key_"+String(t)},n.prototype.decompress=function(t,e){var r=++this.callCounter;this.requests[this.getKey(r)]=e,this.worker.postMessage({type:"decompress",id:r,data:t},[t.buffer])},n.prototype.terminate=function(){this.worker.terminate()},n.support=support,n}();function readUint32(n){return Array.prototype.reduce.call(n,function(t,e,r){return t|e<<r*8},0)}function binaryArrays(n){for(var t=[],e=n.length,r=function(u){var l={data:n[u],offset:0,readByte:function(){return this.data[this.offset++]}},c=l.data.length,f={data:[],offset:0,writeByte:function(p){var v=Math.floor(this.offset/c);this.data[v]||(this.data[v]=new Uint8Array(c)),this.data[v][this.offset%c]=p,this.offset++}};LZMA.decompressFile(l,f),o=new Uint8Array(f.offset);for(var d=0;d<f.offset;d++)o[d]=f.data[Math.floor(d/c)][d%c];t.push(o)},o,s=0;s<e;s++)r(s);return t}function binaryArraysWithWorker(n){for(var t=[],e=n.length,r=function(s){t.push(new Promise(function(u,l){var c=new LZMAWorker;c.decompress(n[s],function(f,d){if(c.terminate(),f)return l(f);u(d)})}))},o=0;o<e;o++)r(o);return Promise.all(t)}function lzma(n){var t=new Uint8Array(n),e=readUint32(t.slice(0,4));if(e>10)return Promise.reject(new Error("LZMA got too many sub chunks."));for(var r=[],o=[],s=4+e*4,u=0;u<e;u++)o[u]=readUint32(t.slice(4+u*4,8+u*4)),u===e-1?r[u]=t.subarray(s,s+o[u]):r[u]=t.slice(s,s+o[u]),s+=o[u];return LZMAWorker.support?binaryArraysWithWorker(r):Promise.resolve(binaryArrays(r))}var dequeuing=!1,queue=[];function dequeue(n){if(n===void 0&&(n=!1),!(!n&&dequeuing)){dequeuing=!0;var t=queue.shift();if(t){try{t()}catch(e){}AnimationFrameLoop.shared.add(function(){return dequeue(!0)},!0,2,-100)}else dequeuing=!1}}function delay(n){return new Promise(function(t,e){var r=function(){try{t(n())}catch(o){e(o)}};queue.push(r),AnimationFrameLoop.shared.add(function(){return dequeue()},!0,2,-100)})}var commonjsGlobal=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},indexMinimal={},minimal$1={},aspromise=asPromise;function asPromise(n,t){for(var e=new Array(arguments.length-1),r=0,o=2,s=!0;o<arguments.length;)e[r++]=arguments[o++];return new Promise(function(l,c){e[r]=function(d){if(s)if(s=!1,d)c(d);else{for(var p=new Array(arguments.length-1),v=0;v<p.length;)p[v++]=arguments[v];l.apply(null,p)}};try{n.apply(t||null,e)}catch(f){s&&(s=!1,c(f))}})}var base64$1={};(function(n){var t=n;t.length=function(l){var c=l.length;if(!c)return 0;for(var f=0;--c%4>1&&l.charAt(c)==="=";)++f;return Math.ceil(l.length*3)/4-f};for(var e=new Array(64),r=new Array(123),o=0;o<64;)r[e[o]=o<26?o+65:o<52?o+71:o<62?o-4:o-59|43]=o++;t.encode=function(l,c,f){for(var d=null,p=[],v=0,A=0,g;c<f;){var h=l[c++];switch(A){case 0:p[v++]=e[h>>2],g=(h&3)<<4,A=1;break;case 1:p[v++]=e[g|h>>4],g=(h&15)<<2,A=2;break;case 2:p[v++]=e[g|h>>6],p[v++]=e[h&63],A=0;break}v>8191&&((d||(d=[])).push(String.fromCharCode.apply(String,p)),v=0)}return A&&(p[v++]=e[g],p[v++]=61,A===1&&(p[v++]=61)),d?(v&&d.push(String.fromCharCode.apply(String,p.slice(0,v))),d.join("")):String.fromCharCode.apply(String,p.slice(0,v))};var s="invalid encoding";t.decode=function(l,c,f){for(var d=f,p=0,v,A=0;A<l.length;){var g=l.charCodeAt(A++);if(g===61&&p>1)break;if((g=r[g])===void 0)throw Error(s);switch(p){case 0:v=g,p=1;break;case 1:c[f++]=v<<2|(g&48)>>4,v=g,p=2;break;case 2:c[f++]=(v&15)<<4|(g&60)>>2,v=g,p=3;break;case 3:c[f++]=(v&3)<<6|g,p=0;break}}if(p===1)throw Error(s);return f-d},t.test=function(l){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(l)}})(base64$1);var eventemitter=EventEmitter;function EventEmitter(){this._listeners={}}EventEmitter.prototype.on=function(t,e,r){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:e,ctx:r||this}),this};EventEmitter.prototype.off=function(t,e){if(t===void 0)this._listeners={};else if(e===void 0)this._listeners[t]=[];else for(var r=this._listeners[t],o=0;o<r.length;)r[o].fn===e?r.splice(o,1):++o;return this};EventEmitter.prototype.emit=function(t){var e=this._listeners[t];if(e){for(var r=[],o=1;o<arguments.length;)r.push(arguments[o++]);for(o=0;o<e.length;)e[o].fn.apply(e[o++].ctx,r)}return this};var float=factory(factory);function factory(n){return typeof Float32Array!="undefined"?function(){var t=new Float32Array([-0]),e=new Uint8Array(t.buffer),r=e[3]===128;function o(c,f,d){t[0]=c,f[d]=e[0],f[d+1]=e[1],f[d+2]=e[2],f[d+3]=e[3]}function s(c,f,d){t[0]=c,f[d]=e[3],f[d+1]=e[2],f[d+2]=e[1],f[d+3]=e[0]}n.writeFloatLE=r?o:s,n.writeFloatBE=r?s:o;function u(c,f){return e[0]=c[f],e[1]=c[f+1],e[2]=c[f+2],e[3]=c[f+3],t[0]}function l(c,f){return e[3]=c[f],e[2]=c[f+1],e[1]=c[f+2],e[0]=c[f+3],t[0]}n.readFloatLE=r?u:l,n.readFloatBE=r?l:u}():function(){function t(r,o,s,u){var l=o<0?1:0;if(l&&(o=-o),o===0)r(1/o>0?0:2147483648,s,u);else if(isNaN(o))r(2143289344,s,u);else if(o>34028234663852886e22)r((l<<31|2139095040)>>>0,s,u);else if(o<11754943508222875e-54)r((l<<31|Math.round(o/1401298464324817e-60))>>>0,s,u);else{var c=Math.floor(Math.log(o)/Math.LN2),f=Math.round(o*Math.pow(2,-c)*8388608)&8388607;r((l<<31|c+127<<23|f)>>>0,s,u)}}n.writeFloatLE=t.bind(null,writeUintLE),n.writeFloatBE=t.bind(null,writeUintBE);function e(r,o,s){var u=r(o,s),l=(u>>31)*2+1,c=u>>>23&255,f=u&8388607;return c===255?f?NaN:l*(1/0):c===0?l*1401298464324817e-60*f:l*Math.pow(2,c-150)*(f+8388608)}n.readFloatLE=e.bind(null,readUintLE),n.readFloatBE=e.bind(null,readUintBE)}(),typeof Float64Array!="undefined"?function(){var t=new Float64Array([-0]),e=new Uint8Array(t.buffer),r=e[7]===128;function o(c,f,d){t[0]=c,f[d]=e[0],f[d+1]=e[1],f[d+2]=e[2],f[d+3]=e[3],f[d+4]=e[4],f[d+5]=e[5],f[d+6]=e[6],f[d+7]=e[7]}function s(c,f,d){t[0]=c,f[d]=e[7],f[d+1]=e[6],f[d+2]=e[5],f[d+3]=e[4],f[d+4]=e[3],f[d+5]=e[2],f[d+6]=e[1],f[d+7]=e[0]}n.writeDoubleLE=r?o:s,n.writeDoubleBE=r?s:o;function u(c,f){return e[0]=c[f],e[1]=c[f+1],e[2]=c[f+2],e[3]=c[f+3],e[4]=c[f+4],e[5]=c[f+5],e[6]=c[f+6],e[7]=c[f+7],t[0]}function l(c,f){return e[7]=c[f],e[6]=c[f+1],e[5]=c[f+2],e[4]=c[f+3],e[3]=c[f+4],e[2]=c[f+5],e[1]=c[f+6],e[0]=c[f+7],t[0]}n.readDoubleLE=r?u:l,n.readDoubleBE=r?l:u}():function(){function t(r,o,s,u,l,c){var f=u<0?1:0;if(f&&(u=-u),u===0)r(0,l,c+o),r(1/u>0?0:2147483648,l,c+s);else if(isNaN(u))r(0,l,c+o),r(2146959360,l,c+s);else if(u>17976931348623157e292)r(0,l,c+o),r((f<<31|2146435072)>>>0,l,c+s);else{var d;if(u<22250738585072014e-324)d=u/5e-324,r(d>>>0,l,c+o),r((f<<31|d/4294967296)>>>0,l,c+s);else{var p=Math.floor(Math.log(u)/Math.LN2);p===1024&&(p=1023),d=u*Math.pow(2,-p),r(d*4503599627370496>>>0,l,c+o),r((f<<31|p+1023<<20|d*1048576&1048575)>>>0,l,c+s)}}}n.writeDoubleLE=t.bind(null,writeUintLE,0,4),n.writeDoubleBE=t.bind(null,writeUintBE,4,0);function e(r,o,s,u,l){var c=r(u,l+o),f=r(u,l+s),d=(f>>31)*2+1,p=f>>>20&2047,v=4294967296*(f&1048575)+c;return p===2047?v?NaN:d*(1/0):p===0?d*5e-324*v:d*Math.pow(2,p-1075)*(v+4503599627370496)}n.readDoubleLE=e.bind(null,readUintLE,0,4),n.readDoubleBE=e.bind(null,readUintBE,4,0)}(),n}function writeUintLE(n,t,e){t[e]=n&255,t[e+1]=n>>>8&255,t[e+2]=n>>>16&255,t[e+3]=n>>>24}function writeUintBE(n,t,e){t[e]=n>>>24,t[e+1]=n>>>16&255,t[e+2]=n>>>8&255,t[e+3]=n&255}function readUintLE(n,t){return(n[t]|n[t+1]<<8|n[t+2]<<16|n[t+3]<<24)>>>0}function readUintBE(n,t){return(n[t]<<24|n[t+1]<<16|n[t+2]<<8|n[t+3])>>>0}var inquire_1=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(n){}return null}var utf8$2={};(function(n){var t=n;t.length=function(r){for(var o=0,s=0,u=0;u<r.length;++u)s=r.charCodeAt(u),s<128?o+=1:s<2048?o+=2:(s&64512)===55296&&(r.charCodeAt(u+1)&64512)===56320?(++u,o+=4):o+=3;return o},t.read=function(r,o,s){var u=s-o;if(u<1)return"";for(var l=null,c=[],f=0,d;o<s;)d=r[o++],d<128?c[f++]=d:d>191&&d<224?c[f++]=(d&31)<<6|r[o++]&63:d>239&&d<365?(d=((d&7)<<18|(r[o++]&63)<<12|(r[o++]&63)<<6|r[o++]&63)-65536,c[f++]=55296+(d>>10),c[f++]=56320+(d&1023)):c[f++]=(d&15)<<12|(r[o++]&63)<<6|r[o++]&63,f>8191&&((l||(l=[])).push(String.fromCharCode.apply(String,c)),f=0);return l?(f&&l.push(String.fromCharCode.apply(String,c.slice(0,f))),l.join("")):String.fromCharCode.apply(String,c.slice(0,f))},t.write=function(r,o,s){for(var u=s,l,c,f=0;f<r.length;++f)l=r.charCodeAt(f),l<128?o[s++]=l:l<2048?(o[s++]=l>>6|192,o[s++]=l&63|128):(l&64512)===55296&&((c=r.charCodeAt(f+1))&64512)===56320?(l=65536+((l&1023)<<10)+(c&1023),++f,o[s++]=l>>18|240,o[s++]=l>>12&63|128,o[s++]=l>>6&63|128,o[s++]=l&63|128):(o[s++]=l>>12|224,o[s++]=l>>6&63|128,o[s++]=l&63|128);return s-u}})(utf8$2);var pool_1=pool;function pool(n,t,e){var r=e||8192,o=r>>>1,s=null,u=r;return function(c){if(c<1||c>o)return n(c);u+c>r&&(s=n(r),u=0);var f=t.call(s,u,u+=c);return u&7&&(u=(u|7)+1),f}}var longbits,hasRequiredLongbits;function requireLongbits(){if(hasRequiredLongbits)return longbits;hasRequiredLongbits=1,longbits=t;var n=requireMinimal();function t(s,u){this.lo=s>>>0,this.hi=u>>>0}var e=t.zero=new t(0,0);e.toNumber=function(){return 0},e.zzEncode=e.zzDecode=function(){return this},e.length=function(){return 1};var r=t.zeroHash="\0\0\0\0\0\0\0\0";t.fromNumber=function(u){if(u===0)return e;var l=u<0;l&&(u=-u);var c=u>>>0,f=(u-c)/4294967296>>>0;return l&&(f=~f>>>0,c=~c>>>0,++c>4294967295&&(c=0,++f>4294967295&&(f=0))),new t(c,f)},t.from=function(u){if(typeof u=="number")return t.fromNumber(u);if(n.isString(u))if(n.Long)u=n.Long.fromString(u);else return t.fromNumber(parseInt(u,10));return u.low||u.high?new t(u.low>>>0,u.high>>>0):e},t.prototype.toNumber=function(u){if(!u&&this.hi>>>31){var l=~this.lo+1>>>0,c=~this.hi>>>0;return l||(c=c+1>>>0),-(l+c*4294967296)}return this.lo+this.hi*4294967296},t.prototype.toLong=function(u){return n.Long?new n.Long(this.lo|0,this.hi|0,!!u):{low:this.lo|0,high:this.hi|0,unsigned:!!u}};var o=String.prototype.charCodeAt;return t.fromHash=function(u){return u===r?e:new t((o.call(u,0)|o.call(u,1)<<8|o.call(u,2)<<16|o.call(u,3)<<24)>>>0,(o.call(u,4)|o.call(u,5)<<8|o.call(u,6)<<16|o.call(u,7)<<24)>>>0)},t.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},t.prototype.zzEncode=function(){var u=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^u)>>>0,this.lo=(this.lo<<1^u)>>>0,this},t.prototype.zzDecode=function(){var u=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^u)>>>0,this.hi=(this.hi>>>1^u)>>>0,this},t.prototype.length=function(){var u=this.lo,l=(this.lo>>>28|this.hi<<4)>>>0,c=this.hi>>>24;return c===0?l===0?u<16384?u<128?1:2:u<2097152?3:4:l<16384?l<128?5:6:l<2097152?7:8:c<128?9:10},longbits}var hasRequiredMinimal;function requireMinimal(){return hasRequiredMinimal||(hasRequiredMinimal=1,function(n){var t=n;t.asPromise=aspromise,t.base64=base64$1,t.EventEmitter=eventemitter,t.float=float,t.inquire=inquire_1,t.utf8=utf8$2,t.pool=pool_1,t.LongBits=requireLongbits(),t.isNode=!!(typeof commonjsGlobal!="undefined"&&commonjsGlobal&&commonjsGlobal.process&&commonjsGlobal.process.versions&&commonjsGlobal.process.versions.node),t.global=t.isNode&&commonjsGlobal||typeof window!="undefined"&&window||typeof self!="undefined"&&self||commonjsGlobal,t.emptyArray=Object.freeze?Object.freeze([]):[],t.emptyObject=Object.freeze?Object.freeze({}):{},t.isInteger=Number.isInteger||function(s){return typeof s=="number"&&isFinite(s)&&Math.floor(s)===s},t.isString=function(s){return typeof s=="string"||s instanceof String},t.isObject=function(s){return s&&typeof s=="object"},t.isset=t.isSet=function(s,u){var l=s[u];return l!=null&&s.hasOwnProperty(u)?typeof l!="object"||(Array.isArray(l)?l.length:Object.keys(l).length)>0:!1},t.Buffer=function(){try{var o=t.inquire("buffer").Buffer;return o.prototype.utf8Write?o:null}catch(s){return null}}(),t._Buffer_from=null,t._Buffer_allocUnsafe=null,t.newBuffer=function(s){return typeof s=="number"?t.Buffer?t._Buffer_allocUnsafe(s):new t.Array(s):t.Buffer?t._Buffer_from(s):typeof Uint8Array=="undefined"?s:new Uint8Array(s)},t.Array=typeof Uint8Array!="undefined"?Uint8Array:Array,t.Long=t.global.dcodeIO&&t.global.dcodeIO.Long||t.global.Long||t.inquire("long"),t.key2Re=/^true|false|0|1$/,t.key32Re=/^-?(?:0|[1-9][0-9]*)$/,t.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,t.longToHash=function(s){return s?t.LongBits.from(s).toHash():t.LongBits.zeroHash},t.longFromHash=function(s,u){var l=t.LongBits.fromHash(s);return t.Long?t.Long.fromBits(l.lo,l.hi,u):l.toNumber(!!u)};function e(o,s,u){for(var l=Object.keys(s),c=0;c<l.length;++c)(o[l[c]]===void 0||!u)&&(o[l[c]]=s[l[c]]);return o}t.merge=e,t.lcFirst=function(s){return s.charAt(0).toLowerCase()+s.substring(1)};function r(o){function s(u,l){if(!(this instanceof s))return new s(u,l);Object.defineProperty(this,"message",{get:function(){return u}}),Error.captureStackTrace?Error.captureStackTrace(this,s):Object.defineProperty(this,"stack",{value:new Error().stack||""}),l&&e(this,l)}return s.prototype=Object.create(Error.prototype,{constructor:{value:s,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return o},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),s}t.newError=r,t.ProtocolError=r("ProtocolError"),t.oneOfGetter=function(s){for(var u={},l=0;l<s.length;++l)u[s[l]]=1;return function(){for(var c=Object.keys(this),f=c.length-1;f>-1;--f)if(u[c[f]]===1&&this[c[f]]!==void 0&&this[c[f]]!==null)return c[f]}},t.oneOfSetter=function(s){return function(u){for(var l=0;l<s.length;++l)s[l]!==u&&delete this[s[l]]}},t.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},t._configure=function(){var o=t.Buffer;if(!o){t._Buffer_from=t._Buffer_allocUnsafe=null;return}t._Buffer_from=o.from!==Uint8Array.from&&o.from||function(u,l){return new o(u,l)},t._Buffer_allocUnsafe=o.allocUnsafe||function(u){return new o(u)}}}(minimal$1)),minimal$1}var writer=Writer$1,util$4=requireMinimal(),BufferWriter$1,LongBits$1=util$4.LongBits,base64=util$4.base64,utf8$1=util$4.utf8;function Op(n,t,e){this.fn=n,this.len=t,this.next=void 0,this.val=e}function noop(){}function State(n){this.head=n.head,this.tail=n.tail,this.len=n.len,this.next=n.states}function Writer$1(){this.len=0,this.head=new Op(noop,0,0),this.tail=this.head,this.states=null}var create$1=function n(){return util$4.Buffer?function(){return(Writer$1.create=function(){return new BufferWriter$1})()}:function(){return new Writer$1}};Writer$1.create=create$1();Writer$1.alloc=function n(t){return new util$4.Array(t)};util$4.Array!==Array&&(Writer$1.alloc=util$4.pool(Writer$1.alloc,util$4.Array.prototype.subarray));Writer$1.prototype._push=function n(t,e,r){return this.tail=this.tail.next=new Op(t,e,r),this.len+=e,this};function writeByte(n,t,e){t[e]=n&255}function writeVarint32(n,t,e){for(;n>127;)t[e++]=n&127|128,n>>>=7;t[e]=n}function VarintOp(n,t){this.len=n,this.next=void 0,this.val=t}VarintOp.prototype=Object.create(Op.prototype);VarintOp.prototype.fn=writeVarint32;Writer$1.prototype.uint32=function n(t){return this.len+=(this.tail=this.tail.next=new VarintOp((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};Writer$1.prototype.int32=function n(t){return t<0?this._push(writeVarint64,10,LongBits$1.fromNumber(t)):this.uint32(t)};Writer$1.prototype.sint32=function n(t){return this.uint32((t<<1^t>>31)>>>0)};function writeVarint64(n,t,e){for(;n.hi;)t[e++]=n.lo&127|128,n.lo=(n.lo>>>7|n.hi<<25)>>>0,n.hi>>>=7;for(;n.lo>127;)t[e++]=n.lo&127|128,n.lo=n.lo>>>7;t[e++]=n.lo}Writer$1.prototype.uint64=function n(t){var e=LongBits$1.from(t);return this._push(writeVarint64,e.length(),e)};Writer$1.prototype.int64=Writer$1.prototype.uint64;Writer$1.prototype.sint64=function n(t){var e=LongBits$1.from(t).zzEncode();return this._push(writeVarint64,e.length(),e)};Writer$1.prototype.bool=function n(t){return this._push(writeByte,1,t?1:0)};function writeFixed32(n,t,e){t[e]=n&255,t[e+1]=n>>>8&255,t[e+2]=n>>>16&255,t[e+3]=n>>>24}Writer$1.prototype.fixed32=function n(t){return this._push(writeFixed32,4,t>>>0)};Writer$1.prototype.sfixed32=Writer$1.prototype.fixed32;Writer$1.prototype.fixed64=function n(t){var e=LongBits$1.from(t);return this._push(writeFixed32,4,e.lo)._push(writeFixed32,4,e.hi)};Writer$1.prototype.sfixed64=Writer$1.prototype.fixed64;Writer$1.prototype.float=function n(t){return this._push(util$4.float.writeFloatLE,4,t)};Writer$1.prototype.double=function n(t){return this._push(util$4.float.writeDoubleLE,8,t)};var writeBytes=util$4.Array.prototype.set?function n(t,e,r){e.set(t,r)}:function n(t,e,r){for(var o=0;o<t.length;++o)e[r+o]=t[o]};Writer$1.prototype.bytes=function n(t){var e=t.length>>>0;if(!e)return this._push(writeByte,1,0);if(util$4.isString(t)){var r=Writer$1.alloc(e=base64.length(t));base64.decode(t,r,0),t=r}return this.uint32(e)._push(writeBytes,e,t)};Writer$1.prototype.string=function n(t){var e=utf8$1.length(t);return e?this.uint32(e)._push(utf8$1.write,e,t):this._push(writeByte,1,0)};Writer$1.prototype.fork=function n(){return this.states=new State(this),this.head=this.tail=new Op(noop,0,0),this.len=0,this};Writer$1.prototype.reset=function n(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Op(noop,0,0),this.len=0),this};Writer$1.prototype.ldelim=function n(){var t=this.head,e=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=t.next,this.tail=e,this.len+=r),this};Writer$1.prototype.finish=function n(){for(var t=this.head.next,e=this.constructor.alloc(this.len),r=0;t;)t.fn(t.val,e,r),r+=t.len,t=t.next;return e};Writer$1._configure=function(n){BufferWriter$1=n,Writer$1.create=create$1(),BufferWriter$1._configure()};var writer_buffer=BufferWriter,Writer=writer;(BufferWriter.prototype=Object.create(Writer.prototype)).constructor=BufferWriter;var util$3=requireMinimal();function BufferWriter(){Writer.call(this)}BufferWriter._configure=function(){BufferWriter.alloc=util$3._Buffer_allocUnsafe,BufferWriter.writeBytesBuffer=util$3.Buffer&&util$3.Buffer.prototype instanceof Uint8Array&&util$3.Buffer.prototype.set.name==="set"?function(t,e,r){e.set(t,r)}:function(t,e,r){if(t.copy)t.copy(e,r,0,t.length);else for(var o=0;o<t.length;)e[r++]=t[o++]}};BufferWriter.prototype.bytes=function n(t){util$3.isString(t)&&(t=util$3._Buffer_from(t,"base64"));var e=t.length>>>0;return this.uint32(e),e&&this._push(BufferWriter.writeBytesBuffer,e,t),this};function writeStringBuffer(n,t,e){n.length<40?util$3.utf8.write(n,t,e):t.utf8Write?t.utf8Write(n,e):t.write(n,e)}BufferWriter.prototype.string=function n(t){var e=util$3.Buffer.byteLength(t);return this.uint32(e),e&&this._push(writeStringBuffer,e,t),this};BufferWriter._configure();var reader=Reader$1,util$2=requireMinimal(),BufferReader$1,LongBits=util$2.LongBits,utf8=util$2.utf8;function indexOutOfRange(n,t){return RangeError("index out of range: "+n.pos+" + "+(t||1)+" > "+n.len)}function Reader$1(n){this.buf=n,this.pos=0,this.len=n.length}var create_array=typeof Uint8Array!="undefined"?function n(t){if(t instanceof Uint8Array||Array.isArray(t))return new Reader$1(t);throw Error("illegal buffer")}:function n(t){if(Array.isArray(t))return new Reader$1(t);throw Error("illegal buffer")},create=function n(){return util$2.Buffer?function(e){return(Reader$1.create=function(o){return util$2.Buffer.isBuffer(o)?new BufferReader$1(o):create_array(o)})(e)}:create_array};Reader$1.create=create();Reader$1.prototype._slice=util$2.Array.prototype.subarray||util$2.Array.prototype.slice;Reader$1.prototype.uint32=function n(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,indexOutOfRange(this,10);return t}}();Reader$1.prototype.int32=function n(){return this.uint32()|0};Reader$1.prototype.sint32=function n(){var t=this.uint32();return t>>>1^-(t&1)|0};function readLongVarint(){var n=new LongBits(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(n.lo=(n.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return n;if(n.lo=(n.lo|(this.buf[this.pos]&127)<<28)>>>0,n.hi=(n.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return n;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw indexOutOfRange(this);if(n.lo=(n.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return n}return n.lo=(n.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,n}if(this.len-this.pos>4){for(;t<5;++t)if(n.hi=(n.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return n}else for(;t<5;++t){if(this.pos>=this.len)throw indexOutOfRange(this);if(n.hi=(n.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return n}throw Error("invalid varint encoding")}Reader$1.prototype.bool=function n(){return this.uint32()!==0};function readFixed32_end(n,t){return(n[t-4]|n[t-3]<<8|n[t-2]<<16|n[t-1]<<24)>>>0}Reader$1.prototype.fixed32=function n(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)};Reader$1.prototype.sfixed32=function n(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)|0};function readFixed64(){if(this.pos+8>this.len)throw indexOutOfRange(this,8);return new LongBits(readFixed32_end(this.buf,this.pos+=4),readFixed32_end(this.buf,this.pos+=4))}Reader$1.prototype.float=function n(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);var t=util$2.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};Reader$1.prototype.double=function n(){if(this.pos+8>this.len)throw indexOutOfRange(this,4);var t=util$2.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};Reader$1.prototype.bytes=function n(){var t=this.uint32(),e=this.pos,r=this.pos+t;if(r>this.len)throw indexOutOfRange(this,t);if(this.pos+=t,Array.isArray(this.buf))return this.buf.slice(e,r);if(e===r){var o=util$2.Buffer;return o?o.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,e,r)};Reader$1.prototype.string=function n(){var t=this.bytes();return utf8.read(t,0,t.length)};Reader$1.prototype.skip=function n(t){if(typeof t=="number"){if(this.pos+t>this.len)throw indexOutOfRange(this,t);this.pos+=t}else do if(this.pos>=this.len)throw indexOutOfRange(this);while(this.buf[this.pos++]&128);return this};Reader$1.prototype.skipType=function(n){switch(n){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(n=this.uint32()&7)!==4;)this.skipType(n);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+n+" at offset "+this.pos)}return this};Reader$1._configure=function(n){BufferReader$1=n,Reader$1.create=create(),BufferReader$1._configure();var t=util$2.Long?"toLong":"toNumber";util$2.merge(Reader$1.prototype,{int64:function(){return readLongVarint.call(this)[t](!1)},uint64:function(){return readLongVarint.call(this)[t](!0)},sint64:function(){return readLongVarint.call(this).zzDecode()[t](!1)},fixed64:function(){return readFixed64.call(this)[t](!0)},sfixed64:function(){return readFixed64.call(this)[t](!1)}})};var reader_buffer=BufferReader,Reader=reader;(BufferReader.prototype=Object.create(Reader.prototype)).constructor=BufferReader;var util$1=requireMinimal();function BufferReader(n){Reader.call(this,n)}BufferReader._configure=function(){util$1.Buffer&&(BufferReader.prototype._slice=util$1.Buffer.prototype.slice)};BufferReader.prototype.string=function n(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};BufferReader._configure();var rpc={},service=Service,util=requireMinimal();(Service.prototype=Object.create(util.EventEmitter.prototype)).constructor=Service;function Service(n,t,e){if(typeof n!="function")throw TypeError("rpcImpl must be a function");util.EventEmitter.call(this),this.rpcImpl=n,this.requestDelimited=!!t,this.responseDelimited=!!e}Service.prototype.rpcCall=function n(t,e,r,o,s){if(!o)throw TypeError("request must be specified");var u=this;if(!s)return util.asPromise(n,u,t,e,r,o);if(!u.rpcImpl){setTimeout(function(){s(Error("already ended"))},0);return}try{return u.rpcImpl(t,e[u.requestDelimited?"encodeDelimited":"encode"](o).finish(),function(c,f){if(c)return u.emit("error",c,t),s(c);if(f===null){u.end(!0);return}if(!(f instanceof r))try{f=r[u.responseDelimited?"decodeDelimited":"decode"](f)}catch(d){return u.emit("error",d,t),s(d)}return u.emit("data",f,t),s(null,f)})}catch(l){u.emit("error",l,t),setTimeout(function(){s(l)},0);return}};Service.prototype.end=function n(t){return this.rpcImpl&&(t||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this};(function(n){var t=n;t.Service=service})(rpc);var roots={};(function(n){var t=n;t.build="minimal",t.Writer=writer,t.BufferWriter=writer_buffer,t.Reader=reader,t.BufferReader=reader_buffer,t.util=requireMinimal(),t.rpc=rpc,t.roots=roots,t.configure=e;function e(){t.util._configure(),t.Writer._configure(t.BufferWriter),t.Reader._configure(t.BufferReader)}e()})(indexMinimal);var minimal=indexMinimal;const $Reader$1=minimal.Reader,$util$1=minimal.util,$root$1=minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/pbm.proto"]||(minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/pbm.proto"]={}),Model$2=$root$1.Model=(()=>{function n(t){if(this.chunks=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.chunks=$util$1.emptyArray,n.prototype.createAt=$util$1.Long?$util$1.Long.fromBits(0,0,!0):0,n.prototype.description="",n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Model;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.chunks&&s.chunks.length||(s.chunks=[]),s.chunks.push($root$1.Chunk.decode(e,e.uint32()));break}case 2:{s.createAt=e.uint64();break}case 3:{s.description=e.string();break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Model"},n})();$root$1.Chunk=(()=>{function n(t){if(t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.vertices=null,n.prototype.faces=null,n.prototype.name="",n.prototype.texture="",n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Chunk;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.vertices=$root$1.Vertices.decode(e,e.uint32());break}case 2:{s.faces=$root$1.Faces.decode(e,e.uint32());break}case 3:{s.name=e.string();break}case 4:{s.texture=e.string();break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("vertices"))throw $util$1.ProtocolError("missing required 'vertices'",{instance:s});if(!s.hasOwnProperty("faces"))throw $util$1.ProtocolError("missing required 'faces'",{instance:s});if(!s.hasOwnProperty("name"))throw $util$1.ProtocolError("missing required 'name'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Chunk"},n})();$root$1.Vertices=(()=>{function n(t){if(this.xyz=[],this.uvs=[],this.marks=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.xyz=$util$1.emptyArray,n.prototype.uvs=$util$1.emptyArray,n.prototype.marks=$util$1.emptyArray,n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Vertices;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.xyz&&s.xyz.length||(s.xyz=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.xyz.push(e.float())}else s.xyz.push(e.float());break}case 2:{if(s.uvs&&s.uvs.length||(s.uvs=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.uvs.push(e.float())}else s.uvs.push(e.float());break}case 3:{if(s.marks&&s.marks.length||(s.marks=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.marks.push(e.int32())}else s.marks.push(e.int32());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Vertices"},n})();$root$1.Faces=(()=>{function n(t){if(this.indices=[],this.normals=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.indices=$util$1.emptyArray,n.prototype.normals=$util$1.emptyArray,n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Faces;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.indices&&s.indices.length||(s.indices=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.indices.push(e.uint32())}else s.indices.push(e.uint32());break}case 2:{if(s.normals&&s.normals.length||(s.normals=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.normals.push(e.float())}else s.normals.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Faces"},n})();$root$1.VertexMark=(()=>{const n={},t=Object.create(n);return t[n[0]="VERTEX_MARK_UNSPECIFIED"]=0,t[n[1]="VERTEX_MARK_ROOF"]=1,t})();function loadPbm(n,t){var e,r,o,s;t===void 0&&(t={});var u=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),l={byteLength:0},c=autoRestImageOptionsByTextureLength((r=t.textureOptions)!==null&&r!==void 0?r:{},(s=(o=t.textureArray)===null||o===void 0?void 0:o.length)!==null&&s!==void 0?s:0),f={};if(t.textureArray)for(var d=0,p=t.textureArray;d<p.length;d++){var v=p[d];f[v]=loadTexture$1(v,c,u)}return Promise.resolve().then(function(){return u.ajax(n,{responseType:"arraybuffer"})}).then(function(A){return l.byteLength=A.body.byteLength,delay(function(){var g=new Uint8Array(A.body);return Model$2.decode(g)})}).then(function(A){return delay(function(){var g,h,y;return parse$4(A,(g=t.light)!==null&&g!==void 0?g:!1,(h=t.textureBaseUri)!==null&&h!==void 0?h:function(){var m=n.lastIndexOf("/");if(m>=0){var E=n.slice(0,m)+"/";return/\/model\/$/.test(E)&&(E=E.replace(/\/model\/$/,"/materials/")),E}return""}(),((y=t.textureArray)!==null&&y!==void 0?y:[]).slice(),c,f,u)})}).then(function(A){var g=new THREE__namespace.Group;g.matrixAutoUpdate=!1,g.matrix.compose(g.position,g.quaternion,g.scale),g.name=n;for(var h=0,y=A.objects;h<y.length;h++){var m=y[h];g.add(m)}return{type:"pbm",upAxis:"Z",uri:n,byteLength:l.byteLength,memoryUsage:getMemoryUsage(g),scene:g,textures:A.textures,dispose:function(){return A.dispose()}}})}function parseFloorName(n){var t=n.match(/(group|floor)-?(\d+)/);return t?parseInt(t[2],10):0}function parseChunkName(n){var t=n.match(/(chunk)-?(\d+)/);return t?parseInt(t[2],10):0}function parseSubName(n){var t=n.match(/(sub)-?(\d+)/);return t?parseInt(t[2],10):0}function chunkOrder(n){var t=parseFloorName(n.name),e=parseChunkName(n.name),r=parseSubName(n.name);return t*1e6+e*1e3+r}function parsePBMModel(n){for(var t,e,r,o=typeof n.createAt=="number"?n.createAt:0,s=(t=n.description)!==null&&t!==void 0?t:"",u=[],l=!0,c=!0,f=0,d=n.chunks;f<d.length;f++){var p=d[f];if(!p.vertices.marks||p.vertices.marks.length===0){c=!1;break}}for(var v=0,A=n.chunks;v<A.length;v++){var p=A[v];if(!p.faces.normals||p.faces.normals.length===0){l=!1;break}}for(var g=n.chunks.sort(function(fe,ne){return chunkOrder(fe)-chunkOrder(ne)}),h=[],y=0,m=g;y<m.length;y++){var p=m[y],E=parseFloorName(p.name);h[E]||(h[E]=[]),h[E].push(p)}for(var b=0;b<h.length;b++){var T=h[b];if(T)if(l){for(var _=0,R=0;R<T.length;R++){var p=T[R];_+=p.faces.indices.length}for(var S=new Float32Array(_*3),C=new Float32Array(_*2),B=new Float32Array(_*3),L=c?new Float32Array(_):void 0,M=[],w=[1/0,1/0,1/0,-1/0,-1/0,-1/0],H=0,O=0;O<T.length;O++){for(var I=[1/0,1/0,1/0,-1/0,-1/0,-1/0],p=T[O],N=p.vertices.xyz,k=p.vertices.uvs,U=p.faces.indices,D=p.faces.normals,q=p.vertices.marks,z=U.length,R=0;R<z;R++){var Q=U[R],G=S[H*3+R*3]=N[Q*3],X=S[H*3+R*3+1]=N[Q*3+1],$=S[H*3+R*3+2]=N[Q*3+2];L&&(L[H+R]=q[Q]),C[H*2+R*2]=k[Q*2],C[H*2+R*2+1]=k[Q*2+1];var W=Math.floor(R/3)*3;B[H*3+R*3]=D[W],B[H*3+R*3+1]=D[W+1],B[H*3+R*3+2]=D[W+2],G<I[0]&&(I[0]=G),X<I[1]&&(I[1]=X),$<I[2]&&(I[2]=$),G>I[3]&&(I[3]=G),X>I[4]&&(I[4]=X),$>I[5]&&(I[5]=$)}I[0]<w[0]&&(w[0]=I[0]),I[1]<w[1]&&(w[1]=I[1]),I[2]<w[2]&&(w[2]=I[2]),I[3]>w[3]&&(w[3]=I[3]),I[4]>w[4]&&(w[4]=I[4]),I[5]>w[5]&&(w[5]=I[5]),M.push({materialIndex:O,name:p.name,chunkName:parseChunkName(p.name),start:H,count:p.faces.indices.length,texture:(e=p.texture)!==null&&e!==void 0?e:void 0}),H+=z}var oe={createAt:o,description:s,vertices:S,uvs:C,normals:B,masks:L,indices:null,floorIndex:b,groups:M,extents:w};u.push(oe)}else{for(var _=0,ae=0,R=0;R<T.length;R++){var p=T[R];ae+=p.vertices.xyz.length/3,_+=p.faces.indices.length}for(var S=new Float32Array(ae*3),C=new Float32Array(ae*2),B=void 0,re=new Float32Array(ae),j=new Uint32Array(_),L=c?new Float32Array(_):void 0,M=[],w=[1/0,1/0,1/0,-1/0,-1/0,-1/0],se=0,H=0,O=0;O<T.length;O++){for(var I=[1/0,1/0,1/0,-1/0,-1/0,-1/0],p=T[O],N=p.vertices.xyz,ie=p.vertices.marks,k=p.vertices.uvs,U=p.faces.indices,ue=N.length/3,z=U.length,R=0;R<ue;R++){var G=S[H*3+R*3]=N[R*3],X=S[H*3+R*3+1]=N[R*3+1],$=S[H*3+R*3+2]=N[R*3+2];L&&(L[H+R]=ie[R]),C[H*2+R*2]=k[R*2],C[H*2+R*2+1]=k[R*2+1],re[H+R]=b,G<I[0]&&(I[0]=G),X<I[1]&&(I[1]=X),$<I[2]&&(I[2]=$),G>I[3]&&(I[3]=G),X>I[4]&&(I[4]=X),$>I[5]&&(I[5]=$)}I[0]<w[0]&&(w[0]=I[0]),I[1]<w[1]&&(w[1]=I[1]),I[2]<w[2]&&(w[2]=I[2]),I[3]>w[3]&&(w[3]=I[3]),I[4]>w[4]&&(w[4]=I[4]),I[5]>w[5]&&(w[5]=I[5]);for(var R=0;R<z;R++)j[se+R]=H+U[R];M.push({materialIndex:O,name:p.name,chunkName:parseChunkName(p.name),start:se,count:p.faces.indices.length,texture:(r=p.texture)!==null&&r!==void 0?r:void 0}),H+=ue,se+=z}var oe={createAt:o,description:s,vertices:S,uvs:C,normals:B,masks:L,indices:j,floorIndex:b,groups:M,extents:w};u.push(oe)}}return u}function loadTexture$1(n,t,e){var r=__assign({key:"texture.pbm"},pick(t,["format","quality","size","sharpen","mappings"])),o=new TextureLoader,s=o.loadTexture(n,{imageURL:{transform:t.transform,options:r},encoding:THREE__namespace.sRGBEncoding,wrapS:THREE__namespace.ClampToEdgeWrapping,wrapT:THREE__namespace.ClampToEdgeWrapping,minFilter:THREE__namespace.LinearFilter,maxSize:typeof r.size=="number"?new THREE__namespace.Vector2(r.size,r.size):void 0,fetcher:e}).then(function(u){var l=u.body;return l.needsUpdate=!0,l});return Object.assign(s,{url:n,textureOptions:t})}function parse$4(n,t,e,r,o,s,u){s===void 0&&(s={});for(var l=parsePBMModel(n),c=0,f="",d=[],p={},v=new Set,A=0,g=0,h=l;g<h.length;g++){var y=h[g],m=y.createAt,E=y.description,b=y.vertices,T=y.masks,_=y.uvs,R=y.normals,S=y.indices,C=y.floorIndex,B=y.groups,L=y.extents,M=new THREE__namespace.Box3;M.min.x=L[0],M.min.y=L[1],M.min.z=L[2],M.max.x=L[3],M.max.y=L[4],M.max.z=L[5];var w=new THREE__namespace.BufferGeometry;w.setAttribute("position",new THREE__namespace.BufferAttribute(b,3)),w.setAttribute("uv",new THREE__namespace.BufferAttribute(_,2)),R&&w.setAttribute("normal",new THREE__namespace.BufferAttribute(R,3)),T&&w.setAttribute("mask",new THREE__namespace.BufferAttribute(T,1)),S&&w.setIndex(new THREE__namespace.BufferAttribute(S,1)),w.boundingBox=M,w.boundingSphere=M.getBoundingSphere(new THREE__namespace.Sphere);for(var H=0,O=B;H<O.length;H++){var I=O[H];w.addGroup(I.start,I.count,I.materialIndex)}v.add(w);for(var N=[],k=0,U=B;k<U.length;k++){var I=U[k],D=r[I.chunkName]||(I.texture?pathJoin(e||"",I.texture):void 0),q=new PBMMeshMaterial(t?"phong":"basic");q.floorIndex=C,w.attributes.normal===void 0&&(q.flatShading=!0),w.attributes.mask&&(q.defines.USE_VERTEX_MARK=!0),N.push(q),D?(A++,p[D]?p[D].push(q):p[D]=[q]):q.color=new THREE__namespace.Color(16777215),v.add(q),q.refreshUniforms()}var z=new PBMMesh(w,N);z.name="model_floor_"+C,z.userData.createAt=m,z.userData.description=E,z.matrix.compose(z.position,z.quaternion,z.scale),z.matrixAutoUpdate=!1,z.frustumCulled=!1,c=m,f=E,d.push(z)}var Q=function(G){G=autoRestImageOptionsByTextureLength(G,A);for(var X=[],$=function(re){var j=null;re in s&&(j=s[re]),j||(j=loadTexture$1(re,G,u)),X.push(j.then(function(se){for(var ie=0,ue=p[re];ie<ue.length;ie++){var fe=ue[ie];fe.map&&(v.delete(fe.map),fe.map.dispose()),fe.map=se,fe.refreshUniforms(),v.add(se)}return se}).catch(function(){for(var se=0,ie=p[re];se<ie.length;se++){var ue=ie[se];ue.map&&(v.delete(ue.map),ue.map.dispose()),ue.map=null,ue.color=new THREE__namespace.Color(16777215),ue.refreshUniforms()}return null}))},W=0,oe=Object.keys(p);W<oe.length;W++){var ae=oe[W];$(ae)}for(var ae in s)delete s[ae];return Promise.all(X).then(function(re){return re.filter(function(j){return j})})};return Q(o).then(function(G){return{createAt:c,description:f,objects:d,textures:G,dispose:function(){v.forEach(function(X){X.dispose()}),v.clear()}}})}function autoRestImageOptionsByTextureLength(n,t){return n=Object.assign({},n),n.autoResize!==!1&&(t>96?n.size=Math.min(n.size||1/0,100):t>48?n.size=Math.min(n.size||1/0,200):t>24?n.size=Math.min(n.size||1/0,400):t>22?n.size=Math.min(n.size||1/0,800):t>5&&(n.size=Math.min(n.size||1/0,1024))),n}function loadAt3d(n,t){var e,r,o,s;t===void 0&&(t={});var u=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),l={byteLength:0},c=autoRestImageOptionsByTextureLength((r=t.textureOptions)!==null&&r!==void 0?r:{},(s=(o=t.textureArray)===null||o===void 0?void 0:o.length)!==null&&s!==void 0?s:0),f={};if(t.textureArray)for(var d=0,p=t.textureArray;d<p.length;d++){var v=p[d];f[v]=loadTexture$1(v,c,u)}return Promise.resolve().then(function(){return u.ajax(n,{responseType:"arraybuffer"})}).then(function(A){return lzma(A.body)}).then(function(A){return delay(function(){for(var g,h={chunks:[],createAt:void 0,description:void 0},y=0,m=A;y<m.length;y++){var E=m[y],b=Model$2.decode(E);b.chunks.length&&((g=h.chunks).push.apply(g,b.chunks),h.createAt=b.createAt,h.description=b.description)}return h})}).then(function(A){return delay(function(){var g,h,y,m;return parse$4(A,(g=t.light)!==null&&g!==void 0?g:!1,(h=t.textureBaseUri)!==null&&h!==void 0?h:function(){var E=n.lastIndexOf("/");if(E>=0){var b=n.slice(0,E)+"/";return/\/model\/$/.test(b)&&(b=b.replace(/\/model\/$/,"/materials/")),b}return""}(),((y=t.textureArray)!==null&&y!==void 0?y:[]).slice(),(m=t.textureOptions)!==null&&m!==void 0?m:{},f,u)})}).then(function(A){var g=new THREE__namespace.Group;g.name=n;for(var h=0,y=A.objects;h<y.length;h++){var m=y[h];g.add(m)}return{type:"at3d",upAxis:"Z",uri:n,byteLength:l.byteLength,memoryUsage:getMemoryUsage(g),scene:g,textures:A.textures,dispose:function(){return A.dispose()}}})}const $Reader=minimal.Reader,$util=minimal.util,$root=minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/dome.proto"]||(minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/dome.proto"]={}),Model$1=$root.Model=(()=>{function n(t){if(this.meshes=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.meshes=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Model;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.meshes&&s.meshes.length||(s.meshes=[]),s.meshes.push($root.Mesh.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Model"},n})();$root.Mesh=(()=>{function n(t){if(this.chunks=[],this.matrix=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.name="",n.prototype.chunks=$util.emptyArray,n.prototype.matrix=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Mesh;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.name=e.string();break}case 2:{s.chunks&&s.chunks.length||(s.chunks=[]),s.chunks.push($root.Chunk.decode(e,e.uint32()));break}case 3:{s.matrix&&s.matrix.length||(s.matrix=[]),s.matrix.push($root.Matrix.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("name"))throw $util.ProtocolError("missing required 'name'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Mesh"},n})();$root.Matrix=(()=>{function n(t){if(this.elements=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.elements=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Matrix;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.elements&&s.elements.length||(s.elements=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.elements.push(e.float())}else s.elements.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Matrix"},n})();$root.Chunk=(()=>{function n(t){if(this.material=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.geometry=null,n.prototype.material=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Chunk;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 2:{s.geometry=$root.Geometry.decode(e,e.uint32());break}case 3:{s.material&&s.material.length||(s.material=[]),s.material.push($root.Material.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("geometry"))throw $util.ProtocolError("missing required 'geometry'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Chunk"},n})();$root.Geometry=(()=>{function n(t){if(this.groups=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.position=null,n.prototype.uv=null,n.prototype.uv2=null,n.prototype.normal=null,n.prototype.groups=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Geometry;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.position=$root.Position.decode(e,e.uint32());break}case 2:{s.uv=$root.UV.decode(e,e.uint32());break}case 3:{s.uv2=$root.UV.decode(e,e.uint32());break}case 4:{s.normal=$root.Normal.decode(e,e.uint32());break}case 5:{s.groups&&s.groups.length||(s.groups=[]),s.groups.push($root.Group.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("position"))throw $util.ProtocolError("missing required 'position'",{instance:s});if(!s.hasOwnProperty("normal"))throw $util.ProtocolError("missing required 'normal'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Geometry"},n})();$root.Position=(()=>{function n(t){if(this.array=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.array=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Position;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.array&&s.array.length||(s.array=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.array.push(e.float())}else s.array.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Position"},n})();$root.UV=(()=>{function n(t){if(this.array=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.array=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.UV;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.array&&s.array.length||(s.array=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.array.push(e.float())}else s.array.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UV"},n})();$root.Normal=(()=>{function n(t){if(this.array=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.array=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Normal;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.array&&s.array.length||(s.array=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.array.push(e.float())}else s.array.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Normal"},n})();$root.Group=(()=>{function n(t){if(t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.start=0,n.prototype.count=0,n.prototype.materialIndex=0,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Group;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.start=e.uint32();break}case 2:{s.count=e.uint32();break}case 3:{s.materialIndex=e.uint32();break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("start"))throw $util.ProtocolError("missing required 'start'",{instance:s});if(!s.hasOwnProperty("count"))throw $util.ProtocolError("missing required 'count'",{instance:s});if(!s.hasOwnProperty("materialIndex"))throw $util.ProtocolError("missing required 'materialIndex'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Group"},n})();$root.Material=(()=>{function n(t){if(t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.kd=null,n.prototype.ks=null,n.prototype.ke=null,n.prototype.mapkd="",n.prototype.mapks="",n.prototype.mapke="",n.prototype.norm="",n.prototype.mapbump="",n.prototype.bump="",n.prototype.mapd="",n.prototype.ns=0,n.prototype.d=0,n.prototype.tr=0,n.prototype.mapkdrepeat="",n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Material;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.kd=$root.Color.decode(e,e.uint32());break}case 2:{s.ks=$root.Color.decode(e,e.uint32());break}case 3:{s.ke=$root.Color.decode(e,e.uint32());break}case 4:{s.mapkd=e.string();break}case 5:{s.mapks=e.string();break}case 6:{s.mapke=e.string();break}case 7:{s.norm=e.string();break}case 8:{s.mapbump=e.string();break}case 9:{s.bump=e.string();break}case 10:{s.mapd=e.string();break}case 11:{s.ns=e.float();break}case 12:{s.d=e.float();break}case 13:{s.tr=e.float();break}case 14:{s.mapkdrepeat=e.string();break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Material"},n})();$root.Color=(()=>{function n(t){if(this.rgb=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.rgb=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Color;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.rgb&&s.rgb.length||(s.rgb=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.rgb.push(e.float())}else s.rgb.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Color"},n})();var ROTATE_X_MATRIX$5=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadDome(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={byteLength:0};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"})}).then(function(s){var u,l;return o.byteLength=s.body.byteLength,parse$3(new Uint8Array(s.body),(u=t.light)!==null&&u!==void 0?u:!0,t.textureBaseUri||"",(l=t.textureOptions)!==null&&l!==void 0?l:{},r)}).then(function(s){var u=new THREE__namespace.Group;u.matrixAutoUpdate=!1,u.applyMatrix4(ROTATE_X_MATRIX$5),u.matrix.compose(u.position,u.quaternion,u.scale),u.name=n;for(var l=0,c=s.objects;l<c.length;l++){var f=c[l];u.add(f)}return{type:"dome",upAxis:"Z",uri:n,byteLength:o.byteLength,memoryUsage:getMemoryUsage(u),scene:u,textures:s.textures,dispose:function(){return s.dispose()}}})}function flipBufferGeometryNormals(n){for(var t=[0,0,0],e=0;e<n.attributes.normal.array.length/9;e++)t[0]=n.attributes.normal.array[e*9],t[1]=n.attributes.normal.array[e*9+1],t[2]=n.attributes.normal.array[e*9+2],n.attributes.normal.array[e*9]=n.attributes.normal.array[e*9+6],n.attributes.normal.array[e*9+1]=n.attributes.normal.array[e*9+7],n.attributes.normal.array[e*9+2]=n.attributes.normal.array[e*9+8],n.attributes.normal.array[e*9+6]=t[0],n.attributes.normal.array[e*9+7]=t[1],n.attributes.normal.array[e*9+8]=t[2];for(var e=0;e<n.attributes.position.array.length/9;e++)t[0]=n.attributes.position.array[e*9],t[1]=n.attributes.position.array[e*9+1],t[2]=n.attributes.position.array[e*9+2],n.attributes.position.array[e*9]=n.attributes.position.array[e*9+6],n.attributes.position.array[e*9+1]=n.attributes.position.array[e*9+7],n.attributes.position.array[e*9+2]=n.attributes.position.array[e*9+8],n.attributes.position.array[e*9+6]=t[0],n.attributes.position.array[e*9+7]=t[1],n.attributes.position.array[e*9+8]=t[2];for(var e=0;e<n.attributes.uv.array.length/6;e++)t[0]=n.attributes.uv.array[e*6],t[1]=n.attributes.uv.array[e*6+1],n.attributes.uv.array[e*6]=n.attributes.uv.array[e*6+4],n.attributes.uv.array[e*6+1]=n.attributes.uv.array[e*6+5],n.attributes.uv.array[e*6+4]=t[0],n.attributes.uv.array[e*6+5]=t[1];n.attributes.normal.needsUpdate=!0,n.attributes.position.needsUpdate=!0,n.attributes.uv.needsUpdate=!0}function parseGeometry(n){var t=n.position,e=n.normal,r=n.uv,o=n.uv2,s=n.groups,u=new THREE__namespace.BufferGeometry;u.setAttribute("position",new THREE__namespace.BufferAttribute(new Float32Array(t.array),3)),e&&u.setAttribute("normal",new THREE__namespace.BufferAttribute(new Float32Array(e.array),3)),r&&u.setAttribute("uv",new THREE__namespace.BufferAttribute(new Float32Array(r.array),2)),o&&u.setAttribute("uv2",new THREE__namespace.BufferAttribute(new Float32Array(o.array),2));for(var l=0,c=s;l<c.length;l++){var f=c[l];u.addGroup(f.start,f.count,f.materialIndex)}return u}function loadTexture(n,t,e,r,o,s,u){if(u.hasOwnProperty(n))return u[n];n=n.split("?")[0],isAbsoluteURL(n)||(n=pathJoin(t,n)),n=n.replace(/\/\/vrlab-image\d*.ljcdn.com\//,"//vrlab-public.ljcdn.com/"),n.indexOf("//")===0&&(n="https:"+n);var l=__assign({key:"texture.dome",size:64},pick(e,["quality","format","sharpen","mappings"])),c=u[n]=o.loadTexture(n,{imageURL:{transform:e.transform,options:l},wrapS:THREE__namespace.RepeatWrapping,wrapT:THREE__namespace.RepeatWrapping,fetcher:s}).then(function(f){var d=f.body;return r&&d.repeat.copy(r),d.needsUpdate=!0,d.updateMatrix(),d});return c}function parseMaterial(n,t,e,r,o,s,u,l,c){var f=[],d=new PBMMeshMaterial(t?"phong":"basic");if(l.add(d),n.kd&&(d.color=new THREE__namespace.Color().fromArray(n.kd.rgb).convertLinearToSRGB()),n.mapkd){var p=null;if(n.mapkdrepeat){var v=n.mapkdrepeat.split(/\s+/).map(function(y){return Number(y)}),A=v[0],g=v[1];p=new THREE__namespace.Vector2(A,g)}f.push(loadTexture(n.mapkd,e,r,p,o,s,u).then(function(y){y.encoding=THREE__namespace.sRGBEncoding,d.map=y,l.add(y),c.add(y),d.needsUpdate=!0}).catch(noop$1))}if(n.ks&&(d.specular=new THREE__namespace.Color().fromArray(n.ks.rgb).convertLinearToSRGB()),n.mapks&&f.push(loadTexture(n.mapks,e,r,null,o,s,u).then(function(y){d.specularMap=y,l.add(y),c.add(y)}).catch(noop$1)),n.ke&&(d.emissive=new THREE__namespace.Color().fromArray(n.ke.rgb).convertLinearToSRGB()),n.mapke&&f.push(loadTexture(n.mapke,e,r,null,o,s,u).then(function(y){y.encoding=THREE__namespace.sRGBEncoding,d.emissiveMap=y,l.add(y),c.add(y)}).catch(noop$1)),n.norm&&f.push(loadTexture(n.norm,e,r,null,o,s,u).then(function(y){d.normalMap=y,l.add(y),c.add(y)}).catch(noop$1)),n.mapbump&&f.push(loadTexture(n.mapbump,e,r,null,o,s,u).then(function(y){d.bumpMap=y,l.add(y),c.add(y)}).catch(noop$1)),n.bump&&f.push(loadTexture(n.bump,e,r,null,o,s,u).then(function(y){d.bumpMap=y,l.add(y),c.add(y)}).catch(noop$1)),typeof n.ns=="number"&&(d.shininess=n.ns),typeof n.d=="number"){var h=n.d;h>0&&h<1&&(d.opacity=h)}return d.floorIndex=0,d.refreshUniforms(),{material:d,textureReady:Promise.all(f).then(function(){return d.refreshUniforms()}).then(noop$1)}}function fromProtoBuf(n){return Model$1.decode(n).meshes}function parse$3(n,t,e,r,o){for(var s=[],u=[],l=new Set,c=fromProtoBuf(n),f=new TextureLoader,d=new THREE__namespace.Matrix4,p=new THREE__namespace.Vector3,v=new THREE__namespace.Quaternion,A=new THREE__namespace.Vector3,g={},h=new Set,y=0,m=c;y<m.length;y++){var E=m[y],b=E.name,T=E.chunks,_=E.matrix;if(!(b==="Ceiling"||b==="CeilingDrop"))for(var R=0,S=_;R<S.length;R++){var C=S[R];d.elements=C.elements;for(var B=new THREE__namespace.Group,L=0;L<T.length;L++){var M=parseGeometry(T[L].geometry);M.applyMatrix4(d),d.decompose(p,v,A),A.x*A.y*A.z<0&&M.attributes.normal&&M.attributes.position&&M.attributes.uv&&flipBufferGeometryNormals(M),l.add(M);for(var w=[],H=0,O=T[L].material;H<O.length;H++){var I=O[H],N=parseMaterial(I,t,e||"",r,f,o,g,l,h),k=N.material,U=N.textureReady;u.push(U),w.push(k)}var D=new PBMMesh(M,w);D.name="chunk_"+L,D.matrix.compose(D.position,D.quaternion,D.scale),D.matrixAutoUpdate=!1,D.frustumCulled=!1,B.add(D)}B.name=b,s.push(B)}}return Promise.all(u).catch(noop$1).then(function(){return{createAt:0,description:"",objects:s,textures:Array.from(h),dispose:function(){l.forEach(function(q){q.dispose()}),l.clear()}}})}var ROTATE_X_MATRIX$4=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadDomez(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={byteLength:0};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"})}).then(function(s){return o.byteLength=s.body.byteLength,lzma(s.body)}).then(function(s){var u=s.reduce(function(f,d){return f+d.length},0),l=new Uint8Array(u),c=0;return s.forEach(function(f){l.set(f,c),c+=f.length}),l}).then(function(s){var u,l;return parse$3(s,(u=t.light)!==null&&u!==void 0?u:!0,t.textureBaseUri||"",(l=t.textureOptions)!==null&&l!==void 0?l:{},r)}).then(function(s){var u=new THREE__namespace.Group;u.matrixAutoUpdate=!1,u.applyMatrix4(ROTATE_X_MATRIX$4),u.matrix.compose(u.position,u.quaternion,u.scale),u.name=n;for(var l=0,c=s.objects;l<c.length;l++){var f=c[l];u.add(f)}return{type:"domez",upAxis:"Z",uri:n,byteLength:o.byteLength,memoryUsage:getMemoryUsage(u),scene:u,textures:s.textures,dispose:function(){return s.dispose()}}})}var ROTATE_X_MATRIX$3=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadGltf(n,t){var e,r;t===void 0&&(t={});var o=(e=t.upAxis)!==null&&e!==void 0?e:"Y",s=(r=t.fetcher)!==null&&r!==void 0?r:new Fetcher({allowHosts:["*"]}),u=0;return Promise.resolve().then(function(){return s.ajax(n,{responseType:"arraybuffer"}).then(function(l){return u=l.body.byteLength,l.body})}).then(function(l){var c;return parseGltf(l,{copyUV2:!1,resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(c=n.split("?")[1])!==null&&c!==void 0?c:"",jsonModify:function(f){var d;if(f.extensionsUsed=(d=f.extensionsUsed)!==null&&d!==void 0?d:[],typeof t.light=="boolean"){var p="KHR_materials_unlit";if(t.light){var v=f.extensionsUsed.indexOf(p);v>=0&&f.extensionsUsed.splice(v,1)}else{var v=f.extensionsUsed.indexOf(p);v===-1&&f.extensionsUsed.push(p)}}{var p="PBM_mesh",v=f.extensionsUsed.indexOf(p);v===-1&&f.extensionsUsed.push(p)}return f},fetcher:s})}).then(function(l){var c=new THREE__namespace.Matrix4;if(o==="Y"&&c.premultiply(ROTATE_X_MATRIX$3),l.CESIUM_RTC){var f=new THREE__namespace.Matrix4().setPosition(l.CESIUM_RTC.center);c.premultiply(f)}var d=l.scene;return d.applyMatrix4(c),{type:"gltf",upAxis:"Z",uri:n,byteLength:u,memoryUsage:getMemoryUsage(d),scene:d,textures:l.textures,dispose:function(){return l.dispose()}}})}var ROTATE_X_MATRIX$2=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]),scratchColor=new THREE__namespace.Color;function loadPly(n,t){var e,r;t===void 0&&(t={});var o=(e=t.upAxis)!==null&&e!==void 0?e:"Z",s=(r=t.fetcher)!==null&&r!==void 0?r:new Fetcher({allowHosts:["*"]}),u=0;return Promise.resolve().then(function(){return s.ajax(n,{responseType:"arraybuffer"}).then(function(l){return u=l.body.byteLength,l.body})}).then(function(l){var c,f;return parsePly(l,{propertyNameMapping:(c=t.propertyNameMapping)!==null&&c!==void 0?c:{},customPropertyMapping:(f=t.customPropertyMapping)!==null&&f!==void 0?f:{}})}).then(function(l){var c=l.geometry;switch(t.type){case"geometry":{var f=c;return o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,memoryUsage:getGeometryMemoryUsed(f),scene:f,meta:{},textures:[],dispose:function(){c.dispose()}}}case"line":{var d="color"in c.attributes,p=new THREE__namespace.LineBasicMaterial({vertexColors:d}),f=new THREE__namespace.Line(c,p);return f.computeLineDistances(),o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,memoryUsage:getMemoryUsage(f),scene:f,meta:{},textures:[],dispose:function(){c.dispose(),p.dispose()}}}case"pbmMesh":{var v=new PBMMeshMaterial(t.light?"phong":"basic");v.vertexColors="color"in c.attributes;var f=new THREE__namespace.Mesh(c,v);return o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,memoryUsage:getMemoryUsage(f),scene:f,meta:{},textures:[],dispose:function(){c.dispose(),v.dispose()}}}case"pbmPointCloud":{var A=new PBMPointCloudMaterial,f=new PBMPointCloud(c,A);return o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,memoryUsage:getMemoryUsage(f),scene:f,meta:{},textures:[],dispose:function(){c.dispose(),A.dispose()}}}}throw new Error("Invalid Type: ".concat(t.type))})}function parsePly(n,t){var e=new Uint8Array(n),r=extractHeaderText(e),o=r.headerText,s=r.headerLength,u=parseHeader(o,s,t);if(u.format==="ascii"){var l=new TextDecoder().decode(e);return{header:u,geometry:parseASCII(l,u,t)}}else return{header:u,geometry:parseBinary(n,u,t)}}function makePlyElementProperty(n,t){var e={name:"",type:n[0]};return e.type==="list"?(e.name=n[3],e.countType=n[1],e.itemType=n[2]):e.name=n[1],e.name in t.propertyNameMapping&&(e.name=t.propertyNameMapping[e.name]),e}function parseHeader(n,t,e){t===void 0&&(t=0);var r=/^ply([\s\S]*)end_header(\r\n|\r|\n)/,o="",s=r.exec(n);s!==null&&(o=s[1]);for(var u={format:"",version:"",comments:[],elements:[],headerLength:t,objInfo:""},l=o.split(/\r\n|\r|\n/),c=null,f=0;f<l.length;f++){var d=l[f];if(d=d.trim(),d!==""){var p=d.split(/\s+/),v=p.shift();switch(d=p.join(" "),v){case"format":u.format=p[0],u.version=p[1];break;case"comment":u.comments.push(d);break;case"element":c&&u.elements.push(c),c={name:p[0],count:parseInt(p[1]),properties:[]};break;case"property":c&&c.properties.push(makePlyElementProperty(p,e));break;case"obj_info":u.objInfo=d;break;default:console.log("unhandled",v,p)}}}return c&&u.elements.push(c),u}function parseASCIINumber(n,t){switch(t){case"char":case"uchar":case"short":case"ushort":case"int":case"uint":case"int8":case"uint8":case"int16":case"uint16":case"int32":case"uint32":return parseInt(n);case"float":case"double":case"float32":case"float64":return parseFloat(n);default:throw new Error("unspport type: "+t)}}function parseASCIIElement(n,t){for(var e={},r=0;r<n.length;r++){if(t.empty())return null;if(n[r].type==="list"){for(var o=[],s=parseASCIINumber(t.next(),n[r].countType),u=0;u<s;u++){if(t.empty())return null;o.push(parseASCIINumber(t.next(),n[r].itemType))}e[n[r].name]=o}else e[n[r].name]=parseASCIINumber(t.next(),n[r].type)}return e}function createBuffer(n){for(var t={indices:[],vertices:[],normals:[],uvs:[],faceVertexUvs:[],colors:[],faceVertexColors:[]},e=0,r=Object.keys(n.customPropertyMapping);e<r.length;e++){var o=r[e];t[o]=[]}return t}function mapElementAttributes(n){var t=n.map(function(r){return r.name});function e(r){for(var o=0,s=r.length;o<s;o++){var u=r[o];if(t.includes(u))return u}return null}return{attrX:e(["x","px","posx"])||"x",attrY:e(["y","py","posy"])||"y",attrZ:e(["z","pz","posz"])||"z",attrNX:e(["nx","normalx"]),attrNY:e(["ny","normaly"]),attrNZ:e(["nz","normalz"]),attrS:e(["s","u","texture_u","tx"]),attrT:e(["t","v","texture_v","ty"]),attrR:e(["red","diffuse_red","r","diffuse_r"]),attrG:e(["green","diffuse_green","g","diffuse_g"]),attrB:e(["blue","diffuse_blue","b","diffuse_b"])}}function parseASCII(n,t,e){var r=createBuffer(e),o=/end_header\s+(\S[\s\S]*\S|\S)\s*$/,s,u=null;(u=o.exec(n))!==null?s=u[1].split(/\s+/):s=[];var l=new ArrayStream(s);e:for(var c=0;c<t.elements.length;c++)for(var f=t.elements[c],d=mapElementAttributes(f.properties),p=0;p<f.count;p++){var v=parseASCIIElement(f.properties,l);if(!v)break e;handleElement(r,f.name,v,d,e)}return postProcess(r,e)}function postProcess(n,t){var e=new THREE__namespace.BufferGeometry;n.indices.length>0&&e.setIndex(n.indices),e.setAttribute("position",new THREE__namespace.Float32BufferAttribute(n.vertices,3)),n.normals.length>0&&e.setAttribute("normal",new THREE__namespace.Float32BufferAttribute(n.normals,3)),n.uvs.length>0&&e.setAttribute("uv",new THREE__namespace.Float32BufferAttribute(n.uvs,2)),n.colors.length>0&&e.setAttribute("color",new THREE__namespace.Float32BufferAttribute(n.colors,3)),(n.faceVertexUvs.length>0||n.faceVertexColors.length>0)&&(e=e.toNonIndexed(),n.faceVertexUvs.length>0&&e.setAttribute("uv",new THREE__namespace.Float32BufferAttribute(n.faceVertexUvs,2)),n.faceVertexColors.length>0&&e.setAttribute("color",new THREE__namespace.Float32BufferAttribute(n.faceVertexColors,3)));for(var r=0,o=Object.keys(t.customPropertyMapping);r<o.length;r++){var s=o[r];if(n[s].length>0){var u=t.customPropertyMapping[s],l=u.itemType,c=u.itemNames,f=u.normalized,d=c.length,p=void 0;switch(l){case"float32":p=new THREE__namespace.Float32BufferAttribute(n[s],d,f);break;case"uint32":p=new THREE__namespace.Uint32BufferAttribute(n[s],d,f);break;case"int32":p=new THREE__namespace.Int32BufferAttribute(n[s],d,f);break;case"uint16":p=new THREE__namespace.Uint16BufferAttribute(n[s],d,f);break;case"int16":p=new THREE__namespace.Int16BufferAttribute(n[s],d,f);break;case"uint8":p=new THREE__namespace.Uint8BufferAttribute(n[s],d,f);break;case"int8":p=new THREE__namespace.Int8BufferAttribute(n[s],d,f);break;default:p=new THREE__namespace.Float32BufferAttribute(n[s],d,f);break}e.setAttribute(s,p)}}return e.computeBoundingSphere(),e}function handleElement(n,t,e,r,o){if(t==="vertex"){r.attrX!==null&&r.attrY!==null&&r.attrZ!==null&&n.vertices.push(e[r.attrX],e[r.attrY],e[r.attrZ]),r.attrNX!==null&&r.attrNY!==null&&r.attrNZ!==null&&n.normals.push(e[r.attrNX],e[r.attrNY],e[r.attrNZ]),r.attrS!==null&&r.attrT!==null&&n.uvs.push(e[r.attrS],e[r.attrT]),r.attrR!==null&&r.attrG!==null&&r.attrB!==null&&(scratchColor.setRGB(e[r.attrR]/255,e[r.attrG]/255,e[r.attrB]/255),n.colors.push(scratchColor.r,scratchColor.g,scratchColor.b));for(var s=0,u=Object.keys(o.customPropertyMapping);s<u.length;s++)for(var l=u[s],c=0,f=o.customPropertyMapping[l].itemNames;c<f.length;c++){var d=f[c];n[l].push(e[d])}}else if(t==="face"){var p=e.vertex_indices||e.vertex_index,v=e.texcoord;p.length===3?(n.indices.push(p[0],p[1],p[2]),v&&v.length===6&&(n.faceVertexUvs.push(v[0],v[1]),n.faceVertexUvs.push(v[2],v[3]),n.faceVertexUvs.push(v[4],v[5]))):p.length===4&&(n.indices.push(p[0],p[1],p[3]),n.indices.push(p[1],p[2],p[3])),r.attrR!==null&&r.attrG!==null&&r.attrB!==null&&(scratchColor.setRGB(e[r.attrR]/255,e[r.attrG]/255,e[r.attrB]/255),n.faceVertexColors.push(scratchColor.r,scratchColor.g,scratchColor.b),n.faceVertexColors.push(scratchColor.r,scratchColor.g,scratchColor.b),n.faceVertexColors.push(scratchColor.r,scratchColor.g,scratchColor.b))}}function binaryReadElement(n,t){for(var e={},r=0,o=0;o<t.length;o++){var s=t[o],u=s.valueReader;if(s.type==="list"){var l=[],c=s.countReader.read(n+r);r+=s.countReader.size;for(var f=0;f<c;f++)l.push(u.read(n+r)),r+=u.size;e[s.name]=l}else e[s.name]=u.read(n+r),r+=u.size}return[e,r]}function setPropertyBinaryReaders(n,t,e){function r(l,c,f){switch(c){case"int8":case"char":return{read:function(d){return l.getInt8(d)},size:1};case"uint8":case"uchar":return{read:function(d){return l.getUint8(d)},size:1};case"int16":case"short":return{read:function(d){return l.getInt16(d,f)},size:2};case"uint16":case"ushort":return{read:function(d){return l.getUint16(d,f)},size:2};case"int32":case"int":return{read:function(d){return l.getInt32(d,f)},size:4};case"uint32":case"uint":return{read:function(d){return l.getUint32(d,f)},size:4};case"float32":case"float":return{read:function(d){return l.getFloat32(d,f)},size:4};case"float64":case"double":return{read:function(d){return l.getFloat64(d,f)},size:8};default:throw new Error("not support type: "+c)}}for(var o=0,s=n.length;o<s;o++){var u=n[o];u.type==="list"?(u.countReader=r(t,u.countType,e),u.valueReader=r(t,u.itemType,e)):u.valueReader=r(t,u.type,e)}}function parseBinary(n,t,e){for(var r=createBuffer(e),o=t.format==="binary_little_endian",s=new DataView(n,t.headerLength),u,l=0,c=0;c<t.elements.length;c++){var f=t.elements[c],d=f.properties,p=mapElementAttributes(d);setPropertyBinaryReaders(d,s,o);for(var v=0;v<f.count;v++){u=binaryReadElement(l,d),l+=u[1];var A=u[0];handleElement(r,f.name,A,p,e)}}return postProcess(r,e)}function extractHeaderText(n){var t=0,e=!0,r="",o=[],s=new TextDecoder().decode(n.subarray(0,5)),u=/^ply\r\n/.test(s);do{var l=String.fromCharCode(n[t++]);l!==`
|
|
928
|
+
`),support=typeof Worker!="undefined"&&typeof Blob!="undefined",lzmaWorkerURL="";if(support)try{var blob=new Blob([lzmaWorkerSource],{type:"text/javascript"});lzmaWorkerURL=URL.createObjectURL(blob)}catch(n){}var LZMAWorker=function(){function n(){var t=this;if(!support)throw new Error("LZMAWorker cannot work in this broswer.");this.callCounter=0,this.requests={};var e=this.worker=new Worker(lzmaWorkerURL);e.onmessage=function(r){var o=r.data,s=o.id,u=o.result,l=o.error,c=t.getKey(s);t.requests[c]&&(l?t.requests[c](new Error(l)):t.requests[c](null,u),delete t.requests[c])},e.onerror=function(r){return console.error(r)}}return n.prototype.getKey=function(t){return"key_"+String(t)},n.prototype.decompress=function(t,e){var r=++this.callCounter;this.requests[this.getKey(r)]=e,this.worker.postMessage({type:"decompress",id:r,data:t},[t.buffer])},n.prototype.terminate=function(){this.worker.terminate()},n.support=support,n}();function readUint32(n){return Array.prototype.reduce.call(n,function(t,e,r){return t|e<<r*8},0)}function binaryArrays(n){for(var t=[],e=n.length,r=function(u){var l={data:n[u],offset:0,readByte:function(){return this.data[this.offset++]}},c=l.data.length,f={data:[],offset:0,writeByte:function(p){var v=Math.floor(this.offset/c);this.data[v]||(this.data[v]=new Uint8Array(c)),this.data[v][this.offset%c]=p,this.offset++}};LZMA.decompressFile(l,f),o=new Uint8Array(f.offset);for(var d=0;d<f.offset;d++)o[d]=f.data[Math.floor(d/c)][d%c];t.push(o)},o,s=0;s<e;s++)r(s);return t}function binaryArraysWithWorker(n){for(var t=[],e=n.length,r=function(s){t.push(new Promise(function(u,l){var c=new LZMAWorker;c.decompress(n[s],function(f,d){if(c.terminate(),f)return l(f);u(d)})}))},o=0;o<e;o++)r(o);return Promise.all(t)}function lzma(n){var t=new Uint8Array(n),e=readUint32(t.slice(0,4));if(e>10)return Promise.reject(new Error("LZMA got too many sub chunks."));for(var r=[],o=[],s=4+e*4,u=0;u<e;u++)o[u]=readUint32(t.slice(4+u*4,8+u*4)),u===e-1?r[u]=t.subarray(s,s+o[u]):r[u]=t.slice(s,s+o[u]),s+=o[u];return LZMAWorker.support?binaryArraysWithWorker(r):Promise.resolve(binaryArrays(r))}var dequeuing=!1,queue=[];function dequeue(n){if(n===void 0&&(n=!1),!(!n&&dequeuing)){dequeuing=!0;var t=queue.shift();if(t){try{t()}catch(e){}AnimationFrameLoop.shared.add(function(){return dequeue(!0)},!0,2,-100)}else dequeuing=!1}}function delay(n){return new Promise(function(t,e){var r=function(){try{t(n())}catch(o){e(o)}};queue.push(r),AnimationFrameLoop.shared.add(function(){return dequeue()},!0,2,-100)})}var commonjsGlobal=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},indexMinimal={},minimal$1={},aspromise=asPromise;function asPromise(n,t){for(var e=new Array(arguments.length-1),r=0,o=2,s=!0;o<arguments.length;)e[r++]=arguments[o++];return new Promise(function(l,c){e[r]=function(d){if(s)if(s=!1,d)c(d);else{for(var p=new Array(arguments.length-1),v=0;v<p.length;)p[v++]=arguments[v];l.apply(null,p)}};try{n.apply(t||null,e)}catch(f){s&&(s=!1,c(f))}})}var base64$1={};(function(n){var t=n;t.length=function(l){var c=l.length;if(!c)return 0;for(var f=0;--c%4>1&&l.charAt(c)==="=";)++f;return Math.ceil(l.length*3)/4-f};for(var e=new Array(64),r=new Array(123),o=0;o<64;)r[e[o]=o<26?o+65:o<52?o+71:o<62?o-4:o-59|43]=o++;t.encode=function(l,c,f){for(var d=null,p=[],v=0,A=0,g;c<f;){var h=l[c++];switch(A){case 0:p[v++]=e[h>>2],g=(h&3)<<4,A=1;break;case 1:p[v++]=e[g|h>>4],g=(h&15)<<2,A=2;break;case 2:p[v++]=e[g|h>>6],p[v++]=e[h&63],A=0;break}v>8191&&((d||(d=[])).push(String.fromCharCode.apply(String,p)),v=0)}return A&&(p[v++]=e[g],p[v++]=61,A===1&&(p[v++]=61)),d?(v&&d.push(String.fromCharCode.apply(String,p.slice(0,v))),d.join("")):String.fromCharCode.apply(String,p.slice(0,v))};var s="invalid encoding";t.decode=function(l,c,f){for(var d=f,p=0,v,A=0;A<l.length;){var g=l.charCodeAt(A++);if(g===61&&p>1)break;if((g=r[g])===void 0)throw Error(s);switch(p){case 0:v=g,p=1;break;case 1:c[f++]=v<<2|(g&48)>>4,v=g,p=2;break;case 2:c[f++]=(v&15)<<4|(g&60)>>2,v=g,p=3;break;case 3:c[f++]=(v&3)<<6|g,p=0;break}}if(p===1)throw Error(s);return f-d},t.test=function(l){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(l)}})(base64$1);var eventemitter=EventEmitter;function EventEmitter(){this._listeners={}}EventEmitter.prototype.on=function(t,e,r){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:e,ctx:r||this}),this};EventEmitter.prototype.off=function(t,e){if(t===void 0)this._listeners={};else if(e===void 0)this._listeners[t]=[];else for(var r=this._listeners[t],o=0;o<r.length;)r[o].fn===e?r.splice(o,1):++o;return this};EventEmitter.prototype.emit=function(t){var e=this._listeners[t];if(e){for(var r=[],o=1;o<arguments.length;)r.push(arguments[o++]);for(o=0;o<e.length;)e[o].fn.apply(e[o++].ctx,r)}return this};var float=factory(factory);function factory(n){return typeof Float32Array!="undefined"?function(){var t=new Float32Array([-0]),e=new Uint8Array(t.buffer),r=e[3]===128;function o(c,f,d){t[0]=c,f[d]=e[0],f[d+1]=e[1],f[d+2]=e[2],f[d+3]=e[3]}function s(c,f,d){t[0]=c,f[d]=e[3],f[d+1]=e[2],f[d+2]=e[1],f[d+3]=e[0]}n.writeFloatLE=r?o:s,n.writeFloatBE=r?s:o;function u(c,f){return e[0]=c[f],e[1]=c[f+1],e[2]=c[f+2],e[3]=c[f+3],t[0]}function l(c,f){return e[3]=c[f],e[2]=c[f+1],e[1]=c[f+2],e[0]=c[f+3],t[0]}n.readFloatLE=r?u:l,n.readFloatBE=r?l:u}():function(){function t(r,o,s,u){var l=o<0?1:0;if(l&&(o=-o),o===0)r(1/o>0?0:2147483648,s,u);else if(isNaN(o))r(2143289344,s,u);else if(o>34028234663852886e22)r((l<<31|2139095040)>>>0,s,u);else if(o<11754943508222875e-54)r((l<<31|Math.round(o/1401298464324817e-60))>>>0,s,u);else{var c=Math.floor(Math.log(o)/Math.LN2),f=Math.round(o*Math.pow(2,-c)*8388608)&8388607;r((l<<31|c+127<<23|f)>>>0,s,u)}}n.writeFloatLE=t.bind(null,writeUintLE),n.writeFloatBE=t.bind(null,writeUintBE);function e(r,o,s){var u=r(o,s),l=(u>>31)*2+1,c=u>>>23&255,f=u&8388607;return c===255?f?NaN:l*(1/0):c===0?l*1401298464324817e-60*f:l*Math.pow(2,c-150)*(f+8388608)}n.readFloatLE=e.bind(null,readUintLE),n.readFloatBE=e.bind(null,readUintBE)}(),typeof Float64Array!="undefined"?function(){var t=new Float64Array([-0]),e=new Uint8Array(t.buffer),r=e[7]===128;function o(c,f,d){t[0]=c,f[d]=e[0],f[d+1]=e[1],f[d+2]=e[2],f[d+3]=e[3],f[d+4]=e[4],f[d+5]=e[5],f[d+6]=e[6],f[d+7]=e[7]}function s(c,f,d){t[0]=c,f[d]=e[7],f[d+1]=e[6],f[d+2]=e[5],f[d+3]=e[4],f[d+4]=e[3],f[d+5]=e[2],f[d+6]=e[1],f[d+7]=e[0]}n.writeDoubleLE=r?o:s,n.writeDoubleBE=r?s:o;function u(c,f){return e[0]=c[f],e[1]=c[f+1],e[2]=c[f+2],e[3]=c[f+3],e[4]=c[f+4],e[5]=c[f+5],e[6]=c[f+6],e[7]=c[f+7],t[0]}function l(c,f){return e[7]=c[f],e[6]=c[f+1],e[5]=c[f+2],e[4]=c[f+3],e[3]=c[f+4],e[2]=c[f+5],e[1]=c[f+6],e[0]=c[f+7],t[0]}n.readDoubleLE=r?u:l,n.readDoubleBE=r?l:u}():function(){function t(r,o,s,u,l,c){var f=u<0?1:0;if(f&&(u=-u),u===0)r(0,l,c+o),r(1/u>0?0:2147483648,l,c+s);else if(isNaN(u))r(0,l,c+o),r(2146959360,l,c+s);else if(u>17976931348623157e292)r(0,l,c+o),r((f<<31|2146435072)>>>0,l,c+s);else{var d;if(u<22250738585072014e-324)d=u/5e-324,r(d>>>0,l,c+o),r((f<<31|d/4294967296)>>>0,l,c+s);else{var p=Math.floor(Math.log(u)/Math.LN2);p===1024&&(p=1023),d=u*Math.pow(2,-p),r(d*4503599627370496>>>0,l,c+o),r((f<<31|p+1023<<20|d*1048576&1048575)>>>0,l,c+s)}}}n.writeDoubleLE=t.bind(null,writeUintLE,0,4),n.writeDoubleBE=t.bind(null,writeUintBE,4,0);function e(r,o,s,u,l){var c=r(u,l+o),f=r(u,l+s),d=(f>>31)*2+1,p=f>>>20&2047,v=4294967296*(f&1048575)+c;return p===2047?v?NaN:d*(1/0):p===0?d*5e-324*v:d*Math.pow(2,p-1075)*(v+4503599627370496)}n.readDoubleLE=e.bind(null,readUintLE,0,4),n.readDoubleBE=e.bind(null,readUintBE,4,0)}(),n}function writeUintLE(n,t,e){t[e]=n&255,t[e+1]=n>>>8&255,t[e+2]=n>>>16&255,t[e+3]=n>>>24}function writeUintBE(n,t,e){t[e]=n>>>24,t[e+1]=n>>>16&255,t[e+2]=n>>>8&255,t[e+3]=n&255}function readUintLE(n,t){return(n[t]|n[t+1]<<8|n[t+2]<<16|n[t+3]<<24)>>>0}function readUintBE(n,t){return(n[t]<<24|n[t+1]<<16|n[t+2]<<8|n[t+3])>>>0}var inquire_1=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(n){}return null}var utf8$2={};(function(n){var t=n;t.length=function(r){for(var o=0,s=0,u=0;u<r.length;++u)s=r.charCodeAt(u),s<128?o+=1:s<2048?o+=2:(s&64512)===55296&&(r.charCodeAt(u+1)&64512)===56320?(++u,o+=4):o+=3;return o},t.read=function(r,o,s){var u=s-o;if(u<1)return"";for(var l=null,c=[],f=0,d;o<s;)d=r[o++],d<128?c[f++]=d:d>191&&d<224?c[f++]=(d&31)<<6|r[o++]&63:d>239&&d<365?(d=((d&7)<<18|(r[o++]&63)<<12|(r[o++]&63)<<6|r[o++]&63)-65536,c[f++]=55296+(d>>10),c[f++]=56320+(d&1023)):c[f++]=(d&15)<<12|(r[o++]&63)<<6|r[o++]&63,f>8191&&((l||(l=[])).push(String.fromCharCode.apply(String,c)),f=0);return l?(f&&l.push(String.fromCharCode.apply(String,c.slice(0,f))),l.join("")):String.fromCharCode.apply(String,c.slice(0,f))},t.write=function(r,o,s){for(var u=s,l,c,f=0;f<r.length;++f)l=r.charCodeAt(f),l<128?o[s++]=l:l<2048?(o[s++]=l>>6|192,o[s++]=l&63|128):(l&64512)===55296&&((c=r.charCodeAt(f+1))&64512)===56320?(l=65536+((l&1023)<<10)+(c&1023),++f,o[s++]=l>>18|240,o[s++]=l>>12&63|128,o[s++]=l>>6&63|128,o[s++]=l&63|128):(o[s++]=l>>12|224,o[s++]=l>>6&63|128,o[s++]=l&63|128);return s-u}})(utf8$2);var pool_1=pool;function pool(n,t,e){var r=e||8192,o=r>>>1,s=null,u=r;return function(c){if(c<1||c>o)return n(c);u+c>r&&(s=n(r),u=0);var f=t.call(s,u,u+=c);return u&7&&(u=(u|7)+1),f}}var longbits,hasRequiredLongbits;function requireLongbits(){if(hasRequiredLongbits)return longbits;hasRequiredLongbits=1,longbits=t;var n=requireMinimal();function t(s,u){this.lo=s>>>0,this.hi=u>>>0}var e=t.zero=new t(0,0);e.toNumber=function(){return 0},e.zzEncode=e.zzDecode=function(){return this},e.length=function(){return 1};var r=t.zeroHash="\0\0\0\0\0\0\0\0";t.fromNumber=function(u){if(u===0)return e;var l=u<0;l&&(u=-u);var c=u>>>0,f=(u-c)/4294967296>>>0;return l&&(f=~f>>>0,c=~c>>>0,++c>4294967295&&(c=0,++f>4294967295&&(f=0))),new t(c,f)},t.from=function(u){if(typeof u=="number")return t.fromNumber(u);if(n.isString(u))if(n.Long)u=n.Long.fromString(u);else return t.fromNumber(parseInt(u,10));return u.low||u.high?new t(u.low>>>0,u.high>>>0):e},t.prototype.toNumber=function(u){if(!u&&this.hi>>>31){var l=~this.lo+1>>>0,c=~this.hi>>>0;return l||(c=c+1>>>0),-(l+c*4294967296)}return this.lo+this.hi*4294967296},t.prototype.toLong=function(u){return n.Long?new n.Long(this.lo|0,this.hi|0,!!u):{low:this.lo|0,high:this.hi|0,unsigned:!!u}};var o=String.prototype.charCodeAt;return t.fromHash=function(u){return u===r?e:new t((o.call(u,0)|o.call(u,1)<<8|o.call(u,2)<<16|o.call(u,3)<<24)>>>0,(o.call(u,4)|o.call(u,5)<<8|o.call(u,6)<<16|o.call(u,7)<<24)>>>0)},t.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},t.prototype.zzEncode=function(){var u=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^u)>>>0,this.lo=(this.lo<<1^u)>>>0,this},t.prototype.zzDecode=function(){var u=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^u)>>>0,this.hi=(this.hi>>>1^u)>>>0,this},t.prototype.length=function(){var u=this.lo,l=(this.lo>>>28|this.hi<<4)>>>0,c=this.hi>>>24;return c===0?l===0?u<16384?u<128?1:2:u<2097152?3:4:l<16384?l<128?5:6:l<2097152?7:8:c<128?9:10},longbits}var hasRequiredMinimal;function requireMinimal(){return hasRequiredMinimal||(hasRequiredMinimal=1,function(n){var t=n;t.asPromise=aspromise,t.base64=base64$1,t.EventEmitter=eventemitter,t.float=float,t.inquire=inquire_1,t.utf8=utf8$2,t.pool=pool_1,t.LongBits=requireLongbits(),t.isNode=!!(typeof commonjsGlobal!="undefined"&&commonjsGlobal&&commonjsGlobal.process&&commonjsGlobal.process.versions&&commonjsGlobal.process.versions.node),t.global=t.isNode&&commonjsGlobal||typeof window!="undefined"&&window||typeof self!="undefined"&&self||commonjsGlobal,t.emptyArray=Object.freeze?Object.freeze([]):[],t.emptyObject=Object.freeze?Object.freeze({}):{},t.isInteger=Number.isInteger||function(s){return typeof s=="number"&&isFinite(s)&&Math.floor(s)===s},t.isString=function(s){return typeof s=="string"||s instanceof String},t.isObject=function(s){return s&&typeof s=="object"},t.isset=t.isSet=function(s,u){var l=s[u];return l!=null&&s.hasOwnProperty(u)?typeof l!="object"||(Array.isArray(l)?l.length:Object.keys(l).length)>0:!1},t.Buffer=function(){try{var o=t.inquire("buffer").Buffer;return o.prototype.utf8Write?o:null}catch(s){return null}}(),t._Buffer_from=null,t._Buffer_allocUnsafe=null,t.newBuffer=function(s){return typeof s=="number"?t.Buffer?t._Buffer_allocUnsafe(s):new t.Array(s):t.Buffer?t._Buffer_from(s):typeof Uint8Array=="undefined"?s:new Uint8Array(s)},t.Array=typeof Uint8Array!="undefined"?Uint8Array:Array,t.Long=t.global.dcodeIO&&t.global.dcodeIO.Long||t.global.Long||t.inquire("long"),t.key2Re=/^true|false|0|1$/,t.key32Re=/^-?(?:0|[1-9][0-9]*)$/,t.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,t.longToHash=function(s){return s?t.LongBits.from(s).toHash():t.LongBits.zeroHash},t.longFromHash=function(s,u){var l=t.LongBits.fromHash(s);return t.Long?t.Long.fromBits(l.lo,l.hi,u):l.toNumber(!!u)};function e(o,s,u){for(var l=Object.keys(s),c=0;c<l.length;++c)(o[l[c]]===void 0||!u)&&(o[l[c]]=s[l[c]]);return o}t.merge=e,t.lcFirst=function(s){return s.charAt(0).toLowerCase()+s.substring(1)};function r(o){function s(u,l){if(!(this instanceof s))return new s(u,l);Object.defineProperty(this,"message",{get:function(){return u}}),Error.captureStackTrace?Error.captureStackTrace(this,s):Object.defineProperty(this,"stack",{value:new Error().stack||""}),l&&e(this,l)}return s.prototype=Object.create(Error.prototype,{constructor:{value:s,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return o},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),s}t.newError=r,t.ProtocolError=r("ProtocolError"),t.oneOfGetter=function(s){for(var u={},l=0;l<s.length;++l)u[s[l]]=1;return function(){for(var c=Object.keys(this),f=c.length-1;f>-1;--f)if(u[c[f]]===1&&this[c[f]]!==void 0&&this[c[f]]!==null)return c[f]}},t.oneOfSetter=function(s){return function(u){for(var l=0;l<s.length;++l)s[l]!==u&&delete this[s[l]]}},t.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},t._configure=function(){var o=t.Buffer;if(!o){t._Buffer_from=t._Buffer_allocUnsafe=null;return}t._Buffer_from=o.from!==Uint8Array.from&&o.from||function(u,l){return new o(u,l)},t._Buffer_allocUnsafe=o.allocUnsafe||function(u){return new o(u)}}}(minimal$1)),minimal$1}var writer=Writer$1,util$4=requireMinimal(),BufferWriter$1,LongBits$1=util$4.LongBits,base64=util$4.base64,utf8$1=util$4.utf8;function Op(n,t,e){this.fn=n,this.len=t,this.next=void 0,this.val=e}function noop(){}function State(n){this.head=n.head,this.tail=n.tail,this.len=n.len,this.next=n.states}function Writer$1(){this.len=0,this.head=new Op(noop,0,0),this.tail=this.head,this.states=null}var create$1=function n(){return util$4.Buffer?function(){return(Writer$1.create=function(){return new BufferWriter$1})()}:function(){return new Writer$1}};Writer$1.create=create$1();Writer$1.alloc=function n(t){return new util$4.Array(t)};util$4.Array!==Array&&(Writer$1.alloc=util$4.pool(Writer$1.alloc,util$4.Array.prototype.subarray));Writer$1.prototype._push=function n(t,e,r){return this.tail=this.tail.next=new Op(t,e,r),this.len+=e,this};function writeByte(n,t,e){t[e]=n&255}function writeVarint32(n,t,e){for(;n>127;)t[e++]=n&127|128,n>>>=7;t[e]=n}function VarintOp(n,t){this.len=n,this.next=void 0,this.val=t}VarintOp.prototype=Object.create(Op.prototype);VarintOp.prototype.fn=writeVarint32;Writer$1.prototype.uint32=function n(t){return this.len+=(this.tail=this.tail.next=new VarintOp((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};Writer$1.prototype.int32=function n(t){return t<0?this._push(writeVarint64,10,LongBits$1.fromNumber(t)):this.uint32(t)};Writer$1.prototype.sint32=function n(t){return this.uint32((t<<1^t>>31)>>>0)};function writeVarint64(n,t,e){for(;n.hi;)t[e++]=n.lo&127|128,n.lo=(n.lo>>>7|n.hi<<25)>>>0,n.hi>>>=7;for(;n.lo>127;)t[e++]=n.lo&127|128,n.lo=n.lo>>>7;t[e++]=n.lo}Writer$1.prototype.uint64=function n(t){var e=LongBits$1.from(t);return this._push(writeVarint64,e.length(),e)};Writer$1.prototype.int64=Writer$1.prototype.uint64;Writer$1.prototype.sint64=function n(t){var e=LongBits$1.from(t).zzEncode();return this._push(writeVarint64,e.length(),e)};Writer$1.prototype.bool=function n(t){return this._push(writeByte,1,t?1:0)};function writeFixed32(n,t,e){t[e]=n&255,t[e+1]=n>>>8&255,t[e+2]=n>>>16&255,t[e+3]=n>>>24}Writer$1.prototype.fixed32=function n(t){return this._push(writeFixed32,4,t>>>0)};Writer$1.prototype.sfixed32=Writer$1.prototype.fixed32;Writer$1.prototype.fixed64=function n(t){var e=LongBits$1.from(t);return this._push(writeFixed32,4,e.lo)._push(writeFixed32,4,e.hi)};Writer$1.prototype.sfixed64=Writer$1.prototype.fixed64;Writer$1.prototype.float=function n(t){return this._push(util$4.float.writeFloatLE,4,t)};Writer$1.prototype.double=function n(t){return this._push(util$4.float.writeDoubleLE,8,t)};var writeBytes=util$4.Array.prototype.set?function n(t,e,r){e.set(t,r)}:function n(t,e,r){for(var o=0;o<t.length;++o)e[r+o]=t[o]};Writer$1.prototype.bytes=function n(t){var e=t.length>>>0;if(!e)return this._push(writeByte,1,0);if(util$4.isString(t)){var r=Writer$1.alloc(e=base64.length(t));base64.decode(t,r,0),t=r}return this.uint32(e)._push(writeBytes,e,t)};Writer$1.prototype.string=function n(t){var e=utf8$1.length(t);return e?this.uint32(e)._push(utf8$1.write,e,t):this._push(writeByte,1,0)};Writer$1.prototype.fork=function n(){return this.states=new State(this),this.head=this.tail=new Op(noop,0,0),this.len=0,this};Writer$1.prototype.reset=function n(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Op(noop,0,0),this.len=0),this};Writer$1.prototype.ldelim=function n(){var t=this.head,e=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=t.next,this.tail=e,this.len+=r),this};Writer$1.prototype.finish=function n(){for(var t=this.head.next,e=this.constructor.alloc(this.len),r=0;t;)t.fn(t.val,e,r),r+=t.len,t=t.next;return e};Writer$1._configure=function(n){BufferWriter$1=n,Writer$1.create=create$1(),BufferWriter$1._configure()};var writer_buffer=BufferWriter,Writer=writer;(BufferWriter.prototype=Object.create(Writer.prototype)).constructor=BufferWriter;var util$3=requireMinimal();function BufferWriter(){Writer.call(this)}BufferWriter._configure=function(){BufferWriter.alloc=util$3._Buffer_allocUnsafe,BufferWriter.writeBytesBuffer=util$3.Buffer&&util$3.Buffer.prototype instanceof Uint8Array&&util$3.Buffer.prototype.set.name==="set"?function(t,e,r){e.set(t,r)}:function(t,e,r){if(t.copy)t.copy(e,r,0,t.length);else for(var o=0;o<t.length;)e[r++]=t[o++]}};BufferWriter.prototype.bytes=function n(t){util$3.isString(t)&&(t=util$3._Buffer_from(t,"base64"));var e=t.length>>>0;return this.uint32(e),e&&this._push(BufferWriter.writeBytesBuffer,e,t),this};function writeStringBuffer(n,t,e){n.length<40?util$3.utf8.write(n,t,e):t.utf8Write?t.utf8Write(n,e):t.write(n,e)}BufferWriter.prototype.string=function n(t){var e=util$3.Buffer.byteLength(t);return this.uint32(e),e&&this._push(writeStringBuffer,e,t),this};BufferWriter._configure();var reader=Reader$1,util$2=requireMinimal(),BufferReader$1,LongBits=util$2.LongBits,utf8=util$2.utf8;function indexOutOfRange(n,t){return RangeError("index out of range: "+n.pos+" + "+(t||1)+" > "+n.len)}function Reader$1(n){this.buf=n,this.pos=0,this.len=n.length}var create_array=typeof Uint8Array!="undefined"?function n(t){if(t instanceof Uint8Array||Array.isArray(t))return new Reader$1(t);throw Error("illegal buffer")}:function n(t){if(Array.isArray(t))return new Reader$1(t);throw Error("illegal buffer")},create=function n(){return util$2.Buffer?function(e){return(Reader$1.create=function(o){return util$2.Buffer.isBuffer(o)?new BufferReader$1(o):create_array(o)})(e)}:create_array};Reader$1.create=create();Reader$1.prototype._slice=util$2.Array.prototype.subarray||util$2.Array.prototype.slice;Reader$1.prototype.uint32=function n(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,indexOutOfRange(this,10);return t}}();Reader$1.prototype.int32=function n(){return this.uint32()|0};Reader$1.prototype.sint32=function n(){var t=this.uint32();return t>>>1^-(t&1)|0};function readLongVarint(){var n=new LongBits(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(n.lo=(n.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return n;if(n.lo=(n.lo|(this.buf[this.pos]&127)<<28)>>>0,n.hi=(n.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return n;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw indexOutOfRange(this);if(n.lo=(n.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return n}return n.lo=(n.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,n}if(this.len-this.pos>4){for(;t<5;++t)if(n.hi=(n.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return n}else for(;t<5;++t){if(this.pos>=this.len)throw indexOutOfRange(this);if(n.hi=(n.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return n}throw Error("invalid varint encoding")}Reader$1.prototype.bool=function n(){return this.uint32()!==0};function readFixed32_end(n,t){return(n[t-4]|n[t-3]<<8|n[t-2]<<16|n[t-1]<<24)>>>0}Reader$1.prototype.fixed32=function n(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)};Reader$1.prototype.sfixed32=function n(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)|0};function readFixed64(){if(this.pos+8>this.len)throw indexOutOfRange(this,8);return new LongBits(readFixed32_end(this.buf,this.pos+=4),readFixed32_end(this.buf,this.pos+=4))}Reader$1.prototype.float=function n(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);var t=util$2.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};Reader$1.prototype.double=function n(){if(this.pos+8>this.len)throw indexOutOfRange(this,4);var t=util$2.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};Reader$1.prototype.bytes=function n(){var t=this.uint32(),e=this.pos,r=this.pos+t;if(r>this.len)throw indexOutOfRange(this,t);if(this.pos+=t,Array.isArray(this.buf))return this.buf.slice(e,r);if(e===r){var o=util$2.Buffer;return o?o.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,e,r)};Reader$1.prototype.string=function n(){var t=this.bytes();return utf8.read(t,0,t.length)};Reader$1.prototype.skip=function n(t){if(typeof t=="number"){if(this.pos+t>this.len)throw indexOutOfRange(this,t);this.pos+=t}else do if(this.pos>=this.len)throw indexOutOfRange(this);while(this.buf[this.pos++]&128);return this};Reader$1.prototype.skipType=function(n){switch(n){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(n=this.uint32()&7)!==4;)this.skipType(n);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+n+" at offset "+this.pos)}return this};Reader$1._configure=function(n){BufferReader$1=n,Reader$1.create=create(),BufferReader$1._configure();var t=util$2.Long?"toLong":"toNumber";util$2.merge(Reader$1.prototype,{int64:function(){return readLongVarint.call(this)[t](!1)},uint64:function(){return readLongVarint.call(this)[t](!0)},sint64:function(){return readLongVarint.call(this).zzDecode()[t](!1)},fixed64:function(){return readFixed64.call(this)[t](!0)},sfixed64:function(){return readFixed64.call(this)[t](!1)}})};var reader_buffer=BufferReader,Reader=reader;(BufferReader.prototype=Object.create(Reader.prototype)).constructor=BufferReader;var util$1=requireMinimal();function BufferReader(n){Reader.call(this,n)}BufferReader._configure=function(){util$1.Buffer&&(BufferReader.prototype._slice=util$1.Buffer.prototype.slice)};BufferReader.prototype.string=function n(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};BufferReader._configure();var rpc={},service=Service,util=requireMinimal();(Service.prototype=Object.create(util.EventEmitter.prototype)).constructor=Service;function Service(n,t,e){if(typeof n!="function")throw TypeError("rpcImpl must be a function");util.EventEmitter.call(this),this.rpcImpl=n,this.requestDelimited=!!t,this.responseDelimited=!!e}Service.prototype.rpcCall=function n(t,e,r,o,s){if(!o)throw TypeError("request must be specified");var u=this;if(!s)return util.asPromise(n,u,t,e,r,o);if(!u.rpcImpl){setTimeout(function(){s(Error("already ended"))},0);return}try{return u.rpcImpl(t,e[u.requestDelimited?"encodeDelimited":"encode"](o).finish(),function(c,f){if(c)return u.emit("error",c,t),s(c);if(f===null){u.end(!0);return}if(!(f instanceof r))try{f=r[u.responseDelimited?"decodeDelimited":"decode"](f)}catch(d){return u.emit("error",d,t),s(d)}return u.emit("data",f,t),s(null,f)})}catch(l){u.emit("error",l,t),setTimeout(function(){s(l)},0);return}};Service.prototype.end=function n(t){return this.rpcImpl&&(t||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this};(function(n){var t=n;t.Service=service})(rpc);var roots={};(function(n){var t=n;t.build="minimal",t.Writer=writer,t.BufferWriter=writer_buffer,t.Reader=reader,t.BufferReader=reader_buffer,t.util=requireMinimal(),t.rpc=rpc,t.roots=roots,t.configure=e;function e(){t.util._configure(),t.Writer._configure(t.BufferWriter),t.Reader._configure(t.BufferReader)}e()})(indexMinimal);var minimal=indexMinimal;const $Reader$1=minimal.Reader,$util$1=minimal.util,$root$1=minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/pbm.proto"]||(minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/pbm.proto"]={}),Model$2=$root$1.Model=(()=>{function n(t){if(this.chunks=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.chunks=$util$1.emptyArray,n.prototype.createAt=$util$1.Long?$util$1.Long.fromBits(0,0,!0):0,n.prototype.description="",n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Model;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.chunks&&s.chunks.length||(s.chunks=[]),s.chunks.push($root$1.Chunk.decode(e,e.uint32()));break}case 2:{s.createAt=e.uint64();break}case 3:{s.description=e.string();break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Model"},n})();$root$1.Chunk=(()=>{function n(t){if(t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.vertices=null,n.prototype.faces=null,n.prototype.name="",n.prototype.texture="",n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Chunk;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.vertices=$root$1.Vertices.decode(e,e.uint32());break}case 2:{s.faces=$root$1.Faces.decode(e,e.uint32());break}case 3:{s.name=e.string();break}case 4:{s.texture=e.string();break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("vertices"))throw $util$1.ProtocolError("missing required 'vertices'",{instance:s});if(!s.hasOwnProperty("faces"))throw $util$1.ProtocolError("missing required 'faces'",{instance:s});if(!s.hasOwnProperty("name"))throw $util$1.ProtocolError("missing required 'name'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Chunk"},n})();$root$1.Vertices=(()=>{function n(t){if(this.xyz=[],this.uvs=[],this.marks=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.xyz=$util$1.emptyArray,n.prototype.uvs=$util$1.emptyArray,n.prototype.marks=$util$1.emptyArray,n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Vertices;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.xyz&&s.xyz.length||(s.xyz=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.xyz.push(e.float())}else s.xyz.push(e.float());break}case 2:{if(s.uvs&&s.uvs.length||(s.uvs=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.uvs.push(e.float())}else s.uvs.push(e.float());break}case 3:{if(s.marks&&s.marks.length||(s.marks=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.marks.push(e.int32())}else s.marks.push(e.int32());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Vertices"},n})();$root$1.Faces=(()=>{function n(t){if(this.indices=[],this.normals=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.indices=$util$1.emptyArray,n.prototype.normals=$util$1.emptyArray,n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Faces;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.indices&&s.indices.length||(s.indices=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.indices.push(e.uint32())}else s.indices.push(e.uint32());break}case 2:{if(s.normals&&s.normals.length||(s.normals=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.normals.push(e.float())}else s.normals.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Faces"},n})();$root$1.VertexMark=(()=>{const n={},t=Object.create(n);return t[n[0]="VERTEX_MARK_UNSPECIFIED"]=0,t[n[1]="VERTEX_MARK_ROOF"]=1,t})();function loadPbm(n,t){var e,r,o,s;t===void 0&&(t={});var u=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),l={byteLength:0},c=autoRestImageOptionsByTextureLength((r=t.textureOptions)!==null&&r!==void 0?r:{},(s=(o=t.textureArray)===null||o===void 0?void 0:o.length)!==null&&s!==void 0?s:0),f={};if(t.textureArray)for(var d=0,p=t.textureArray;d<p.length;d++){var v=p[d];f[v]=loadTexture$1(v,c,u)}return Promise.resolve().then(function(){return u.ajax(n,{responseType:"arraybuffer"})}).then(function(A){return l.byteLength=A.body.byteLength,delay(function(){var g=new Uint8Array(A.body);return Model$2.decode(g)})}).then(function(A){return delay(function(){var g,h,y;return parse$4(A,(g=t.light)!==null&&g!==void 0?g:!1,(h=t.textureBaseUri)!==null&&h!==void 0?h:function(){var m=n.lastIndexOf("/");if(m>=0){var E=n.slice(0,m)+"/";return/\/model\/$/.test(E)&&(E=E.replace(/\/model\/$/,"/materials/")),E}return""}(),((y=t.textureArray)!==null&&y!==void 0?y:[]).slice(),c,f,u)})}).then(function(A){var g=new THREE__namespace.Group;g.matrixAutoUpdate=!1,g.matrix.compose(g.position,g.quaternion,g.scale),g.name=n;for(var h=0,y=A.objects;h<y.length;h++){var m=y[h];g.add(m)}return{type:"pbm",upAxis:"Z",uri:n,byteLength:l.byteLength,memoryUsage:getMemoryUsage(g),scene:g,textures:A.textures,dispose:function(){return A.dispose()}}})}function parseFloorName(n){var t=n.match(/(group|floor)-?(\d+)/);return t?parseInt(t[2],10):0}function parseChunkName(n){var t=n.match(/(chunk)-?(\d+)/);return t?parseInt(t[2],10):0}function parseSubName(n){var t=n.match(/(sub)-?(\d+)/);return t?parseInt(t[2],10):0}function chunkOrder(n){var t=parseFloorName(n.name),e=parseChunkName(n.name),r=parseSubName(n.name);return t*1e6+e*1e3+r}function parsePBMModel(n){for(var t,e,r,o=typeof n.createAt=="number"?n.createAt:0,s=(t=n.description)!==null&&t!==void 0?t:"",u=[],l=!0,c=!0,f=0,d=n.chunks;f<d.length;f++){var p=d[f];if(!p.vertices.marks||p.vertices.marks.length===0){c=!1;break}}for(var v=0,A=n.chunks;v<A.length;v++){var p=A[v];if(!p.faces.normals||p.faces.normals.length===0){l=!1;break}}for(var g=n.chunks.sort(function(fe,ne){return chunkOrder(fe)-chunkOrder(ne)}),h=[],y=0,m=g;y<m.length;y++){var p=m[y],E=parseFloorName(p.name);h[E]||(h[E]=[]),h[E].push(p)}for(var b=0;b<h.length;b++){var T=h[b];if(T)if(l){for(var _=0,R=0;R<T.length;R++){var p=T[R];_+=p.faces.indices.length}for(var S=new Float32Array(_*3),C=new Float32Array(_*2),B=new Float32Array(_*3),L=c?new Float32Array(_):void 0,M=[],w=[1/0,1/0,1/0,-1/0,-1/0,-1/0],H=0,O=0;O<T.length;O++){for(var I=[1/0,1/0,1/0,-1/0,-1/0,-1/0],p=T[O],N=p.vertices.xyz,k=p.vertices.uvs,U=p.faces.indices,D=p.faces.normals,q=p.vertices.marks,z=U.length,R=0;R<z;R++){var Q=U[R],G=S[H*3+R*3]=N[Q*3],X=S[H*3+R*3+1]=N[Q*3+1],$=S[H*3+R*3+2]=N[Q*3+2];L&&(L[H+R]=q[Q]),C[H*2+R*2]=k[Q*2],C[H*2+R*2+1]=k[Q*2+1];var W=Math.floor(R/3)*3;B[H*3+R*3]=D[W],B[H*3+R*3+1]=D[W+1],B[H*3+R*3+2]=D[W+2],G<I[0]&&(I[0]=G),X<I[1]&&(I[1]=X),$<I[2]&&(I[2]=$),G>I[3]&&(I[3]=G),X>I[4]&&(I[4]=X),$>I[5]&&(I[5]=$)}I[0]<w[0]&&(w[0]=I[0]),I[1]<w[1]&&(w[1]=I[1]),I[2]<w[2]&&(w[2]=I[2]),I[3]>w[3]&&(w[3]=I[3]),I[4]>w[4]&&(w[4]=I[4]),I[5]>w[5]&&(w[5]=I[5]),M.push({materialIndex:O,name:p.name,chunkName:parseChunkName(p.name),start:H,count:p.faces.indices.length,texture:(e=p.texture)!==null&&e!==void 0?e:void 0}),H+=z}var oe={createAt:o,description:s,vertices:S,uvs:C,normals:B,masks:L,indices:null,floorIndex:b,groups:M,extents:w};u.push(oe)}else{for(var _=0,ae=0,R=0;R<T.length;R++){var p=T[R];ae+=p.vertices.xyz.length/3,_+=p.faces.indices.length}for(var S=new Float32Array(ae*3),C=new Float32Array(ae*2),B=void 0,re=new Float32Array(ae),j=new Uint32Array(_),L=c?new Float32Array(_):void 0,M=[],w=[1/0,1/0,1/0,-1/0,-1/0,-1/0],se=0,H=0,O=0;O<T.length;O++){for(var I=[1/0,1/0,1/0,-1/0,-1/0,-1/0],p=T[O],N=p.vertices.xyz,ie=p.vertices.marks,k=p.vertices.uvs,U=p.faces.indices,ue=N.length/3,z=U.length,R=0;R<ue;R++){var G=S[H*3+R*3]=N[R*3],X=S[H*3+R*3+1]=N[R*3+1],$=S[H*3+R*3+2]=N[R*3+2];L&&(L[H+R]=ie[R]),C[H*2+R*2]=k[R*2],C[H*2+R*2+1]=k[R*2+1],re[H+R]=b,G<I[0]&&(I[0]=G),X<I[1]&&(I[1]=X),$<I[2]&&(I[2]=$),G>I[3]&&(I[3]=G),X>I[4]&&(I[4]=X),$>I[5]&&(I[5]=$)}I[0]<w[0]&&(w[0]=I[0]),I[1]<w[1]&&(w[1]=I[1]),I[2]<w[2]&&(w[2]=I[2]),I[3]>w[3]&&(w[3]=I[3]),I[4]>w[4]&&(w[4]=I[4]),I[5]>w[5]&&(w[5]=I[5]);for(var R=0;R<z;R++)j[se+R]=H+U[R];M.push({materialIndex:O,name:p.name,chunkName:parseChunkName(p.name),start:se,count:p.faces.indices.length,texture:(r=p.texture)!==null&&r!==void 0?r:void 0}),H+=ue,se+=z}var oe={createAt:o,description:s,vertices:S,uvs:C,normals:B,masks:L,indices:j,floorIndex:b,groups:M,extents:w};u.push(oe)}}return u}function loadTexture$1(n,t,e){var r=__assign({key:"texture.pbm"},pick(t,["format","quality","size","sharpen","mappings"])),o=new TextureLoader,s=o.loadTexture(n,{imageURL:{transform:t.transform,options:r},encoding:THREE__namespace.sRGBEncoding,wrapS:THREE__namespace.ClampToEdgeWrapping,wrapT:THREE__namespace.ClampToEdgeWrapping,minFilter:THREE__namespace.LinearFilter,maxSize:typeof r.size=="number"?new THREE__namespace.Vector2(r.size,r.size):void 0,fetcher:e}).then(function(u){var l=u.body;return l.needsUpdate=!0,l});return Object.assign(s,{url:n,textureOptions:t})}function parse$4(n,t,e,r,o,s,u){s===void 0&&(s={});for(var l=parsePBMModel(n),c=0,f="",d=[],p={},v=new Set,A=0,g=0,h=l;g<h.length;g++){var y=h[g],m=y.createAt,E=y.description,b=y.vertices,T=y.masks,_=y.uvs,R=y.normals,S=y.indices,C=y.floorIndex,B=y.groups,L=y.extents,M=new THREE__namespace.Box3;M.min.x=L[0],M.min.y=L[1],M.min.z=L[2],M.max.x=L[3],M.max.y=L[4],M.max.z=L[5];var w=new THREE__namespace.BufferGeometry;w.setAttribute("position",new THREE__namespace.BufferAttribute(b,3)),w.setAttribute("uv",new THREE__namespace.BufferAttribute(_,2)),R&&w.setAttribute("normal",new THREE__namespace.BufferAttribute(R,3)),T&&w.setAttribute("_feature_id_rsmask",new THREE__namespace.BufferAttribute(T,1)),S&&w.setIndex(new THREE__namespace.BufferAttribute(S,1)),w.boundingBox=M,w.boundingSphere=M.getBoundingSphere(new THREE__namespace.Sphere);for(var H=0,O=B;H<O.length;H++){var I=O[H];w.addGroup(I.start,I.count,I.materialIndex)}v.add(w);for(var N=[],k=0,U=B;k<U.length;k++){var I=U[k],D=r[I.chunkName]||(I.texture?pathJoin(e||"",I.texture):void 0),q=new PBMMeshMaterial(t?"phong":"basic");q.floorIndex=C,w.attributes.normal===void 0&&(q.flatShading=!0),w.attributes._feature_id_rsmask&&(q.defines.USE_VERTEX_MARK=!0),N.push(q),D?(A++,p[D]?p[D].push(q):p[D]=[q]):q.color=new THREE__namespace.Color(16777215),v.add(q),q.refreshUniforms()}var z=new PBMMesh(w,N);z.name="model_floor_"+C,z.userData.createAt=m,z.userData.description=E,z.matrix.compose(z.position,z.quaternion,z.scale),z.matrixAutoUpdate=!1,z.frustumCulled=!1,c=m,f=E,d.push(z)}var Q=function(G){G=autoRestImageOptionsByTextureLength(G,A);for(var X=[],$=function(re){var j=null;re in s&&(j=s[re]),j||(j=loadTexture$1(re,G,u)),X.push(j.then(function(se){for(var ie=0,ue=p[re];ie<ue.length;ie++){var fe=ue[ie];fe.map&&(v.delete(fe.map),fe.map.dispose()),fe.map=se,fe.refreshUniforms(),v.add(se)}return se}).catch(function(){for(var se=0,ie=p[re];se<ie.length;se++){var ue=ie[se];ue.map&&(v.delete(ue.map),ue.map.dispose()),ue.map=null,ue.color=new THREE__namespace.Color(16777215),ue.refreshUniforms()}return null}))},W=0,oe=Object.keys(p);W<oe.length;W++){var ae=oe[W];$(ae)}for(var ae in s)delete s[ae];return Promise.all(X).then(function(re){return re.filter(function(j){return j})})};return Q(o).then(function(G){return{createAt:c,description:f,objects:d,textures:G,dispose:function(){v.forEach(function(X){X.dispose()}),v.clear()}}})}function autoRestImageOptionsByTextureLength(n,t){return n=Object.assign({},n),n.autoResize!==!1&&(t>96?n.size=Math.min(n.size||1/0,100):t>48?n.size=Math.min(n.size||1/0,200):t>24?n.size=Math.min(n.size||1/0,400):t>22?n.size=Math.min(n.size||1/0,800):t>5&&(n.size=Math.min(n.size||1/0,1024))),n}function loadAt3d(n,t){var e,r,o,s;t===void 0&&(t={});var u=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),l={byteLength:0},c=autoRestImageOptionsByTextureLength((r=t.textureOptions)!==null&&r!==void 0?r:{},(s=(o=t.textureArray)===null||o===void 0?void 0:o.length)!==null&&s!==void 0?s:0),f={};if(t.textureArray)for(var d=0,p=t.textureArray;d<p.length;d++){var v=p[d];f[v]=loadTexture$1(v,c,u)}return Promise.resolve().then(function(){return u.ajax(n,{responseType:"arraybuffer"})}).then(function(A){return lzma(A.body)}).then(function(A){return delay(function(){for(var g,h={chunks:[],createAt:void 0,description:void 0},y=0,m=A;y<m.length;y++){var E=m[y],b=Model$2.decode(E);b.chunks.length&&((g=h.chunks).push.apply(g,b.chunks),h.createAt=b.createAt,h.description=b.description)}return h})}).then(function(A){return delay(function(){var g,h,y,m;return parse$4(A,(g=t.light)!==null&&g!==void 0?g:!1,(h=t.textureBaseUri)!==null&&h!==void 0?h:function(){var E=n.lastIndexOf("/");if(E>=0){var b=n.slice(0,E)+"/";return/\/model\/$/.test(b)&&(b=b.replace(/\/model\/$/,"/materials/")),b}return""}(),((y=t.textureArray)!==null&&y!==void 0?y:[]).slice(),(m=t.textureOptions)!==null&&m!==void 0?m:{},f,u)})}).then(function(A){var g=new THREE__namespace.Group;g.name=n;for(var h=0,y=A.objects;h<y.length;h++){var m=y[h];g.add(m)}return{type:"at3d",upAxis:"Z",uri:n,byteLength:l.byteLength,memoryUsage:getMemoryUsage(g),scene:g,textures:A.textures,dispose:function(){return A.dispose()}}})}const $Reader=minimal.Reader,$util=minimal.util,$root=minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/dome.proto"]||(minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/dome.proto"]={}),Model$1=$root.Model=(()=>{function n(t){if(this.meshes=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.meshes=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Model;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.meshes&&s.meshes.length||(s.meshes=[]),s.meshes.push($root.Mesh.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Model"},n})();$root.Mesh=(()=>{function n(t){if(this.chunks=[],this.matrix=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.name="",n.prototype.chunks=$util.emptyArray,n.prototype.matrix=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Mesh;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.name=e.string();break}case 2:{s.chunks&&s.chunks.length||(s.chunks=[]),s.chunks.push($root.Chunk.decode(e,e.uint32()));break}case 3:{s.matrix&&s.matrix.length||(s.matrix=[]),s.matrix.push($root.Matrix.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("name"))throw $util.ProtocolError("missing required 'name'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Mesh"},n})();$root.Matrix=(()=>{function n(t){if(this.elements=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.elements=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Matrix;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.elements&&s.elements.length||(s.elements=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.elements.push(e.float())}else s.elements.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Matrix"},n})();$root.Chunk=(()=>{function n(t){if(this.material=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.geometry=null,n.prototype.material=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Chunk;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 2:{s.geometry=$root.Geometry.decode(e,e.uint32());break}case 3:{s.material&&s.material.length||(s.material=[]),s.material.push($root.Material.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("geometry"))throw $util.ProtocolError("missing required 'geometry'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Chunk"},n})();$root.Geometry=(()=>{function n(t){if(this.groups=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.position=null,n.prototype.uv=null,n.prototype.uv2=null,n.prototype.normal=null,n.prototype.groups=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Geometry;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.position=$root.Position.decode(e,e.uint32());break}case 2:{s.uv=$root.UV.decode(e,e.uint32());break}case 3:{s.uv2=$root.UV.decode(e,e.uint32());break}case 4:{s.normal=$root.Normal.decode(e,e.uint32());break}case 5:{s.groups&&s.groups.length||(s.groups=[]),s.groups.push($root.Group.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("position"))throw $util.ProtocolError("missing required 'position'",{instance:s});if(!s.hasOwnProperty("normal"))throw $util.ProtocolError("missing required 'normal'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Geometry"},n})();$root.Position=(()=>{function n(t){if(this.array=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.array=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Position;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.array&&s.array.length||(s.array=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.array.push(e.float())}else s.array.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Position"},n})();$root.UV=(()=>{function n(t){if(this.array=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.array=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.UV;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.array&&s.array.length||(s.array=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.array.push(e.float())}else s.array.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UV"},n})();$root.Normal=(()=>{function n(t){if(this.array=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.array=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Normal;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.array&&s.array.length||(s.array=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.array.push(e.float())}else s.array.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Normal"},n})();$root.Group=(()=>{function n(t){if(t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.start=0,n.prototype.count=0,n.prototype.materialIndex=0,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Group;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.start=e.uint32();break}case 2:{s.count=e.uint32();break}case 3:{s.materialIndex=e.uint32();break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("start"))throw $util.ProtocolError("missing required 'start'",{instance:s});if(!s.hasOwnProperty("count"))throw $util.ProtocolError("missing required 'count'",{instance:s});if(!s.hasOwnProperty("materialIndex"))throw $util.ProtocolError("missing required 'materialIndex'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Group"},n})();$root.Material=(()=>{function n(t){if(t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.kd=null,n.prototype.ks=null,n.prototype.ke=null,n.prototype.mapkd="",n.prototype.mapks="",n.prototype.mapke="",n.prototype.norm="",n.prototype.mapbump="",n.prototype.bump="",n.prototype.mapd="",n.prototype.ns=0,n.prototype.d=0,n.prototype.tr=0,n.prototype.mapkdrepeat="",n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Material;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.kd=$root.Color.decode(e,e.uint32());break}case 2:{s.ks=$root.Color.decode(e,e.uint32());break}case 3:{s.ke=$root.Color.decode(e,e.uint32());break}case 4:{s.mapkd=e.string();break}case 5:{s.mapks=e.string();break}case 6:{s.mapke=e.string();break}case 7:{s.norm=e.string();break}case 8:{s.mapbump=e.string();break}case 9:{s.bump=e.string();break}case 10:{s.mapd=e.string();break}case 11:{s.ns=e.float();break}case 12:{s.d=e.float();break}case 13:{s.tr=e.float();break}case 14:{s.mapkdrepeat=e.string();break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Material"},n})();$root.Color=(()=>{function n(t){if(this.rgb=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.rgb=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Color;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.rgb&&s.rgb.length||(s.rgb=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.rgb.push(e.float())}else s.rgb.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Color"},n})();var ROTATE_X_MATRIX$5=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadDome(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={byteLength:0};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"})}).then(function(s){var u,l;return o.byteLength=s.body.byteLength,parse$3(new Uint8Array(s.body),(u=t.light)!==null&&u!==void 0?u:!0,t.textureBaseUri||"",(l=t.textureOptions)!==null&&l!==void 0?l:{},r)}).then(function(s){var u=new THREE__namespace.Group;u.matrixAutoUpdate=!1,u.applyMatrix4(ROTATE_X_MATRIX$5),u.matrix.compose(u.position,u.quaternion,u.scale),u.name=n;for(var l=0,c=s.objects;l<c.length;l++){var f=c[l];u.add(f)}return{type:"dome",upAxis:"Z",uri:n,byteLength:o.byteLength,memoryUsage:getMemoryUsage(u),scene:u,textures:s.textures,dispose:function(){return s.dispose()}}})}function flipBufferGeometryNormals(n){for(var t=[0,0,0],e=0;e<n.attributes.normal.array.length/9;e++)t[0]=n.attributes.normal.array[e*9],t[1]=n.attributes.normal.array[e*9+1],t[2]=n.attributes.normal.array[e*9+2],n.attributes.normal.array[e*9]=n.attributes.normal.array[e*9+6],n.attributes.normal.array[e*9+1]=n.attributes.normal.array[e*9+7],n.attributes.normal.array[e*9+2]=n.attributes.normal.array[e*9+8],n.attributes.normal.array[e*9+6]=t[0],n.attributes.normal.array[e*9+7]=t[1],n.attributes.normal.array[e*9+8]=t[2];for(var e=0;e<n.attributes.position.array.length/9;e++)t[0]=n.attributes.position.array[e*9],t[1]=n.attributes.position.array[e*9+1],t[2]=n.attributes.position.array[e*9+2],n.attributes.position.array[e*9]=n.attributes.position.array[e*9+6],n.attributes.position.array[e*9+1]=n.attributes.position.array[e*9+7],n.attributes.position.array[e*9+2]=n.attributes.position.array[e*9+8],n.attributes.position.array[e*9+6]=t[0],n.attributes.position.array[e*9+7]=t[1],n.attributes.position.array[e*9+8]=t[2];for(var e=0;e<n.attributes.uv.array.length/6;e++)t[0]=n.attributes.uv.array[e*6],t[1]=n.attributes.uv.array[e*6+1],n.attributes.uv.array[e*6]=n.attributes.uv.array[e*6+4],n.attributes.uv.array[e*6+1]=n.attributes.uv.array[e*6+5],n.attributes.uv.array[e*6+4]=t[0],n.attributes.uv.array[e*6+5]=t[1];n.attributes.normal.needsUpdate=!0,n.attributes.position.needsUpdate=!0,n.attributes.uv.needsUpdate=!0}function parseGeometry(n){var t=n.position,e=n.normal,r=n.uv,o=n.uv2,s=n.groups,u=new THREE__namespace.BufferGeometry;u.setAttribute("position",new THREE__namespace.BufferAttribute(new Float32Array(t.array),3)),e&&u.setAttribute("normal",new THREE__namespace.BufferAttribute(new Float32Array(e.array),3)),r&&u.setAttribute("uv",new THREE__namespace.BufferAttribute(new Float32Array(r.array),2)),o&&u.setAttribute("uv2",new THREE__namespace.BufferAttribute(new Float32Array(o.array),2));for(var l=0,c=s;l<c.length;l++){var f=c[l];u.addGroup(f.start,f.count,f.materialIndex)}return u}function loadTexture(n,t,e,r,o,s,u){if(u.hasOwnProperty(n))return u[n];n=n.split("?")[0],isAbsoluteURL(n)||(n=pathJoin(t,n)),n=n.replace(/\/\/vrlab-image\d*.ljcdn.com\//,"//vrlab-public.ljcdn.com/"),n.indexOf("//")===0&&(n="https:"+n);var l=__assign({key:"texture.dome",size:64},pick(e,["quality","format","sharpen","mappings"])),c=u[n]=o.loadTexture(n,{imageURL:{transform:e.transform,options:l},wrapS:THREE__namespace.RepeatWrapping,wrapT:THREE__namespace.RepeatWrapping,fetcher:s}).then(function(f){var d=f.body;return r&&d.repeat.copy(r),d.needsUpdate=!0,d.updateMatrix(),d});return c}function parseMaterial(n,t,e,r,o,s,u,l,c){var f=[],d=new PBMMeshMaterial(t?"phong":"basic");if(l.add(d),n.kd&&(d.color=new THREE__namespace.Color().fromArray(n.kd.rgb).convertLinearToSRGB()),n.mapkd){var p=null;if(n.mapkdrepeat){var v=n.mapkdrepeat.split(/\s+/).map(function(y){return Number(y)}),A=v[0],g=v[1];p=new THREE__namespace.Vector2(A,g)}f.push(loadTexture(n.mapkd,e,r,p,o,s,u).then(function(y){y.encoding=THREE__namespace.sRGBEncoding,d.map=y,l.add(y),c.add(y),d.needsUpdate=!0}).catch(noop$1))}if(n.ks&&(d.specular=new THREE__namespace.Color().fromArray(n.ks.rgb).convertLinearToSRGB()),n.mapks&&f.push(loadTexture(n.mapks,e,r,null,o,s,u).then(function(y){d.specularMap=y,l.add(y),c.add(y)}).catch(noop$1)),n.ke&&(d.emissive=new THREE__namespace.Color().fromArray(n.ke.rgb).convertLinearToSRGB()),n.mapke&&f.push(loadTexture(n.mapke,e,r,null,o,s,u).then(function(y){y.encoding=THREE__namespace.sRGBEncoding,d.emissiveMap=y,l.add(y),c.add(y)}).catch(noop$1)),n.norm&&f.push(loadTexture(n.norm,e,r,null,o,s,u).then(function(y){d.normalMap=y,l.add(y),c.add(y)}).catch(noop$1)),n.mapbump&&f.push(loadTexture(n.mapbump,e,r,null,o,s,u).then(function(y){d.bumpMap=y,l.add(y),c.add(y)}).catch(noop$1)),n.bump&&f.push(loadTexture(n.bump,e,r,null,o,s,u).then(function(y){d.bumpMap=y,l.add(y),c.add(y)}).catch(noop$1)),typeof n.ns=="number"&&(d.shininess=n.ns),typeof n.d=="number"){var h=n.d;h>0&&h<1&&(d.opacity=h)}return d.floorIndex=0,d.refreshUniforms(),{material:d,textureReady:Promise.all(f).then(function(){return d.refreshUniforms()}).then(noop$1)}}function fromProtoBuf(n){return Model$1.decode(n).meshes}function parse$3(n,t,e,r,o){for(var s=[],u=[],l=new Set,c=fromProtoBuf(n),f=new TextureLoader,d=new THREE__namespace.Matrix4,p=new THREE__namespace.Vector3,v=new THREE__namespace.Quaternion,A=new THREE__namespace.Vector3,g={},h=new Set,y=0,m=c;y<m.length;y++){var E=m[y],b=E.name,T=E.chunks,_=E.matrix;if(!(b==="Ceiling"||b==="CeilingDrop"))for(var R=0,S=_;R<S.length;R++){var C=S[R];d.elements=C.elements;for(var B=new THREE__namespace.Group,L=0;L<T.length;L++){var M=parseGeometry(T[L].geometry);M.applyMatrix4(d),d.decompose(p,v,A),A.x*A.y*A.z<0&&M.attributes.normal&&M.attributes.position&&M.attributes.uv&&flipBufferGeometryNormals(M),l.add(M);for(var w=[],H=0,O=T[L].material;H<O.length;H++){var I=O[H],N=parseMaterial(I,t,e||"",r,f,o,g,l,h),k=N.material,U=N.textureReady;u.push(U),w.push(k)}var D=new PBMMesh(M,w);D.name="chunk_"+L,D.matrix.compose(D.position,D.quaternion,D.scale),D.matrixAutoUpdate=!1,D.frustumCulled=!1,B.add(D)}B.name=b,s.push(B)}}return Promise.all(u).catch(noop$1).then(function(){return{createAt:0,description:"",objects:s,textures:Array.from(h),dispose:function(){l.forEach(function(q){q.dispose()}),l.clear()}}})}var ROTATE_X_MATRIX$4=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadDomez(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={byteLength:0};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"})}).then(function(s){return o.byteLength=s.body.byteLength,lzma(s.body)}).then(function(s){var u=s.reduce(function(f,d){return f+d.length},0),l=new Uint8Array(u),c=0;return s.forEach(function(f){l.set(f,c),c+=f.length}),l}).then(function(s){var u,l;return parse$3(s,(u=t.light)!==null&&u!==void 0?u:!0,t.textureBaseUri||"",(l=t.textureOptions)!==null&&l!==void 0?l:{},r)}).then(function(s){var u=new THREE__namespace.Group;u.matrixAutoUpdate=!1,u.applyMatrix4(ROTATE_X_MATRIX$4),u.matrix.compose(u.position,u.quaternion,u.scale),u.name=n;for(var l=0,c=s.objects;l<c.length;l++){var f=c[l];u.add(f)}return{type:"domez",upAxis:"Z",uri:n,byteLength:o.byteLength,memoryUsage:getMemoryUsage(u),scene:u,textures:s.textures,dispose:function(){return s.dispose()}}})}var ROTATE_X_MATRIX$3=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadGltf(n,t){var e,r;t===void 0&&(t={});var o=(e=t.upAxis)!==null&&e!==void 0?e:"Y",s=(r=t.fetcher)!==null&&r!==void 0?r:new Fetcher({allowHosts:["*"]}),u=0;return Promise.resolve().then(function(){return s.ajax(n,{responseType:"arraybuffer"}).then(function(l){return u=l.body.byteLength,l.body})}).then(function(l){var c;return parseGltf(l,{copyUV2:!1,resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(c=n.split("?")[1])!==null&&c!==void 0?c:"",jsonModify:function(f){var d;if(f.extensionsUsed=(d=f.extensionsUsed)!==null&&d!==void 0?d:[],typeof t.light=="boolean"){var p="KHR_materials_unlit";if(t.light){var v=f.extensionsUsed.indexOf(p);v>=0&&f.extensionsUsed.splice(v,1)}else{var v=f.extensionsUsed.indexOf(p);v===-1&&f.extensionsUsed.push(p)}}{var p="PBM_mesh",v=f.extensionsUsed.indexOf(p);v===-1&&f.extensionsUsed.push(p)}return f},fetcher:s})}).then(function(l){var c=new THREE__namespace.Matrix4;if(o==="Y"&&c.premultiply(ROTATE_X_MATRIX$3),l.CESIUM_RTC){var f=new THREE__namespace.Matrix4().setPosition(l.CESIUM_RTC.center);c.premultiply(f)}var d=l.scene;return d.applyMatrix4(c),{type:"gltf",upAxis:"Z",uri:n,byteLength:u,memoryUsage:getMemoryUsage(d),scene:d,textures:l.textures,dispose:function(){return l.dispose()}}})}var ROTATE_X_MATRIX$2=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]),scratchColor=new THREE__namespace.Color;function loadPly(n,t){var e,r;t===void 0&&(t={});var o=(e=t.upAxis)!==null&&e!==void 0?e:"Z",s=(r=t.fetcher)!==null&&r!==void 0?r:new Fetcher({allowHosts:["*"]}),u=0;return Promise.resolve().then(function(){return s.ajax(n,{responseType:"arraybuffer"}).then(function(l){return u=l.body.byteLength,l.body})}).then(function(l){var c,f;return parsePly(l,{propertyNameMapping:(c=t.propertyNameMapping)!==null&&c!==void 0?c:{},customPropertyMapping:(f=t.customPropertyMapping)!==null&&f!==void 0?f:{}})}).then(function(l){var c=l.geometry;switch(t.type){case"geometry":{var f=c;return o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,memoryUsage:getGeometryMemoryUsed(f),scene:f,meta:{},textures:[],dispose:function(){c.dispose()}}}case"line":{var d="color"in c.attributes,p=new THREE__namespace.LineBasicMaterial({vertexColors:d}),f=new THREE__namespace.Line(c,p);return f.computeLineDistances(),o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,memoryUsage:getMemoryUsage(f),scene:f,meta:{},textures:[],dispose:function(){c.dispose(),p.dispose()}}}case"pbmMesh":{var v=new PBMMeshMaterial(t.light?"phong":"basic");v.vertexColors="color"in c.attributes;var f=new THREE__namespace.Mesh(c,v);return o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,memoryUsage:getMemoryUsage(f),scene:f,meta:{},textures:[],dispose:function(){c.dispose(),v.dispose()}}}case"pbmPointCloud":{var A=new PBMPointCloudMaterial,f=new PBMPointCloud(c,A);return o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,memoryUsage:getMemoryUsage(f),scene:f,meta:{},textures:[],dispose:function(){c.dispose(),A.dispose()}}}}throw new Error("Invalid Type: ".concat(t.type))})}function parsePly(n,t){var e=new Uint8Array(n),r=extractHeaderText(e),o=r.headerText,s=r.headerLength,u=parseHeader(o,s,t);if(u.format==="ascii"){var l=new TextDecoder().decode(e);return{header:u,geometry:parseASCII(l,u,t)}}else return{header:u,geometry:parseBinary(n,u,t)}}function makePlyElementProperty(n,t){var e={name:"",type:n[0]};return e.type==="list"?(e.name=n[3],e.countType=n[1],e.itemType=n[2]):e.name=n[1],e.name in t.propertyNameMapping&&(e.name=t.propertyNameMapping[e.name]),e}function parseHeader(n,t,e){t===void 0&&(t=0);var r=/^ply([\s\S]*)end_header(\r\n|\r|\n)/,o="",s=r.exec(n);s!==null&&(o=s[1]);for(var u={format:"",version:"",comments:[],elements:[],headerLength:t,objInfo:""},l=o.split(/\r\n|\r|\n/),c=null,f=0;f<l.length;f++){var d=l[f];if(d=d.trim(),d!==""){var p=d.split(/\s+/),v=p.shift();switch(d=p.join(" "),v){case"format":u.format=p[0],u.version=p[1];break;case"comment":u.comments.push(d);break;case"element":c&&u.elements.push(c),c={name:p[0],count:parseInt(p[1]),properties:[]};break;case"property":c&&c.properties.push(makePlyElementProperty(p,e));break;case"obj_info":u.objInfo=d;break;default:console.log("unhandled",v,p)}}}return c&&u.elements.push(c),u}function parseASCIINumber(n,t){switch(t){case"char":case"uchar":case"short":case"ushort":case"int":case"uint":case"int8":case"uint8":case"int16":case"uint16":case"int32":case"uint32":return parseInt(n);case"float":case"double":case"float32":case"float64":return parseFloat(n);default:throw new Error("unspport type: "+t)}}function parseASCIIElement(n,t){for(var e={},r=0;r<n.length;r++){if(t.empty())return null;if(n[r].type==="list"){for(var o=[],s=parseASCIINumber(t.next(),n[r].countType),u=0;u<s;u++){if(t.empty())return null;o.push(parseASCIINumber(t.next(),n[r].itemType))}e[n[r].name]=o}else e[n[r].name]=parseASCIINumber(t.next(),n[r].type)}return e}function createBuffer(n){for(var t={indices:[],vertices:[],normals:[],uvs:[],faceVertexUvs:[],colors:[],faceVertexColors:[]},e=0,r=Object.keys(n.customPropertyMapping);e<r.length;e++){var o=r[e];t[o]=[]}return t}function mapElementAttributes(n){var t=n.map(function(r){return r.name});function e(r){for(var o=0,s=r.length;o<s;o++){var u=r[o];if(t.includes(u))return u}return null}return{attrX:e(["x","px","posx"])||"x",attrY:e(["y","py","posy"])||"y",attrZ:e(["z","pz","posz"])||"z",attrNX:e(["nx","normalx"]),attrNY:e(["ny","normaly"]),attrNZ:e(["nz","normalz"]),attrS:e(["s","u","texture_u","tx"]),attrT:e(["t","v","texture_v","ty"]),attrR:e(["red","diffuse_red","r","diffuse_r"]),attrG:e(["green","diffuse_green","g","diffuse_g"]),attrB:e(["blue","diffuse_blue","b","diffuse_b"])}}function parseASCII(n,t,e){var r=createBuffer(e),o=/end_header\s+(\S[\s\S]*\S|\S)\s*$/,s,u=null;(u=o.exec(n))!==null?s=u[1].split(/\s+/):s=[];var l=new ArrayStream(s);e:for(var c=0;c<t.elements.length;c++)for(var f=t.elements[c],d=mapElementAttributes(f.properties),p=0;p<f.count;p++){var v=parseASCIIElement(f.properties,l);if(!v)break e;handleElement(r,f.name,v,d,e)}return postProcess(r,e)}function postProcess(n,t){var e=new THREE__namespace.BufferGeometry;n.indices.length>0&&e.setIndex(n.indices),e.setAttribute("position",new THREE__namespace.Float32BufferAttribute(n.vertices,3)),n.normals.length>0&&e.setAttribute("normal",new THREE__namespace.Float32BufferAttribute(n.normals,3)),n.uvs.length>0&&e.setAttribute("uv",new THREE__namespace.Float32BufferAttribute(n.uvs,2)),n.colors.length>0&&e.setAttribute("color",new THREE__namespace.Float32BufferAttribute(n.colors,3)),(n.faceVertexUvs.length>0||n.faceVertexColors.length>0)&&(e=e.toNonIndexed(),n.faceVertexUvs.length>0&&e.setAttribute("uv",new THREE__namespace.Float32BufferAttribute(n.faceVertexUvs,2)),n.faceVertexColors.length>0&&e.setAttribute("color",new THREE__namespace.Float32BufferAttribute(n.faceVertexColors,3)));for(var r=0,o=Object.keys(t.customPropertyMapping);r<o.length;r++){var s=o[r];if(n[s].length>0){var u=t.customPropertyMapping[s],l=u.itemType,c=u.itemNames,f=u.normalized,d=c.length,p=void 0;switch(l){case"float32":p=new THREE__namespace.Float32BufferAttribute(n[s],d,f);break;case"uint32":p=new THREE__namespace.Uint32BufferAttribute(n[s],d,f);break;case"int32":p=new THREE__namespace.Int32BufferAttribute(n[s],d,f);break;case"uint16":p=new THREE__namespace.Uint16BufferAttribute(n[s],d,f);break;case"int16":p=new THREE__namespace.Int16BufferAttribute(n[s],d,f);break;case"uint8":p=new THREE__namespace.Uint8BufferAttribute(n[s],d,f);break;case"int8":p=new THREE__namespace.Int8BufferAttribute(n[s],d,f);break;default:p=new THREE__namespace.Float32BufferAttribute(n[s],d,f);break}e.setAttribute(s,p)}}return e.computeBoundingSphere(),e}function handleElement(n,t,e,r,o){if(t==="vertex"){r.attrX!==null&&r.attrY!==null&&r.attrZ!==null&&n.vertices.push(e[r.attrX],e[r.attrY],e[r.attrZ]),r.attrNX!==null&&r.attrNY!==null&&r.attrNZ!==null&&n.normals.push(e[r.attrNX],e[r.attrNY],e[r.attrNZ]),r.attrS!==null&&r.attrT!==null&&n.uvs.push(e[r.attrS],e[r.attrT]),r.attrR!==null&&r.attrG!==null&&r.attrB!==null&&(scratchColor.setRGB(e[r.attrR]/255,e[r.attrG]/255,e[r.attrB]/255),n.colors.push(scratchColor.r,scratchColor.g,scratchColor.b));for(var s=0,u=Object.keys(o.customPropertyMapping);s<u.length;s++)for(var l=u[s],c=0,f=o.customPropertyMapping[l].itemNames;c<f.length;c++){var d=f[c];n[l].push(e[d])}}else if(t==="face"){var p=e.vertex_indices||e.vertex_index,v=e.texcoord;p.length===3?(n.indices.push(p[0],p[1],p[2]),v&&v.length===6&&(n.faceVertexUvs.push(v[0],v[1]),n.faceVertexUvs.push(v[2],v[3]),n.faceVertexUvs.push(v[4],v[5]))):p.length===4&&(n.indices.push(p[0],p[1],p[3]),n.indices.push(p[1],p[2],p[3])),r.attrR!==null&&r.attrG!==null&&r.attrB!==null&&(scratchColor.setRGB(e[r.attrR]/255,e[r.attrG]/255,e[r.attrB]/255),n.faceVertexColors.push(scratchColor.r,scratchColor.g,scratchColor.b),n.faceVertexColors.push(scratchColor.r,scratchColor.g,scratchColor.b),n.faceVertexColors.push(scratchColor.r,scratchColor.g,scratchColor.b))}}function binaryReadElement(n,t){for(var e={},r=0,o=0;o<t.length;o++){var s=t[o],u=s.valueReader;if(s.type==="list"){var l=[],c=s.countReader.read(n+r);r+=s.countReader.size;for(var f=0;f<c;f++)l.push(u.read(n+r)),r+=u.size;e[s.name]=l}else e[s.name]=u.read(n+r),r+=u.size}return[e,r]}function setPropertyBinaryReaders(n,t,e){function r(l,c,f){switch(c){case"int8":case"char":return{read:function(d){return l.getInt8(d)},size:1};case"uint8":case"uchar":return{read:function(d){return l.getUint8(d)},size:1};case"int16":case"short":return{read:function(d){return l.getInt16(d,f)},size:2};case"uint16":case"ushort":return{read:function(d){return l.getUint16(d,f)},size:2};case"int32":case"int":return{read:function(d){return l.getInt32(d,f)},size:4};case"uint32":case"uint":return{read:function(d){return l.getUint32(d,f)},size:4};case"float32":case"float":return{read:function(d){return l.getFloat32(d,f)},size:4};case"float64":case"double":return{read:function(d){return l.getFloat64(d,f)},size:8};default:throw new Error("not support type: "+c)}}for(var o=0,s=n.length;o<s;o++){var u=n[o];u.type==="list"?(u.countReader=r(t,u.countType,e),u.valueReader=r(t,u.itemType,e)):u.valueReader=r(t,u.type,e)}}function parseBinary(n,t,e){for(var r=createBuffer(e),o=t.format==="binary_little_endian",s=new DataView(n,t.headerLength),u,l=0,c=0;c<t.elements.length;c++){var f=t.elements[c],d=f.properties,p=mapElementAttributes(d);setPropertyBinaryReaders(d,s,o);for(var v=0;v<f.count;v++){u=binaryReadElement(l,d),l+=u[1];var A=u[0];handleElement(r,f.name,A,p,e)}}return postProcess(r,e)}function extractHeaderText(n){var t=0,e=!0,r="",o=[],s=new TextDecoder().decode(n.subarray(0,5)),u=/^ply\r\n/.test(s);do{var l=String.fromCharCode(n[t++]);l!==`
|
|
929
929
|
`&&l!=="\r"?r+=l:(r==="end_header"&&(e=!1),r!==""&&(o.push(r),r=""))}while(e&&t<n.length);return u===!0&&t++,{headerText:o.join("\r")+"\r",headerLength:t}}var ArrayStream=function(){function n(t){this.arr=t,this.i=0}return n.prototype.empty=function(){return this.i>=this.arr.length},n.prototype.next=function(){return this.arr[this.i++]},n}(),ROTATE_X_MATRIX$1=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]),_object_pattern=/^[og]\s*(.+)?/,_material_library_pattern=/^mtllib /,_material_use_pattern=/^usemtl /,_map_use_pattern=/^usemap /,_face_vertex_data_separator_pattern=/\s+/,_color=new THREE__namespace.Color,ObjState=function(){function n(){this.objects=[],this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.materials={},this.materialLibraries=[],this.startObject("",!1)}return n.prototype.startObject=function(t,e){if(this.object&&this.object.fromDeclaration===!1){this.object.name=t,this.object.fromDeclaration=e!==!1;return}var r=this.object&&typeof this.object.currentMaterial=="function"?this.object.currentMaterial():void 0;if(this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0),this.object={name:t||"",fromDeclaration:e!==!1,geometry:{vertices:[],hasNormal:!0,normals:[],hasColor:!0,colors:[],hasUV:!0,uvs:[],index:[],indexMap:{}},materials:[],smooth:!0,startMaterial:function(s,u){var l,c,f=this._finalize(!1);f&&(f.inherited||((l=f.groupCount)!==null&&l!==void 0?l:0)<=0)&&this.materials.splice((c=f.index)!==null&&c!==void 0?c:0,1);var d={index:this.materials.length,name:s||"",mtllib:Array.isArray(u)&&u.length>0?u[u.length-1]:"",smooth:f!==void 0?f.smooth:this.smooth,groupStart:f!==void 0?f.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(p){var v={index:typeof p=="number"?p:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(){return this}};return v.clone=this.clone.bind(v),v}};return this.materials.push(d),d},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(s){var u,l,c=this.currentMaterial();if(c&&c.groupEnd===-1&&(c.groupEnd=this.geometry.index.length,c.groupCount=c.groupEnd-((u=c.groupStart)!==null&&u!==void 0?u:0),c.inherited=!1),s&&this.materials.length>1)for(var f=this.materials.length-1;f>=0;f--)((l=this.materials[f].groupCount)!==null&&l!==void 0?l:0)<=0&&this.materials.splice(f,1);return s&&this.materials.length===0&&this.materials.push({name:"",smooth:this.smooth}),c}},r&&r.name&&typeof r.clone=="function"){var o=r.clone(0);o.inherited=!0,this.object.materials.push(o)}this.objects.push(this.object)},n.prototype.finalize=function(){this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0)},n.prototype.parseVertexIndex=function(t,e){var r=parseInt(t,10);return(r>=0?r-1:r+e/3)*3},n.prototype.parseNormalIndex=function(t,e){var r=parseInt(t,10);return(r>=0?r-1:r+e/3)*3},n.prototype.parseUVIndex=function(t,e){var r=parseInt(t,10);return(r>=0?r-1:r+e/2)*2},n.prototype.addFace=function(t,e,r,o,s,u,l,c,f){var d=this.object.geometry,p=this.vertices.length,v=this.normals.length,A=this.uvs.length,g=this.parseVertexIndex(t,p),h=this.parseVertexIndex(e,p),y=this.parseVertexIndex(r,p),m=l!==void 0?this.parseNormalIndex(l,v):void 0,E=c!==void 0?this.parseNormalIndex(c,v):void 0,b=f!==void 0?this.parseNormalIndex(f,v):void 0,T=o!==void 0?this.parseUVIndex(o,A):void 0,_=s!==void 0?this.parseUVIndex(s,A):void 0,R=u!==void 0?this.parseUVIndex(u,A):void 0;(d.hasNormal===!0&&m===void 0||E===void 0||b===void 0)&&(d.hasNormal=!1),(d.hasUV===!0&&T===void 0||_===void 0||R===void 0)&&(d.hasUV=!1);var S=[g,T,m].join(":"),C=d.indexMap[S];C===void 0&&(C=d.vertices.length/3,d.indexMap[S]=C,d.vertices.push(this.vertices[g+0],this.vertices[g+1],this.vertices[g+2]),d.hasColor&&(this.colors[g]===void 0?d.hasColor=!1:d.colors.push(this.colors[g+0],this.colors[g+1],this.colors[g+2])),d.hasNormal&&d.normals.push(this.normals[g+0],this.normals[g+1],this.normals[g+2]),d.hasUV&&d.uvs.push(this.uvs[T+0],this.uvs[T+1])),d.index.push(C);var B=[h,_,E].join(":"),L=d.indexMap[B];L===void 0&&(L=d.vertices.length/3,d.indexMap[B]=L,d.vertices.push(this.vertices[h+0],this.vertices[h+1],this.vertices[h+2]),d.hasColor&&(this.colors[h]===void 0?d.hasColor=!1:d.colors.push(this.colors[h+0],this.colors[h+1],this.colors[h+2])),d.hasNormal&&d.normals.push(this.normals[h+0],this.normals[h+1],this.normals[h+2]),d.hasUV&&d.uvs.push(this.uvs[_+0],this.uvs[_+1])),d.index.push(L);var M=[y,R,b].join(":"),w=d.indexMap[M];w===void 0&&(w=d.vertices.length/3,d.indexMap[M]=w,d.vertices.push(this.vertices[y+0],this.vertices[y+1],this.vertices[y+2]),d.hasColor&&(this.colors[y]===void 0?d.hasColor=!1:d.colors.push(this.colors[y+0],this.colors[y+1],this.colors[y+2])),d.hasNormal&&d.normals.push(this.normals[y+0],this.normals[y+1],this.normals[y+2]),d.hasUV&&d.uvs.push(this.uvs[R+0],this.uvs[R+1])),d.index.push(w)},n}();function parseObj(n){var t=new ObjState;n.indexOf(`\r
|
|
930
930
|
`)!==-1&&(n=n.replace(/\r\n/g,`
|
|
931
931
|
`)),n.indexOf(`\\
|
|
932
932
|
`)!==-1&&(n=n.replace(/\\\n/g,""));for(var e=n.split(`
|
|
933
933
|
`),r=[],o=0,s=e.length;o<s;o++){var u=e[o].trimStart();if(u.length!==0){var l=u.charAt(0);if(l!=="#"){if(l==="v"){var c=u.split(_face_vertex_data_separator_pattern);switch(c[0]){case"v":t.vertices.push(parseFloat(c[1]),parseFloat(c[2]),parseFloat(c[3])),c.length>=7?(_color.setRGB(parseFloat(c[4]),parseFloat(c[5]),parseFloat(c[6])),_color.convertSRGBToLinear(),t.colors.push(_color.r,_color.g,_color.b)):t.colors.push(void 0,void 0,void 0);break;case"vn":t.normals.push(parseFloat(c[1]),parseFloat(c[2]),parseFloat(c[3]));break;case"vt":t.uvs.push(parseFloat(c[1]),parseFloat(c[2]));break}}else if(l==="f"){for(var f=u.slice(1).trim(),d=f.split(_face_vertex_data_separator_pattern),p=[],v=0,A=d.length;v<A;v++){var g=d[v];if(g.length>0){var h=g.split("/");p.push(h)}}for(var y=p[0],v=1,A=p.length-1;v<A;v++){var m=p[v],E=p[v+1];t.addFace(y[0],m[0],E[0],y[1],m[1],E[1],y[2],m[2],E[2])}}else if(l!=="l"){if(l!=="p")if((r=_object_pattern.exec(u))!==null){var b=(" "+r[0].slice(1).trim()).slice(1);t.startObject(b)}else if(_material_use_pattern.test(u))t.object.startMaterial(u.substring(7).trim(),t.materialLibraries);else if(_material_library_pattern.test(u))t.materialLibraries.push(u.substring(7).trim());else if(_map_use_pattern.test(u))console.warn('THREE.OBJLoader: Rendering identifier "usemap" not supported. Textures must be defined in MTL files.');else if(l==="s"){if(r=u.split(" "),r.length>1){var T=r[1].trim().toLowerCase();t.object.smooth=T!=="0"&&T!=="off"}else t.object.smooth=!0;var _=t.object.currentMaterial();_&&(_.smooth=t.object.smooth)}else{if(u==="\0")continue;console.warn('THREE.OBJLoader: Unexpected line: "'+u+'"')}}}}}return t.finalize(),t}function parseMtl(n,t,e){for(var r=new TextureLoader,o=t.split(`
|
|
934
|
-
`),s={name:""},u=/\s+/,l={},c=0;c<o.length;c++){var f=o[c];if(f=f.trim(),!(f.length===0||f.charAt(0)==="#")){var d=f.indexOf(" "),p=d>=0?f.substring(0,d):f;p=p.toLowerCase();var v=d>=0?f.substring(d+1):"";if(v=v.trim(),p==="newmtl")s={name:v},l[v]=s;else if(p==="ka"||p==="kd"||p==="ks"||p==="ke"){var A=v.split(u,3);s[p]=[parseFloat(A[0]),parseFloat(A[1]),parseFloat(A[2])]}else(p==="map_kd"||p==="map_ks"||p==="map_ke"||p==="norm"||p==="map_bump"||p==="bump"||p==="map_d"||p==="ns"||p==="d"||p==="tr")&&(s[p]=v)}}function g(y){var m={url:"",scale:new THREE__namespace.Vector2(1,1),offset:new THREE__namespace.Vector2(0,0),bumpScale:1},E=y.split(/\s+/),b;return b=E.indexOf("-bm"),b>=0&&(m.bumpScale=parseFloat(E[b+1]),E.splice(b,2)),b=E.indexOf("-s"),b>=0&&(m.scale.set(parseFloat(E[b+1]),parseFloat(E[b+2])),E.splice(b,4)),b=E.indexOf("-o"),b>=0&&(m.offset.set(parseFloat(E[b+1]),parseFloat(E[b+2])),E.splice(b,4)),m.url=E.join(" ").trim(),m}function h(y,m,E){var b=g(E),T=pathJoin(e.path,b.url);return r.loadTexture(T,{fetcher:e.fetcher,encoding:m==="map"||m==="emissiveMap"?THREE__namespace.sRGBEncoding:THREE__namespace.LinearEncoding,minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,wrapS:THREE__namespace.RepeatWrapping,wrapT:THREE__namespace.RepeatWrapping}).then(function(_){var R=_.body;return R.repeat.copy(b.scale),R.offset.copy(b.offset),y.bumpScale=b.bumpScale,y[m]=R,R})}return{name:n,create:function(y){var m=new PBMMeshMaterial(e.light?"phong":"basic"),E=[],b=l[y];if(b){if(b.kd!==void 0&&m.color.fromArray(b.kd),b.ks!==void 0&&m.specular.fromArray(b.ks),b.ke!==void 0&&m.emissive.fromArray(b.ke),b.map_kd!==void 0&&E.push(h(m,"map",b.map_kd)),b.map_ks!==void 0&&E.push(h(m,"specularMap",b.map_ks)),b.map_ke!==void 0&&E.push(h(m,"emissiveMap",b.map_ke)),b.norm!==void 0&&E.push(h(m,"normalMap",b.norm)),b.map_bump!==void 0&&E.push(h(m,"bumpMap",b.map_bump)),b.bump!==void 0&&E.push(h(m,"bumpMap",b.bump)),b.map_d!==void 0&&E.push(h(m,"alphaMap",b.map_d)),b.ns!==void 0&&(m.shininess=parseFloat(b.ns)),b.d!==void 0){var T=parseFloat(b.d);T<1&&(m.opacity=T,m.transparent=!0)}if(b.tr!==void 0){var T=parseFloat(b.tr);T>0&&(m.opacity=1-T,m.transparent=!0)}}var _=Promise.all(E).then(function(R){return m.refreshUniforms(),R});return[m,_]}}}function build(n,t){for(var e,r=[],o=[],s=new THREE__namespace.Group,u=function(f,d){var p=n.objects[f],v=p.geometry,A=p.materials,g=!1;if(v.vertices.length===0)return"continue";var h=new THREE__namespace.BufferGeometry;o.push(function(){return h.dispose()}),h.setAttribute("position",new THREE__namespace.BufferAttribute(new Float32Array(v.vertices),3)),v.normals.length>0&&h.setAttribute("normal",new THREE__namespace.BufferAttribute(new Float32Array(v.normals),3)),v.colors.length>0&&(g=!0,h.setAttribute("color",new THREE__namespace.BufferAttribute(new Float32Array(v.colors),3))),v.uvs.length>0&&h.setAttribute("uv",new THREE__namespace.BufferAttribute(new Float32Array(v.uvs),2)),v.index.length>0&&h.setIndex(new THREE__namespace.BufferAttribute(new Uint32Array(v.index),1)),h.computeBoundingBox(),h.computeBoundingSphere();for(var y=[],m=function(R,S){var C=A[R],B=C.name+"_"+C.smooth+"_"+g,L=n.materials[B];if(!L){for(var M=null,w=0,H=t;w<H.length;w++){var O=H[w],I=O.name,N=O.create;I===C.mtllib&&(M=N(C.name))}if(!M){var k=new PBMMeshMaterial;k.refreshUniforms(),M=[k,Promise.resolve([])]}L=M[0],L.name=C.name,L.flatShading=!(C.smooth||h.attributes.normal),L.vertexColors=g,n.materials[B]=L;var U=M[1];r.push(U),o.push(function(){return L.dispose()})}y.push(L)},E=0,b=A.length;E<b;E++)m(E);h.clearGroups();for(var E=0,b=A.length;E<b;E++){var T=A[E];T.groupCount&&h.addGroup((e=T.groupStart)!==null&&e!==void 0?e:0,T.groupCount,E)}(!h.groups||h.groups.length===0)&&h.addGroup(0,h.index?h.index.count:h.attributes.position.count,0);var _=new PBMMesh(h,y);_.name=p.name,s.add(_)},l=0,c=n.objects.length;l<c;l++)u(l);return Promise.all(r).then(function(f){for(var d=[],p=0,v=f;p<v.length;p++){var A=v[p];d=d.concat(A)}return{scene:s,textures:d,dispose:function(){return o.forEach(function(g){return g()})}}})}function loadObj(n,t){var e,r;t===void 0&&(t={});var o=(e=t.upAxis)!==null&&e!==void 0?e:"Z",s=(r=t.fetcher)!==null&&r!==void 0?r:new Fetcher({allowHosts:["*"]}),u=n.slice(0,n.lastIndexOf("/")+1),l=0,c;return Promise.resolve().then(function(){return s.ajax(n,{responseType:"arraybuffer"})}).then(function(f){l=f.body.byteLength;var d=new TextDecoder;return d.decode(f.body)}).then(function(f){return c=parseObj(f),Promise.all(c.materialLibraries.map(function(d){var p=pathJoin(u,d),v=p.slice(0,p.lastIndexOf("/")+1);return s.ajax(p,{responseType:"text"}).then(function(A){var g;return parseMtl(d,A.body,{path:v,light:(g=t.light)!==null&&g!==void 0?g:!1,fetcher:s})})}))}).then(function(f){return build(c,f)}).then(function(f){var d=new THREE__namespace.Matrix4;return o==="Y"&&d.premultiply(ROTATE_X_MATRIX$1),f.scene.applyMatrix4(d),{type:"obj",upAxis:"Z",uri:n,byteLength:l,memoryUsage:getMemoryUsage(f.scene),scene:f.scene,textures:f.textures,dispose:function(){return f.dispose()}}})}var u8=Uint8Array,u16=Uint16Array,i32=Int32Array,fleb=new u8([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),fdeb=new u8([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),clim=new u8([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),freb=function(n,t){for(var e=new u16(31),r=0;r<31;++r)e[r]=t+=1<<n[r-1];for(var o=new i32(e[30]),r=1;r<30;++r)for(var s=e[r];s<e[r+1];++s)o[s]=s-e[r]<<5|r;return{b:e,r:o}},_a$3=freb(fleb,2),fl=_a$3.b,revfl=_a$3.r;fl[28]=258,revfl[258]=28;var _b=freb(fdeb,0),fd=_b.b,rev=new u16(32768);for(var i=0;i<32768;++i){var x=(i&43690)>>1|(i&21845)<<1;x=(x&52428)>>2|(x&13107)<<2,x=(x&61680)>>4|(x&3855)<<4,rev[i]=((x&65280)>>8|(x&255)<<8)>>1}var hMap=function(n,t,e){for(var r=n.length,o=0,s=new u16(t);o<r;++o)n[o]&&++s[n[o]-1];var u=new u16(t);for(o=1;o<t;++o)u[o]=u[o-1]+s[o-1]<<1;var l;if(e){l=new u16(1<<t);var c=15-t;for(o=0;o<r;++o)if(n[o])for(var f=o<<4|n[o],d=t-n[o],p=u[n[o]-1]++<<d,v=p|(1<<d)-1;p<=v;++p)l[rev[p]>>c]=f}else for(l=new u16(r),o=0;o<r;++o)n[o]&&(l[o]=rev[u[n[o]-1]++]>>15-n[o]);return l},flt=new u8(288);for(var i=0;i<144;++i)flt[i]=8;for(var i=144;i<256;++i)flt[i]=9;for(var i=256;i<280;++i)flt[i]=7;for(var i=280;i<288;++i)flt[i]=8;var fdt=new u8(32);for(var i=0;i<32;++i)fdt[i]=5;var flrm=hMap(flt,9,1),fdrm=hMap(fdt,5,1),max=function(n){for(var t=n[0],e=1;e<n.length;++e)n[e]>t&&(t=n[e]);return t},bits=function(n,t,e){var r=t/8|0;return(n[r]|n[r+1]<<8)>>(t&7)&e},bits16=function(n,t){var e=t/8|0;return(n[e]|n[e+1]<<8|n[e+2]<<16)>>(t&7)},shft=function(n){return(n+7)/8|0},slc=function(n,t,e){return(t==null||t<0)&&(t=0),(e==null||e>n.length)&&(e=n.length),new u8(n.subarray(t,e))},ec=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],err=function(n,t,e){var r=new Error(t||ec[n]);if(r.code=n,Error.captureStackTrace&&Error.captureStackTrace(r,err),!e)throw r;return r},inflt=function(n,t,e,r){var o=n.length,s=r?r.length:0;if(!o||t.f&&!t.l)return e||new u8(0);var u=!e,l=u||t.i!=2,c=t.i;u&&(e=new u8(o*3));var f=function(se){var ie=e.length;if(se>ie){var ue=new u8(Math.max(ie*2,se));ue.set(e),e=ue}},d=t.f||0,p=t.p||0,v=t.b||0,A=t.l,g=t.d,h=t.m,y=t.n,m=o*8;do{if(!A){d=bits(n,p,1);var E=bits(n,p+1,3);if(p+=3,E)if(E==1)A=flrm,g=fdrm,h=9,y=5;else if(E==2){var R=bits(n,p,31)+257,S=bits(n,p+10,15)+4,C=R+bits(n,p+5,31)+1;p+=14;for(var B=new u8(C),L=new u8(19),M=0;M<S;++M)L[clim[M]]=bits(n,p+M*3,7);p+=S*3;for(var w=max(L),H=(1<<w)-1,O=hMap(L,w,1),M=0;M<C;){var I=O[bits(n,p,H)];p+=I&15;var b=I>>4;if(b<16)B[M++]=b;else{var N=0,k=0;for(b==16?(k=3+bits(n,p,3),p+=2,N=B[M-1]):b==17?(k=3+bits(n,p,7),p+=3):b==18&&(k=11+bits(n,p,127),p+=7);k--;)B[M++]=N}}var U=B.subarray(0,R),D=B.subarray(R);h=max(U),y=max(D),A=hMap(U,h,1),g=hMap(D,y,1)}else err(1);else{var b=shft(p)+4,T=n[b-4]|n[b-3]<<8,_=b+T;if(_>o){c&&err(0);break}l&&f(v+T),e.set(n.subarray(b,_),v),t.b=v+=T,t.p=p=_*8,t.f=d;continue}if(p>m){c&&err(0);break}}l&&f(v+131072);for(var q=(1<<h)-1,z=(1<<y)-1,Q=p;;Q=p){var N=A[bits16(n,p)&q],G=N>>4;if(p+=N&15,p>m){c&&err(0);break}if(N||err(2),G<256)e[v++]=G;else if(G==256){Q=p,A=null;break}else{var X=G-254;if(G>264){var M=G-257,$=fleb[M];X=bits(n,p,(1<<$)-1)+fl[M],p+=$}var W=g[bits16(n,p)&z],oe=W>>4;W||err(3),p+=W&15;var D=fd[oe];if(oe>3){var $=fdeb[oe];D+=bits16(n,p)&(1<<$)-1,p+=$}if(p>m){c&&err(0);break}l&&f(v+131072);var ae=v+X;if(v<D){var re=s-D,j=Math.min(D,ae);for(re+v<0&&err(3);v<j;++v)e[v]=r[re+v]}for(;v<ae;++v)e[v]=e[v-D]}}t.l=A,t.p=Q,t.b=v,t.f=d,A&&(d=1,t.m=h,t.d=g,t.n=y)}while(!d);return v!=e.length&&u?slc(e,0,v):e.subarray(0,v)},et=new u8(0),b2=function(n,t){return n[t]|n[t+1]<<8},b4=function(n,t){return(n[t]|n[t+1]<<8|n[t+2]<<16|n[t+3]<<24)>>>0},b8=function(n,t){return b4(n,t)+b4(n,t+4)*4294967296},zls=function(n,t){return((n[0]&15)!=8||n[0]>>4>7||(n[0]<<8|n[1])%31)&&err(6,"invalid zlib data"),(n[1]>>5&1)==+!t&&err(6,"invalid zlib data: "+(n[1]&32?"need":"unexpected")+" dictionary"),(n[1]>>3&4)+2};function inflateSync(n,t){return inflt(n,{i:2},t&&t.out,t&&t.dictionary)}function unzlibSync(n,t){return inflt(n.subarray(zls(n,t),-4),{i:2},t,t)}var td=typeof TextDecoder!="undefined"&&new TextDecoder,tds=0;try{td.decode(et,{stream:!0}),tds=1}catch(n){}var dutf8=function(n){for(var t="",e=0;;){var r=n[e++],o=(r>127)+(r>223)+(r>239);if(e+o>n.length)return{s:t,r:slc(n,e-1)};o?o==3?(r=((r&15)<<18|(n[e++]&63)<<12|(n[e++]&63)<<6|n[e++]&63)-65536,t+=String.fromCharCode(55296|r>>10,56320|r&1023)):o&1?t+=String.fromCharCode((r&31)<<6|n[e++]&63):t+=String.fromCharCode((r&15)<<12|(n[e++]&63)<<6|n[e++]&63):t+=String.fromCharCode(r)}};function strFromU8(n,t){if(t){for(var e="",r=0;r<n.length;r+=16384)e+=String.fromCharCode.apply(null,n.subarray(r,r+16384));return e}else{if(td)return td.decode(n);var o=dutf8(n),s=o.s,e=o.r;return e.length&&err(8),s}}var slzh=function(n,t){return t+30+b2(n,t+26)+b2(n,t+28)},zh=function(n,t,e){var r=b2(n,t+28),o=strFromU8(n.subarray(t+46,t+46+r),!(b2(n,t+8)&2048)),s=t+46+r,u=b4(n,t+20),l=e&&u==4294967295?z64e(n,s):[u,b4(n,t+24),b4(n,t+42)],c=l[0],f=l[1],d=l[2];return[b2(n,t+10),c,f,o,s+b2(n,t+30)+b2(n,t+32),d]},z64e=function(n,t){for(;b2(n,t)!=1;t+=4+b2(n,t+2));return[b8(n,t+12),b8(n,t+4),b8(n,t+20)]};function unzipSync(n,t){for(var e={},r=n.length-22;b4(n,r)!=101010256;--r)(!r||n.length-r>65558)&&err(13);var o=b2(n,r+8);if(!o)return{};var s=b4(n,r+16),u=s==4294967295||o==65535;if(u){var l=b4(n,r-12);u=b4(n,l)==101075792,u&&(o=b4(n,l+32),s=b4(n,l+48))}for(var c=0;c<o;++c){var f=zh(n,s,u),d=f[0],p=f[1],v=f[2],A=f[3],g=f[4],h=f[5],y=slzh(n,h);s=g,d?d==8?e[A]=inflateSync(n.subarray(y,y+p),{out:new u8(v)}):err(14,"unknown compression type "+d):e[A]=slc(n,y,y+p)}return e}var ROTATE_X_MATRIX=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadFbx(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o=0;return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"}).then(function(s){return o=s.body.byteLength,s.body})}).then(function(s){var u;return parse$2(s,{light:t.light,resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(u=n.split("?")[1])!==null&&u!==void 0?u:"",fetcher:r})}).then(function(s){var u=s.scene,l=s.unitScale/100,c=new THREE__namespace.Matrix4;return c.makeScale(l,l,l),s.upAxis==="Y"&&c.premultiply(ROTATE_X_MATRIX),u.applyMatrix4(c),{type:"fbx",upAxis:"Z",uri:n,byteLength:o,memoryUsage:getMemoryUsage(u),scene:u,textures:s.textures,dispose:function(){return s.dispose()}}})}function parse$2(n,t){var e;if(isFbxFormatBinary(n))e=new BinaryParser().parse(n);else{var r=convertArrayBufferToString(n);if(!isFbxFormatASCII(r))throw new Error("THREE.FBXLoader: Unknown format.");if(getFbxVersion(r)<7e3)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+getFbxVersion(r));e=new TextParser().parse(r)}return new FBXTreeParser(t).parse(e)}var FBXTreeParser=function(){function n(t){var e,r,o;this.light=(e=t.light)!==null&&e!==void 0?e:!0,this.resourcePath=(r=t.resourcePath)!==null&&r!==void 0?r:"",this.search=(o=t.search)!==null&&o!==void 0?o:"",this.fetcher=t.fetcher}return n.prototype.parse=function(t){var e,r,o,s,u,l,c=this.parseConnections(t),f=new THREE__namespace.Group,d=[],p=this.parseImages(t),v=this.parseTextures(t,p,c,d),A=this.parseMaterials(t,v,c),g=this.parseDeformers(t,c),h=new GeometryParser().parse(t,g,c);this.parseScene(t,g,h,A,c,f);var y=(r=(e=t.GlobalSettings.UpAxis)===null||e===void 0?void 0:e.value)!==null&&r!==void 0?r:1,m=(s=(o=t.GlobalSettings.FrontAxis)===null||o===void 0?void 0:o.value)!==null&&s!==void 0?s:2,E=(l=(u=t.GlobalSettings.UnitScaleFactor)===null||u===void 0?void 0:u.value)!==null&&l!==void 0?l:1,b;if(t.GlobalSettings.AmbientColor){var T=t.GlobalSettings.AmbientColor.value,_=T[0],R=T[1],S=T[2];if(_!==0||R!==0||S!==0){var C=new THREE__namespace.Color().setRGB(_,R,S);b=new THREE__namespace.AmbientLight(C,1)}}return Promise.all(d).then(function(B){return{scene:f,textures:B,ambientLight:b,upAxis:["X","Y","Z"][y],frontAxis:["X","Y","Z"][m],unitScale:E,dispose:function(){B.forEach(function(L){return L.dispose()}),A.forEach(function(L){return L.dispose()}),h.forEach(function(L){return L.dispose()})}}})},n.prototype.parseConnections=function(t){var e=new Map;if("Connections"in t){var r=t.Connections.connections;r.forEach(function(o){var s=o[0],u=o[1],l=o[2];e.has(s)||e.set(s,{parents:[],children:[]});var c={ID:u,relationship:l};e.get(s).parents.push(c),e.has(u)||e.set(u,{parents:[],children:[]});var f={ID:s,relationship:l};e.get(u).children.push(f)})}return e},n.prototype.parseImages=function(t){var e={},r={};if("Video"in t.Objects){var o=t.Objects.Video;for(var s in o){var u=o[s],l=parseInt(s);if(e[l]=u.RelativeFilename||u.Filename,"Content"in u){var c=u.Content instanceof ArrayBuffer&&u.Content.byteLength>0,f=typeof u.Content=="string"&&u.Content!=="";if(c||f){var d=this.parseImage(o[s]);r[u.RelativeFilename||u.Filename]=d}}}}for(var l in e){var p=e[l];r[p]!==void 0?e[l]=r[p]:e[l]=e[l].split("\\").pop()}return e},n.prototype.parseImage=function(t){var e=t.Content,r=t.RelativeFilename||t.Filename,o=r.slice(r.lastIndexOf(".")+1).toLowerCase(),s;switch(o){case"bmp":s="image/bmp";break;case"jpg":case"jpeg":s="image/jpeg";break;case"png":s="image/png";break;case"tif":s="image/tiff";break;case"tga":s="image/tga";break;default:return}if(typeof e=="string")return"data:"+s+";base64,"+e;var u=new Uint8Array(e);return window.URL.createObjectURL(new Blob([u],{type:s}))},n.prototype.parseTextures=function(t,e,r,o){var s=new Map;if("Texture"in t.Objects){var u=t.Objects.Texture;for(var l in u){var c=this.parseTexture(u[l],e,r,o);s.set(parseInt(l),c)}}return s},n.prototype.parseTexture=function(t,e,r,o){var s=this.loadTexture(t,e,r,o);s.ID=t.id,s.name=t.attrName;var u=t.WrapModeU,l=t.WrapModeV,c=u!==void 0?u.value:0,f=l!==void 0?l.value:0;if(s.wrapS=c===0?THREE__namespace.RepeatWrapping:THREE__namespace.ClampToEdgeWrapping,s.wrapT=f===0?THREE__namespace.RepeatWrapping:THREE__namespace.ClampToEdgeWrapping,t.Scaling){var d=t.Scaling.value;s.repeat.x=d[0],s.repeat.y=d[1]}if(t.Translation){var d=t.Translation.value;s.offset.x=d[0],s.offset.y=d[1]}return s},n.prototype.loadTexture=function(t,e,r,o){var s=r.get(t.id).children,u="";s!==void 0&&s.length>0&&e[s[0].ID]!==void 0&&(u=e[s[0].ID]),u=pathJoin(this.resourcePath,appendSearch(u,this.search));var l=Object.assign(new THREE__namespace.Texture,{ID:0}),c;c=this.fetcher.loadImage(u,{},void 0,void 0,void 0,createImageBitmapLikeImage()).then(function(d){return d.body});var f=c.then(function(d){return l.image=d,l.needsUpdate=!0,l});return o.push(f),l},n.prototype.parseMaterials=function(t,e,r){var o=new Map;if("Material"in t.Objects){var s=t.Objects.Material;for(var u in s){var l=this.parseMaterial(t,s[u],e,r);l!==null&&o.set(parseInt(u),l)}}return o},n.prototype.parseMaterial=function(t,e,r,o){var s=e.id;e.attrName;var u=e.ShadingModel;if(typeof u=="object"&&(u=u.value),u=u.toLowerCase(),!o.has(s))return null;var l=new PBMMeshMaterial(this.light?"phong":"basic");e.BumpFactor&&(l.bumpScale=e.BumpFactor.value),e.Diffuse?l.color=new THREE__namespace.Color().fromArray(e.Diffuse.value):e.DiffuseColor&&(e.DiffuseColor.type==="Color"||e.DiffuseColor.type==="ColorRGB")&&(l.color=new THREE__namespace.Color().fromArray(e.DiffuseColor.value)),e.DisplacementFactor&&(l.displacementScale=e.DisplacementFactor.value),e.Emissive?l.emissive=new THREE__namespace.Color().fromArray(e.Emissive.value):e.EmissiveColor&&(e.EmissiveColor.type==="Color"||e.EmissiveColor.type==="ColorRGB")&&(l.emissive=new THREE__namespace.Color().fromArray(e.EmissiveColor.value)),e.EmissiveFactor&&(l.emissiveIntensity=parseFloat(e.EmissiveFactor.value));var c=1-(e.TransparencyFactor?parseFloat(e.TransparencyFactor.value):0);(c===1||c===0)&&(c=e.Opacity?parseFloat(e.Opacity.value):null,c===null&&(c=1-(e.TransparentColor?parseFloat(e.TransparentColor.value[0]):0))),l.opacity=c,l.opacity<1&&(l.transparent=!0),e.ReflectionFactor&&(l.reflectivity=e.ReflectionFactor.value),e.Shininess&&(l.shininess=e.Shininess.value),e.Specular?l.specular=new THREE__namespace.Color().fromArray(e.Specular.value):e.SpecularColor&&e.SpecularColor.type==="Color"&&(l.specular=new THREE__namespace.Color().fromArray(e.SpecularColor.value));var f=this;return o.get(s).children.forEach(function(d){var p=d.relationship;switch(p){case"Bump":l.bumpMap=f.getTexture(t,r,d.ID,o);break;case"Maya|TEX_ao_map":l.aoMap=f.getTexture(t,r,d.ID,o);break;case"DiffuseColor":case"Maya|TEX_color_map":l.map=f.getTexture(t,r,d.ID,o),l.map!==void 0&&(l.map.encoding=THREE__namespace.sRGBEncoding);break;case"DisplacementColor":l.displacementMap=f.getTexture(t,r,d.ID,o);break;case"EmissiveColor":l.emissiveMap=f.getTexture(t,r,d.ID,o),l.emissiveMap!==void 0&&(l.emissiveMap.encoding=THREE__namespace.sRGBEncoding);break;case"NormalMap":case"Maya|TEX_normal_map":l.normalMap=f.getTexture(t,r,d.ID,o);break;case"ReflectionColor":l.envMap=f.getTexture(t,r,d.ID,o),l.envMap!==void 0&&(l.envMap.mapping=THREE__namespace.EquirectangularReflectionMapping,l.envMap.encoding=THREE__namespace.sRGBEncoding);break;case"SpecularColor":l.specularMap=f.getTexture(t,r,d.ID,o),l.specularMap!==void 0&&(l.specularMap.encoding=THREE__namespace.sRGBEncoding);break;case"TransparentColor":case"TransparencyFactor":l.alphaMap=f.getTexture(t,r,d.ID,o),l.transparent=!0;break;case"AmbientColor":case"ShininessExponent":case"SpecularFactor":case"VectorDisplacementColor":default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",p);break}}),l.refreshUniforms(),l},n.prototype.getTexture=function(t,e,r,o){return t.Objects.LayeredTexture&&r in t.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),r=o.get(r).children[0].ID),e.get(r)},n.prototype.parseDeformers=function(t,e){var r={},o={};if("Deformer"in t.Objects){var s=t.Objects.Deformer;for(var u in s){var l=s[u],c=e.get(parseInt(u));if(l.attrType==="Skin"){var f=this.parseSkeleton(c,s);f.ID=u,c.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),f.geometryID=c.parents[0].ID,r[u]=f}else if(l.attrType==="BlendShape"){var d={id:u};d.rawTargets=this.parseMorphTargets(c,s,e),d.id=u,c.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),o[u]=d}}}return{skeletons:r,morphTargets:o}},n.prototype.parseSkeleton=function(t,e){var r=[];return t.children.forEach(function(o){var s=e[o.ID];if(s.attrType==="Cluster"){var u={ID:o.ID,indices:[],weights:[],transformLink:new THREE__namespace.Matrix4().fromArray(s.TransformLink.a)};s.Indexes&&(u.indices=s.Indexes.a,u.weights=s.Weights.a),r.push(u)}}),{ID:"",geometryID:0,rawBones:r,bones:[]}},n.prototype.parseMorphTargets=function(t,e,r){for(var o=[],s=0;s<t.children.length;s++){var u=t.children[s],l=e[u.ID],c={name:l.attrName,initialWeight:l.DeformPercent,id:l.id,fullWeights:l.FullWeights.a,geoID:0};if(l.attrType!=="BlendShapeChannel")return;c.geoID=r.get(parseInt(u.ID)).children.filter(function(f){return f.relationship===void 0})[0].ID,o.push(c)}return o},n.prototype.parseScene=function(t,e,r,o,s,u){var l=this.parseModels(t,e.skeletons,r,o,s),c=t.Objects.Model,f=this;l.forEach(function(p){var v=c[p.ID];f.setLookAtProperties(t,p,v,s,u);var A=s.get(p.ID).parents;A.forEach(function(g){var h=l.get(g.ID);h!==void 0&&h.add(p)}),p.parent===null&&u.add(p)}),this.bindSkeleton(t,e.skeletons,r,l,s),u.traverse(function(p){if(p.userData.transformData){p.parent&&(p.userData.transformData.parentMatrix=p.parent.matrix,p.userData.transformData.parentMatrixWorld=p.parent.matrixWorld);var v=generateTransform(p.userData.transformData);p.applyMatrix4(v),p.updateWorldMatrix(!0,!0)}});var d=new AnimationParser().parse(t,s,u);u.children.length===1&&u.children[0]instanceof THREE__namespace.Group&&(u.children[0].animations=d,u=u.children[0]),u.animations=d},n.prototype.parseModels=function(t,e,r,o,s){var u=new Map,l=t.Objects.Model;for(var c in l){var f=parseInt(c),d=l[c],p=s.get(f),v=this.buildSkeleton(p,e,f,d.attrName);if(!v){switch(d.attrType){case"Camera":v=this.createCamera(t,p);break;case"Light":v=this.createLight(t,p);break;case"Mesh":v=this.createMesh(p,r,o);break;case"NurbsCurve":case"LimbNode":case"Root":v=new THREE__namespace.Bone;break;case"Null":default:v=new THREE__namespace.Group;break}v.name=d.attrName?THREE__namespace.PropertyBinding.sanitizeNodeName(d.attrName):"",v.userData.originalName=d.attrName,v.ID=f}this.getTransformData(v,d),u.set(f,v)}return u},n.prototype.buildSkeleton=function(t,e,r,o){var s=null;return t.parents.forEach(function(u){var l=function(f){var d=e[f];d.rawBones.forEach(function(p,v){if(p.ID===u.ID){var A=s;s=new THREE__namespace.Bone,s.matrixWorld.copy(p.transformLink),s.name=o?THREE__namespace.PropertyBinding.sanitizeNodeName(o):"",s.userData.originalName=o,s.ID=r,d.bones[v]=s,A!==null&&s.add(A)}})};for(var c in e)l(c)}),s},n.prototype.createCamera=function(t,e){var r,o;if(e.children.forEach(function(A){var g=t.Objects.NodeAttribute[A.ID];g!==void 0&&(o=g)}),o===void 0)r=new THREE__namespace.Object3D;else{var s=0;o.CameraProjectionType!==void 0&&o.CameraProjectionType.value===1&&(s=1);var u=1;o.NearPlane!==void 0&&(u=o.NearPlane.value/1e3);var l=1e3;o.FarPlane!==void 0&&(l=o.FarPlane.value/1e3);var c=window.innerWidth,f=window.innerHeight;o.AspectWidth!==void 0&&o.AspectHeight!==void 0&&(c=o.AspectWidth.value,f=o.AspectHeight.value);var d=c/f,p=45;o.FieldOfView!==void 0&&(p=o.FieldOfView.value);var v=o.FocalLength?o.FocalLength.value:null;switch(s){case 0:r=new THREE__namespace.PerspectiveCamera(p,d,u,l),v!==null&&r.setFocalLength(v);break;case 1:console.warn("THREE.FBXLoader: Orthographic cameras not supported yet."),r=new THREE__namespace.Object3D;break;default:console.warn("THREE.FBXLoader: Unknown camera type "+s+"."),r=new THREE__namespace.Object3D;break}}return r},n.prototype.createLight=function(t,e){var r,o;if(e.children.forEach(function(v){var A=t.Objects.NodeAttribute[v.ID];A!==void 0&&(o=A)}),o===void 0)r=new THREE__namespace.Object3D;else{var s=void 0;o.LightType===void 0?s=0:s=o.LightType.value;var u=new THREE__namespace.Color(16777215);o.Color!==void 0&&(u=new THREE__namespace.Color().fromArray(o.Color.value));var l=o.Intensity===void 0?1:o.Intensity.value/100;o.CastLightOnObject!==void 0&&o.CastLightOnObject.value===0&&(l=0);var c=0;o.FarAttenuationEnd!==void 0&&(o.EnableFarAttenuation!==void 0&&o.EnableFarAttenuation.value===0?c=0:c=o.FarAttenuationEnd.value);var f=1;switch(s){case 0:r=new THREE__namespace.PointLight(u,l,c,f);break;case 1:r=new THREE__namespace.DirectionalLight(u,l);break;case 2:var d=Math.PI/3;o.InnerAngle!==void 0&&(d=THREE__namespace.MathUtils.degToRad(o.InnerAngle.value));var p=0;o.OuterAngle!==void 0&&(p=THREE__namespace.MathUtils.degToRad(o.OuterAngle.value),p=Math.max(p,1)),r=new THREE__namespace.SpotLight(u,l,c,d,p,f);break;default:console.warn("THREE.FBXLoader: Unknown light type "+o.LightType.value+", defaulting to a PointLight."),r=new THREE__namespace.PointLight(u,l);break}o.CastShadows!==void 0&&o.CastShadows.value===1&&(r.castShadow=!0)}return r},n.prototype.createMesh=function(t,e,r){var o,s=null,u=[];if(t.children.forEach(function(c){e.has(c.ID)&&(s=e.get(c.ID)),r.has(c.ID)&&u.push(r.get(c.ID))}),u.length===0){var l=new PBMMeshMaterial(this.light?"phong":"basic");l.color=new THREE__namespace.Color(13421772),u.push(l)}return"color"in s.attributes&&u.forEach(function(c){c.vertexColors=!0}),(!s.groups||s.groups.length===0)&&s.addGroup(0,s.index?s.index.count:s.attributes.position.count,0),s.FBX_Deformer?(o=new PBMSkinnedMesh(s,u),o.normalizeSkinWeights()):o=new PBMMesh(s,u),o},n.prototype.createCurve=function(t,e){var r=t.children.reduce(function(s,u){return e.has(u.ID)&&(s=e.get(u.ID)),s},null),o=new THREE__namespace.LineBasicMaterial({name:"",color:3342591,linewidth:1});return new THREE__namespace.Line(r,o)},n.prototype.getTransformData=function(t,e){var r={};e.InheritType&&(r.inheritType=parseInt(e.InheritType.value)),e.RotationOrder?r.eulerOrder=getEulerOrder(e.RotationOrder.value):r.eulerOrder=getEulerOrder(0),e.Lcl_Translation&&(r.translation=e.Lcl_Translation.value),e.PreRotation&&(r.preRotation=e.PreRotation.value),e.Lcl_Rotation&&(r.rotation=e.Lcl_Rotation.value),e.PostRotation&&(r.postRotation=e.PostRotation.value),e.Lcl_Scaling&&(r.scale=e.Lcl_Scaling.value),e.ScalingOffset&&(r.scalingOffset=e.ScalingOffset.value),e.ScalingPivot&&(r.scalingPivot=e.ScalingPivot.value),e.RotationOffset&&(r.rotationOffset=e.RotationOffset.value),e.RotationPivot&&(r.rotationPivot=e.RotationPivot.value),t.userData.transformData=r},n.prototype.setLookAtProperties=function(t,e,r,o,s){if("LookAtProperty"in r){var u=o.get(e.ID).children;u.forEach(function(l){if(l.relationship==="LookAtProperty"){var c=t.Objects.Model[l.ID];if(c.Lcl_Translation){var f=c.Lcl_Translation.value;"target"in e&&e.target instanceof THREE__namespace.Object3D?(e.target.position.fromArray(f),s.add(e.target)):e.lookAt(new THREE__namespace.Vector3().fromArray(f))}}})}},n.prototype.bindSkeleton=function(t,e,r,o,s){var u=this.parsePoseNodes(t),l=function(f){var d=e[f],p=s.get(parseInt(d.ID)).parents;p.forEach(function(v){if(r.has(v.ID)){var A=v.ID,g=s.get(A);g.parents.forEach(function(h){if(o.has(h.ID)){var y=o.get(h.ID);y instanceof THREE__namespace.SkinnedMesh&&y.bind(new THREE__namespace.Skeleton(d.bones),u[h.ID])}})}})};for(var c in e)l(c)},n.prototype.parsePoseNodes=function(t){var e={};if(t.Objects.Pose){var r=t.Objects.Pose;for(var o in r)if(r[o].attrType==="BindPose"&&r[o].NbPoseNodes>0){var s=r[o].PoseNode;Array.isArray(s)?s.forEach(function(u){e[u.Node]=new THREE__namespace.Matrix4().fromArray(u.Matrix.a)}):e[s.Node]=new THREE__namespace.Matrix4().fromArray(s.Matrix.a)}}return e},n}(),GeometryParser=function(){function n(){this.negativeMaterialIndices=!1}return n.prototype.parse=function(t,e,r){var o=new Map;if("Geometry"in t.Objects){var s=t.Objects.Geometry;for(var u in s){var l=r.get(parseInt(u)),c=this.parseGeometry(t,l,s[u],e);o.set(parseInt(u),c)}}return this.negativeMaterialIndices===!0&&console.warn("THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected."),o},n.prototype.parseGeometry=function(t,e,r,o){switch(r.attrType){case"Mesh":return this.parseMeshGeometry(t,e,r,o);case"NurbsCurve":return this.parseNurbsGeometry(r)}},n.prototype.parseMeshGeometry=function(t,e,r,o){var s=o.skeletons,u=[],l=e.parents.map(function(v){return t.Objects.Model[v.ID]});if(l.length!==0){var c=e.children.reduce(function(v,A){return s[A.ID]!==void 0&&(v=s[A.ID]),v},null);e.children.forEach(function(v){o.morphTargets[v.ID]!==void 0&&u.push(o.morphTargets[v.ID])});var f=l[0],d={};f.RotationOrder&&(d.eulerOrder=getEulerOrder(f.RotationOrder.value)),f.InheritType&&(d.inheritType=parseInt(f.InheritType.value)),f.GeometricTranslation&&(d.translation=f.GeometricTranslation.value),f.GeometricRotation&&(d.rotation=f.GeometricRotation.value),f.GeometricScaling&&(d.scale=f.GeometricScaling.value);var p=generateTransform(d);return this.genGeometry(t,r,c,u,p)}},n.prototype.genGeometry=function(t,e,r,o,s){var u=new THREE__namespace.BufferGeometry;e.attrName&&(u.name=e.attrName);var l=this.parseGeoNode(e,r),c=this.genBuffers(l),f=new THREE__namespace.Float32BufferAttribute(c.vertex,3);if(f.applyMatrix4(s),u.setAttribute("position",f),c.colors.length>0&&u.setAttribute("color",new THREE__namespace.Float32BufferAttribute(c.colors,3)),r&&(u.setAttribute("skinIndex",new THREE__namespace.Uint16BufferAttribute(c.weightsIndices,4)),u.setAttribute("skinWeight",new THREE__namespace.Float32BufferAttribute(c.vertexWeights,4)),u.FBX_Deformer=r),c.normal.length>0){var d=new THREE__namespace.Matrix3().getNormalMatrix(s),p=new THREE__namespace.Float32BufferAttribute(c.normal,3);p.applyNormalMatrix(d),u.setAttribute("normal",p)}if(c.uvs.forEach(function(y,m){var E=m===0?"uv":"uv".concat(m+1);u.setAttribute(E,new THREE__namespace.Float32BufferAttribute(c.uvs[m],2))}),l.material&&l.material.mappingType!=="AllSame"){var v=c.materialIndex[0],A=0;if(c.materialIndex.forEach(function(y,m){y!==v&&(u.addGroup(A,m-A,v),v=y,A=m)}),u.groups.length>0){var g=u.groups[u.groups.length-1],h=g.start+g.count;h!==c.materialIndex.length&&u.addGroup(h,c.materialIndex.length-h,v)}u.groups.length===0&&u.addGroup(0,c.materialIndex.length,c.materialIndex[0])}return this.addMorphTargets(t,u,e,o,s),u},n.prototype.parseGeoNode=function(t,e){var r={};if(r.vertexPositions=t.Vertices!==void 0?t.Vertices.a:[],r.vertexIndices=t.PolygonVertexIndex!==void 0?t.PolygonVertexIndex.a:[],t.LayerElementColor&&(r.color=this.parseVertexColors(t.LayerElementColor[0])),t.LayerElementMaterial&&(r.material=this.parseMaterialIndices(t.LayerElementMaterial[0])),t.LayerElementNormal&&(r.normal=this.parseNormals(t.LayerElementNormal[0])),t.LayerElementUV){r.uv=[];for(var o=0;t.LayerElementUV[o];)t.LayerElementUV[o].UV&&r.uv.push(this.parseUVs(t.LayerElementUV[o])),o++}return r.weightTable={},e!==null&&(r.skeleton=e,e.rawBones.forEach(function(s,u){s.indices.forEach(function(l,c){r.weightTable[l]===void 0&&(r.weightTable[l]=[]),r.weightTable[l].push({id:u,weight:s.weights[c]})})})),r},n.prototype.genBuffers=function(t){var e={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]},r=0,o=0,s=!1,u=[],l=[],c=[],f=[],d=[],p=[],v=this;return t.vertexIndices.forEach(function(A,g){var h=0,y=!1;A<0&&(A=A^-1,y=!0);var m=[],E=[];if(u.push(A*3,A*3+1,A*3+2),t.color){var b=getData(g,r,A,t.color);c.push(b[0],b[1],b[2])}if(t.skeleton){if(t.weightTable[A]!==void 0&&t.weightTable[A].forEach(function(S){E.push(S.weight),m.push(S.id)}),E.length>4){s||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),s=!0);var T=[0,0,0,0],_=[0,0,0,0];E.forEach(function(S,C){var B=S,L=m[C];_.forEach(function(M,w,H){if(B>M){H[w]=B,B=M;var O=T[w];T[w]=L,L=O}})}),m=T,E=_}for(;E.length<4;)E.push(0),m.push(0);for(var R=0;R<4;++R)d.push(E[R]),p.push(m[R])}if(t.normal){var b=getData(g,r,A,t.normal);l.push(b[0],b[1],b[2])}t.material&&t.material.mappingType!=="AllSame"&&(h=getData(g,r,A,t.material)[0],h<0&&(v.negativeMaterialIndices=!0,h=0)),t.uv&&t.uv.forEach(function(S,C){var B=getData(g,r,A,S);f[C]===void 0&&(f[C]=[]),f[C].push(B[0]),f[C].push(B[1])}),o++,y&&(v.genFace(e,t,u,h,l,c,f,d,p,o),r++,o=0,u=[],l=[],c=[],f=[],d=[],p=[])}),e},n.prototype.getNormalNewell=function(t){for(var e=new THREE__namespace.Vector3(0,0,0),r=0;r<t.length;r++){var o=t[r],s=t[(r+1)%t.length];e.x+=(o.y-s.y)*(o.z+s.z),e.y+=(o.z-s.z)*(o.x+s.x),e.z+=(o.x-s.x)*(o.y+s.y)}return e.normalize(),e},n.prototype.getNormalTangentAndBitangent=function(t){var e=this.getNormalNewell(t),r=Math.abs(e.z)>.5?new THREE__namespace.Vector3(0,1,0):new THREE__namespace.Vector3(0,0,1),o=r.cross(e).normalize(),s=e.clone().cross(o).normalize();return{normal:e,tangent:o,bitangent:s}},n.prototype.flattenVertex=function(t,e,r){return new THREE__namespace.Vector2(t.dot(e),t.dot(r))},n.prototype.genFace=function(t,e,r,o,s,u,l,c,f,d){var p;if(d>3){for(var v=[],A=e.baseVertexPositions||e.vertexPositions,g=0;g<r.length;g+=3)v.push(new THREE__namespace.Vector3(A[r[g]],A[r[g+1]],A[r[g+2]]));for(var h=this.getNormalTangentAndBitangent(v),y=h.tangent,m=h.bitangent,E=[],b=0,T=v;b<T.length;b++){var _=T[b];E.push(this.flattenVertex(_,y,m))}p=THREE__namespace.ShapeUtils.triangulateShape(E,[])}else p=[[0,1,2]];for(var R=function(H,O,I){t.vertex.push(e.vertexPositions[r[H*3]]),t.vertex.push(e.vertexPositions[r[H*3+1]]),t.vertex.push(e.vertexPositions[r[H*3+2]]),t.vertex.push(e.vertexPositions[r[O*3]]),t.vertex.push(e.vertexPositions[r[O*3+1]]),t.vertex.push(e.vertexPositions[r[O*3+2]]),t.vertex.push(e.vertexPositions[r[I*3]]),t.vertex.push(e.vertexPositions[r[I*3+1]]),t.vertex.push(e.vertexPositions[r[I*3+2]]),e.skeleton&&(t.vertexWeights.push(c[H*4]),t.vertexWeights.push(c[H*4+1]),t.vertexWeights.push(c[H*4+2]),t.vertexWeights.push(c[H*4+3]),t.vertexWeights.push(c[O*4]),t.vertexWeights.push(c[O*4+1]),t.vertexWeights.push(c[O*4+2]),t.vertexWeights.push(c[O*4+3]),t.vertexWeights.push(c[I*4]),t.vertexWeights.push(c[I*4+1]),t.vertexWeights.push(c[I*4+2]),t.vertexWeights.push(c[I*4+3]),t.weightsIndices.push(f[H*4]),t.weightsIndices.push(f[H*4+1]),t.weightsIndices.push(f[H*4+2]),t.weightsIndices.push(f[H*4+3]),t.weightsIndices.push(f[O*4]),t.weightsIndices.push(f[O*4+1]),t.weightsIndices.push(f[O*4+2]),t.weightsIndices.push(f[O*4+3]),t.weightsIndices.push(f[I*4]),t.weightsIndices.push(f[I*4+1]),t.weightsIndices.push(f[I*4+2]),t.weightsIndices.push(f[I*4+3])),e.color&&(t.colors.push(u[H*3]),t.colors.push(u[H*3+1]),t.colors.push(u[H*3+2]),t.colors.push(u[O*3]),t.colors.push(u[O*3+1]),t.colors.push(u[O*3+2]),t.colors.push(u[I*3]),t.colors.push(u[I*3+1]),t.colors.push(u[I*3+2])),e.material&&e.material.mappingType!=="AllSame"&&(t.materialIndex.push(o),t.materialIndex.push(o),t.materialIndex.push(o)),e.normal&&(t.normal.push(s[H*3]),t.normal.push(s[H*3+1]),t.normal.push(s[H*3+2]),t.normal.push(s[O*3]),t.normal.push(s[O*3+1]),t.normal.push(s[O*3+2]),t.normal.push(s[I*3]),t.normal.push(s[I*3+1]),t.normal.push(s[I*3+2])),e.uv&&e.uv.forEach(function(N,k){t.uvs[k]===void 0&&(t.uvs[k]=[]),t.uvs[k].push(l[k][H*2]),t.uvs[k].push(l[k][H*2+1]),t.uvs[k].push(l[k][O*2]),t.uvs[k].push(l[k][O*2+1]),t.uvs[k].push(l[k][I*2]),t.uvs[k].push(l[k][I*2+1])})},S=0,C=p;S<C.length;S++){var B=C[S],L=B[0],M=B[1],w=B[2];R(L,M,w)}},n.prototype.addMorphTargets=function(t,e,r,o,s){if(o.length!==0){e.morphTargetsRelative=!0,e.morphAttributes.position=[];var u=this;o.forEach(function(l){l.rawTargets.forEach(function(c){var f=t.Objects.Geometry[c.geoID];f!==void 0&&u.genMorphGeometry(e,r,f,s,c.name)})})}},n.prototype.genMorphGeometry=function(t,e,r,o,s){for(var u=e.Vertices!==void 0?e.Vertices.a:[],l=e.PolygonVertexIndex!==void 0?e.PolygonVertexIndex.a:[],c=r.Vertices!==void 0?r.Vertices.a:[],f=r.Indexes?r.Indexes.a:[],d=t.attributes.position.count*3,p=new Float32Array(d),v=0;v<f.length;v++){var A=f[v]*3;p[A]=c[v*3],p[A+1]=c[v*3+1],p[A+2]=c[v*3+2]}var g={vertexIndices:l,vertexPositions:p,baseVertexPositions:u},h=this.genBuffers(g),y=new THREE__namespace.Float32BufferAttribute(h.vertex,3);y.name=s||r.attrName,y.applyMatrix4(o),t.morphAttributes.position.push(y)},n.prototype.parseNormals=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType,o=t.Normals.a,s=[];return r==="IndexToDirect"&&(t.NormalIndex?s=t.NormalIndex.a:t.NormalsIndex&&(s=t.NormalsIndex.a)),{dataSize:3,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseUVs=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType,o=t.UV.a,s=[];return r==="IndexToDirect"&&(s=t.UVIndex.a),{dataSize:2,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseVertexColors=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType,o=t.Colors.a,s=[];r==="IndexToDirect"&&(s=t.ColorIndex.a);for(var u=0,l=new THREE__namespace.Color;u<o.length;u+=4)l.fromArray(o,u),l.toArray(o,u);return{dataSize:4,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseMaterialIndices=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType;if(e==="NoMappingInformation")return{dataSize:1,buffer:[0],indices:[0],mappingType:"AllSame",referenceType:r};for(var o=t.Materials.a,s=[],u=0;u<o.length;++u)s.push(u);return{dataSize:1,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseNurbsGeometry=function(t){var e=parseInt(t.Order);if(isNaN(e))return console.error("THREE.FBXLoader: Invalid Order %s given for geometry ID: %s",t.Order,t.id),new THREE__namespace.BufferGeometry;for(var r=e-1,o=t.KnotVector.a,s=[],u=t.Points.a,l=0,c=u.length;l<c;l+=4)s.push(new THREE__namespace.Vector4().fromArray(u,l));var f,d;if(t.Form==="Closed")s.push(s[0]);else if(t.Form==="Periodic"){f=r,d=o.length-1-f;for(var l=0;l<r;++l)s.push(s[l])}var p=new NURBSCurve(r,o,s,f,d),v=p.getPoints(s.length*12);return new THREE__namespace.BufferGeometry().setFromPoints(v)},n}(),AnimationParser=function(){function n(){}return n.prototype.parse=function(t,e,r){var o=[],s=this.parseClips(t,e,r);if(s!==void 0)for(var u in s){var l=s[u],c=this.addClip(l,r);o.push(c)}return o},n.prototype.parseClips=function(t,e,r){if(t.Objects.AnimationCurve!==void 0){var o=this.parseAnimationCurveNodes(t);this.parseAnimationCurves(t,o,e);var s=this.parseAnimationLayers(t,o,e,r),u=this.parseAnimStacks(t,s,e);return u}},n.prototype.parseAnimationCurveNodes=function(t){var e=t.Objects.AnimationCurveNode,r=new Map;for(var o in e){var s=e[o];if(s.attrName.match(/S|R|T|DeformPercent/)!==null){var u={id:s.id,attr:s.attrName,curves:{}};r.set(u.id,u)}}return r},n.prototype.parseAnimationCurves=function(t,e,r){var o=t.Objects.AnimationCurve;for(var s in o){var u={id:o[s].id,times:o[s].KeyTime.a.map(convertFBXTimeToSeconds),values:o[s].KeyValueFloat.a},l=r.get(u.id);if(l!==void 0){var c=l.parents[0].ID,f=l.parents[0].relationship,d=e.get(c);d&&(f.match(/X/)?d.curves.x=u:f.match(/Y/)?d.curves.y=u:f.match(/Z/)?d.curves.z=u:f.match(/DeformPercent/)&&e.has(c)&&(d.curves.morph=u))}}},n.prototype.parseAnimationLayers=function(t,e,r,o){var s=t.Objects.AnimationLayer,u=new Map,l=function(f){var d=[],p=r.get(parseInt(f));if(p!==void 0){var v=p.children;v.forEach(function(A,g){if(e.has(A.ID)){var h=e.get(A.ID);if(h.curves.x!==void 0||h.curves.y!==void 0||h.curves.z!==void 0){if(d[g]===void 0){var y=r.get(A.ID).parents.filter(function(C){return C.relationship!==void 0})[0].ID;if(y!==void 0){var m=t.Objects.Model[y.toString()];if(m===void 0){console.warn("THREE.FBXLoader: Encountered a unused curve.",A);return}var E={modelName:m.attrName?THREE__namespace.PropertyBinding.sanitizeNodeName(m.attrName):"",ID:m.id,initialPosition:[0,0,0],initialRotation:[0,0,0],initialScale:[1,1,1],transform:new THREE__namespace.Matrix4,eulerOrder:"",preRotation:[0,0,0],postRotation:[0,0,0]};o.traverse(function(C){C.ID===m.id&&(E.transform=C.matrix,C.userData.transformData&&(E.eulerOrder=C.userData.transformData.eulerOrder))}),E.transform||(E.transform=new THREE__namespace.Matrix4),m.PreRotation&&(E.preRotation=m.PreRotation.value),m.PostRotation&&(E.postRotation=m.PostRotation.value),d[g]=E}}d[g]&&(d[g][h.attr]=h)}else if(h.curves.morph!==void 0){if(d[g]===void 0){var b=r.get(A.ID).parents.filter(function(B){return B.relationship!==void 0})[0].ID,T=r.get(b).parents[0].ID,_=r.get(T).parents[0].ID,y=r.get(_).parents[0].ID,R=t.Objects.Model[y],S={modelName:R.attrName?THREE__namespace.PropertyBinding.sanitizeNodeName(R.attrName):"",morphName:t.Objects.Deformer[b].attrName};d[g]=S}d[g][h.attr]=h}}}),u.set(parseInt(f),d)}};for(var c in s)l(c);return u},n.prototype.parseAnimStacks=function(t,e,r){var o=t.Objects.AnimationStack,s={};for(var u in o){var l=r.get(parseInt(u)).children;l.length>1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");var c=e.get(l[0].ID);s[u]={name:o[u].attrName,layer:c}}return s},n.prototype.addClip=function(t,e){var r=[],o=this;return t.layer.forEach(function(s){r=r.concat(o.generateTracks(s,e))}),new THREE__namespace.AnimationClip(t.name,-1,r)},n.prototype.generateTracks=function(t,e){var r=[],o=new THREE__namespace.Vector3,s=new THREE__namespace.Vector3;t.transform&&t.transform.decompose(o,new THREE__namespace.Quaternion,s);var u=o.toArray(),l=s.toArray();if(t.T!==void 0&&Object.keys(t.T.curves).length>0){var c=this.generateVectorTrack(t.modelName,t.T.curves,u,"position");c!==void 0&&r.push(c)}if(t.R!==void 0&&Object.keys(t.R.curves).length>0){var f=this.generateRotationTrack(t.modelName,t.R.curves,t.preRotation,t.postRotation,t.eulerOrder);f!==void 0&&r.push(f)}if(t.S!==void 0&&Object.keys(t.S.curves).length>0){var d=this.generateVectorTrack(t.modelName,t.S.curves,l,"scale");d!==void 0&&r.push(d)}if(t.DeformPercent!==void 0){var p=this.generateMorphTrack(t,e);p!==void 0&&r.push(p)}return r},n.prototype.generateVectorTrack=function(t,e,r,o){var s=this.getTimesForAllAxes(e),u=this.getKeyframeTrackValues(s,e,r);return new THREE__namespace.VectorKeyframeTrack(t+"."+o,s,u)},n.prototype.generateRotationTrack=function(t,e,r,o,s){var u,l;if(e.x!==void 0&&e.y!==void 0&&e.z!==void 0){var c=this.interpolateRotations(e.x,e.y,e.z,s);u=c[0],l=c[1]}var f=getEulerOrder(0),d=new THREE__namespace.Quaternion,p=new THREE__namespace.Quaternion;r!==void 0&&(r=r.map(THREE__namespace.MathUtils.degToRad),r.push(f),d.setFromEuler(new THREE__namespace.Euler().fromArray(r))),o!==void 0&&(o=o.map(THREE__namespace.MathUtils.degToRad),o.push(f),p.setFromEuler(new THREE__namespace.Euler().fromArray(o)),p.inverse());var v=new THREE__namespace.Quaternion,A=new THREE__namespace.Euler,g=[];if(!l||!u)return new THREE__namespace.QuaternionKeyframeTrack(t+".quaternion",[0],[0]);for(var h=0;h<l.length;h+=3){if(A.set(l[h],l[h+1],l[h+2],s),v.setFromEuler(A),v.premultiply(d),v.multiply(p),h>2){var y=new THREE__namespace.Quaternion().fromArray(g,(h-3)/3*4);y.dot(v)<0&&v.set(-v.x,-v.y,-v.z,-v.w)}v.toArray(g,h/3*4)}return new THREE__namespace.QuaternionKeyframeTrack(t+".quaternion",u,g)},n.prototype.generateMorphTrack=function(t,e){var r=t.DeformPercent.curves.morph,o=r.values.map(function(u){return u/100}),s=e.getObjectByName(t.modelName).morphTargetDictionary[t.morphName];return new THREE__namespace.NumberKeyframeTrack(t.modelName+".morphTargetInfluences["+s+"]",r.times,o)},n.prototype.getTimesForAllAxes=function(t){var e=[];if(t.x!==void 0&&(e=e.concat(t.x.times)),t.y!==void 0&&(e=e.concat(t.y.times)),t.z!==void 0&&(e=e.concat(t.z.times)),e=e.sort(function(l,c){return l-c}),e.length>1){for(var r=1,o=e[0],s=1;s<e.length;s++){var u=e[s];u!==o&&(e[r]=u,o=u,r++)}e=e.slice(0,r)}return e},n.prototype.getKeyframeTrackValues=function(t,e,r){var o=r,s=[],u=-1,l=-1,c=-1;return t.forEach(function(f){if(e.x&&(u=e.x.times.indexOf(f)),e.y&&(l=e.y.times.indexOf(f)),e.z&&(c=e.z.times.indexOf(f)),u!==-1){var d=e.x.values[u];s.push(d),o[0]=d}else s.push(o[0]);if(l!==-1){var p=e.y.values[l];s.push(p),o[1]=p}else s.push(o[1]);if(c!==-1){var v=e.z.values[c];s.push(v),o[2]=v}else s.push(o[2])}),s},n.prototype.interpolateRotations=function(t,e,r,o){var s=[],u=[];s.push(t.times[0]),u.push(THREE__namespace.MathUtils.degToRad(t.values[0])),u.push(THREE__namespace.MathUtils.degToRad(e.values[0])),u.push(THREE__namespace.MathUtils.degToRad(r.values[0]));for(var l=1;l<t.values.length;l++){var c=[t.values[l-1],e.values[l-1],r.values[l-1]];if(!(isNaN(c[0])||isNaN(c[1])||isNaN(c[2]))){var f=c.map(THREE__namespace.MathUtils.degToRad),d=[t.values[l],e.values[l],r.values[l]];if(!(isNaN(d[0])||isNaN(d[1])||isNaN(d[2]))){d.map(THREE__namespace.MathUtils.degToRad);var p=[d[0]-c[0],d[1]-c[1],d[2]-c[2]],v=[Math.abs(p[0]),Math.abs(p[1]),Math.abs(p[2])];if(v[0]>=180||v[1]>=180||v[2]>=180){var A=Math.max.apply(Math,v),g=A/180,h=new THREE__namespace.Euler(f[0],f[1],f[2],o),y=new THREE__namespace.Euler(f[0],f[1],f[2],o),m=new THREE__namespace.Quaternion().setFromEuler(h),E=new THREE__namespace.Quaternion().setFromEuler(y);m.dot(E)&&E.set(-E.x,-E.y,-E.z,-E.w);for(var b=t.times[l-1],T=t.times[l]-b,_=new THREE__namespace.Quaternion,R=new THREE__namespace.Euler,S=0;S<1;S+=1/g)_.copy(m.clone().slerp(E.clone(),S)),s.push(b+S*T),R.setFromQuaternion(_,o),u.push(R.x),u.push(R.y),u.push(R.z)}else s.push(t.times[l]),u.push(THREE__namespace.MathUtils.degToRad(t.values[l])),u.push(THREE__namespace.MathUtils.degToRad(e.values[l])),u.push(THREE__namespace.MathUtils.degToRad(r.values[l]))}}}return[s,u]},n}(),TextParser=function(){function n(){this.allNodes=new FBXTree,this.nodeStack=[],this.currentIndent=0,this.currentPropName=""}return n.prototype.getPrevNode=function(){return this.nodeStack[this.currentIndent-2]},n.prototype.getCurrentNode=function(){return this.nodeStack[this.currentIndent-1]},n.prototype.getCurrentProp=function(){return this.currentProp},n.prototype.pushStack=function(t){this.nodeStack.push(t),this.currentIndent+=1},n.prototype.popStack=function(){this.nodeStack.pop(),this.currentIndent-=1},n.prototype.setCurrentProp=function(t,e){this.currentProp=t,this.currentPropName=e},n.prototype.parse=function(t){this.currentIndent=0,this.allNodes=new FBXTree,this.nodeStack=[],this.currentProp=[],this.currentPropName="";var e=this,r=t.split(/[\r\n]+/);return r.forEach(function(o,s){var u=o.match(/^[\s\t]*;/),l=o.match(/^[\s\t]*$/);if(!(u||l)){var c=o.match("^\\t{"+e.currentIndent+"}(\\w+):(.*){"),f=o.match("^\\t{"+e.currentIndent+"}(\\w+):[\\s\\t\\r\\n](.*)"),d=o.match("^\\t{"+(e.currentIndent-1)+"}}");c?e.parseNodeBegin(o,c):f?e.parseNodeProperty(o,f,r[++s]):d?e.popStack():o.match(/^[^\s\t}]/)&&e.parseNodePropertyContinued(o)}}),this.allNodes},n.prototype.parseNodeBegin=function(t,e){var r=e[1].trim().replace(/^"/,"").replace(/"$/,""),o=e[2].split(",").map(function(c){return c.trim().replace(/^"/,"").replace(/"$/,"")}),s={name:r},u=this.parseNodeAttr(o),l=this.getCurrentNode();this.currentIndent===0?this.allNodes.add(r,s):r in l?(r==="PoseNode"?l.PoseNode.push(s):l[r].id!==void 0&&(l[r]={},l[r][l[r].id]=l[r]),u.id!==""&&(l[r][u.id]=s)):typeof u.id=="number"?(l[r]={},l[r][u.id]=s):r!=="Properties70"&&(r==="PoseNode"?l[r]=[s]:l[r]=s),typeof u.id=="number"&&(s.id=u.id),u.name!==""&&(s.attrName=u.name),u.type!==""&&(s.attrType=u.type),this.pushStack(s)},n.prototype.parseNodeAttr=function(t){var e=t[0];t[0]!==""&&(e=parseInt(t[0]),isNaN(e)&&(e=t[0]));var r="",o="";return t.length>1&&(r=t[1].replace(/^(\w+)::/,""),o=t[2]),{id:e,name:r,type:o}},n.prototype.parseNodeProperty=function(t,e,r){var o=e[1].replace(/^"/,"").replace(/"$/,"").trim(),s=e[2].replace(/^"/,"").replace(/"$/,"").trim();o==="Content"&&s===","&&(s=r.replace(/"/g,"").replace(/,$/,"").trim());var u=this.getCurrentNode(),l=u.name;if(l==="Properties70"){this.parseNodeSpecialProperty(t,o,s);return}if(o==="C"){var c=s.split(",").slice(1),f=parseInt(c[0]),d=parseInt(c[1]),p=s.split(",").slice(3);p=p.map(function(v){return v.trim().replace(/^"/,"")}),o="connections",s=[f,d],append(s,p),u[o]===void 0&&(u[o]=[])}o==="Node"&&(u.id=s),o in u&&Array.isArray(u[o])?u[o].push(s):o!=="a"?u[o]=s:u.a=s,this.setCurrentProp(u,o),o==="a"&&s.slice(-1)!==","&&(u.a=parseNumberArray(s))},n.prototype.parseNodePropertyContinued=function(t){var e=this.getCurrentNode();e.a+=t,t.slice(-1)!==","&&(e.a=parseNumberArray(e.a))},n.prototype.parseNodeSpecialProperty=function(t,e,r){var o=r.split('",').map(function(d){return d.trim().replace(/^\"/,"").replace(/\s/,"_")}),s=o[0],u=o[1],l=o[2],c=o[3],f=o[4];switch(u){case"int":case"enum":case"bool":case"ULongLong":case"double":case"Number":case"FieldOfView":f=parseFloat(f);break;case"Color":case"ColorRGB":case"Vector3D":case"Lcl_Translation":case"Lcl_Rotation":case"Lcl_Scaling":f=parseNumberArray(f);break}this.getPrevNode()[s]={type:u,type2:l,flag:c,value:f},this.setCurrentProp(this.getPrevNode(),s)},n}(),BinaryParser=function(){function n(){}return n.prototype.parse=function(t){var e=new BinaryReader(t);e.skip(23);var r=e.getUint32();if(r<6400)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+r);for(var o=new FBXTree;!this.endOfContent(e);){var s=this.parseNode(e,r);s!==null&&o.add(s.name,s)}return o},n.prototype.endOfContent=function(t){return t.size()%16===0?(t.getOffset()+160+16&-16)>=t.size():t.getOffset()+160+16>=t.size()},n.prototype.parseNode=function(t,e){var r={},o=e>=7500?t.getUint64():t.getUint32(),s=e>=7500?t.getUint64():t.getUint32();e>=7500?t.getUint64():t.getUint32();var u=t.getUint8(),l=t.getString(u);if(o===0)return null;for(var c=[],f=0;f<s;f++)c.push(this.parseProperty(t));var d=c.length>0?c[0]:"",p=c.length>1?c[1]:"",v=c.length>2?c[2]:"";for(r.singleProperty=s===1&&t.getOffset()===o;o>t.getOffset();){var A=this.parseNode(t,e);A!==null&&this.parseSubNode(l,r,A)}return r.propertyList=c,typeof d=="number"&&(r.id=d),p!==""&&(r.attrName=p),v!==""&&(r.attrType=v),l!==""&&(r.name=l),r},n.prototype.parseSubNode=function(t,e,r){if(r.singleProperty===!0){var o=r.propertyList[0];Array.isArray(o)?(e[r.name]=r,r.a=o):e[r.name]=o}else if(t==="Connections"&&r.name==="C"){var s=[];r.propertyList.forEach(function(v,A){A!==0&&s.push(v)}),e.connections===void 0&&(e.connections=[]),e.connections.push(s)}else if(r.name==="Properties70"){var u=Object.keys(r);u.forEach(function(v){e[v]=r[v]})}else if(t==="Properties70"&&r.name==="P"){var l=r.propertyList[0],c=r.propertyList[1],f=r.propertyList[2],d=r.propertyList[3],p=void 0;l.indexOf("Lcl ")===0&&(l=l.replace("Lcl ","Lcl_")),c.indexOf("Lcl ")===0&&(c=c.replace("Lcl ","Lcl_")),c==="Color"||c==="ColorRGB"||c==="Vector"||c==="Vector3D"||c.indexOf("Lcl_")===0?p=[r.propertyList[4],r.propertyList[5],r.propertyList[6]]:p=r.propertyList[4],e[l]={type:c,type2:f,flag:d,value:p}}else e[r.name]===void 0?typeof r.id=="number"?(e[r.name]={},e[r.name][r.id]=r):e[r.name]=r:r.name==="PoseNode"?(Array.isArray(e[r.name])||(e[r.name]=[e[r.name]]),e[r.name].push(r)):e[r.name][r.id]===void 0&&(e[r.name][r.id]=r)},n.prototype.parseProperty=function(t){var e=t.getString(1),r;switch(e){case"C":return t.getBoolean();case"D":return t.getFloat64();case"F":return t.getFloat32();case"I":return t.getInt32();case"L":return t.getInt64();case"R":return r=t.getUint32(),t.getArrayBuffer(r);case"S":return r=t.getUint32(),t.getString(r);case"Y":return t.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":var o=t.getUint32(),s=t.getUint32(),u=t.getUint32();if(s===0)switch(e){case"b":case"c":return t.getBooleanArray(o);case"d":return t.getFloat64Array(o);case"f":return t.getFloat32Array(o);case"i":return t.getInt32Array(o);case"l":return t.getInt64Array(o)}var l=unzlibSync(new Uint8Array(t.getArrayBuffer(u))),c=new BinaryReader(l.buffer);switch(e){case"b":case"c":return c.getBooleanArray(o);case"d":return c.getFloat64Array(o);case"f":return c.getFloat32Array(o);case"i":return c.getInt32Array(o);case"l":return c.getInt64Array(o)}break;default:throw new Error("THREE.FBXLoader: Unknown property type "+e)}},n}(),BinaryReader=function(){function n(t,e){this.dv=new DataView(t),this.offset=0,this.littleEndian=e!==void 0?e:!0,this._textDecoder=new TextDecoder}return n.prototype.getOffset=function(){return this.offset},n.prototype.size=function(){return this.dv.buffer.byteLength},n.prototype.skip=function(t){this.offset+=t},n.prototype.getBoolean=function(){return(this.getUint8()&1)===1},n.prototype.getBooleanArray=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getBoolean());return e},n.prototype.getUint8=function(){var t=this.dv.getUint8(this.offset);return this.offset+=1,t},n.prototype.getInt16=function(){var t=this.dv.getInt16(this.offset,this.littleEndian);return this.offset+=2,t},n.prototype.getInt32=function(){var t=this.dv.getInt32(this.offset,this.littleEndian);return this.offset+=4,t},n.prototype.getInt32Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getInt32());return e},n.prototype.getUint32=function(){var t=this.dv.getUint32(this.offset,this.littleEndian);return this.offset+=4,t},n.prototype.getInt64=function(){var t,e;return this.littleEndian?(t=this.getUint32(),e=this.getUint32()):(e=this.getUint32(),t=this.getUint32()),e&2147483648?(e=~e&4294967295,t=~t&4294967295,t===4294967295&&(e=e+1&4294967295),t=t+1&4294967295,-(e*4294967296+t)):e*4294967296+t},n.prototype.getInt64Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getInt64());return e},n.prototype.getUint64=function(){var t,e;return this.littleEndian?(t=this.getUint32(),e=this.getUint32()):(e=this.getUint32(),t=this.getUint32()),e*4294967296+t},n.prototype.getFloat32=function(){var t=this.dv.getFloat32(this.offset,this.littleEndian);return this.offset+=4,t},n.prototype.getFloat32Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getFloat32());return e},n.prototype.getFloat64=function(){var t=this.dv.getFloat64(this.offset,this.littleEndian);return this.offset+=8,t},n.prototype.getFloat64Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getFloat64());return e},n.prototype.getArrayBuffer=function(t){var e=this.dv.buffer.slice(this.offset,this.offset+t);return this.offset+=t,e},n.prototype.getString=function(t){var e=this.offset,r=new Uint8Array(this.dv.buffer,e,t);this.skip(t);var o=r.indexOf(0);return o>=0&&(r=new Uint8Array(this.dv.buffer,e,o)),this._textDecoder.decode(r)},n}(),FBXTree=function(){function n(){this.Connections={connections:[]},this.Objects={Model:{},NodeAttribute:{},Geometry:{}},this.GlobalSettings={}}return n.prototype.add=function(t,e){this[t]=e},n}();function isFbxFormatBinary(n){var t="Kaydara FBX Binary \0";return n.byteLength>=t.length&&t===convertArrayBufferToString(n,0,t.length)}function isFbxFormatASCII(n){var t=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"],e=0;function r(u){var l=n[u-1];return n=n.slice(e+u),e++,l}for(var o=0;o<t.length;++o){var s=r(1);if(s===t[o])return!1}return!0}function getFbxVersion(n){var t=/FBXVersion: (\d+)/,e=n.match(t);if(e){var r=parseInt(e[1]);return r}throw new Error("THREE.FBXLoader: Cannot find the version number for the file given.")}function convertFBXTimeToSeconds(n){return n/46186158e3}var dataArray=[];function getData(n,t,e,r){var o;switch(r.mappingType){case"ByPolygonVertex":o=n;break;case"ByPolygon":o=t;break;case"ByVertice":o=e;break;case"AllSame":o=r.indices[0];break;default:console.warn("THREE.FBXLoader: unknown attribute mapping type "+r.mappingType),o=0}r.referenceType==="IndexToDirect"&&(o=r.indices[o]);var s=o*r.dataSize,u=s+r.dataSize;return slice(dataArray,r.buffer,s,u)}var tempEuler=new THREE__namespace.Euler,tempVec=new THREE__namespace.Vector3;function generateTransform(n){var t=new THREE__namespace.Matrix4,e=new THREE__namespace.Matrix4,r=new THREE__namespace.Matrix4,o=new THREE__namespace.Matrix4,s=new THREE__namespace.Matrix4,u=new THREE__namespace.Matrix4,l=new THREE__namespace.Matrix4,c=new THREE__namespace.Matrix4,f=new THREE__namespace.Matrix4,d=new THREE__namespace.Matrix4,p=new THREE__namespace.Matrix4,v=new THREE__namespace.Matrix4,A=n.inheritType?n.inheritType:0;n.translation&&t.setPosition(tempVec.fromArray(n.translation));var g=getEulerOrder(0);if(n.preRotation){var h=n.preRotation.map(THREE__namespace.MathUtils.degToRad);h.push(g),e.makeRotationFromEuler(tempEuler.fromArray(h))}if(n.rotation){var h=n.rotation.map(THREE__namespace.MathUtils.degToRad);h.push(n.eulerOrder||g),r.makeRotationFromEuler(tempEuler.fromArray(h))}if(n.postRotation){var h=n.postRotation.map(THREE__namespace.MathUtils.degToRad);h.push(g),o.makeRotationFromEuler(tempEuler.fromArray(h)),o.copy(new THREE__namespace.Matrix4().getInverse(o))}n.scale&&s.scale(tempVec.fromArray(n.scale)),n.scalingOffset&&l.setPosition(tempVec.fromArray(n.scalingOffset)),n.scalingPivot&&u.setPosition(tempVec.fromArray(n.scalingPivot)),n.rotationOffset&&c.setPosition(tempVec.fromArray(n.rotationOffset)),n.rotationPivot&&f.setPosition(tempVec.fromArray(n.rotationPivot)),n.parentMatrixWorld&&(p.copy(n.parentMatrix),d.copy(n.parentMatrixWorld));var y=e.clone().multiply(r).multiply(o),m=new THREE__namespace.Matrix4;m.extractRotation(d);var E=new THREE__namespace.Matrix4;E.copyPosition(d);var b=new THREE__namespace.Matrix4().getInverse(E).multiply(d),T=new THREE__namespace.Matrix4().getInverse(m).multiply(b),_=s,R=new THREE__namespace.Matrix4;if(A===0)R.copy(m).multiply(y).multiply(T).multiply(_);else if(A===1)R.copy(m).multiply(T).multiply(y).multiply(_);else{var S=new THREE__namespace.Matrix4().scale(new THREE__namespace.Vector3().setFromMatrixScale(p)),C=new THREE__namespace.Matrix4().getInverse(S),B=T.clone().multiply(C);R.copy(m).multiply(y).multiply(B).multiply(_)}var L=new THREE__namespace.Matrix4().getInverse(f),M=new THREE__namespace.Matrix4().getInverse(u),w=t.clone().multiply(c).multiply(f).multiply(e).multiply(r).multiply(o).multiply(L).multiply(l).multiply(u).multiply(s).multiply(M),H=new THREE__namespace.Matrix4().copyPosition(w),O=d.clone().multiply(H);return v.copyPosition(O),w=v.clone().multiply(R),w.premultiply(new THREE__namespace.Matrix4().getInverse(d)),w}function getEulerOrder(n){n=n||0;var t=["ZYX","YZX","XZY","ZXY","YXZ","XYZ"];return n===6?(console.warn("THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect."),t[0]):t[n]}function parseNumberArray(n){var t=n.split(",").map(function(e){return parseFloat(e)});return t}function convertArrayBufferToString(n,t,e){return t===void 0&&(t=0),e===void 0&&(e=n.byteLength),new TextDecoder().decode(new Uint8Array(n,t,e))}function append(n,t){for(var e=0,r=n.length,o=t.length;e<o;e++,r++)n[r]=t[e]}function slice(n,t,e,r){for(var o=e,s=0;o<r;o++,s++)n[s]=t[o];return n}var NURBSCurve=function(n){__extends(t,n);function t(e,r,o,s,u){var l=n.call(this)||this,c=r?r.length-1:0,f=o?o.length:0;l.degree=e,l.knots=r,l.controlPoints=[],l.startKnot=s||0,l.endKnot=u||c;for(var d=0;d<f;++d){var p=o[d];l.controlPoints[d]=new THREE__namespace.Vector4(p.x,p.y,p.z,p.w)}return l}return t.prototype.getPoint=function(e,r){r===void 0&&(r=new THREE__namespace.Vector3);var o=r,s=this.knots[this.startKnot]+e*(this.knots[this.endKnot]-this.knots[this.startKnot]),u=calcBSplinePoint(this.degree,this.knots,this.controlPoints,s);return u.w!==1&&u.divideScalar(u.w),o.set(u.x,u.y,u.z)},t.prototype.getTangent=function(e,r){r===void 0&&(r=new THREE__namespace.Vector3);var o=r,s=this.knots[0]+e*(this.knots[this.knots.length-1]-this.knots[0]),u=calcNURBSDerivatives(this.degree,this.knots,this.controlPoints,s,1);return o.copy(u[1]).normalize(),o},t.prototype.toJSON=function(){var e=n.prototype.toJSON.call(this);return e.degree=this.degree,e.knots=__spreadArray([],this.knots,!0),e.controlPoints=this.controlPoints.map(function(r){return r.toArray()}),e.startKnot=this.startKnot,e.endKnot=this.endKnot,e},t.prototype.fromJSON=function(e){return n.prototype.fromJSON.call(this,e),this.degree=e.degree,this.knots=__spreadArray([],e.knots,!0),this.controlPoints=e.controlPoints.map(function(r){return new THREE__namespace.Vector4(r[0],r[1],r[2],r[3])}),this.startKnot=e.startKnot,this.endKnot=e.endKnot,this},t}(THREE__namespace.Curve);function findSpan(n,t,e){var r=e.length-n-1;if(t>=e[r])return r-1;if(t<=e[n])return n;for(var o=n,s=r,u=Math.floor((o+s)/2);t<e[u]||t>=e[u+1];)t<e[u]?s=u:o=u,u=Math.floor((o+s)/2);return u}function calcBasisFunctions(n,t,e,r){var o=[],s=[],u=[];o[0]=1;for(var l=1;l<=e;++l){s[l]=t-r[n+1-l],u[l]=r[n+l]-t;for(var c=0,f=0;f<l;++f){var d=u[f+1],p=s[l-f],v=o[f]/(d+p);o[f]=c+d*v,c=p*v}o[l]=c}return o}function calcBSplinePoint(n,t,e,r){for(var o=findSpan(n,r,t),s=calcBasisFunctions(o,r,n,t),u=new THREE__namespace.Vector4(0,0,0,0),l=0;l<=n;++l){var c=e[o-n+l],f=s[l],d=c.w*f;u.x+=c.x*d,u.y+=c.y*d,u.z+=c.z*d,u.w+=c.w*f}return u}function calcBasisFunctionDerivatives(n,t,e,r,o){for(var s=[],u=0;u<=e;++u)s[u]=0;for(var l=[],u=0;u<=r;++u)l[u]=s.slice(0);for(var c=[],u=0;u<=e;++u)c[u]=s.slice(0);c[0][0]=1;for(var f=s.slice(0),d=s.slice(0),p=1;p<=e;++p){f[p]=t-o[n+1-p],d[p]=o[n+p]-t;for(var v=0,A=0;A<p;++A){var g=d[A+1],h=f[p-A];c[p][A]=g+h;var y=c[A][p-1]/c[p][A];c[A][p]=v+g*y,v=h*y}c[p][p]=v}for(var p=0;p<=e;++p)l[0][p]=c[p][e];for(var m=0;m<=e;++m){for(var E=0,b=1,T=[],u=0;u<=e;++u)T[u]=s.slice(0);T[0][0]=1;for(var _=1;_<=r;++_){var R=0,S=m-_,C=e-_;m>=_&&(T[b][0]=T[E][0]/c[C+1][S],R=T[b][0]*c[S][C]);for(var B=S>=-1?1:-S,L=m-1<=C?_-1:e-m,M=B;M<=L;++M)T[b][M]=(T[E][M]-T[E][M-1])/c[C+1][S+M],R+=T[b][M]*c[S+M][C];m<=C&&(T[b][_]=-T[E][_-1]/c[C+1][m],R+=T[b][_]*c[m][C]),l[_][m]=R;var p=E;E=b,b=p}}for(var w=e,_=1;_<=r;++_){for(var p=0;p<=e;++p)l[_][p]*=w;w*=e-_}return l}function calcBSplineDerivatives(n,t,e,r,o){for(var s=o<n?o:n,u=[],l=findSpan(n,r,t),c=calcBasisFunctionDerivatives(l,r,n,s,t),f=[],d=0;d<e.length;++d){var p=e[d].clone(),v=p.w;p.x*=v,p.y*=v,p.z*=v,f[d]=p}for(var A=0;A<=s;++A){for(var p=f[l-n].clone().multiplyScalar(c[A][0]),g=1;g<=n;++g)p.add(f[l-n+g].clone().multiplyScalar(c[A][g]));u[A]=p}for(var A=s+1;A<=o+1;++A)u[A]=new THREE__namespace.Vector4(0,0,0);return u}function calcKoverI(n,t){for(var e=1,r=2;r<=n;++r)e*=r;for(var o=1,r=2;r<=t;++r)o*=r;for(var r=2;r<=n-t;++r)o*=r;return e/o}function calcRationalCurveDerivatives(n){for(var t=n.length,e=[],r=[],o=0;o<t;++o){var s=n[o];e[o]=new THREE__namespace.Vector3(s.x,s.y,s.z),r[o]=s.w}for(var u=[],l=0;l<t;++l){for(var c=e[l].clone(),o=1;o<=l;++o)c.sub(u[l-o].clone().multiplyScalar(calcKoverI(l,o)*r[o]));u[l]=c.divideScalar(r[0])}return u}function calcNURBSDerivatives(n,t,e,r,o){var s=calcBSplineDerivatives(n,t,e,r,o);return calcRationalCurveDerivatives(s)}var _vector=new THREE__namespace.Vector3;function getPointArray(n,t){switch(t){case"D":return new Float64Array(n);case"F":return new Float32Array(n);case"L":return new Int32Array(n);case"I":return new Int16Array(n);default:return new Uint8Array(n)}}function loadX3p(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={byteLength:0};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"})}).then(function(s){var u,l;return o.byteLength=s.body.byteLength,parse$1(new Uint8Array(s.body),{light:(u=t.light)!==null&&u!==void 0?u:!0,color:t.color,resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(l=n.split("?")[1])!==null&&l!==void 0?l:"",fetcher:r})}).then(function(s){var u=new THREE__namespace.Group;return u.matrixAutoUpdate=!1,u.matrix.compose(u.position,u.quaternion,u.scale),u.name=n,u.add(s.object),{type:"x3p",upAxis:"Z",uri:n,byteLength:o.byteLength,memoryUsage:getMemoryUsage(u),scene:u,textures:[],dispose:function(){return s.dispose()}}})}function parse$1(n,t){for(var e,r,o,s,u,l,c,f,d,p,v,A,g,h,y,m,E,b,T,_,R,S,C,B,L,M,w,H,O,I,N,k,U,D,q,z,Q,G,X,$,W,oe,ae,re,j,se,ie,ue,fe,ne,Te,_e,ve,Me,Z=unzipSync(n),te="",K=null,ye=0,de=Object.keys(Z);ye<de.length;ye++){var xe=de[ye];/(^|\/)main\.xml$/i.test(xe)&&(K=Z[xe],te=xe.slice(0,xe.lastIndexOf("/")+1))}if(!K)throw new Error("X3p: main.xml not found.");if(typeof DOMParser=="undefined")throw new Error("X3p: DOMParser not found.");var ge=(e=t.color)!==null&&e!==void 0?e:new THREE__namespace.Color(10066329),me=new DOMParser,ce=decodeText(K),he=me.parseFromString(ce,"text/xml"),ee=he.querySelector("Record1 Axes"),pe={x:{type:(s=(o=(r=ee==null?void 0:ee.querySelector("CX AxisType"))===null||r===void 0?void 0:r.textContent)===null||o===void 0?void 0:o.toUpperCase())!==null&&s!==void 0?s:"I",dataType:(c=(l=(u=ee==null?void 0:ee.querySelector("CX DataType"))===null||u===void 0?void 0:u.textContent)===null||l===void 0?void 0:l.toUpperCase())!==null&&c!==void 0?c:"D",increment:Number((d=(f=ee==null?void 0:ee.querySelector("CX Increment"))===null||f===void 0?void 0:f.textContent)!==null&&d!==void 0?d:"1"),offset:Number((v=(p=ee==null?void 0:ee.querySelector("CX Offset"))===null||p===void 0?void 0:p.textContent)!==null&&v!==void 0?v:"0")},y:{type:(h=(g=(A=ee==null?void 0:ee.querySelector("CY AxisType"))===null||A===void 0?void 0:A.textContent)===null||g===void 0?void 0:g.toUpperCase())!==null&&h!==void 0?h:"I",dataType:(E=(m=(y=ee==null?void 0:ee.querySelector("CY DataType"))===null||y===void 0?void 0:y.textContent)===null||m===void 0?void 0:m.toUpperCase())!==null&&E!==void 0?E:"D",increment:Number((T=(b=ee==null?void 0:ee.querySelector("CY Increment"))===null||b===void 0?void 0:b.textContent)!==null&&T!==void 0?T:"1"),offset:Number((R=(_=ee==null?void 0:ee.querySelector("CY Offset"))===null||_===void 0?void 0:_.textContent)!==null&&R!==void 0?R:"0")},z:{type:(B=(C=(S=ee==null?void 0:ee.querySelector("CZ AxisType"))===null||S===void 0?void 0:S.textContent)===null||C===void 0?void 0:C.toUpperCase())!==null&&B!==void 0?B:"A",dataType:(w=(M=(L=ee==null?void 0:ee.querySelector("CZ DataType"))===null||L===void 0?void 0:L.textContent)===null||M===void 0?void 0:M.toUpperCase())!==null&&w!==void 0?w:"D",increment:Number((O=(H=ee==null?void 0:ee.querySelector("CZ Increment"))===null||H===void 0?void 0:H.textContent)!==null&&O!==void 0?O:"1"),offset:Number((N=(I=ee==null?void 0:ee.querySelector("CZ Offset"))===null||I===void 0?void 0:I.textContent)!==null&&N!==void 0?N:"0")}},Re=null,we=he.querySelector("Record1 Axes Rotation");we&&(Re=new THREE__namespace.Matrix3,Re.set(Number((U=(k=we.querySelector("r11"))===null||k===void 0?void 0:k.textContent)!==null&&U!==void 0?U:0),Number((q=(D=we.querySelector("r12"))===null||D===void 0?void 0:D.textContent)!==null&&q!==void 0?q:0),Number((Q=(z=we.querySelector("r13"))===null||z===void 0?void 0:z.textContent)!==null&&Q!==void 0?Q:0),Number((X=(G=we.querySelector("r21"))===null||G===void 0?void 0:G.textContent)!==null&&X!==void 0?X:0),Number((W=($=we.querySelector("r22"))===null||$===void 0?void 0:$.textContent)!==null&&W!==void 0?W:0),Number((ae=(oe=we.querySelector("r23"))===null||oe===void 0?void 0:oe.textContent)!==null&&ae!==void 0?ae:0),Number((j=(re=we.querySelector("r31"))===null||re===void 0?void 0:re.textContent)!==null&&j!==void 0?j:0),Number((ie=(se=we.querySelector("r32"))===null||se===void 0?void 0:se.textContent)!==null&&ie!==void 0?ie:0),Number((fe=(ue=we.querySelector("r33"))===null||ue===void 0?void 0:ue.textContent)!==null&&fe!==void 0?fe:0)));var Ue=(ne=he.querySelector("Record3 DataLink PointDataLink"))===null||ne===void 0?void 0:ne.textContent;if(typeof Ue!="string")throw new Error("X3p: PointDataLink not found.");Ue=pathJoin(te,Ue);var be=Z[Ue];if(!be)throw new Error("X3p: ".concat(be," not found."));for(var Ae=getPointArray(be.buffer,pe.z.dataType),ze=Number((_e=(Te=he.querySelector("Record3 MatrixDimension SizeX"))===null||Te===void 0?void 0:Te.textContent)!==null&&_e!==void 0?_e:"0"),Ne=Number((Me=(ve=he.querySelector("Record3 MatrixDimension SizeY"))===null||ve===void 0?void 0:ve.textContent)!==null&&Me!==void 0?Me:"0"),Je=Math.floor(ze-1),Ke=Math.floor(Ne-1),De=Je+1,Ye=Ke+1,Ve=new Float32Array(De*Ye*3),nt=new Float32Array(De*Ye*2),qe=new Uint32Array(Je*Ke*6),Qe=new THREE__namespace.Box3,Ie=0;Ie<Ye;Ie++)for(var Se=Ie*pe.y.increment+pe.y.offset,Be=0;Be<De;Be++){var Le=Ie*De+Be,ot=Be*pe.x.increment+pe.x.offset,$e=Ae[Le],tt=!isNaN($e),Xe=tt?$e:NaN;_vector.set(ot,-Se,Xe),Re&&_vector.applyMatrix3(Re),tt&&Qe.expandByPoint(_vector),Ve[Le*3+0]=_vector.x,Ve[Le*3+1]=_vector.y,Ve[Le*3+2]=_vector.z,nt[Le*2+0]=Be/Je,nt[Le*2+1]=1-Ie/Ke}for(var Ie=0;Ie<Ke;Ie++)for(var Be=0;Be<Je;Be++){var rt=Be+De*Ie,Ge=Be+De*(Ie+1),st=Be+1+De*(Ie+1),ct=Be+1+De*Ie,je=(Ie*Je+Be)*6;qe[je+0]=rt,qe[je+1]=Ge,qe[je+2]=ct,qe[je+3]=Ge,qe[je+4]=st,qe[je+5]=ct}var Fe=new THREE__namespace.BufferGeometry;Fe.setAttribute("position",new THREE__namespace.BufferAttribute(Ve,3)),Fe.setAttribute("uv",new THREE__namespace.BufferAttribute(nt,2)),Fe.setIndex(new THREE__namespace.BufferAttribute(qe,1)),(!Fe.groups||Fe.groups.length===0)&&Fe.addGroup(0,Fe.index?Fe.index.count:Fe.attributes.position.count,0),Fe.boundingBox=Qe;var We=new PBMMeshMaterial(t.light?"phong":"basic");We.flatShading=!0,We.color.copy(ge),We.refreshUniforms();var at=new PBMMesh(Fe,[We]);return{object:at,dispose:function(){Fe.dispose(),We.dispose()}}}var scratchMatrix4$3=new THREE__namespace.Matrix4,MAX_RETRY_DELAY$1=5e3,RETRY_DELAY_STEP$1=1e3;function attachTileAttributes(n,t){n.name=t.id;var e=t.tileset.properties.floorInfo;n.traverse(function(r){if("floor"in t.extras){if(r instanceof THREE__namespace.Mesh||r instanceof THREE__namespace.Points)for(var o=Array.isArray(r.material)?r.material:r.material?[r.material]:[],s=0,u=o;s<u.length;s++){var l=u[s];(l instanceof PBMMeshMaterial||l instanceof PBMPointCloudMaterial)&&(l.floorIndex=t.extras.floor)}}else if(!(r instanceof PBMPointCloud)){if((r instanceof PBMMesh||r instanceof PBMSkinnedMesh)&&e){for(var c=new THREE__namespace.Box3().expandByObject(r),f=c.getCenter(new THREE__namespace.Vector3),d=0,p=0;p<e.length;p++){var v=e[p],A=v.ground,g=v.height;if(f.y<A+g){d=p;break}}t.floor=d,t.tileset.floorLength=Math.max(t.tileset.floorLength,t.floor+1),r.material.forEach(function(h){return h.floorIndex=d})}}})}function loadTileContent(n,t){if(!n.content)return Promise.resolve(n);var e=n.content,r=appendSearch(e.uri,t.search);if(n.type==="TILESET"){var o=imageURL(r,{key:"model.".concat(n.siblingIndex)});return e.loadState="LOADING",e.loadStateUpdateTime=now(),t.fetcher.ajax(o,{responseType:"text"}).then(function(s){return s.body}).then(function(s){var u=r.slice(0,r.lastIndexOf("/")+1);return normalizeTilesetHeader(JSON.parse(s),u)}).then(function(s){e.loadState="READY",e.loadStateUpdateTime=now(),e.loadfailRetryDelay=0,n.children.length===0&&(n.children=[new Tile("".concat(n.id,".0"),s.root,n.tileset,n)])}).then(function(){return n}).catch(function(s){return e.loadState="FAILED",e.loadStateUpdateTime=now(),e.loadfailRetryDelay=Math.min(e.loadfailRetryDelay+1e3,5e3),Promise.reject(s)})}if(n.type==="SCENEGRAPH")return e.loadState="LOADING",e.loadStateUpdateTime=now(),Promise.resolve().then(function(){var s,u,l,c,f,d,p,v,A,g,h="",y=r.split("#"),m=y[0],E=y[1],b=(E||m).split("?")[0].match(/\.([0-9a-zA-Z]+)$/);if(b&&(h=b[1]),h==="b3dm"){var T=imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadB3dm(T,{upAxis:n.tileset.asset.gltfUpAxis,light:t.light,fetcher:t.fetcher}).then(function(_){return _.scene.applyMatrix4(n.transform),_.scene.updateWorldMatrix(!1,!0),_.scene.matrixAutoUpdate=!1,attachTileAttributes(_.scene,n),_})}if(h==="pnts"){var T=imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadPnts(T,{computeBoundingBox:!1,fetcher:t.fetcher}).then(function(R){if(R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,n.boundingVolume){var S=n.boundingVolume;R.scene.traverse(function(C){if(C instanceof PBMPointCloud){scratchMatrix4$3.getInverse(C.matrixWorld);var B=new THREE__namespace.Box3;S.getBoundingBox(B),B.applyMatrix4(scratchMatrix4$3),C.geometry.boundingBox=B}})}return attachTileAttributes(R.scene,n),R})}if(h==="glb"||h==="gltf"){var T=imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadGltf(T,{upAxis:n.tileset.asset.gltfUpAxis,light:t.light,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,attachTileAttributes(R.scene,n),R})}if(h==="at3d"){var T=n.extras.at3d?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadAt3d(T,{light:t.light,textureBaseUri:(s=n.extras.at3d)===null||s===void 0?void 0:s.textureBaseUri,textureArray:(u=n.extras.at3d)===null||u===void 0?void 0:u.textureArray,textureOptions:(l=n.extras.at3d)===null||l===void 0?void 0:l.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(h==="pbm"){var T=n.extras.pbm?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadPbm(T,{light:t.light,textureBaseUri:(c=n.extras.pbm)===null||c===void 0?void 0:c.textureBaseUri,textureArray:(f=n.extras.pbm)===null||f===void 0?void 0:f.textureArray,textureOptions:(d=n.extras.pbm)===null||d===void 0?void 0:d.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(h==="dome"){var T=n.extras.dome?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadDome(T,{light:t.light,textureBaseUri:(p=n.extras.dome)===null||p===void 0?void 0:p.textureBaseUri,textureOptions:(v=n.extras.dome)===null||v===void 0?void 0:v.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(h==="domez"){var T=n.extras.domez?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadDomez(T,{light:t.light,textureBaseUri:(A=n.extras.domez)===null||A===void 0?void 0:A.textureBaseUri,textureOptions:(g=n.extras.domez)===null||g===void 0?void 0:g.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(h==="ply"){var T=n.extras.ply?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadPly(T,{type:"pbmPointCloud",light:t.light,upAxis:"Z",fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(h==="obj"){var T=n.extras.obj?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadObj(T,{upAxis:"Z",light:t.light,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(h==="fbx"){var T=n.extras.obj?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadFbx(T,{light:t.light,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(h==="x3p"){var T=n.extras.x3p?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadX3p(T,{light:t.light,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}throw new Error("Invalid Tile content: ".concat(r))}).then(function(s){s.scene.traverse(function(l){if(l instanceof PBMPointCloud)l.material.uniforms.geometricError.value=n.geometricError;else if(l instanceof PBMMesh||l instanceof PBMSkinnedMesh)for(var c=0,f=l.material;c<f.length;c++){var d=f[c];d.uniforms.geometricError.value=n.geometricError}});var u={type:s.type,uri:s.uri,byteLength:s.byteLength,memoryUsage:s.memoryUsage,object:new TileNode(n.id,s.scene,s.dispose)};return Promise.resolve().then(function(){return Promise.all([u.object.generateBvhTree(),t.renderer&&s.textures.length<16?initTextures(s.textures,t.renderer,1024*1024):null])}).then(function(){return e.loadState="READY",e.loadStateUpdateTime=now(),e.loadfailRetryDelay=0,e.byteLength=u.byteLength,e.memoryUsage=u.memoryUsage,e.data=u,n}).catch(function(l){return unloadTileContent(n),Promise.reject(l)})}).catch(function(s){return e.loadState="FAILED",e.loadStateUpdateTime=now(),s instanceof NetworkResponseError&&s.httpStatus===0||s instanceof NetworkTimeoutError||s instanceof NetworkProxyError?e.loadfailRetryDelay=clamp$1(e.loadfailRetryDelay+RETRY_DELAY_STEP$1,RETRY_DELAY_STEP$1,MAX_RETRY_DELAY$1):e.loadfailRetryDelay=1/0,Promise.reject(s)});throw new Error("Invalid Tile type: ".concat(n.type))}function unloadTileContent(n){n.content&&(n.content.data&&n.content.data.object.dispose(),n.content.data=void 0,n.content.loadState="UNLOADED",n.content.loadStateUpdateTime=now(),n.content.byteLength=0,n.content.memoryUsage=0)}var TrajectoryNode=function(n){__extends(t,n);function t(e,r,o){o===void 0&&(o=noop$1);var s=n.call(this)||this;return s.name=e,s.contentObject=r,s.name=e,s.add(r),s.disposers=[o],s}return t.prototype.update=function(e,r,o){var s=this.contentObject.material[2];s.uniforms.dashOffset.value=(s.uniforms.dashOffset.value-.003)%(s.uniforms.dashSize.value.x+s.uniforms.dashSize.value.y),o.needsRender=!0},t.prototype.dispose=function(){for(var e=0,r=this.disposers;e<r.length;e++){var o=r[e];o()}this.disposers.length=0},t.prototype.clone=function(){return new t(this.name,this.contentObject.clone())},t}(THREE__namespace.Object3D),MAX_RETRY_DELAY=5e3,RETRY_DELAY_STEP=1e3,TRAJECTOR_PIPE_SHADER={vertexShader:`
|
|
934
|
+
`),s={name:""},u=/\s+/,l={},c=0;c<o.length;c++){var f=o[c];if(f=f.trim(),!(f.length===0||f.charAt(0)==="#")){var d=f.indexOf(" "),p=d>=0?f.substring(0,d):f;p=p.toLowerCase();var v=d>=0?f.substring(d+1):"";if(v=v.trim(),p==="newmtl")s={name:v},l[v]=s;else if(p==="ka"||p==="kd"||p==="ks"||p==="ke"){var A=v.split(u,3);s[p]=[parseFloat(A[0]),parseFloat(A[1]),parseFloat(A[2])]}else(p==="map_kd"||p==="map_ks"||p==="map_ke"||p==="norm"||p==="map_bump"||p==="bump"||p==="map_d"||p==="ns"||p==="d"||p==="tr")&&(s[p]=v)}}function g(y){var m={url:"",scale:new THREE__namespace.Vector2(1,1),offset:new THREE__namespace.Vector2(0,0),bumpScale:1},E=y.split(/\s+/),b;return b=E.indexOf("-bm"),b>=0&&(m.bumpScale=parseFloat(E[b+1]),E.splice(b,2)),b=E.indexOf("-s"),b>=0&&(m.scale.set(parseFloat(E[b+1]),parseFloat(E[b+2])),E.splice(b,4)),b=E.indexOf("-o"),b>=0&&(m.offset.set(parseFloat(E[b+1]),parseFloat(E[b+2])),E.splice(b,4)),m.url=E.join(" ").trim(),m}function h(y,m,E){var b=g(E),T=pathJoin(e.path,b.url);return r.loadTexture(T,{fetcher:e.fetcher,encoding:m==="map"||m==="emissiveMap"?THREE__namespace.sRGBEncoding:THREE__namespace.LinearEncoding,minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,wrapS:THREE__namespace.RepeatWrapping,wrapT:THREE__namespace.RepeatWrapping}).then(function(_){var R=_.body;return R.repeat.copy(b.scale),R.offset.copy(b.offset),y.bumpScale=b.bumpScale,y[m]=R,R})}return{name:n,create:function(y){var m=new PBMMeshMaterial(e.light?"phong":"basic"),E=[],b=l[y];if(b){if(b.kd!==void 0&&m.color.fromArray(b.kd),b.ks!==void 0&&m.specular.fromArray(b.ks),b.ke!==void 0&&m.emissive.fromArray(b.ke),b.map_kd!==void 0&&E.push(h(m,"map",b.map_kd)),b.map_ks!==void 0&&E.push(h(m,"specularMap",b.map_ks)),b.map_ke!==void 0&&E.push(h(m,"emissiveMap",b.map_ke)),b.norm!==void 0&&E.push(h(m,"normalMap",b.norm)),b.map_bump!==void 0&&E.push(h(m,"bumpMap",b.map_bump)),b.bump!==void 0&&E.push(h(m,"bumpMap",b.bump)),b.map_d!==void 0&&E.push(h(m,"alphaMap",b.map_d)),b.ns!==void 0&&(m.shininess=parseFloat(b.ns)),b.d!==void 0){var T=parseFloat(b.d);T<1&&(m.opacity=T,m.transparent=!0)}if(b.tr!==void 0){var T=parseFloat(b.tr);T>0&&(m.opacity=1-T,m.transparent=!0)}}var _=Promise.all(E).then(function(R){return m.refreshUniforms(),R});return[m,_]}}}function build(n,t){for(var e,r=[],o=[],s=new THREE__namespace.Group,u=function(f,d){var p=n.objects[f],v=p.geometry,A=p.materials,g=!1;if(v.vertices.length===0)return"continue";var h=new THREE__namespace.BufferGeometry;o.push(function(){return h.dispose()}),h.setAttribute("position",new THREE__namespace.BufferAttribute(new Float32Array(v.vertices),3)),v.normals.length>0&&h.setAttribute("normal",new THREE__namespace.BufferAttribute(new Float32Array(v.normals),3)),v.colors.length>0&&(g=!0,h.setAttribute("color",new THREE__namespace.BufferAttribute(new Float32Array(v.colors),3))),v.uvs.length>0&&h.setAttribute("uv",new THREE__namespace.BufferAttribute(new Float32Array(v.uvs),2)),v.index.length>0&&h.setIndex(new THREE__namespace.BufferAttribute(new Uint32Array(v.index),1)),h.computeBoundingBox(),h.computeBoundingSphere();for(var y=[],m=function(R,S){var C=A[R],B=C.name+"_"+C.smooth+"_"+g,L=n.materials[B];if(!L){for(var M=null,w=0,H=t;w<H.length;w++){var O=H[w],I=O.name,N=O.create;I===C.mtllib&&(M=N(C.name))}if(!M){var k=new PBMMeshMaterial;k.refreshUniforms(),M=[k,Promise.resolve([])]}L=M[0],L.name=C.name,L.flatShading=!(C.smooth||h.attributes.normal),L.vertexColors=g,n.materials[B]=L;var U=M[1];r.push(U),o.push(function(){return L.dispose()})}y.push(L)},E=0,b=A.length;E<b;E++)m(E);h.clearGroups();for(var E=0,b=A.length;E<b;E++){var T=A[E];T.groupCount&&h.addGroup((e=T.groupStart)!==null&&e!==void 0?e:0,T.groupCount,E)}(!h.groups||h.groups.length===0)&&h.addGroup(0,h.index?h.index.count:h.attributes.position.count,0);var _=new PBMMesh(h,y);_.name=p.name,s.add(_)},l=0,c=n.objects.length;l<c;l++)u(l);return Promise.all(r).then(function(f){for(var d=[],p=0,v=f;p<v.length;p++){var A=v[p];d=d.concat(A)}return{scene:s,textures:d,dispose:function(){return o.forEach(function(g){return g()})}}})}function loadObj(n,t){var e,r;t===void 0&&(t={});var o=(e=t.upAxis)!==null&&e!==void 0?e:"Z",s=(r=t.fetcher)!==null&&r!==void 0?r:new Fetcher({allowHosts:["*"]}),u=n.slice(0,n.lastIndexOf("/")+1),l=0,c;return Promise.resolve().then(function(){return s.ajax(n,{responseType:"arraybuffer"})}).then(function(f){l=f.body.byteLength;var d=new TextDecoder;return d.decode(f.body)}).then(function(f){return c=parseObj(f),Promise.all(c.materialLibraries.map(function(d){var p=pathJoin(u,d),v=p.slice(0,p.lastIndexOf("/")+1);return s.ajax(p,{responseType:"text"}).then(function(A){var g;return parseMtl(d,A.body,{path:v,light:(g=t.light)!==null&&g!==void 0?g:!1,fetcher:s})})}))}).then(function(f){return build(c,f)}).then(function(f){var d=new THREE__namespace.Matrix4;return o==="Y"&&d.premultiply(ROTATE_X_MATRIX$1),f.scene.applyMatrix4(d),{type:"obj",upAxis:"Z",uri:n,byteLength:l,memoryUsage:getMemoryUsage(f.scene),scene:f.scene,textures:f.textures,dispose:function(){return f.dispose()}}})}var u8=Uint8Array,u16=Uint16Array,i32=Int32Array,fleb=new u8([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),fdeb=new u8([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),clim=new u8([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),freb=function(n,t){for(var e=new u16(31),r=0;r<31;++r)e[r]=t+=1<<n[r-1];for(var o=new i32(e[30]),r=1;r<30;++r)for(var s=e[r];s<e[r+1];++s)o[s]=s-e[r]<<5|r;return{b:e,r:o}},_a$3=freb(fleb,2),fl=_a$3.b,revfl=_a$3.r;fl[28]=258,revfl[258]=28;var _b=freb(fdeb,0),fd=_b.b,rev=new u16(32768);for(var i=0;i<32768;++i){var x=(i&43690)>>1|(i&21845)<<1;x=(x&52428)>>2|(x&13107)<<2,x=(x&61680)>>4|(x&3855)<<4,rev[i]=((x&65280)>>8|(x&255)<<8)>>1}var hMap=function(n,t,e){for(var r=n.length,o=0,s=new u16(t);o<r;++o)n[o]&&++s[n[o]-1];var u=new u16(t);for(o=1;o<t;++o)u[o]=u[o-1]+s[o-1]<<1;var l;if(e){l=new u16(1<<t);var c=15-t;for(o=0;o<r;++o)if(n[o])for(var f=o<<4|n[o],d=t-n[o],p=u[n[o]-1]++<<d,v=p|(1<<d)-1;p<=v;++p)l[rev[p]>>c]=f}else for(l=new u16(r),o=0;o<r;++o)n[o]&&(l[o]=rev[u[n[o]-1]++]>>15-n[o]);return l},flt=new u8(288);for(var i=0;i<144;++i)flt[i]=8;for(var i=144;i<256;++i)flt[i]=9;for(var i=256;i<280;++i)flt[i]=7;for(var i=280;i<288;++i)flt[i]=8;var fdt=new u8(32);for(var i=0;i<32;++i)fdt[i]=5;var flrm=hMap(flt,9,1),fdrm=hMap(fdt,5,1),max=function(n){for(var t=n[0],e=1;e<n.length;++e)n[e]>t&&(t=n[e]);return t},bits=function(n,t,e){var r=t/8|0;return(n[r]|n[r+1]<<8)>>(t&7)&e},bits16=function(n,t){var e=t/8|0;return(n[e]|n[e+1]<<8|n[e+2]<<16)>>(t&7)},shft=function(n){return(n+7)/8|0},slc=function(n,t,e){return(t==null||t<0)&&(t=0),(e==null||e>n.length)&&(e=n.length),new u8(n.subarray(t,e))},ec=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],err=function(n,t,e){var r=new Error(t||ec[n]);if(r.code=n,Error.captureStackTrace&&Error.captureStackTrace(r,err),!e)throw r;return r},inflt=function(n,t,e,r){var o=n.length,s=r?r.length:0;if(!o||t.f&&!t.l)return e||new u8(0);var u=!e,l=u||t.i!=2,c=t.i;u&&(e=new u8(o*3));var f=function(se){var ie=e.length;if(se>ie){var ue=new u8(Math.max(ie*2,se));ue.set(e),e=ue}},d=t.f||0,p=t.p||0,v=t.b||0,A=t.l,g=t.d,h=t.m,y=t.n,m=o*8;do{if(!A){d=bits(n,p,1);var E=bits(n,p+1,3);if(p+=3,E)if(E==1)A=flrm,g=fdrm,h=9,y=5;else if(E==2){var R=bits(n,p,31)+257,S=bits(n,p+10,15)+4,C=R+bits(n,p+5,31)+1;p+=14;for(var B=new u8(C),L=new u8(19),M=0;M<S;++M)L[clim[M]]=bits(n,p+M*3,7);p+=S*3;for(var w=max(L),H=(1<<w)-1,O=hMap(L,w,1),M=0;M<C;){var I=O[bits(n,p,H)];p+=I&15;var b=I>>4;if(b<16)B[M++]=b;else{var N=0,k=0;for(b==16?(k=3+bits(n,p,3),p+=2,N=B[M-1]):b==17?(k=3+bits(n,p,7),p+=3):b==18&&(k=11+bits(n,p,127),p+=7);k--;)B[M++]=N}}var U=B.subarray(0,R),D=B.subarray(R);h=max(U),y=max(D),A=hMap(U,h,1),g=hMap(D,y,1)}else err(1);else{var b=shft(p)+4,T=n[b-4]|n[b-3]<<8,_=b+T;if(_>o){c&&err(0);break}l&&f(v+T),e.set(n.subarray(b,_),v),t.b=v+=T,t.p=p=_*8,t.f=d;continue}if(p>m){c&&err(0);break}}l&&f(v+131072);for(var q=(1<<h)-1,z=(1<<y)-1,Q=p;;Q=p){var N=A[bits16(n,p)&q],G=N>>4;if(p+=N&15,p>m){c&&err(0);break}if(N||err(2),G<256)e[v++]=G;else if(G==256){Q=p,A=null;break}else{var X=G-254;if(G>264){var M=G-257,$=fleb[M];X=bits(n,p,(1<<$)-1)+fl[M],p+=$}var W=g[bits16(n,p)&z],oe=W>>4;W||err(3),p+=W&15;var D=fd[oe];if(oe>3){var $=fdeb[oe];D+=bits16(n,p)&(1<<$)-1,p+=$}if(p>m){c&&err(0);break}l&&f(v+131072);var ae=v+X;if(v<D){var re=s-D,j=Math.min(D,ae);for(re+v<0&&err(3);v<j;++v)e[v]=r[re+v]}for(;v<ae;++v)e[v]=e[v-D]}}t.l=A,t.p=Q,t.b=v,t.f=d,A&&(d=1,t.m=h,t.d=g,t.n=y)}while(!d);return v!=e.length&&u?slc(e,0,v):e.subarray(0,v)},et=new u8(0),b2=function(n,t){return n[t]|n[t+1]<<8},b4=function(n,t){return(n[t]|n[t+1]<<8|n[t+2]<<16|n[t+3]<<24)>>>0},b8=function(n,t){return b4(n,t)+b4(n,t+4)*4294967296},zls=function(n,t){return((n[0]&15)!=8||n[0]>>4>7||(n[0]<<8|n[1])%31)&&err(6,"invalid zlib data"),(n[1]>>5&1)==+!t&&err(6,"invalid zlib data: "+(n[1]&32?"need":"unexpected")+" dictionary"),(n[1]>>3&4)+2};function inflateSync(n,t){return inflt(n,{i:2},t&&t.out,t&&t.dictionary)}function unzlibSync(n,t){return inflt(n.subarray(zls(n,t),-4),{i:2},t,t)}var td=typeof TextDecoder!="undefined"&&new TextDecoder,tds=0;try{td.decode(et,{stream:!0}),tds=1}catch(n){}var dutf8=function(n){for(var t="",e=0;;){var r=n[e++],o=(r>127)+(r>223)+(r>239);if(e+o>n.length)return{s:t,r:slc(n,e-1)};o?o==3?(r=((r&15)<<18|(n[e++]&63)<<12|(n[e++]&63)<<6|n[e++]&63)-65536,t+=String.fromCharCode(55296|r>>10,56320|r&1023)):o&1?t+=String.fromCharCode((r&31)<<6|n[e++]&63):t+=String.fromCharCode((r&15)<<12|(n[e++]&63)<<6|n[e++]&63):t+=String.fromCharCode(r)}};function strFromU8(n,t){if(t){for(var e="",r=0;r<n.length;r+=16384)e+=String.fromCharCode.apply(null,n.subarray(r,r+16384));return e}else{if(td)return td.decode(n);var o=dutf8(n),s=o.s,e=o.r;return e.length&&err(8),s}}var slzh=function(n,t){return t+30+b2(n,t+26)+b2(n,t+28)},zh=function(n,t,e){var r=b2(n,t+28),o=strFromU8(n.subarray(t+46,t+46+r),!(b2(n,t+8)&2048)),s=t+46+r,u=b4(n,t+20),l=e&&u==4294967295?z64e(n,s):[u,b4(n,t+24),b4(n,t+42)],c=l[0],f=l[1],d=l[2];return[b2(n,t+10),c,f,o,s+b2(n,t+30)+b2(n,t+32),d]},z64e=function(n,t){for(;b2(n,t)!=1;t+=4+b2(n,t+2));return[b8(n,t+12),b8(n,t+4),b8(n,t+20)]};function unzipSync(n,t){for(var e={},r=n.length-22;b4(n,r)!=101010256;--r)(!r||n.length-r>65558)&&err(13);var o=b2(n,r+8);if(!o)return{};var s=b4(n,r+16),u=s==4294967295||o==65535;if(u){var l=b4(n,r-12);u=b4(n,l)==101075792,u&&(o=b4(n,l+32),s=b4(n,l+48))}for(var c=0;c<o;++c){var f=zh(n,s,u),d=f[0],p=f[1],v=f[2],A=f[3],g=f[4],h=f[5],y=slzh(n,h);s=g,d?d==8?e[A]=inflateSync(n.subarray(y,y+p),{out:new u8(v)}):err(14,"unknown compression type "+d):e[A]=slc(n,y,y+p)}return e}var ROTATE_X_MATRIX=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadFbx(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o=0;return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"}).then(function(s){return o=s.body.byteLength,s.body})}).then(function(s){var u;return parse$2(s,{light:t.light,resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(u=n.split("?")[1])!==null&&u!==void 0?u:"",fetcher:r})}).then(function(s){var u=s.scene,l=s.unitScale/100,c=new THREE__namespace.Matrix4;return c.makeScale(l,l,l),s.upAxis==="Y"&&c.premultiply(ROTATE_X_MATRIX),u.applyMatrix4(c),{type:"fbx",upAxis:"Z",uri:n,byteLength:o,memoryUsage:getMemoryUsage(u),scene:u,textures:s.textures,dispose:function(){return s.dispose()}}})}function parse$2(n,t){var e;if(isFbxFormatBinary(n))e=new BinaryParser().parse(n);else{var r=convertArrayBufferToString(n);if(!isFbxFormatASCII(r))throw new Error("THREE.FBXLoader: Unknown format.");if(getFbxVersion(r)<7e3)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+getFbxVersion(r));e=new TextParser().parse(r)}return new FBXTreeParser(t).parse(e)}var FBXTreeParser=function(){function n(t){var e,r,o;this.light=(e=t.light)!==null&&e!==void 0?e:!0,this.resourcePath=(r=t.resourcePath)!==null&&r!==void 0?r:"",this.search=(o=t.search)!==null&&o!==void 0?o:"",this.fetcher=t.fetcher}return n.prototype.parse=function(t){var e,r,o,s,u,l,c=this.parseConnections(t),f=new THREE__namespace.Group,d=[],p=this.parseImages(t),v=this.parseTextures(t,p,c,d),A=this.parseMaterials(t,v,c),g=this.parseDeformers(t,c),h=new GeometryParser().parse(t,g,c);this.parseScene(t,g,h,A,c,f);var y=(r=(e=t.GlobalSettings.UpAxis)===null||e===void 0?void 0:e.value)!==null&&r!==void 0?r:1,m=(s=(o=t.GlobalSettings.FrontAxis)===null||o===void 0?void 0:o.value)!==null&&s!==void 0?s:2,E=(l=(u=t.GlobalSettings.UnitScaleFactor)===null||u===void 0?void 0:u.value)!==null&&l!==void 0?l:1,b;if(t.GlobalSettings.AmbientColor){var T=t.GlobalSettings.AmbientColor.value,_=T[0],R=T[1],S=T[2];if(_!==0||R!==0||S!==0){var C=new THREE__namespace.Color().setRGB(_,R,S);b=new THREE__namespace.AmbientLight(C,1)}}return Promise.all(d).then(function(B){return{scene:f,textures:B,ambientLight:b,upAxis:["X","Y","Z"][y],frontAxis:["X","Y","Z"][m],unitScale:E,dispose:function(){B.forEach(function(L){return L.dispose()}),A.forEach(function(L){return L.dispose()}),h.forEach(function(L){return L.dispose()})}}})},n.prototype.parseConnections=function(t){var e=new Map;if("Connections"in t){var r=t.Connections.connections;r.forEach(function(o){var s=o[0],u=o[1],l=o[2];e.has(s)||e.set(s,{parents:[],children:[]});var c={ID:u,relationship:l};e.get(s).parents.push(c),e.has(u)||e.set(u,{parents:[],children:[]});var f={ID:s,relationship:l};e.get(u).children.push(f)})}return e},n.prototype.parseImages=function(t){var e={},r={};if("Video"in t.Objects){var o=t.Objects.Video;for(var s in o){var u=o[s],l=parseInt(s);if(e[l]=u.RelativeFilename||u.Filename,"Content"in u){var c=u.Content instanceof ArrayBuffer&&u.Content.byteLength>0,f=typeof u.Content=="string"&&u.Content!=="";if(c||f){var d=this.parseImage(o[s]);r[u.RelativeFilename||u.Filename]=d}}}}for(var l in e){var p=e[l];r[p]!==void 0?e[l]=r[p]:e[l]=e[l].split("\\").pop()}return e},n.prototype.parseImage=function(t){var e=t.Content,r=t.RelativeFilename||t.Filename,o=r.slice(r.lastIndexOf(".")+1).toLowerCase(),s;switch(o){case"bmp":s="image/bmp";break;case"jpg":case"jpeg":s="image/jpeg";break;case"png":s="image/png";break;case"tif":s="image/tiff";break;case"tga":s="image/tga";break;default:return}if(typeof e=="string")return"data:"+s+";base64,"+e;var u=new Uint8Array(e);return window.URL.createObjectURL(new Blob([u],{type:s}))},n.prototype.parseTextures=function(t,e,r,o){var s=new Map;if("Texture"in t.Objects){var u=t.Objects.Texture;for(var l in u){var c=this.parseTexture(u[l],e,r,o);s.set(parseInt(l),c)}}return s},n.prototype.parseTexture=function(t,e,r,o){var s=this.loadTexture(t,e,r,o);s.ID=t.id,s.name=t.attrName;var u=t.WrapModeU,l=t.WrapModeV,c=u!==void 0?u.value:0,f=l!==void 0?l.value:0;if(s.wrapS=c===0?THREE__namespace.RepeatWrapping:THREE__namespace.ClampToEdgeWrapping,s.wrapT=f===0?THREE__namespace.RepeatWrapping:THREE__namespace.ClampToEdgeWrapping,t.Scaling){var d=t.Scaling.value;s.repeat.x=d[0],s.repeat.y=d[1]}if(t.Translation){var d=t.Translation.value;s.offset.x=d[0],s.offset.y=d[1]}return s},n.prototype.loadTexture=function(t,e,r,o){var s=r.get(t.id).children,u="";s!==void 0&&s.length>0&&e[s[0].ID]!==void 0&&(u=e[s[0].ID]),u=pathJoin(this.resourcePath,appendSearch(u,this.search));var l=Object.assign(new THREE__namespace.Texture,{ID:0}),c;c=this.fetcher.loadImage(u,{},void 0,void 0,void 0,createImageBitmapLikeImage()).then(function(d){return d.body});var f=c.then(function(d){return l.image=d,l.needsUpdate=!0,l});return o.push(f),l},n.prototype.parseMaterials=function(t,e,r){var o=new Map;if("Material"in t.Objects){var s=t.Objects.Material;for(var u in s){var l=this.parseMaterial(t,s[u],e,r);l!==null&&o.set(parseInt(u),l)}}return o},n.prototype.parseMaterial=function(t,e,r,o){var s=e.id;e.attrName;var u=e.ShadingModel;if(typeof u=="object"&&(u=u.value),u=u.toLowerCase(),!o.has(s))return null;var l=new PBMMeshMaterial(this.light?"phong":"basic");e.BumpFactor&&(l.bumpScale=e.BumpFactor.value),e.Diffuse?l.color=new THREE__namespace.Color().fromArray(e.Diffuse.value):e.DiffuseColor&&(e.DiffuseColor.type==="Color"||e.DiffuseColor.type==="ColorRGB")&&(l.color=new THREE__namespace.Color().fromArray(e.DiffuseColor.value)),e.DisplacementFactor&&(l.displacementScale=e.DisplacementFactor.value),e.Emissive?l.emissive=new THREE__namespace.Color().fromArray(e.Emissive.value):e.EmissiveColor&&(e.EmissiveColor.type==="Color"||e.EmissiveColor.type==="ColorRGB")&&(l.emissive=new THREE__namespace.Color().fromArray(e.EmissiveColor.value)),e.EmissiveFactor&&(l.emissiveIntensity=parseFloat(e.EmissiveFactor.value));var c=1-(e.TransparencyFactor?parseFloat(e.TransparencyFactor.value):0);(c===1||c===0)&&(c=e.Opacity?parseFloat(e.Opacity.value):null,c===null&&(c=1-(e.TransparentColor?parseFloat(e.TransparentColor.value[0]):0))),l.opacity=c,l.opacity<1&&(l.transparent=!0),e.ReflectionFactor&&(l.reflectivity=e.ReflectionFactor.value),e.Shininess&&(l.shininess=e.Shininess.value),e.Specular?l.specular=new THREE__namespace.Color().fromArray(e.Specular.value):e.SpecularColor&&e.SpecularColor.type==="Color"&&(l.specular=new THREE__namespace.Color().fromArray(e.SpecularColor.value));var f=this;return o.get(s).children.forEach(function(d){var p=d.relationship;switch(p){case"Bump":l.bumpMap=f.getTexture(t,r,d.ID,o);break;case"Maya|TEX_ao_map":l.aoMap=f.getTexture(t,r,d.ID,o);break;case"DiffuseColor":case"Maya|TEX_color_map":l.map=f.getTexture(t,r,d.ID,o),l.map!==void 0&&(l.map.encoding=THREE__namespace.sRGBEncoding);break;case"DisplacementColor":l.displacementMap=f.getTexture(t,r,d.ID,o);break;case"EmissiveColor":l.emissiveMap=f.getTexture(t,r,d.ID,o),l.emissiveMap!==void 0&&(l.emissiveMap.encoding=THREE__namespace.sRGBEncoding);break;case"NormalMap":case"Maya|TEX_normal_map":l.normalMap=f.getTexture(t,r,d.ID,o);break;case"ReflectionColor":l.envMap=f.getTexture(t,r,d.ID,o),l.envMap!==void 0&&(l.envMap.mapping=THREE__namespace.EquirectangularReflectionMapping,l.envMap.encoding=THREE__namespace.sRGBEncoding);break;case"SpecularColor":l.specularMap=f.getTexture(t,r,d.ID,o),l.specularMap!==void 0&&(l.specularMap.encoding=THREE__namespace.sRGBEncoding);break;case"TransparentColor":case"TransparencyFactor":l.alphaMap=f.getTexture(t,r,d.ID,o),l.transparent=!0;break;case"AmbientColor":case"ShininessExponent":case"SpecularFactor":case"VectorDisplacementColor":default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",p);break}}),l.refreshUniforms(),l},n.prototype.getTexture=function(t,e,r,o){return t.Objects.LayeredTexture&&r in t.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),r=o.get(r).children[0].ID),e.get(r)},n.prototype.parseDeformers=function(t,e){var r={},o={};if("Deformer"in t.Objects){var s=t.Objects.Deformer;for(var u in s){var l=s[u],c=e.get(parseInt(u));if(l.attrType==="Skin"){var f=this.parseSkeleton(c,s);f.ID=u,c.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),f.geometryID=c.parents[0].ID,r[u]=f}else if(l.attrType==="BlendShape"){var d={id:u};d.rawTargets=this.parseMorphTargets(c,s,e),d.id=u,c.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),o[u]=d}}}return{skeletons:r,morphTargets:o}},n.prototype.parseSkeleton=function(t,e){var r=[];return t.children.forEach(function(o){var s=e[o.ID];if(s.attrType==="Cluster"){var u={ID:o.ID,indices:[],weights:[],transformLink:new THREE__namespace.Matrix4().fromArray(s.TransformLink.a)};s.Indexes&&(u.indices=s.Indexes.a,u.weights=s.Weights.a),r.push(u)}}),{ID:"",geometryID:0,rawBones:r,bones:[]}},n.prototype.parseMorphTargets=function(t,e,r){for(var o=[],s=0;s<t.children.length;s++){var u=t.children[s],l=e[u.ID],c={name:l.attrName,initialWeight:l.DeformPercent,id:l.id,fullWeights:l.FullWeights.a,geoID:0};if(l.attrType!=="BlendShapeChannel")return;c.geoID=r.get(parseInt(u.ID)).children.filter(function(f){return f.relationship===void 0})[0].ID,o.push(c)}return o},n.prototype.parseScene=function(t,e,r,o,s,u){var l=this.parseModels(t,e.skeletons,r,o,s),c=t.Objects.Model,f=this;l.forEach(function(p){var v=c[p.ID];f.setLookAtProperties(t,p,v,s,u);var A=s.get(p.ID).parents;A.forEach(function(g){var h=l.get(g.ID);h!==void 0&&h.add(p)}),p.parent===null&&u.add(p)}),this.bindSkeleton(t,e.skeletons,r,l,s),u.traverse(function(p){if(p.userData.transformData){p.parent&&(p.userData.transformData.parentMatrix=p.parent.matrix,p.userData.transformData.parentMatrixWorld=p.parent.matrixWorld);var v=generateTransform(p.userData.transformData);p.applyMatrix4(v),p.updateWorldMatrix(!0,!0)}});var d=new AnimationParser().parse(t,s,u);u.children.length===1&&u.children[0]instanceof THREE__namespace.Group&&(u.children[0].animations=d,u=u.children[0]),u.animations=d},n.prototype.parseModels=function(t,e,r,o,s){var u=new Map,l=t.Objects.Model;for(var c in l){var f=parseInt(c),d=l[c],p=s.get(f),v=this.buildSkeleton(p,e,f,d.attrName);if(!v){switch(d.attrType){case"Camera":v=this.createCamera(t,p);break;case"Light":v=this.createLight(t,p);break;case"Mesh":v=this.createMesh(p,r,o);break;case"NurbsCurve":case"LimbNode":case"Root":v=new THREE__namespace.Bone;break;case"Null":default:v=new THREE__namespace.Group;break}v.name=d.attrName?THREE__namespace.PropertyBinding.sanitizeNodeName(d.attrName):"",v.userData.originalName=d.attrName,v.ID=f}this.getTransformData(v,d),u.set(f,v)}return u},n.prototype.buildSkeleton=function(t,e,r,o){var s=null;return t.parents.forEach(function(u){var l=function(f){var d=e[f];d.rawBones.forEach(function(p,v){if(p.ID===u.ID){var A=s;s=new THREE__namespace.Bone,s.matrixWorld.copy(p.transformLink),s.name=o?THREE__namespace.PropertyBinding.sanitizeNodeName(o):"",s.userData.originalName=o,s.ID=r,d.bones[v]=s,A!==null&&s.add(A)}})};for(var c in e)l(c)}),s},n.prototype.createCamera=function(t,e){var r,o;if(e.children.forEach(function(A){var g=t.Objects.NodeAttribute[A.ID];g!==void 0&&(o=g)}),o===void 0)r=new THREE__namespace.Object3D;else{var s=0;o.CameraProjectionType!==void 0&&o.CameraProjectionType.value===1&&(s=1);var u=1;o.NearPlane!==void 0&&(u=o.NearPlane.value/1e3);var l=1e3;o.FarPlane!==void 0&&(l=o.FarPlane.value/1e3);var c=window.innerWidth,f=window.innerHeight;o.AspectWidth!==void 0&&o.AspectHeight!==void 0&&(c=o.AspectWidth.value,f=o.AspectHeight.value);var d=c/f,p=45;o.FieldOfView!==void 0&&(p=o.FieldOfView.value);var v=o.FocalLength?o.FocalLength.value:null;switch(s){case 0:r=new THREE__namespace.PerspectiveCamera(p,d,u,l),v!==null&&r.setFocalLength(v);break;case 1:console.warn("THREE.FBXLoader: Orthographic cameras not supported yet."),r=new THREE__namespace.Object3D;break;default:console.warn("THREE.FBXLoader: Unknown camera type "+s+"."),r=new THREE__namespace.Object3D;break}}return r},n.prototype.createLight=function(t,e){var r,o;if(e.children.forEach(function(v){var A=t.Objects.NodeAttribute[v.ID];A!==void 0&&(o=A)}),o===void 0)r=new THREE__namespace.Object3D;else{var s=void 0;o.LightType===void 0?s=0:s=o.LightType.value;var u=new THREE__namespace.Color(16777215);o.Color!==void 0&&(u=new THREE__namespace.Color().fromArray(o.Color.value));var l=o.Intensity===void 0?1:o.Intensity.value/100;o.CastLightOnObject!==void 0&&o.CastLightOnObject.value===0&&(l=0);var c=0;o.FarAttenuationEnd!==void 0&&(o.EnableFarAttenuation!==void 0&&o.EnableFarAttenuation.value===0?c=0:c=o.FarAttenuationEnd.value);var f=1;switch(s){case 0:r=new THREE__namespace.PointLight(u,l,c,f);break;case 1:r=new THREE__namespace.DirectionalLight(u,l);break;case 2:var d=Math.PI/3;o.InnerAngle!==void 0&&(d=THREE__namespace.MathUtils.degToRad(o.InnerAngle.value));var p=0;o.OuterAngle!==void 0&&(p=THREE__namespace.MathUtils.degToRad(o.OuterAngle.value),p=Math.max(p,1)),r=new THREE__namespace.SpotLight(u,l,c,d,p,f);break;default:console.warn("THREE.FBXLoader: Unknown light type "+o.LightType.value+", defaulting to a PointLight."),r=new THREE__namespace.PointLight(u,l);break}o.CastShadows!==void 0&&o.CastShadows.value===1&&(r.castShadow=!0)}return r},n.prototype.createMesh=function(t,e,r){var o,s=null,u=[];if(t.children.forEach(function(c){e.has(c.ID)&&(s=e.get(c.ID)),r.has(c.ID)&&u.push(r.get(c.ID))}),u.length===0){var l=new PBMMeshMaterial(this.light?"phong":"basic");l.color=new THREE__namespace.Color(13421772),u.push(l)}return"color"in s.attributes&&u.forEach(function(c){c.vertexColors=!0}),(!s.groups||s.groups.length===0)&&s.addGroup(0,s.index?s.index.count:s.attributes.position.count,0),s.FBX_Deformer?(o=new PBMSkinnedMesh(s,u),o.normalizeSkinWeights()):o=new PBMMesh(s,u),o},n.prototype.createCurve=function(t,e){var r=t.children.reduce(function(s,u){return e.has(u.ID)&&(s=e.get(u.ID)),s},null),o=new THREE__namespace.LineBasicMaterial({name:"",color:3342591,linewidth:1});return new THREE__namespace.Line(r,o)},n.prototype.getTransformData=function(t,e){var r={};e.InheritType&&(r.inheritType=parseInt(e.InheritType.value)),e.RotationOrder?r.eulerOrder=getEulerOrder(e.RotationOrder.value):r.eulerOrder=getEulerOrder(0),e.Lcl_Translation&&(r.translation=e.Lcl_Translation.value),e.PreRotation&&(r.preRotation=e.PreRotation.value),e.Lcl_Rotation&&(r.rotation=e.Lcl_Rotation.value),e.PostRotation&&(r.postRotation=e.PostRotation.value),e.Lcl_Scaling&&(r.scale=e.Lcl_Scaling.value),e.ScalingOffset&&(r.scalingOffset=e.ScalingOffset.value),e.ScalingPivot&&(r.scalingPivot=e.ScalingPivot.value),e.RotationOffset&&(r.rotationOffset=e.RotationOffset.value),e.RotationPivot&&(r.rotationPivot=e.RotationPivot.value),t.userData.transformData=r},n.prototype.setLookAtProperties=function(t,e,r,o,s){if("LookAtProperty"in r){var u=o.get(e.ID).children;u.forEach(function(l){if(l.relationship==="LookAtProperty"){var c=t.Objects.Model[l.ID];if(c.Lcl_Translation){var f=c.Lcl_Translation.value;"target"in e&&e.target instanceof THREE__namespace.Object3D?(e.target.position.fromArray(f),s.add(e.target)):e.lookAt(new THREE__namespace.Vector3().fromArray(f))}}})}},n.prototype.bindSkeleton=function(t,e,r,o,s){var u=this.parsePoseNodes(t),l=function(f){var d=e[f],p=s.get(parseInt(d.ID)).parents;p.forEach(function(v){if(r.has(v.ID)){var A=v.ID,g=s.get(A);g.parents.forEach(function(h){if(o.has(h.ID)){var y=o.get(h.ID);y instanceof THREE__namespace.SkinnedMesh&&y.bind(new THREE__namespace.Skeleton(d.bones),u[h.ID])}})}})};for(var c in e)l(c)},n.prototype.parsePoseNodes=function(t){var e={};if(t.Objects.Pose){var r=t.Objects.Pose;for(var o in r)if(r[o].attrType==="BindPose"&&r[o].NbPoseNodes>0){var s=r[o].PoseNode;Array.isArray(s)?s.forEach(function(u){e[u.Node]=new THREE__namespace.Matrix4().fromArray(u.Matrix.a)}):e[s.Node]=new THREE__namespace.Matrix4().fromArray(s.Matrix.a)}}return e},n}(),GeometryParser=function(){function n(){this.negativeMaterialIndices=!1}return n.prototype.parse=function(t,e,r){var o=new Map;if("Geometry"in t.Objects){var s=t.Objects.Geometry;for(var u in s){var l=r.get(parseInt(u)),c=this.parseGeometry(t,l,s[u],e);o.set(parseInt(u),c)}}return this.negativeMaterialIndices===!0&&console.warn("THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected."),o},n.prototype.parseGeometry=function(t,e,r,o){switch(r.attrType){case"Mesh":return this.parseMeshGeometry(t,e,r,o);case"NurbsCurve":return this.parseNurbsGeometry(r)}},n.prototype.parseMeshGeometry=function(t,e,r,o){var s=o.skeletons,u=[],l=e.parents.map(function(v){return t.Objects.Model[v.ID]});if(l.length!==0){var c=e.children.reduce(function(v,A){return s[A.ID]!==void 0&&(v=s[A.ID]),v},null);e.children.forEach(function(v){o.morphTargets[v.ID]!==void 0&&u.push(o.morphTargets[v.ID])});var f=l[0],d={};f.RotationOrder&&(d.eulerOrder=getEulerOrder(f.RotationOrder.value)),f.InheritType&&(d.inheritType=parseInt(f.InheritType.value)),f.GeometricTranslation&&(d.translation=f.GeometricTranslation.value),f.GeometricRotation&&(d.rotation=f.GeometricRotation.value),f.GeometricScaling&&(d.scale=f.GeometricScaling.value);var p=generateTransform(d);return this.genGeometry(t,r,c,u,p)}},n.prototype.genGeometry=function(t,e,r,o,s){var u=new THREE__namespace.BufferGeometry;e.attrName&&(u.name=e.attrName);var l=this.parseGeoNode(e,r),c=this.genBuffers(l),f=new THREE__namespace.Float32BufferAttribute(c.vertex,3);if(f.applyMatrix4(s),u.setAttribute("position",f),c.colors.length>0&&u.setAttribute("color",new THREE__namespace.Float32BufferAttribute(c.colors,3)),r&&(u.setAttribute("skinIndex",new THREE__namespace.Uint16BufferAttribute(c.weightsIndices,4)),u.setAttribute("skinWeight",new THREE__namespace.Float32BufferAttribute(c.vertexWeights,4)),u.FBX_Deformer=r),c.normal.length>0){var d=new THREE__namespace.Matrix3().getNormalMatrix(s),p=new THREE__namespace.Float32BufferAttribute(c.normal,3);p.applyNormalMatrix(d),u.setAttribute("normal",p)}if(c.uvs.forEach(function(y,m){var E=m===0?"uv":"uv".concat(m+1);u.setAttribute(E,new THREE__namespace.Float32BufferAttribute(c.uvs[m],2))}),l.material&&l.material.mappingType!=="AllSame"){var v=c.materialIndex[0],A=0;if(c.materialIndex.forEach(function(y,m){y!==v&&(u.addGroup(A,m-A,v),v=y,A=m)}),u.groups.length>0){var g=u.groups[u.groups.length-1],h=g.start+g.count;h!==c.materialIndex.length&&u.addGroup(h,c.materialIndex.length-h,v)}u.groups.length===0&&u.addGroup(0,c.materialIndex.length,c.materialIndex[0])}return this.addMorphTargets(t,u,e,o,s),u},n.prototype.parseGeoNode=function(t,e){var r={};if(r.vertexPositions=t.Vertices!==void 0?t.Vertices.a:[],r.vertexIndices=t.PolygonVertexIndex!==void 0?t.PolygonVertexIndex.a:[],t.LayerElementColor&&(r.color=this.parseVertexColors(t.LayerElementColor[0])),t.LayerElementMaterial&&(r.material=this.parseMaterialIndices(t.LayerElementMaterial[0])),t.LayerElementNormal&&(r.normal=this.parseNormals(t.LayerElementNormal[0])),t.LayerElementUV){r.uv=[];for(var o=0;t.LayerElementUV[o];)t.LayerElementUV[o].UV&&r.uv.push(this.parseUVs(t.LayerElementUV[o])),o++}return r.weightTable={},e!==null&&(r.skeleton=e,e.rawBones.forEach(function(s,u){s.indices.forEach(function(l,c){r.weightTable[l]===void 0&&(r.weightTable[l]=[]),r.weightTable[l].push({id:u,weight:s.weights[c]})})})),r},n.prototype.genBuffers=function(t){var e={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]},r=0,o=0,s=!1,u=[],l=[],c=[],f=[],d=[],p=[],v=this;return t.vertexIndices.forEach(function(A,g){var h=0,y=!1;A<0&&(A=A^-1,y=!0);var m=[],E=[];if(u.push(A*3,A*3+1,A*3+2),t.color){var b=getData(g,r,A,t.color);c.push(b[0],b[1],b[2])}if(t.skeleton){if(t.weightTable[A]!==void 0&&t.weightTable[A].forEach(function(S){E.push(S.weight),m.push(S.id)}),E.length>4){s||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),s=!0);var T=[0,0,0,0],_=[0,0,0,0];E.forEach(function(S,C){var B=S,L=m[C];_.forEach(function(M,w,H){if(B>M){H[w]=B,B=M;var O=T[w];T[w]=L,L=O}})}),m=T,E=_}for(;E.length<4;)E.push(0),m.push(0);for(var R=0;R<4;++R)d.push(E[R]),p.push(m[R])}if(t.normal){var b=getData(g,r,A,t.normal);l.push(b[0],b[1],b[2])}t.material&&t.material.mappingType!=="AllSame"&&(h=getData(g,r,A,t.material)[0],h<0&&(v.negativeMaterialIndices=!0,h=0)),t.uv&&t.uv.forEach(function(S,C){var B=getData(g,r,A,S);f[C]===void 0&&(f[C]=[]),f[C].push(B[0]),f[C].push(B[1])}),o++,y&&(v.genFace(e,t,u,h,l,c,f,d,p,o),r++,o=0,u=[],l=[],c=[],f=[],d=[],p=[])}),e},n.prototype.getNormalNewell=function(t){for(var e=new THREE__namespace.Vector3(0,0,0),r=0;r<t.length;r++){var o=t[r],s=t[(r+1)%t.length];e.x+=(o.y-s.y)*(o.z+s.z),e.y+=(o.z-s.z)*(o.x+s.x),e.z+=(o.x-s.x)*(o.y+s.y)}return e.normalize(),e},n.prototype.getNormalTangentAndBitangent=function(t){var e=this.getNormalNewell(t),r=Math.abs(e.z)>.5?new THREE__namespace.Vector3(0,1,0):new THREE__namespace.Vector3(0,0,1),o=r.cross(e).normalize(),s=e.clone().cross(o).normalize();return{normal:e,tangent:o,bitangent:s}},n.prototype.flattenVertex=function(t,e,r){return new THREE__namespace.Vector2(t.dot(e),t.dot(r))},n.prototype.genFace=function(t,e,r,o,s,u,l,c,f,d){var p;if(d>3){for(var v=[],A=e.baseVertexPositions||e.vertexPositions,g=0;g<r.length;g+=3)v.push(new THREE__namespace.Vector3(A[r[g]],A[r[g+1]],A[r[g+2]]));for(var h=this.getNormalTangentAndBitangent(v),y=h.tangent,m=h.bitangent,E=[],b=0,T=v;b<T.length;b++){var _=T[b];E.push(this.flattenVertex(_,y,m))}p=THREE__namespace.ShapeUtils.triangulateShape(E,[])}else p=[[0,1,2]];for(var R=function(H,O,I){t.vertex.push(e.vertexPositions[r[H*3]]),t.vertex.push(e.vertexPositions[r[H*3+1]]),t.vertex.push(e.vertexPositions[r[H*3+2]]),t.vertex.push(e.vertexPositions[r[O*3]]),t.vertex.push(e.vertexPositions[r[O*3+1]]),t.vertex.push(e.vertexPositions[r[O*3+2]]),t.vertex.push(e.vertexPositions[r[I*3]]),t.vertex.push(e.vertexPositions[r[I*3+1]]),t.vertex.push(e.vertexPositions[r[I*3+2]]),e.skeleton&&(t.vertexWeights.push(c[H*4]),t.vertexWeights.push(c[H*4+1]),t.vertexWeights.push(c[H*4+2]),t.vertexWeights.push(c[H*4+3]),t.vertexWeights.push(c[O*4]),t.vertexWeights.push(c[O*4+1]),t.vertexWeights.push(c[O*4+2]),t.vertexWeights.push(c[O*4+3]),t.vertexWeights.push(c[I*4]),t.vertexWeights.push(c[I*4+1]),t.vertexWeights.push(c[I*4+2]),t.vertexWeights.push(c[I*4+3]),t.weightsIndices.push(f[H*4]),t.weightsIndices.push(f[H*4+1]),t.weightsIndices.push(f[H*4+2]),t.weightsIndices.push(f[H*4+3]),t.weightsIndices.push(f[O*4]),t.weightsIndices.push(f[O*4+1]),t.weightsIndices.push(f[O*4+2]),t.weightsIndices.push(f[O*4+3]),t.weightsIndices.push(f[I*4]),t.weightsIndices.push(f[I*4+1]),t.weightsIndices.push(f[I*4+2]),t.weightsIndices.push(f[I*4+3])),e.color&&(t.colors.push(u[H*3]),t.colors.push(u[H*3+1]),t.colors.push(u[H*3+2]),t.colors.push(u[O*3]),t.colors.push(u[O*3+1]),t.colors.push(u[O*3+2]),t.colors.push(u[I*3]),t.colors.push(u[I*3+1]),t.colors.push(u[I*3+2])),e.material&&e.material.mappingType!=="AllSame"&&(t.materialIndex.push(o),t.materialIndex.push(o),t.materialIndex.push(o)),e.normal&&(t.normal.push(s[H*3]),t.normal.push(s[H*3+1]),t.normal.push(s[H*3+2]),t.normal.push(s[O*3]),t.normal.push(s[O*3+1]),t.normal.push(s[O*3+2]),t.normal.push(s[I*3]),t.normal.push(s[I*3+1]),t.normal.push(s[I*3+2])),e.uv&&e.uv.forEach(function(N,k){t.uvs[k]===void 0&&(t.uvs[k]=[]),t.uvs[k].push(l[k][H*2]),t.uvs[k].push(l[k][H*2+1]),t.uvs[k].push(l[k][O*2]),t.uvs[k].push(l[k][O*2+1]),t.uvs[k].push(l[k][I*2]),t.uvs[k].push(l[k][I*2+1])})},S=0,C=p;S<C.length;S++){var B=C[S],L=B[0],M=B[1],w=B[2];R(L,M,w)}},n.prototype.addMorphTargets=function(t,e,r,o,s){if(o.length!==0){e.morphTargetsRelative=!0,e.morphAttributes.position=[];var u=this;o.forEach(function(l){l.rawTargets.forEach(function(c){var f=t.Objects.Geometry[c.geoID];f!==void 0&&u.genMorphGeometry(e,r,f,s,c.name)})})}},n.prototype.genMorphGeometry=function(t,e,r,o,s){for(var u=e.Vertices!==void 0?e.Vertices.a:[],l=e.PolygonVertexIndex!==void 0?e.PolygonVertexIndex.a:[],c=r.Vertices!==void 0?r.Vertices.a:[],f=r.Indexes?r.Indexes.a:[],d=t.attributes.position.count*3,p=new Float32Array(d),v=0;v<f.length;v++){var A=f[v]*3;p[A]=c[v*3],p[A+1]=c[v*3+1],p[A+2]=c[v*3+2]}var g={vertexIndices:l,vertexPositions:p,baseVertexPositions:u},h=this.genBuffers(g),y=new THREE__namespace.Float32BufferAttribute(h.vertex,3);y.name=s||r.attrName,y.applyMatrix4(o),t.morphAttributes.position.push(y)},n.prototype.parseNormals=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType,o=t.Normals.a,s=[];return r==="IndexToDirect"&&(t.NormalIndex?s=t.NormalIndex.a:t.NormalsIndex&&(s=t.NormalsIndex.a)),{dataSize:3,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseUVs=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType,o=t.UV.a,s=[];return r==="IndexToDirect"&&(s=t.UVIndex.a),{dataSize:2,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseVertexColors=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType,o=t.Colors.a,s=[];r==="IndexToDirect"&&(s=t.ColorIndex.a);for(var u=0,l=new THREE__namespace.Color;u<o.length;u+=4)l.fromArray(o,u),l.toArray(o,u);return{dataSize:4,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseMaterialIndices=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType;if(e==="NoMappingInformation")return{dataSize:1,buffer:[0],indices:[0],mappingType:"AllSame",referenceType:r};for(var o=t.Materials.a,s=[],u=0;u<o.length;++u)s.push(u);return{dataSize:1,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseNurbsGeometry=function(t){var e=parseInt(t.Order);if(isNaN(e))return console.error("THREE.FBXLoader: Invalid Order %s given for geometry ID: %s",t.Order,t.id),new THREE__namespace.BufferGeometry;for(var r=e-1,o=t.KnotVector.a,s=[],u=t.Points.a,l=0,c=u.length;l<c;l+=4)s.push(new THREE__namespace.Vector4().fromArray(u,l));var f,d;if(t.Form==="Closed")s.push(s[0]);else if(t.Form==="Periodic"){f=r,d=o.length-1-f;for(var l=0;l<r;++l)s.push(s[l])}var p=new NURBSCurve(r,o,s,f,d),v=p.getPoints(s.length*12);return new THREE__namespace.BufferGeometry().setFromPoints(v)},n}(),AnimationParser=function(){function n(){}return n.prototype.parse=function(t,e,r){var o=[],s=this.parseClips(t,e,r);if(s!==void 0)for(var u in s){var l=s[u],c=this.addClip(l,r);o.push(c)}return o},n.prototype.parseClips=function(t,e,r){if(t.Objects.AnimationCurve!==void 0){var o=this.parseAnimationCurveNodes(t);this.parseAnimationCurves(t,o,e);var s=this.parseAnimationLayers(t,o,e,r),u=this.parseAnimStacks(t,s,e);return u}},n.prototype.parseAnimationCurveNodes=function(t){var e=t.Objects.AnimationCurveNode,r=new Map;for(var o in e){var s=e[o];if(s.attrName.match(/S|R|T|DeformPercent/)!==null){var u={id:s.id,attr:s.attrName,curves:{}};r.set(u.id,u)}}return r},n.prototype.parseAnimationCurves=function(t,e,r){var o=t.Objects.AnimationCurve;for(var s in o){var u={id:o[s].id,times:o[s].KeyTime.a.map(convertFBXTimeToSeconds),values:o[s].KeyValueFloat.a},l=r.get(u.id);if(l!==void 0){var c=l.parents[0].ID,f=l.parents[0].relationship,d=e.get(c);d&&(f.match(/X/)?d.curves.x=u:f.match(/Y/)?d.curves.y=u:f.match(/Z/)?d.curves.z=u:f.match(/DeformPercent/)&&e.has(c)&&(d.curves.morph=u))}}},n.prototype.parseAnimationLayers=function(t,e,r,o){var s=t.Objects.AnimationLayer,u=new Map,l=function(f){var d=[],p=r.get(parseInt(f));if(p!==void 0){var v=p.children;v.forEach(function(A,g){if(e.has(A.ID)){var h=e.get(A.ID);if(h.curves.x!==void 0||h.curves.y!==void 0||h.curves.z!==void 0){if(d[g]===void 0){var y=r.get(A.ID).parents.filter(function(C){return C.relationship!==void 0})[0].ID;if(y!==void 0){var m=t.Objects.Model[y.toString()];if(m===void 0){console.warn("THREE.FBXLoader: Encountered a unused curve.",A);return}var E={modelName:m.attrName?THREE__namespace.PropertyBinding.sanitizeNodeName(m.attrName):"",ID:m.id,initialPosition:[0,0,0],initialRotation:[0,0,0],initialScale:[1,1,1],transform:new THREE__namespace.Matrix4,eulerOrder:"",preRotation:[0,0,0],postRotation:[0,0,0]};o.traverse(function(C){C.ID===m.id&&(E.transform=C.matrix,C.userData.transformData&&(E.eulerOrder=C.userData.transformData.eulerOrder))}),E.transform||(E.transform=new THREE__namespace.Matrix4),m.PreRotation&&(E.preRotation=m.PreRotation.value),m.PostRotation&&(E.postRotation=m.PostRotation.value),d[g]=E}}d[g]&&(d[g][h.attr]=h)}else if(h.curves.morph!==void 0){if(d[g]===void 0){var b=r.get(A.ID).parents.filter(function(B){return B.relationship!==void 0})[0].ID,T=r.get(b).parents[0].ID,_=r.get(T).parents[0].ID,y=r.get(_).parents[0].ID,R=t.Objects.Model[y],S={modelName:R.attrName?THREE__namespace.PropertyBinding.sanitizeNodeName(R.attrName):"",morphName:t.Objects.Deformer[b].attrName};d[g]=S}d[g][h.attr]=h}}}),u.set(parseInt(f),d)}};for(var c in s)l(c);return u},n.prototype.parseAnimStacks=function(t,e,r){var o=t.Objects.AnimationStack,s={};for(var u in o){var l=r.get(parseInt(u)).children;l.length>1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");var c=e.get(l[0].ID);s[u]={name:o[u].attrName,layer:c}}return s},n.prototype.addClip=function(t,e){var r=[],o=this;return t.layer.forEach(function(s){r=r.concat(o.generateTracks(s,e))}),new THREE__namespace.AnimationClip(t.name,-1,r)},n.prototype.generateTracks=function(t,e){var r=[],o=new THREE__namespace.Vector3,s=new THREE__namespace.Vector3;t.transform&&t.transform.decompose(o,new THREE__namespace.Quaternion,s);var u=o.toArray(),l=s.toArray();if(t.T!==void 0&&Object.keys(t.T.curves).length>0){var c=this.generateVectorTrack(t.modelName,t.T.curves,u,"position");c!==void 0&&r.push(c)}if(t.R!==void 0&&Object.keys(t.R.curves).length>0){var f=this.generateRotationTrack(t.modelName,t.R.curves,t.preRotation,t.postRotation,t.eulerOrder);f!==void 0&&r.push(f)}if(t.S!==void 0&&Object.keys(t.S.curves).length>0){var d=this.generateVectorTrack(t.modelName,t.S.curves,l,"scale");d!==void 0&&r.push(d)}if(t.DeformPercent!==void 0){var p=this.generateMorphTrack(t,e);p!==void 0&&r.push(p)}return r},n.prototype.generateVectorTrack=function(t,e,r,o){var s=this.getTimesForAllAxes(e),u=this.getKeyframeTrackValues(s,e,r);return new THREE__namespace.VectorKeyframeTrack(t+"."+o,s,u)},n.prototype.generateRotationTrack=function(t,e,r,o,s){var u,l;if(e.x!==void 0&&e.y!==void 0&&e.z!==void 0){var c=this.interpolateRotations(e.x,e.y,e.z,s);u=c[0],l=c[1]}var f=getEulerOrder(0),d=new THREE__namespace.Quaternion,p=new THREE__namespace.Quaternion;r!==void 0&&(r=r.map(THREE__namespace.MathUtils.degToRad),r.push(f),d.setFromEuler(new THREE__namespace.Euler().fromArray(r))),o!==void 0&&(o=o.map(THREE__namespace.MathUtils.degToRad),o.push(f),p.setFromEuler(new THREE__namespace.Euler().fromArray(o)),p.inverse());var v=new THREE__namespace.Quaternion,A=new THREE__namespace.Euler,g=[];if(!l||!u)return new THREE__namespace.QuaternionKeyframeTrack(t+".quaternion",[0],[0]);for(var h=0;h<l.length;h+=3){if(A.set(l[h],l[h+1],l[h+2],s),v.setFromEuler(A),v.premultiply(d),v.multiply(p),h>2){var y=new THREE__namespace.Quaternion().fromArray(g,(h-3)/3*4);y.dot(v)<0&&v.set(-v.x,-v.y,-v.z,-v.w)}v.toArray(g,h/3*4)}return new THREE__namespace.QuaternionKeyframeTrack(t+".quaternion",u,g)},n.prototype.generateMorphTrack=function(t,e){var r=t.DeformPercent.curves.morph,o=r.values.map(function(u){return u/100}),s=e.getObjectByName(t.modelName).morphTargetDictionary[t.morphName];return new THREE__namespace.NumberKeyframeTrack(t.modelName+".morphTargetInfluences["+s+"]",r.times,o)},n.prototype.getTimesForAllAxes=function(t){var e=[];if(t.x!==void 0&&(e=e.concat(t.x.times)),t.y!==void 0&&(e=e.concat(t.y.times)),t.z!==void 0&&(e=e.concat(t.z.times)),e=e.sort(function(l,c){return l-c}),e.length>1){for(var r=1,o=e[0],s=1;s<e.length;s++){var u=e[s];u!==o&&(e[r]=u,o=u,r++)}e=e.slice(0,r)}return e},n.prototype.getKeyframeTrackValues=function(t,e,r){var o=r,s=[],u=-1,l=-1,c=-1;return t.forEach(function(f){if(e.x&&(u=e.x.times.indexOf(f)),e.y&&(l=e.y.times.indexOf(f)),e.z&&(c=e.z.times.indexOf(f)),u!==-1){var d=e.x.values[u];s.push(d),o[0]=d}else s.push(o[0]);if(l!==-1){var p=e.y.values[l];s.push(p),o[1]=p}else s.push(o[1]);if(c!==-1){var v=e.z.values[c];s.push(v),o[2]=v}else s.push(o[2])}),s},n.prototype.interpolateRotations=function(t,e,r,o){var s=[],u=[];s.push(t.times[0]),u.push(THREE__namespace.MathUtils.degToRad(t.values[0])),u.push(THREE__namespace.MathUtils.degToRad(e.values[0])),u.push(THREE__namespace.MathUtils.degToRad(r.values[0]));for(var l=1;l<t.values.length;l++){var c=[t.values[l-1],e.values[l-1],r.values[l-1]];if(!(isNaN(c[0])||isNaN(c[1])||isNaN(c[2]))){var f=c.map(THREE__namespace.MathUtils.degToRad),d=[t.values[l],e.values[l],r.values[l]];if(!(isNaN(d[0])||isNaN(d[1])||isNaN(d[2]))){d.map(THREE__namespace.MathUtils.degToRad);var p=[d[0]-c[0],d[1]-c[1],d[2]-c[2]],v=[Math.abs(p[0]),Math.abs(p[1]),Math.abs(p[2])];if(v[0]>=180||v[1]>=180||v[2]>=180){var A=Math.max.apply(Math,v),g=A/180,h=new THREE__namespace.Euler(f[0],f[1],f[2],o),y=new THREE__namespace.Euler(f[0],f[1],f[2],o),m=new THREE__namespace.Quaternion().setFromEuler(h),E=new THREE__namespace.Quaternion().setFromEuler(y);m.dot(E)&&E.set(-E.x,-E.y,-E.z,-E.w);for(var b=t.times[l-1],T=t.times[l]-b,_=new THREE__namespace.Quaternion,R=new THREE__namespace.Euler,S=0;S<1;S+=1/g)_.copy(m.clone().slerp(E.clone(),S)),s.push(b+S*T),R.setFromQuaternion(_,o),u.push(R.x),u.push(R.y),u.push(R.z)}else s.push(t.times[l]),u.push(THREE__namespace.MathUtils.degToRad(t.values[l])),u.push(THREE__namespace.MathUtils.degToRad(e.values[l])),u.push(THREE__namespace.MathUtils.degToRad(r.values[l]))}}}return[s,u]},n}(),TextParser=function(){function n(){this.allNodes=new FBXTree,this.nodeStack=[],this.currentIndent=0,this.currentPropName=""}return n.prototype.getPrevNode=function(){return this.nodeStack[this.currentIndent-2]},n.prototype.getCurrentNode=function(){return this.nodeStack[this.currentIndent-1]},n.prototype.getCurrentProp=function(){return this.currentProp},n.prototype.pushStack=function(t){this.nodeStack.push(t),this.currentIndent+=1},n.prototype.popStack=function(){this.nodeStack.pop(),this.currentIndent-=1},n.prototype.setCurrentProp=function(t,e){this.currentProp=t,this.currentPropName=e},n.prototype.parse=function(t){this.currentIndent=0,this.allNodes=new FBXTree,this.nodeStack=[],this.currentProp=[],this.currentPropName="";var e=this,r=t.split(/[\r\n]+/);return r.forEach(function(o,s){var u=o.match(/^[\s\t]*;/),l=o.match(/^[\s\t]*$/);if(!(u||l)){var c=o.match("^\\t{"+e.currentIndent+"}(\\w+):(.*){"),f=o.match("^\\t{"+e.currentIndent+"}(\\w+):[\\s\\t\\r\\n](.*)"),d=o.match("^\\t{"+(e.currentIndent-1)+"}}");c?e.parseNodeBegin(o,c):f?e.parseNodeProperty(o,f,r[++s]):d?e.popStack():o.match(/^[^\s\t}]/)&&e.parseNodePropertyContinued(o)}}),this.allNodes},n.prototype.parseNodeBegin=function(t,e){var r=e[1].trim().replace(/^"/,"").replace(/"$/,""),o=e[2].split(",").map(function(c){return c.trim().replace(/^"/,"").replace(/"$/,"")}),s={name:r},u=this.parseNodeAttr(o),l=this.getCurrentNode();this.currentIndent===0?this.allNodes.add(r,s):r in l?(r==="PoseNode"?l.PoseNode.push(s):l[r].id!==void 0&&(l[r]={},l[r][l[r].id]=l[r]),u.id!==""&&(l[r][u.id]=s)):typeof u.id=="number"?(l[r]={},l[r][u.id]=s):r!=="Properties70"&&(r==="PoseNode"?l[r]=[s]:l[r]=s),typeof u.id=="number"&&(s.id=u.id),u.name!==""&&(s.attrName=u.name),u.type!==""&&(s.attrType=u.type),this.pushStack(s)},n.prototype.parseNodeAttr=function(t){var e=t[0];t[0]!==""&&(e=parseInt(t[0]),isNaN(e)&&(e=t[0]));var r="",o="";return t.length>1&&(r=t[1].replace(/^(\w+)::/,""),o=t[2]),{id:e,name:r,type:o}},n.prototype.parseNodeProperty=function(t,e,r){var o=e[1].replace(/^"/,"").replace(/"$/,"").trim(),s=e[2].replace(/^"/,"").replace(/"$/,"").trim();o==="Content"&&s===","&&(s=r.replace(/"/g,"").replace(/,$/,"").trim());var u=this.getCurrentNode(),l=u.name;if(l==="Properties70"){this.parseNodeSpecialProperty(t,o,s);return}if(o==="C"){var c=s.split(",").slice(1),f=parseInt(c[0]),d=parseInt(c[1]),p=s.split(",").slice(3);p=p.map(function(v){return v.trim().replace(/^"/,"")}),o="connections",s=[f,d],append(s,p),u[o]===void 0&&(u[o]=[])}o==="Node"&&(u.id=s),o in u&&Array.isArray(u[o])?u[o].push(s):o!=="a"?u[o]=s:u.a=s,this.setCurrentProp(u,o),o==="a"&&s.slice(-1)!==","&&(u.a=parseNumberArray(s))},n.prototype.parseNodePropertyContinued=function(t){var e=this.getCurrentNode();e.a+=t,t.slice(-1)!==","&&(e.a=parseNumberArray(e.a))},n.prototype.parseNodeSpecialProperty=function(t,e,r){var o=r.split('",').map(function(d){return d.trim().replace(/^\"/,"").replace(/\s/,"_")}),s=o[0],u=o[1],l=o[2],c=o[3],f=o[4];switch(u){case"int":case"enum":case"bool":case"ULongLong":case"double":case"Number":case"FieldOfView":f=parseFloat(f);break;case"Color":case"ColorRGB":case"Vector3D":case"Lcl_Translation":case"Lcl_Rotation":case"Lcl_Scaling":f=parseNumberArray(f);break}this.getPrevNode()[s]={type:u,type2:l,flag:c,value:f},this.setCurrentProp(this.getPrevNode(),s)},n}(),BinaryParser=function(){function n(){}return n.prototype.parse=function(t){var e=new BinaryReader(t);e.skip(23);var r=e.getUint32();if(r<6400)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+r);for(var o=new FBXTree;!this.endOfContent(e);){var s=this.parseNode(e,r);s!==null&&o.add(s.name,s)}return o},n.prototype.endOfContent=function(t){return t.size()%16===0?(t.getOffset()+160+16&-16)>=t.size():t.getOffset()+160+16>=t.size()},n.prototype.parseNode=function(t,e){var r={},o=e>=7500?t.getUint64():t.getUint32(),s=e>=7500?t.getUint64():t.getUint32();e>=7500?t.getUint64():t.getUint32();var u=t.getUint8(),l=t.getString(u);if(o===0)return null;for(var c=[],f=0;f<s;f++)c.push(this.parseProperty(t));var d=c.length>0?c[0]:"",p=c.length>1?c[1]:"",v=c.length>2?c[2]:"";for(r.singleProperty=s===1&&t.getOffset()===o;o>t.getOffset();){var A=this.parseNode(t,e);A!==null&&this.parseSubNode(l,r,A)}return r.propertyList=c,typeof d=="number"&&(r.id=d),p!==""&&(r.attrName=p),v!==""&&(r.attrType=v),l!==""&&(r.name=l),r},n.prototype.parseSubNode=function(t,e,r){if(r.singleProperty===!0){var o=r.propertyList[0];Array.isArray(o)?(e[r.name]=r,r.a=o):e[r.name]=o}else if(t==="Connections"&&r.name==="C"){var s=[];r.propertyList.forEach(function(v,A){A!==0&&s.push(v)}),e.connections===void 0&&(e.connections=[]),e.connections.push(s)}else if(r.name==="Properties70"){var u=Object.keys(r);u.forEach(function(v){e[v]=r[v]})}else if(t==="Properties70"&&r.name==="P"){var l=r.propertyList[0],c=r.propertyList[1],f=r.propertyList[2],d=r.propertyList[3],p=void 0;l.indexOf("Lcl ")===0&&(l=l.replace("Lcl ","Lcl_")),c.indexOf("Lcl ")===0&&(c=c.replace("Lcl ","Lcl_")),c==="Color"||c==="ColorRGB"||c==="Vector"||c==="Vector3D"||c.indexOf("Lcl_")===0?p=[r.propertyList[4],r.propertyList[5],r.propertyList[6]]:p=r.propertyList[4],e[l]={type:c,type2:f,flag:d,value:p}}else e[r.name]===void 0?typeof r.id=="number"?(e[r.name]={},e[r.name][r.id]=r):e[r.name]=r:r.name==="PoseNode"?(Array.isArray(e[r.name])||(e[r.name]=[e[r.name]]),e[r.name].push(r)):e[r.name][r.id]===void 0&&(e[r.name][r.id]=r)},n.prototype.parseProperty=function(t){var e=t.getString(1),r;switch(e){case"C":return t.getBoolean();case"D":return t.getFloat64();case"F":return t.getFloat32();case"I":return t.getInt32();case"L":return t.getInt64();case"R":return r=t.getUint32(),t.getArrayBuffer(r);case"S":return r=t.getUint32(),t.getString(r);case"Y":return t.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":var o=t.getUint32(),s=t.getUint32(),u=t.getUint32();if(s===0)switch(e){case"b":case"c":return t.getBooleanArray(o);case"d":return t.getFloat64Array(o);case"f":return t.getFloat32Array(o);case"i":return t.getInt32Array(o);case"l":return t.getInt64Array(o)}var l=unzlibSync(new Uint8Array(t.getArrayBuffer(u))),c=new BinaryReader(l.buffer);switch(e){case"b":case"c":return c.getBooleanArray(o);case"d":return c.getFloat64Array(o);case"f":return c.getFloat32Array(o);case"i":return c.getInt32Array(o);case"l":return c.getInt64Array(o)}break;default:throw new Error("THREE.FBXLoader: Unknown property type "+e)}},n}(),BinaryReader=function(){function n(t,e){this.dv=new DataView(t),this.offset=0,this.littleEndian=e!==void 0?e:!0,this._textDecoder=new TextDecoder}return n.prototype.getOffset=function(){return this.offset},n.prototype.size=function(){return this.dv.buffer.byteLength},n.prototype.skip=function(t){this.offset+=t},n.prototype.getBoolean=function(){return(this.getUint8()&1)===1},n.prototype.getBooleanArray=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getBoolean());return e},n.prototype.getUint8=function(){var t=this.dv.getUint8(this.offset);return this.offset+=1,t},n.prototype.getInt16=function(){var t=this.dv.getInt16(this.offset,this.littleEndian);return this.offset+=2,t},n.prototype.getInt32=function(){var t=this.dv.getInt32(this.offset,this.littleEndian);return this.offset+=4,t},n.prototype.getInt32Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getInt32());return e},n.prototype.getUint32=function(){var t=this.dv.getUint32(this.offset,this.littleEndian);return this.offset+=4,t},n.prototype.getInt64=function(){var t,e;return this.littleEndian?(t=this.getUint32(),e=this.getUint32()):(e=this.getUint32(),t=this.getUint32()),e&2147483648?(e=~e&4294967295,t=~t&4294967295,t===4294967295&&(e=e+1&4294967295),t=t+1&4294967295,-(e*4294967296+t)):e*4294967296+t},n.prototype.getInt64Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getInt64());return e},n.prototype.getUint64=function(){var t,e;return this.littleEndian?(t=this.getUint32(),e=this.getUint32()):(e=this.getUint32(),t=this.getUint32()),e*4294967296+t},n.prototype.getFloat32=function(){var t=this.dv.getFloat32(this.offset,this.littleEndian);return this.offset+=4,t},n.prototype.getFloat32Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getFloat32());return e},n.prototype.getFloat64=function(){var t=this.dv.getFloat64(this.offset,this.littleEndian);return this.offset+=8,t},n.prototype.getFloat64Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getFloat64());return e},n.prototype.getArrayBuffer=function(t){var e=this.dv.buffer.slice(this.offset,this.offset+t);return this.offset+=t,e},n.prototype.getString=function(t){var e=this.offset,r=new Uint8Array(this.dv.buffer,e,t);this.skip(t);var o=r.indexOf(0);return o>=0&&(r=new Uint8Array(this.dv.buffer,e,o)),this._textDecoder.decode(r)},n}(),FBXTree=function(){function n(){this.Connections={connections:[]},this.Objects={Model:{},NodeAttribute:{},Geometry:{}},this.GlobalSettings={}}return n.prototype.add=function(t,e){this[t]=e},n}();function isFbxFormatBinary(n){var t="Kaydara FBX Binary \0";return n.byteLength>=t.length&&t===convertArrayBufferToString(n,0,t.length)}function isFbxFormatASCII(n){var t=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"],e=0;function r(u){var l=n[u-1];return n=n.slice(e+u),e++,l}for(var o=0;o<t.length;++o){var s=r(1);if(s===t[o])return!1}return!0}function getFbxVersion(n){var t=/FBXVersion: (\d+)/,e=n.match(t);if(e){var r=parseInt(e[1]);return r}throw new Error("THREE.FBXLoader: Cannot find the version number for the file given.")}function convertFBXTimeToSeconds(n){return n/46186158e3}var dataArray=[];function getData(n,t,e,r){var o;switch(r.mappingType){case"ByPolygonVertex":o=n;break;case"ByPolygon":o=t;break;case"ByVertice":o=e;break;case"AllSame":o=r.indices[0];break;default:console.warn("THREE.FBXLoader: unknown attribute mapping type "+r.mappingType),o=0}r.referenceType==="IndexToDirect"&&(o=r.indices[o]);var s=o*r.dataSize,u=s+r.dataSize;return slice(dataArray,r.buffer,s,u)}var tempEuler=new THREE__namespace.Euler,tempVec=new THREE__namespace.Vector3;function generateTransform(n){var t=new THREE__namespace.Matrix4,e=new THREE__namespace.Matrix4,r=new THREE__namespace.Matrix4,o=new THREE__namespace.Matrix4,s=new THREE__namespace.Matrix4,u=new THREE__namespace.Matrix4,l=new THREE__namespace.Matrix4,c=new THREE__namespace.Matrix4,f=new THREE__namespace.Matrix4,d=new THREE__namespace.Matrix4,p=new THREE__namespace.Matrix4,v=new THREE__namespace.Matrix4,A=n.inheritType?n.inheritType:0;n.translation&&t.setPosition(tempVec.fromArray(n.translation));var g=getEulerOrder(0);if(n.preRotation){var h=n.preRotation.map(THREE__namespace.MathUtils.degToRad);h.push(g),e.makeRotationFromEuler(tempEuler.fromArray(h))}if(n.rotation){var h=n.rotation.map(THREE__namespace.MathUtils.degToRad);h.push(n.eulerOrder||g),r.makeRotationFromEuler(tempEuler.fromArray(h))}if(n.postRotation){var h=n.postRotation.map(THREE__namespace.MathUtils.degToRad);h.push(g),o.makeRotationFromEuler(tempEuler.fromArray(h)),o.copy(new THREE__namespace.Matrix4().getInverse(o))}n.scale&&s.scale(tempVec.fromArray(n.scale)),n.scalingOffset&&l.setPosition(tempVec.fromArray(n.scalingOffset)),n.scalingPivot&&u.setPosition(tempVec.fromArray(n.scalingPivot)),n.rotationOffset&&c.setPosition(tempVec.fromArray(n.rotationOffset)),n.rotationPivot&&f.setPosition(tempVec.fromArray(n.rotationPivot)),n.parentMatrixWorld&&(p.copy(n.parentMatrix),d.copy(n.parentMatrixWorld));var y=e.clone().multiply(r).multiply(o),m=new THREE__namespace.Matrix4;m.extractRotation(d);var E=new THREE__namespace.Matrix4;E.copyPosition(d);var b=new THREE__namespace.Matrix4().getInverse(E).multiply(d),T=new THREE__namespace.Matrix4().getInverse(m).multiply(b),_=s,R=new THREE__namespace.Matrix4;if(A===0)R.copy(m).multiply(y).multiply(T).multiply(_);else if(A===1)R.copy(m).multiply(T).multiply(y).multiply(_);else{var S=new THREE__namespace.Matrix4().scale(new THREE__namespace.Vector3().setFromMatrixScale(p)),C=new THREE__namespace.Matrix4().getInverse(S),B=T.clone().multiply(C);R.copy(m).multiply(y).multiply(B).multiply(_)}var L=new THREE__namespace.Matrix4().getInverse(f),M=new THREE__namespace.Matrix4().getInverse(u),w=t.clone().multiply(c).multiply(f).multiply(e).multiply(r).multiply(o).multiply(L).multiply(l).multiply(u).multiply(s).multiply(M),H=new THREE__namespace.Matrix4().copyPosition(w),O=d.clone().multiply(H);return v.copyPosition(O),w=v.clone().multiply(R),w.premultiply(new THREE__namespace.Matrix4().getInverse(d)),w}function getEulerOrder(n){n=n||0;var t=["ZYX","YZX","XZY","ZXY","YXZ","XYZ"];return n===6?(console.warn("THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect."),t[0]):t[n]}function parseNumberArray(n){var t=n.split(",").map(function(e){return parseFloat(e)});return t}function convertArrayBufferToString(n,t,e){return t===void 0&&(t=0),e===void 0&&(e=n.byteLength),new TextDecoder().decode(new Uint8Array(n,t,e))}function append(n,t){for(var e=0,r=n.length,o=t.length;e<o;e++,r++)n[r]=t[e]}function slice(n,t,e,r){for(var o=e,s=0;o<r;o++,s++)n[s]=t[o];return n}var NURBSCurve=function(n){__extends(t,n);function t(e,r,o,s,u){var l=n.call(this)||this,c=r?r.length-1:0,f=o?o.length:0;l.degree=e,l.knots=r,l.controlPoints=[],l.startKnot=s||0,l.endKnot=u||c;for(var d=0;d<f;++d){var p=o[d];l.controlPoints[d]=new THREE__namespace.Vector4(p.x,p.y,p.z,p.w)}return l}return t.prototype.getPoint=function(e,r){r===void 0&&(r=new THREE__namespace.Vector3);var o=r,s=this.knots[this.startKnot]+e*(this.knots[this.endKnot]-this.knots[this.startKnot]),u=calcBSplinePoint(this.degree,this.knots,this.controlPoints,s);return u.w!==1&&u.divideScalar(u.w),o.set(u.x,u.y,u.z)},t.prototype.getTangent=function(e,r){r===void 0&&(r=new THREE__namespace.Vector3);var o=r,s=this.knots[0]+e*(this.knots[this.knots.length-1]-this.knots[0]),u=calcNURBSDerivatives(this.degree,this.knots,this.controlPoints,s,1);return o.copy(u[1]).normalize(),o},t.prototype.toJSON=function(){var e=n.prototype.toJSON.call(this);return e.degree=this.degree,e.knots=__spreadArray([],this.knots,!0),e.controlPoints=this.controlPoints.map(function(r){return r.toArray()}),e.startKnot=this.startKnot,e.endKnot=this.endKnot,e},t.prototype.fromJSON=function(e){return n.prototype.fromJSON.call(this,e),this.degree=e.degree,this.knots=__spreadArray([],e.knots,!0),this.controlPoints=e.controlPoints.map(function(r){return new THREE__namespace.Vector4(r[0],r[1],r[2],r[3])}),this.startKnot=e.startKnot,this.endKnot=e.endKnot,this},t}(THREE__namespace.Curve);function findSpan(n,t,e){var r=e.length-n-1;if(t>=e[r])return r-1;if(t<=e[n])return n;for(var o=n,s=r,u=Math.floor((o+s)/2);t<e[u]||t>=e[u+1];)t<e[u]?s=u:o=u,u=Math.floor((o+s)/2);return u}function calcBasisFunctions(n,t,e,r){var o=[],s=[],u=[];o[0]=1;for(var l=1;l<=e;++l){s[l]=t-r[n+1-l],u[l]=r[n+l]-t;for(var c=0,f=0;f<l;++f){var d=u[f+1],p=s[l-f],v=o[f]/(d+p);o[f]=c+d*v,c=p*v}o[l]=c}return o}function calcBSplinePoint(n,t,e,r){for(var o=findSpan(n,r,t),s=calcBasisFunctions(o,r,n,t),u=new THREE__namespace.Vector4(0,0,0,0),l=0;l<=n;++l){var c=e[o-n+l],f=s[l],d=c.w*f;u.x+=c.x*d,u.y+=c.y*d,u.z+=c.z*d,u.w+=c.w*f}return u}function calcBasisFunctionDerivatives(n,t,e,r,o){for(var s=[],u=0;u<=e;++u)s[u]=0;for(var l=[],u=0;u<=r;++u)l[u]=s.slice(0);for(var c=[],u=0;u<=e;++u)c[u]=s.slice(0);c[0][0]=1;for(var f=s.slice(0),d=s.slice(0),p=1;p<=e;++p){f[p]=t-o[n+1-p],d[p]=o[n+p]-t;for(var v=0,A=0;A<p;++A){var g=d[A+1],h=f[p-A];c[p][A]=g+h;var y=c[A][p-1]/c[p][A];c[A][p]=v+g*y,v=h*y}c[p][p]=v}for(var p=0;p<=e;++p)l[0][p]=c[p][e];for(var m=0;m<=e;++m){for(var E=0,b=1,T=[],u=0;u<=e;++u)T[u]=s.slice(0);T[0][0]=1;for(var _=1;_<=r;++_){var R=0,S=m-_,C=e-_;m>=_&&(T[b][0]=T[E][0]/c[C+1][S],R=T[b][0]*c[S][C]);for(var B=S>=-1?1:-S,L=m-1<=C?_-1:e-m,M=B;M<=L;++M)T[b][M]=(T[E][M]-T[E][M-1])/c[C+1][S+M],R+=T[b][M]*c[S+M][C];m<=C&&(T[b][_]=-T[E][_-1]/c[C+1][m],R+=T[b][_]*c[m][C]),l[_][m]=R;var p=E;E=b,b=p}}for(var w=e,_=1;_<=r;++_){for(var p=0;p<=e;++p)l[_][p]*=w;w*=e-_}return l}function calcBSplineDerivatives(n,t,e,r,o){for(var s=o<n?o:n,u=[],l=findSpan(n,r,t),c=calcBasisFunctionDerivatives(l,r,n,s,t),f=[],d=0;d<e.length;++d){var p=e[d].clone(),v=p.w;p.x*=v,p.y*=v,p.z*=v,f[d]=p}for(var A=0;A<=s;++A){for(var p=f[l-n].clone().multiplyScalar(c[A][0]),g=1;g<=n;++g)p.add(f[l-n+g].clone().multiplyScalar(c[A][g]));u[A]=p}for(var A=s+1;A<=o+1;++A)u[A]=new THREE__namespace.Vector4(0,0,0);return u}function calcKoverI(n,t){for(var e=1,r=2;r<=n;++r)e*=r;for(var o=1,r=2;r<=t;++r)o*=r;for(var r=2;r<=n-t;++r)o*=r;return e/o}function calcRationalCurveDerivatives(n){for(var t=n.length,e=[],r=[],o=0;o<t;++o){var s=n[o];e[o]=new THREE__namespace.Vector3(s.x,s.y,s.z),r[o]=s.w}for(var u=[],l=0;l<t;++l){for(var c=e[l].clone(),o=1;o<=l;++o)c.sub(u[l-o].clone().multiplyScalar(calcKoverI(l,o)*r[o]));u[l]=c.divideScalar(r[0])}return u}function calcNURBSDerivatives(n,t,e,r,o){var s=calcBSplineDerivatives(n,t,e,r,o);return calcRationalCurveDerivatives(s)}var _vector=new THREE__namespace.Vector3;function getPointArray(n,t){switch(t){case"D":return new Float64Array(n);case"F":return new Float32Array(n);case"L":return new Int32Array(n);case"I":return new Int16Array(n);default:return new Uint8Array(n)}}function loadX3p(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={byteLength:0};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"})}).then(function(s){var u,l;return o.byteLength=s.body.byteLength,parse$1(new Uint8Array(s.body),{light:(u=t.light)!==null&&u!==void 0?u:!0,color:t.color,resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(l=n.split("?")[1])!==null&&l!==void 0?l:"",fetcher:r})}).then(function(s){var u=new THREE__namespace.Group;return u.matrixAutoUpdate=!1,u.matrix.compose(u.position,u.quaternion,u.scale),u.name=n,u.add(s.object),{type:"x3p",upAxis:"Z",uri:n,byteLength:o.byteLength,memoryUsage:getMemoryUsage(u),scene:u,textures:[],dispose:function(){return s.dispose()}}})}function parse$1(n,t){for(var e,r,o,s,u,l,c,f,d,p,v,A,g,h,y,m,E,b,T,_,R,S,C,B,L,M,w,H,O,I,N,k,U,D,q,z,Q,G,X,$,W,oe,ae,re,j,se,ie,ue,fe,ne,Te,_e,ve,Me,Z=unzipSync(n),te="",K=null,ye=0,de=Object.keys(Z);ye<de.length;ye++){var xe=de[ye];/(^|\/)main\.xml$/i.test(xe)&&(K=Z[xe],te=xe.slice(0,xe.lastIndexOf("/")+1))}if(!K)throw new Error("X3p: main.xml not found.");if(typeof DOMParser=="undefined")throw new Error("X3p: DOMParser not found.");var Ae=(e=t.color)!==null&&e!==void 0?e:new THREE__namespace.Color(10066329),me=new DOMParser,ce=decodeText(K),he=me.parseFromString(ce,"text/xml"),ee=he.querySelector("Record1 Axes"),pe={x:{type:(s=(o=(r=ee==null?void 0:ee.querySelector("CX AxisType"))===null||r===void 0?void 0:r.textContent)===null||o===void 0?void 0:o.toUpperCase())!==null&&s!==void 0?s:"I",dataType:(c=(l=(u=ee==null?void 0:ee.querySelector("CX DataType"))===null||u===void 0?void 0:u.textContent)===null||l===void 0?void 0:l.toUpperCase())!==null&&c!==void 0?c:"D",increment:Number((d=(f=ee==null?void 0:ee.querySelector("CX Increment"))===null||f===void 0?void 0:f.textContent)!==null&&d!==void 0?d:"1"),offset:Number((v=(p=ee==null?void 0:ee.querySelector("CX Offset"))===null||p===void 0?void 0:p.textContent)!==null&&v!==void 0?v:"0")},y:{type:(h=(g=(A=ee==null?void 0:ee.querySelector("CY AxisType"))===null||A===void 0?void 0:A.textContent)===null||g===void 0?void 0:g.toUpperCase())!==null&&h!==void 0?h:"I",dataType:(E=(m=(y=ee==null?void 0:ee.querySelector("CY DataType"))===null||y===void 0?void 0:y.textContent)===null||m===void 0?void 0:m.toUpperCase())!==null&&E!==void 0?E:"D",increment:Number((T=(b=ee==null?void 0:ee.querySelector("CY Increment"))===null||b===void 0?void 0:b.textContent)!==null&&T!==void 0?T:"1"),offset:Number((R=(_=ee==null?void 0:ee.querySelector("CY Offset"))===null||_===void 0?void 0:_.textContent)!==null&&R!==void 0?R:"0")},z:{type:(B=(C=(S=ee==null?void 0:ee.querySelector("CZ AxisType"))===null||S===void 0?void 0:S.textContent)===null||C===void 0?void 0:C.toUpperCase())!==null&&B!==void 0?B:"A",dataType:(w=(M=(L=ee==null?void 0:ee.querySelector("CZ DataType"))===null||L===void 0?void 0:L.textContent)===null||M===void 0?void 0:M.toUpperCase())!==null&&w!==void 0?w:"D",increment:Number((O=(H=ee==null?void 0:ee.querySelector("CZ Increment"))===null||H===void 0?void 0:H.textContent)!==null&&O!==void 0?O:"1"),offset:Number((N=(I=ee==null?void 0:ee.querySelector("CZ Offset"))===null||I===void 0?void 0:I.textContent)!==null&&N!==void 0?N:"0")}},Re=null,we=he.querySelector("Record1 Axes Rotation");we&&(Re=new THREE__namespace.Matrix3,Re.set(Number((U=(k=we.querySelector("r11"))===null||k===void 0?void 0:k.textContent)!==null&&U!==void 0?U:0),Number((q=(D=we.querySelector("r12"))===null||D===void 0?void 0:D.textContent)!==null&&q!==void 0?q:0),Number((Q=(z=we.querySelector("r13"))===null||z===void 0?void 0:z.textContent)!==null&&Q!==void 0?Q:0),Number((X=(G=we.querySelector("r21"))===null||G===void 0?void 0:G.textContent)!==null&&X!==void 0?X:0),Number((W=($=we.querySelector("r22"))===null||$===void 0?void 0:$.textContent)!==null&&W!==void 0?W:0),Number((ae=(oe=we.querySelector("r23"))===null||oe===void 0?void 0:oe.textContent)!==null&&ae!==void 0?ae:0),Number((j=(re=we.querySelector("r31"))===null||re===void 0?void 0:re.textContent)!==null&&j!==void 0?j:0),Number((ie=(se=we.querySelector("r32"))===null||se===void 0?void 0:se.textContent)!==null&&ie!==void 0?ie:0),Number((fe=(ue=we.querySelector("r33"))===null||ue===void 0?void 0:ue.textContent)!==null&&fe!==void 0?fe:0)));var Ue=(ne=he.querySelector("Record3 DataLink PointDataLink"))===null||ne===void 0?void 0:ne.textContent;if(typeof Ue!="string")throw new Error("X3p: PointDataLink not found.");Ue=pathJoin(te,Ue);var be=Z[Ue];if(!be)throw new Error("X3p: ".concat(be," not found."));for(var ge=getPointArray(be.buffer,pe.z.dataType),ze=Number((_e=(Te=he.querySelector("Record3 MatrixDimension SizeX"))===null||Te===void 0?void 0:Te.textContent)!==null&&_e!==void 0?_e:"0"),Ne=Number((Me=(ve=he.querySelector("Record3 MatrixDimension SizeY"))===null||ve===void 0?void 0:ve.textContent)!==null&&Me!==void 0?Me:"0"),Je=Math.floor(ze-1),Ke=Math.floor(Ne-1),De=Je+1,Ye=Ke+1,Ve=new Float32Array(De*Ye*3),nt=new Float32Array(De*Ye*2),qe=new Uint32Array(Je*Ke*6),Qe=new THREE__namespace.Box3,Ie=0;Ie<Ye;Ie++)for(var Se=Ie*pe.y.increment+pe.y.offset,Be=0;Be<De;Be++){var Le=Ie*De+Be,ot=Be*pe.x.increment+pe.x.offset,$e=ge[Le],tt=!isNaN($e),Xe=tt?$e:NaN;_vector.set(ot,-Se,Xe),Re&&_vector.applyMatrix3(Re),tt&&Qe.expandByPoint(_vector),Ve[Le*3+0]=_vector.x,Ve[Le*3+1]=_vector.y,Ve[Le*3+2]=_vector.z,nt[Le*2+0]=Be/Je,nt[Le*2+1]=1-Ie/Ke}for(var Ie=0;Ie<Ke;Ie++)for(var Be=0;Be<Je;Be++){var rt=Be+De*Ie,Ge=Be+De*(Ie+1),st=Be+1+De*(Ie+1),ct=Be+1+De*Ie,je=(Ie*Je+Be)*6;qe[je+0]=rt,qe[je+1]=Ge,qe[je+2]=ct,qe[je+3]=Ge,qe[je+4]=st,qe[je+5]=ct}var Fe=new THREE__namespace.BufferGeometry;Fe.setAttribute("position",new THREE__namespace.BufferAttribute(Ve,3)),Fe.setAttribute("uv",new THREE__namespace.BufferAttribute(nt,2)),Fe.setIndex(new THREE__namespace.BufferAttribute(qe,1)),(!Fe.groups||Fe.groups.length===0)&&Fe.addGroup(0,Fe.index?Fe.index.count:Fe.attributes.position.count,0),Fe.boundingBox=Qe;var We=new PBMMeshMaterial(t.light?"phong":"basic");We.flatShading=!0,We.color.copy(Ae),We.refreshUniforms();var at=new PBMMesh(Fe,[We]);return{object:at,dispose:function(){Fe.dispose(),We.dispose()}}}var scratchMatrix4$3=new THREE__namespace.Matrix4,MAX_RETRY_DELAY$1=5e3,RETRY_DELAY_STEP$1=1e3;function attachTileAttributes(n,t){n.name=t.id;var e=t.tileset.properties.floorInfo;n.traverse(function(r){if("floor"in t.extras){if(r instanceof THREE__namespace.Mesh||r instanceof THREE__namespace.Points)for(var o=Array.isArray(r.material)?r.material:r.material?[r.material]:[],s=0,u=o;s<u.length;s++){var l=u[s];(l instanceof PBMMeshMaterial||l instanceof PBMPointCloudMaterial)&&(l.floorIndex=t.extras.floor)}}else if(!(r instanceof PBMPointCloud)){if((r instanceof PBMMesh||r instanceof PBMSkinnedMesh)&&e){for(var c=new THREE__namespace.Box3().expandByObject(r),f=c.getCenter(new THREE__namespace.Vector3),d=0,p=0;p<e.length;p++){var v=e[p],A=v.ground,g=v.height;if(f.y<A+g){d=p;break}}t.floor=d,t.tileset.floorLength=Math.max(t.tileset.floorLength,t.floor+1),r.material.forEach(function(h){return h.floorIndex=d})}}})}function loadTileContent(n,t){if(!n.content)return Promise.resolve(n);var e=n.content,r=appendSearch(e.uri,t.search);if(n.type==="TILESET"){var o=imageURL(r,{key:"model.".concat(n.siblingIndex)});return e.loadState="LOADING",e.loadStateUpdateTime=now(),t.fetcher.ajax(o,{responseType:"text"}).then(function(s){return s.body}).then(function(s){var u=r.slice(0,r.lastIndexOf("/")+1);return normalizeTilesetHeader(JSON.parse(s),u)}).then(function(s){e.loadState="READY",e.loadStateUpdateTime=now(),e.loadfailRetryDelay=0,n.children.length===0&&(n.children=[new Tile("".concat(n.id,".0"),s.root,n.tileset,n)])}).then(function(){return n}).catch(function(s){return e.loadState="FAILED",e.loadStateUpdateTime=now(),e.loadfailRetryDelay=Math.min(e.loadfailRetryDelay+1e3,5e3),Promise.reject(s)})}if(n.type==="SCENEGRAPH")return e.loadState="LOADING",e.loadStateUpdateTime=now(),Promise.resolve().then(function(){var s,u,l,c,f,d,p,v,A,g,h="",y=r.split("#"),m=y[0],E=y[1],b=(E||m).split("?")[0].match(/\.([0-9a-zA-Z]+)$/);if(b&&(h=b[1]),h==="b3dm"){var T=imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadB3dm(T,{upAxis:n.tileset.asset.gltfUpAxis,light:t.light,fetcher:t.fetcher}).then(function(_){return _.scene.applyMatrix4(n.transform),_.scene.updateWorldMatrix(!1,!0),_.scene.matrixAutoUpdate=!1,attachTileAttributes(_.scene,n),_})}if(h==="pnts"){var T=imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadPnts(T,{computeBoundingBox:!1,fetcher:t.fetcher}).then(function(R){if(R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,n.boundingVolume){var S=n.boundingVolume;R.scene.traverse(function(C){if(C instanceof PBMPointCloud){scratchMatrix4$3.getInverse(C.matrixWorld);var B=new THREE__namespace.Box3;S.getBoundingBox(B),B.applyMatrix4(scratchMatrix4$3),C.geometry.boundingBox=B}})}return attachTileAttributes(R.scene,n),R})}if(h==="glb"||h==="gltf"){var T=imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadGltf(T,{upAxis:n.tileset.asset.gltfUpAxis,light:t.light,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,attachTileAttributes(R.scene,n),R})}if(h==="at3d"){var T=n.extras.at3d?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadAt3d(T,{light:t.light,textureBaseUri:(s=n.extras.at3d)===null||s===void 0?void 0:s.textureBaseUri,textureArray:(u=n.extras.at3d)===null||u===void 0?void 0:u.textureArray,textureOptions:(l=n.extras.at3d)===null||l===void 0?void 0:l.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(h==="pbm"){var T=n.extras.pbm?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadPbm(T,{light:t.light,textureBaseUri:(c=n.extras.pbm)===null||c===void 0?void 0:c.textureBaseUri,textureArray:(f=n.extras.pbm)===null||f===void 0?void 0:f.textureArray,textureOptions:(d=n.extras.pbm)===null||d===void 0?void 0:d.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(h==="dome"){var T=n.extras.dome?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadDome(T,{light:t.light,textureBaseUri:(p=n.extras.dome)===null||p===void 0?void 0:p.textureBaseUri,textureOptions:(v=n.extras.dome)===null||v===void 0?void 0:v.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(h==="domez"){var T=n.extras.domez?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadDomez(T,{light:t.light,textureBaseUri:(A=n.extras.domez)===null||A===void 0?void 0:A.textureBaseUri,textureOptions:(g=n.extras.domez)===null||g===void 0?void 0:g.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(h==="ply"){var T=n.extras.ply?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadPly(T,{type:"pbmPointCloud",light:t.light,upAxis:"Z",fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(h==="obj"){var T=n.extras.obj?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadObj(T,{upAxis:"Z",light:t.light,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(h==="fbx"){var T=n.extras.obj?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadFbx(T,{light:t.light,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(h==="x3p"){var T=n.extras.x3p?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadX3p(T,{light:t.light,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}throw new Error("Invalid Tile content: ".concat(r))}).then(function(s){s.scene.traverse(function(l){if(l instanceof PBMPointCloud)l.material.uniforms.geometricError.value=n.geometricError;else if(l instanceof PBMMesh||l instanceof PBMSkinnedMesh)for(var c=0,f=l.material;c<f.length;c++){var d=f[c];d.uniforms.geometricError.value=n.geometricError}});var u={type:s.type,uri:s.uri,byteLength:s.byteLength,memoryUsage:s.memoryUsage,object:new TileNode(n.id,s.scene,s.dispose)};return Promise.resolve().then(function(){return Promise.all([u.object.generateBvhTree(),t.renderer&&s.textures.length<16?initTextures(s.textures,t.renderer,1024*1024):null])}).then(function(){return e.loadState="READY",e.loadStateUpdateTime=now(),e.loadfailRetryDelay=0,e.byteLength=u.byteLength,e.memoryUsage=u.memoryUsage,e.data=u,n}).catch(function(l){return unloadTileContent(n),Promise.reject(l)})}).catch(function(s){return e.loadState="FAILED",e.loadStateUpdateTime=now(),s instanceof NetworkResponseError&&s.httpStatus===0||s instanceof NetworkTimeoutError||s instanceof NetworkProxyError?e.loadfailRetryDelay=clamp$1(e.loadfailRetryDelay+RETRY_DELAY_STEP$1,RETRY_DELAY_STEP$1,MAX_RETRY_DELAY$1):e.loadfailRetryDelay=1/0,Promise.reject(s)});throw new Error("Invalid Tile type: ".concat(n.type))}function unloadTileContent(n){n.content&&(n.content.data&&n.content.data.object.dispose(),n.content.data=void 0,n.content.loadState="UNLOADED",n.content.loadStateUpdateTime=now(),n.content.byteLength=0,n.content.memoryUsage=0)}var TrajectoryNode=function(n){__extends(t,n);function t(e,r,o){o===void 0&&(o=noop$1);var s=n.call(this)||this;return s.name=e,s.contentObject=r,s.name=e,s.add(r),s.disposers=[o],s}return t.prototype.update=function(e,r,o){var s=this.contentObject.material[2];s.uniforms.dashOffset.value=(s.uniforms.dashOffset.value-.003)%(s.uniforms.dashSize.value.x+s.uniforms.dashSize.value.y),o.needsRender=!0},t.prototype.dispose=function(){for(var e=0,r=this.disposers;e<r.length;e++){var o=r[e];o()}this.disposers.length=0},t.prototype.clone=function(){return new t(this.name,this.contentObject.clone())},t}(THREE__namespace.Object3D),MAX_RETRY_DELAY=5e3,RETRY_DELAY_STEP=1e3,TRAJECTOR_PIPE_SHADER={vertexShader:`
|
|
935
935
|
varying vec2 vUv;
|
|
936
936
|
uniform float displacementScalar;
|
|
937
937
|
#include <common>
|
|
@@ -1035,9 +1035,9 @@ void main() {
|
|
|
1035
1035
|
}
|
|
1036
1036
|
`,uniforms:{diffuse:{value:new THREE__namespace.Color},opacity:{value:1},displacementScalar:{value:0}}};function createPipeBufferGeometry(n,t,e,r){for(var o=new Float32Array((e+1)*(r+1)*3),s=new Float32Array((e+1)*(r+1)*3),u=new Float32Array((e+1)*(r+1)*2),l=new Uint32Array(e*r*6),c=n.computeFrenetFrames(e),f=new THREE__namespace.Vector3,d=new THREE__namespace.Vector3,p=new THREE__namespace.Vector2,v=new THREE__namespace.Vector3,A=0;A<=e;A++){v=n.getPointAt(A/e,v);for(var g=c.normals[A],h=c.binormals[A],y=0;y<=r;y++){var m=A*(r+1)+y,E=y/r*Math.PI*2,b=Math.sin(E),T=-Math.cos(E);d.x=T*g.x+b*h.x,d.y=T*g.y+b*h.y,d.z=T*g.z+b*h.z,d.normalize(),d.toArray(s,m*3),f.x=v.x+t*d.x,f.y=v.y+t*d.y,f.z=v.z+t*d.z,f.toArray(o,m*3),p.x=A/e,p.y=y/r,p.toArray(u,m*2)}}for(var A=0;A<e;A++)for(var y=0;y<r;y++){var _=(A*r+y)*6,R=(r+1)*A+y,S=(r+1)*(A+1)+y,C=(r+1)*(A+1)+(y+1),B=(r+1)*A+(y+1);l[_]=R,l[_+1]=S,l[_+2]=B,l[_+3]=S,l[_+4]=C,l[_+5]=B}var L=new THREE__namespace.BufferGeometry;return L.setIndex(new THREE__namespace.BufferAttribute(l,1)),L.setAttribute("position",new THREE__namespace.BufferAttribute(o,3)),L.setAttribute("normal",new THREE__namespace.BufferAttribute(s,3)),L.setAttribute("uv",new THREE__namespace.BufferAttribute(u,2)),L}function parseTrajectoryObject(n,t){for(var e=new THREE__namespace.Color(0).convertSRGBToLinear(),r=new THREE__namespace.Color(52949).convertSRGBToLinear(),o=new THREE__namespace.Color(3370495).convertSRGBToLinear(),s=new THREE__namespace.Color(16777215).convertSRGBToLinear(),u=0,l=new THREE__namespace.CurvePath,c=n.length,f=3;f<c;f+=3){var d=new THREE__namespace.Vector3().fromArray(n,f-3),p=new THREE__namespace.Vector3().fromArray(n,f);u+=d.distanceTo(p);var v=new THREE__namespace.LineCurve3(d,p);l.add(v)}var A=.03,g=Math.ceil(u*100),h=6,y=createPipeBufferGeometry(l,A,g,h);y.clearGroups(),y.addGroup(0,y.index?y.index.count:y.attributes.position.count,0),y.addGroup(0,y.index?y.index.count:y.attributes.position.count,1),y.addGroup(0,y.index?y.index.count:y.attributes.position.count,2);var m=new THREE__namespace.ShaderMaterial({vertexShader:TRAJECTOR_PIPE_SHADER.vertexShader,fragmentShader:TRAJECTOR_PIPE_SHADER.fragmentShader,uniforms:THREE__namespace.UniformsUtils.clone(TRAJECTOR_PIPE_SHADER.uniforms),side:THREE__namespace.BackSide});m.uniforms.totalLength.value=u,m.uniforms.diffuse.value=e,m.uniforms.diffuse2.value=e,m.uniforms.opacity.value=.5,m.transparent=!0;var E=new THREE__namespace.ShaderMaterial({vertexShader:TRAJECTOR_PIPE_SHADER.vertexShader,fragmentShader:TRAJECTOR_PIPE_SHADER.fragmentShader,uniforms:THREE__namespace.UniformsUtils.clone(TRAJECTOR_PIPE_SHADER.uniforms),side:THREE__namespace.BackSide});E.uniforms.totalLength.value=u,E.uniforms.displacementScalar.value=-.01,E.uniforms.diffuse.value=r,E.uniforms.diffuse2.value=o;var b=new THREE__namespace.ShaderMaterial({vertexShader:TRAJECTOR_PIPE_SHADER.vertexShader,fragmentShader:TRAJECTOR_PIPE_SHADER.fragmentShader,uniforms:THREE__namespace.UniformsUtils.clone(TRAJECTOR_PIPE_SHADER.uniforms),side:THREE__namespace.DoubleSide});b.uniforms.totalLength.value=u,b.uniforms.displacementScalar.value=-.026,b.uniforms.dashSize.value=new THREE__namespace.Vector2(.06,.09),b.uniforms.diffuse.value=s,b.uniforms.diffuse2.value=s;var T=new THREE__namespace.Mesh(y,[m,E,b]),_=.08,R=24,S=new THREE__namespace.SphereBufferGeometry(_,R,R);S.clearGroups(),S.addGroup(0,y.index?y.index.count:y.attributes.position.count,0),S.addGroup(0,y.index?y.index.count:y.attributes.position.count,1);var C=new THREE__namespace.ShaderMaterial({vertexShader:TRAJECTOR_SPHERE_SHADER.vertexShader,fragmentShader:TRAJECTOR_SPHERE_SHADER.fragmentShader,uniforms:THREE__namespace.UniformsUtils.clone(TRAJECTOR_SPHERE_SHADER.uniforms),side:THREE__namespace.BackSide});C.uniforms.diffuse.value=e,C.uniforms.opacity.value=.5,C.transparent=!0;var B=new THREE__namespace.ShaderMaterial({vertexShader:TRAJECTOR_SPHERE_SHADER.vertexShader,fragmentShader:TRAJECTOR_SPHERE_SHADER.fragmentShader,uniforms:THREE__namespace.UniformsUtils.clone(TRAJECTOR_SPHERE_SHADER.uniforms),side:THREE__namespace.FrontSide});B.uniforms.displacementScalar.value=-.01,B.uniforms.diffuse.value=r;var L=new THREE__namespace.Mesh(S,[C,B]);L.position.fromArray(n,0),T.add(L);var M=new THREE__namespace.ShaderMaterial({vertexShader:TRAJECTOR_SPHERE_SHADER.vertexShader,fragmentShader:TRAJECTOR_SPHERE_SHADER.fragmentShader,uniforms:THREE__namespace.UniformsUtils.clone(TRAJECTOR_SPHERE_SHADER.uniforms),side:THREE__namespace.FrontSide});M.uniforms.displacementScalar.value=-.01,M.uniforms.diffuse.value=o;var w=new THREE__namespace.Mesh(S,[C,M]);return w.position.fromArray(n,n.length-3),T.add(w),{scene:T,dispose:function(){y.dispose(),m.dispose(),E.dispose(),b.dispose(),S.dispose(),C.dispose(),B.dispose(),M.dispose()}}}function loadTrajectory(n,t){var e=n.name,r=appendSearch(n.content.uri,t.search),o=imageURL(r,{key:"model.0"});return n.content.loadState="LOADING",n.content.loadStateUpdateTime=now(),loadPly(o,{type:"geometry",customPropertyMapping:{time:{itemType:"uint32",itemNames:["time_milisec"]}},fetcher:t.fetcher}).then(function(s){var u,l,c,f,d=(l=(u=s.scene.attributes)===null||u===void 0?void 0:u.time.array)!==null&&l!==void 0?l:[],p=(f=(c=s.scene.attributes)===null||c===void 0?void 0:c.position.array)!==null&&f!==void 0?f:[],v=s.byteLength,A=s.memoryUsage,g=parseTrajectoryObject(p);g.scene.applyMatrix4(n.transform),g.scene.updateWorldMatrix(!1,!0),g.scene.matrixAutoUpdate=!1;var h=new TrajectoryNode(e,g.scene);return n.content.data={uri:o,byteLength:v,memoryUsage:A,positionArray:p,timeArray:d,object:h},n.content.byteLength=v,n.content.memoryUsage=A,n.content.loadState="READY",n.content.loadStateUpdateTime=now(),n}).catch(function(s){return n.content.data=void 0,n.content.loadState="FAILED",n.content.loadStateUpdateTime=now(),s instanceof NetworkResponseError&&s.httpStatus===0||s instanceof NetworkTimeoutError||s instanceof NetworkProxyError?n.content.loadfailRetryDelay=clamp$1(n.content.loadfailRetryDelay+RETRY_DELAY_STEP,RETRY_DELAY_STEP,MAX_RETRY_DELAY):n.content.loadfailRetryDelay=1/0,Promise.reject(s)})}function unloadTrajectory(n){n.content&&(n.content.data&&n.content.data.object.dispose(),n.content.data=void 0,n.content.loadState="UNLOADED",n.content.loadStateUpdateTime=now(),n.content.byteLength=0,n.content.memoryUsage=0)}var scratchVector3$1=new THREE__namespace.Vector3,scratchMatrix3=new THREE__namespace.Matrix3,scratchMatrix4$2=new THREE__namespace.Matrix4,a=6378137,invF=298.257223563;function ecefToLla(n){for(var t=a-a/invF,e=(a*a-t*t)/(a*a),r=Math.sqrt(n.x*n.x+n.y*n.y),o=1e-12,s=1e3,u=0,l=Math.atan2(n.z,r),c=0;u++<s;){var f=Math.sin(l),d=a/Math.sqrt(1-e*f*f);c=r/Math.cos(l)-d;var p=Math.atan2(n.z/(d*(1-e)+c),r/(d+c));if(isNaN(p))break;var v=Math.abs(p-l);if(v<o)break;l=p}return n.set(l,Math.atan2(n.y,n.x),c)}function llaToEcef(n){var t=n.x,e=n.y,r=n.z,o=a-a/invF,s=(a*a-o*o)/(a*a),u=Math.sin(t),l=Math.cos(t),c=Math.sin(e),f=Math.cos(e),d=a/Math.sqrt(1-s*u*u),p=(d+r)*l*f,v=(d+r)*l*c,A=(o*o/(a*a)*d+r)*u;return n.set(p,v,A)}function getEcefToEnuMatrix(n,t){var e=ecefToLla(scratchVector3$1.copy(n)),r=e.x,o=e.y,s=e.z,u=Math.sin(r),l=Math.sin(o),c=Math.cos(r),f=Math.cos(o);t.fromArray([-l,-u*f,c*f,0,+f,-u*l,c*l,0,0,c,u,0,0,0,0,1]);var d=scratchMatrix3.setFromMatrix4(t),p=scratchVector3$1.copy(n).applyMatrix3(d).multiplyScalar(-1);t.setPosition(p);var v=scratchMatrix4$2.fromArray([1,0,0,0,0,1,0,0,0,0,1,0,0,0,s,1]);return t.premultiply(v),t}var StencilConstants={TILE_MASK:128,SKIP_LOD_MASK:112,SKIP_LOD_BIT_SHIFT:4,CLASSIFICATION_MASK:15},SKIP_BACKFACE_MATERIAL=function(){var n=new THREE__namespace.MeshBasicMaterial;return n.side=THREE__namespace.BackSide,n.color.setHex(16711935),n.colorWrite=!1,n.stencilWrite=!0,n.polygonOffset=!0,n.polygonOffsetFactor=2,n.polygonOffsetUnits=2,n.stencilRef=StencilConstants.TILE_MASK,n.stencilFunc=THREE__namespace.AlwaysStencilFunc,n.stencilFuncMask=StencilConstants.TILE_MASK,n.stencilZPass=THREE__namespace.ReplaceStencilOp,n.stencilWriteMask=StencilConstants.TILE_MASK,n}(),SKIP_BACKFACE_TRANSPARENT_MATERIAL=function(){var n=new THREE__namespace.MeshBasicMaterial;return n.visible=!1,n}(),CLEAR_STENCIL_GEOMETRY=new THREE__namespace.BufferGeometry,CLEAR_STENCIL_MATERIAL=new THREE__namespace.MeshBasicMaterial,Tile3DModel=function(n){__extends(t,n);function t(e,r,o){var s,u,l,c=n.call(this)||this;return c.modelIndex=0,c.renderObjects=[],c.backfaceObjects=[],c.debugObjects=[],c.tileObjects=[],c.debug="none",c.name=o.name,c.type=o.type,c.light=o.light,c.upAxis=o.upAxis,c.model=e,c.fetcher=o.fetcher,c.search=(s=o.search)!==null&&s!==void 0?s:"",c.groundHeight=o.groundHeight,c.coordinateTransform=o.coordinateTransform,c.boundingBox=new THREE__namespace.Box3,c.minLevelOfDetail=t.DEFAULT_MIN_LEVEL_OF_DETAIL,c.maxLevelOfDetail=t.DEFAULT_MAX_LEVEL_OF_DETAIL,c.minGeometricError=t.DEFAULT_MIN_GEOMETRIC_ERROR,c.maxGeometricError=t.DEFAULT_MAX_GEOMETRIC_ERROR,c.panoramaMinGeometricError=t.DEFAULT_PANORAMA_MIN_GEOMETRIC_ERROR,c.needsRefined=!0,c.refined=!1,c.refineProgress=[0,0],c.loaded=!1,c.modelsLoaded=!1,c.disposed=!1,c.needsRender=!0,c.lastRenderHash="",c.matrixAutoUpdate=!1,c.cacheCameras=[],c.clearStencilObject=new THREE__namespace.Mesh(CLEAR_STENCIL_GEOMETRY,CLEAR_STENCIL_MATERIAL),c.clearStencilObject.frustumCulled=!1,c.clearStencilObject.onAfterRender=function(f){return f.clearStencil()},c.tileset=new Tileset((l=(u=c.model.work)===null||u===void 0?void 0:u.workCode)!==null&&l!==void 0?l:"",r,{referer:o.referer,tileLoader:function(f){return c.loadContent(f)},tileUnloader:function(f){return c.unloadContent(f)},onTileLoad:function(){},onTileUnload:function(f){},onTileError:function(f,d){o.onError&&o.onError(Object.assign(d,{error:d})),console.error("Tile error",f.id,d)},trajectoryLoader:function(f){return c.loadTrajectory(f)},trajectoryUnloader:function(f){return c.unloadTrajectory(f)},onTrajectoryLoad:function(){},onTrajectoryUnload:function(f){},onTrajectoryError:function(f,d){o.onError&&o.onError(Object.assign(d,{error:d})),console.error("Trajectory error",f,d)}}),c.tileset.root.boundingVolume&&c.tileset.root.boundingVolume.getBoundingBox(c.boundingBox),c}return t.prototype.getRecommendProps=function(e){var r,o,s;e===void 0&&(e={});var u,l,c,f=128;e.powerPreference==="high"&&(f=512);var d=typeof this.tileset.rootMeta.creationTime=="string";if(d){var p=typeof this.tileset.rootMeta.numTotalPoints=="number"&&this.tileset.rootMeta.numTotalPoints>0;if(p){c=4,e.powerPreference==="high"&&(c=2),u=c/1.6;var v=0;if(((r=this.tileset.rootMeta.taskParameters)===null||r===void 0?void 0:r.point_homogenization)==="1"&&(!((o=this.tileset.rootMeta.taskParameters)===null||o===void 0)&&o.homo_point_density)){var A=Number((s=this.tileset.rootMeta.taskParameters)===null||s===void 0?void 0:s.homo_point_density);isFinite(A)&&!isNaN(A)&&(v=A)}v<=0&&(v=.02),l=v*1.4}else c=5,e.powerPreference==="high"&&(c=4),u=1,l=.03}else c=6,u=1,l=.03,this.name==="aerophoto"?(c=12,e.powerPreference==="high"&&(c=10)):this.tileset.asset.extras&&typeof this.tileset.asset.extras.name=="string"&&/^matterport\b/i.test(this.tileset.asset.extras.name)&&(c=5,e.powerPreference==="high"&&(c=4));return{pointScale:l,pointMinPixel:u,maxScreenSpaceError:c,maxMemoryUsage:f}},t.prototype.getRenderHash=function(){return jsonHash([this.tileset.id,this.tileset.skipLevelOfDetail,this.tileset.selectedTiles.map(function(e){return e.id}),this.tileset.selectedTrajectories.map(function(e){return e.index}),this.debug])},Object.defineProperty(t.prototype,"maxMemoryUsage",{get:function(){return this.tileset.maxMemoryUsage},set:function(e){this.tileset.maxMemoryUsage=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"maxRequests",{get:function(){return this.tileset.maxRequests},set:function(e){this.tileset.maxRequests=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"requestOrder",{get:function(){return this.tileset.tileRequestOrder},set:function(e){this.tileset.tileRequestOrder=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"skipLevelOfDetail",{get:function(){return this.tileset.skipLevelOfDetail},set:function(e){this.tileset.skipLevelOfDetail=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"mostDetail",{get:function(){return this.tileset.mostDetail},set:function(e){this.tileset.mostDetail=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"loadSiblings",{get:function(){return this.tileset.loadSiblings},set:function(e){this.tileset.loadSiblings=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"loadAll",{get:function(){return this.tileset.loadAll},set:function(e){this.tileset.loadAll=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"maxScreenSpaceError",{get:function(){return this.tileset.maxScreenSpaceError},set:function(e){this.tileset.maxScreenSpaceError=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"currentMaxScreenSpaceError",{get:function(){return this.tileset.currentMaxScreenSpaceError},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"trajectories",{get:function(){return this.tileset.trajectories},enumerable:!1,configurable:!0}),t.prototype.localToEnu=function(e){return e.applyMatrix4(this.coordinateTransform.localToEnuMatrix)},t.prototype.enuToLocal=function(e){return e.applyMatrix4(this.coordinateTransform.enuToLocalMatrix)},t.prototype.localToEcef=function(e){return e.applyMatrix4(this.coordinateTransform.localToEcefMatrix)},t.prototype.ecefToLocal=function(e){return e.applyMatrix4(this.coordinateTransform.ecefToLocalMatrix)},t.prototype.localToLla=function(e){return ecefToLla(this.localToEcef(e))},t.prototype.llaToLocal=function(e){return this.ecefToLocal(llaToEcef(e))},t.prototype.worldToEnu=function(e){return this.localToEnu(this.worldToLocal(e))},t.prototype.enuToWorld=function(e){return this.localToWorld(this.enuToLocal(e))},t.prototype.worldToEcef=function(e){return this.localToEcef(this.worldToLocal(e))},t.prototype.ecefToWorld=function(e){return this.localToWorld(this.ecefToLocal(e))},t.prototype.worldToLla=function(e){return this.localToLla(this.worldToLocal(e))},t.prototype.llaToWorld=function(e){return this.localToWorld(this.llaToLocal(e))},t.prototype.loadContent=function(e){var r=this;return loadTileContent(e,{light:this.light,fetcher:this.fetcher,search:this.search,renderer:this.renderer}).then(function(o){e.type==="SCENEGRAPH"&&(r.disposed||!e.content?unloadTileContent(e):e.content.data&&r.boundingBox.expandByObject(e.content.data.object))})},t.prototype.unloadContent=function(e){return unloadTileContent(e),Promise.resolve()},t.prototype.loadAllTilesets=function(){var e=this,r=function(o){var s=[];return e.tileset.root.traverse(function(u){var l;u.type==="TILESET"&&((l=u.content)===null||l===void 0?void 0:l.loadState)!=="READY"&&s.push(u)}),Promise.all(s.map(function(u){return e.loadContent(u).then(function(){return r()})})).then(function(){})};return r(this.tileset.root)},t.prototype.loadTrajectory=function(e){var r=this;return loadTrajectory(e,{fetcher:this.fetcher,search:this.search,renderer:this.renderer}).then(function(o){r.disposed&&unloadTrajectory(o)})},t.prototype.unloadTrajectory=function(e){return unloadTrajectory(e),Promise.resolve()},t.prototype.intersectRaycaster=function(e,r,o){var s=this;r===void 0&&(r=!0),o===void 0&&(o=[]);for(var u=[this.tileset.root],l=this.tileset.transform,c=this.tileset.transformIsIdentity,f,d=[];f=u.pop();){var p=void 0;if(f.boundingVolume){var v=c?f.boundingVolume:f.boundingVolume.clone().applyMatrix4(l);p=v.intersectRay(e.ray,e.far)}else p=!0;if(p){for(var A=0,g=f.children.length;A<g;A++)u.push(f.children[A]);f.selected&&f.content&&f.content.data&&f.content.data.object.visible&&f.content.data.object.intersectRaycaster(e,!1,d)}}return this.model.shownFloorIndex>=0&&(d=d.filter(function(h){return h.floor===s.model.shownFloorIndex})),r&&d.sort(function(h,y){return h.distance-y.distance}),d.map(function(h){h.model=s.model,h.viewLayer=s.viewLayer}),o.push.apply(o,d),o},t.prototype.cloneSkipBackfaceObject=function(e){var r;e instanceof THREE__namespace.Mesh?r=new THREE__namespace.Mesh(e.geometry,Array.isArray(e.material)?e.material.map(function(l){return l.transparent?SKIP_BACKFACE_TRANSPARENT_MATERIAL:SKIP_BACKFACE_MATERIAL}):e.material&&e.material.transparent?SKIP_BACKFACE_TRANSPARENT_MATERIAL:SKIP_BACKFACE_MATERIAL):e instanceof THREE__namespace.Group?r=new THREE__namespace.Group:r=new THREE__namespace.Object3D,r.copy(e,!1);for(var o=0,s=e.children;o<s.length;o++){var u=s[o];r.add(this.cloneSkipBackfaceObject(u))}return r},t.prototype.update=function(e,r,o){var s,u,l,c=this,f,d,p;this.renderObjects.length=0,this.backfaceObjects.length=0,this.debugObjects.length=0,this.tileObjects.length=0,this.renderer=e,this.updateMatrixWorld(!0),this.tileset.transform.equals(this.matrixWorld)||this.tileset.transform.copy(this.matrixWorld),this.tileset.cache.reset();var v=this.tileset.frameNumber+1,A=this.maxLevelOfDetail;A=Math.max(A,0);var g=Math.min(this.minLevelOfDetail,A);(!this.visible||!this.loaded||!this.modelsLoaded)&&(A=Math.max(g,0));var h=this.minGeometricError,y=this.maxGeometricError;if(y=Math.max(h,y),o==="Panorama"||o==="VRPanorama"||o==="XRPanorama"){var m=this.model.getMaterial().modelAlpha;m<.1&&(h=this.panoramaMinGeometricError)}var E={time:now(),camera:{type:r.type,position:new THREE__namespace.Vector3().copy(r.position),direction:r.getDirection(new THREE__namespace.Vector3),up:new THREE__namespace.Vector3().copy(r.up).applyQuaternion(r.quaternion),projectionMatrix:r.projectionMatrix.clone(),visible:r.visible,refine:r.refineModel},minLevelOfDetail:g,maxLevelOfDetail:A,minGeometricError:h,maxGeometricError:y,height:r.resolution.height,pixelRatio:r.pixelRatio,frameNumber:v,sseDenominator:2*Math.tan(.5*r.fov/180*Math.PI),cullingVolume:new CullingVolume().setFromCamera(r)},b=this.cacheCameras.map(function(j){return j.updateProjectionMatrix(),__assign(__assign({},E),{camera:{type:r.type,position:new THREE__namespace.Vector3().copy(j.position),direction:j.getWorldDirection(new THREE__namespace.Vector3),up:new THREE__namespace.Vector3().copy(j.up),projectionMatrix:j.projectionMatrix.clone(),visible:j.visible,refine:!0},cullingVolume:new CullingVolume().setFromCamera(j)})});if(this.needsRefined&&this.tileset.update(E,b),this.refined=!0,this.refineProgress[0]=0,this.refineProgress[1]=0,this.tileset.needsRefinedTiles.forEach(function(j){if(c.refineProgress[1]++,j.content){var se=j.content.loadState;if(se==="UNLOADED"||se==="LOADING"){c.refined=!1;return}}c.refineProgress[0]++}),this.loaded===!1&&this.needsRefined){this.loaded=!0;var T=!1;this.tileset.needsRefinedTiles.forEach(function(j){if(c.loaded!==!1&&j.content){if(T=!0,c.tileset.skipLevelOfDetail){if(j.state.finalResolution){var se=j.state.ancestorWithContentAvailable,ie=se&&se.content?se.content:j.content,ue=ie.loadState;(ue==="UNLOADED"||ue==="LOADING")&&(c.loaded=!1)}}else if(j.state.visible&&j.levelOfContent<=0){var ue=j.content.loadState;(ue==="UNLOADED"||ue==="LOADING")&&(c.loaded=!1)}}}),T&&this.tileset.selectedTiles.length===0&&(this.loaded=!1),this.loaded===!0&&(this.refined=!1,this.refineProgress[1]++)}this.remove.apply(this,this.children),this.tileset.skipLevelOfDetail||this.tileset.selectedTiles.sort(function(j,se){return j.floor!==se.floor?j.floor-se.floor:j.levelOfContent!==se.levelOfContent?se.levelOfContent-j.levelOfContent:j.state.distanceToCamera!==se.state.distanceToCamera?j.state.distanceToCamera-se.state.distanceToCamera:j.state.centerZDepth-se.state.centerZDepth}),this.debug==="root-bounding-volume"&&this.tileset.root.boundingVolumeDebugObject&&this.debugObjects.push(this.tileset.root.boundingVolumeDebugObject);for(var _=0,R=this.tileset.selectedTiles;_<R.length;_++){var S=R[_];this.debug==="selected-bounding-volume"&&S.boundingVolumeDebugObject&&this.debugObjects.push(S.boundingVolumeDebugObject);var C=(d=(f=S.content)===null||f===void 0?void 0:f.data)===null||d===void 0?void 0:d.object;if(C){if(C.update(e,r,this.model,S),this.tileset.hasMixedContent&&this.tileset.skipLevelOfDetail){if(!S.state.finalResolution){var B=this.cloneSkipBackfaceObject(C);this.backfaceObjects.push(B)}for(var L=S.state.selectionDepth,M=StencilConstants.TILE_MASK|L<<StencilConstants.SKIP_LOD_BIT_SHIFT,w=THREE__namespace.GreaterEqualStencilFunc,H=StencilConstants.SKIP_LOD_MASK,O=THREE__namespace.ReplaceStencilOp,I=StencilConstants.TILE_MASK|StencilConstants.SKIP_LOD_MASK,N=0,k=C.materials;N<k.length;N++){var U=k[N];U.stencilWrite=!0,U.stencilRef=M,U.stencilFunc=w,U.stencilFuncMask=H,U.stencilZPass=O,U.stencilWriteMask=I}}else for(var D=0,q=C.materials;D<q.length;D++){var U=q[D];U.stencilWrite=!1,U.stencilRef=StencilConstants.TILE_MASK,U.stencilFunc=THREE__namespace.AlwaysStencilFunc,U.stencilFuncMask=StencilConstants.TILE_MASK,U.stencilZPass=THREE__namespace.ReplaceStencilOp,U.stencilWriteMask=StencilConstants.TILE_MASK}this.tileObjects.push(C)}}this.tileset.skipLevelOfDetail&&this.backfaceObjects.length&&(s=this.renderObjects).push.apply(s,this.backfaceObjects),this.tileObjects.length&&(u=this.renderObjects).push.apply(u,this.tileObjects),this.tileset.skipLevelOfDetail&&this.renderObjects.push(this.clearStencilObject);for(var z=0,Q=this.tileset.selectedTrajectories;z<Q.length;z++){var G=Q[z],X=(p=G.content.data)===null||p===void 0?void 0:p.object;X&&(X.update(e,r,this.model),this.renderObjects.push(X))}this.debug&&(l=this.renderObjects).push.apply(l,this.debugObjects);for(var $=this.modelIndex*1e4,W=function(j){var se=oe.renderObjects[j],ie=j+$;se.traverse(function(ue){(ue instanceof THREE__namespace.Mesh||ue instanceof THREE__namespace.Line||ue instanceof THREE__namespace.Points)&&(ue.renderOrder=ie)}),oe.add(se)},oe=this,ae=0;ae<this.renderObjects.length;ae++)W(ae);var re=this.getRenderHash();this.lastRenderHash!==re&&(this.needsRender=!0,this.lastRenderHash=re)},t.prototype.dispose=function(){this.disposed=!0,this.viewLayer=void 0,this.tileset.reset(),this.remove.apply(this,this.children),this.refineProgress[0]=0,this.refineProgress[1]=0,this.refined=!1,this.loaded=!1},t.DEFAULT_PANORAMA_MIN_GEOMETRIC_ERROR=1,t.DEFAULT_MIN_LEVEL_OF_DETAIL=0,t.DEFAULT_MAX_LEVEL_OF_DETAIL=20,t.DEFAULT_MIN_GEOMETRIC_ERROR=0,t.DEFAULT_MAX_GEOMETRIC_ERROR=1e4,t.DEFAULT_MAX_MEMORY_USAGE=16,t.DEFAULT_MAX_SCREEN_SPACE_ERROR=Tileset.DEFAULT_MAX_SCREEN_SPACE_ERROR,t.DEFAULT_SKIP_LEVEL_OF_DETAIL=Tileset.DEFAULT_SKIP_LEVEL_OF_DETAIL,t.DEFAULT_MOST_DETAIL=Tileset.DEFAULT_MOST_DETAIL,t.DEFAULT_LOAD_SIBLINGS=Tileset.DEFAULT_LOAD_SIBLINGS,t.DEFAULT_LOAD_ALL=Tileset.DEFAULT_LOAD_ALL,t.DEFAULT_MAX_REQUESTS=Tileset.DEFAULT_MAX_REQUESTS,t.DEFAULT_REQUEST_ORDER=Tileset.DEFAULT_REQUEST_ORDER,t}(THREE__namespace.Object3D);function headingToLongitude(n){return-((n-.25)*360+90)/180*Math.PI}function equal(n,t){if(n===t)return!0;if(n&&t&&typeof n=="object"&&typeof t=="object"){if(n.constructor!==t.constructor)return!1;var e,r,o;if(Array.isArray(n)){if(e=n.length,e!=t.length)return!1;for(r=e;r--!==0;)if(!equal(n[r],t[r]))return!1;return!0}if(n.constructor===RegExp)return n.source===t.source&&n.flags===t.flags;if(n.valueOf!==Object.prototype.valueOf)return n.valueOf()===t.valueOf();if(n.toString!==Object.prototype.toString)return n.toString()===t.toString();if(o=Object.keys(n),e=o.length,e!==Object.keys(t).length)return!1;for(r=e;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[r]))return!1;for(r=e;r--!==0;){var s=o[r];if(!equal(n[s],t[s]))return!1}return!0}return n!==n&&t!==t}function isNumber(n){return typeof n=="number"}function S4(){return((1+Math.random())*65536|0).toString(16).substring(1)}function createUuid(){return(S4()+S4()+"-"+S4()+"-4"+S4().substr(0,3)+"-"+S4()+"-"+S4()+S4()+S4()).toLowerCase()}var error_invalid_input=function(){return new Error("Invalid input.")},error_invalid_certificate=function(){return new Error("Invalid certificate.")},error_invalid_signature=function(){return new Error("Invalid signature.")},error_date_expired=function(n){return new Error("date(".concat(n.toString(),") expired."))},error_host_not_allowed=function(n){return new Error("host(".concat(JSON.stringify(n),") is not allowed."))};function ObjectOmit(n,t){for(var e={},r=0,o=Object.keys(n);r<o.length;r++){var s=o[r];t.indexOf(s)===-1&&(e[s]=n[s])}return e}function jsonStableNoneNumberStrinfiy_(n,t){t===void 0&&(t=!1);var e=typeof n;if(e==="string")return JSON.stringify(n);if(n===!0)return"true";if(n===!1)return"false";if(n===null)return"null";if(n instanceof Array){for(var r="[",o=n.length-1,s=0;s<o;s++)r+=jsonStableNoneNumberStrinfiy_(n[s],!1)+",";return o>-1&&(r+=jsonStableNoneNumberStrinfiy_(n[s],!1)),r+"]"}if(n instanceof Object){if(typeof n.toJSON=="function")return jsonStableNoneNumberStrinfiy_(n.toJSON(),t);for(var u=Object.keys(n).sort(),l=u.length,r="",s=0;s<l;){var c=u[s],f=jsonStableNoneNumberStrinfiy_(n[c],!0);f!==void 0&&(s&&r!==""&&(r+=","),r+=JSON.stringify(c)+":"+f),s++}return"{"+r+"}"}switch(e){case"function":case"undefined":return t?void 0:null;case"number":return 0;default:return isFinite(n)?n:null}}function jsonStableNoneNumberStrinfiy(n){return String(jsonStableNoneNumberStrinfiy_(n,!1))}function verify(n){var t,e,r;if(Array.isArray(n)){var o=void 0,s,u;if(n.length<=0)return error_invalid_input();for(var l=function(_){var R=verify(n[_]);if(R instanceof Error)return{value:R};if(!o)o=R.issuer;else if(o!==R.issuer)return{value:error_invalid_certificate()};s?R.expire.getTime()<s.getTime()&&(s=R.expire):s=R.expire,u?u=u.filter(function(S){return R.allowHosts.indexOf(S)!==-1}):u=R.allowHosts},c=0;c<n.length;c++){var f=l(c);if(typeof f=="object")return f.value}return deepFreeze({issuer:o,expire:s,allowHosts:u})}var d=JSON.parse(n),p=typeof location!="undefined"?location.hostname:"",v=Date.now();if(typeof d!="object")return error_invalid_input();var A=new Date(typeof d.expire_at=="string"&&/^\d+$/.test(d.expire_at)?Number(d.expire_at):d.expire_at),g=Array.isArray(d.allow_hosts)?d.allow_hosts:[];if(p.length===0||isIPDomain(p)||BUILDIN_ALLOW_HOST.filter(function(_){return matchDomain(_,p)}).length>0){var h=String((t=d.certificate)!==null&&t!==void 0?t:"");if(h){var y=new X509;return y.readCertPEM(h),deepFreeze({issuer:y.getSubjectString(),expire:A,allowHosts:g})}return deepFreeze({issuer:"none",expire:A,allowHosts:g})}var m=String((e=d.certificate)!==null&&e!==void 0?e:"");if(!m)return error_invalid_certificate();var E=new X509;E.readCertPEM(m);var b=String((r=d._signature)!==null&&r!==void 0?r:"");if(!b)return error_invalid_signature();var T=jsonStableNoneNumberStrinfiy(ObjectOmit(d,["_signature"]));return verifyMessage(T,b,E)===!1?error_invalid_signature():v<A.getTime()?g.filter(function(_){return matchDomain(_,p)}).length===0?error_host_not_allowed(p):deepFreeze({issuer:E.getSubjectString(),expire:A,allowHosts:g}):error_date_expired(A)}var scratchMatrix4$1=new THREE__namespace.Matrix4,workRawMapping=new WeakMap,needsUpdateWorkCodeSet=new Set,Work=function(){function n(t,e){this.name="",this.baseURL="",this.workCode="",this.expire=new Date,this.allowHosts=[],this.initial={work:this},this.observers=[],this.issuer="none",this.raw={works:[""],options:""},this.transform=new THREE__namespace.Matrix4;{var r=this;this.options={get transform(){return r.transform},set transform(s){r.transform.copy(s)}}}if(t!==null)if("up"in t&&typeof t.up=="string"&&"down"in t&&typeof t.down=="string"&&"right"in t&&typeof t.right=="string"&&"left"in t&&typeof t.left=="string"&&"front"in t&&typeof t.front=="string"&&"back"in t&&typeof t.back=="string"&&"size"in t&&typeof t.size=="number")parsePanoWork(t,this);else{var o=parse(t,e,this);if(o instanceof Error)throw new Error("[PARSE FAILED]: "+o.message+`
|
|
1037
1037
|
Error work input:
|
|
1038
|
-
`+JSON.stringify(t))}else parseNull(t,this)}return n.prototype.toJSON=function(){return this.raw},n.parse=parseWork,n}();function getType(n){return n==null?"null":Array.isArray(n)?"array":typeof n=="object"?"dict":"value"}function deepMerge(n,t){var e=getType(n),r=getType(t);if(r==="null")return n;if(r==="value")return t;if(r!==e)return JSON.parse(JSON.stringify(t));if(r==="array")for(var o=0;o<t.length;o++)n[o]=deepMerge(n[o],t[o]);else if(r==="dict")for(var s in t)n[s]=deepMerge(n[s],t[s]);return n}function startWithString(n,t){return n.indexOf(t)===0}function urlWithParseOptions(n,t,e,r){var o,s=t;if(r.jsonp===!0){s=t.replace(/([\?\#].*)?$/i,"");var u=sha256("".concat(s)).slice(0,7);s="".concat(s,".").concat(u,".jsonp")}if(r.shortPath===!0){var l=s.replace(n,"").split("."),c=(o=l.shift())!==null&&o!==void 0?o:"",f=l.join(".");s=pathJoin(n,sha256(c))+(f?"."+f:"")}var d=s.replace(n,"");return r.baseURL&&(s=pathJoin(r.baseURL,d)),r.traverseResource&&r.traverseResource({origin:t,absolute:s,relative:d,type:e}),s}function panoURL(n,t,e,r,o){var s=e;return isAbsoluteURL(e)||(t&&(t=pathJoin(t,String(r))),s=pathJoin(t,s)),isAbsoluteURL(s)||(s=pathJoin(n,s)),startWithString(s,n)||console.warn("".concat(s," is not start with base_url(").concat(n,").")),urlWithParseOptions(n,s,"panorama",o)}function fileURL(n,t,e){var r=t;return isAbsoluteURL(r)||(r=pathJoin(n,t)),startWithString(r,n)||console.warn("".concat(r," is not start with base_url(").concat(n,").")),urlWithParseOptions(n,r,"model",e)}function textureURL$1(n,t,e,r){var o=t;return isAbsoluteURL(o)||(o=pathJoin(e,o)),isAbsoluteURL(o)||(o=pathJoin(n,o)),startWithString(o,n)||console.warn("".concat(o," is not start with base_url(").concat(n,").")),urlWithParseOptions(n,o,"texture",r)}var getTileLevel=function(n){for(var t=10;t>=0;t--){var e=512*Math.pow(2,t);if(e<=n)return t}return null},sortTile=function(n){n=n.slice().sort(function(u,l){return u.level-l.level});for(var t=[],e=0,r=n;e<r.length;e++){var o=r[e];if(t.length===0){t.push(o);continue}var s=t[t.length-1];if(o.level>s.level){t.push(o);continue}if(o.size>s.size){t[t.length-1]=o;continue}}return t};function parse(n,t,e){for(var r,o,s,u,l,c,f,d,p,v,A,g,h,y,m,E,b,T,_,R,S=JSON.stringify(t),C=[],B=0,L=[].concat(n);B<L.length;B++){var M=L[B];M instanceof Work?C.push.apply(C,M.raw.works):typeof M=="string"?C.push(M):C.push(JSON.stringify(M))}var w=verify(C);if(w instanceof Error)return w;Array.isArray(t.transform)?e.transform.fromArray(t.transform):t.transform&&e.transform.copy(t.transform),n=C.map(function(Z){return JSON.parse(Z)}).reduce(function(Z,te){return deepMerge(Z,te)}),Object.defineProperty(e,"raw",{configurable:!1,get:function(){return{works:C,options:S}}});{var H;if(t.workCode&&(typeof t.workCode=="string"?H=t.workCode:typeof t.workCode=="function"&&(H=t.workCode(n))),typeof H=="undefined"&&(H=String(n.resource_code||n.basic_code||n.vr_code||n.code||n.project_id||n.work_code||n.workCode)),typeof H=="undefined")return new Error("WorkCode never matched.");Object.defineProperty(e,"workCode",{configurable:!1,get:function(){return H}})}{var O=String(n.name);Object.defineProperty(e,"name",{configurable:!1,get:function(){return O}})}if(w instanceof Error)return w;Object.defineProperty(e,"issuer",{configurable:!1,get:function(){return w.issuer}}),Object.defineProperty(e,"expire",{configurable:!1,get:function(){return w.expire}}),Object.defineProperty(e,"allowHosts",{configurable:!1,get:function(){return w.allowHosts}});var I=(r=n.base_url)!==null&&r!==void 0?r:"";if(I&&I[I.length-1]!=="/"&&(I+="/"),e.baseURL=(o=t.baseURL)!==null&&o!==void 0?o:I,w instanceof Error)return w;if(n.model){var N={work:e,layers:[]},k;n.model.file?k=fileURL(I,n.model.file,t):n.model.file_url&&(k=fileURL(I,n.model.file_url,t)),Object.defineProperty(N,"file",{configurable:!1,get:function(){return k}});var U;n.model.textureBase?U=textureURL$1(I,"",n.model.textureBase,t):n.model.material_base_url?U=textureURL$1(I,"",n.model.material_base_url,t):N.file&&(U=N.file.split("/").slice(0,-1).join("/").replace("/model/","/materials/")),Object.defineProperty(N,"textureBase",{configurable:!1,get:function(){return U}});var D;Array.isArray(n.model.textures)?(D=n.model.textures.map(function(Z){var te,K;return textureURL$1(I,Z,(K=(te=n.model.textureBase)!==null&&te!==void 0?te:n.model.material_base_url)!==null&&K!==void 0?K:"",t)}),Object.freeze(D)):Array.isArray(n.model.material_textures)&&(D=n.model.material_textures.map(function(Z){var te,K;return textureURL$1(I,Z,(K=(te=n.model.textureBase)!==null&&te!==void 0?te:n.model.material_base_url)!==null&&K!==void 0?K:"",t)}),Object.freeze(D)),Object.defineProperty(N,"textures",{configurable:!1,get:function(){return D}});var q=[];if(Array.isArray(n.model.tiles))for(var z=0,Q=n.model.tiles;z<Q.length;z++){var G=Q[z];G&&(G.tileset||G.tileset_url)&&q.push(Object.freeze({type:(s=G.type)!==null&&s!==void 0?s:"mesh",name:(u=G.name)!==null&&u!==void 0?u:"",upAxis:(c=(l=G.upAxis)!==null&&l!==void 0?l:G.up_axis)!==null&&c!==void 0?c:"-Y",tileset:fileURL(I,G.tileset||G.tileset_url,t)}))}else n.model.tiles&&(n.model.tiles.tileset||n.model.tiles.tileset_url)&&q.push(Object.freeze({type:(f=n.model.tiles.type)!==null&&f!==void 0?f:"mesh",name:(d=n.model.tiles.name)!==null&&d!==void 0?d:"lod",upAxis:(v=(p=n.model.tiles.upAxis)!==null&&p!==void 0?p:n.model.tiles.up_axis)!==null&&v!==void 0?v:"-Y",tileset:fileURL(I,n.model.tiles.tileset||n.model.tiles.tileset_url,t)}));if(Array.isArray(n.model.layers))for(var X=0,$=n.model.layers;X<$.length;X++){var W=$[X];W&&(W.tileset||W.tileset_url)&&q.push(Object.freeze({type:(A=W.type)!==null&&A!==void 0?A:"mesh",name:(g=W.name)!==null&&g!==void 0?g:"",upAxis:(h=W.upAxis)!==null&&h!==void 0?h:W.up_axis,tileset:fileURL(I,W.tileset||W.tileset_url,t)}))}Object.freeze(q),Object.defineProperty(N,"layers",{configurable:!1,get:function(){return q}}),Object.defineProperty(e,"model",{configurable:!1,get:function(){if(N.file||N.layers.length)return N}})}if(w instanceof Error)return w;var oe=new Set,ae=new Set;{var re=[];if(n.observers&&Array.isArray(n.observers)){var j=[];n.panorama&&(Array.isArray(n.panorama)?j=n.panorama:Array.isArray(n.panorama.list)?j=n.panorama.list:Array.isArray(n.panorama.info)&&(j=n.panorama.info));for(var se=function(Z){var te={},K=n.observers[Z];if(!K)return"break";var ye=j[Z];if(!ye)return"break";K=Object.assign({},K,ye,{active:K.active!==!1&&ye.active!==!1}),Object.defineProperty(te,"work",{configurable:!1,get:function(){return e}}),Object.defineProperty(te,"index",{configurable:!1,get:function(){return Z}}),ae.add(Z),Object.defineProperty(te,"panoIndex",{configurable:!1,get:function(){return Z}});var de=panoStringify({workCode:e.workCode,panoIndex:Z});oe.add(de),Object.defineProperty(te,"panoId",{configurable:!1,get:function(){return de}});var xe=Object.freeze({workCode:e.workCode,panoIndex:Z});Object.defineProperty(te,"pano",{configurable:!1,get:function(){return xe}});var ge=K.active!==!1;Object.defineProperty(te,"active",{configurable:!1,get:function(){return ge}});var me=K.loadable===!0;Object.defineProperty(te,"loadable",{configurable:!1,get:function(){return me}});var ce=K.derived_id;Object.defineProperty(te,"derivedId",{configurable:!1,get:function(){return ce}});var he=K.derived_id_str;Object.defineProperty(te,"derivedIdStr",{configurable:!1,get:function(){return he}});var ee=(_=(b=(m=(y=n.panorama)===null||y===void 0?void 0:y.pano_high_cube_base_url)!==null&&m!==void 0?m:(E=n.panorama)===null||E===void 0?void 0:E.pano_cube_base_url)!==null&&b!==void 0?b:(T=n.panorama)===null||T===void 0?void 0:T.base_url)!==null&&_!==void 0?_:"",pe={up:panoURL(I,ee,K.images?K.images.up:K.up,Z,t),down:panoURL(I,ee,K.images?K.images.down:K.down,Z,t),right:panoURL(I,ee,K.images?K.images.right:K.right,Z,t),left:panoURL(I,ee,K.images?K.images.left:K.left,Z,t),front:panoURL(I,ee,K.images?K.images.front:K.front,Z,t),back:panoURL(I,ee,K.images?K.images.back:K.back,Z,t)};if(K.size_list)pe.sizeList=K.size_list.slice();else{var Re=getImageSizeFromURL(pe.up);if(Re&&(pe.sizeList=[Re],K.tiles))for(var we=K.tiles.slice().sort(function(Ce,Oe){return Ce-Oe}).map(function(Ce){return 512*Math.pow(2,Ce)}),Ue=0,be=we;Ue<be.length;Ue++){var Ae=be[Ue];Ae>Re&&pe.sizeList.push(Ae)}}var ze=K.images?K.images.luminance:K.luminance;ze&&(pe.luminance=Object.freeze({up:panoURL(I,ee,ze.up,Z,t),down:panoURL(I,ee,ze.down,Z,t),right:panoURL(I,ee,ze.right,Z,t),left:panoURL(I,ee,ze.left,Z,t),front:panoURL(I,ee,ze.front,Z,t),back:panoURL(I,ee,ze.back,Z,t)}));var Ne=void 0;if(K.images)Ne=K.images.tiles;else if(Array.isArray(K.size_list)){var Je=K.size_list.slice().sort(function(Ce,Oe){return Ce-Oe});if(Je[0]){var Ke=getTileLevel(Je[0]);if(Ke)for(var De=Ke-1;De>=0;De--)Je.unshift(512*Math.pow(2,De));Ne=Je}}else if(Array.isArray(K.tiles)&&(Ne=K.tiles.slice(),typeof Ne[0]=="number")){for(var Ye=Ne[0];--Ye>=0;)Ne.unshift(Ye);Ne=Ne.sort(function(Ce,Oe){return Ce-Oe}).map(function(Ce){return 512*Math.pow(2,Ce)})}if(Ne){for(var Ve=[],nt=0,qe=Ne;nt<qe.length;nt++){var Ae=qe[nt];if(typeof Ae=="number"){var Qe=getTileLevel(Ae);if(typeof Qe!="number")continue;var Ie=getImageSizeFromURL(pe.front);if(!Ie)continue;if(Ae>Ie){var Se=replaceImageSize(pe.up,Ae),Be=replaceImageSize(pe.down,Ae),Le=replaceImageSize(pe.right,Ae),ot=replaceImageSize(pe.left,Ae),$e=replaceImageSize(pe.front,Ae),tt=replaceImageSize(pe.back,Ae);Ve.push(Object.freeze({level:Qe,size:Ae,scale:1,up:Se,down:Be,right:Le,left:ot,front:$e,back:tt}))}else{var Se=pe.up,Be=pe.down,Le=pe.right,ot=pe.left,$e=pe.front,tt=pe.back;Ve.push(Object.freeze({level:Qe,size:Ie,scale:Ae/Ie,up:Se,down:Be,right:Le,left:ot,front:$e,back:tt}))}}else{var Qe=Ae.level;if(typeof Qe!="number")continue;var Re=Ae.size;if(typeof Re!="number")continue;var Se=panoURL(I,ee,Ae.up,Z,t),Be=panoURL(I,ee,Ae.down,Z,t),Le=panoURL(I,ee,Ae.right,Z,t),ot=panoURL(I,ee,Ae.left,Z,t),$e=panoURL(I,ee,Ae.front,Z,t),tt=panoURL(I,ee,Ae.back,Z,t);Ve.push(Object.freeze({level:Qe,size:Re,scale:(R=Ae.scale)!==null&&R!==void 0?R:1,up:Se,down:Be,right:Le,left:ot,front:$e,back:tt}))}}Ve=sortTile(Ve),Object.freeze(Ve),Object.defineProperty(pe,"tiles",{configurable:!1,get:function(){return Ve}})}Object.freeze(pe),Object.defineProperty(te,"images",{configurable:!1,get:function(){return pe}});var Xe=new THREE__namespace.Vector3;if(K.position instanceof THREE__namespace.Vector3)Xe.copy(K.position);else if(Array.isArray(K.position))Xe.fromArray(K.position);else return"break";Object.freeze(Xe),Object.defineProperty(te,"position",{configurable:!1,get:function(){return Xe}});var rt=new THREE__namespace.Vector3;if(K.standingPosition instanceof THREE__namespace.Vector3)rt.copy(K.standingPosition);else if(Array.isArray(K.standingPosition))rt.fromArray(K.standingPosition);else if(K.standing_position instanceof THREE__namespace.Vector3)rt.copy(K.standing_position);else if(Array.isArray(K.standing_position))rt.fromArray(K.standing_position);else return"break";Object.freeze(rt),Object.defineProperty(te,"standingPosition",{configurable:!1,get:function(){return rt}});var Ge=new THREE__namespace.Quaternion;if(K.quaternion instanceof THREE__namespace.Quaternion)Ge.copy(K.quaternion);else if(Array.isArray(K.quaternion))Ge.fromArray(K.quaternion);else if(K.quaternion){var st=K.quaternion,ct=st.x,je=st.y,Fe=st.z,We=st.w;Ge.set(ct,je,Fe,We)}else return"break";Object.freeze(Ge),Object.defineProperty(te,"quaternion",{configurable:!1,get:function(){return Ge}});var at=0;isNumber(K.floorIndex)?at=K.floorIndex:isNumber(K.floor_index)?at=K.floor_index:isNumber(K.floor)&&(at=K.floor),Object.defineProperty(te,"floorIndex",{configurable:!1,get:function(){return at}});var Pe;K.video&&(Pe={},typeof K.video.source=="string"&&(Pe.source=K.video.source),K.video.matrix instanceof THREE__namespace.Matrix4?Pe.matrix=K.video.matrix.clone():Array.isArray(K.video.matrix)&&(Pe.matrix=new THREE__namespace.Matrix4().fromArray(K.video.matrix)),K.video.size instanceof THREE__namespace.Vector2?Pe.size=K.video.size.clone():Array.isArray(K.video.size)&&(Pe.size=new THREE__namespace.Vector2().fromArray(K.video.size)),Pe.source&&Pe.matrix&&Pe.size&&(te.video=Pe)),Object.freeze(Pe),Object.defineProperty(te,"video",{configurable:!1,get:function(){return Pe}}),Array.isArray(K.accessibleNodes)?(te.accessibleNodes=K.accessibleNodes.slice(),te.accessibleIds=K.accessibleNodes.map(function(Ce){return panoStringify({workCode:e.workCode,panoIndex:Ce})})):Array.isArray(K.accessible_nodes)&&(te.accessibleNodes=K.accessible_nodes.slice(),te.accessibleIds=K.accessible_nodes.map(function(Ce){return panoStringify({workCode:e.workCode,panoIndex:Ce})})),Array.isArray(K.visibleNodes)?(te.visibleNodes=K.visibleNodes.slice(),te.visibleIds=K.visibleNodes.map(function(Ce){return panoStringify({workCode:e.workCode,panoIndex:Ce})})):Array.isArray(K.visible_nodes)&&(te.visibleNodes=K.visible_nodes.slice(),te.visibleIds=K.visible_nodes.map(function(Ce){return panoStringify({workCode:e.workCode,panoIndex:Ce})})),re[Z]=te},ie=0;ie<n.observers.length;ie++){var ue=se(ie);if(ue==="break")break}}for(var fe=function(Z){if(Z.accessibleIds){var ye=Z.accessibleIds.filter(function(ee){return oe.has(ee)});Object.freeze(ye),Object.defineProperty(Z,"accessibleIds",{configurable:!1,get:function(){return ye}})}else{for(var te=[],K=0;K<re.length;K++)re[K]!==Z&&(Math.abs(re[K].position.y-Z.position.y)>3||re[K].position.distanceTo(Z.position)>10||te.push(re[K].panoId));Object.freeze(te),Object.defineProperty(Z,"accessibleIds",{configurable:!1,get:function(){return te}})}if(Z.accessibleNodes){var xe=Z.accessibleNodes.filter(function(ee){return ae.has(ee)});Object.freeze(xe),Object.defineProperty(Z,"accessibleNodes",{configurable:!1,get:function(){return xe}})}else{for(var de=[],K=0;K<re.length;K++)re[K]!==Z&&(Math.abs(re[K].position.y-Z.position.y)>3||re[K].position.distanceTo(Z.position)>10||de.push(re[K].panoIndex));Object.freeze(de),Object.defineProperty(Z,"accessibleNodes",{configurable:!1,get:function(){return de}})}if(Z.visibleIds){var me=Z.visibleIds.filter(function(ee){return oe.has(ee)});Object.freeze(me),Object.defineProperty(Z,"visibleIds",{configurable:!1,get:function(){return me}})}else{var ge=Z.accessibleIds.slice();Object.freeze(ge),Object.defineProperty(Z,"visibleIds",{configurable:!1,get:function(){return ge}})}if(Z.visibleNodes){var he=Z.visibleNodes.filter(function(ee){return ae.has(ee)});Object.freeze(he),Object.defineProperty(Z,"visibleNodes",{configurable:!1,get:function(){return he}})}else{var ce=Z.accessibleNodes.slice();Object.freeze(ce),Object.defineProperty(Z,"visibleNodes",{configurable:!1,get:function(){return ce}})}},ne=0,Te=re;ne<Te.length;ne++){var _e=Te[ne];fe(_e)}Object.freeze(re),Object.defineProperty(e,"observers",{configurable:!1,get:function(){return re}})}if(w instanceof Error)return w;if(n.initial){if((n.initial.mode==="Panorama"&&e.observers.length===0||n.initial.mode==="Floorplan"||n.initial.mode==="Topview"||n.initial.mode==="Model"||n.initial.mode==="Mapview"||n.initial.mode==="DepthPanorama")&&(e.initial.mode=n.initial.mode),isNumber(n.initial.latitude)&&(e.initial.latitude=n.initial.latitude),isNumber(n.initial.longitude)?e.initial.longitude=n.initial.longitude:isNumber(n.initial.heading)&&(e.initial.longitude=headingToLongitude(n.initial.heading)),isNumber(n.initial.fov)&&(e.initial.fov=n.initial.fov),e.observers.length>0){var ve=void 0;isNumber(n.initial.panoIndex)?ve=n.initial.panoIndex:isNumber(n.initial.pano_index)?ve=n.initial.pano_index:isNumber(n.initial.pano)&&(ve=n.initial.pano),typeof ve=="number"&&(ve=clamp$1(ve,0,e.observers.length-1),e.initial.panoIndex=ve)}if(isNumber(n.initial.distance)&&(e.initial.distance=n.initial.distance),Array.isArray(n.initial.offset)){var Me=[0,0,0].map(function(Z,te){var K=Number(n.initial.offset[te]);return isNaN(K)||!isFinite(K)?0:K});e.initial.offset=new THREE__namespace.Vector3().fromArray(Me)}else typeof n.initial.offset=="object"&&typeof n.initial.offset.x=="number"&&typeof n.initial.offset.y=="number"&&typeof n.initial.offset.z=="number"&&(e.initial.offset=new THREE__namespace.Vector3(n.initial.offset.x,n.initial.offset.y,n.initial.offset.z));!e.initial.mode&&typeof e.initial.panoIndex=="number"&&(e.initial.mode="Panorama")}return w instanceof Error?w:(workRawMapping.set(e,{works:C,options:S}),e)}function parseNull(n,t){return t.issuer="null",deepFreeze(t),workRawMapping.set(t,{works:["null"],options:"{}"}),t}function parsePanoWork(n,t){var e;t.issuer="null",t.allowHosts=["*"],t.workCode=(e=n.code)!==null&&e!==void 0?e:createUuid();var r=[n.size],o=[],s=getTileLevel(r[0]);if(s)for(var u=s-1;u>=0;u--)r.unshift(512*Math.pow(2,u));for(var l=0,c=r;l<c.length;l++){var f=c[l],d=getTileLevel(f);d&&o.push({level:d,size:n.size,scale:f/n.size,up:n.up,down:n.down,right:n.right,left:n.left,front:n.front,back:n.back})}var p={up:n.up,down:n.down,right:n.right,left:n.left,front:n.front,back:n.back,sizeList:r};o&&(p.tiles=o);var v={accessibleIds:[],accessibleNodes:[],active:!0,floorIndex:0,images:p,index:0,loadable:!1,pano:{workCode:t.workCode,panoIndex:0},panoId:"".concat(t.workCode,"[0]"),panoIndex:0,position:new THREE__namespace.Vector3(0,1.5,0),quaternion:new THREE__namespace.Quaternion(0,1,0,0),standingPosition:new THREE__namespace.Vector3(0,0,0),visibleIds:[],visibleNodes:[],work:t};return t.observers=[v],deepFreeze(t),workRawMapping.set(t,{works:[JSON.stringify(n)],options:"{}"}),t}function parseWork(n,t){typeof n=="string"&&n.trim()[0]==="{"&&(n=JSON.parse(n));var e=workRawMapping.get(n);if(e){if(t&&!equal(JSON.parse(e.options),t))throw new Error("[PARSE FAILED]: work is parsed with different options.");return n}else try{return new Work(n,t!=null?t:{})}catch(r){throw new Error("[PARSE FAILED]: "+r.message+`
|
|
1038
|
+
`+JSON.stringify(t))}else parseNull(t,this)}return n.prototype.toJSON=function(){return this.raw},n.parse=parseWork,n}();function getType(n){return n==null?"null":Array.isArray(n)?"array":typeof n=="object"?"dict":"value"}function deepMerge(n,t){var e=getType(n),r=getType(t);if(r==="null")return n;if(r==="value")return t;if(r!==e)return JSON.parse(JSON.stringify(t));if(r==="array")for(var o=0;o<t.length;o++)n[o]=deepMerge(n[o],t[o]);else if(r==="dict")for(var s in t)n[s]=deepMerge(n[s],t[s]);return n}function startWithString(n,t){return n.indexOf(t)===0}function urlWithParseOptions(n,t,e,r){var o,s=t;if(r.jsonp===!0){s=t.replace(/([\?\#].*)?$/i,"");var u=sha256("".concat(s)).slice(0,7);s="".concat(s,".").concat(u,".jsonp")}if(r.shortPath===!0){var l=s.replace(n,"").split("."),c=(o=l.shift())!==null&&o!==void 0?o:"",f=l.join(".");s=pathJoin(n,sha256(c))+(f?"."+f:"")}var d=s.replace(n,"");return r.baseURL&&(s=pathJoin(r.baseURL,d)),r.traverseResource&&r.traverseResource({origin:t,absolute:s,relative:d,type:e}),s}function panoURL(n,t,e,r,o){var s=e;return isAbsoluteURL(e)||(t&&(t=pathJoin(t,String(r))),s=pathJoin(t,s)),isAbsoluteURL(s)||(s=pathJoin(n,s)),startWithString(s,n)||console.warn("".concat(s," is not start with base_url(").concat(n,").")),urlWithParseOptions(n,s,"panorama",o)}function fileURL(n,t,e){var r=t;return isAbsoluteURL(r)||(r=pathJoin(n,t)),startWithString(r,n)||console.warn("".concat(r," is not start with base_url(").concat(n,").")),urlWithParseOptions(n,r,"model",e)}function textureURL$1(n,t,e,r){var o=t;return isAbsoluteURL(o)||(o=pathJoin(e,o)),isAbsoluteURL(o)||(o=pathJoin(n,o)),startWithString(o,n)||console.warn("".concat(o," is not start with base_url(").concat(n,").")),urlWithParseOptions(n,o,"texture",r)}var getTileLevel=function(n){for(var t=10;t>=0;t--){var e=512*Math.pow(2,t);if(e<=n)return t}return null},sortTile=function(n){n=n.slice().sort(function(u,l){return u.level-l.level});for(var t=[],e=0,r=n;e<r.length;e++){var o=r[e];if(t.length===0){t.push(o);continue}var s=t[t.length-1];if(o.level>s.level){t.push(o);continue}if(o.size>s.size){t[t.length-1]=o;continue}}return t};function parse(n,t,e){for(var r,o,s,u,l,c,f,d,p,v,A,g,h,y,m,E,b,T,_,R,S=JSON.stringify(t),C=[],B=0,L=[].concat(n);B<L.length;B++){var M=L[B];M instanceof Work?C.push.apply(C,M.raw.works):typeof M=="string"?C.push(M):C.push(JSON.stringify(M))}var w=verify(C);if(w instanceof Error)return w;Array.isArray(t.transform)?e.transform.fromArray(t.transform):t.transform&&e.transform.copy(t.transform),n=C.map(function(Z){return JSON.parse(Z)}).reduce(function(Z,te){return deepMerge(Z,te)}),Object.defineProperty(e,"raw",{configurable:!1,get:function(){return{works:C,options:S}}});{var H;if(t.workCode&&(typeof t.workCode=="string"?H=t.workCode:typeof t.workCode=="function"&&(H=t.workCode(n))),typeof H=="undefined"&&(H=String(n.resource_code||n.basic_code||n.vr_code||n.code||n.project_id||n.work_code||n.workCode)),typeof H=="undefined")return new Error("WorkCode never matched.");Object.defineProperty(e,"workCode",{configurable:!1,get:function(){return H}})}{var O=String(n.name);Object.defineProperty(e,"name",{configurable:!1,get:function(){return O}})}if(w instanceof Error)return w;Object.defineProperty(e,"issuer",{configurable:!1,get:function(){return w.issuer}}),Object.defineProperty(e,"expire",{configurable:!1,get:function(){return w.expire}}),Object.defineProperty(e,"allowHosts",{configurable:!1,get:function(){return w.allowHosts}});var I=(r=n.base_url)!==null&&r!==void 0?r:"";if(I&&I[I.length-1]!=="/"&&(I+="/"),e.baseURL=(o=t.baseURL)!==null&&o!==void 0?o:I,w instanceof Error)return w;if(n.model){var N={work:e,layers:[]},k;n.model.file?k=fileURL(I,n.model.file,t):n.model.file_url&&(k=fileURL(I,n.model.file_url,t)),Object.defineProperty(N,"file",{configurable:!1,get:function(){return k}});var U;n.model.textureBase?U=textureURL$1(I,"",n.model.textureBase,t):n.model.material_base_url?U=textureURL$1(I,"",n.model.material_base_url,t):N.file&&(U=N.file.split("/").slice(0,-1).join("/").replace("/model/","/materials/")),Object.defineProperty(N,"textureBase",{configurable:!1,get:function(){return U}});var D;Array.isArray(n.model.textures)?(D=n.model.textures.map(function(Z){var te,K;return textureURL$1(I,Z,(K=(te=n.model.textureBase)!==null&&te!==void 0?te:n.model.material_base_url)!==null&&K!==void 0?K:"",t)}),Object.freeze(D)):Array.isArray(n.model.material_textures)&&(D=n.model.material_textures.map(function(Z){var te,K;return textureURL$1(I,Z,(K=(te=n.model.textureBase)!==null&&te!==void 0?te:n.model.material_base_url)!==null&&K!==void 0?K:"",t)}),Object.freeze(D)),Object.defineProperty(N,"textures",{configurable:!1,get:function(){return D}});var q=[];if(Array.isArray(n.model.tiles))for(var z=0,Q=n.model.tiles;z<Q.length;z++){var G=Q[z];G&&(G.tileset||G.tileset_url)&&q.push(Object.freeze({type:(s=G.type)!==null&&s!==void 0?s:"mesh",name:(u=G.name)!==null&&u!==void 0?u:"",upAxis:(c=(l=G.upAxis)!==null&&l!==void 0?l:G.up_axis)!==null&&c!==void 0?c:"-Y",tileset:fileURL(I,G.tileset||G.tileset_url,t)}))}else n.model.tiles&&(n.model.tiles.tileset||n.model.tiles.tileset_url)&&q.push(Object.freeze({type:(f=n.model.tiles.type)!==null&&f!==void 0?f:"mesh",name:(d=n.model.tiles.name)!==null&&d!==void 0?d:"lod",upAxis:(v=(p=n.model.tiles.upAxis)!==null&&p!==void 0?p:n.model.tiles.up_axis)!==null&&v!==void 0?v:"-Y",tileset:fileURL(I,n.model.tiles.tileset||n.model.tiles.tileset_url,t)}));if(Array.isArray(n.model.layers))for(var X=0,$=n.model.layers;X<$.length;X++){var W=$[X];W&&(W.tileset||W.tileset_url)&&q.push(Object.freeze({type:(A=W.type)!==null&&A!==void 0?A:"mesh",name:(g=W.name)!==null&&g!==void 0?g:"",upAxis:(h=W.upAxis)!==null&&h!==void 0?h:W.up_axis,tileset:fileURL(I,W.tileset||W.tileset_url,t)}))}Object.freeze(q),Object.defineProperty(N,"layers",{configurable:!1,get:function(){return q}}),Object.defineProperty(e,"model",{configurable:!1,get:function(){if(N.file||N.layers.length)return N}})}if(w instanceof Error)return w;var oe=new Set,ae=new Set;{var re=[];if(n.observers&&Array.isArray(n.observers)){var j=[];n.panorama&&(Array.isArray(n.panorama)?j=n.panorama:Array.isArray(n.panorama.list)?j=n.panorama.list:Array.isArray(n.panorama.info)&&(j=n.panorama.info));for(var se=function(Z){var te={},K=n.observers[Z];if(!K)return"break";var ye=j[Z];if(!ye)return"break";K=Object.assign({},K,ye,{active:K.active!==!1&&ye.active!==!1}),Object.defineProperty(te,"work",{configurable:!1,get:function(){return e}}),Object.defineProperty(te,"index",{configurable:!1,get:function(){return Z}}),ae.add(Z),Object.defineProperty(te,"panoIndex",{configurable:!1,get:function(){return Z}});var de=panoStringify({workCode:e.workCode,panoIndex:Z});oe.add(de),Object.defineProperty(te,"panoId",{configurable:!1,get:function(){return de}});var xe=Object.freeze({workCode:e.workCode,panoIndex:Z});Object.defineProperty(te,"pano",{configurable:!1,get:function(){return xe}});var Ae=K.active!==!1;Object.defineProperty(te,"active",{configurable:!1,get:function(){return Ae}});var me=K.loadable===!0;Object.defineProperty(te,"loadable",{configurable:!1,get:function(){return me}});var ce=K.derived_id;Object.defineProperty(te,"derivedId",{configurable:!1,get:function(){return ce}});var he=K.derived_id_str;Object.defineProperty(te,"derivedIdStr",{configurable:!1,get:function(){return he}});var ee=(_=(b=(m=(y=n.panorama)===null||y===void 0?void 0:y.pano_high_cube_base_url)!==null&&m!==void 0?m:(E=n.panorama)===null||E===void 0?void 0:E.pano_cube_base_url)!==null&&b!==void 0?b:(T=n.panorama)===null||T===void 0?void 0:T.base_url)!==null&&_!==void 0?_:"",pe={up:panoURL(I,ee,K.images?K.images.up:K.up,Z,t),down:panoURL(I,ee,K.images?K.images.down:K.down,Z,t),right:panoURL(I,ee,K.images?K.images.right:K.right,Z,t),left:panoURL(I,ee,K.images?K.images.left:K.left,Z,t),front:panoURL(I,ee,K.images?K.images.front:K.front,Z,t),back:panoURL(I,ee,K.images?K.images.back:K.back,Z,t)};if(K.size_list)pe.sizeList=K.size_list.slice();else{var Re=getImageSizeFromURL(pe.up);if(Re&&(pe.sizeList=[Re],K.tiles))for(var we=K.tiles.slice().sort(function(Ce,Oe){return Ce-Oe}).map(function(Ce){return 512*Math.pow(2,Ce)}),Ue=0,be=we;Ue<be.length;Ue++){var ge=be[Ue];ge>Re&&pe.sizeList.push(ge)}}var ze=K.images?K.images.luminance:K.luminance;ze&&(pe.luminance=Object.freeze({up:panoURL(I,ee,ze.up,Z,t),down:panoURL(I,ee,ze.down,Z,t),right:panoURL(I,ee,ze.right,Z,t),left:panoURL(I,ee,ze.left,Z,t),front:panoURL(I,ee,ze.front,Z,t),back:panoURL(I,ee,ze.back,Z,t)}));var Ne=void 0;if(K.images)Ne=K.images.tiles;else if(Array.isArray(K.size_list)){var Je=K.size_list.slice().sort(function(Ce,Oe){return Ce-Oe});if(Je[0]){var Ke=getTileLevel(Je[0]);if(Ke)for(var De=Ke-1;De>=0;De--)Je.unshift(512*Math.pow(2,De));Ne=Je}}else if(Array.isArray(K.tiles)&&(Ne=K.tiles.slice(),typeof Ne[0]=="number")){for(var Ye=Ne[0];--Ye>=0;)Ne.unshift(Ye);Ne=Ne.sort(function(Ce,Oe){return Ce-Oe}).map(function(Ce){return 512*Math.pow(2,Ce)})}if(Ne){for(var Ve=[],nt=0,qe=Ne;nt<qe.length;nt++){var ge=qe[nt];if(typeof ge=="number"){var Qe=getTileLevel(ge);if(typeof Qe!="number")continue;var Ie=getImageSizeFromURL(pe.front);if(!Ie)continue;if(ge>Ie){var Se=replaceImageSize(pe.up,ge),Be=replaceImageSize(pe.down,ge),Le=replaceImageSize(pe.right,ge),ot=replaceImageSize(pe.left,ge),$e=replaceImageSize(pe.front,ge),tt=replaceImageSize(pe.back,ge);Ve.push(Object.freeze({level:Qe,size:ge,scale:1,up:Se,down:Be,right:Le,left:ot,front:$e,back:tt}))}else{var Se=pe.up,Be=pe.down,Le=pe.right,ot=pe.left,$e=pe.front,tt=pe.back;Ve.push(Object.freeze({level:Qe,size:Ie,scale:ge/Ie,up:Se,down:Be,right:Le,left:ot,front:$e,back:tt}))}}else{var Qe=ge.level;if(typeof Qe!="number")continue;var Re=ge.size;if(typeof Re!="number")continue;var Se=panoURL(I,ee,ge.up,Z,t),Be=panoURL(I,ee,ge.down,Z,t),Le=panoURL(I,ee,ge.right,Z,t),ot=panoURL(I,ee,ge.left,Z,t),$e=panoURL(I,ee,ge.front,Z,t),tt=panoURL(I,ee,ge.back,Z,t);Ve.push(Object.freeze({level:Qe,size:Re,scale:(R=ge.scale)!==null&&R!==void 0?R:1,up:Se,down:Be,right:Le,left:ot,front:$e,back:tt}))}}Ve=sortTile(Ve),Object.freeze(Ve),Object.defineProperty(pe,"tiles",{configurable:!1,get:function(){return Ve}})}Object.freeze(pe),Object.defineProperty(te,"images",{configurable:!1,get:function(){return pe}});var Xe=new THREE__namespace.Vector3;if(K.position instanceof THREE__namespace.Vector3)Xe.copy(K.position);else if(Array.isArray(K.position))Xe.fromArray(K.position);else return"break";Object.freeze(Xe),Object.defineProperty(te,"position",{configurable:!1,get:function(){return Xe}});var rt=new THREE__namespace.Vector3;if(K.standingPosition instanceof THREE__namespace.Vector3)rt.copy(K.standingPosition);else if(Array.isArray(K.standingPosition))rt.fromArray(K.standingPosition);else if(K.standing_position instanceof THREE__namespace.Vector3)rt.copy(K.standing_position);else if(Array.isArray(K.standing_position))rt.fromArray(K.standing_position);else return"break";Object.freeze(rt),Object.defineProperty(te,"standingPosition",{configurable:!1,get:function(){return rt}});var Ge=new THREE__namespace.Quaternion;if(K.quaternion instanceof THREE__namespace.Quaternion)Ge.copy(K.quaternion);else if(Array.isArray(K.quaternion))Ge.fromArray(K.quaternion);else if(K.quaternion){var st=K.quaternion,ct=st.x,je=st.y,Fe=st.z,We=st.w;Ge.set(ct,je,Fe,We)}else return"break";Object.freeze(Ge),Object.defineProperty(te,"quaternion",{configurable:!1,get:function(){return Ge}});var at=0;isNumber(K.floorIndex)?at=K.floorIndex:isNumber(K.floor_index)?at=K.floor_index:isNumber(K.floor)&&(at=K.floor),Object.defineProperty(te,"floorIndex",{configurable:!1,get:function(){return at}});var Pe;K.video&&(Pe={},typeof K.video.source=="string"&&(Pe.source=K.video.source),K.video.matrix instanceof THREE__namespace.Matrix4?Pe.matrix=K.video.matrix.clone():Array.isArray(K.video.matrix)&&(Pe.matrix=new THREE__namespace.Matrix4().fromArray(K.video.matrix)),K.video.size instanceof THREE__namespace.Vector2?Pe.size=K.video.size.clone():Array.isArray(K.video.size)&&(Pe.size=new THREE__namespace.Vector2().fromArray(K.video.size)),Pe.source&&Pe.matrix&&Pe.size&&(te.video=Pe)),Object.freeze(Pe),Object.defineProperty(te,"video",{configurable:!1,get:function(){return Pe}}),Array.isArray(K.accessibleNodes)?(te.accessibleNodes=K.accessibleNodes.slice(),te.accessibleIds=K.accessibleNodes.map(function(Ce){return panoStringify({workCode:e.workCode,panoIndex:Ce})})):Array.isArray(K.accessible_nodes)&&(te.accessibleNodes=K.accessible_nodes.slice(),te.accessibleIds=K.accessible_nodes.map(function(Ce){return panoStringify({workCode:e.workCode,panoIndex:Ce})})),Array.isArray(K.visibleNodes)?(te.visibleNodes=K.visibleNodes.slice(),te.visibleIds=K.visibleNodes.map(function(Ce){return panoStringify({workCode:e.workCode,panoIndex:Ce})})):Array.isArray(K.visible_nodes)&&(te.visibleNodes=K.visible_nodes.slice(),te.visibleIds=K.visible_nodes.map(function(Ce){return panoStringify({workCode:e.workCode,panoIndex:Ce})})),re[Z]=te},ie=0;ie<n.observers.length;ie++){var ue=se(ie);if(ue==="break")break}}for(var fe=function(Z){if(Z.accessibleIds){var ye=Z.accessibleIds.filter(function(ee){return oe.has(ee)});Object.freeze(ye),Object.defineProperty(Z,"accessibleIds",{configurable:!1,get:function(){return ye}})}else{for(var te=[],K=0;K<re.length;K++)re[K]!==Z&&(Math.abs(re[K].position.y-Z.position.y)>3||re[K].position.distanceTo(Z.position)>10||te.push(re[K].panoId));Object.freeze(te),Object.defineProperty(Z,"accessibleIds",{configurable:!1,get:function(){return te}})}if(Z.accessibleNodes){var xe=Z.accessibleNodes.filter(function(ee){return ae.has(ee)});Object.freeze(xe),Object.defineProperty(Z,"accessibleNodes",{configurable:!1,get:function(){return xe}})}else{for(var de=[],K=0;K<re.length;K++)re[K]!==Z&&(Math.abs(re[K].position.y-Z.position.y)>3||re[K].position.distanceTo(Z.position)>10||de.push(re[K].panoIndex));Object.freeze(de),Object.defineProperty(Z,"accessibleNodes",{configurable:!1,get:function(){return de}})}if(Z.visibleIds){var me=Z.visibleIds.filter(function(ee){return oe.has(ee)});Object.freeze(me),Object.defineProperty(Z,"visibleIds",{configurable:!1,get:function(){return me}})}else{var Ae=Z.accessibleIds.slice();Object.freeze(Ae),Object.defineProperty(Z,"visibleIds",{configurable:!1,get:function(){return Ae}})}if(Z.visibleNodes){var he=Z.visibleNodes.filter(function(ee){return ae.has(ee)});Object.freeze(he),Object.defineProperty(Z,"visibleNodes",{configurable:!1,get:function(){return he}})}else{var ce=Z.accessibleNodes.slice();Object.freeze(ce),Object.defineProperty(Z,"visibleNodes",{configurable:!1,get:function(){return ce}})}},ne=0,Te=re;ne<Te.length;ne++){var _e=Te[ne];fe(_e)}Object.freeze(re),Object.defineProperty(e,"observers",{configurable:!1,get:function(){return re}})}if(w instanceof Error)return w;if(n.initial){if((n.initial.mode==="Panorama"&&e.observers.length===0||n.initial.mode==="Floorplan"||n.initial.mode==="Topview"||n.initial.mode==="Model"||n.initial.mode==="Mapview"||n.initial.mode==="DepthPanorama")&&(e.initial.mode=n.initial.mode),isNumber(n.initial.latitude)&&(e.initial.latitude=n.initial.latitude),isNumber(n.initial.longitude)?e.initial.longitude=n.initial.longitude:isNumber(n.initial.heading)&&(e.initial.longitude=headingToLongitude(n.initial.heading)),isNumber(n.initial.fov)&&(e.initial.fov=n.initial.fov),e.observers.length>0){var ve=void 0;isNumber(n.initial.panoIndex)?ve=n.initial.panoIndex:isNumber(n.initial.pano_index)?ve=n.initial.pano_index:isNumber(n.initial.pano)&&(ve=n.initial.pano),typeof ve=="number"&&(ve=clamp$1(ve,0,e.observers.length-1),e.initial.panoIndex=ve)}if(isNumber(n.initial.distance)&&(e.initial.distance=n.initial.distance),Array.isArray(n.initial.offset)){var Me=[0,0,0].map(function(Z,te){var K=Number(n.initial.offset[te]);return isNaN(K)||!isFinite(K)?0:K});e.initial.offset=new THREE__namespace.Vector3().fromArray(Me)}else typeof n.initial.offset=="object"&&typeof n.initial.offset.x=="number"&&typeof n.initial.offset.y=="number"&&typeof n.initial.offset.z=="number"&&(e.initial.offset=new THREE__namespace.Vector3(n.initial.offset.x,n.initial.offset.y,n.initial.offset.z));!e.initial.mode&&typeof e.initial.panoIndex=="number"&&(e.initial.mode="Panorama")}return w instanceof Error?w:(workRawMapping.set(e,{works:C,options:S}),e)}function parseNull(n,t){return t.issuer="null",deepFreeze(t),workRawMapping.set(t,{works:["null"],options:"{}"}),t}function parsePanoWork(n,t){var e;t.issuer="null",t.allowHosts=["*"],t.workCode=(e=n.code)!==null&&e!==void 0?e:createUuid();var r=[n.size],o=[],s=getTileLevel(r[0]);if(s)for(var u=s-1;u>=0;u--)r.unshift(512*Math.pow(2,u));for(var l=0,c=r;l<c.length;l++){var f=c[l],d=getTileLevel(f);d&&o.push({level:d,size:n.size,scale:f/n.size,up:n.up,down:n.down,right:n.right,left:n.left,front:n.front,back:n.back})}var p={up:n.up,down:n.down,right:n.right,left:n.left,front:n.front,back:n.back,sizeList:r};o&&(p.tiles=o);var v={accessibleIds:[],accessibleNodes:[],active:!0,floorIndex:0,images:p,index:0,loadable:!1,pano:{workCode:t.workCode,panoIndex:0},panoId:"".concat(t.workCode,"[0]"),panoIndex:0,position:new THREE__namespace.Vector3(0,1.5,0),quaternion:new THREE__namespace.Quaternion(0,1,0,0),standingPosition:new THREE__namespace.Vector3(0,0,0),visibleIds:[],visibleNodes:[],work:t};return t.observers=[v],deepFreeze(t),workRawMapping.set(t,{works:[JSON.stringify(n)],options:"{}"}),t}function parseWork(n,t){typeof n=="string"&&n.trim()[0]==="{"&&(n=JSON.parse(n));var e=workRawMapping.get(n);if(e){if(t&&!equal(JSON.parse(e.options),t))throw new Error("[PARSE FAILED]: work is parsed with different options.");return n}else try{return new Work(n,t!=null?t:{})}catch(r){throw new Error("[PARSE FAILED]: "+r.message+`
|
|
1039
1039
|
Error work input:
|
|
1040
|
-
`+JSON.stringify(n))}}function createWorks(n){for(var t={},e=[],r={},o=0,s=n;o<s.length;o++){var u=s[o],l=t[u.workCode];l||(l=t[u.workCode]=new THREE__namespace.Matrix4().copy(u.transform));for(var c=0,f=u.observers;c<f.length;c++){var d=f[c],p={isResolved:!0,active:d.active,accessibleIds:d.accessibleIds,visibleIds:d.visibleIds,accessibleNodes:d.accessibleNodes,visibleNodes:d.visibleNodes,floorIndex:d.floorIndex,images:d.images,index:d.index,panoIndex:d.panoIndex,loadable:d.loadable,panoId:d.panoId,pano:d.pano,work:d.work,derivedId:d.derivedId,video:d.video,position:new THREE__namespace.Vector3().copy(d.position).applyMatrix4(l),standingPosition:new THREE__namespace.Vector3().copy(d.standingPosition).applyMatrix4(l),quaternion:new THREE__namespace.Quaternion().setFromRotationMatrix(scratchMatrix4$1.makeRotationFromQuaternion(d.quaternion).premultiply(l))};Object.freeze(p),e.push(p),r[p.panoId]=p}}Object.freeze(e);for(var v=n.slice(),A={},g=0,h=v;g<h.length;g++){var u=h[g];A[u.workCode]=u}return Object.freeze(Object.assign(v,{get initial(){return v.length>0?v[0].initial:{work:{}}},get resolvedObservers(){return e},getWork:function(y){return A[y]},getResolvedObserver:function(y){var m,E;return isPanoId(y)?r[y]:typeof y=="number"?r[panoStringify({workCode:(E=(m=n[0])===null||m===void 0?void 0:m.workCode)!==null&&E!==void 0?E:"",panoIndex:y})]:r[panoStringify(y)]},update:function(){for(var y=0,m=v;y<m.length;y++){var E=m[y],b=E.transform,T=t[E.workCode];T?T.equals(b)||(T.copy(b),needsUpdateWorkCodeSet.add(E.workCode)):(t[E.workCode]=new THREE__namespace.Matrix4().copy(b),needsUpdateWorkCodeSet.add(E.workCode))}if(needsUpdateWorkCodeSet.size>0){for(var _=0,R=e;_<R.length;_++){var S=R[_];if(needsUpdateWorkCodeSet.has(S.work.workCode)){var C=S.work.observers[S.index],B=S.work.transform;S.position.copy(C.position).applyMatrix4(B),S.standingPosition.copy(C.standingPosition).applyMatrix4(B),S.quaternion.setFromRotationMatrix(scratchMatrix4$1.makeRotationFromQuaternion(C.quaternion).premultiply(B))}}needsUpdateWorkCodeSet.clear()}}}))}var fetcherMap=new Map;function getFetcher(n){var t=fetcherMap.get(n);if(t)return t;throw new Error("fetcher never registered.")}function registerFetcher(n,t){return fetcherMap.set(n,t)}var BufferGeometryUtils={computeTangents:function(n){var t=n.index,e=n.attributes;if(t===null||e.position===void 0||e.normal===void 0||e.uv===void 0){console.warn("THREE.BufferGeometry: Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");return}var r=t.array,o=e.position.array,s=e.normal.array,u=e.uv.array,l=o.length/3;e.tangent===void 0&&n.setAttribute("tangent",new THREE__namespace.BufferAttribute(new Float32Array(4*l),4));for(var c=e.tangent.array,f=[],d=[],p=0;p<l;p++)f[p]=new THREE__namespace.Vector3,d[p]=new THREE__namespace.Vector3;var v=new THREE__namespace.Vector3,A=new THREE__namespace.Vector3,g=new THREE__namespace.Vector3,h=new THREE__namespace.Vector2,y=new THREE__namespace.Vector2,m=new THREE__namespace.Vector2,E=new THREE__namespace.Vector3,b=new THREE__namespace.Vector3;function T(q,z,Q){v.fromArray(o,q*3),A.fromArray(o,z*3),g.fromArray(o,Q*3),h.fromArray(u,q*2),y.fromArray(u,z*2),m.fromArray(u,Q*2);var G=A.x-v.x,X=g.x-v.x,$=A.y-v.y,W=g.y-v.y,oe=A.z-v.z,ae=g.z-v.z,re=y.x-h.x,j=m.x-h.x,se=y.y-h.y,ie=m.y-h.y,ue=1/(re*ie-j*se);E.set((ie*G-se*X)*ue,(ie*$-se*W)*ue,(ie*oe-se*ae)*ue),b.set((re*X-j*G)*ue,(re*W-j*$)*ue,(re*ae-j*oe)*ue),f[q].add(E),f[z].add(E),f[Q].add(E),d[q].add(b),d[z].add(b),d[Q].add(b)}var _=n.groups;_.length===0&&(_=[{start:0,count:r.length}]);for(var p=0,R=_.length;p<R;++p)for(var S=_[p],C=S.start,B=S.count,L=C,M=C+B;L<M;L+=3)T(r[L+0],r[L+1],r[L+2]);var w=new THREE__namespace.Vector3,H=new THREE__namespace.Vector3,O=new THREE__namespace.Vector3,I=new THREE__namespace.Vector3,N,k,U;function D(q){O.fromArray(s,q*3),I.copy(O),k=f[q],w.copy(k),w.sub(O.multiplyScalar(O.dot(k))).normalize(),H.crossVectors(I,k),U=H.dot(d[q]),N=U<0?-1:1,c[q*4]=w.x,c[q*4+1]=w.y,c[q*4+2]=w.z,c[q*4+3]=N}for(var p=0,R=_.length;p<R;++p)for(var S=_[p],C=S.start,B=S.count,L=C,M=C+B;L<M;L+=3)D(r[L+0]),D(r[L+1]),D(r[L+2])},mergeBufferGeometries:function(n,t){for(var e=n[0].index!==null,r=new Set(Object.keys(n[0].attributes)),o=new Set(Object.keys(n[0].morphAttributes)),s={},u={},l=new THREE__namespace.BufferGeometry,c=0,f=0;f<n.length;++f){var d=n[f];if(e!==(d.index!==null))return null;for(var p in d.attributes){if(!r.has(p))return null;s[p]===void 0&&(s[p]=[]),s[p].push(d.attributes[p])}for(var p in d.morphAttributes){if(!o.has(p))return null;u[p]===void 0&&(u[p]=[]),u[p].push(d.morphAttributes[p])}if(l.userData.mergedUserData=l.userData.mergedUserData||[],l.userData.mergedUserData.push(d.userData),t){var v;if(e)v=d.index.count;else if(d.attributes.position!==void 0)v=d.attributes.position.count;else return null;l.addGroup(c,v,f),c+=v}}if(e){for(var A=0,g=[],f=0;f<n.length;++f){for(var h=n[f].index,y=0;y<h.count;++y)g.push(h.getX(y)+A);A+=n[f].attributes.position.count}l.setIndex(g)}for(var p in s){var m=this.mergeBufferAttributes(s[p]);if(!m)return null;l.setAttribute(p,m)}for(var p in u){var E=u[p][0].length;if(E===0)break;l.morphAttributes=l.morphAttributes||{},l.morphAttributes[p]=[];for(var f=0;f<E;++f){for(var b=[],y=0;y<u[p].length;++y)b.push(u[p][y][f]);var T=this.mergeBufferAttributes(b);if(!T)return null;l.morphAttributes[p].push(T)}}return l},mergeBufferAttributes:function(n){for(var t,e,r,o=0,s=0;s<n.length;++s){var u=n[s];if(u.isInterleavedBufferAttribute||(t===void 0&&(t=u.array.constructor),t!==u.array.constructor)||(e===void 0&&(e=u.itemSize),e!==u.itemSize)||(r===void 0&&(r=u.normalized),r!==u.normalized))return null;o+=u.array.length}for(var l=new t(o),c=0,s=0;s<n.length;++s)l.set(n[s].array,c),c+=n[s].array.length;return new THREE__namespace.BufferAttribute(l,e,r)},interleaveAttributes:function(n){for(var t,e=0,r=0,o=0,s=n.length;o<s;++o){var u=n[o];if(t===void 0&&(t=u.array.constructor),t!==u.array.constructor)return console.warn("AttributeBuffers of different types cannot be interleaved"),null;e+=u.array.length,r+=u.itemSize}for(var l=new THREE__namespace.InterleavedBuffer(new t(e),r),c=0,f=[],d=["getX","getY","getZ","getW"],p=["setX","setY","setZ","setW"],v=0,s=n.length;v<s;v++){var u=n[v],A=u.itemSize,g=u.count,h=new THREE__namespace.InterleavedBufferAttribute(l,A,c,u.normalized);f.push(h),c+=A;for(var y=0;y<g;y++)for(var m=0;m<A;m++)h[p[m]](y,u[d[m]](y))}return f},estimateBytesUsed:function(n){var t=0;for(var e in n.attributes){var r=n.getAttribute(e);t+=r.count*r.itemSize*r.array.BYTES_PER_ELEMENT}var o=n.getIndex();return t+=o?o.count*o.itemSize*o.array.BYTES_PER_ELEMENT:0,t},mergeVertices:function(n,t){t===void 0&&(t=1e-4),t=Math.max(t,Number.EPSILON);for(var e={},r=n.getIndex(),o=n.getAttribute("position"),s=r?r.count:o.count,u=0,l=Object.keys(n.attributes),c={},f={},d=[],p=["getX","getY","getZ","getW"],v=0,A=l.length;v<A;v++){var g=l[v];c[g]=[];var h=n.morphAttributes[g];h&&(f[g]=new Array(h.length).fill().map(function(){return[]}))}for(var y=Math.log10(1/t),m=Math.pow(10,y),v=0;v<s;v++){for(var E=r?r.getX(v):v,b="",T=0,A=l.length;T<A;T++)for(var g=l[T],_=n.getAttribute(g),R=_.itemSize,S=0;S<R;S++)b+="".concat(~~(_[p[S]](E)*m),",");if(b in e)d.push(e[b]);else{for(var T=0,A=l.length;T<A;T++)for(var g=l[T],_=n.getAttribute(g),h=n.morphAttributes[g],R=_.itemSize,C=c[g],B=f[g],S=0;S<R;S++){var L=p[S];if(C.push(_[L](E)),h)for(var M=0,w=h.length;M<w;M++)B[M].push(h[M][L](E))}e[b]=u,d.push(u),u++}}for(var H=n.clone(),v=0,A=l.length;v<A;v++){var g=l[v],O=n.getAttribute(g),I=new O.array.constructor(c[g]),_=new THREE__namespace.BufferAttribute(I,O.itemSize,O.normalized);if(H.setAttribute(g,_),g in f)for(var T=0;T<f[g].length;T++){var N=n.morphAttributes[g][T],I=new N.array.constructor(f[g][T]),k=new THREE__namespace.BufferAttribute(I,N.itemSize,N.normalized);H.morphAttributes[g][T]=k}}return H.setIndex(d),H}};function isThirdPersonMode(n){switch(n){case"Floorplan":return!0;case"Mapview":return!0;default:return!1}}function isFristPersonMode(n){switch(n){case"Panorama":return!0;case"VRPanorama":return!0;case"XRPanorama":return!0;case"Model":return!0;default:return!1}}var scratchVector3=new THREE__namespace.Vector3,scratchSphere=new THREE__namespace.Sphere,scratchMatrix4=new THREE__namespace.Matrix4,scratchMatrix4Inverse=new THREE__namespace.Matrix4,scratchBoundingBox=new THREE__namespace.Box3,ROTATE_X_90_MATRIX=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1]),ROTATE_X_90_MATRIX_INVERSE=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]),DEFAULT_BOUNDING=new THREE__namespace.Box3(new THREE__namespace.Vector3(-.5,-.5,-.5),new THREE__namespace.Vector3(.5,.5,.5));function getEcefToEnuMatrixFromUpAxis(n,t,e){switch(n){case"Z":break;case"Y":e.copy(ROTATE_X_90_MATRIX_INVERSE);break;case"-Y":e.copy(ROTATE_X_90_MATRIX);break;case"WGS84":case"GCJ02":case"BD09":getEcefToEnuMatrix(t,e);break;default:e.identity();break}return e}function getExt(n){var t=/([0-9a-z\.\_\-]+)([\?\#].*)?$/i.exec(n);if(t){var e=String(t[1]).trim().split(".").slice(1).reverse()[0];if(e)return e}return""}var ModelViewLayer=function(){function n(t,e){this.scene=t,this.error=e,t.viewLayer=this}return Object.defineProperty(n.prototype,"name",{get:function(){return this.scene.name},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"type",{get:function(){return this.scene.type},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"upAxis",{get:function(){return this.scene.upAxis},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"groundHeight",{get:function(){return this.scene.groundHeight},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"model",{get:function(){return this.scene.model},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"coordinates",{get:function(){scratchVector3.setScalar(0);var t=this.scene.localToLla(scratchVector3),e=t.x,r=t.y;return[e,r].map(function(o){return(o/Math.PI*180).toFixed(6)}).join(",")},enumerable:!1,configurable:!0}),n.prototype.getTransformMatrix4=function(t){return t===void 0&&(t=new THREE__namespace.Matrix4),t.copy(this.scene.coordinateTransform.ecefToLocalMatrix),this.scene&&t.premultiply(this.scene.matrixWorld),t},n.prototype.coordinatesToWorldPoint=function(t){var e=new THREE__namespace.Vector3(t.latitude,t.longitude,t.altitude);return this.scene.llaToWorld(e)},n.prototype.worldPointToCoordinates=function(t){return scratchVector3.copy(t),this.scene.worldToLla(scratchVector3),{latitude:scratchVector3.x,longitude:scratchVector3.y,altitude:scratchVector3.z}},n}(),Model=function(n){__extends(t,n);function t(e){e===void 0&&(e={});var r,o,s,u=n.call(this)||this;return u.name="",u.onError=(r=e.onError)!==null&&r!==void 0?r:noop$1,u.onShownFloorChange=(o=e.onShownFloorChange)!==null&&o!==void 0?o:noop$1,u.onLoad=(s=e.onLoad)!==null&&s!==void 0?s:noop$1,u.work=null,u.viewLayers=[],u.bounding=new THREE__namespace.Box3(new THREE__namespace.Vector3,new THREE__namespace.Vector3),u.floorLength=0,u.textureOptions={},u.refined=!1,u.refineProgress=[0,0],u.loaded=!1,u.matrixAutoUpdate=!1,u.needsRender=!0,u.autoRefine=!0,u.materialVersion=0,u.materialParameters=__assign({},defaultPbmParameters),u.cacheCameras=[],u.disposed=!1,u}return Object.defineProperty(t.prototype,"empty",{get:function(){return this.viewLayers.length===0},enumerable:!1,configurable:!0}),t.prototype.getMaterial=function(){return __assign({},this.materialParameters)},t.prototype.setMaterial=function(e){var r=this.materialParameters.shownFloorIndex,o=updatePBMParameters(this.materialParameters,e);if(o){var s=this.materialParameters.shownFloorIndex;r!==s&&this.onShownFloorChange(s),this.materialVersion++,this.needsRender=!0}},Object.defineProperty(t.prototype,"brightness",{get:function(){return this.materialParameters.brightness},set:function(e){this.setMaterial({brightness:typeof e=="number"?e:1})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shownFloorIndex",{get:function(){return this.materialParameters.shownFloorIndex},set:function(e){this.setMaterial({shownFloorIndex:e})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shownFloor",{get:function(){return this.shownFloorIndex===-1?null:this.shownFloorIndex},set:function(e){this.shownFloorIndex=e===null?-1:e},enumerable:!1,configurable:!0}),t.prototype.show=function(e){this.shownFloor=e!=null?e:null},Object.defineProperty(t.prototype,"clippers",{get:function(){return this.materialParameters.clippers},set:function(e){this.setMaterial({clippers:e})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"customShaders",{get:function(){return this.materialParameters.customShaders},set:function(e){this.setMaterial({customShaders:e})},enumerable:!1,configurable:!0}),t.prototype.getEdgesBySphere=function(e,r){r===void 0&&(r=30/180*Math.PI);for(var o=Math.cos(r),s=[],u=0,l=this.children;u<l.length;u++){var c=l[u];c instanceof Tile3DModel&&c.tileset.selectedTiles.forEach(function(f){var d,p,v;if(!(f.boundingVolume&&f.boundingVolume.distanceToPoint(e.center)>e.radius)){var A=(p=(d=f.content)===null||d===void 0?void 0:d.data)===null||p===void 0?void 0:p.object;if(A&&A.visible){var g=[];if(A.traverseVisible(function(Q){if(Q instanceof THREE__namespace.Mesh){var G=bvhMeshMap.get(Q);if(G){scratchMatrix4.copy(Q.matrixWorld),scratchMatrix4Inverse.getInverse(scratchMatrix4),scratchSphere.copy(e).applyMatrix4(scratchMatrix4Inverse);var X=G.trianglesInSphere(scratchSphere.center,scratchSphere.radius),$=new THREE__namespace.BufferGeometry;$.setAttribute("position",new THREE__namespace.BufferAttribute(X,3)),$.applyMatrix4(Q.matrixWorld),$=BufferGeometryUtils.mergeVertices($,.01),g.push($)}}}),g.length===0)return;for(var h=["a","b","c"],y=BufferGeometryUtils.mergeBufferGeometries(g,!1),m=y.getAttribute("position").array,E=((v=y.getIndex())===null||v===void 0?void 0:v.array)||[],b=[],T=[],_=0,R=m.length;_<R;_+=3){var S=new THREE__namespace.Vector3(m[_],m[_+1],m[_+2]);b.push(S)}for(var _=0,R=E.length;_<R;_+=3){var C=E[_],B=E[_+1],L=E[_+2],M=new THREE__namespace.Vector3().crossVectors(b[B].clone().sub(b[C]),b[L].clone().sub(b[C])).normalize();T.push({a:C,b:B,c:L,normal:M})}for(var w={},_=0,R=T.length;_<R;_++)for(var H=T[_],O=0;O<3;O++){var I=H[h[O]],N=H[h[(O+1)%3]],k=[Math.min(I,N),Math.max(I,N)],U=k[0]+"-"+k[1];w[U]===void 0?w[U]={index1:k[0],index2:k[1],face1:_}:w[U].face2=_}for(var U in w){var D=w[U];if(D.face2===void 0||T[D.face1].normal.dot(T[D.face2].normal)<=o){var q=b[D.index1],z=b[D.index2];s.push(new THREE__namespace.Line3(q,z))}}b.length=0,T.length=0}}})}return s},t.prototype.intersectRaycaster=function(e,r,o){r===void 0&&(r=null),o===void 0&&(o=!0);for(var s=[],u=0,l=this.children.length;u<l;u++){var c=this.children[u];c.visible&&c instanceof Tile3DModel&&c.intersectRaycaster(e,!1,s)}return r!=null&&(s=s.filter(function(f){return f.floor===r})),this.getMaterial().pointBack==="HIDDEN"&&(s=s.filter(function(f){return!(f.object instanceof PBMPointCloud&&f.face&&f.face.normal.angleTo(e.ray.direction)<Math.PI/2)})),o&&s.sort(function(f,d){return f.distance-d.distance}),s},t.prototype.load=function(e,r){var o,s=this,u,l,c,f,d;if(r===void 0&&(r={}),this.work=e,this.name=this.work.workCode,!e.model)return Promise.resolve();for(var p=e.model,v=0,A=0,g=e.observers;A<g.length;A++){var h=g[A];v=Math.max(v,h.floorIndex)}this.floorLength=v+1;for(var y=!1,m=[],E=function(W){var oe=W.tileset,ae=W.upAxis,re=W.name,j=W.type;j==="mesh"&&(y=!0);var se=oe.split("#"),ie=se[0],ue=se[1],fe=(u=(ue||ie).split("?")[1])!==null&&u!==void 0?u:"",ne=typeof r["3d-tiles"]=="function"?r["3d-tiles"](W):(l=r["3d-tiles"])!==null&&l!==void 0?l:{},Te=getFetcher(e).ajax(oe,{responseType:"text"}).then(function(_e){var ve,Me,Z=oe?oe.slice(0,oe.lastIndexOf("/")+1):"",te=normalizeTilesetHeader(JSON.parse(_e.body),Z),K=te.root,ye=te.rootMeta,de=ye===void 0?{}:ye;de.upAxis&&de.upAxis!==ae&&(ae=de.upAxis),"lodVersion"in te&&(ae="-Y","floorInfo"in te&&(te.properties=te.properties||{},te.properties.floorInfo=te.floorInfo.map(function(Ae){return{ground:-Ae.ground,height:Ae.height}}),delete te.floorInfo),te.asset.tilesetVersion=String(te.lodVersion),delete te.lodVersion);var xe=K.boundingVolume?makeBoundingVolume(K.boundingVolume):void 0;xe&&K.transform&&xe.applyMatrix4(scratchMatrix4.fromArray(K.transform));var ge=null,me=new THREE__namespace.Matrix4,ce=new THREE__namespace.Matrix4;de.coordinate?(ge=de.coordinate.ground_height,me.fromArray(de.coordinate.pose_ecef_to_enu),ce.fromArray(de.coordinate.pose_enu_to_ecef)):(xe?xe.getCenter(scratchVector3):scratchVector3.setScalar(0),getEcefToEnuMatrixFromUpAxis(ae,scratchVector3,me),ce.getInverse(me));var he=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX),ee=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX_INVERSE),pe=new THREE__namespace.Matrix4().premultiply(me).premultiply(he),Re=new THREE__namespace.Matrix4().getInverse(pe),we;if(ne.viewerRequestVolume){var Ue=isBoundingVolume(ne.viewerRequestVolume)?ne.viewerRequestVolume:makeBoundingVolume(ne.viewerRequestVolume);Ue.applyMatrix4(Re),we=Ue.toJson()}te.root={refine:(ve=K.refine)!==null&&ve!==void 0?ve:"REPLACE",geometricError:K.geometricError,transform:pe.toArray(),boundingVolume:xe?xe.toJson():void 0,viewerRequestVolume:we,children:[K]};var be=new Tile3DModel(s,te,{name:re,light:(Me=r.light)!==null&&Me!==void 0?Me:!1,type:j,upAxis:ae,url:oe,referer:oe,search:fe,fetcher:getFetcher(e),groundHeight:ge,coordinateTransform:{localToEnuMatrix:ee,enuToLocalMatrix:he,enuToEcefMatrix:ce,ecefToEnuMatrix:me,localToEcefMatrix:Re,ecefToLocalMatrix:pe}});return be.matrix.copy(e.transform),be.matrix.decompose(be.position,be.quaternion,be.scale),be.matrixWorldNeedsUpdate=!0,Object.assign(be.maxMemoryUsage,be.getRecommendProps()),typeof ne.debug!="undefined"&&(be.debug=ne.debug),typeof ne.minLevelOfDetail!="undefined"&&(be.minLevelOfDetail=ne.minLevelOfDetail),typeof ne.maxLevelOfDetail!="undefined"&&(be.maxLevelOfDetail=ne.maxLevelOfDetail),typeof ne.minGeometricError!="undefined"&&(be.minGeometricError=ne.minGeometricError),typeof ne.maxGeometricError!="undefined"&&(be.maxGeometricError=ne.maxGeometricError),typeof ne.skipLevelOfDetail!="undefined"&&(be.skipLevelOfDetail=ne.skipLevelOfDetail),typeof ne.mostDetail!="undefined"&&(be.mostDetail=ne.mostDetail),typeof ne.loadSiblings!="undefined"&&(be.loadSiblings=ne.loadSiblings),typeof ne.loadAll!="undefined"&&(be.loadAll=ne.loadAll),typeof ne.maxMemoryUsage!="undefined"&&(be.maxMemoryUsage=ne.maxMemoryUsage),typeof ne.maxRequests!="undefined"&&(be.maxRequests=ne.maxRequests),typeof ne.requestOrder!="undefined"&&(be.requestOrder=ne.requestOrder),typeof ne.maxScreenSpaceError!="undefined"&&(be.maxScreenSpaceError=ne.maxScreenSpaceError),(ne.showLayers===!1||Array.isArray(ne.showLayers)&&ne.showLayers.indexOf(re)===-1)&&(be.visible=!1),new ModelViewLayer(be,null)});m.push(Te.catch(function(_e){var ve;s.onError(_e);var Me=new THREE__namespace.Matrix4,Z=new THREE__namespace.Matrix4,te=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX),K=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX_INVERSE),ye=new THREE__namespace.Matrix4().premultiply(Me).premultiply(te),de=new THREE__namespace.Matrix4().getInverse(ye),xe=oe?oe.slice(0,oe.lastIndexOf("/")+1):"",ge;if(ne.viewerRequestVolume){var me=isBoundingVolume(ne.viewerRequestVolume)?ne.viewerRequestVolume:makeBoundingVolume(ne.viewerRequestVolume);me.applyMatrix4(de),ge=me.toJson()}var ce=normalizeTilesetHeader({asset:{version:"0.0"},geometricError:0,viewerRequestVolume:ge,root:{geometricError:0}},xe),he=new Tile3DModel(s,ce,{name:re,light:(ve=r.light)!==null&&ve!==void 0?ve:!1,type:j,upAxis:ae,url:oe,referer:oe,search:fe,fetcher:getFetcher(e),groundHeight:null,coordinateTransform:{localToEnuMatrix:K,enuToLocalMatrix:te,enuToEcefMatrix:Z,ecefToEnuMatrix:Me,localToEcefMatrix:de,ecefToLocalMatrix:ye},onError:s.onError});return he.matrix.copy(e.transform),he.matrix.decompose(he.position,he.quaternion,he.scale),he.matrixWorldNeedsUpdate=!0,(ne.showLayers===!1||Array.isArray(ne.showLayers)&&ne.showLayers.indexOf(re)===-1)&&(he.visible=!1),new ModelViewLayer(he,_e)}))},b=0,T=p.layers;b<T.length;b++){var _=T[b];E(_)}if(!y&&p.file){var R=p.file,S=p.textureBase,C=p.textures,B="fallback",L="mesh",M="Z",w="",_={name:B,type:L,upAxis:M,tileset:w},H=typeof r["3d-tiles"]=="function"?r["3d-tiles"](_):(c=r["3d-tiles"])!==null&&c!==void 0?c:{},O=getExt(R)||"at3d",I=new THREE__namespace.Matrix4,N=new THREE__namespace.Matrix4,k=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX),U=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX_INVERSE);getEcefToEnuMatrixFromUpAxis(M,scratchVector3.setScalar(0),I),N.getInverse(I);var D=new THREE__namespace.Matrix4().premultiply(I).premultiply(k),q=new THREE__namespace.Matrix4().getInverse(D),z=void 0;if(H.viewerRequestVolume){var Q=isBoundingVolume(H.viewerRequestVolume)?H.viewerRequestVolume:makeBoundingVolume(H.viewerRequestVolume);Q.applyMatrix4(q),z=Q.toJson()}var G=normalizeTilesetHeader({asset:{version:"0.0"},geometricError:0,root:{refine:"REPLACE",geometricError:0,transform:D.toArray(),viewerRequestVolume:z,content:{uri:R},extras:(o={},o[O]={textureBaseUri:S,textureArray:C,textureOptions:(f=r.textureOptions)!==null&&f!==void 0?f:{}},o)}},""),X=new Tile3DModel(this,G,{name:B,light:(d=r.light)!==null&&d!==void 0?d:!1,type:L,upAxis:M,url:w,referer:R,fetcher:getFetcher(e),groundHeight:null,coordinateTransform:{localToEnuMatrix:U,enuToLocalMatrix:k,enuToEcefMatrix:N,ecefToEnuMatrix:I,localToEcefMatrix:q,ecefToLocalMatrix:D},onError:this.onError});X.matrix.copy(e.transform),X.matrix.decompose(X.position,X.quaternion,X.scale),X.matrixWorldNeedsUpdate=!0,(H.showLayers===!1||Array.isArray(H.showLayers)&&H.showLayers.indexOf(B)===-1)&&(X.visible=!1);var $=new ModelViewLayer(X,null);m.push(Promise.resolve($))}return Promise.all(m).then(function(W){for(var oe=0,ae=W;oe<ae.length;oe++){var re=ae[oe];if(s.disposed){re.scene.dispose();continue}s.viewLayers.push(re),s.add(re.scene)}})},t.prototype.update=function(e,r,o){if(this.children.length){var s=this.loaded;this.refined=this.work!==null,this.refineProgress[0]=0,this.refineProgress[1]=0,this.loaded=this.work!==null;for(var u=0,l=this.viewLayers;u<l.length;u++){var c=l[u],f=c.scene;f&&(this.work&&(f.cacheCameras=this.cacheCameras,this.autoRefine===!1?f.needsRefined=!1:isFristPersonMode(o)?f.needsRefined=this.materialParameters.modelAlpha===0||this.materialParameters.modelAlpha===1:f.needsRefined=!0,this.work.transform.equals(f.matrix)||(f.matrix.copy(this.work.transform),f.matrix.decompose(f.position,f.quaternion,f.scale),f.matrixWorldNeedsUpdate=!0)),f.update(e,r,o),f.needsRender===!0&&(f.needsRender=!1,this.needsRender=!0),f.refined===!1&&(this.refined=!1),this.refineProgress[0]+=f.refineProgress[0],this.refineProgress[1]+=f.refineProgress[1],f.loaded===!1&&(this.loaded=!1))}this.bounding.makeEmpty();for(var d=0,p=this.viewLayers;d<p.length;d++){var c=p[d],f=c.scene;f&&(f.boundingBox.isEmpty()||(scratchBoundingBox.copy(f.boundingBox).applyMatrix4(f.matrix),this.bounding.union(scratchBoundingBox)))}this.bounding.isEmpty()&&this.bounding.copy(DEFAULT_BOUNDING),s===!1&&this.loaded===!0&&this.onLoad()}else this.work&&!this.work.model?(this.refined=!0,this.refineProgress[0]=0,this.refineProgress[1]=0,this.loaded=!0):(this.refined=!1,this.refineProgress[0]=0,this.refineProgress[1]=0,this.loaded=!1),this.bounding.set(new THREE__namespace.Vector3,new THREE__namespace.Vector3)},t.prototype.dispose=function(){this.disposed=!0;for(var e;e=this.children[0];)e instanceof Tile3DModel&&e.dispose(),this.remove(e)},t}(THREE__namespace.Object3D);function createModels(){var n=new THREE__namespace.Box3,t=omit(defaultPbmParameters,["clippers","shownFloorIndex","brightness","customShaders"]),e=Object.assign([],{bounding:n,needsRender:!1,refined:!1,refineProgress:[0,0],loaded:!1,materialVersion:0,cacheCameras:[],autoUpdate:!0,intersectRaycaster:function(r,o,s){s===void 0&&(s=!0);var u;if(e.length===1)u=e[0].intersectRaycaster(r,o,s);else if(e.length===0)u=[];else{u=[];for(var l=0,c=e;l<c.length;l++){var f=c[l];if(f.visible){var d=f.intersectRaycaster(r,o,!1);d.length&&u.push.apply(u,d)}}s&&u.sort(function(p,v){return p.distance-v.distance})}return u},setMaterial:function(r){var o=updatePBMParameters(t,r);o&&(e.materialVersion++,e.needsRender=!0)},getMaterial:function(){return __assign({},t)},resetBrightness:function(){for(var r=0,o=e;r<o.length;r++){var s=o[r];s.setMaterial({brightness:1})}},update:function(r,o,s){e.refined=e.length>0,e.loaded=e.length>0,e.refineProgress[0]=0,e.refineProgress[1]=0,n.makeEmpty();for(var u=0,l=e.cacheCameras;u<l.length;u++){var c=l[u];c.updateMatrixWorld(!0),c.updateProjectionMatrix()}for(var f=0,d=0,p=e;d<p.length;d++){for(var v=p[d],A=0,g=v.viewLayers;A<g.length;A++){var h=g[A];h.scene.modelIndex=f++}v.setMaterial(t),v.cacheCameras=e.cacheCameras,v.autoRefine=this.autoUpdate,v.update(r,o,s),v.needsRender===!0&&(e.needsRender=!0,v.needsRender=!1),v.refined===!1&&(e.refined=!1),e.refineProgress[0]+=v.refineProgress[0],e.refineProgress[1]+=v.refineProgress[1],v.loaded===!1&&(e.loaded=!1),n.union(v.bounding)}for(var y=0,m=e;y<m.length;y++)for(var v=m[y],E=0,b=v.viewLayers;E<b.length;E++){var h=b[E];h.scene.modelsLoaded=e.loaded}n.isEmpty()&&n.copy(DEFAULT_BOUNDING)}});return e}var easeOut$2=function(n){return n*(2-n)},sharedGeometry2$2=function(){var n=new Float32Array([-.18,0,-.18,.18,0,-.18,-.18,0,.18,.18,0,.18]),t=new Float32Array([1,0,0,0,1,1,0,1]),e=new Uint8Array([0,2,1,2,3,1]),r=new THREE__namespace.BufferGeometry;return r.setAttribute("position",new THREE__namespace.BufferAttribute(n,3)),r.setAttribute("uv",new THREE__namespace.BufferAttribute(t,2)),r.setIndex(new THREE__namespace.BufferAttribute(e,1)),r}(),vertexShader$4=`
|
|
1040
|
+
`+JSON.stringify(n))}}function createWorks(n){for(var t={},e=[],r={},o=0,s=n;o<s.length;o++){var u=s[o],l=t[u.workCode];l||(l=t[u.workCode]=new THREE__namespace.Matrix4().copy(u.transform));for(var c=0,f=u.observers;c<f.length;c++){var d=f[c],p={isResolved:!0,active:d.active,accessibleIds:d.accessibleIds,visibleIds:d.visibleIds,accessibleNodes:d.accessibleNodes,visibleNodes:d.visibleNodes,floorIndex:d.floorIndex,images:d.images,index:d.index,panoIndex:d.panoIndex,loadable:d.loadable,panoId:d.panoId,pano:d.pano,work:d.work,derivedId:d.derivedId,video:d.video,position:new THREE__namespace.Vector3().copy(d.position).applyMatrix4(l),standingPosition:new THREE__namespace.Vector3().copy(d.standingPosition).applyMatrix4(l),quaternion:new THREE__namespace.Quaternion().setFromRotationMatrix(scratchMatrix4$1.makeRotationFromQuaternion(d.quaternion).premultiply(l))};Object.freeze(p),e.push(p),r[p.panoId]=p}}Object.freeze(e);for(var v=n.slice(),A={},g=0,h=v;g<h.length;g++){var u=h[g];A[u.workCode]=u}return Object.freeze(Object.assign(v,{get initial(){return v.length>0?v[0].initial:{work:{}}},get resolvedObservers(){return e},getWork:function(y){return A[y]},getResolvedObserver:function(y){var m,E;return isPanoId(y)?r[y]:typeof y=="number"?r[panoStringify({workCode:(E=(m=n[0])===null||m===void 0?void 0:m.workCode)!==null&&E!==void 0?E:"",panoIndex:y})]:r[panoStringify(y)]},update:function(){for(var y=0,m=v;y<m.length;y++){var E=m[y],b=E.transform,T=t[E.workCode];T?T.equals(b)||(T.copy(b),needsUpdateWorkCodeSet.add(E.workCode)):(t[E.workCode]=new THREE__namespace.Matrix4().copy(b),needsUpdateWorkCodeSet.add(E.workCode))}if(needsUpdateWorkCodeSet.size>0){for(var _=0,R=e;_<R.length;_++){var S=R[_];if(needsUpdateWorkCodeSet.has(S.work.workCode)){var C=S.work.observers[S.index],B=S.work.transform;S.position.copy(C.position).applyMatrix4(B),S.standingPosition.copy(C.standingPosition).applyMatrix4(B),S.quaternion.setFromRotationMatrix(scratchMatrix4$1.makeRotationFromQuaternion(C.quaternion).premultiply(B))}}needsUpdateWorkCodeSet.clear()}}}))}var fetcherMap=new Map;function getFetcher(n){var t=fetcherMap.get(n);if(t)return t;throw new Error("fetcher never registered.")}function registerFetcher(n,t){return fetcherMap.set(n,t)}var BufferGeometryUtils={computeTangents:function(n){var t=n.index,e=n.attributes;if(t===null||e.position===void 0||e.normal===void 0||e.uv===void 0){console.warn("THREE.BufferGeometry: Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");return}var r=t.array,o=e.position.array,s=e.normal.array,u=e.uv.array,l=o.length/3;e.tangent===void 0&&n.setAttribute("tangent",new THREE__namespace.BufferAttribute(new Float32Array(4*l),4));for(var c=e.tangent.array,f=[],d=[],p=0;p<l;p++)f[p]=new THREE__namespace.Vector3,d[p]=new THREE__namespace.Vector3;var v=new THREE__namespace.Vector3,A=new THREE__namespace.Vector3,g=new THREE__namespace.Vector3,h=new THREE__namespace.Vector2,y=new THREE__namespace.Vector2,m=new THREE__namespace.Vector2,E=new THREE__namespace.Vector3,b=new THREE__namespace.Vector3;function T(q,z,Q){v.fromArray(o,q*3),A.fromArray(o,z*3),g.fromArray(o,Q*3),h.fromArray(u,q*2),y.fromArray(u,z*2),m.fromArray(u,Q*2);var G=A.x-v.x,X=g.x-v.x,$=A.y-v.y,W=g.y-v.y,oe=A.z-v.z,ae=g.z-v.z,re=y.x-h.x,j=m.x-h.x,se=y.y-h.y,ie=m.y-h.y,ue=1/(re*ie-j*se);E.set((ie*G-se*X)*ue,(ie*$-se*W)*ue,(ie*oe-se*ae)*ue),b.set((re*X-j*G)*ue,(re*W-j*$)*ue,(re*ae-j*oe)*ue),f[q].add(E),f[z].add(E),f[Q].add(E),d[q].add(b),d[z].add(b),d[Q].add(b)}var _=n.groups;_.length===0&&(_=[{start:0,count:r.length}]);for(var p=0,R=_.length;p<R;++p)for(var S=_[p],C=S.start,B=S.count,L=C,M=C+B;L<M;L+=3)T(r[L+0],r[L+1],r[L+2]);var w=new THREE__namespace.Vector3,H=new THREE__namespace.Vector3,O=new THREE__namespace.Vector3,I=new THREE__namespace.Vector3,N,k,U;function D(q){O.fromArray(s,q*3),I.copy(O),k=f[q],w.copy(k),w.sub(O.multiplyScalar(O.dot(k))).normalize(),H.crossVectors(I,k),U=H.dot(d[q]),N=U<0?-1:1,c[q*4]=w.x,c[q*4+1]=w.y,c[q*4+2]=w.z,c[q*4+3]=N}for(var p=0,R=_.length;p<R;++p)for(var S=_[p],C=S.start,B=S.count,L=C,M=C+B;L<M;L+=3)D(r[L+0]),D(r[L+1]),D(r[L+2])},mergeBufferGeometries:function(n,t){for(var e=n[0].index!==null,r=new Set(Object.keys(n[0].attributes)),o=new Set(Object.keys(n[0].morphAttributes)),s={},u={},l=new THREE__namespace.BufferGeometry,c=0,f=0;f<n.length;++f){var d=n[f];if(e!==(d.index!==null))return null;for(var p in d.attributes){if(!r.has(p))return null;s[p]===void 0&&(s[p]=[]),s[p].push(d.attributes[p])}for(var p in d.morphAttributes){if(!o.has(p))return null;u[p]===void 0&&(u[p]=[]),u[p].push(d.morphAttributes[p])}if(l.userData.mergedUserData=l.userData.mergedUserData||[],l.userData.mergedUserData.push(d.userData),t){var v;if(e)v=d.index.count;else if(d.attributes.position!==void 0)v=d.attributes.position.count;else return null;l.addGroup(c,v,f),c+=v}}if(e){for(var A=0,g=[],f=0;f<n.length;++f){for(var h=n[f].index,y=0;y<h.count;++y)g.push(h.getX(y)+A);A+=n[f].attributes.position.count}l.setIndex(g)}for(var p in s){var m=this.mergeBufferAttributes(s[p]);if(!m)return null;l.setAttribute(p,m)}for(var p in u){var E=u[p][0].length;if(E===0)break;l.morphAttributes=l.morphAttributes||{},l.morphAttributes[p]=[];for(var f=0;f<E;++f){for(var b=[],y=0;y<u[p].length;++y)b.push(u[p][y][f]);var T=this.mergeBufferAttributes(b);if(!T)return null;l.morphAttributes[p].push(T)}}return l},mergeBufferAttributes:function(n){for(var t,e,r,o=0,s=0;s<n.length;++s){var u=n[s];if(u.isInterleavedBufferAttribute||(t===void 0&&(t=u.array.constructor),t!==u.array.constructor)||(e===void 0&&(e=u.itemSize),e!==u.itemSize)||(r===void 0&&(r=u.normalized),r!==u.normalized))return null;o+=u.array.length}for(var l=new t(o),c=0,s=0;s<n.length;++s)l.set(n[s].array,c),c+=n[s].array.length;return new THREE__namespace.BufferAttribute(l,e,r)},interleaveAttributes:function(n){for(var t,e=0,r=0,o=0,s=n.length;o<s;++o){var u=n[o];if(t===void 0&&(t=u.array.constructor),t!==u.array.constructor)return console.warn("AttributeBuffers of different types cannot be interleaved"),null;e+=u.array.length,r+=u.itemSize}for(var l=new THREE__namespace.InterleavedBuffer(new t(e),r),c=0,f=[],d=["getX","getY","getZ","getW"],p=["setX","setY","setZ","setW"],v=0,s=n.length;v<s;v++){var u=n[v],A=u.itemSize,g=u.count,h=new THREE__namespace.InterleavedBufferAttribute(l,A,c,u.normalized);f.push(h),c+=A;for(var y=0;y<g;y++)for(var m=0;m<A;m++)h[p[m]](y,u[d[m]](y))}return f},estimateBytesUsed:function(n){var t=0;for(var e in n.attributes){var r=n.getAttribute(e);t+=r.count*r.itemSize*r.array.BYTES_PER_ELEMENT}var o=n.getIndex();return t+=o?o.count*o.itemSize*o.array.BYTES_PER_ELEMENT:0,t},mergeVertices:function(n,t){t===void 0&&(t=1e-4),t=Math.max(t,Number.EPSILON);for(var e={},r=n.getIndex(),o=n.getAttribute("position"),s=r?r.count:o.count,u=0,l=Object.keys(n.attributes),c={},f={},d=[],p=["getX","getY","getZ","getW"],v=0,A=l.length;v<A;v++){var g=l[v];c[g]=[];var h=n.morphAttributes[g];h&&(f[g]=new Array(h.length).fill().map(function(){return[]}))}for(var y=Math.log10(1/t),m=Math.pow(10,y),v=0;v<s;v++){for(var E=r?r.getX(v):v,b="",T=0,A=l.length;T<A;T++)for(var g=l[T],_=n.getAttribute(g),R=_.itemSize,S=0;S<R;S++)b+="".concat(~~(_[p[S]](E)*m),",");if(b in e)d.push(e[b]);else{for(var T=0,A=l.length;T<A;T++)for(var g=l[T],_=n.getAttribute(g),h=n.morphAttributes[g],R=_.itemSize,C=c[g],B=f[g],S=0;S<R;S++){var L=p[S];if(C.push(_[L](E)),h)for(var M=0,w=h.length;M<w;M++)B[M].push(h[M][L](E))}e[b]=u,d.push(u),u++}}for(var H=n.clone(),v=0,A=l.length;v<A;v++){var g=l[v],O=n.getAttribute(g),I=new O.array.constructor(c[g]),_=new THREE__namespace.BufferAttribute(I,O.itemSize,O.normalized);if(H.setAttribute(g,_),g in f)for(var T=0;T<f[g].length;T++){var N=n.morphAttributes[g][T],I=new N.array.constructor(f[g][T]),k=new THREE__namespace.BufferAttribute(I,N.itemSize,N.normalized);H.morphAttributes[g][T]=k}}return H.setIndex(d),H}};function isThirdPersonMode(n){switch(n){case"Floorplan":return!0;case"Mapview":return!0;default:return!1}}function isFristPersonMode(n){switch(n){case"Panorama":return!0;case"VRPanorama":return!0;case"XRPanorama":return!0;case"Model":return!0;default:return!1}}var scratchVector3=new THREE__namespace.Vector3,scratchSphere=new THREE__namespace.Sphere,scratchMatrix4=new THREE__namespace.Matrix4,scratchMatrix4Inverse=new THREE__namespace.Matrix4,scratchBoundingBox=new THREE__namespace.Box3,ROTATE_X_90_MATRIX=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1]),ROTATE_X_90_MATRIX_INVERSE=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]),DEFAULT_BOUNDING=new THREE__namespace.Box3(new THREE__namespace.Vector3(-.5,-.5,-.5),new THREE__namespace.Vector3(.5,.5,.5));function getEcefToEnuMatrixFromUpAxis(n,t,e){switch(n){case"Z":break;case"Y":e.copy(ROTATE_X_90_MATRIX_INVERSE);break;case"-Y":e.copy(ROTATE_X_90_MATRIX);break;case"WGS84":case"GCJ02":case"BD09":getEcefToEnuMatrix(t,e);break;default:e.identity();break}return e}function getExt(n){var t=/([0-9a-z\.\_\-]+)([\?\#].*)?$/i.exec(n);if(t){var e=String(t[1]).trim().split(".").slice(1).reverse()[0];if(e)return e}return""}var ModelViewLayer=function(){function n(t,e){this.scene=t,this.error=e,t.viewLayer=this}return Object.defineProperty(n.prototype,"name",{get:function(){return this.scene.name},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"type",{get:function(){return this.scene.type},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"upAxis",{get:function(){return this.scene.upAxis},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"groundHeight",{get:function(){return this.scene.groundHeight},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"model",{get:function(){return this.scene.model},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"coordinates",{get:function(){scratchVector3.setScalar(0);var t=this.scene.localToLla(scratchVector3),e=t.x,r=t.y;return[e,r].map(function(o){return(o/Math.PI*180).toFixed(6)}).join(",")},enumerable:!1,configurable:!0}),n.prototype.getTransformMatrix4=function(t){return t===void 0&&(t=new THREE__namespace.Matrix4),t.copy(this.scene.coordinateTransform.ecefToLocalMatrix),this.scene&&t.premultiply(this.scene.matrixWorld),t},n.prototype.coordinatesToWorldPoint=function(t){var e=new THREE__namespace.Vector3(t.latitude,t.longitude,t.altitude);return this.scene.llaToWorld(e)},n.prototype.worldPointToCoordinates=function(t){return scratchVector3.copy(t),this.scene.worldToLla(scratchVector3),{latitude:scratchVector3.x,longitude:scratchVector3.y,altitude:scratchVector3.z}},n}(),Model=function(n){__extends(t,n);function t(e){e===void 0&&(e={});var r,o,s,u=n.call(this)||this;return u.name="",u.onError=(r=e.onError)!==null&&r!==void 0?r:noop$1,u.onShownFloorChange=(o=e.onShownFloorChange)!==null&&o!==void 0?o:noop$1,u.onLoad=(s=e.onLoad)!==null&&s!==void 0?s:noop$1,u.work=null,u.viewLayers=[],u.bounding=new THREE__namespace.Box3(new THREE__namespace.Vector3,new THREE__namespace.Vector3),u.floorLength=0,u.textureOptions={},u.refined=!1,u.refineProgress=[0,0],u.loaded=!1,u.matrixAutoUpdate=!1,u.needsRender=!0,u.autoRefine=!0,u.materialVersion=0,u.materialParameters=__assign({},defaultPbmParameters),u.cacheCameras=[],u.disposed=!1,u}return Object.defineProperty(t.prototype,"empty",{get:function(){return this.viewLayers.length===0},enumerable:!1,configurable:!0}),t.prototype.getMaterial=function(){return __assign({},this.materialParameters)},t.prototype.setMaterial=function(e){var r=this.materialParameters.shownFloorIndex,o=updatePBMParameters(this.materialParameters,e);if(o){var s=this.materialParameters.shownFloorIndex;r!==s&&this.onShownFloorChange(s),this.materialVersion++,this.needsRender=!0}},Object.defineProperty(t.prototype,"brightness",{get:function(){return this.materialParameters.brightness},set:function(e){this.setMaterial({brightness:typeof e=="number"?e:1})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shownFloorIndex",{get:function(){return this.materialParameters.shownFloorIndex},set:function(e){this.setMaterial({shownFloorIndex:e})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shownFloor",{get:function(){return this.shownFloorIndex===-1?null:this.shownFloorIndex},set:function(e){this.shownFloorIndex=e===null?-1:e},enumerable:!1,configurable:!0}),t.prototype.show=function(e){this.shownFloor=e!=null?e:null},Object.defineProperty(t.prototype,"clippers",{get:function(){return this.materialParameters.clippers},set:function(e){this.setMaterial({clippers:e})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"customShaders",{get:function(){return this.materialParameters.customShaders},set:function(e){this.setMaterial({customShaders:e})},enumerable:!1,configurable:!0}),t.prototype.getEdgesBySphere=function(e,r){r===void 0&&(r=30/180*Math.PI);for(var o=Math.cos(r),s=[],u=0,l=this.children;u<l.length;u++){var c=l[u];c instanceof Tile3DModel&&c.tileset.selectedTiles.forEach(function(f){var d,p,v;if(!(f.boundingVolume&&f.boundingVolume.distanceToPoint(e.center)>e.radius)){var A=(p=(d=f.content)===null||d===void 0?void 0:d.data)===null||p===void 0?void 0:p.object;if(A&&A.visible){var g=[];if(A.traverseVisible(function(Q){if(Q instanceof THREE__namespace.Mesh){var G=bvhMeshMap.get(Q);if(G){scratchMatrix4.copy(Q.matrixWorld),scratchMatrix4Inverse.getInverse(scratchMatrix4),scratchSphere.copy(e).applyMatrix4(scratchMatrix4Inverse);var X=G.trianglesInSphere(scratchSphere.center,scratchSphere.radius),$=new THREE__namespace.BufferGeometry;$.setAttribute("position",new THREE__namespace.BufferAttribute(X,3)),$.applyMatrix4(Q.matrixWorld),$=BufferGeometryUtils.mergeVertices($,.01),g.push($)}}}),g.length===0)return;for(var h=["a","b","c"],y=BufferGeometryUtils.mergeBufferGeometries(g,!1),m=y.getAttribute("position").array,E=((v=y.getIndex())===null||v===void 0?void 0:v.array)||[],b=[],T=[],_=0,R=m.length;_<R;_+=3){var S=new THREE__namespace.Vector3(m[_],m[_+1],m[_+2]);b.push(S)}for(var _=0,R=E.length;_<R;_+=3){var C=E[_],B=E[_+1],L=E[_+2],M=new THREE__namespace.Vector3().crossVectors(b[B].clone().sub(b[C]),b[L].clone().sub(b[C])).normalize();T.push({a:C,b:B,c:L,normal:M})}for(var w={},_=0,R=T.length;_<R;_++)for(var H=T[_],O=0;O<3;O++){var I=H[h[O]],N=H[h[(O+1)%3]],k=[Math.min(I,N),Math.max(I,N)],U=k[0]+"-"+k[1];w[U]===void 0?w[U]={index1:k[0],index2:k[1],face1:_}:w[U].face2=_}for(var U in w){var D=w[U];if(D.face2===void 0||T[D.face1].normal.dot(T[D.face2].normal)<=o){var q=b[D.index1],z=b[D.index2];s.push(new THREE__namespace.Line3(q,z))}}b.length=0,T.length=0}}})}return s},t.prototype.intersectRaycaster=function(e,r,o){r===void 0&&(r=null),o===void 0&&(o=!0);for(var s=[],u=0,l=this.children.length;u<l;u++){var c=this.children[u];c.visible&&c instanceof Tile3DModel&&c.intersectRaycaster(e,!1,s)}return r!=null&&(s=s.filter(function(f){return f.floor===r})),this.getMaterial().pointBack==="HIDDEN"&&(s=s.filter(function(f){return!(f.object instanceof PBMPointCloud&&f.face&&f.face.normal.angleTo(e.ray.direction)<Math.PI/2)})),o&&s.sort(function(f,d){return f.distance-d.distance}),s},t.prototype.load=function(e,r){var o,s=this,u,l,c,f,d;if(r===void 0&&(r={}),this.work=e,this.name=this.work.workCode,!e.model)return Promise.resolve();for(var p=e.model,v=0,A=0,g=e.observers;A<g.length;A++){var h=g[A];v=Math.max(v,h.floorIndex)}this.floorLength=v+1;for(var y=!1,m=[],E=function(W){var oe=W.tileset,ae=W.upAxis,re=W.name,j=W.type;j==="mesh"&&(y=!0);var se=oe.split("#"),ie=se[0],ue=se[1],fe=(u=(ue||ie).split("?")[1])!==null&&u!==void 0?u:"",ne=typeof r["3d-tiles"]=="function"?r["3d-tiles"](W):(l=r["3d-tiles"])!==null&&l!==void 0?l:{},Te=getFetcher(e).ajax(oe,{responseType:"text"}).then(function(_e){var ve,Me,Z=oe?oe.slice(0,oe.lastIndexOf("/")+1):"",te=normalizeTilesetHeader(JSON.parse(_e.body),Z),K=te.root,ye=te.rootMeta,de=ye===void 0?{}:ye;de.upAxis&&de.upAxis!==ae&&(ae=de.upAxis),"lodVersion"in te&&(ae="-Y","floorInfo"in te&&(te.properties=te.properties||{},te.properties.floorInfo=te.floorInfo.map(function(ge){return{ground:-ge.ground,height:ge.height}}),delete te.floorInfo),te.asset.tilesetVersion=String(te.lodVersion),delete te.lodVersion);var xe=K.boundingVolume?makeBoundingVolume(K.boundingVolume):void 0;xe&&K.transform&&xe.applyMatrix4(scratchMatrix4.fromArray(K.transform));var Ae=null,me=new THREE__namespace.Matrix4,ce=new THREE__namespace.Matrix4;de.coordinate?(Ae=de.coordinate.ground_height,me.fromArray(de.coordinate.pose_ecef_to_enu),ce.fromArray(de.coordinate.pose_enu_to_ecef)):(xe?xe.getCenter(scratchVector3):scratchVector3.setScalar(0),getEcefToEnuMatrixFromUpAxis(ae,scratchVector3,me),ce.getInverse(me));var he=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX),ee=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX_INVERSE),pe=new THREE__namespace.Matrix4().premultiply(me).premultiply(he),Re=new THREE__namespace.Matrix4().getInverse(pe),we;if(ne.viewerRequestVolume){var Ue=isBoundingVolume(ne.viewerRequestVolume)?ne.viewerRequestVolume:makeBoundingVolume(ne.viewerRequestVolume);Ue.applyMatrix4(Re),we=Ue.toJson()}te.root={refine:(ve=K.refine)!==null&&ve!==void 0?ve:"REPLACE",geometricError:K.geometricError,transform:pe.toArray(),boundingVolume:xe?xe.toJson():void 0,viewerRequestVolume:we,children:[K]};var be=new Tile3DModel(s,te,{name:re,light:(Me=r.light)!==null&&Me!==void 0?Me:!1,type:j,upAxis:ae,url:oe,referer:oe,search:fe,fetcher:getFetcher(e),groundHeight:Ae,coordinateTransform:{localToEnuMatrix:ee,enuToLocalMatrix:he,enuToEcefMatrix:ce,ecefToEnuMatrix:me,localToEcefMatrix:Re,ecefToLocalMatrix:pe}});return be.matrix.copy(e.transform),be.matrix.decompose(be.position,be.quaternion,be.scale),be.matrixWorldNeedsUpdate=!0,Object.assign(be.maxMemoryUsage,be.getRecommendProps()),typeof ne.debug!="undefined"&&(be.debug=ne.debug),typeof ne.minLevelOfDetail!="undefined"&&(be.minLevelOfDetail=ne.minLevelOfDetail),typeof ne.maxLevelOfDetail!="undefined"&&(be.maxLevelOfDetail=ne.maxLevelOfDetail),typeof ne.minGeometricError!="undefined"&&(be.minGeometricError=ne.minGeometricError),typeof ne.maxGeometricError!="undefined"&&(be.maxGeometricError=ne.maxGeometricError),typeof ne.skipLevelOfDetail!="undefined"&&(be.skipLevelOfDetail=ne.skipLevelOfDetail),typeof ne.mostDetail!="undefined"&&(be.mostDetail=ne.mostDetail),typeof ne.loadSiblings!="undefined"&&(be.loadSiblings=ne.loadSiblings),typeof ne.loadAll!="undefined"&&(be.loadAll=ne.loadAll),typeof ne.maxMemoryUsage!="undefined"&&(be.maxMemoryUsage=ne.maxMemoryUsage),typeof ne.maxRequests!="undefined"&&(be.maxRequests=ne.maxRequests),typeof ne.requestOrder!="undefined"&&(be.requestOrder=ne.requestOrder),typeof ne.maxScreenSpaceError!="undefined"&&(be.maxScreenSpaceError=ne.maxScreenSpaceError),(ne.showLayers===!1||Array.isArray(ne.showLayers)&&ne.showLayers.indexOf(re)===-1)&&(be.visible=!1),new ModelViewLayer(be,null)});m.push(Te.catch(function(_e){var ve;s.onError(_e);var Me=new THREE__namespace.Matrix4,Z=new THREE__namespace.Matrix4,te=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX),K=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX_INVERSE),ye=new THREE__namespace.Matrix4().premultiply(Me).premultiply(te),de=new THREE__namespace.Matrix4().getInverse(ye),xe=oe?oe.slice(0,oe.lastIndexOf("/")+1):"",Ae;if(ne.viewerRequestVolume){var me=isBoundingVolume(ne.viewerRequestVolume)?ne.viewerRequestVolume:makeBoundingVolume(ne.viewerRequestVolume);me.applyMatrix4(de),Ae=me.toJson()}var ce=normalizeTilesetHeader({asset:{version:"0.0"},geometricError:0,viewerRequestVolume:Ae,root:{geometricError:0}},xe),he=new Tile3DModel(s,ce,{name:re,light:(ve=r.light)!==null&&ve!==void 0?ve:!1,type:j,upAxis:ae,url:oe,referer:oe,search:fe,fetcher:getFetcher(e),groundHeight:null,coordinateTransform:{localToEnuMatrix:K,enuToLocalMatrix:te,enuToEcefMatrix:Z,ecefToEnuMatrix:Me,localToEcefMatrix:de,ecefToLocalMatrix:ye},onError:s.onError});return he.matrix.copy(e.transform),he.matrix.decompose(he.position,he.quaternion,he.scale),he.matrixWorldNeedsUpdate=!0,(ne.showLayers===!1||Array.isArray(ne.showLayers)&&ne.showLayers.indexOf(re)===-1)&&(he.visible=!1),new ModelViewLayer(he,_e)}))},b=0,T=p.layers;b<T.length;b++){var _=T[b];E(_)}if(!y&&p.file){var R=p.file,S=p.textureBase,C=p.textures,B="fallback",L="mesh",M="Z",w="",_={name:B,type:L,upAxis:M,tileset:w},H=typeof r["3d-tiles"]=="function"?r["3d-tiles"](_):(c=r["3d-tiles"])!==null&&c!==void 0?c:{},O=getExt(R)||"at3d",I=new THREE__namespace.Matrix4,N=new THREE__namespace.Matrix4,k=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX),U=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX_INVERSE);getEcefToEnuMatrixFromUpAxis(M,scratchVector3.setScalar(0),I),N.getInverse(I);var D=new THREE__namespace.Matrix4().premultiply(I).premultiply(k),q=new THREE__namespace.Matrix4().getInverse(D),z=void 0;if(H.viewerRequestVolume){var Q=isBoundingVolume(H.viewerRequestVolume)?H.viewerRequestVolume:makeBoundingVolume(H.viewerRequestVolume);Q.applyMatrix4(q),z=Q.toJson()}var G=normalizeTilesetHeader({asset:{version:"0.0"},geometricError:0,root:{refine:"REPLACE",geometricError:0,transform:D.toArray(),viewerRequestVolume:z,content:{uri:R},extras:(o={},o[O]={textureBaseUri:S,textureArray:C,textureOptions:(f=r.textureOptions)!==null&&f!==void 0?f:{}},o)}},""),X=new Tile3DModel(this,G,{name:B,light:(d=r.light)!==null&&d!==void 0?d:!1,type:L,upAxis:M,url:w,referer:R,fetcher:getFetcher(e),groundHeight:null,coordinateTransform:{localToEnuMatrix:U,enuToLocalMatrix:k,enuToEcefMatrix:N,ecefToEnuMatrix:I,localToEcefMatrix:q,ecefToLocalMatrix:D},onError:this.onError});X.matrix.copy(e.transform),X.matrix.decompose(X.position,X.quaternion,X.scale),X.matrixWorldNeedsUpdate=!0,(H.showLayers===!1||Array.isArray(H.showLayers)&&H.showLayers.indexOf(B)===-1)&&(X.visible=!1);var $=new ModelViewLayer(X,null);m.push(Promise.resolve($))}return Promise.all(m).then(function(W){for(var oe=0,ae=W;oe<ae.length;oe++){var re=ae[oe];if(s.disposed){re.scene.dispose();continue}s.viewLayers.push(re),s.add(re.scene)}})},t.prototype.update=function(e,r,o){if(this.children.length){var s=this.loaded;this.refined=this.work!==null,this.refineProgress[0]=0,this.refineProgress[1]=0,this.loaded=this.work!==null;for(var u=0,l=this.viewLayers;u<l.length;u++){var c=l[u],f=c.scene;f&&(this.work&&(f.cacheCameras=this.cacheCameras,this.autoRefine===!1?f.needsRefined=!1:isFristPersonMode(o)?f.needsRefined=this.materialParameters.modelAlpha===0||this.materialParameters.modelAlpha===1:f.needsRefined=!0,this.work.transform.equals(f.matrix)||(f.matrix.copy(this.work.transform),f.matrix.decompose(f.position,f.quaternion,f.scale),f.matrixWorldNeedsUpdate=!0)),f.update(e,r,o),f.needsRender===!0&&(f.needsRender=!1,this.needsRender=!0),f.refined===!1&&(this.refined=!1),this.refineProgress[0]+=f.refineProgress[0],this.refineProgress[1]+=f.refineProgress[1],f.loaded===!1&&(this.loaded=!1))}this.bounding.makeEmpty();for(var d=0,p=this.viewLayers;d<p.length;d++){var c=p[d],f=c.scene;f&&(f.boundingBox.isEmpty()||(scratchBoundingBox.copy(f.boundingBox).applyMatrix4(f.matrix),this.bounding.union(scratchBoundingBox)))}this.bounding.isEmpty()&&this.bounding.copy(DEFAULT_BOUNDING),s===!1&&this.loaded===!0&&this.onLoad()}else this.work&&!this.work.model?(this.refined=!0,this.refineProgress[0]=0,this.refineProgress[1]=0,this.loaded=!0):(this.refined=!1,this.refineProgress[0]=0,this.refineProgress[1]=0,this.loaded=!1),this.bounding.set(new THREE__namespace.Vector3,new THREE__namespace.Vector3)},t.prototype.dispose=function(){this.disposed=!0;for(var e;e=this.children[0];)e instanceof Tile3DModel&&e.dispose(),this.remove(e)},t}(THREE__namespace.Object3D);function createModels(){var n=new THREE__namespace.Box3,t=omit(defaultPbmParameters,["clippers","shownFloorIndex","brightness","customShaders"]),e=Object.assign([],{bounding:n,needsRender:!1,refined:!1,refineProgress:[0,0],loaded:!1,materialVersion:0,cacheCameras:[],autoUpdate:!0,intersectRaycaster:function(r,o,s){s===void 0&&(s=!0);var u;if(e.length===1)u=e[0].intersectRaycaster(r,o,s);else if(e.length===0)u=[];else{u=[];for(var l=0,c=e;l<c.length;l++){var f=c[l];if(f.visible){var d=f.intersectRaycaster(r,o,!1);d.length&&u.push.apply(u,d)}}s&&u.sort(function(p,v){return p.distance-v.distance})}return u},setMaterial:function(r){var o=updatePBMParameters(t,r);o&&(e.materialVersion++,e.needsRender=!0)},getMaterial:function(){return __assign({},t)},resetBrightness:function(){for(var r=0,o=e;r<o.length;r++){var s=o[r];s.setMaterial({brightness:1})}},update:function(r,o,s){e.refined=e.length>0,e.loaded=e.length>0,e.refineProgress[0]=0,e.refineProgress[1]=0,n.makeEmpty();for(var u=0,l=e.cacheCameras;u<l.length;u++){var c=l[u];c.updateMatrixWorld(!0),c.updateProjectionMatrix()}for(var f=0,d=0,p=e;d<p.length;d++){for(var v=p[d],A=0,g=v.viewLayers;A<g.length;A++){var h=g[A];h.scene.modelIndex=f++}v.setMaterial(t),v.cacheCameras=e.cacheCameras,v.autoRefine=this.autoUpdate,v.update(r,o,s),v.needsRender===!0&&(e.needsRender=!0,v.needsRender=!1),v.refined===!1&&(e.refined=!1),e.refineProgress[0]+=v.refineProgress[0],e.refineProgress[1]+=v.refineProgress[1],v.loaded===!1&&(e.loaded=!1),n.union(v.bounding)}for(var y=0,m=e;y<m.length;y++)for(var v=m[y],E=0,b=v.viewLayers;E<b.length;E++){var h=b[E];h.scene.modelsLoaded=e.loaded}n.isEmpty()&&n.copy(DEFAULT_BOUNDING)}});return e}var easeOut$2=function(n){return n*(2-n)},sharedGeometry2$2=function(){var n=new Float32Array([-.18,0,-.18,.18,0,-.18,-.18,0,.18,.18,0,.18]),t=new Float32Array([1,0,0,0,1,1,0,1]),e=new Uint8Array([0,2,1,2,3,1]),r=new THREE__namespace.BufferGeometry;return r.setAttribute("position",new THREE__namespace.BufferAttribute(n,3)),r.setAttribute("uv",new THREE__namespace.BufferAttribute(t,2)),r.setIndex(new THREE__namespace.BufferAttribute(e,1)),r}(),vertexShader$4=`
|
|
1041
1041
|
varying vec2 vUv;
|
|
1042
1042
|
#include <common>
|
|
1043
1043
|
#include <logdepthbuf_pars_vertex>
|
|
@@ -1433,7 +1433,7 @@ void main() {
|
|
|
1433
1433
|
* Copyright (c) 2016 Jorik Tangelder;
|
|
1434
1434
|
* Licensed under the MIT license */var Hammer=function(n,t,e,r){var o=["","webkit","Moz","MS","ms","o"],s=t.createElement?t.createElement("div"):r,u="function",l=Math.round,c=Math.abs,f=Date.now;function d(P,F,V){return setTimeout(E(P,V),F)}function p(P,F,V){return Array.isArray(P)?(v(P,V[F],V),!0):!1}function v(P,F,V){var J;if(P)if(P.forEach)P.forEach(F,V);else if(P.length!==r)for(J=0;J<P.length;)F.call(V,P[J],J,P),J++;else for(J in P)P.hasOwnProperty(J)&&F.call(V,P[J],J,P)}function A(P,F,V){var J="DEPRECATED METHOD: "+F+`
|
|
1435
1435
|
`+V+` AT
|
|
1436
|
-
`;return function(){var Y=new Error("get-stack-trace"),le=Y&&Y.stack?Y.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",Ee=n.console&&(n.console.warn||n.console.log);return Ee&&Ee.call(n.console,J,le),P.apply(this,arguments)}}var g;typeof Object.assign!="function"?g=function(F){if(F===r||F===null)throw new TypeError("Cannot convert undefined or null to object");for(var V=Object(F),J=1;J<arguments.length;J++){var Y=arguments[J];if(Y!==r&&Y!==null)for(var le in Y)Y.hasOwnProperty(le)&&(V[le]=Y[le])}return V}:g=Object.assign;var h=A(function(F,V,J){for(var Y=Object.keys(V),le=0;le<Y.length;)(!J||J&&F[Y[le]]===r)&&(F[Y[le]]=V[Y[le]]),le++;return F},"extend","Use `assign`."),y=A(function(F,V){return h(F,V,!0)},"merge","Use `assign`.");function m(P,F,V){var J=F.prototype,Y;Y=P.prototype=Object.create(J),Y.constructor=P,Y._super=J,V&&g(Y,V)}function E(P,F){return function(){return P.apply(F,arguments)}}function b(P,F){return typeof P==u?P.apply(F&&F[0]||r,F):P}function T(P,F){return P===r?F:P}function _(P,F,V){v(B(F),function(J){P.addEventListener(J,V,!1)})}function R(P,F,V){v(B(F),function(J){P.removeEventListener(J,V,!1)})}function S(P,F){for(;P;){if(P==F)return!0;P=P.parentNode}return!1}function C(P,F){return P.indexOf(F)>-1}function B(P){return P.trim().split(/\s+/g)}function L(P,F,V){if(P.indexOf&&!V)return P.indexOf(F);for(var J=0;J<P.length;){if(V&&P[J][V]==F||!V&&P[J]===F)return J;J++}return-1}function M(P){return Array.prototype.slice.call(P,0)}function w(P,F,V){for(var J=[],Y=[],le=0;le<P.length;){var Ee=P[le][F];L(Y,Ee)<0&&J.push(P[le]),Y[le]=Ee,le++}return J=J.sort(function(Ze,He){return Ze[F]>He[F]}),J}function H(P,F){for(var V,J,Y=F[0].toUpperCase()+F.slice(1),le=0;le<o.length;){if(V=o[le],J=V?V+Y:F,J in P)return J;le++}return r}var O=1;function I(){return O++}function N(P){var F=P.ownerDocument||P;return F.defaultView||F.parentWindow||n}var k=/mobile|tablet|ip(ad|hone|od)|android/i,U="ontouchstart"in n,D=H(n,"PointerEvent")!==r,q=U&&k.test(navigator.userAgent),z="touch",Q="pen",G="mouse",X="kinect",$=25,W=1,oe=2,ae=4,re=8,j=1,se=2,ie=4,ue=8,fe=16,ne=se|ie,Te=ue|fe,_e=ne|Te,ve=["x","y"],Me=["clientX","clientY"];function Z(P,F){var V=this;this.manager=P,this.callback=F,this.element=P.element,this.target=P.options.inputTarget,this.domHandler=function(J){b(P.options.enable,[P])&&V.handler(J)},this.init()}Z.prototype={handler:function(){},init:function(){this.evEl&&_(this.element,this.evEl,this.domHandler),this.evTarget&&_(this.target,this.evTarget,this.domHandler),this.evWin&&_(N(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&R(this.element,this.evEl,this.domHandler),this.evTarget&&R(this.target,this.evTarget,this.domHandler),this.evWin&&R(N(this.element),this.evWin,this.domHandler)}};function te(P){var F,V=P.options.inputClass;return V?F=V:D?F=Ye:q?F=Le:U?F=Xe:F=ze,new F(P,K)}function K(P,F,V){var J=V.pointers.length,Y=V.changedPointers.length,le=F&W&&J-Y===0,Ee=F&(ae|re)&&J-Y===0;V.isFirst=!!le,V.isFinal=!!Ee,le&&(P.session={}),V.eventType=F,ye(P,V),P.emit("hammer.input",V),P.recognize(V),P.session.prevInput=V}function ye(P,F){var V=P.session,J=F.pointers,Y=J.length;V.firstInput||(V.firstInput=ge(F)),Y>1&&!V.firstMultiple?V.firstMultiple=ge(F):Y===1&&(V.firstMultiple=!1);var le=V.firstInput,Ee=V.firstMultiple,ke=Ee?Ee.center:le.center,Ze=F.center=me(J);F.timeStamp=f(),F.deltaTime=F.timeStamp-le.timeStamp,F.angle=pe(ke,Ze),F.distance=ee(ke,Ze),de(V,F),F.offsetDirection=he(F.deltaX,F.deltaY);var He=ce(F.deltaTime,F.deltaX,F.deltaY);F.overallVelocityX=He.x,F.overallVelocityY=He.y,F.overallVelocity=c(He.x)>c(He.y)?He.x:He.y,F.scale=Ee?we(Ee.pointers,J):1,F.rotation=Ee?Re(Ee.pointers,J):0,F.maxPointers=V.prevInput?F.pointers.length>V.prevInput.maxPointers?F.pointers.length:V.prevInput.maxPointers:F.pointers.length,xe(V,F);var dt=P.element;S(F.srcEvent.target,dt)&&(dt=F.srcEvent.target),F.target=dt}function de(P,F){var V=F.center,J=P.offsetDelta||{},Y=P.prevDelta||{},le=P.prevInput||{};(F.eventType===W||le.eventType===ae)&&(Y=P.prevDelta={x:le.deltaX||0,y:le.deltaY||0},J=P.offsetDelta={x:V.x,y:V.y}),F.deltaX=Y.x+(V.x-J.x),F.deltaY=Y.y+(V.y-J.y)}function xe(P,F){var V=P.lastInterval||F,J=F.timeStamp-V.timeStamp,Y,le,Ee,ke;if(F.eventType!=re&&(J>$||V.velocity===r)){var Ze=F.deltaX-V.deltaX,He=F.deltaY-V.deltaY,dt=ce(J,Ze,He);le=dt.x,Ee=dt.y,Y=c(dt.x)>c(dt.y)?dt.x:dt.y,ke=he(Ze,He),P.lastInterval=F}else Y=V.velocity,le=V.velocityX,Ee=V.velocityY,ke=V.direction;F.velocity=Y,F.velocityX=le,F.velocityY=Ee,F.direction=ke}function ge(P){for(var F=[],V=0;V<P.pointers.length;)F[V]={clientX:l(P.pointers[V].clientX),clientY:l(P.pointers[V].clientY)},V++;return{timeStamp:f(),pointers:F,center:me(F),deltaX:P.deltaX,deltaY:P.deltaY}}function me(P){var F=P.length;if(F===1)return{x:l(P[0].clientX),y:l(P[0].clientY)};for(var V=0,J=0,Y=0;Y<F;)V+=P[Y].clientX,J+=P[Y].clientY,Y++;return{x:l(V/F),y:l(J/F)}}function ce(P,F,V){return{x:F/P||0,y:V/P||0}}function he(P,F){return P===F?j:c(P)>=c(F)?P<0?se:ie:F<0?ue:fe}function ee(P,F,V){V||(V=ve);var J=F[V[0]]-P[V[0]],Y=F[V[1]]-P[V[1]];return Math.sqrt(J*J+Y*Y)}function pe(P,F,V){V||(V=ve);var J=F[V[0]]-P[V[0]],Y=F[V[1]]-P[V[1]];return Math.atan2(Y,J)*180/Math.PI}function Re(P,F){return pe(F[1],F[0],Me)+pe(P[1],P[0],Me)}function we(P,F){return ee(F[0],F[1],Me)/ee(P[0],P[1],Me)}var Ue={mousedown:W,mousemove:oe,mouseup:ae},be="mousedown",Ae="mousemove mouseup";function ze(){this.evEl=be,this.evWin=Ae,this.pressed=!1,Z.apply(this,arguments)}m(ze,Z,{handler:function(F){var V=Ue[F.type];V&W&&(F.button===0||F.button===2)&&(this.pressed=!0),V&oe&&F.which!==1&&(V=ae),this.pressed&&(V&ae&&(this.pressed=!1),this.callback(this.manager,V,{pointers:[F],changedPointers:[F],pointerType:G,srcEvent:F}))}});var Ne={pointerdown:W,pointermove:oe,pointerup:ae,pointercancel:re,pointerout:re},Je={2:z,3:Q,4:G,5:X},Ke="pointerdown",De="pointermove pointerup pointercancel";n.MSPointerEvent&&!n.PointerEvent&&(Ke="MSPointerDown",De="MSPointerMove MSPointerUp MSPointerCancel");function Ye(){this.evEl=Ke,this.evWin=De,Z.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}m(Ye,Z,{handler:function(F){var V=this.store,J=!1,Y=!1,le=F.type.toLowerCase().replace("ms",""),Ee=Ne[le],ke=Je[F.pointerType]||F.pointerType,Ze=ke==z,He=L(V,F.pointerId,"pointerId");Ee&W&&(F.button===0||F.button===2||Ze)?He<0&&(V.push(F),He=V.length-1):Ee&(ae|re)?J=!0:!Ze&&F.buttons===0&&(J=!0,Y=!0,Ee=Ne.pointerup),!(He<0)&&(Y||(V[He]=F),this.callback(this.manager,Ee,{pointers:V,changedPointers:[F],pointerType:ke,srcEvent:V[He]}),J&&V.splice(He,1))}});var Ve={touchstart:W,touchmove:oe,touchend:ae,touchcancel:re},nt="touchstart",qe="touchstart touchmove touchend touchcancel";function Qe(){this.evTarget=nt,this.evWin=qe,this.started=!1,Z.apply(this,arguments)}m(Qe,Z,{handler:function(F){var V=Ve[F.type];if(V===W&&(this.started=!0),!!this.started){var J=Ie.call(this,F,V);V&(ae|re)&&J[0].length-J[1].length===0&&(this.started=!1),this.callback(this.manager,V,{pointers:J[0],changedPointers:J[1],pointerType:z,srcEvent:F})}}});function Ie(P,F){var V=M(P.touches),J=M(P.changedTouches);return F&(ae|re)&&(V=w(V.concat(J),"identifier")),[V,J]}var Se={touchstart:W,touchmove:oe,touchend:ae,touchcancel:re},Be="touchstart touchmove touchend touchcancel";function Le(){this.evTarget=Be,this.targetIds={},Z.apply(this,arguments)}m(Le,Z,{handler:function(F){var V=Se[F.type],J=ot.call(this,F,V);J&&this.callback(this.manager,V,{pointers:J[0],changedPointers:J[1],pointerType:z,srcEvent:F})}});function ot(P,F){var V=M(P.touches),J=this.targetIds;if(F&(W|oe)&&V.length===1)return J[V[0].identifier]=!0,[V,V];var Y,le,Ee=M(P.changedTouches),ke=[],Ze=this.target;if(le=V.filter(function(He){return S(He.target,Ze)}),F===W)for(Y=0;Y<le.length;)J[le[Y].identifier]=!0,Y++;for(Y=0;Y<Ee.length;)J[Ee[Y].identifier]&&ke.push(Ee[Y]),F&(ae|re)&&delete J[Ee[Y].identifier],Y++;if(ke.length)return[w(le.concat(ke),"identifier"),ke]}var $e=2500,tt=25;function Xe(){Z.apply(this,arguments);var P=E(this.handler,this);this.touch=new Le(this.manager,P),this.mouse=new ze(this.manager,P),this.primaryTouch=null,this.lastTouches=[]}m(Xe,Z,{handler:function(F,V,J){var Y=J.pointerType==z,le=J.pointerType==G;if(!(le&&J.sourceCapabilities&&J.sourceCapabilities.firesTouchEvents)){if(Y)rt.call(this,V,J);else if(le&&st.call(this,J))return;this.callback(F,V,J)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});function rt(P,F){P&W?(this.primaryTouch=F.changedPointers[0].identifier,Ge.call(this,F)):P&(ae|re)&&Ge.call(this,F)}function Ge(P){var F=P.changedPointers[0];if(F.identifier===this.primaryTouch){var V={x:F.clientX,y:F.clientY};this.lastTouches.push(V);var J=this.lastTouches,Y=function(){var le=J.indexOf(V);le>-1&&J.splice(le,1)};setTimeout(Y,$e)}}function st(P){for(var F=P.srcEvent.clientX,V=P.srcEvent.clientY,J=0;J<this.lastTouches.length;J++){var Y=this.lastTouches[J],le=Math.abs(F-Y.x),Ee=Math.abs(V-Y.y);if(le<=tt&&Ee<=tt)return!0}return!1}var ct=s?H(s.style,"touchAction"):r,je=ct!==r,Fe="compute",We="auto",at="manipulation",Pe="none",Ce="pan-x",Oe="pan-y",ut=Lt();function vt(P,F){this.manager=P,this.set(F)}vt.prototype={set:function(P){P==Fe&&(P=this.compute()),je&&this.manager.element.style&&ut[P]&&(this.manager.element.style[ct]=P),this.actions=P.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var P=[];return v(this.manager.recognizers,function(F){b(F.options.enable,[F])&&(P=P.concat(F.getTouchAction()))}),gt(P.join(" "))},preventDefaults:function(P){var F=P.srcEvent,V=P.offsetDirection;if(this.manager.session.prevented){F.preventDefault();return}var J=this.actions,Y=C(J,Pe)&&!ut[Pe],le=C(J,Oe)&&!ut[Oe],Ee=C(J,Ce)&&!ut[Ce];if(Y){var ke=P.pointers.length===1,Ze=P.distance<2,He=P.deltaTime<250;if(ke&&Ze&&He)return}if(!(Ee&&le)&&(Y||le&&V&ne||Ee&&V&Te))return this.preventSrc(F)},preventSrc:function(P){this.manager.session.prevented=!0,P.preventDefault()}};function gt(P){if(C(P,Pe))return Pe;var F=C(P,Ce),V=C(P,Oe);return F&&V?Pe:F||V?F?Ce:Oe:C(P,at)?at:We}function Lt(){if(!je)return!1;var P={},F=n.CSS&&n.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(V){P[V]=F?n.CSS.supports("touch-action",V):!0}),P}var bt=1,it=2,At=4,mt=8,pt=mt,Et=16,ft=32;function ht(P){this.options=g({},this.defaults,P||{}),this.id=I(),this.manager=null,this.options.enable=T(this.options.enable,!0),this.state=bt,this.simultaneous={},this.requireFail=[]}ht.prototype={defaults:{},set:function(P){return g(this.options,P),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(P){if(p(P,"recognizeWith",this))return this;var F=this.simultaneous;return P=Tt(P,this),F[P.id]||(F[P.id]=P,P.recognizeWith(this)),this},dropRecognizeWith:function(P){return p(P,"dropRecognizeWith",this)?this:(P=Tt(P,this),delete this.simultaneous[P.id],this)},requireFailure:function(P){if(p(P,"requireFailure",this))return this;var F=this.requireFail;return P=Tt(P,this),L(F,P)===-1&&(F.push(P),P.requireFailure(this)),this},dropRequireFailure:function(P){if(p(P,"dropRequireFailure",this))return this;P=Tt(P,this);var F=L(this.requireFail,P);return F>-1&&this.requireFail.splice(F,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(P){return!!this.simultaneous[P.id]},emit:function(P){var F=this,V=this.state;function J(Y){F.manager.emit(Y,P)}V<mt&&J(F.options.event+It(V)),J(F.options.event),P.additionalEvent&&J(P.additionalEvent),V>=mt&&J(F.options.event+It(V))},tryEmit:function(P){if(this.canEmit())return this.emit(P);this.state=ft},canEmit:function(){for(var P=0;P<this.requireFail.length;){if(!(this.requireFail[P].state&(ft|bt)))return!1;P++}return!0},recognize:function(P){var F=g({},P);if(!b(this.options.enable,[this,F])){this.reset(),this.state=ft;return}this.state&(pt|Et|ft)&&(this.state=bt),this.state=this.process(F),this.state&(it|At|mt|Et)&&this.tryEmit(F)},process:function(P){},getTouchAction:function(){},reset:function(){}};function It(P){return P&Et?"cancel":P&mt?"end":P&At?"move":P&it?"start":""}function Pt(P){return P==fe?"down":P==ue?"up":P==se?"left":P==ie?"right":""}function Tt(P,F){var V=F.manager;return V?V.get(P):P}function lt(){ht.apply(this,arguments)}m(lt,ht,{defaults:{pointers:1},attrTest:function(P){var F=this.options.pointers;return F===0||P.pointers.length===F},process:function(P){var F=this.state,V=P.eventType,J=F&(it|At),Y=this.attrTest(P);return J&&(V&re||!Y)?F|Et:J||Y?V&ae?F|mt:F&it?F|At:it:ft}});function _t(){lt.apply(this,arguments),this.pX=null,this.pY=null}m(_t,lt,{defaults:{event:"pan",threshold:10,pointers:1,direction:_e},getTouchAction:function(){var P=this.options.direction,F=[];return P&ne&&F.push(Oe),P&Te&&F.push(Ce),F},directionTest:function(P){var F=this.options,V=!0,J=P.distance,Y=P.direction,le=P.deltaX,Ee=P.deltaY;return Y&F.direction||(F.direction&ne?(Y=le===0?j:le<0?se:ie,V=le!=this.pX,J=Math.abs(P.deltaX)):(Y=Ee===0?j:Ee<0?ue:fe,V=Ee!=this.pY,J=Math.abs(P.deltaY))),P.direction=Y,V&&J>F.threshold&&Y&F.direction},attrTest:function(P){return lt.prototype.attrTest.call(this,P)&&(this.state&it||!(this.state&it)&&this.directionTest(P))},emit:function(P){this.pX=P.deltaX,this.pY=P.deltaY;var F=Pt(P.direction);F&&(P.additionalEvent=this.options.event+F),this._super.emit.call(this,P)}});function xt(){lt.apply(this,arguments)}m(xt,lt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Pe]},attrTest:function(P){return this._super.attrTest.call(this,P)&&(Math.abs(P.scale-1)>this.options.threshold||this.state&it)},emit:function(P){if(P.scale!==1){var F=P.scale<1?"in":"out";P.additionalEvent=this.options.event+F}this._super.emit.call(this,P)}});function St(){ht.apply(this,arguments),this._timer=null,this._input=null}m(St,ht,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[We]},process:function(P){var F=this.options,V=P.pointers.length===F.pointers,J=P.distance<F.threshold,Y=P.deltaTime>F.time;if(this._input=P,!J||!V||P.eventType&(ae|re)&&!Y)this.reset();else if(P.eventType&W)this.reset(),this._timer=d(function(){this.state=pt,this.tryEmit()},F.time,this);else if(P.eventType&ae)return pt;return ft},reset:function(){clearTimeout(this._timer)},emit:function(P){this.state===pt&&(P&&P.eventType&ae?this.manager.emit(this.options.event+"up",P):(this._input.timeStamp=f(),this.manager.emit(this.options.event,this._input)))}});function Mt(){lt.apply(this,arguments)}m(Mt,lt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Pe]},attrTest:function(P){return this._super.attrTest.call(this,P)&&(Math.abs(P.rotation)>this.options.threshold||this.state&it)}});function Ct(){lt.apply(this,arguments)}m(Ct,lt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:ne|Te,pointers:1},getTouchAction:function(){return _t.prototype.getTouchAction.call(this)},attrTest:function(P){var F=this.options.direction,V;return F&(ne|Te)?V=P.overallVelocity:F&ne?V=P.overallVelocityX:F&Te&&(V=P.overallVelocityY),this._super.attrTest.call(this,P)&&F&P.offsetDirection&&P.distance>this.options.threshold&&P.maxPointers==this.options.pointers&&c(V)>this.options.velocity&&P.eventType&ae},emit:function(P){var F=Pt(P.offsetDirection);F&&this.manager.emit(this.options.event+F,P),this.manager.emit(this.options.event,P)}});function Rt(){ht.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}m(Rt,ht,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[at]},process:function(P){var F=this.options,V=P.pointers.length===F.pointers,J=P.distance<F.threshold,Y=P.deltaTime<F.time;if(this.reset(),P.eventType&W&&this.count===0)return this.failTimeout();if(J&&Y&&V){if(P.eventType!=ae)return this.failTimeout();var le=this.pTime?P.timeStamp-this.pTime<F.interval:!0,Ee=!this.pCenter||ee(this.pCenter,P.center)<F.posThreshold;this.pTime=P.timeStamp,this.pCenter=P.center,!Ee||!le?this.count=1:this.count+=1,this._input=P;var ke=this.count%F.taps;if(ke===0)return this.hasRequireFailures()?(this._timer=d(function(){this.state=pt,this.tryEmit()},F.interval,this),it):pt}return ft},failTimeout:function(){return this._timer=d(function(){this.state=ft},this.options.interval,this),ft},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==pt&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}});function yt(P,F){return F=F||{},F.recognizers=T(F.recognizers,yt.defaults.preset),new wt(P,F)}yt.VERSION="2.0.7",yt.defaults={domEvents:!1,touchAction:Fe,enable:!0,inputTarget:null,inputClass:null,preset:[[Mt,{enable:!1}],[xt,{enable:!1},["rotate"]],[Ct,{direction:ne}],[_t,{direction:ne},["swipe"]],[Rt],[Rt,{event:"doubletap",taps:2},["tap"]],[St]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var Ft=1,Bt=2;function wt(P,F){this.options=g({},yt.defaults,F||{}),this.options.inputTarget=this.options.inputTarget||P,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=P,this.input=te(this),this.touchAction=new vt(this,this.options.touchAction),Ht(this,!0),v(this.options.recognizers,function(V){var J=this.add(new V[0](V[1]));V[2]&&J.recognizeWith(V[2]),V[3]&&J.requireFailure(V[3])},this)}wt.prototype={set:function(P){return g(this.options,P),P.touchAction&&this.touchAction.update(),P.inputTarget&&(this.input.destroy(),this.input.target=P.inputTarget,this.input.init()),this},stop:function(P){this.session.stopped=P?Bt:Ft},recognize:function(P){var F=this.session;if(!F.stopped){this.touchAction.preventDefaults(P);var V,J=this.recognizers,Y=F.curRecognizer;(!Y||Y&&Y.state&pt)&&(Y=F.curRecognizer=null);for(var le=0;le<J.length;)V=J[le],F.stopped!==Bt&&(!Y||V==Y||V.canRecognizeWith(Y))?V.recognize(P):V.reset(),!Y&&V.state&(it|At|mt)&&(Y=F.curRecognizer=V),le++}},get:function(P){if(P instanceof ht)return P;for(var F=this.recognizers,V=0;V<F.length;V++)if(F[V].options.event==P)return F[V];return null},add:function(P){if(p(P,"add",this))return this;var F=this.get(P.options.event);return F&&this.remove(F),this.recognizers.push(P),P.manager=this,this.touchAction.update(),P},remove:function(P){if(p(P,"remove",this))return this;if(P=this.get(P),P){var F=this.recognizers,V=L(F,P);V!==-1&&(F.splice(V,1),this.touchAction.update())}return this},on:function(P,F){if(P!==r&&F!==r){var V=this.handlers;return v(B(P),function(J){V[J]=V[J]||[],V[J].push(F)}),this}},off:function(P,F){if(P!==r){var V=this.handlers;return v(B(P),function(J){F?V[J]&&V[J].splice(L(V[J],F),1):delete V[J]}),this}},emit:function(P,F){this.options.domEvents&&Ot(P,F);var V=this.handlers[P]&&this.handlers[P].slice();if(!(!V||!V.length)){F.type=P,F.preventDefault=function(){F.srcEvent.preventDefault()};for(var J=0;J<V.length;)V[J](F),J++}},destroy:function(){this.element&&Ht(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}};function Ht(P,F){var V=P.element;if(V.style){var J;v(P.options.cssProps,function(Y,le){J=H(V.style,le),F?(P.oldCssProps[J]=V.style[J],V.style[J]=Y):V.style[J]=P.oldCssProps[J]||""}),F||(P.oldCssProps={})}}function Ot(P,F){var V=t.createEvent("Event");V.initEvent(P,!0,!0),V.gesture=F,F.target.dispatchEvent(V)}return g(yt,{INPUT_START:W,INPUT_MOVE:oe,INPUT_END:ae,INPUT_CANCEL:re,STATE_POSSIBLE:bt,STATE_BEGAN:it,STATE_CHANGED:At,STATE_ENDED:mt,STATE_RECOGNIZED:pt,STATE_CANCELLED:Et,STATE_FAILED:ft,DIRECTION_NONE:j,DIRECTION_LEFT:se,DIRECTION_RIGHT:ie,DIRECTION_UP:ue,DIRECTION_DOWN:fe,DIRECTION_HORIZONTAL:ne,DIRECTION_VERTICAL:Te,DIRECTION_ALL:_e,Manager:wt,Input:Z,TouchAction:vt,TouchInput:Le,MouseInput:ze,PointerEventInput:Ye,TouchMouseInput:Xe,SingleTouchInput:Qe,Recognizer:ht,AttrRecognizer:lt,Tap:Rt,Pan:_t,Swipe:Ct,Pinch:xt,Rotate:Mt,Press:St,on:_,off:R,each:v,merge:y,extend:h,assign:g,inherit:m,bindFn:E,prefixed:H}),yt}(typeof window!="undefined"?window:{},typeof document!="undefined"?document:{});function calculateThreeMouse(n,t,e){var r=t.getBoundingClientRect(),o=r.top,s=r.left,u=r.width,l=r.height;return e&&(s=s+u*e.left,o=o+l*(1-e.bottom-e.height),u=u*e.width,l=l*e.height),new THREE__namespace.Vector2((n.x-s)/u*2-1,-(n.y-o)/l*2+1)}var camera$2=new THREE__namespace.OrthographicCamera(-1,1,1,-1,0,1),geometry$5=new THREE__namespace.BufferGeometry;geometry$5.setAttribute("position",new THREE__namespace.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3));geometry$5.setAttribute("uv",new THREE__namespace.Float32BufferAttribute([0,2,0,0,2,0],2));var mesh$4=new THREE__namespace.Mesh(geometry$5),scene$2=new THREE__namespace.Scene;scene$2.add(mesh$4);var DEFAULT_VERTEX_SHADER=`
|
|
1436
|
+
`;return function(){var Y=new Error("get-stack-trace"),le=Y&&Y.stack?Y.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",Ee=n.console&&(n.console.warn||n.console.log);return Ee&&Ee.call(n.console,J,le),P.apply(this,arguments)}}var g;typeof Object.assign!="function"?g=function(F){if(F===r||F===null)throw new TypeError("Cannot convert undefined or null to object");for(var V=Object(F),J=1;J<arguments.length;J++){var Y=arguments[J];if(Y!==r&&Y!==null)for(var le in Y)Y.hasOwnProperty(le)&&(V[le]=Y[le])}return V}:g=Object.assign;var h=A(function(F,V,J){for(var Y=Object.keys(V),le=0;le<Y.length;)(!J||J&&F[Y[le]]===r)&&(F[Y[le]]=V[Y[le]]),le++;return F},"extend","Use `assign`."),y=A(function(F,V){return h(F,V,!0)},"merge","Use `assign`.");function m(P,F,V){var J=F.prototype,Y;Y=P.prototype=Object.create(J),Y.constructor=P,Y._super=J,V&&g(Y,V)}function E(P,F){return function(){return P.apply(F,arguments)}}function b(P,F){return typeof P==u?P.apply(F&&F[0]||r,F):P}function T(P,F){return P===r?F:P}function _(P,F,V){v(B(F),function(J){P.addEventListener(J,V,!1)})}function R(P,F,V){v(B(F),function(J){P.removeEventListener(J,V,!1)})}function S(P,F){for(;P;){if(P==F)return!0;P=P.parentNode}return!1}function C(P,F){return P.indexOf(F)>-1}function B(P){return P.trim().split(/\s+/g)}function L(P,F,V){if(P.indexOf&&!V)return P.indexOf(F);for(var J=0;J<P.length;){if(V&&P[J][V]==F||!V&&P[J]===F)return J;J++}return-1}function M(P){return Array.prototype.slice.call(P,0)}function w(P,F,V){for(var J=[],Y=[],le=0;le<P.length;){var Ee=P[le][F];L(Y,Ee)<0&&J.push(P[le]),Y[le]=Ee,le++}return J=J.sort(function(Ze,He){return Ze[F]>He[F]}),J}function H(P,F){for(var V,J,Y=F[0].toUpperCase()+F.slice(1),le=0;le<o.length;){if(V=o[le],J=V?V+Y:F,J in P)return J;le++}return r}var O=1;function I(){return O++}function N(P){var F=P.ownerDocument||P;return F.defaultView||F.parentWindow||n}var k=/mobile|tablet|ip(ad|hone|od)|android/i,U="ontouchstart"in n,D=H(n,"PointerEvent")!==r,q=U&&k.test(navigator.userAgent),z="touch",Q="pen",G="mouse",X="kinect",$=25,W=1,oe=2,ae=4,re=8,j=1,se=2,ie=4,ue=8,fe=16,ne=se|ie,Te=ue|fe,_e=ne|Te,ve=["x","y"],Me=["clientX","clientY"];function Z(P,F){var V=this;this.manager=P,this.callback=F,this.element=P.element,this.target=P.options.inputTarget,this.domHandler=function(J){b(P.options.enable,[P])&&V.handler(J)},this.init()}Z.prototype={handler:function(){},init:function(){this.evEl&&_(this.element,this.evEl,this.domHandler),this.evTarget&&_(this.target,this.evTarget,this.domHandler),this.evWin&&_(N(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&R(this.element,this.evEl,this.domHandler),this.evTarget&&R(this.target,this.evTarget,this.domHandler),this.evWin&&R(N(this.element),this.evWin,this.domHandler)}};function te(P){var F,V=P.options.inputClass;return V?F=V:D?F=Ye:q?F=Le:U?F=Xe:F=ze,new F(P,K)}function K(P,F,V){var J=V.pointers.length,Y=V.changedPointers.length,le=F&W&&J-Y===0,Ee=F&(ae|re)&&J-Y===0;V.isFirst=!!le,V.isFinal=!!Ee,le&&(P.session={}),V.eventType=F,ye(P,V),P.emit("hammer.input",V),P.recognize(V),P.session.prevInput=V}function ye(P,F){var V=P.session,J=F.pointers,Y=J.length;V.firstInput||(V.firstInput=Ae(F)),Y>1&&!V.firstMultiple?V.firstMultiple=Ae(F):Y===1&&(V.firstMultiple=!1);var le=V.firstInput,Ee=V.firstMultiple,ke=Ee?Ee.center:le.center,Ze=F.center=me(J);F.timeStamp=f(),F.deltaTime=F.timeStamp-le.timeStamp,F.angle=pe(ke,Ze),F.distance=ee(ke,Ze),de(V,F),F.offsetDirection=he(F.deltaX,F.deltaY);var He=ce(F.deltaTime,F.deltaX,F.deltaY);F.overallVelocityX=He.x,F.overallVelocityY=He.y,F.overallVelocity=c(He.x)>c(He.y)?He.x:He.y,F.scale=Ee?we(Ee.pointers,J):1,F.rotation=Ee?Re(Ee.pointers,J):0,F.maxPointers=V.prevInput?F.pointers.length>V.prevInput.maxPointers?F.pointers.length:V.prevInput.maxPointers:F.pointers.length,xe(V,F);var dt=P.element;S(F.srcEvent.target,dt)&&(dt=F.srcEvent.target),F.target=dt}function de(P,F){var V=F.center,J=P.offsetDelta||{},Y=P.prevDelta||{},le=P.prevInput||{};(F.eventType===W||le.eventType===ae)&&(Y=P.prevDelta={x:le.deltaX||0,y:le.deltaY||0},J=P.offsetDelta={x:V.x,y:V.y}),F.deltaX=Y.x+(V.x-J.x),F.deltaY=Y.y+(V.y-J.y)}function xe(P,F){var V=P.lastInterval||F,J=F.timeStamp-V.timeStamp,Y,le,Ee,ke;if(F.eventType!=re&&(J>$||V.velocity===r)){var Ze=F.deltaX-V.deltaX,He=F.deltaY-V.deltaY,dt=ce(J,Ze,He);le=dt.x,Ee=dt.y,Y=c(dt.x)>c(dt.y)?dt.x:dt.y,ke=he(Ze,He),P.lastInterval=F}else Y=V.velocity,le=V.velocityX,Ee=V.velocityY,ke=V.direction;F.velocity=Y,F.velocityX=le,F.velocityY=Ee,F.direction=ke}function Ae(P){for(var F=[],V=0;V<P.pointers.length;)F[V]={clientX:l(P.pointers[V].clientX),clientY:l(P.pointers[V].clientY)},V++;return{timeStamp:f(),pointers:F,center:me(F),deltaX:P.deltaX,deltaY:P.deltaY}}function me(P){var F=P.length;if(F===1)return{x:l(P[0].clientX),y:l(P[0].clientY)};for(var V=0,J=0,Y=0;Y<F;)V+=P[Y].clientX,J+=P[Y].clientY,Y++;return{x:l(V/F),y:l(J/F)}}function ce(P,F,V){return{x:F/P||0,y:V/P||0}}function he(P,F){return P===F?j:c(P)>=c(F)?P<0?se:ie:F<0?ue:fe}function ee(P,F,V){V||(V=ve);var J=F[V[0]]-P[V[0]],Y=F[V[1]]-P[V[1]];return Math.sqrt(J*J+Y*Y)}function pe(P,F,V){V||(V=ve);var J=F[V[0]]-P[V[0]],Y=F[V[1]]-P[V[1]];return Math.atan2(Y,J)*180/Math.PI}function Re(P,F){return pe(F[1],F[0],Me)+pe(P[1],P[0],Me)}function we(P,F){return ee(F[0],F[1],Me)/ee(P[0],P[1],Me)}var Ue={mousedown:W,mousemove:oe,mouseup:ae},be="mousedown",ge="mousemove mouseup";function ze(){this.evEl=be,this.evWin=ge,this.pressed=!1,Z.apply(this,arguments)}m(ze,Z,{handler:function(F){var V=Ue[F.type];V&W&&(F.button===0||F.button===2)&&(this.pressed=!0),V&oe&&F.which!==1&&(V=ae),this.pressed&&(V&ae&&(this.pressed=!1),this.callback(this.manager,V,{pointers:[F],changedPointers:[F],pointerType:G,srcEvent:F}))}});var Ne={pointerdown:W,pointermove:oe,pointerup:ae,pointercancel:re,pointerout:re},Je={2:z,3:Q,4:G,5:X},Ke="pointerdown",De="pointermove pointerup pointercancel";n.MSPointerEvent&&!n.PointerEvent&&(Ke="MSPointerDown",De="MSPointerMove MSPointerUp MSPointerCancel");function Ye(){this.evEl=Ke,this.evWin=De,Z.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}m(Ye,Z,{handler:function(F){var V=this.store,J=!1,Y=!1,le=F.type.toLowerCase().replace("ms",""),Ee=Ne[le],ke=Je[F.pointerType]||F.pointerType,Ze=ke==z,He=L(V,F.pointerId,"pointerId");Ee&W&&(F.button===0||F.button===2||Ze)?He<0&&(V.push(F),He=V.length-1):Ee&(ae|re)?J=!0:!Ze&&F.buttons===0&&(J=!0,Y=!0,Ee=Ne.pointerup),!(He<0)&&(Y||(V[He]=F),this.callback(this.manager,Ee,{pointers:V,changedPointers:[F],pointerType:ke,srcEvent:V[He]}),J&&V.splice(He,1))}});var Ve={touchstart:W,touchmove:oe,touchend:ae,touchcancel:re},nt="touchstart",qe="touchstart touchmove touchend touchcancel";function Qe(){this.evTarget=nt,this.evWin=qe,this.started=!1,Z.apply(this,arguments)}m(Qe,Z,{handler:function(F){var V=Ve[F.type];if(V===W&&(this.started=!0),!!this.started){var J=Ie.call(this,F,V);V&(ae|re)&&J[0].length-J[1].length===0&&(this.started=!1),this.callback(this.manager,V,{pointers:J[0],changedPointers:J[1],pointerType:z,srcEvent:F})}}});function Ie(P,F){var V=M(P.touches),J=M(P.changedTouches);return F&(ae|re)&&(V=w(V.concat(J),"identifier")),[V,J]}var Se={touchstart:W,touchmove:oe,touchend:ae,touchcancel:re},Be="touchstart touchmove touchend touchcancel";function Le(){this.evTarget=Be,this.targetIds={},Z.apply(this,arguments)}m(Le,Z,{handler:function(F){var V=Se[F.type],J=ot.call(this,F,V);J&&this.callback(this.manager,V,{pointers:J[0],changedPointers:J[1],pointerType:z,srcEvent:F})}});function ot(P,F){var V=M(P.touches),J=this.targetIds;if(F&(W|oe)&&V.length===1)return J[V[0].identifier]=!0,[V,V];var Y,le,Ee=M(P.changedTouches),ke=[],Ze=this.target;if(le=V.filter(function(He){return S(He.target,Ze)}),F===W)for(Y=0;Y<le.length;)J[le[Y].identifier]=!0,Y++;for(Y=0;Y<Ee.length;)J[Ee[Y].identifier]&&ke.push(Ee[Y]),F&(ae|re)&&delete J[Ee[Y].identifier],Y++;if(ke.length)return[w(le.concat(ke),"identifier"),ke]}var $e=2500,tt=25;function Xe(){Z.apply(this,arguments);var P=E(this.handler,this);this.touch=new Le(this.manager,P),this.mouse=new ze(this.manager,P),this.primaryTouch=null,this.lastTouches=[]}m(Xe,Z,{handler:function(F,V,J){var Y=J.pointerType==z,le=J.pointerType==G;if(!(le&&J.sourceCapabilities&&J.sourceCapabilities.firesTouchEvents)){if(Y)rt.call(this,V,J);else if(le&&st.call(this,J))return;this.callback(F,V,J)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});function rt(P,F){P&W?(this.primaryTouch=F.changedPointers[0].identifier,Ge.call(this,F)):P&(ae|re)&&Ge.call(this,F)}function Ge(P){var F=P.changedPointers[0];if(F.identifier===this.primaryTouch){var V={x:F.clientX,y:F.clientY};this.lastTouches.push(V);var J=this.lastTouches,Y=function(){var le=J.indexOf(V);le>-1&&J.splice(le,1)};setTimeout(Y,$e)}}function st(P){for(var F=P.srcEvent.clientX,V=P.srcEvent.clientY,J=0;J<this.lastTouches.length;J++){var Y=this.lastTouches[J],le=Math.abs(F-Y.x),Ee=Math.abs(V-Y.y);if(le<=tt&&Ee<=tt)return!0}return!1}var ct=s?H(s.style,"touchAction"):r,je=ct!==r,Fe="compute",We="auto",at="manipulation",Pe="none",Ce="pan-x",Oe="pan-y",ut=Lt();function vt(P,F){this.manager=P,this.set(F)}vt.prototype={set:function(P){P==Fe&&(P=this.compute()),je&&this.manager.element.style&&ut[P]&&(this.manager.element.style[ct]=P),this.actions=P.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var P=[];return v(this.manager.recognizers,function(F){b(F.options.enable,[F])&&(P=P.concat(F.getTouchAction()))}),At(P.join(" "))},preventDefaults:function(P){var F=P.srcEvent,V=P.offsetDirection;if(this.manager.session.prevented){F.preventDefault();return}var J=this.actions,Y=C(J,Pe)&&!ut[Pe],le=C(J,Oe)&&!ut[Oe],Ee=C(J,Ce)&&!ut[Ce];if(Y){var ke=P.pointers.length===1,Ze=P.distance<2,He=P.deltaTime<250;if(ke&&Ze&&He)return}if(!(Ee&&le)&&(Y||le&&V&ne||Ee&&V&Te))return this.preventSrc(F)},preventSrc:function(P){this.manager.session.prevented=!0,P.preventDefault()}};function At(P){if(C(P,Pe))return Pe;var F=C(P,Ce),V=C(P,Oe);return F&&V?Pe:F||V?F?Ce:Oe:C(P,at)?at:We}function Lt(){if(!je)return!1;var P={},F=n.CSS&&n.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(V){P[V]=F?n.CSS.supports("touch-action",V):!0}),P}var bt=1,it=2,gt=4,mt=8,pt=mt,Et=16,ft=32;function ht(P){this.options=g({},this.defaults,P||{}),this.id=I(),this.manager=null,this.options.enable=T(this.options.enable,!0),this.state=bt,this.simultaneous={},this.requireFail=[]}ht.prototype={defaults:{},set:function(P){return g(this.options,P),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(P){if(p(P,"recognizeWith",this))return this;var F=this.simultaneous;return P=Tt(P,this),F[P.id]||(F[P.id]=P,P.recognizeWith(this)),this},dropRecognizeWith:function(P){return p(P,"dropRecognizeWith",this)?this:(P=Tt(P,this),delete this.simultaneous[P.id],this)},requireFailure:function(P){if(p(P,"requireFailure",this))return this;var F=this.requireFail;return P=Tt(P,this),L(F,P)===-1&&(F.push(P),P.requireFailure(this)),this},dropRequireFailure:function(P){if(p(P,"dropRequireFailure",this))return this;P=Tt(P,this);var F=L(this.requireFail,P);return F>-1&&this.requireFail.splice(F,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(P){return!!this.simultaneous[P.id]},emit:function(P){var F=this,V=this.state;function J(Y){F.manager.emit(Y,P)}V<mt&&J(F.options.event+It(V)),J(F.options.event),P.additionalEvent&&J(P.additionalEvent),V>=mt&&J(F.options.event+It(V))},tryEmit:function(P){if(this.canEmit())return this.emit(P);this.state=ft},canEmit:function(){for(var P=0;P<this.requireFail.length;){if(!(this.requireFail[P].state&(ft|bt)))return!1;P++}return!0},recognize:function(P){var F=g({},P);if(!b(this.options.enable,[this,F])){this.reset(),this.state=ft;return}this.state&(pt|Et|ft)&&(this.state=bt),this.state=this.process(F),this.state&(it|gt|mt|Et)&&this.tryEmit(F)},process:function(P){},getTouchAction:function(){},reset:function(){}};function It(P){return P&Et?"cancel":P&mt?"end":P>?"move":P&it?"start":""}function Pt(P){return P==fe?"down":P==ue?"up":P==se?"left":P==ie?"right":""}function Tt(P,F){var V=F.manager;return V?V.get(P):P}function lt(){ht.apply(this,arguments)}m(lt,ht,{defaults:{pointers:1},attrTest:function(P){var F=this.options.pointers;return F===0||P.pointers.length===F},process:function(P){var F=this.state,V=P.eventType,J=F&(it|gt),Y=this.attrTest(P);return J&&(V&re||!Y)?F|Et:J||Y?V&ae?F|mt:F&it?F|gt:it:ft}});function _t(){lt.apply(this,arguments),this.pX=null,this.pY=null}m(_t,lt,{defaults:{event:"pan",threshold:10,pointers:1,direction:_e},getTouchAction:function(){var P=this.options.direction,F=[];return P&ne&&F.push(Oe),P&Te&&F.push(Ce),F},directionTest:function(P){var F=this.options,V=!0,J=P.distance,Y=P.direction,le=P.deltaX,Ee=P.deltaY;return Y&F.direction||(F.direction&ne?(Y=le===0?j:le<0?se:ie,V=le!=this.pX,J=Math.abs(P.deltaX)):(Y=Ee===0?j:Ee<0?ue:fe,V=Ee!=this.pY,J=Math.abs(P.deltaY))),P.direction=Y,V&&J>F.threshold&&Y&F.direction},attrTest:function(P){return lt.prototype.attrTest.call(this,P)&&(this.state&it||!(this.state&it)&&this.directionTest(P))},emit:function(P){this.pX=P.deltaX,this.pY=P.deltaY;var F=Pt(P.direction);F&&(P.additionalEvent=this.options.event+F),this._super.emit.call(this,P)}});function xt(){lt.apply(this,arguments)}m(xt,lt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Pe]},attrTest:function(P){return this._super.attrTest.call(this,P)&&(Math.abs(P.scale-1)>this.options.threshold||this.state&it)},emit:function(P){if(P.scale!==1){var F=P.scale<1?"in":"out";P.additionalEvent=this.options.event+F}this._super.emit.call(this,P)}});function St(){ht.apply(this,arguments),this._timer=null,this._input=null}m(St,ht,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[We]},process:function(P){var F=this.options,V=P.pointers.length===F.pointers,J=P.distance<F.threshold,Y=P.deltaTime>F.time;if(this._input=P,!J||!V||P.eventType&(ae|re)&&!Y)this.reset();else if(P.eventType&W)this.reset(),this._timer=d(function(){this.state=pt,this.tryEmit()},F.time,this);else if(P.eventType&ae)return pt;return ft},reset:function(){clearTimeout(this._timer)},emit:function(P){this.state===pt&&(P&&P.eventType&ae?this.manager.emit(this.options.event+"up",P):(this._input.timeStamp=f(),this.manager.emit(this.options.event,this._input)))}});function Mt(){lt.apply(this,arguments)}m(Mt,lt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Pe]},attrTest:function(P){return this._super.attrTest.call(this,P)&&(Math.abs(P.rotation)>this.options.threshold||this.state&it)}});function Ct(){lt.apply(this,arguments)}m(Ct,lt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:ne|Te,pointers:1},getTouchAction:function(){return _t.prototype.getTouchAction.call(this)},attrTest:function(P){var F=this.options.direction,V;return F&(ne|Te)?V=P.overallVelocity:F&ne?V=P.overallVelocityX:F&Te&&(V=P.overallVelocityY),this._super.attrTest.call(this,P)&&F&P.offsetDirection&&P.distance>this.options.threshold&&P.maxPointers==this.options.pointers&&c(V)>this.options.velocity&&P.eventType&ae},emit:function(P){var F=Pt(P.offsetDirection);F&&this.manager.emit(this.options.event+F,P),this.manager.emit(this.options.event,P)}});function Rt(){ht.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}m(Rt,ht,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[at]},process:function(P){var F=this.options,V=P.pointers.length===F.pointers,J=P.distance<F.threshold,Y=P.deltaTime<F.time;if(this.reset(),P.eventType&W&&this.count===0)return this.failTimeout();if(J&&Y&&V){if(P.eventType!=ae)return this.failTimeout();var le=this.pTime?P.timeStamp-this.pTime<F.interval:!0,Ee=!this.pCenter||ee(this.pCenter,P.center)<F.posThreshold;this.pTime=P.timeStamp,this.pCenter=P.center,!Ee||!le?this.count=1:this.count+=1,this._input=P;var ke=this.count%F.taps;if(ke===0)return this.hasRequireFailures()?(this._timer=d(function(){this.state=pt,this.tryEmit()},F.interval,this),it):pt}return ft},failTimeout:function(){return this._timer=d(function(){this.state=ft},this.options.interval,this),ft},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==pt&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}});function yt(P,F){return F=F||{},F.recognizers=T(F.recognizers,yt.defaults.preset),new wt(P,F)}yt.VERSION="2.0.7",yt.defaults={domEvents:!1,touchAction:Fe,enable:!0,inputTarget:null,inputClass:null,preset:[[Mt,{enable:!1}],[xt,{enable:!1},["rotate"]],[Ct,{direction:ne}],[_t,{direction:ne},["swipe"]],[Rt],[Rt,{event:"doubletap",taps:2},["tap"]],[St]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var Ft=1,Bt=2;function wt(P,F){this.options=g({},yt.defaults,F||{}),this.options.inputTarget=this.options.inputTarget||P,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=P,this.input=te(this),this.touchAction=new vt(this,this.options.touchAction),Ht(this,!0),v(this.options.recognizers,function(V){var J=this.add(new V[0](V[1]));V[2]&&J.recognizeWith(V[2]),V[3]&&J.requireFailure(V[3])},this)}wt.prototype={set:function(P){return g(this.options,P),P.touchAction&&this.touchAction.update(),P.inputTarget&&(this.input.destroy(),this.input.target=P.inputTarget,this.input.init()),this},stop:function(P){this.session.stopped=P?Bt:Ft},recognize:function(P){var F=this.session;if(!F.stopped){this.touchAction.preventDefaults(P);var V,J=this.recognizers,Y=F.curRecognizer;(!Y||Y&&Y.state&pt)&&(Y=F.curRecognizer=null);for(var le=0;le<J.length;)V=J[le],F.stopped!==Bt&&(!Y||V==Y||V.canRecognizeWith(Y))?V.recognize(P):V.reset(),!Y&&V.state&(it|gt|mt)&&(Y=F.curRecognizer=V),le++}},get:function(P){if(P instanceof ht)return P;for(var F=this.recognizers,V=0;V<F.length;V++)if(F[V].options.event==P)return F[V];return null},add:function(P){if(p(P,"add",this))return this;var F=this.get(P.options.event);return F&&this.remove(F),this.recognizers.push(P),P.manager=this,this.touchAction.update(),P},remove:function(P){if(p(P,"remove",this))return this;if(P=this.get(P),P){var F=this.recognizers,V=L(F,P);V!==-1&&(F.splice(V,1),this.touchAction.update())}return this},on:function(P,F){if(P!==r&&F!==r){var V=this.handlers;return v(B(P),function(J){V[J]=V[J]||[],V[J].push(F)}),this}},off:function(P,F){if(P!==r){var V=this.handlers;return v(B(P),function(J){F?V[J]&&V[J].splice(L(V[J],F),1):delete V[J]}),this}},emit:function(P,F){this.options.domEvents&&Ot(P,F);var V=this.handlers[P]&&this.handlers[P].slice();if(!(!V||!V.length)){F.type=P,F.preventDefault=function(){F.srcEvent.preventDefault()};for(var J=0;J<V.length;)V[J](F),J++}},destroy:function(){this.element&&Ht(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}};function Ht(P,F){var V=P.element;if(V.style){var J;v(P.options.cssProps,function(Y,le){J=H(V.style,le),F?(P.oldCssProps[J]=V.style[J],V.style[J]=Y):V.style[J]=P.oldCssProps[J]||""}),F||(P.oldCssProps={})}}function Ot(P,F){var V=t.createEvent("Event");V.initEvent(P,!0,!0),V.gesture=F,F.target.dispatchEvent(V)}return g(yt,{INPUT_START:W,INPUT_MOVE:oe,INPUT_END:ae,INPUT_CANCEL:re,STATE_POSSIBLE:bt,STATE_BEGAN:it,STATE_CHANGED:gt,STATE_ENDED:mt,STATE_RECOGNIZED:pt,STATE_CANCELLED:Et,STATE_FAILED:ft,DIRECTION_NONE:j,DIRECTION_LEFT:se,DIRECTION_RIGHT:ie,DIRECTION_UP:ue,DIRECTION_DOWN:fe,DIRECTION_HORIZONTAL:ne,DIRECTION_VERTICAL:Te,DIRECTION_ALL:_e,Manager:wt,Input:Z,TouchAction:vt,TouchInput:Le,MouseInput:ze,PointerEventInput:Ye,TouchMouseInput:Xe,SingleTouchInput:Qe,Recognizer:ht,AttrRecognizer:lt,Tap:Rt,Pan:_t,Swipe:Ct,Pinch:xt,Rotate:Mt,Press:St,on:_,off:R,each:v,merge:y,extend:h,assign:g,inherit:m,bindFn:E,prefixed:H}),yt}(typeof window!="undefined"?window:{},typeof document!="undefined"?document:{});function calculateThreeMouse(n,t,e){var r=t.getBoundingClientRect(),o=r.top,s=r.left,u=r.width,l=r.height;return e&&(s=s+u*e.left,o=o+l*(1-e.bottom-e.height),u=u*e.width,l=l*e.height),new THREE__namespace.Vector2((n.x-s)/u*2-1,-(n.y-o)/l*2+1)}var camera$2=new THREE__namespace.OrthographicCamera(-1,1,1,-1,0,1),geometry$5=new THREE__namespace.BufferGeometry;geometry$5.setAttribute("position",new THREE__namespace.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3));geometry$5.setAttribute("uv",new THREE__namespace.Float32BufferAttribute([0,2,0,0,2,0],2));var mesh$4=new THREE__namespace.Mesh(geometry$5),scene$2=new THREE__namespace.Scene;scene$2.add(mesh$4);var DEFAULT_VERTEX_SHADER=`
|
|
1437
1437
|
varying vec2 vUv;
|
|
1438
1438
|
void main() {
|
|
1439
1439
|
vUv = uv;
|
|
@@ -1593,7 +1593,7 @@ void main() {
|
|
|
1593
1593
|
gl_FragColor = vec4(videoColor.rgb, match * blendAlpha * alpha);
|
|
1594
1594
|
#endif
|
|
1595
1595
|
}
|
|
1596
|
-
`,PanoVideo=function(){function n(){this.material=new THREE__namespace.ShaderMaterial({vertexShader:PANO_VIDEO_MATERIAL_VERTEX_SHADER,fragmentShader:PANO_VIDEO_TILE_MATERIAL_FRAGMENT_SHADER,uniforms:{size:new THREE__namespace.Uniform(null),matrix:new THREE__namespace.Uniform(null),alpha:new THREE__namespace.Uniform(null),map:new THREE__namespace.Uniform(null)},depthTest:!1,depthWrite:!1,defines:{USE_PANO_VIDEO:!1},blending:THREE__namespace.CustomBlending,blendSrc:THREE__namespace.SrcAlphaFactor,blendDst:THREE__namespace.OneMinusSrcAlphaFactor,blendSrcAlpha:THREE__namespace.OneFactor,blendDstAlpha:THREE__namespace.OneMinusSrcAlphaFactor}),this.object=new THREE__namespace.Mesh(sharedGeometry$1,this.material),this.object.visible=!1,this.object.renderOrder=-1,this.object.frustumCulled=!1,this.object.name="pano-video",this.alphaMotion=new Motion({alpha:0})}return n.prototype.setMaterial=function(t){t?(this.material.uniforms.size.value=t.size,this.material.uniforms.matrix.value=t.matrix,this.material.uniforms.map.value=t.map,this.alphaMotion.set({alpha:t.alpha},500).catch(noop$1),this.material.uniforms.alpha.value=t.alpha):(this.material.uniforms.size.value=null,this.material.uniforms.matrix.value=null,this.material.uniforms.map.value=null,this.alphaMotion.set({alpha:0},0).catch(noop$1));var e=t!==null,r=this.material.defines.USE_PANO_VIDEO;e!==r&&(this.material.defines.USE_PANO_VIDEO=e,this.material.needsUpdate=!0,this.object.visible=t!==null)},n.prototype.updateTime=function(t){this.alphaMotion.ended||(this.alphaMotion.update(t),this.material.uniforms.alpha.value=this.alphaMotion.value.alpha)},n.prototype.dispose=function(){this.material.dispose()},n}(),ROTATE_Y_PI_MATRIX$1=new THREE__namespace.Matrix4().makeRotationAxis(new THREE__namespace.Vector3(0,1,0),Math.PI),PANO_TEXTURE_SCALE$1=new THREE__namespace.Vector3(-1,1,1),CubeRenderTargetPool=function(){function n(t){t===void 0&&(t=0),this.width=t,this.pool=[]}return Object.defineProperty(n.prototype,"size",{get:function(){return this.pool.length},enumerable:!1,configurable:!0}),n.prototype.create=function(){return new THREE__namespace.WebGLCubeRenderTarget(this.width,{stencilBuffer:!1,depthBuffer:!1})},n.prototype.pop=function(){var t=this.pool.pop();return t||this.create()},n.prototype.push=function(t){this.pool.indexOf(t)===-1&&this.pool.push(t)},n.prototype.clear=function(){for(var t=0,e=this.pool;t<e.length;t++){var r=e[t];r.dispose()}this.pool.length=0},n}(),defaultPanoramaControllerCustomInitArgs=__assign(__assign({},defaultPanoramaLikeControllerCustomInitArgs),{maxAccessibleDistance:5,panoTapTriggerRadius:.5,panoCircleMeshCreator:function(n){return new PanoCircleMesh},tiledCubeTextureLevel:2,tileLevelForFov:function(n,t){var e,r=function(l){return l/180*Math.PI},o=(e=Math.log2)!==null&&e!==void 0?e:function(l){return Math.log(l)*Math.LOG2E},s=t.height/2/Math.tan(r(n/2))*Math.tan(r(45))*2,u=Math.max(o(s/512),0);return u<2.3&&u>.1&&(u=1),u=u%1>.75?Math.ceil(u):Math.floor(u),u},tileMaxRequest:3,luminanceAdaptiveEffectEnable:!0}),PanoramaController=function(n){__extends(t,n);function t(e){var r=this,o,s,u,l,c=t.parseArgs(e);r=n.call(this,c)||this,r.mode="Panorama",r.tileLevel=0,r.initAnimationed=!1,r.maxAccessibleDistance=c.maxAccessibleDistance,r.panoTapTriggerRadius=c.panoTapTriggerRadius,r.panoCircleMeshCreator=c.panoCircleMeshCreator,r.tiledCubeTextureLevel=c.tiledCubeTextureLevel,r.tileLevelForFov=c.tileLevelForFov,r.tileMaxRequest=c.tileMaxRequest,r.luminanceAdaptiveEffectEnable=c.luminanceAdaptiveEffectEnable,r.luminanceAdaptiveEffect=new LuminanceAdaptiveEffect(r.renderer,r.modelScene,r.camera,r.models),r.colorCubeRenderTargetPool=new CubeRenderTargetPool,r.luminanceCubeRenderTargetPool=new CubeRenderTargetPool;var f=r.models.getMaterial()||{},d=f.pano0,p=f.pano1;d&&(p==null?void 0:p.map)!==d.map&&(r.models.setMaterial({pano0:p}),d.map.dispose(),d.map instanceof TileCubeTextureTarget&&d.map.cubeRenderTarget&&r.colorCubeRenderTargetPool.push(d.map.cubeRenderTarget),d.luminanceMap&&(d.luminanceMap.dispose(),d.luminanceMap instanceof TileCubeTextureTarget&&d.luminanceMap.cubeRenderTarget&&r.luminanceCubeRenderTargetPool.push(d.luminanceMap.cubeRenderTarget)));var v=new Set;d&&v.add(d),p&&v.add(p);for(var A=r.colorCubeRenderTargetPool.size+v.size;A<2;A++){var g=Math.max(1024*r.tiledCubeTextureLevel,512),h=r.colorCubeRenderTargetPool.create();h.setSize(g,g),renderCubeTextureToCubeRenderTarget(null,h,r.renderer),r.colorCubeRenderTargetPool.push(h)}r.panoMeshes={},r.updatePanoMeshes(),r.locationMotion=new Motion({count:0,distance:r.camera.pose.distance}),r.modelAlphaMotion=new Motion({modelAlpha:(s=(o=r.models.getMaterial())===null||o===void 0?void 0:o.modelAlpha)!==null&&s!==void 0?s:0}),r.perspToOrthoMotion=new Motion({perspToOrtho:r.camera.perspToOrtho.x}),r.panoResources={},r.panoResources[r.locationMotion.keyframes[0].key=r.locationMotion.keyframes[1].key=createUuid()]={panoId:panoStringify(r.currentPano),panoPicture:(l=(u=r.models.getMaterial())===null||u===void 0?void 0:u.pano1)!==null&&l!==void 0?l:null,position:r.camera.pose.offset.clone(),effect:"fly",fixCameraTransform:new THREE__namespace.Matrix4};var y=r.works.getResolvedObserver(r.currentPano);return r.textureLoader=new TextureLoader,r.tiling=new Tiling(y?getFetcher(y.work):internalFetcher,r.tiledCubeTextureLevel+1,r.imageOptions),r.scene.add(r.tiling.object),r.panoVideo=new PanoVideo,r.scene.add(r.panoVideo.object),r}return t.parseArgs=function(e){var r,o,s,u,l,c,f;if(e instanceof t)return e;var d=n.parseArgs.call(this,e);return __assign(__assign({},d),{maxAccessibleDistance:(r=e.maxAccessibleDistance)!==null&&r!==void 0?r:defaultPanoramaControllerCustomInitArgs.maxAccessibleDistance,panoTapTriggerRadius:(o=e.panoTapTriggerRadius)!==null&&o!==void 0?o:defaultPanoramaControllerCustomInitArgs.panoTapTriggerRadius,panoCircleMeshCreator:(s=e.panoCircleMeshCreator)!==null&&s!==void 0?s:defaultPanoramaControllerCustomInitArgs.panoCircleMeshCreator,tiledCubeTextureLevel:(u=e.tiledCubeTextureLevel)!==null&&u!==void 0?u:defaultPanoramaControllerCustomInitArgs.tiledCubeTextureLevel,tileLevelForFov:(l=e.tileLevelForFov)!==null&&l!==void 0?l:defaultPanoramaControllerCustomInitArgs.tileLevelForFov,tileMaxRequest:(c=e.tileMaxRequest)!==null&&c!==void 0?c:defaultPanoramaControllerCustomInitArgs.tileMaxRequest,luminanceAdaptiveEffectEnable:(f=e.luminanceAdaptiveEffectEnable)!==null&&f!==void 0?f:defaultPanoramaControllerCustomInitArgs.luminanceAdaptiveEffectEnable})},t.initAnimationEndState=function(e){var r=this.parseArgs(e),o=n.initAnimationEndState.call(this,r);return __assign(__assign({},o),{mode:"Panorama"})},t.prototype.updateConfiguration=function(e){var r=this,o=n.prototype.updateConfiguration.call(this,e);if(o===!1)return!1;if(e.maxAccessibleDistance!==void 0&&this.maxAccessibleDistance!==e.maxAccessibleDistance&&(this.maxAccessibleDistance=e.maxAccessibleDistance),e.panoTapTriggerRadius!==void 0&&this.panoTapTriggerRadius!==e.panoTapTriggerRadius&&(this.panoTapTriggerRadius=e.panoTapTriggerRadius),e.panoCircleMeshCreator!==void 0&&this.panoCircleMeshCreator!==e.panoCircleMeshCreator&&(this.panoCircleMeshCreator=e.panoCircleMeshCreator,this.panoMeshes)){for(var s=Object.keys(this.panoMeshes),u=0,l=s;u<l.length;u++){var c=l[u],f=this.panoMeshes[c];this.helper.remove(f),f.dispose(),delete this.panoMeshes[c]}this.updatePanoMeshes()}return e.tiledCubeTextureLevel!==void 0&&this.tiledCubeTextureLevel!==e.tiledCubeTextureLevel&&(this.tiledCubeTextureLevel=e.tiledCubeTextureLevel,setTimeout(function(){r.moveToPano(r.currentPano,{},!0)},30)),e.tileLevelForFov!==void 0&&this.tileLevelForFov!==e.tileLevelForFov&&(this.tileLevelForFov=e.tileLevelForFov),e.tileMaxRequest!==void 0&&this.tileMaxRequest!==e.tileMaxRequest&&(this.tileMaxRequest=e.tileMaxRequest),e.luminanceAdaptiveEffectEnable!==void 0&&this.luminanceAdaptiveEffectEnable!==e.luminanceAdaptiveEffectEnable&&(this.luminanceAdaptiveEffectEnable=e.luminanceAdaptiveEffectEnable),!0},t.prototype.destroy=function(){var e,r;if(n.prototype.destroy.call(this),this.scene.remove(this.tiling.object),this.tiling.dispose(),this.locationMotion.dispose(),this.colorCubeRenderTargetPool.clear(),this.luminanceCubeRenderTargetPool.clear(),delete this.pendingTextureTask,this.panoMeshes)for(var o=Object.keys(this.panoMeshes),s=0,u=o;s<u.length;s++){var l=u[s],c=this.panoMeshes[l];this.helper.remove(c),c.dispose(),delete this.panoMeshes[l]}var f=this.videoTexture.image;f.pause(),f.oncanplay=function(){},f.ontimeupdate=function(){},this.scene.remove(this.panoVideo.object),this.panoVideo.setMaterial(null),this.panoVideo.dispose();for(var d=(e=this.models.getMaterial())!==null&&e!==void 0?e:{},p=d.pano0,v=d.pano1,A=0,g=Object.keys(this.panoResources);A<g.length;A++){var h=g[A],y=this.panoResources[h];if(y.panoPicture){var m=y.panoPicture.map;m&&m!==(p==null?void 0:p.map)&&m!==(v==null?void 0:v.map)&&(m.dispose(),(r=y.panoPicture.luminanceMap)===null||r===void 0||r.dispose(),y.panoPicture=null)}delete this.panoResources[h]}this.luminanceAdaptiveEffect.dispose()},t.prototype.isReady=function(){return this.locationMotion.ended!==!0?!1:n.prototype.isReady.call(this)},t.prototype.isTileReady=function(){var e,r,o,s=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),u=((e=s.panoPicture)===null||e===void 0?void 0:e.map)instanceof TileCubeTextureTarget&&(o=(r=s.panoPicture)===null||r===void 0?void 0:r.map.tilePending)!==null&&o!==void 0?o:0,l=u<=0,c=this.tiling.pedding,f=this.tiling.object.visible&&c<=0;return this.initAnimationed&&l&&f},t.prototype.updateWork=function(e,r,o,s){var u=this;this.userAction=s,this.works=e;var l=t.initAnimationEndState(__assign(__assign({},this),{initial:{currentState:__assign(__assign({},this.currentPano),this.camera.pose),duration:o.duration,effect:o.effect,state:r,userAction:s}})),c={workCode:l.workCode,panoIndex:l.panoIndex},f=this.works.getWork(c.workCode);return this.tiling.setFetcher(f?getFetcher(f):internalFetcher),this.tiling.cleanup(),this.initAnimationed=!1,this.hideIntersectMesh(),this.updatePanoMeshes(),this.moveToPano(c,{effect:o.effect,duration:o.duration,longitude:r.longitude,latitude:r.latitude,fov:r.fov,moveEndCallback:function(){u.initAnimationed=!0},moveCancelCallback:function(){u.initAnimationed=!0}},s),!0},t.prototype.updateModel=function(e){this.models=e,this.updatePanoMeshes()},t.prototype.updateTime=function(e,r){var o=this,s,u,l,c,f,d,p,v,A,g;if(!this.destroyed){var h={},y={},m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),E=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),b=!1;if(this.cameraMotion.ended===!1&&(this.cameraMotion.update(e),y.longitude=this.cameraMotion.value.longitude,y.latitude=this.cameraMotion.value.latitude,y.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended===!1&&(this.modelAlphaMotion.update(e),h.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended===!1&&(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended===!1){this.locationMotion.update(e);var T=this.locationMotion.getKeyFrameSegment(e),_=T[0],R=T[1],S=this.panoResourceFromLocationMotionKeyframe(_),C=this.panoResourceFromLocationMotionKeyframe(R),B=new THREE__namespace.Vector3().copy(S.position),L=new THREE__namespace.Vector3().copy(C.position),M=this.locationMotion.value.count-R.value.count+1;h.progress=M,C.panoPicture&&(M<1?S.panoPicture&&(h.pano0=S.panoPicture):h.pano0=C.panoPicture,h.pano1=C.panoPicture),C.effect==="montage"?h.transition="BLACK":C.effect==="spread"?h.transition="SPREAD":h.transition="FADE",(C.effect==="zoomin"||C.effect==="zoomout")&&(h.progress=Math.pow(M,3)),M<1&&C.effect!=="fly"&&(h.pano0&&S.panoPicture&&(h.pano0={map:h.pano0.map,zoom:h.pano0.zoom,luminanceMap:h.pano0.luminanceMap,matrix:S.panoPicture.matrix.clone().premultiply(S.fixCameraTransform).setPosition(C.position)}),B.copy(L),b=!0),y.distance=this.locationMotion.value.distance,y.offset=new THREE__namespace.Vector3(B.x+(L.x-B.x)*M,B.y+(L.y-B.y)*M,B.z+(L.z-B.z)*M);for(var w=[],H=[],O=0,I=this.locationMotion.keyframes;O<I.length;O++){var N=I[O],k=N.key,U=N.progress;k!==void 0&&(w.push(k),U>this.locationMotion.progress&&H.push(k))}for(var D=0,q=Object.keys(this.panoResources);D<q.length;D++){var z=q[D];if(!(H.indexOf(z)>=0)){var Q=this.panoResources[z];if(Q.panoPicture){var G=Q.panoPicture.map,X=Q.panoPicture.luminanceMap;if(G){if(G===((s=h.pano0)===null||s===void 0?void 0:s.map)||G===((u=h.pano1)===null||u===void 0?void 0:u.map))continue;G instanceof TileCubeTextureTarget&&G.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(G.cubeRenderTarget),G.dispose(),X&&(X instanceof TileCubeTextureTarget&&X.cubeRenderTarget&&this.luminanceCubeRenderTargetPool.push(X.cubeRenderTarget),X.dispose()),Q.panoPicture=null}}w.indexOf(z)>=0||delete this.panoResources[z]}}this.currentPano=panoParse(C.panoId),this.emit("pano.moving",createEvent("pano.moving",{userAction:this.userAction,prevPano:panoParse(m.panoId),state:__assign(__assign(__assign(__assign({},panoParse(E.panoId)),{mode:this.mode}),clonePose(this.camera.pose)),y),options:{},progress:this.locationMotion.progress,error:null}))}isEmptyObject(h)===!1&&(!((l=h.pano0)===null||l===void 0)&&l.map&&h.pano0.map instanceof TileCubeTextureTarget&&!h.pano0.map.cubeRenderTarget&&(h.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((c=h.pano0)===null||c===void 0)&&c.luminanceMap&&h.pano0.luminanceMap instanceof TileCubeTextureTarget&&!h.pano0.luminanceMap.cubeRenderTarget&&(h.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),!((f=h.pano1)===null||f===void 0)&&f.map&&h.pano1.map instanceof TileCubeTextureTarget&&!h.pano1.map.cubeRenderTarget&&(h.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((d=h.pano1)===null||d===void 0)&&d.luminanceMap&&h.pano1.luminanceMap instanceof TileCubeTextureTarget&&!h.pano1.luminanceMap.cubeRenderTarget&&(h.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.models.setMaterial(h)),isEmptyObject(y)===!1&&this.setCamera(y);var $=this.works.getResolvedObserver(this.currentPano),W=this.locationMotion.ended?this.getForwardObserverOrNot():null;if(this.camera.pose.distance>.1||b)for(var oe=0,ae=Object.keys(this.panoMeshes);oe<ae.length;oe++){var re=ae[oe],j=this.panoMeshes[re];j.setOpacity(0),j.setCurrent(!1),j.updateTime&&j.updateTime(e,r),j.visible=!1}else if($){var se=arrayMin($.visibleIds,function(me){var ce=o.works.getResolvedObserver(me);return ce?$.standingPosition.distanceTo(ce.standingPosition):1/0},!0),ie=se[1];ie=clamp$1(ie,2.5,1/0);for(var ue=$.visibleIds.concat(panoStringify(this.currentPano)),fe=this.camera.getDirection(new THREE__namespace.Vector3),ne=0,Te=Object.keys(this.panoMeshes);ne<Te.length;ne++){var re=Te[ne],j=this.panoMeshes[re],_e=this.works.getResolvedObserver(re);if(ue.indexOf(re)===-1)j.setCurrent(!1),j.setOpacity(0);else if(!_e)j.setCurrent(!1),j.setOpacity(0);else if(!_e.loadable&&!_e.active)j.setCurrent(!1),j.setOpacity(0);else{var ve=j.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);j.setCurrent(!j.loading&&j.progress===0&&W!==null&&W.panoId===re),j.setOpacity(ve<.01?0:clamp$1(ie/ve*1.2,.4,.85));var Me=this.camera.position.clone().setY(j.position.y),Z=new THREE__namespace.Vector3().copy(j.position).sub(Me).normalize();if(re===panoStringify(this.currentPano)){var te=clamp$1((.5-Me.distanceTo(j.position))/.5,0,1);Z.multiplyScalar(1-te).add(fe.clone().multiplyScalar(te))}Z.length()>0&&j.quaternion.setFromEuler(new THREE__namespace.Euler(0,Math.atan2(Z.x,Z.z),0))}j.updateTime&&j.updateTime(e,r)}}var K=this.tileLevel=function(){if(o.tileLevelForFov===!1)return 0;var me=o.renderer.getDrawingBufferSize(new THREE__namespace.Vector2);me.width*=o.scissor.width,me.height*=o.scissor.height;var ce=E.panoId,he=o.works.getResolvedObserver(ce),ee=o.imageOptions.size;if(typeof ee=="undefined"&&he){var pe=he.images.up.match(/\/cube_(\d+)\//);pe&&(ee=Number(pe[1]))}typeof ee=="undefined"&&(ee=2048);var Re=0;ee>=1024&&(Re=1),ee>=2048&&(Re=2),ee>=4096&&(Re=3),ee>=8192&&(Re=4);var we=o.tileLevelForFov(o.camera.fov,me);return we>Re?we:0}(),ye=function(){var me=o.camera.quaternion.clone(),ce=o.works.getResolvedObserver(E.panoId),he=ce!=null?ce:$;he&&me.premultiply(he.quaternion.clone().inverse());var ee=new THREE__namespace.Matrix4().makeRotationFromQuaternion(me),pe=new THREE__namespace.Matrix4().getInverse(ee),Re=new THREE__namespace.Frustum().setFromProjectionMatrix(new THREE__namespace.Matrix4().multiplyMatrices(o.camera.projectionMatrix,pe));return Re}();E.panoId===panoStringify(this.currentPano)&&(((p=E.panoPicture)===null||p===void 0?void 0:p.map)instanceof TileCubeTextureTarget&&(E.panoPicture.map.maxRequest=this.tileMaxRequest,E.panoPicture.map.update(ye,Math.min(K,this.tiledCubeTextureLevel)),E.panoPicture.map.needsRender===!0&&(E.panoPicture.map.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0)),((v=E.panoPicture)===null||v===void 0?void 0:v.luminanceMap)instanceof TileCubeTextureTarget&&(E.panoPicture.luminanceMap.maxRequest=this.tileMaxRequest,E.panoPicture.luminanceMap.update(ye,Math.min(K,this.tiledCubeTextureLevel)),E.panoPicture.luminanceMap.needsRender===!0&&(E.panoPicture.luminanceMap.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0)));{var de=this.tiling.object.visible;if(this.initAnimationed){var xe=E.panoId,ge=this.works.getResolvedObserver(xe);ge?isSimilarVector3(this.camera.position,ge.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==xe&&this.tiling.cleanup(),this.tiling.panoId=xe,this.tiling.setResource((g=(A=ge.images)===null||A===void 0?void 0:A.tiles)!==null&&g!==void 0?g:[],this.enableIOSEDR&&ge.images.luminance?ge.images.luminance:null),this.tiling.setFetcher(getFetcher(ge.work)),this.tiling.setRotation(ge.quaternion),this.tiling.setPosition(ge.position),this.tiling.maxRequest=this.tileMaxRequest,K>this.tiledCubeTextureLevel?this.tiling.update(ye,K,e):this.tiling.update(ye,0,e)):this.tiling.object.visible=!1:this.tiling.object.visible=!1}else this.tiling.object.visible=!1;de!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0,this.modelSceneNeedsRender=!0)}this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(e),this.intersectMesh.scale.setScalar(clamp$1(this.cameraMotion.value.fov/45,0,1))}},t.prototype.render=function(e,r){var o=this.renderer.getRenderTarget(),s=this.works.getResolvedObserver(this.currentPano);s&&s.video&&(this.needsRender=!0,this.modelSceneNeedsRender=!0),this.updateScreenBuffer(r),this.enableFragDepth?(e&&(r==="luminance"?(this.luminanceAdaptiveEffect.enable=this.luminanceAdaptiveEffectEnable,this.luminanceAdaptiveEffect.render(this.screenBuffers)):(this.renderer.setRenderTarget(this.modelRenderTarget),this.renderer.render(this.modelScene,this.camera))),this.depthCopyPass.render(this.modelRenderTarget.depthTexture,o),this.renderer.autoClearDepth=!1,this.renderer.autoClearColor=!0,this.copyPass.render(this.modelRenderTarget,o),this.renderer.setRenderTarget(o),this.renderer.autoClearColor=!1,this.renderer.autoClearDepth=!1,this.renderer.render(this.scene,this.camera),this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0):r==="luminance"?(this.luminanceAdaptiveEffect.enable=this.luminanceAdaptiveEffectEnable,this.luminanceAdaptiveEffect.render(this.screenBuffers)):(this.renderer.render(this.modelScene,this.camera),this.renderer.autoClearColor=!1,this.renderer.autoClearDepth=!1,this.renderer.render(this.scene,this.camera),this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0)},t.prototype.postProcessing=function(e,r){if(!this.destroyed&&r==="luminance")return this.luminanceAdaptiveEffect||(this.luminanceAdaptiveEffect=new LuminanceAdaptiveEffect(this.renderer,this.scene,this.camera,this.models),this.luminanceAdaptiveEffect.enable=this.luminanceAdaptiveEffectEnable),this.luminanceAdaptiveEffect.render(e)},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(now())[1],r=this.locationMotion.getKeyFrameSegment(now())[1],o=this.panoResourceFromLocationMotionKeyframe(r),s=this.works.getResolvedObserver(o.panoId);return{workCode:s?s.work.workCode:this.currentPano.workCode,panoIndex:s?s.panoIndex:this.currentPano.panoIndex,mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:s?s.position.clone():this.camera.position.clone(),distance:this.locationMotion.value.distance}},t.prototype.moveToPano=function(e,r,o){var s=this,u,l,c,f,d=(u=r.effect)!==null&&u!==void 0?u:"fly";this.userAction=o,this.stopMomentumMovement();var p=this.works.getResolvedObserver(e);if(!p)throw new Error("Invalid PanoId ".concat(JSON.stringify(e)));var v=getImageSizeFromURL(p.images.up),A=this.imageOptions.size;typeof A=="undefined"&&p&&v&&(A=Number(v)),typeof A=="undefined"&&(A=2048);var g=this.imageOptions.transform,h=__assign({key:"pano.".concat(p.panoId)},pick(this.imageOptions,["format","size","quality","sharpen","mappings"])),y=p.images,m=(c=(l=p.images.tiles)===null||l===void 0?void 0:l.filter(function(I){return I.size>A}))!==null&&c!==void 0?c:null,E=g,b={key:"pano_luminance.".concat(p.panoId),size:h.size?h.size/2:void 0},T=this.enableIOSEDR&&p.images.luminance?p.images.luminance:null,_=function(){if(!p.images.tiles||!T)return null;var I=getImageSizeFromURL(T.up);return I?m==null?void 0:m.map(function(N){var k=N.size*N.scale/2;return I<k?{level:N.level,size:k,scale:1,back:replaceImageSize(T.back,k),front:replaceImageSize(T.front,k),left:replaceImageSize(T.left,k),right:replaceImageSize(T.right,k),up:replaceImageSize(T.up,k),down:replaceImageSize(T.down,k)}:{level:N.level,size:I,scale:k/I,back:T.back,front:T.front,left:T.left,right:T.right,up:T.up,down:T.down}}):null}(),R="pano:"+jsonHash([y,h,g,this.tiledCubeTextureLevel]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===R)return;var S=this.pendingTextureTask.panoId;(f=this.panoMeshes[S])===null||f===void 0||f.setProgress(0),this.emit("pano.texture.abort",createEvent("pano.texture.abort",{error:null,progress:0,meta:null,pano:p.pano}))}var C="move-to-pano-"+p.panoId;this.pending.add(C);var B=this.models.getMaterial()||{},L=B.pano0,M=B.pano1,w;if(L&&L.map.name===R&&L.luminanceMap!==null===this.enableIOSEDR?w=L:(M==null?void 0:M.map.name)===R&&M.luminanceMap!==null===this.enableIOSEDR&&(w=M),w){var H={panoId:p.panoId,effect:d,panoPicture:{zoom:1,map:w.map,luminanceMap:w.luminanceMap,matrix:new THREE__namespace.Matrix4().compose(p.position,p.quaternion,PANO_TEXTURE_SCALE$1)},position:p.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};AnimationFrameLoop.shared.add(function(){s.pending.delete(C),s.doMoveToPano(p.pano,H,r)},!0,1);return}this.pendingTextureTask={panoId:p.panoId,hash:R,onLoad:function(I,N){var k;if(s.pending.delete(C),s.destroyed)I.body.dispose();else{I.body.name=R;var U={panoId:p.panoId,effect:d,panoPicture:{zoom:1,map:I.body,luminanceMap:(k=N==null?void 0:N.body)!==null&&k!==void 0?k:null,matrix:new THREE__namespace.Matrix4().compose(p.position,p.quaternion,PANO_TEXTURE_SCALE$1)},position:p.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};s.doMoveToPano(p.pano,U,r)}},onError:function(I){s.pending.delete(C);var N=__assign(__assign(__assign({},p.pano),{mode:s.mode}),clonePose(s.camera.pose));s.emit("pano.error",createEvent("pano.error",{error:I,userAction:s.userAction,options:r,prevPano:s.currentPano,progress:0,state:N})),s.emit("pano.cancel",createEvent("pano.cancel",{error:I,userAction:s.userAction,options:r,prevPano:s.currentPano,progress:0,state:N})),s.emit("error",I),r.moveCancelCallback&&r.moveCancelCallback()}};var O=this.panoMeshes[p.panoId];O&&O.tap&&O.tap(),Promise.all([this.tileLevelForFov&&m&&m.length?this.textureLoader.loadTiledCubeTexture(y,m,{tileMaxLevel:this.tiledCubeTextureLevel,imageURL:{transform:g,options:h},minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,generateMipmaps:!1,format:THREE__namespace.RGBAFormat,viaAjax:!0,fetcher:getFetcher(p.work)},void 0,void 0,function(I){var N,k;s.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:I,meta:null,pano:p.pano})),((N=s.pendingTextureTask)===null||N===void 0?void 0:N.hash)===R&&((k=s.panoMeshes[p.panoId])===null||k===void 0||k.setProgress(I))},this.renderer):this.textureLoader.loadCubeTexture(y,{imageURL:{transform:g,options:h},format:THREE__namespace.RGBAFormat,viaAjax:!0,fetcher:getFetcher(p.work)},void 0,void 0,function(I){var N,k;s.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:I,meta:null,pano:p.pano})),((N=s.pendingTextureTask)===null||N===void 0?void 0:N.hash)===R&&((k=s.panoMeshes[p.panoId])===null||k===void 0||k.setProgress(I))},this.renderer),T?this.tileLevelForFov&&_&&_.length?this.textureLoader.loadTiledCubeTexture(T,_,{tileMaxLevel:this.tiledCubeTextureLevel,imageURL:{transform:E,options:b},minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,generateMipmaps:!1,fetcher:getFetcher(p.work)},void 0,void 0,void 0,this.renderer).catch(function(){return null}):this.textureLoader.loadCubeTexture(T,{imageURL:{transform:E,options:b},fetcher:getFetcher(p.work)},void 0,void 0,void 0,this.renderer).catch(function(){return null}):Promise.resolve(null)]).then(function(I){var N,k,U=I[0],D=I[1];((N=s.pendingTextureTask)===null||N===void 0?void 0:N.hash)===R?(s.pendingTextureTask.onLoad(U,D),(k=s.panoMeshes[p.panoId])===null||k===void 0||k.setProgress(0),delete s.pendingTextureTask,s.emit("pano.texture.success",createEvent("pano.texture.success",{error:null,progress:1,meta:U.meta,pano:p.pano}))):(U.body.dispose(),D==null||D.body.dispose())}).catch(function(I){var N,k;((N=s.pendingTextureTask)===null||N===void 0?void 0:N.hash)===R&&(s.pendingTextureTask.onError(I),(k=s.panoMeshes[p.panoId])===null||k===void 0||k.setProgress(0),delete s.pendingTextureTask,s.emit("pano.texture.error",createEvent("pano.texture.error",{error:I,progress:0,meta:null,pano:p.pano})),s.emit("error",I))}),this.emit("pano.texture.load",createEvent("pano.texture.load",{error:null,progress:0,meta:null,pano:p.pano}))},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise(function(r){var o=e.initial,s=o.duration,u=o.effect,l=o.userAction;e.userAction=l;var c=t.initAnimationEndState(e),f={workCode:c.workCode,panoIndex:c.panoIndex},d={modelAlpha:0},p={perspToOrtho:0},v=!1;e.moveToPano(f,{longitude:c.longitude,latitude:c.latitude,fov:c.fov,effect:u,duration:s,moveStartCallback:function(A){v=!0,e.perspToOrthoMotion.set(p,s).catch(noop$1),e.modelAlphaMotion.setKeyframes([{progress:0,value:__assign({},e.modelAlphaMotion.value)},{progress:.6,value:__assign({},e.modelAlphaMotion.value)},{progress:1,value:d}],s).catch(noop$1),e.emit("initAnimation.start",createEvent("initAnimation.start",{state:A,userAction:e.userAction}))},moveEndCallback:function(A){e.emit("initAnimation.end",createEvent("initAnimation.end",{state:A,userAction:e.userAction})),e.initAnimationed=!0,r()},moveCancelCallback:function(){var A=__assign(__assign(__assign({},f),{mode:e.mode}),clonePose(e.camera.pose));v===!1&&e.emit("initAnimation.start",createEvent("initAnimation.start",{state:A,userAction:e.userAction})),e.emit("initAnimation.end",createEvent("initAnimation.end",{state:A,userAction:e.userAction})),e.initAnimationed=!0,r()}},l)})},t.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},t.prototype.locationMotionKeyframesLength=function(e){for(var r=0,o=1;o<e.length;o++){var s=this.panoResourceFromLocationMotionKeyframe(e[o-1]).position,u=this.panoResourceFromLocationMotionKeyframe(e[o]).position,l=s.distanceTo(u)*(e[o].value.count-e[o-1].value.count);r+=l}return r},t.prototype.updatePanoMeshes=function(){for(var e=this,r={},o=Object.keys(this.panoMeshes),s=0,u=o;s<u.length;s++){var l=u[s],c=this.panoMeshes[l];r[l]=c,delete this.panoMeshes[l]}for(var f=1,d={},p=function(R){var S=arrayMin(R.accessibleIds,function(B){var L=e.works.getResolvedObserver(B);if(!L)return 1/0;var M=L.standingPosition.distanceTo(R.standingPosition);return clamp$1(M,1,1/0)},!0),C=S[1];d[R.panoId]===void 0&&(d[R.panoId]=C)},v=0,A=this.works.resolvedObservers;v<A.length;v++){var g=A[v];p(g)}var h=Object.keys(d).map(function(R){return d[R]});if(h.length){var y=h.reduce(function(R,S){return R+S},0)/h.length;f=clamp$1(y*.6,1,3)}for(var m=0,E=this.works.resolvedObservers;m<E.length;m++){var g=E[m],c=void 0;r[g.panoId]?(c=r[g.panoId],c.loading===!0&&g.loadable===!1&&c.setLoading(!1),delete r[g.panoId]):(c=this.panoCircleMeshCreator(g.pano),c.name="PanoCircleMesh_"+g.panoId,this.helper.add(c)),c.scale.set(f,1,f),c.position.copy(g.standingPosition),this.panoMeshes[g.panoId]=c}for(var b=0,T=Object.keys(r);b<T.length;b++){var _=T[b];this.helper.remove(r[_]),r[_].dispose(),delete r[_]}},t.prototype.doMoveToPano=function(e,r,o){var s=this,u,l,c,f,d,p,v,A,g,h,y;o===void 0&&(o={});var m=now(),E=createUuid();this.tiling.cleanup(),this.panoResources[E]=r;var b=1,T,_,R;if(this.locationMotion.ended){var S=this.locationMotion.getKeyFrameSegment(m);S[0];var C=S[1],B=this.locationMotion.value,L=((u=this.panoResourceFromLocationMotionKeyframe(C))!==null&&u!==void 0?u:this.camera).position,M=r.position;T=Math.max(L.distanceTo(M),b),_=[{key:C.key,progress:0,value:__assign(__assign({},B),{count:0})},{key:E,progress:1,value:{distance:0,count:1}}],R=0}else{var w=this.locationMotion.getKeyFrameSegment(m),H=w[0],C=w[1],B=this.locationMotion.value,O=this.panoResourceFromLocationMotionKeyframe(H).position,L=this.panoResourceFromLocationMotionKeyframe(C).position,M=r.position,I=C.value.count-B.count,N=Math.max(O.distanceTo(L),b)*I,k=Math.max(L.distanceTo(M),b);T=N+k,_=[{key:H.key,progress:0,value:__assign({},B)},{key:C.key,progress:N/T,value:C.value},{key:E,progress:1,value:{count:C.value.count+1,distance:0}}];var U=this.locationMotionKeyframesLength(this.locationMotion.keyframes),D=this.locationMotionKeyframesLength(_);U===0||U===0?R=0:R=this.locationMotion.getProgressVelocity(m)*U/D}var q=r.effect==="instant"?0:this.calculateMovingDuration(o.duration,r.effect==="fly"?T:0),z={longitude:o.longitude,latitude:o.latitude,fov:o.fov},Q=__assign(__assign({},e),{mode:this.mode,longitude:(l=z.longitude)!==null&&l!==void 0?l:this.camera.pose.longitude,latitude:(c=z.latitude)!==null&&c!==void 0?c:this.camera.pose.latitude,fov:(f=z.fov)!==null&&f!==void 0?f:this.camera.pose.fov,offset:r.position.clone(),distance:this.camera.pose.distance}),G=this.currentPano;if(this.emit("pano.moveTo",createEvent("pano.moveTo",{options:o,prevPano:G,progress:0,state:Q,userAction:this.userAction,error:null})),o.moveStartCallback&&o.moveStartCallback(Q),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=noop$1,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),r.effect==="fly")this.cameraMotion.set(z,q).catch(noop$1);else{var X=coordinatesToVector({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude}),$=coordinatesToVector({longitude:(d=z.longitude)!==null&&d!==void 0?d:this.cameraMotion.value.longitude,latitude:(p=z.latitude)!==null&&p!==void 0?p:this.cameraMotion.value.latitude}),W=new THREE__namespace.Object3D;W.lookAt(X);var oe=new THREE__namespace.Matrix4().makeRotationFromQuaternion(W.quaternion);W.lookAt($);var ae=new THREE__namespace.Matrix4().makeRotationFromQuaternion(W.quaternion),re=new THREE__namespace.Matrix4().getInverse(oe).premultiply(ae),j=this.cameraMotion.value.fov,se=(v=z.fov)!==null&&v!==void 0?v:this.cameraMotion.value.fov,ie=1;r.effect==="zoomin"?ie=1.5:r.effect==="zoomout"&&(ie=.4);for(var ue=clamp$1(se*ie,1,170),fe=0;fe<_.length-1;fe++){var ne=_[fe].key;if(ne){var Te=this.panoResources[ne];Te&&(Te.fixCameraTransform.copy(re),Te.panoPicture&&(Te.panoPicture.zoom=Math.tan(j/2/180*Math.PI)/Math.tan(ue/2/180*Math.PI)))}}this.cameraMotion.setKeyframes([{progress:0,value:{longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude,fov:this.cameraMotion.value.fov}},{progress:0,value:{longitude:(A=z.longitude)!==null&&A!==void 0?A:this.cameraMotion.value.longitude,latitude:(g=z.latitude)!==null&&g!==void 0?g:this.cameraMotion.value.latitude,fov:ue}},{progress:1,value:{longitude:(h=z.longitude)!==null&&h!==void 0?h:this.cameraMotion.value.longitude,latitude:(y=z.latitude)!==null&&y!==void 0?y:this.cameraMotion.value.latitude,fov:se}}],q).catch(noop$1)}var _e=this.locationMotion.setKeyframes(_,q,R);_e.then(function(){for(var ve,Me,Z=0,te=s.models;Z<te.length;Z++){var K=te[Z];K.show()}var ye=__assign(__assign({},e),{mode:s.mode,longitude:s.camera.pose.longitude,latitude:s.camera.pose.latitude,fov:s.camera.pose.fov,offset:s.camera.pose.offset.clone(),distance:s.camera.pose.distance});s.emit("pano.arrived",createEvent("pano.arrived",{options:o,prevPano:G,progress:1,state:ye,userAction:s.userAction,error:null})),o.moveEndCallback&&o.moveEndCallback(ye);var de=s.works.getResolvedObserver(e);if(de&&de.video&&s.videoTexture&&s.videoTexture.image instanceof HTMLVideoElement){var xe=ROTATE_Y_PI_MATRIX$1.clone().multiply((Me=(ve=s.models.getMaterial().pano1)===null||ve===void 0?void 0:ve.matrix)!==null&&Me!==void 0?Me:new THREE__namespace.Matrix4).multiply(de.video.matrix),ge={map:s.videoTexture,size:de.video.size,matrix:xe,alpha:1},me=createUuid(),ce=s.videoTexture.image;ce.setAttribute("uuid",me),canplayVideo().then(function(he){he&&de.video&&ce.getAttribute("uuid")===me&&(ce.oncanplay=function(){ce.oncanplay=noop$1,ce.play()},ce.ontimeupdate=function(){ce.currentTime>.5&&(ce.ontimeupdate=noop$1,s.panoVideo.setMaterial(ge))},ce.src=de.video.source)}).catch(function(){ce.removeAttribute("uuid")})}},function(){s.emit("pano.cancel",createEvent("pano.cancel",{options:o,prevPano:G,progress:0,state:Q,userAction:s.userAction,error:null})),o.moveCancelCallback&&o.moveCancelCallback()})},t.prototype.getForwardObserverOrNot=function(e){var r=this,o=this.works.getResolvedObserver(this.currentPano);if(!o)return null;var s=e!=null?e:new THREE__namespace.Raycaster(this.camera.position.clone(),this.camera.getDirection(new THREE__namespace.Vector3));s.params.Points={threshold:.1};var u=o.standingPosition.clone();if(o.position.distanceTo(s.ray.origin)>1){var l=this.models.intersectRaycaster(new THREE__namespace.Raycaster(s.ray.origin,new THREE__namespace.Vector3(0,-1,0)))[0];l&&l.distance<=2?u.copy(l.point):u.copy(s.ray.origin).add(new THREE__namespace.Vector3(0,-1.5,0))}var c=this.models.intersectRaycaster(s)[0],f=c?c.point:s.ray.origin.clone().add(s.ray.direction.clone().normalize().multiplyScalar(3)),d=f.clone().sub(u).normalize();if(d.length()===0)return null;for(var p=o.accessibleIds.filter(function(_){if(_===panoStringify(r.currentPano))return!1;var R=r.works.getResolvedObserver(_);if(!R)return!1;var S=R.standingPosition.clone().project(r.camera);return Math.abs(S.z)>1||Math.abs(S.x)>1||Math.abs(S.y)>1?!1:R.loadable||R.active}),v=p.slice().sort(function(_,R){var S=r.works.getResolvedObserver(_).standingPosition.clone().distanceTo(u),C=r.works.getResolvedObserver(R).standingPosition.clone().distanceTo(u);return S-C}),A=0,g=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];A<g.length;A++)for(var h=g[A],y=0,m=v;y<m.length;y++){var E=m[y],b=this.works.getResolvedObserver(E);if(b){var T=b.standingPosition.clone().sub(u);if(T&&T.length()!==0&&d.angleTo(T)<h)return b}}return null},t.prototype.onTapGesture=function(e){var r=this,o;if(this.userAction=e.userAction,this.stopMomentumMovement(),!!this.initAnimationed){if(!this.locationMotion.ended){var s=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]);if(s.panoId!==panoStringify(this.currentPano))return}var u=e.center.raycaster,l=this.camera.getDirection(new THREE__namespace.Vector3).setY(0),c=null,f=this.works.getResolvedObserver(this.currentPano);if(f){var d=f.accessibleIds.filter(function(D){if(D===panoStringify(r.currentPano))return!1;var q=r.works.getResolvedObserver(D);return!q||q.position.distanceTo(r.camera.position)>r.maxAccessibleDistance?!1:q.loadable||q.active}),p=this.models.intersectRaycaster(u)[0];if(p){var v=arrayMin(d,function(D){var q=r.works.getResolvedObserver(D);if(!q)return 1/0;var z=q.standingPosition.clone();return z.distanceTo(p.point)},!0),A=v[0],g=v[1];A&&g<this.panoTapTriggerRadius&&(c=(o=this.works.getResolvedObserver(A))!==null&&o!==void 0?o:null)}c||(c=this.getForwardObserverOrNot(u));for(var h=0,y=this.locationMotion.keyframes;h<y.length;h++){var m=y[h],E=this.panoResourceFromLocationMotionKeyframe(m);if(!(m.progress<this.locationMotion.progress)&&c&&E.panoId===c.panoId){c=null;break}}if(!c)this.emit("gesture.tap",e),e.defaultPrevented||this.locationMotion.ended===!0&&this.cameraBounce();else{for(var b={},T=Math.PI/6,_=Math.PI/12,R=c.position.clone().setY(0).sub(f.position.clone().setY(0)).normalize(),S=[],C=[],B=[],L=0,M=c.accessibleIds;L<M.length;L++){var A=M[L],w=panoParse(A);if(!(panoEqual(w,this.currentPano)||panoEqual(w,c.pano))){var H=this.works.getResolvedObserver(A);if(H){var O=H.position.clone().sub(c.position).setY(0);R.angleTo(O)<T&&B.push(O)}}}var I=B.length>0?B:__spreadArray(__spreadArray([],S,!0),C,!0),N=I.slice().sort(function(D,q){return D.angleTo(R)-q.angleTo(R)})[0];N&&N.angleTo(l)>_&&(b.longitude=Math.atan2(-N.x,-N.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(b.latitude=clamp$1(0,this.minLatitude,this.maxLatitude));var k=__assign({},e.state);if(k.workCode=c.pano.workCode,k.panoIndex=c.pano.panoIndex,b.longitude!==void 0&&(k.longitude=b.longitude),b.latitude!==void 0&&(k.latitude=b.latitude),b.fov!==void 0&&(k.fov=b.fov),k.distance=0,k.offset=c.position.clone(),e.state=k,this.emit("gesture.tap",e),!e.defaultPrevented){if(this.emit("pano.select",createEvent("pano.select",{prevPano:this.currentPano,state:k,userAction:e.userAction,options:b,progress:0,error:null})),c&&!c.active){var U=c.panoId;this.panoMeshes[U]&&(this.panoMeshes[U].setDisabled(!1),this.panoMeshes[U].setLoading(!0))}c&&c.active&&this.emit("pano.request",createEvent("pano.request",{userAction:e.userAction,prevPano:this.currentPano,progress:0,state:k,options:b,error:null}))}}}}},t}(PanoramaLikeController),DEG_TO_RAD=Math.PI/180,RAD_TO_DEG=180/Math.PI,MIN_TIMESTEP=.001,MAX_TIMESTEP=1,isIOS=function(){var n=typeof navigator!="undefined"&&/iPad|iPhone|iPod/.test(navigator.platform);return function(){return n}}(),isSafari=function(){var n=typeof navigator!="undefined"&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent);return function(){return n}}(),isFirefoxAndroid=function(){var n=typeof navigator!="undefined"&&navigator.userAgent.indexOf("Firefox")!==-1&&navigator.userAgent.indexOf("Android")!==-1;return function(){return n}}(),getChromeVersion=function(){var n=typeof navigator!="undefined"?navigator.userAgent.match(/.*Chrome\/([0-9]+)/):null,t=n?parseInt(n[1],10):null;return function(){return t}}(),isChromeWithoutDeviceMotion=function(){var n=!1;if(getChromeVersion()===65){var t=typeof navigator!="undefined"?navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/):null;if(t){var e=t[1].split(".");e[0],e[1];var r=e[2],o=e[3];n=parseInt(r,10)===3325&&parseInt(o,10)<148}}return function(){return n}}(),isSafariWithoutDeviceMotion=function(){var n=isIOS()&&isSafari()&&typeof navigator!="undefined"&&navigator.userAgent.indexOf("13_4")!==-1;return function(){return n}}(),isR7=function(){var n=typeof navigator!="undefined"&&navigator.userAgent.indexOf("R7 Build")!==-1;return function(){return n}}();function isLandscapeMode(){var n=typeof window!="undefined"&&(window.orientation==90||window.orientation==-90);return isR7()?!n:n}function isTimestampDeltaValid(n){return!(isNaN(n)||n<=MIN_TIMESTEP||n>MAX_TIMESTEP)}function getQuaternionAngle(n){if(n.w>1)return 0;var t=2*Math.acos(n.w);return t}var warnOnce=function(){var n={};return function(t,e){n[t]===void 0&&(console.warn("cardboard: "+e),n[t]=!0)}}();function getOriginFromUrl(n){var t,e=n.indexOf("://");e!==-1?t=e+3:t=0;var r=n.indexOf("/",t);return r===-1&&(r=n.length),n.substring(0,r)}function isInsideCrossOriginIFrame(){if(typeof window=="undefined"||typeof document=="undefined")return!1;var n=window.self!==window.top,t=getOriginFromUrl(document.referrer),e=getOriginFromUrl(window.location.href);return n&&t!==e}var updateEyeViewMatrices=function(){function n(r,o,s){var u=o?o[0]:0,l=o?o[1]:0,c=o?o[2]:0,f=o?o[3]:1,d=u+u,p=l+l,v=c+c,A=u*d,g=u*p,h=u*v,y=l*p,m=l*v,E=c*v,b=f*d,T=f*p,_=f*v;return r[0]=1-(y+E),r[1]=g+_,r[2]=h-T,r[3]=0,r[4]=g-_,r[5]=1-(A+E),r[6]=m+b,r[7]=0,r[8]=h+T,r[9]=m-b,r[10]=1-(A+y),r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function t(r,o,s){var u=s[0],l=s[1],c=s[2],f,d,p,v,A,g,h,y,m,E,b,T;return o===r?(r[12]=o[0]*u+o[4]*l+o[8]*c+o[12],r[13]=o[1]*u+o[5]*l+o[9]*c+o[13],r[14]=o[2]*u+o[6]*l+o[10]*c+o[14],r[15]=o[3]*u+o[7]*l+o[11]*c+o[15]):(f=o[0],d=o[1],p=o[2],v=o[3],A=o[4],g=o[5],h=o[6],y=o[7],m=o[8],E=o[9],b=o[10],T=o[11],r[0]=f,r[1]=d,r[2]=p,r[3]=v,r[4]=A,r[5]=g,r[6]=h,r[7]=y,r[8]=m,r[9]=E,r[10]=b,r[11]=T,r[12]=f*u+A*l+m*c+o[12],r[13]=d*u+g*l+E*c+o[13],r[14]=p*u+h*l+b*c+o[14],r[15]=v*u+y*l+T*c+o[15]),r}function e(r,o){var s=o[0],u=o[1],l=o[2],c=o[3],f=o[4],d=o[5],p=o[6],v=o[7],A=o[8],g=o[9],h=o[10],y=o[11],m=o[12],E=o[13],b=o[14],T=o[15],_=s*d-u*f,R=s*p-l*f,S=s*v-c*f,C=u*p-l*d,B=u*v-c*d,L=l*v-c*p,M=A*E-g*m,w=A*b-h*m,H=A*T-y*m,O=g*b-h*E,I=g*T-y*E,N=h*T-y*b,k=_*N-R*I+S*O+C*H-B*w+L*M;return k?(k=1/k,r[0]=(d*N-p*I+v*O)*k,r[1]=(l*I-u*N-c*O)*k,r[2]=(E*L-b*B+T*C)*k,r[3]=(h*B-g*L-y*C)*k,r[4]=(p*H-f*N-v*w)*k,r[5]=(s*N-l*H+c*w)*k,r[6]=(b*S-m*L-T*R)*k,r[7]=(A*L-h*S+y*R)*k,r[8]=(f*I-d*H+v*M)*k,r[9]=(u*H-s*I-c*M)*k,r[10]=(m*B-E*S+T*_)*k,r[11]=(g*S-A*B-y*_)*k,r[12]=(d*w-f*O-p*M)*k,r[13]=(s*O-u*w+l*M)*k,r[14]=(E*R-m*C-b*_)*k,r[15]=(A*C-g*R+h*_)*k,r):null}return function(r,o,s){n(r,o),s&&t(r,r,s),e(r,r)}}(),SensorSample=function(){function n(t,e){t===void 0&&(t=new THREE__namespace.Vector3),e===void 0&&(e=0),this.sample=t,this.timestampS=e}return n.prototype.set=function(t,e){this.sample=t,this.timestampS=e},n.prototype.copy=function(t){this.set(t.sample,t.timestampS)},n}(),ComplementaryFilter=function(){function n(t,e){this.kFilter=t,this.isDebug=e,this.currentAccelMeasurement=new SensorSample,this.currentGyroMeasurement=new SensorSample,this.previousGyroMeasurement=new SensorSample,isIOS()?this.filterQ=new THREE__namespace.Quaternion(-1,0,0,1):this.filterQ=new THREE__namespace.Quaternion(1,0,0,1),this.previousFilterQ=new THREE__namespace.Quaternion,this.previousFilterQ.copy(this.filterQ),this.accelQ=new THREE__namespace.Quaternion,this.isOrientationInitialized=!1,this.estimatedGravity=new THREE__namespace.Vector3,this.measuredGravity=new THREE__namespace.Vector3,this.gyroIntegralQ=new THREE__namespace.Quaternion}return n.prototype.addAccelMeasurement=function(t,e){this.currentAccelMeasurement.set(t,e)},n.prototype.addGyroMeasurement=function(t,e){this.currentGyroMeasurement.set(t,e);var r=e-this.previousGyroMeasurement.timestampS;isTimestampDeltaValid(r)&&this.run_(),this.previousGyroMeasurement.copy(this.currentGyroMeasurement)},n.prototype.getOrientation=function(){return this.filterQ},n.prototype.run_=function(){if(!this.isOrientationInitialized){this.accelQ=this.accelToQuaternion_(this.currentAccelMeasurement.sample),this.previousFilterQ.copy(this.accelQ),this.isOrientationInitialized=!0;return}var t=this.currentGyroMeasurement.timestampS-this.previousGyroMeasurement.timestampS,e=this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample,t);this.gyroIntegralQ.multiply(e),this.filterQ.copy(this.previousFilterQ),this.filterQ.multiply(e);var r=new THREE__namespace.Quaternion;r.copy(this.filterQ),r.inverse(),this.estimatedGravity.set(0,0,-1),this.estimatedGravity.applyQuaternion(r),this.estimatedGravity.normalize(),this.measuredGravity.copy(this.currentAccelMeasurement.sample),this.measuredGravity.normalize();var o=new THREE__namespace.Quaternion;o.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),o.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",RAD_TO_DEG*getQuaternionAngle(o),this.estimatedGravity.x.toFixed(1),this.estimatedGravity.y.toFixed(1),this.estimatedGravity.z.toFixed(1),this.measuredGravity.x.toFixed(1),this.measuredGravity.y.toFixed(1),this.measuredGravity.z.toFixed(1));var s=new THREE__namespace.Quaternion;s.copy(this.filterQ),s.multiply(o),this.filterQ.slerp(s,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},n.prototype.accelToQuaternion_=function(t){var e=new THREE__namespace.Vector3;e.copy(t),e.normalize();var r=new THREE__namespace.Quaternion;return r.setFromUnitVectors(new THREE__namespace.Vector3(0,0,-1),e),r.inverse(),r},n.prototype.gyroToQuaternionDelta_=function(t,e){var r=new THREE__namespace.Quaternion,o=new THREE__namespace.Vector3;return o.copy(t),o.normalize(),r.setFromAxisAngle(o,t.length()*e),r},n}(),PosePredictor=function(){function n(t,e){this.predictionTimeS=t,this.isDebug=e,this.previousQ=new THREE__namespace.Quaternion,this.previousTimestampS=null,this.deltaQ=new THREE__namespace.Quaternion,this.outQ=new THREE__namespace.Quaternion}return n.prototype.getPrediction=function(t,e,r){if(!this.previousTimestampS)return this.previousQ.copy(t),this.previousTimestampS=r,t;var o=new THREE__namespace.Vector3;o.copy(e),o.normalize();var s=e.length();if(s<DEG_TO_RAD*20)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(RAD_TO_DEG*s).toFixed(1)),this.outQ.copy(t),this.previousQ.copy(t),this.outQ;var u=s*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(o,u),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(t),this.previousTimestampS=r,this.outQ},n}(),Distortion=function(){function n(t){this.coefficients=t}return n.prototype.distortInverse=function(t){for(var e=0,r=1,o=t-this.distort(e);Math.abs(r-e)>1e-4;){var s=t-this.distort(r),u=r-s*((r-e)/(s-o));e=r,r=u,o=s}return r},n.prototype.distort=function(t){for(var e=t*t,r=0,o=0;o<this.coefficients.length;o++)r=e*(r+this.coefficients[o]);return(r+1)*t},n}(),Pose=function(){function n(){this.angularAcceleration=null,this.angularVelocity=null,this.linearAcceleration=null,this.linearVelocity=null,this.orientation=null,this.position=null}return n}(),FieldOfView=function(){function n(){this.leftDegrees=0,this.rightDegrees=0,this.upDegrees=0,this.downDegrees=0}return n}(),Sensor=function(){function n(t,e,r,o){this.viewer={id:"CardboardV1",label:"Cardboard I/O 2014",fov:40,interLensDistance:.06,baselineLensDistance:.035,screenLensDistance:.042,distortionCoefficients:[.441,.156],inverseCoefficients:[-.4410035,.42756155,-.4804439,.5460139,-.58821183,.5733938,-.48303202,.33299083,-.17573841,.0651772,-.01488963,.001559834]},this.device={widthMeters:.11,heightMeters:.062,bevelMeters:.004},this.depthNear=.01,this.depthFar=1e4,this.yawOnly=r,this.accelerometer=new THREE__namespace.Vector3,this.gyroscope=new THREE__namespace.Vector3,this.filter=new ComplementaryFilter(t,o),this.posePredictor=new PosePredictor(e,o),this.isFirefoxAndroid=isFirefoxAndroid(),this.isIOS=isIOS();var s=getChromeVersion();this.isDeviceMotionInRadians=!this.isIOS&&s!==null&&s<66,this.isWithoutDeviceMotion=isChromeWithoutDeviceMotion()||isSafariWithoutDeviceMotion(),this.filterToWorldQ=new THREE__namespace.Quaternion,isIOS()?this.filterToWorldQ.setFromAxisAngle(new THREE__namespace.Vector3(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new THREE__namespace.Vector3(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new THREE__namespace.Quaternion,this.worldToScreenQ=new THREE__namespace.Quaternion,this.originalPoseAdjustQ=new THREE__namespace.Quaternion;var u=typeof window!="undefined"?-window.orientation*Math.PI/180:0;this.originalPoseAdjustQ.setFromAxisAngle(new THREE__namespace.Vector3(0,0,1),u),this.setScreenTransform_(),isLandscapeMode()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new THREE__namespace.Quaternion,this.orientationOut_=new Float32Array(4),this.previousTimestampS=Date.now()}return n.prototype.getPosition=function(){return null},n.prototype.getOrientation=function(){var t;if(this.isWithoutDeviceMotion&&this._deviceOrientationQ){this.deviceOrientationFixQ=this.deviceOrientationFixQ||function(){var s=new THREE__namespace.Quaternion().setFromAxisAngle(new THREE__namespace.Vector3(0,0,-1),0),u=new THREE__namespace.Quaternion;return typeof window!="undefined"&&window.orientation===-90?u.setFromAxisAngle(new THREE__namespace.Vector3(0,1,0),Math.PI/-2):u.setFromAxisAngle(new THREE__namespace.Vector3(0,1,0),Math.PI/2),s.multiply(u)}(),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||function(){var s=new THREE__namespace.Quaternion;return s.setFromAxisAngle(new THREE__namespace.Vector3(1,0,0),-Math.PI/2),s}(),t=this._deviceOrientationQ;var e=new THREE__namespace.Quaternion;return e.copy(t),e.multiply(this.deviceOrientationFilterToWorldQ),e.multiply(this.resetQ),e.multiply(this.worldToScreenQ),e.multiplyQuaternions(this.deviceOrientationFixQ,e),this.yawOnly&&(e.x=0,e.z=0,e.normalize()),this.orientationOut_[0]=e.x,this.orientationOut_[1]=e.y,this.orientationOut_[2]=e.z,this.orientationOut_[3]=e.w,this.orientationOut_}else{var r=this.filter.getOrientation();t=this.posePredictor.getPrediction(r,this.gyroscope,this.previousTimestampS)}var o=new THREE__namespace.Quaternion;return o.copy(this.filterToWorldQ),o.multiply(this.resetQ),o.multiply(t),o.multiply(this.worldToScreenQ),this.yawOnly&&(o.x=0,o.z=0,o.normalize()),this.orientationOut_[0]=o.x,this.orientationOut_[1]=o.y,this.orientationOut_[2]=o.z,this.orientationOut_[3]=o.w,this.orientationOut_},n.prototype.getPose=function(){var t=new Pose;return t.orientation=this.getOrientation(),t},n.prototype.resetPose=function(){this.resetQ.copy(this.filter.getOrientation()),this.resetQ.x=0,this.resetQ.y=0,this.resetQ.z*=-1,this.resetQ.normalize(),isLandscapeMode()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},n.prototype.getFrameData=function(t){var e=this.getOrientation(),r=this.getEyeOffset(),o=this.getEyeProjectionMatrix();return t.pose.angularAcceleration=null,t.pose.angularVelocity=null,t.pose.linearAcceleration=null,t.pose.linearVelocity=null,t.pose.orientation=e,t.pose.position=null,t.timestamp=this.previousTimestampS,t.leftProjectionMatrix.set(o.left),t.rightProjectionMatrix.set(o.right),updateEyeViewMatrices(t.leftViewMatrix,e,r.left),updateEyeViewMatrices(t.rightViewMatrix,e,r.right),t},n.prototype.start=function(){if(typeof window=="undefined")return function(){};var t=this.onDeviceMotion_.bind(this),e=this.onOrientationChange_.bind(this),r=this.onMessage_.bind(this),o=this.onDeviceOrientation_.bind(this);return isIOS()&&isInsideCrossOriginIFrame()&&window.addEventListener("message",r),window.addEventListener("orientationchange",e),this.isWithoutDeviceMotion?window.addEventListener("deviceorientation",o):window.addEventListener("devicemotion",t),function(){window.removeEventListener("devicemotion",t),window.removeEventListener("deviceorientation",e),window.removeEventListener("orientationchange",e),window.removeEventListener("message",r)}},n.prototype.getEyeOffset=function(){return{left:[-this.viewer.interLensDistance*.5,0,0],right:[this.viewer.interLensDistance*.5,0,0]}},n.prototype.getEyeProjectionMatrix=function(){var t=this.getEyeFieldOfView(),e=this.depthNear,r=this.depthFar,o={left:[],right:[]};{var s=t.left.upDegrees*DEG_TO_RAD,u=t.left.downDegrees*DEG_TO_RAD,l=t.left.leftDegrees*DEG_TO_RAD,c=t.left.rightDegrees*DEG_TO_RAD,f=2/(l+c),d=2/(s+u);o.left[0]=f,o.left[1]=0,o.left[2]=0,o.left[3]=0,o.left[4]=0,o.left[5]=d,o.left[6]=0,o.left[7]=0,o.left[8]=-((l-c)*f*.5),o.left[9]=(s-u)*d*.5,o.left[10]=r/(e-r),o.left[11]=-1,o.left[12]=0,o.left[13]=0,o.left[14]=r*e/(e-r),o.left[15]=0}{var s=t.right.upDegrees*DEG_TO_RAD,u=t.right.downDegrees*DEG_TO_RAD,l=t.right.leftDegrees*DEG_TO_RAD,c=t.right.rightDegrees*DEG_TO_RAD,f=2/(l+c),d=2/(s+u);o.right[0]=f,o.right[1]=0,o.right[2]=0,o.right[3]=0,o.right[4]=0,o.right[5]=d,o.right[6]=0,o.right[7]=0,o.right[8]=-((l-c)*f*.5),o.right[9]=(s-u)*d*.5,o.right[10]=r/(e-r),o.right[11]=-1,o.right[12]=0,o.right[13]=0,o.right[14]=r*e/(e-r),o.right[15]=0}return o},n.prototype.getEyeFieldOfView=function(){var t=this.viewer,e=this.device,r=new Distortion(t.distortionCoefficients),o=t.screenLensDistance,s=(e.widthMeters-t.interLensDistance)/2,u=t.interLensDistance/2,l=t.baselineLensDistance-e.bevelMeters,c=e.heightMeters-l,f=RAD_TO_DEG*Math.atan(r.distort(s/o)),d=RAD_TO_DEG*Math.atan(r.distort(u/o)),p=RAD_TO_DEG*Math.atan(r.distort(l/o)),v=RAD_TO_DEG*Math.atan(r.distort(c/o)),A=new FieldOfView,g=new FieldOfView;return A.leftDegrees=Math.min(f,t.fov),A.rightDegrees=Math.min(d,t.fov),A.downDegrees=Math.min(p,t.fov),A.upDegrees=Math.min(v,t.fov),g.leftDegrees=A.rightDegrees,g.rightDegrees=A.leftDegrees,g.upDegrees=A.upDegrees,g.downDegrees=A.downDegrees,{left:A,right:g}},n.prototype.onDeviceOrientation_=function(t){this._deviceOrientationQ=this._deviceOrientationQ||new THREE__namespace.Quaternion;var e=t.alpha,r=t.beta,o=t.gamma;e=(e||0)*Math.PI/180,r=(r||0)*Math.PI/180,o=(o||0)*Math.PI/180,this._deviceOrientationQ.setFromEuler(new THREE__namespace.Euler(e,r,-o,"YXZ"))},n.prototype.onDeviceMotion_=function(t){this.updateDeviceMotion_(t)},n.prototype.updateDeviceMotion_=function(t){var e=t.accelerationIncludingGravity,r=t.rotationRate,o=t.timeStamp/1e3,s=o-this.previousTimestampS;if(s<0){warnOnce("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),this.previousTimestampS=o;return}else if(s<=MIN_TIMESTEP||s>MAX_TIMESTEP){warnOnce("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),this.previousTimestampS=o;return}e&&(this.accelerometer.set(-e.x,-e.y,-e.z),r&&(isR7()?this.gyroscope.set(-r.beta,r.alpha,r.gamma):this.gyroscope.set(r.alpha,r.beta,r.gamma),this.isDeviceMotionInRadians||this.gyroscope.multiplyScalar(Math.PI/180),this.filter.addGyroMeasurement(this.gyroscope,o)),this.filter.addAccelMeasurement(this.accelerometer,o)),this.previousTimestampS=o},n.prototype.onOrientationChange_=function(){this.setScreenTransform_()},n.prototype.onMessage_=function(t){var e=t.data;if(!(!e||!e.type)){var r=e.type.toLowerCase();r==="devicemotion"&&this.updateDeviceMotion_(e.deviceMotionEvent)}},n.prototype.setScreenTransform_=function(){this.worldToScreenQ.set(0,0,0,1);var t=typeof window!="undefined"?window.orientation:0;switch(t){case 0:break;case 90:this.worldToScreenQ.setFromAxisAngle(new THREE__namespace.Vector3(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new THREE__namespace.Vector3(0,0,1),Math.PI/2);break}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},n}(),defaultLeftBounds=[0,0,.5,1],defaultRightBounds=[.5,0,.5,1],Cardboard=function(){function n(t){var e=this;this.renderer=t,this.sensor=new Sensor(.98,.04,!1,!1),this.scale=1,this.cameraL=new THREE__namespace.PerspectiveCamera,this.cameraR=new THREE__namespace.PerspectiveCamera;var r=this.sensor.start();this.dispose=function(){var o=e.renderer.getSize(new THREE__namespace.Vector2);e.renderer.setScissor(0,0,o.width,o.height),e.renderer.setViewport(0,0,o.width,o.height),e.renderer.setScissorTest(!1),r()}}return n.prototype.render=function(t,e){var r=this.renderer.getSize(new THREE__namespace.Vector2);if(r.width>r.height){var o=t.autoUpdate;o&&(t.updateMatrixWorld(),t.autoUpdate=!1);var s={x:Math.round(r.width*defaultLeftBounds[0]),y:Math.round(r.height*defaultLeftBounds[1]),width:Math.round(r.width*defaultLeftBounds[2]),height:Math.round(r.height*defaultLeftBounds[3])},u={x:Math.round(r.width*defaultRightBounds[0]),y:Math.round(r.height*defaultRightBounds[1]),width:Math.round(r.width*defaultRightBounds[2]),height:Math.round(r.height*defaultRightBounds[3])};this.renderer.setScissorTest(!0),this.renderer.autoClear&&this.renderer.clear(),e.parent===null&&e.updateMatrixWorld(),e.matrixWorld.decompose(this.cameraL.position,this.cameraL.quaternion,this.cameraL.scale),e.matrixWorld.decompose(this.cameraR.position,this.cameraR.quaternion,this.cameraR.scale);var l=this.sensor.getEyeOffset();this.cameraL.translateOnAxis(new THREE__namespace.Vector3().fromArray(l.left),this.scale),this.cameraR.translateOnAxis(new THREE__namespace.Vector3().fromArray(l.right),this.scale);var c=this.sensor.getEyeProjectionMatrix();this.cameraL.projectionMatrix.elements=c.left.slice(),this.cameraR.projectionMatrix.elements=c.right.slice(),this.renderer.setViewport(s.x,s.y,s.width,s.height),this.renderer.setScissor(s.x,s.y,s.width,s.height),this.renderer.render(t,this.cameraL),this.renderer.setViewport(u.x,u.y,u.width,u.height),this.renderer.setScissor(u.x,u.y,u.width,u.height),this.renderer.render(t,this.cameraR),this.renderer.setViewport(0,0,r.width,r.height),this.renderer.setScissor(0,0,r.width,r.height),this.renderer.setScissorTest(!1),o&&(t.autoUpdate=!0)}else this.renderer.render(t,e)},n.prototype.dispose=function(){},n}();const cardboard="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAADqCAMAAAAvZYhaAAAC/VBMVEUAAAD///99fX37+/v5+fn29vbx8fHv7+/Nzc3o6Ojq6urh4eHU1NTR0dGDg4Pl5eWSkpLHx8fj4+Pe3t7X19fAwMDZ2dnCwsKrq6uioqLb29uNjY2enp67u7t5eXmAgIC2traWlpa5ubnKysqmpqZycnKHh4eurq6ysrKKioqDg4Pd3d12dnb9/f1vb2/s7OxlZWXz8/OoqKiZmZlpaWmbm5teXl7W1tbJycnExMRiYmJsbGywsLCPj49aWlq9vb1UVFRYWFhra2t+fn7t7e1RUVFOTk6Dg4OAgICCgoKKioqEhISIiIhqamqCgoKIiIiQkJCIiIiWlpawsLBmZmaAgICenp6Li4uBgYGTk5OMjIyVlZWFhYWCgoKvr6+Ojo59fX2SkpKvr6+Ojo6QkJCurq6BgYGxsbF8fHx4eHitra2enp6srKyJiYmurq54eHj5+fl+fn57e3v////5+fnS0tLAwMCVlZWwsLCurq5QUFCtra2EhISUlJSwsLCUlJSUlJSlpaWVlZW3t7diYmLAwMCFhYV3d3f///+tra3///9XV1eampqnp6d8fHz///////9VVVVlZWVtbW3+/v5SUlKcnJytra28vLzGxsbR0dHX19doaGiWlpafn5/Hx8ezs7Nzc3Nubm7AwMCIiIjj4+NTU1P29vZbW1vl5eVkZGTMzMxYWFjq6upfX1/k5OT////4+PjV1dWkpKRoaGj4+Pizs7Pm5ubAwMCfn5+vr6+urq4wMDCxsbG2tra5ubliYmIuLi6zs7NHR0empqY0NDRCQkKqqqo5OTmoqKg7OztfX19dXV1oaGikpKRkZGStra0hISE/Pz89PT0pKSlmZmZJSUlERERbW1s2NjZVVVUmJia7u7uEhIRXV1dZWVlLS0tOTk6srKxqamojIyNTU1MrKyuAgICCgoJRUVFra2ttbW13d3dxcXFvb299fX1zc3N2dnZ5eXl8fHyHh4eSkpKenp6Ojo6VlZWMjIyYmJihoaGcnJyJiYmamprZ2YdEAAAAunRSTlMAs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7P9s7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Oz+QSzswb9DiH3FyI57Jn1ajgu7uHYmIgr8OHHwqVOQybv6OZuUvTt3dHPrIeFSNVgLCAWD9/UqKebiH1iXVTczcvKvambhnBuY/vGrKqjlHlzVDj37s/Fw7+tpJGAeN7VzcWTgGJNQ8O9u7iko5aVjvbNsa+so1pd3mNGAAAqAElEQVR42uzZzWvTYBwH8DxNmvRlfVNr17Wl05a9dISyiugO4qVQ2g1pVyx2Q7QKCoIivgxF1HnTXbbDDnNDJ8iQHcQX8O3We1t6GnjJyYPSuTmdf4C/ZE260U5rl6bJ2g8Pu2zP5cvz++ZJhilOcOxcfPHq/NuFhVcftK8WXizeCGItFWKKX5x/23Zk3/6OPr1+j0mr1fkpkuxXv5luBbbZWPzevEWjMRja2iCrvXs3stJRFGRFEDhOT1xv5QWCkYvPPtosFg+XFZyrvSYdRUJEBA4Igg2LRuBhk+cVOndv3uWyWm0DlqMajWafXkcSNNrexA2sSQ1dvPK+86DruNUGWRn6dGoa/dvk9BjWbMLxZ7e7e3ogK5fVZtBTOKrew6Y6Xufu3Qm0d3f3dEJWGj1Fo/81dbU52isUf2T3etvZrHoG9vtxVKOJm9guF049ddrt3gBkdVCzh0DlWtO4YejT00OHnU44VwHXPgqJ4PV1bFeKDD8xH4Cs7PaAtY9AYpncfeUFSR0zc1l5B/Q4EhW9q+KCpHodXFYBjxZxWnFtk9SZrl4uK6/Hj+pmWvlxDQ2fMRq7eh0OSIpCW7Ti2iJ8/4zK7WazcloqJtUaxqLweFSl4rI6ZNOhylpxsUKpqFsF3EazS4ukNLmIKcuJpFHF6erUI8lNKeiaGrl7WcUxtu+nUUO8VsZLEDz8VBy33YCjxnko+1dsrtI5hz1q1GATcm76YCrpVnHMVgrJgWwfjCN3u1Sc3k4TkgtZNv3QcLHS3Wyly4ncqis8/qSYlFNDINl5IZ9ZDKaifFHZSCRLkzKZxZEkX1QHtUi+ZDCLQlEZ2/uQzDX2c0T4vjzuntWaatiVPiQU1YEBoahoRMNCNRBzv9zuqCNJo1BUdGU4jcOiqyDhfgmLvryoOnClkfRwhcehqDh2A4ErkGTNBa9+paLClUqSK2rkrnCjMhFK9mYMqy+4Jwhf8wjlIWcvjcYGGYbxxUZvmd6V93w9XmicHpJQmD0zifM+ZovYzFWsjMifiB0urVpRyMeJmI+pyBnCxBcaF8avQ60kL58nYkyJ78f3leUvXwqrP9e/MqzBCCaykWRp/NTKQT0fHfzN8L79WlteSm9S+MUdt2t16XR4+vVXTd2vhtVfRrL9cw9ijGB9rZDOgPRm+XxunQGnRD9Ubm8bqRgvZ0Z9woFaX81lNqQzW7MCKwy4IE5T8YfKbNWRSmG6FCtN3upSNpspKosKLBXY6jorxuPPyF+pSKWYezDIFP1YyWXYpLJlSeWFqNi0fFD7O235VFTFOWbVUjUiKRIWBaTZP5vgk/r2vZDOgkylAczD4tMCy5DW6R2V+vBlvqkohZhN8DX1dY09UkJW5b0uJMXJ/dzRIEaKpe5wmShlmEv4hOHLf84WlU8gEKLi5Zagtk5itTkR5f/trvNvj/JTsKr4Xf3366GnhKSy2WJWmZJKpypfDCoHVmHriZpu6hvzZ+zu0HH8kBj8+KvKfyfN/j/UnclvG1UcxxGnhGxKaVIIioBEosi9gVAaCSkHkFhFgAOrBEIgDixCnOAAAgmVG1cEZ7jxHzi2YzvYcWyP3cRNY6e1J2sdJ7bjbLXTLOL73rzFz88TGqip+cyLZ+kMJB++v988jwN0fSJMFb1JIFxxXXq3kq4wCIjWw/+gVT3G6+++/wOtP7wmMuUVooASqtmNQim/6djd36tUyuX9o930WnZrXagCJdwQnz3lc+JvrVb16MXW+/4P/PaRg3X0AstUUm1WRil7VIn5xzkeD74EU4fl3c0CVC0bG/iLvHi6rs7vf60ncR9E4kXbVvcbf724+a2VZpMUdCuhysgfHS5xR1KVR+dyZQdvrNdOdT9851X+IWnr/wDR0h15I2kmuSwK8eQetwG+dGP+4200rW9Oq+r8/a3NT9cPH/K3x+tRSJKx8haObvqvXx8fx8CLrokOLBp/7q69daq5An5BtrWL0trVitHFkcea4M9/FY2qGBGhQreKFNI3x68TdFXSGIaO3+P3e6a+vK1Uvc+ev7R1NT1i7pktxU3AVEU2HIee64JxDCy1lrgqrBVV3Ne7r/ztZMFq6w+NtHWdUeg604Vhu62f2/Dr277m8wQ0KqkqvnkMUSo2uWKFWKvKTxaMy1+c7Oq7Tuu9ctuZZucX/mnD5kbUpCSBkT6AG00VXNkJ0/BzYeCxk2L1Ki3AnjNtZzDaFGqPnXROw6//46vnHWmHNaMyhari/iS86EAThgYNVd0ZBM0V5U37mdXnZF51/kJbc9Mr5wmzTJSZjG7tuXVTateyK0U9WXR1oq0PHiaz9fa25kY0qp31ZIaHKn8LEYEOLDpSVI0w2dv5SvoS/F5/wkBcPYH/Is791WC3DcNuXz+3oddXzxMyXFUBmQJWZ1Kxb1oeeVPUVPF82dt6Ea4e7r+/iRnCPIG6Wit5M1zV+v6YNMDE6NiUIPmqh99aGPrs9OXH4GoY39KF+y9o4KB+XD8HNOz6vs9ek40qg4Vg7E5JUdZig83NUE7h9ZuhYLJ2vvUs6e0DfVVc6LtAwErsY9gepzTs+l8/WuPzhCQyRWPlzR6M12Bri/4Rhh6setGCKMXWz8/VzK/g6nxfczLE737ZQiQDiKpoibZ0NVeQYhcs20Kki4rfGsQY0G+JL6BhPdnX19vXS8BKbst9sVaQ5zTm+h9G0w5HGsvWbIZhzh45x+tio4pmyq4SdagqDI7br3zq+jYaVktv8/HHG8+z8ltPilBt36Sh0pNFZdzmNMvjnIzdPK5Ubh0fHsRik6oq4Fei9XP1nRBF+EDvWYXes70YyrZyTDt+56/HM2KaKtz95rkqY99pdWUdmyJURTljt/Y3C7ORqMB6ompsrZUP3doMntMpZX2L5zHtZ5uLDv5AYdswM4zk9oEw5dFUKcL0jjVWLpq5mXDIlUpM5PhDeWEMzkwzshlTmrxUNiUeMj/XiWCdBUNnhwTYwbDbVtaUO3s9OhXBkS1G55Eqind3TE636+pi9aZNGpbKxZxrenpl5Uo4HE75XC5XYC4TEb4iUpdZONBuh8DtFj3+A9Kx2sFQ+xAFGwLsYNhuC+7g9QiV1dS3Z2GKsVHxezgyWZov7Z4Y21kNTFNWgA+2Ai5CYAKf9AhhEalrR86zJO7Jl5msV3ErbG8aLrFnL1aosJD624kJUWypmyzZ6qm0qWwGgWKsEK4FwuGQJcsVMr0WoiKT1FaexkpNlt/dyaoQ84aB9uag47OXECmwbWTmCRkQP3J6JGp71xsXS9ZSOpqaBqqra1dC4USKuAKpjBdIXyRcNFtIFhC+3BjuGHsHTaqwg9De0Y5B14BuA2Xf7pw7cv2ljzBTgKxsKQJPzJWxJ+pP6lKipfs63JiBH10VcKEQ4YqSMr0CIouHa1/t7sgVhvUW8XU8Re5oAj57ic+pTOqJpqp4rImCKm5Kr0Ow5w1M18JcXQGkxwcYoSj9CF+my7KVPKhtWRjv8pb1YMfd5hKefZJUkTkVsGSZedGqVF+gfo937mZuMD+aKyaLdC3mKhWYicOVECYaVxx2PGq03JdfILLQsh7p6GjpaMGgawX1mN05//L6H0bp3S+dRagY6OrZSevGpCCCpatypxeuTduoYrkCrnAiHOC2Urk4gCvFlmkeacGy6vBlTN+7tR+QLjp25/2b61s+hSaSqq34vMBSRVuHrqtez/KXvSGIsXXFZd24weswRUC0KN64Yis6SaIlVRE+svp7Z8vdA/VnzRQ2kqurMlVrl627Ud0iBDVPPPeMYDi1cmKs4MqSFbLqMEUJRfHLRlXhYm3edCjJosKW8Hs13+PznJa7xXujaTpVwPSzSlXUAVUED1noi16JUtgtIxGGAKUEtdbOVIFAOBGCKiZrdRayLF1xflckn9M6FVtu0rbwbxN8jF/Uxrc92DKIYa0BVicfA+r26a8f/PQlqwC3IsSU7FVjXBXXpCNq8KAQ9LlCiitNFZCufIFEIsxzFQpdhSyqS9qihVjmomSLf4w+nnlq8C7QjfojqcpumKsyVfPm9pRf4lGalpYsZ3bB5fP5UgjWFRtXTJV05XNBFhEFVSA4q9mihVjA31h44k2LzhwGL14cvDhIwQaGsmaIff3c019/CQ+KHaz+qmNViklR9Lu1D5anEgn4XD7MMOHKZ+NKVQWxVFYCrhhhwzCYL2JLFuJYdRVSZQf33PMjHjngB+m+2E3BBoayBnxbX1NOe/17L1lPP0uov2pXxZt+BXE71J1NbgXhicpCEQbsVNWXNROStuIGELbkLbGi1iDwv0hldf+nkFYFWdmiSU0J4hV62wF/27PKpgv4YApFWL9haaq4K9fMTDAk8RrSFtNFu9amlMV9fUxkne/+7xjGVJ2kKrucWaWIiVXayfKu2tJ9TRUSSBRVhVdShDdOaFcM6coVDEpZ4VDUkLZEISJa62qwAKalnUTWMKV7uJuCDQxlDcS2ft5tX49WRVOFVqWqyuSnSNAxavDU+tozXdQUf4GrgH2srimqAFpclSxcnDQseLJ414q6hS0erd+JrMeH8X/UODeMcQ7IbbwAbVs/9zavHxh1ULZYq5IlaBy6qStVkx6tpe0gc4SBxSrCldtrV8AFAnNzc0wVkWUajNpoxVgFimjhcenDkHXuv+C9Uev9XzGphAqYu043hf9TlCgzh0NvgBcfXuiPXq8IV6avKa5uSFeE1NzcBI8VMJeXZbRmq6J1LBoW84UHD/fiffS5xvMTujppVeu8VUlbxZjbggdeLUEmy7+f8wFY4g2LBStVq2paUwVXMlihiYk5pgokMsvVtiCLt/g9tWWBnyFLJKvnXI8CDgiwg6GstXPsr/8UXR1kDThSSzATKbsFfvqlNS1weTtIJbHyoyvW3a+oroDqSlUVCIQhK8xVJSALCFmA1+GuejMEB1RWT2NhqnbisKS6ymQKU+5q1Dr0sNeYEWB5wop90X1tiqXfBVVXYObq1SBTJWQpXYvJyrJYyWjFGi5rBKpIr8p7V3PClZgv7ON7cApRdBG3RA+rxMOIiyCDhQFEsPRYAZtYgbmFhSCPFZivKwu2xERL6Joisp7uGRnpGenBoGsNebz+OSP214+QaRVk5SM57mpeulqOOYFbhaqSuioZmiQ2A1WGOndHt1Jc6d3K4ipkcVdqstRZ/DYVVc0SldU/Iugf6SdgpW4DrPTj9Jjd9f3szXIpmsvxUMkKNNc0VVrHKi8SR0wTT5XQhh9Zzt0VVbauUqGFxcUZ4WpmBrJAtay41eHzRJXa4oms8/2NgfWqUjIHVxzhKnqLqHLSFylLMVZegBjpCJvKfgrBkqki6K5UVZCVWFxcJKY0WUDp8HnpqfGyfnrGAdYKJlelPF7IrP/ppKI0xORhfwFCmCTmSN1nHcv+LsiQrvBoZm5x8SoTBVVclt60aLKsRZU1MDDQP9CPQdcCdV85DsQ1QL9+YDRNVBUzMCVKcFW62hyzTPFcqdECe0QVF0M3a/fJ5zQiVnbtClTFCiws5ia4KhA8QRa+Dz1ZDwzccf6i7Wx60zjCON5PEPVoq5WcRFGd+ugoN/fUSy9VT1UPTXuu1EPVr5B7T/02wAG0ZrFZMAjMshCVBRziXTCOncR2Xtqq/3nZfXZmdrdJtf15CsYiCvzyf56dmd3iH3msLv2kqvGCTnK9KcVAmNbfMf4e8xSRoor5GO29JlTlzq5UV028Ipu5EtiZyXIuKVP/r6zfWLd6Xg0ByQLUrqQo9mXqetep14D0wi3pj6m9K0dBmlw909uV2Ege4gUlVNm2nyWL9aw0Wbfv3r199zbGXUDfp9wDeh491v78Y97XF0qzwojOMw+OSgQKUWtZjXUfnVtEiVbNxuO6WOlAFLnKjFW86T5bLKZwJbFJljF3OIMqNihgJSGrWH5m3aoNU2Zj5639sKzI0nS9rD05aMJWnCQxKtpjUYVP02IFjKOgPD/Rx2sZkqocWa0zocpMVqH8FmAV2AoBqUq4Om+UFNQavOohLMzWQSV70hBPsqAqyxWeRLKEKWAh4mRKkaVPtDLLUHD/9n2M24T2c/qe7s3nRa7SGju46JZLZUOXFHbYEoUlL9GrKY7Ux/xYCFm5rurkittqLsaTKalieFClL6VlsjRKvAx37xcJjoNBNX2+AC5MVRiSPyrRKeQabFWAsn9Fj8EIT8ieiFY4SgWC5hCvwOaNPcbPkZWWrHtFuvpmJ4CrDFVwBUoYiitRi0dh4nQ7XByY+1fyMQOV+kw7h0qySBXVIGiGvh+qroZZyXLMZCmy9u7vcfANBr+X0GP6efpzfsZc9DyUpqgCJes5c0XZSs61dmqRKsCjpe9fyccCrO6eGCcGZQkKDFVN2/d9y04wHJIshiJLC1ZJytrb3t7b3vtg8Icw6J6BCdbzlKOgYNngwUrT1ZioV+ixHj8y9q8SJpC8FFdKCequmgvf8xVVubIUU/yGy9ouir3vMGtwVFOTCL+zXxaUjGRd1bUp03EFNvT9q0pEnbWskdKujlNjBejkxNBrtdzYFFylyBpklWFJytrcLoyvsHI25wsc33kHT13Zs9Sp1sUTc+9O1GEtMRLUR81+XTw5P1cHUhbfbve8ieLKlAXSZfHGymVtbCtsbG9g0L3AfGz+DMEKfNnYSRTwJ773ttyFKoZWhQ3e2RVXgO3sqftXMlR1puKg368oqgD5NHIF+pbXclxhKlZlWSmyqjkNHrKKAh1rrbgax678V1DVFclS29b1QeqqhS1nlKkoIBXNvl0zF86mKnLV8x1nbAukKbh6H1liBQuKlLX9eCc4pQv4FFX+ZVfUoJGtmxq19mRd8aZF+1cUKw7WdzWtBOk5HM1Vf4rFsStFkSur9T6yMNh/hSbr252dM2VuRa46h10AX1HTinj+xFBFsmj/KqIuwVTpmXJunlzRslkg9pDtllMdQ5USq3xZpCqRrE83dnc3djc4+AaD7kH69wT9mdOdYBD3dYnP8f7sCihYGGBtlqA0wGdaVIEUKw7e8zN1O4ZUyRIckSowgQDLpmYVkS+LhGEIWbvF8BjtfUKqkrL+mHNT+Ooq04e2VoLJsEhZZqwAzsGTLHPdzKBYgV4IAaGq6v2TVRIjlnVv9x5Gjgl6jvaYvkcVXgpVlCvBct6VtqJgiduqkiutXeNd1pOx4pAsqyYTyEjaVEtQbLdbeP9eXIGEazm5sshXXIb3igHHQlmFZIrjXXNXZYzIF6/DTnasuKxePVYFyBR84B3XUtqV2q+aUa7sFvZdrKEkocp1nZx5FonCbbGyNoOdoJUswUiVFyBYXJc6e1iqsyv9hHu/J2XVKVjSBpdVORbdioJl5Eqe7uotOp3BLBJFuMD51+VOKRL2n2Vt3tvEUH6EiUMwmcSpIledxnwOVaIQqRQv8nIFcMCrU2OnVAlZrjtiz8xuVwhVJGsKV75ZgS6YVvNk0RwrTtbDzQ8GogweYeJAswVy5b2BK6ji0Gzr1VNylXrdmU2yDFcHtus2a0oJGjPROFduZzCoWqqpmGr+Fk0JQ/giWUXwbbBzThUo8ECbu5pryXp7DFV5ripox5DFRgx1JHs6tckVSHfVA1Zn0B5MaWYF3FjXtJMnq0TJKlgWtkjbhilwI13FTYuxX08/DJKrOt4bTOnNSuro4cQyyapndHaosodVaAgVVZIpY5CzU0ozB5L1oBhZ2HHoKK6EreW8MQdQlZg/dMOnubkCIws9XK9AmmvikgW2GMpy1U+6OlkYzQqqhCxypcsSoZKmSNanRbDJtrLiXuVhCP5qxLLk/AGyXuS2q/hyxmSqaFrOmYZhP32PoZl0ZTvtk5NxiirhajY7yT4VBleA6yJZdwqR9SAIdjytBoFzCFGNuAzn3NWfx6kLHEVW33JtowRJlhWGrrp1BVRXYIj+vfRJFfUqwSxUZAE6yQpV0XGwcFmPg+DUFyQ/sveMqeLQEXHeI1dmu5IGcLzrGc2KsLETNKKjIKkiV7ZtdZbLZUtLFUxJUMqTrAk8ZJGqFFkPP32I8Z9l4XShVoEtjLeNhm6rfGLmSnMFrOm0KVxpoZJOwvHYUkrQdDVtL5erhCuJNDWdAT9TVkbPuvOwCLBL+tIHpIoFq81UUYfnvM09CkpXB3g/IzVWZIpJGWKtcJCUSapkv1qcLFcrzyhAyhXIWhqKnhVDsj5+8GFaHjx8gKF//10QvFRccU4bgFciNflQqCJZhivQw9shVXqsQD/0/YXZregw6EDVapKnCnSMCTzJolApsooAyXohRZErVOG8S1XIm/zrfzkMCqzZbGi4IlUwMsS/y1SLFR0GwxOoWoYZfV26ov5uXlN6SaqKl/UoCM6oswucKg8WG7Jn4Wb2Pq5GeCN9vQKpK3ErM/xFbl1tV1KVW12BgZsbq4z+LibwkAVSZN0pgkfsSj9SJbiAK64qttW9TlFlbqD3wzA8SDdFK+QJ/oaZ3q6gyvJWDD/jEEiEmS0LZaiKKmNA1lZxsmRjp9/e8gqqulKXtLXObVfSFZtGTXVXTXIltNg+/gq/py1w3NYKnHdm2jKQKlCCf492xvydl6FGGcnaKkjWt0FwQaakrOsGo5s4JM6beq5SN9DDxcJWelWTXAlTgNnCW5tY9GNrMmCmzpdjbXvBzBVceeSKggXgytNllVGGW1tbX3xcBNhUXsMUpQoMeKgYcSG+1qYMRqyYIj7lRBUarihV0ta4WsVmVdVf4N0vJk57xThf+i65Sq3BcBaCQWzK/L8zLzVT2AkXsu4U8IVkrePGLmWtSRRuOOdmripaCYLZYjxLqcB+BF3oOHUGoA3YDJSnaqCmapqeKuC1iYGy1mkZZVgWsm4VlCzIIleC5w2gHhCHWTUY5wr0sTttG65IlnJVaNhqA6wBIet8NfBmlkCqipuV4Wqiu1I+rOCFago3hx9t3br1ScGy6NcnvWkA0gX2kwvn9HYF3MlkYajSChAjwgonLQfv1PFDV18HZsQKjAe6q2SwvD+MYB19dKtAWeeaq+p1QpVo8jfHuisJ5Qp2sCtm6Y29T644NqGcj3+vZgX8DFcyWP6NMmtgXHNZXxTBT7jkT/t1i51GgjnP1lq7kkNr7YIptsWapCq9/kiVJHsfJkXVuKqp0j9fxb+OXTFZ7Ot7LiuFL2AQNwr5z2HJckgWY9VQmMNXKGXJvavU/fM+NsXcgxxZdhI9VUBVhaHLWjgkKuOTezrJboVb8IjLKoSfgmBFseK80GRhjPTODvQz7ljGTJLLQF1VzzBFqvKPgYJFa8AtER3jM6H8QG3vZfBDobLOhSoMwU5Dt3VE7SrzOlmbLfnSZ6HATutWZqqymxVUqXSUz8+SRei/k6IAbkC3/AuT9XkhsnByZ8XrD0NyYwTrylg3V8zLZFstv5k9tSJRdmZbp1QRslc5eqRErvRP/XvBTQlfksbXXJbGJ7CHG+NxPl/KMqwSfzc05qdQlZcr2Bni5VoyVn1KlV6Bw+liylWRK5dildHYJ06y8MSd+Zl/kNXaj0qQovX6I8j67PMCkLKqBF7B/uGhZuuEYpVx7WfPbzl+/mzBcs5ujso4nVC+Wrt5qlRXC6+ajBRhfvamfxNNGOQd6P4KWbBVmKwqgRfQNoLVmNQEGbGCnxCbYMMcV8OTqzK2MCP21yQrt7GPW51UqqSKXJ1Sa2eI0+i/C1kJPoc53KSS/xwui2KFsTxs6MlyyVVdm10JPxbCGZIqo1d1jqSpEh/gapYWK0LWn2mJ00n5BFz/MpqJ8iF9/UPdufy4FMVx/MYf4E9ghURELMQCEa/Em3gl4hWPeEYICfGKJREiQbARwULEwoYVG4nGdWk7DUHTpEbbSKudajvtdDpjiO9533POvUXNovOZ03tvaybRT76/X29Oz22HFzvOZLgaFfRk9YAqVBm+XofWIPODhVQvou9NV6pZ9Yl3XCBKbOKfIatdqlJJ4UShdNmfrVyBKAypiq0rQxU655GsUZaFVFH6XatnSVd2CQK68hNFGNrYS/rVwriRjRfVp/f0XoUpr0BMVfJTu4fUrAxTRcvQewhZmyYjW+P/CH4Jo92xkKW+nLnieUawmsKVWr6gvQmRwd9mQpoVSGWpKYrbHPn14znLl/tCr0BFKvn2z6JAVLarYlNkSgFXiTUOODt+FJCyVKzwwpx2abQwBC0RKztXdJoTf55sc2L16xkn0UrX6/VKJf+Lta5E7ItExeorXlgZ7TyBqKzAF0MsUloRYiSy1x2wdzRl+VX1fBjyzKbVCHcFW5/IH78SqmxXVeGqWahX4IrQ4k2sZKr6+jmp5tZszK+wIPTGBhNSk4AvsV7rEHaOoqzvSIbv+9EHPbMOK1IVMFcnvCITxF/0SSv/+XrG5a7ieRIrThOuSLz6NFOpXu2dEwzbEtkwkkRWD2JKMHQxV+4xh7ByPJhoMX7ieIx/eYzI0r93vwVVTJcwVtVipbl69+otWSXLVGGItq5s/XzGSdcr3FU+X5ma4E2s1StNiWVPXJhC1Jz5tTvF/qEfwhJumih62+pQFp+XrjrHkPWBEhuBKKZLUISsQFewk8RffOOuguasPgtXkYoEtvL8839wa5VTeFOILZeWvgA1YsD+4W2sXME3vBuz7eqknW5Ac5UDeNMaTVkfhKsPPzyKqxrXC7tdEZirWCxFVYXMhMqZy2FpqpIHaf+Viz9+9hejKeFLCdN0vYiVapX0UKvp6ZLIjeBTxVb9ZI84nOVE1jj8UHBggofsx+3fYbI+SFexGG9ZdMPola6YKVWD5I2WJDElZBmqECxBi5mSNOWZFycbHx78ma7U+2u1avk7KFf76pV8+ufgwPBIHIaC4ReNajXIxlFHsonI+m+kLOmq6HFcaetrmCvMXObeolUFpIrbasgLyYaoK6WL9zKurBNYm2I7lSn2Qgi2LHEkqxGtUZKlVElZvGlhgIxWgkIVrqyJ5YpRX6iMXIFMVs4vpVkBKnjP6VzYczp8mVLtCsQ3Oz7OTkS0JozDmEBRx9p9sQ8CD0tZMbgilDyOOjd9yVQZrf0bVBWTsGRXoJw37ucXdGKDUGmuCqKbdZoqtgU4Yqp4pNh2nUNQXQu2JvwvkFWWqkCu7ElcLuwVZL3mqHYFVcWUZsqeNI6TOqFPx9ViVSDEO1dFN2xIEmzw9cJ3HJ1j49HBR11WVakCLuG9cKVi9eVDEWTet3EFWz1EFQtAxG+K2po69B/Bko3KbuzAdAUWn8Xr4KjIinGw4CJX8wTy5PT1a721v3sZhalSz0tblRRF+cmvu8OI533AFEiPdGBJDtxUosSOxyp7xrFYdoVEa9qEaRLcwQg7Nh8TsqQrdKFcn67KxU7UIFf1qbdI+Bz0GkhVCVlf3OeAxWAEiiAJgzKVfL1mw+3Ektjo9ccjxWwddkK+cxu2/odF+XyZq6IUIcvQFddq8GMyR2P1UU5Z2Y2dU3quGC5I8ixXYPBfMqV2ovz08wXFRSeQ5ePAf8kSycpRW9DQ7wFN1483cpLhZaqnCEq5b/Y7p/ZbXAPi0js8tQGRLLqHK0qTS7BRZjD8Z1X22TobuCFTuN3a54SwGZWEaE2aNkmAQ3VfYf473wtZOaYK1D0D90dPNPWNLTorUlXFVFizAsrV1yxXRdi97ezeYzv2btq2gqWL2GqkG54qMrPo9DwxUdp8FdtiT1WJEjy0ywll1RVia1LHkDKkqopwRah4Js0ecXIPSqWeb6+Eq/bLPMp4BrL/yqeweMe2pdQXsdUYpI1a5gZH1n3ey7kms1OpMyuYIu1qsdOGlReQrM5tIVnVWIyqCpHljlBXOWYq9fIdxzZlXJk0wOqDPTH/c1i2aSnt9JDVGGalBrgZ677csKHBSlBxaL3TniVHaFl1LqsMVUJWqZiPeBFPo/UpQ+Yvk5+/fnylFqUZbd12lXETgL9SHTRex8+TUkQxNhpxJkKLkryv7TVFdKuRTRzc54Sigk1VTfcxafokjND76jGaLCJKuCoVInCly8LscQfrrGKsQJix7VZBjC/kQSHfiHBH8rRAv6+EAX+3Ms4Ysof2ifS2Z/kF4qoj0LOqyhUoQI/ua8CWFe4KprisRgIIYWcC/tPbWLrSEV909HNzw5DogapPgSwzddgswHCWXJ/+37JKjKmGKshqs35PmrKClYknfNx1Alh2diNk5ac2lSpgqbLbFDY8sbdObj91+OL6E84/sWrSnOlzMJgCHAB2v83jAGVYU65AOuIZXWuQuQqvwMBFoaVE1hetsG6y+ey2rSumYsGIhpkoYYjYOXhy+5RTZw5fPLdv/a7jRuH9Q7jmdALpWdSUkgU8U1bQREzblY6ZEchSvv5UJLsunpm7/eTBPZyDB08eOrR9+1xoOXP48F2Y2bd+/S5bTudsuD1n4ZyFFBxQcIBB90HgYVKGJSHrOwZk0aalhA3JVGmEqqKy8uJTIRgnnG5jyfWZC2diLMSYyVH3sQHiWOxJskrSFWa+GzRZRJiUxVWFL3S01+8Vhaosve1xupANt2f+I0hWjasCTJan6xoSrmxVGNyUvoI25mYpohK3O93Ikmv/KGs/GjxVpWSxaPnKMGx6L2z53reSuqiTHRx2uhOEawZl5oyZGHQPxLHYa7KUq3K5wWIl4wVZfzqzErK4qlRNXqkoivGc06UsucZU/R378/k+WoJKlkCWoW0K2C+BGETV57wLU9SWzNcup2vZcHvGX4Nk9clYwRVkCVHY0O2QPb1nNytAVJFPNiWuXP7DuOV0MSRc/5AsnyozWRiQZTWr4AtuMlDVOwBHTJfilNPVbJg9e8ZspgMHGHyvHuMcgCzlyp8ssqUHg393bdI38qEj0WEXJKgvDC6ta1uWDNfs9ihZ/T5V1XI6IvHYGNBOQkMueMO1g3D19he1BF3UlajE7jsltcL117KkKsiqTo1oQNeAOWllX5uUgSq46vmhXafIo9XtVcjDNWv2rNkYs+QeGI8dKBQgi4vCqBYMV16kpdefHSuooq5ycSFJ9i2ycdc7Y4ENj2f9CSSrXhZUQT5i4A0HTcT4U8VX7dcirglsjY1g0XBd+pOse5AlTYXI4t3KMsVVcVfpIFVgz3FnrLDq8R9lVZQqUImYNImq4NfAr0lxNciLlhvMky4+IbVYfGnerFnzZs3DCJRVKFSUqlqtVo/EDVnxb8SUfWUSQiWvyPoed4O5OXZyRVl5dV4495Gsalm4Av1wZZAMUIVQ+a5eS7NVgjZblzhjjYdtZeWlKmoLdgxfL4zP/mKhArwGY7+gCsMicsUZgyx7wNQsmLcAQ5rC4VMpq8aJWHxI4mMqpCryPr66eg1UInLJrs7lY87YZMPpBYE8giyVKtAXj5vJKiahpPcz/QrpqH71WjL6YdgD3JSWsN0rnbHKkkuhsmqQVeWq+oisiO6rytejv6XAEweuVKzUVRlc23hnLLPyKtUzf8F8DLbHEWT1iVBRWSMRostvq94LW/rVRzxXMcRKiBI/LFvNvc4Y5wb8mGASvi5l9YGBOGRp0Wr0MlvUl9whVr/bO3fdtmEoDPNJ0r1P0UW+oKC1GGjRJoCBdKinwB09B/DgIICHvELRIQ+RQYuHnqxdjI42ejMqVWpguUWPKNJHFKtKBZJBlD5YpucPh8c/aRLeeHSOK/vgFHzBak93bsgaY3ZIVUl+eQCgVdZPcTsE5RCJqs+/lSrSJUvrhFkBX+RkJdmBXCFr1bRA+drjpp52uS35fPPDWxYQnzFbuJo6zhPnIOt6g5s06QxEfN8PAPGytQUf0JbQRbK+x4YjlR9eDpg9dOdOFjEPv0hXiMgOoJXWe7rblnIbLuWms8mz+oX2kozqEOdrLC1hSpJWVjZB+HS1TSjbgDyWZALPmXXwhdNxOvhCWz20JVyluoIYQKiiyRhqNwG/RvLsiGdW18WI2chw2pEkpRWgLEUICk9V1zf6X56bMKMqz6s+s5QrpWuc2PIlQbBSogAO+XR1Ky6afvy0AuGKniXhPWIWI3U5vdRW4AcCkJArJN7d7SLtlx9VW8pXbdfN/6frfJPYUq58cqWivBpIlTrFRcJOObOe4SKx1Vsj20Cwjam01JODjiUpcbaE9jL4W9Hkla7tNgTI9XgxmtChiMie0F5G/930+vX6wOOsKvinKDlaFdrL4XOcipIACOpcxco820J7BfhsLH1F+jyUQxE2hvYqdEezo8lk8hQIavQFwiwN7ZV5Awa0+Mnh1nen/Z44BkLv9DljYHVorwbfgwGtf4iL2u+03weXYKJKi5pXE0J7FU5Bw8zz+N6Q0F4OD4EwvhWRJoX2UoZhUY9PZ2PYrNBewuAODLzDUMPjMQ8Kd6GIaMZaclxG8FfcIWsxGLkxGOzazl7AYKLn09idtd2qmP7ZiZsK24fHR20MLafPB6O2UTWAP1yGz7GpTmekAAAAAElFTkSuQmCC",phone="data:image/png;base64,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";var _a,LOCALE={zh:{TITLE:"眼镜模式",HIT:"请将手机横屏放入 VR 眼镜中"},en:{TITLE:"GLASSES MODE",HIT:"Please put the mobile phone horizontally into the VR glasses."},ja:{TITLE:"メガネモード",HIT:"携帯電話をVRメガネに水平に入れてください。"}},TEXT=typeof navigator!="undefined"&&(_a=LOCALE[navigator.language.split("-")[0]])!==null&&_a!==void 0?_a:LOCALE.zh,CONTENTS=`
|
|
1596
|
+
`,PanoVideo=function(){function n(){this.material=new THREE__namespace.ShaderMaterial({vertexShader:PANO_VIDEO_MATERIAL_VERTEX_SHADER,fragmentShader:PANO_VIDEO_TILE_MATERIAL_FRAGMENT_SHADER,uniforms:{size:new THREE__namespace.Uniform(null),matrix:new THREE__namespace.Uniform(null),alpha:new THREE__namespace.Uniform(null),map:new THREE__namespace.Uniform(null)},depthTest:!1,depthWrite:!1,defines:{USE_PANO_VIDEO:!1},blending:THREE__namespace.CustomBlending,blendSrc:THREE__namespace.SrcAlphaFactor,blendDst:THREE__namespace.OneMinusSrcAlphaFactor,blendSrcAlpha:THREE__namespace.OneFactor,blendDstAlpha:THREE__namespace.OneMinusSrcAlphaFactor}),this.object=new THREE__namespace.Mesh(sharedGeometry$1,this.material),this.object.visible=!1,this.object.renderOrder=-1,this.object.frustumCulled=!1,this.object.name="pano-video",this.alphaMotion=new Motion({alpha:0})}return n.prototype.setMaterial=function(t){t?(this.material.uniforms.size.value=t.size,this.material.uniforms.matrix.value=t.matrix,this.material.uniforms.map.value=t.map,this.alphaMotion.set({alpha:t.alpha},500).catch(noop$1),this.material.uniforms.alpha.value=t.alpha):(this.material.uniforms.size.value=null,this.material.uniforms.matrix.value=null,this.material.uniforms.map.value=null,this.alphaMotion.set({alpha:0},0).catch(noop$1));var e=t!==null,r=this.material.defines.USE_PANO_VIDEO;e!==r&&(this.material.defines.USE_PANO_VIDEO=e,this.material.needsUpdate=!0,this.object.visible=t!==null)},n.prototype.updateTime=function(t){this.alphaMotion.ended||(this.alphaMotion.update(t),this.material.uniforms.alpha.value=this.alphaMotion.value.alpha)},n.prototype.dispose=function(){this.material.dispose()},n}(),ROTATE_Y_PI_MATRIX$1=new THREE__namespace.Matrix4().makeRotationAxis(new THREE__namespace.Vector3(0,1,0),Math.PI),PANO_TEXTURE_SCALE$1=new THREE__namespace.Vector3(-1,1,1),CubeRenderTargetPool=function(){function n(t){t===void 0&&(t=0),this.width=t,this.pool=[]}return Object.defineProperty(n.prototype,"size",{get:function(){return this.pool.length},enumerable:!1,configurable:!0}),n.prototype.create=function(){return new THREE__namespace.WebGLCubeRenderTarget(this.width,{stencilBuffer:!1,depthBuffer:!1})},n.prototype.pop=function(){var t=this.pool.pop();return t||this.create()},n.prototype.push=function(t){this.pool.indexOf(t)===-1&&this.pool.push(t)},n.prototype.clear=function(){for(var t=0,e=this.pool;t<e.length;t++){var r=e[t];r.dispose()}this.pool.length=0},n}(),defaultPanoramaControllerCustomInitArgs=__assign(__assign({},defaultPanoramaLikeControllerCustomInitArgs),{maxAccessibleDistance:5,panoTapTriggerRadius:.5,panoCircleMeshCreator:function(n){return new PanoCircleMesh},tiledCubeTextureLevel:2,tileLevelForFov:function(n,t){var e,r=function(l){return l/180*Math.PI},o=(e=Math.log2)!==null&&e!==void 0?e:function(l){return Math.log(l)*Math.LOG2E},s=t.height/2/Math.tan(r(n/2))*Math.tan(r(45))*2,u=Math.max(o(s/512),0);return u<2.3&&u>.1&&(u=1),u=u%1>.75?Math.ceil(u):Math.floor(u),u},tileMaxRequest:3,luminanceAdaptiveEffectEnable:!0}),PanoramaController=function(n){__extends(t,n);function t(e){var r=this,o,s,u,l,c=t.parseArgs(e);r=n.call(this,c)||this,r.mode="Panorama",r.tileLevel=0,r.initAnimationed=!1,r.maxAccessibleDistance=c.maxAccessibleDistance,r.panoTapTriggerRadius=c.panoTapTriggerRadius,r.panoCircleMeshCreator=c.panoCircleMeshCreator,r.tiledCubeTextureLevel=c.tiledCubeTextureLevel,r.tileLevelForFov=c.tileLevelForFov,r.tileMaxRequest=c.tileMaxRequest,r.luminanceAdaptiveEffectEnable=c.luminanceAdaptiveEffectEnable,r.luminanceAdaptiveEffect=new LuminanceAdaptiveEffect(r.renderer,r.modelScene,r.camera,r.models),r.colorCubeRenderTargetPool=new CubeRenderTargetPool,r.luminanceCubeRenderTargetPool=new CubeRenderTargetPool;var f=r.models.getMaterial()||{},d=f.pano0,p=f.pano1;d&&(p==null?void 0:p.map)!==d.map&&(r.models.setMaterial({pano0:p}),d.map.dispose(),d.map instanceof TileCubeTextureTarget&&d.map.cubeRenderTarget&&r.colorCubeRenderTargetPool.push(d.map.cubeRenderTarget),d.luminanceMap&&(d.luminanceMap.dispose(),d.luminanceMap instanceof TileCubeTextureTarget&&d.luminanceMap.cubeRenderTarget&&r.luminanceCubeRenderTargetPool.push(d.luminanceMap.cubeRenderTarget)));var v=new Set;d&&v.add(d),p&&v.add(p);for(var A=r.colorCubeRenderTargetPool.size+v.size;A<2;A++){var g=Math.max(1024*r.tiledCubeTextureLevel,512),h=r.colorCubeRenderTargetPool.create();h.setSize(g,g),renderCubeTextureToCubeRenderTarget(null,h,r.renderer),r.colorCubeRenderTargetPool.push(h)}r.panoMeshes={},r.updatePanoMeshes(),r.locationMotion=new Motion({count:0,distance:r.camera.pose.distance}),r.modelAlphaMotion=new Motion({modelAlpha:(s=(o=r.models.getMaterial())===null||o===void 0?void 0:o.modelAlpha)!==null&&s!==void 0?s:0}),r.perspToOrthoMotion=new Motion({perspToOrtho:r.camera.perspToOrtho.x}),r.panoResources={},r.panoResources[r.locationMotion.keyframes[0].key=r.locationMotion.keyframes[1].key=createUuid()]={panoId:panoStringify(r.currentPano),panoPicture:(l=(u=r.models.getMaterial())===null||u===void 0?void 0:u.pano1)!==null&&l!==void 0?l:null,position:r.camera.pose.offset.clone(),effect:"fly",fixCameraTransform:new THREE__namespace.Matrix4};var y=r.works.getResolvedObserver(r.currentPano);return r.textureLoader=new TextureLoader,r.tiling=new Tiling(y?getFetcher(y.work):internalFetcher,r.tiledCubeTextureLevel+1,r.imageOptions),r.scene.add(r.tiling.object),r.panoVideo=new PanoVideo,r.scene.add(r.panoVideo.object),r}return t.parseArgs=function(e){var r,o,s,u,l,c,f;if(e instanceof t)return e;var d=n.parseArgs.call(this,e);return __assign(__assign({},d),{maxAccessibleDistance:(r=e.maxAccessibleDistance)!==null&&r!==void 0?r:defaultPanoramaControllerCustomInitArgs.maxAccessibleDistance,panoTapTriggerRadius:(o=e.panoTapTriggerRadius)!==null&&o!==void 0?o:defaultPanoramaControllerCustomInitArgs.panoTapTriggerRadius,panoCircleMeshCreator:(s=e.panoCircleMeshCreator)!==null&&s!==void 0?s:defaultPanoramaControllerCustomInitArgs.panoCircleMeshCreator,tiledCubeTextureLevel:(u=e.tiledCubeTextureLevel)!==null&&u!==void 0?u:defaultPanoramaControllerCustomInitArgs.tiledCubeTextureLevel,tileLevelForFov:(l=e.tileLevelForFov)!==null&&l!==void 0?l:defaultPanoramaControllerCustomInitArgs.tileLevelForFov,tileMaxRequest:(c=e.tileMaxRequest)!==null&&c!==void 0?c:defaultPanoramaControllerCustomInitArgs.tileMaxRequest,luminanceAdaptiveEffectEnable:(f=e.luminanceAdaptiveEffectEnable)!==null&&f!==void 0?f:defaultPanoramaControllerCustomInitArgs.luminanceAdaptiveEffectEnable})},t.initAnimationEndState=function(e){var r=this.parseArgs(e),o=n.initAnimationEndState.call(this,r);return __assign(__assign({},o),{mode:"Panorama"})},t.prototype.updateConfiguration=function(e){var r=this,o=n.prototype.updateConfiguration.call(this,e);if(o===!1)return!1;if(e.maxAccessibleDistance!==void 0&&this.maxAccessibleDistance!==e.maxAccessibleDistance&&(this.maxAccessibleDistance=e.maxAccessibleDistance),e.panoTapTriggerRadius!==void 0&&this.panoTapTriggerRadius!==e.panoTapTriggerRadius&&(this.panoTapTriggerRadius=e.panoTapTriggerRadius),e.panoCircleMeshCreator!==void 0&&this.panoCircleMeshCreator!==e.panoCircleMeshCreator&&(this.panoCircleMeshCreator=e.panoCircleMeshCreator,this.panoMeshes)){for(var s=Object.keys(this.panoMeshes),u=0,l=s;u<l.length;u++){var c=l[u],f=this.panoMeshes[c];this.helper.remove(f),f.dispose(),delete this.panoMeshes[c]}this.updatePanoMeshes()}return e.tiledCubeTextureLevel!==void 0&&this.tiledCubeTextureLevel!==e.tiledCubeTextureLevel&&(this.tiledCubeTextureLevel=e.tiledCubeTextureLevel,setTimeout(function(){r.moveToPano(r.currentPano,{},!0)},30)),e.tileLevelForFov!==void 0&&this.tileLevelForFov!==e.tileLevelForFov&&(this.tileLevelForFov=e.tileLevelForFov),e.tileMaxRequest!==void 0&&this.tileMaxRequest!==e.tileMaxRequest&&(this.tileMaxRequest=e.tileMaxRequest),e.luminanceAdaptiveEffectEnable!==void 0&&this.luminanceAdaptiveEffectEnable!==e.luminanceAdaptiveEffectEnable&&(this.luminanceAdaptiveEffectEnable=e.luminanceAdaptiveEffectEnable),!0},t.prototype.destroy=function(){var e,r;if(n.prototype.destroy.call(this),this.scene.remove(this.tiling.object),this.tiling.dispose(),this.locationMotion.dispose(),this.colorCubeRenderTargetPool.clear(),this.luminanceCubeRenderTargetPool.clear(),delete this.pendingTextureTask,this.panoMeshes)for(var o=Object.keys(this.panoMeshes),s=0,u=o;s<u.length;s++){var l=u[s],c=this.panoMeshes[l];this.helper.remove(c),c.dispose(),delete this.panoMeshes[l]}var f=this.videoTexture.image;f.pause(),f.oncanplay=function(){},f.ontimeupdate=function(){},this.scene.remove(this.panoVideo.object),this.panoVideo.setMaterial(null),this.panoVideo.dispose();for(var d=(e=this.models.getMaterial())!==null&&e!==void 0?e:{},p=d.pano0,v=d.pano1,A=0,g=Object.keys(this.panoResources);A<g.length;A++){var h=g[A],y=this.panoResources[h];if(y.panoPicture){var m=y.panoPicture.map;m&&m!==(p==null?void 0:p.map)&&m!==(v==null?void 0:v.map)&&(m.dispose(),(r=y.panoPicture.luminanceMap)===null||r===void 0||r.dispose(),y.panoPicture=null)}delete this.panoResources[h]}this.luminanceAdaptiveEffect.dispose()},t.prototype.isReady=function(){return this.locationMotion.ended!==!0?!1:n.prototype.isReady.call(this)},t.prototype.isTileReady=function(){var e,r,o,s=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),u=((e=s.panoPicture)===null||e===void 0?void 0:e.map)instanceof TileCubeTextureTarget&&(o=(r=s.panoPicture)===null||r===void 0?void 0:r.map.tilePending)!==null&&o!==void 0?o:0,l=u<=0,c=this.tiling.pedding,f=this.tiling.object.visible&&c<=0;return this.initAnimationed&&l&&f},t.prototype.updateWork=function(e,r,o,s){var u=this;this.userAction=s,this.works=e;var l=t.initAnimationEndState(__assign(__assign({},this),{initial:{currentState:__assign(__assign({},this.currentPano),this.camera.pose),duration:o.duration,effect:o.effect,state:r,userAction:s}})),c={workCode:l.workCode,panoIndex:l.panoIndex},f=this.works.getWork(c.workCode);return this.tiling.setFetcher(f?getFetcher(f):internalFetcher),this.tiling.cleanup(),this.initAnimationed=!1,this.hideIntersectMesh(),this.updatePanoMeshes(),this.moveToPano(c,{effect:o.effect,duration:o.duration,longitude:r.longitude,latitude:r.latitude,fov:r.fov,moveEndCallback:function(){u.initAnimationed=!0},moveCancelCallback:function(){u.initAnimationed=!0}},s),!0},t.prototype.updateModel=function(e){this.models=e,this.updatePanoMeshes()},t.prototype.updateTime=function(e,r){var o=this,s,u,l,c,f,d,p,v,A,g;if(!this.destroyed){var h={},y={},m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),E=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),b=!1;if(this.cameraMotion.ended===!1&&(this.cameraMotion.update(e),y.longitude=this.cameraMotion.value.longitude,y.latitude=this.cameraMotion.value.latitude,y.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended===!1&&(this.modelAlphaMotion.update(e),h.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended===!1&&(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended===!1){this.locationMotion.update(e);var T=this.locationMotion.getKeyFrameSegment(e),_=T[0],R=T[1],S=this.panoResourceFromLocationMotionKeyframe(_),C=this.panoResourceFromLocationMotionKeyframe(R),B=new THREE__namespace.Vector3().copy(S.position),L=new THREE__namespace.Vector3().copy(C.position),M=this.locationMotion.value.count-R.value.count+1;h.progress=M,C.panoPicture&&(M<1?S.panoPicture&&(h.pano0=S.panoPicture):h.pano0=C.panoPicture,h.pano1=C.panoPicture),C.effect==="montage"?h.transition="BLACK":C.effect==="spread"?h.transition="SPREAD":h.transition="FADE",(C.effect==="zoomin"||C.effect==="zoomout")&&(h.progress=Math.pow(M,3)),M<1&&C.effect!=="fly"&&(h.pano0&&S.panoPicture&&(h.pano0={map:h.pano0.map,zoom:h.pano0.zoom,luminanceMap:h.pano0.luminanceMap,matrix:S.panoPicture.matrix.clone().premultiply(S.fixCameraTransform).setPosition(C.position)}),B.copy(L),b=!0),y.distance=this.locationMotion.value.distance,y.offset=new THREE__namespace.Vector3(B.x+(L.x-B.x)*M,B.y+(L.y-B.y)*M,B.z+(L.z-B.z)*M);for(var w=[],H=[],O=0,I=this.locationMotion.keyframes;O<I.length;O++){var N=I[O],k=N.key,U=N.progress;k!==void 0&&(w.push(k),U>this.locationMotion.progress&&H.push(k))}for(var D=0,q=Object.keys(this.panoResources);D<q.length;D++){var z=q[D];if(!(H.indexOf(z)>=0)){var Q=this.panoResources[z];if(Q.panoPicture){var G=Q.panoPicture.map,X=Q.panoPicture.luminanceMap;if(G){if(G===((s=h.pano0)===null||s===void 0?void 0:s.map)||G===((u=h.pano1)===null||u===void 0?void 0:u.map))continue;G instanceof TileCubeTextureTarget&&G.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(G.cubeRenderTarget),G.dispose(),X&&(X instanceof TileCubeTextureTarget&&X.cubeRenderTarget&&this.luminanceCubeRenderTargetPool.push(X.cubeRenderTarget),X.dispose()),Q.panoPicture=null}}w.indexOf(z)>=0||delete this.panoResources[z]}}this.currentPano=panoParse(C.panoId),this.emit("pano.moving",createEvent("pano.moving",{userAction:this.userAction,prevPano:panoParse(m.panoId),state:__assign(__assign(__assign(__assign({},panoParse(E.panoId)),{mode:this.mode}),clonePose(this.camera.pose)),y),options:{},progress:this.locationMotion.progress,error:null}))}isEmptyObject(h)===!1&&(!((l=h.pano0)===null||l===void 0)&&l.map&&h.pano0.map instanceof TileCubeTextureTarget&&!h.pano0.map.cubeRenderTarget&&(h.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((c=h.pano0)===null||c===void 0)&&c.luminanceMap&&h.pano0.luminanceMap instanceof TileCubeTextureTarget&&!h.pano0.luminanceMap.cubeRenderTarget&&(h.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),!((f=h.pano1)===null||f===void 0)&&f.map&&h.pano1.map instanceof TileCubeTextureTarget&&!h.pano1.map.cubeRenderTarget&&(h.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((d=h.pano1)===null||d===void 0)&&d.luminanceMap&&h.pano1.luminanceMap instanceof TileCubeTextureTarget&&!h.pano1.luminanceMap.cubeRenderTarget&&(h.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.models.setMaterial(h)),isEmptyObject(y)===!1&&this.setCamera(y);var $=this.works.getResolvedObserver(this.currentPano),W=this.locationMotion.ended?this.getForwardObserverOrNot():null;if(this.camera.pose.distance>.1||b)for(var oe=0,ae=Object.keys(this.panoMeshes);oe<ae.length;oe++){var re=ae[oe],j=this.panoMeshes[re];j.setOpacity(0),j.setCurrent(!1),j.updateTime&&j.updateTime(e,r),j.visible=!1}else if($){var se=arrayMin($.visibleIds,function(me){var ce=o.works.getResolvedObserver(me);return ce?$.standingPosition.distanceTo(ce.standingPosition):1/0},!0),ie=se[1];ie=clamp$1(ie,2.5,1/0);for(var ue=$.visibleIds.concat(panoStringify(this.currentPano)),fe=this.camera.getDirection(new THREE__namespace.Vector3),ne=0,Te=Object.keys(this.panoMeshes);ne<Te.length;ne++){var re=Te[ne],j=this.panoMeshes[re],_e=this.works.getResolvedObserver(re);if(ue.indexOf(re)===-1)j.setCurrent(!1),j.setOpacity(0);else if(!_e)j.setCurrent(!1),j.setOpacity(0);else if(!_e.loadable&&!_e.active)j.setCurrent(!1),j.setOpacity(0);else{var ve=j.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);j.setCurrent(!j.loading&&j.progress===0&&W!==null&&W.panoId===re),j.setOpacity(ve<.01?0:clamp$1(ie/ve*1.2,.4,.85));var Me=this.camera.position.clone().setY(j.position.y),Z=new THREE__namespace.Vector3().copy(j.position).sub(Me).normalize();if(re===panoStringify(this.currentPano)){var te=clamp$1((.5-Me.distanceTo(j.position))/.5,0,1);Z.multiplyScalar(1-te).add(fe.clone().multiplyScalar(te))}Z.length()>0&&j.quaternion.setFromEuler(new THREE__namespace.Euler(0,Math.atan2(Z.x,Z.z),0))}j.updateTime&&j.updateTime(e,r)}}var K=this.tileLevel=function(){if(o.tileLevelForFov===!1)return 0;var me=o.renderer.getDrawingBufferSize(new THREE__namespace.Vector2);me.width*=o.scissor.width,me.height*=o.scissor.height;var ce=E.panoId,he=o.works.getResolvedObserver(ce),ee=o.imageOptions.size;if(typeof ee=="undefined"&&he){var pe=he.images.up.match(/\/cube_(\d+)\//);pe&&(ee=Number(pe[1]))}typeof ee=="undefined"&&(ee=2048);var Re=0;ee>=1024&&(Re=1),ee>=2048&&(Re=2),ee>=4096&&(Re=3),ee>=8192&&(Re=4);var we=o.tileLevelForFov(o.camera.fov,me);return we>Re?we:0}(),ye=function(){var me=o.camera.quaternion.clone(),ce=o.works.getResolvedObserver(E.panoId),he=ce!=null?ce:$;he&&me.premultiply(he.quaternion.clone().inverse());var ee=new THREE__namespace.Matrix4().makeRotationFromQuaternion(me),pe=new THREE__namespace.Matrix4().getInverse(ee),Re=new THREE__namespace.Frustum().setFromProjectionMatrix(new THREE__namespace.Matrix4().multiplyMatrices(o.camera.projectionMatrix,pe));return Re}();E.panoId===panoStringify(this.currentPano)&&(((p=E.panoPicture)===null||p===void 0?void 0:p.map)instanceof TileCubeTextureTarget&&(E.panoPicture.map.maxRequest=this.tileMaxRequest,E.panoPicture.map.update(ye,Math.min(K,this.tiledCubeTextureLevel)),E.panoPicture.map.needsRender===!0&&(E.panoPicture.map.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0)),((v=E.panoPicture)===null||v===void 0?void 0:v.luminanceMap)instanceof TileCubeTextureTarget&&(E.panoPicture.luminanceMap.maxRequest=this.tileMaxRequest,E.panoPicture.luminanceMap.update(ye,Math.min(K,this.tiledCubeTextureLevel)),E.panoPicture.luminanceMap.needsRender===!0&&(E.panoPicture.luminanceMap.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0)));{var de=this.tiling.object.visible;if(this.initAnimationed){var xe=E.panoId,Ae=this.works.getResolvedObserver(xe);Ae?isSimilarVector3(this.camera.position,Ae.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==xe&&this.tiling.cleanup(),this.tiling.panoId=xe,this.tiling.setResource((g=(A=Ae.images)===null||A===void 0?void 0:A.tiles)!==null&&g!==void 0?g:[],this.enableIOSEDR&&Ae.images.luminance?Ae.images.luminance:null),this.tiling.setFetcher(getFetcher(Ae.work)),this.tiling.setRotation(Ae.quaternion),this.tiling.setPosition(Ae.position),this.tiling.maxRequest=this.tileMaxRequest,K>this.tiledCubeTextureLevel?this.tiling.update(ye,K,e):this.tiling.update(ye,0,e)):this.tiling.object.visible=!1:this.tiling.object.visible=!1}else this.tiling.object.visible=!1;de!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0,this.modelSceneNeedsRender=!0)}this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(e),this.intersectMesh.scale.setScalar(clamp$1(this.cameraMotion.value.fov/45,0,1))}},t.prototype.render=function(e,r){var o=this.renderer.getRenderTarget(),s=this.works.getResolvedObserver(this.currentPano);s&&s.video&&(this.needsRender=!0,this.modelSceneNeedsRender=!0),this.updateScreenBuffer(r),this.enableFragDepth?(e&&(r==="luminance"?(this.luminanceAdaptiveEffect.enable=this.luminanceAdaptiveEffectEnable,this.luminanceAdaptiveEffect.render(this.screenBuffers)):(this.renderer.setRenderTarget(this.modelRenderTarget),this.renderer.render(this.modelScene,this.camera))),this.depthCopyPass.render(this.modelRenderTarget.depthTexture,o),this.renderer.autoClearDepth=!1,this.renderer.autoClearColor=!0,this.copyPass.render(this.modelRenderTarget,o),this.renderer.setRenderTarget(o),this.renderer.autoClearColor=!1,this.renderer.autoClearDepth=!1,this.renderer.render(this.scene,this.camera),this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0):r==="luminance"?(this.luminanceAdaptiveEffect.enable=this.luminanceAdaptiveEffectEnable,this.luminanceAdaptiveEffect.render(this.screenBuffers)):(this.renderer.render(this.modelScene,this.camera),this.renderer.autoClearColor=!1,this.renderer.autoClearDepth=!1,this.renderer.render(this.scene,this.camera),this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0)},t.prototype.postProcessing=function(e,r){if(!this.destroyed&&r==="luminance")return this.luminanceAdaptiveEffect||(this.luminanceAdaptiveEffect=new LuminanceAdaptiveEffect(this.renderer,this.scene,this.camera,this.models),this.luminanceAdaptiveEffect.enable=this.luminanceAdaptiveEffectEnable),this.luminanceAdaptiveEffect.render(e)},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(now())[1],r=this.locationMotion.getKeyFrameSegment(now())[1],o=this.panoResourceFromLocationMotionKeyframe(r),s=this.works.getResolvedObserver(o.panoId);return{workCode:s?s.work.workCode:this.currentPano.workCode,panoIndex:s?s.panoIndex:this.currentPano.panoIndex,mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:s?s.position.clone():this.camera.position.clone(),distance:this.locationMotion.value.distance}},t.prototype.moveToPano=function(e,r,o){var s=this,u,l,c,f,d=(u=r.effect)!==null&&u!==void 0?u:"fly";this.userAction=o,this.stopMomentumMovement();var p=this.works.getResolvedObserver(e);if(!p)throw new Error("Invalid PanoId ".concat(JSON.stringify(e)));var v=getImageSizeFromURL(p.images.up),A=this.imageOptions.size;typeof A=="undefined"&&p&&v&&(A=Number(v)),typeof A=="undefined"&&(A=2048);var g=this.imageOptions.transform,h=__assign({key:"pano.".concat(p.panoId)},pick(this.imageOptions,["format","size","quality","sharpen","mappings"])),y=p.images,m=(c=(l=p.images.tiles)===null||l===void 0?void 0:l.filter(function(I){return I.size>A}))!==null&&c!==void 0?c:null,E=g,b={key:"pano_luminance.".concat(p.panoId),size:h.size?h.size/2:void 0},T=this.enableIOSEDR&&p.images.luminance?p.images.luminance:null,_=function(){if(!p.images.tiles||!T)return null;var I=getImageSizeFromURL(T.up);return I?m==null?void 0:m.map(function(N){var k=N.size*N.scale/2;return I<k?{level:N.level,size:k,scale:1,back:replaceImageSize(T.back,k),front:replaceImageSize(T.front,k),left:replaceImageSize(T.left,k),right:replaceImageSize(T.right,k),up:replaceImageSize(T.up,k),down:replaceImageSize(T.down,k)}:{level:N.level,size:I,scale:k/I,back:T.back,front:T.front,left:T.left,right:T.right,up:T.up,down:T.down}}):null}(),R="pano:"+jsonHash([y,h,g,this.tiledCubeTextureLevel]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===R)return;var S=this.pendingTextureTask.panoId;(f=this.panoMeshes[S])===null||f===void 0||f.setProgress(0),this.emit("pano.texture.abort",createEvent("pano.texture.abort",{error:null,progress:0,meta:null,pano:p.pano}))}var C="move-to-pano-"+p.panoId;this.pending.add(C);var B=this.models.getMaterial()||{},L=B.pano0,M=B.pano1,w;if(L&&L.map.name===R&&L.luminanceMap!==null===this.enableIOSEDR?w=L:(M==null?void 0:M.map.name)===R&&M.luminanceMap!==null===this.enableIOSEDR&&(w=M),w){var H={panoId:p.panoId,effect:d,panoPicture:{zoom:1,map:w.map,luminanceMap:w.luminanceMap,matrix:new THREE__namespace.Matrix4().compose(p.position,p.quaternion,PANO_TEXTURE_SCALE$1)},position:p.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};AnimationFrameLoop.shared.add(function(){s.pending.delete(C),s.doMoveToPano(p.pano,H,r)},!0,1);return}this.pendingTextureTask={panoId:p.panoId,hash:R,onLoad:function(I,N){var k;if(s.pending.delete(C),s.destroyed)I.body.dispose();else{I.body.name=R;var U={panoId:p.panoId,effect:d,panoPicture:{zoom:1,map:I.body,luminanceMap:(k=N==null?void 0:N.body)!==null&&k!==void 0?k:null,matrix:new THREE__namespace.Matrix4().compose(p.position,p.quaternion,PANO_TEXTURE_SCALE$1)},position:p.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};s.doMoveToPano(p.pano,U,r)}},onError:function(I){s.pending.delete(C);var N=__assign(__assign(__assign({},p.pano),{mode:s.mode}),clonePose(s.camera.pose));s.emit("pano.error",createEvent("pano.error",{error:I,userAction:s.userAction,options:r,prevPano:s.currentPano,progress:0,state:N})),s.emit("pano.cancel",createEvent("pano.cancel",{error:I,userAction:s.userAction,options:r,prevPano:s.currentPano,progress:0,state:N})),s.emit("error",I),r.moveCancelCallback&&r.moveCancelCallback()}};var O=this.panoMeshes[p.panoId];O&&O.tap&&O.tap(),Promise.all([this.tileLevelForFov&&m&&m.length?this.textureLoader.loadTiledCubeTexture(y,m,{tileMaxLevel:this.tiledCubeTextureLevel,imageURL:{transform:g,options:h},minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,generateMipmaps:!1,format:THREE__namespace.RGBAFormat,viaAjax:!0,fetcher:getFetcher(p.work)},void 0,void 0,function(I){var N,k;s.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:I,meta:null,pano:p.pano})),((N=s.pendingTextureTask)===null||N===void 0?void 0:N.hash)===R&&((k=s.panoMeshes[p.panoId])===null||k===void 0||k.setProgress(I))},this.renderer):this.textureLoader.loadCubeTexture(y,{imageURL:{transform:g,options:h},format:THREE__namespace.RGBAFormat,viaAjax:!0,fetcher:getFetcher(p.work)},void 0,void 0,function(I){var N,k;s.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:I,meta:null,pano:p.pano})),((N=s.pendingTextureTask)===null||N===void 0?void 0:N.hash)===R&&((k=s.panoMeshes[p.panoId])===null||k===void 0||k.setProgress(I))},this.renderer),T?this.tileLevelForFov&&_&&_.length?this.textureLoader.loadTiledCubeTexture(T,_,{tileMaxLevel:this.tiledCubeTextureLevel,imageURL:{transform:E,options:b},minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,generateMipmaps:!1,fetcher:getFetcher(p.work)},void 0,void 0,void 0,this.renderer).catch(function(){return null}):this.textureLoader.loadCubeTexture(T,{imageURL:{transform:E,options:b},fetcher:getFetcher(p.work)},void 0,void 0,void 0,this.renderer).catch(function(){return null}):Promise.resolve(null)]).then(function(I){var N,k,U=I[0],D=I[1];((N=s.pendingTextureTask)===null||N===void 0?void 0:N.hash)===R?(s.pendingTextureTask.onLoad(U,D),(k=s.panoMeshes[p.panoId])===null||k===void 0||k.setProgress(0),delete s.pendingTextureTask,s.emit("pano.texture.success",createEvent("pano.texture.success",{error:null,progress:1,meta:U.meta,pano:p.pano}))):(U.body.dispose(),D==null||D.body.dispose())}).catch(function(I){var N,k;((N=s.pendingTextureTask)===null||N===void 0?void 0:N.hash)===R&&(s.pendingTextureTask.onError(I),(k=s.panoMeshes[p.panoId])===null||k===void 0||k.setProgress(0),delete s.pendingTextureTask,s.emit("pano.texture.error",createEvent("pano.texture.error",{error:I,progress:0,meta:null,pano:p.pano})),s.emit("error",I))}),this.emit("pano.texture.load",createEvent("pano.texture.load",{error:null,progress:0,meta:null,pano:p.pano}))},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise(function(r){var o=e.initial,s=o.duration,u=o.effect,l=o.userAction;e.userAction=l;var c=t.initAnimationEndState(e),f={workCode:c.workCode,panoIndex:c.panoIndex},d={modelAlpha:0},p={perspToOrtho:0},v=!1;e.moveToPano(f,{longitude:c.longitude,latitude:c.latitude,fov:c.fov,effect:u,duration:s,moveStartCallback:function(A){v=!0,e.perspToOrthoMotion.set(p,s).catch(noop$1),e.modelAlphaMotion.setKeyframes([{progress:0,value:__assign({},e.modelAlphaMotion.value)},{progress:.6,value:__assign({},e.modelAlphaMotion.value)},{progress:1,value:d}],s).catch(noop$1),e.emit("initAnimation.start",createEvent("initAnimation.start",{state:A,userAction:e.userAction}))},moveEndCallback:function(A){e.emit("initAnimation.end",createEvent("initAnimation.end",{state:A,userAction:e.userAction})),e.initAnimationed=!0,r()},moveCancelCallback:function(){var A=__assign(__assign(__assign({},f),{mode:e.mode}),clonePose(e.camera.pose));v===!1&&e.emit("initAnimation.start",createEvent("initAnimation.start",{state:A,userAction:e.userAction})),e.emit("initAnimation.end",createEvent("initAnimation.end",{state:A,userAction:e.userAction})),e.initAnimationed=!0,r()}},l)})},t.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},t.prototype.locationMotionKeyframesLength=function(e){for(var r=0,o=1;o<e.length;o++){var s=this.panoResourceFromLocationMotionKeyframe(e[o-1]).position,u=this.panoResourceFromLocationMotionKeyframe(e[o]).position,l=s.distanceTo(u)*(e[o].value.count-e[o-1].value.count);r+=l}return r},t.prototype.updatePanoMeshes=function(){for(var e=this,r={},o=Object.keys(this.panoMeshes),s=0,u=o;s<u.length;s++){var l=u[s],c=this.panoMeshes[l];r[l]=c,delete this.panoMeshes[l]}for(var f=1,d={},p=function(R){var S=arrayMin(R.accessibleIds,function(B){var L=e.works.getResolvedObserver(B);if(!L)return 1/0;var M=L.standingPosition.distanceTo(R.standingPosition);return clamp$1(M,1,1/0)},!0),C=S[1];d[R.panoId]===void 0&&(d[R.panoId]=C)},v=0,A=this.works.resolvedObservers;v<A.length;v++){var g=A[v];p(g)}var h=Object.keys(d).map(function(R){return d[R]});if(h.length){var y=h.reduce(function(R,S){return R+S},0)/h.length;f=clamp$1(y*.6,1,3)}for(var m=0,E=this.works.resolvedObservers;m<E.length;m++){var g=E[m],c=void 0;r[g.panoId]?(c=r[g.panoId],c.loading===!0&&g.loadable===!1&&c.setLoading(!1),delete r[g.panoId]):(c=this.panoCircleMeshCreator(g.pano),c.name="PanoCircleMesh_"+g.panoId,this.helper.add(c)),c.scale.set(f,1,f),c.position.copy(g.standingPosition),this.panoMeshes[g.panoId]=c}for(var b=0,T=Object.keys(r);b<T.length;b++){var _=T[b];this.helper.remove(r[_]),r[_].dispose(),delete r[_]}},t.prototype.doMoveToPano=function(e,r,o){var s=this,u,l,c,f,d,p,v,A,g,h,y;o===void 0&&(o={});var m=now(),E=createUuid();this.tiling.cleanup(),this.panoResources[E]=r;var b=1,T,_,R;if(this.locationMotion.ended){var S=this.locationMotion.getKeyFrameSegment(m);S[0];var C=S[1],B=this.locationMotion.value,L=((u=this.panoResourceFromLocationMotionKeyframe(C))!==null&&u!==void 0?u:this.camera).position,M=r.position;T=Math.max(L.distanceTo(M),b),_=[{key:C.key,progress:0,value:__assign(__assign({},B),{count:0})},{key:E,progress:1,value:{distance:0,count:1}}],R=0}else{var w=this.locationMotion.getKeyFrameSegment(m),H=w[0],C=w[1],B=this.locationMotion.value,O=this.panoResourceFromLocationMotionKeyframe(H).position,L=this.panoResourceFromLocationMotionKeyframe(C).position,M=r.position,I=C.value.count-B.count,N=Math.max(O.distanceTo(L),b)*I,k=Math.max(L.distanceTo(M),b);T=N+k,_=[{key:H.key,progress:0,value:__assign({},B)},{key:C.key,progress:N/T,value:C.value},{key:E,progress:1,value:{count:C.value.count+1,distance:0}}];var U=this.locationMotionKeyframesLength(this.locationMotion.keyframes),D=this.locationMotionKeyframesLength(_);U===0||U===0?R=0:R=this.locationMotion.getProgressVelocity(m)*U/D}var q=r.effect==="instant"?0:this.calculateMovingDuration(o.duration,r.effect==="fly"?T:0),z={longitude:o.longitude,latitude:o.latitude,fov:o.fov},Q=__assign(__assign({},e),{mode:this.mode,longitude:(l=z.longitude)!==null&&l!==void 0?l:this.camera.pose.longitude,latitude:(c=z.latitude)!==null&&c!==void 0?c:this.camera.pose.latitude,fov:(f=z.fov)!==null&&f!==void 0?f:this.camera.pose.fov,offset:r.position.clone(),distance:this.camera.pose.distance}),G=this.currentPano;if(this.emit("pano.moveTo",createEvent("pano.moveTo",{options:o,prevPano:G,progress:0,state:Q,userAction:this.userAction,error:null})),o.moveStartCallback&&o.moveStartCallback(Q),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=noop$1,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),r.effect==="fly")this.cameraMotion.set(z,q).catch(noop$1);else{var X=coordinatesToVector({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude}),$=coordinatesToVector({longitude:(d=z.longitude)!==null&&d!==void 0?d:this.cameraMotion.value.longitude,latitude:(p=z.latitude)!==null&&p!==void 0?p:this.cameraMotion.value.latitude}),W=new THREE__namespace.Object3D;W.lookAt(X);var oe=new THREE__namespace.Matrix4().makeRotationFromQuaternion(W.quaternion);W.lookAt($);var ae=new THREE__namespace.Matrix4().makeRotationFromQuaternion(W.quaternion),re=new THREE__namespace.Matrix4().getInverse(oe).premultiply(ae),j=this.cameraMotion.value.fov,se=(v=z.fov)!==null&&v!==void 0?v:this.cameraMotion.value.fov,ie=1;r.effect==="zoomin"?ie=1.5:r.effect==="zoomout"&&(ie=.4);for(var ue=clamp$1(se*ie,1,170),fe=0;fe<_.length-1;fe++){var ne=_[fe].key;if(ne){var Te=this.panoResources[ne];Te&&(Te.fixCameraTransform.copy(re),Te.panoPicture&&(Te.panoPicture.zoom=Math.tan(j/2/180*Math.PI)/Math.tan(ue/2/180*Math.PI)))}}this.cameraMotion.setKeyframes([{progress:0,value:{longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude,fov:this.cameraMotion.value.fov}},{progress:0,value:{longitude:(A=z.longitude)!==null&&A!==void 0?A:this.cameraMotion.value.longitude,latitude:(g=z.latitude)!==null&&g!==void 0?g:this.cameraMotion.value.latitude,fov:ue}},{progress:1,value:{longitude:(h=z.longitude)!==null&&h!==void 0?h:this.cameraMotion.value.longitude,latitude:(y=z.latitude)!==null&&y!==void 0?y:this.cameraMotion.value.latitude,fov:se}}],q).catch(noop$1)}var _e=this.locationMotion.setKeyframes(_,q,R);_e.then(function(){for(var ve,Me,Z=0,te=s.models;Z<te.length;Z++){var K=te[Z];K.show()}var ye=__assign(__assign({},e),{mode:s.mode,longitude:s.camera.pose.longitude,latitude:s.camera.pose.latitude,fov:s.camera.pose.fov,offset:s.camera.pose.offset.clone(),distance:s.camera.pose.distance});s.emit("pano.arrived",createEvent("pano.arrived",{options:o,prevPano:G,progress:1,state:ye,userAction:s.userAction,error:null})),o.moveEndCallback&&o.moveEndCallback(ye);var de=s.works.getResolvedObserver(e);if(de&&de.video&&s.videoTexture&&s.videoTexture.image instanceof HTMLVideoElement){var xe=ROTATE_Y_PI_MATRIX$1.clone().multiply((Me=(ve=s.models.getMaterial().pano1)===null||ve===void 0?void 0:ve.matrix)!==null&&Me!==void 0?Me:new THREE__namespace.Matrix4).multiply(de.video.matrix),Ae={map:s.videoTexture,size:de.video.size,matrix:xe,alpha:1},me=createUuid(),ce=s.videoTexture.image;ce.setAttribute("uuid",me),canplayVideo().then(function(he){he&&de.video&&ce.getAttribute("uuid")===me&&(ce.oncanplay=function(){ce.oncanplay=noop$1,ce.play()},ce.ontimeupdate=function(){ce.currentTime>.5&&(ce.ontimeupdate=noop$1,s.panoVideo.setMaterial(Ae))},ce.src=de.video.source)}).catch(function(){ce.removeAttribute("uuid")})}},function(){s.emit("pano.cancel",createEvent("pano.cancel",{options:o,prevPano:G,progress:0,state:Q,userAction:s.userAction,error:null})),o.moveCancelCallback&&o.moveCancelCallback()})},t.prototype.getForwardObserverOrNot=function(e){var r=this,o=this.works.getResolvedObserver(this.currentPano);if(!o)return null;var s=e!=null?e:new THREE__namespace.Raycaster(this.camera.position.clone(),this.camera.getDirection(new THREE__namespace.Vector3));s.params.Points={threshold:.1};var u=o.standingPosition.clone();if(o.position.distanceTo(s.ray.origin)>1){var l=this.models.intersectRaycaster(new THREE__namespace.Raycaster(s.ray.origin,new THREE__namespace.Vector3(0,-1,0)))[0];l&&l.distance<=2?u.copy(l.point):u.copy(s.ray.origin).add(new THREE__namespace.Vector3(0,-1.5,0))}var c=this.models.intersectRaycaster(s)[0],f=c?c.point:s.ray.origin.clone().add(s.ray.direction.clone().normalize().multiplyScalar(3)),d=f.clone().sub(u).normalize();if(d.length()===0)return null;for(var p=o.accessibleIds.filter(function(_){if(_===panoStringify(r.currentPano))return!1;var R=r.works.getResolvedObserver(_);if(!R)return!1;var S=R.standingPosition.clone().project(r.camera);return Math.abs(S.z)>1||Math.abs(S.x)>1||Math.abs(S.y)>1?!1:R.loadable||R.active}),v=p.slice().sort(function(_,R){var S=r.works.getResolvedObserver(_).standingPosition.clone().distanceTo(u),C=r.works.getResolvedObserver(R).standingPosition.clone().distanceTo(u);return S-C}),A=0,g=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];A<g.length;A++)for(var h=g[A],y=0,m=v;y<m.length;y++){var E=m[y],b=this.works.getResolvedObserver(E);if(b){var T=b.standingPosition.clone().sub(u);if(T&&T.length()!==0&&d.angleTo(T)<h)return b}}return null},t.prototype.onTapGesture=function(e){var r=this,o;if(this.userAction=e.userAction,this.stopMomentumMovement(),!!this.initAnimationed){if(!this.locationMotion.ended){var s=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]);if(s.panoId!==panoStringify(this.currentPano))return}var u=e.center.raycaster,l=this.camera.getDirection(new THREE__namespace.Vector3).setY(0),c=null,f=this.works.getResolvedObserver(this.currentPano);if(f){var d=f.accessibleIds.filter(function(D){if(D===panoStringify(r.currentPano))return!1;var q=r.works.getResolvedObserver(D);return!q||q.position.distanceTo(r.camera.position)>r.maxAccessibleDistance?!1:q.loadable||q.active}),p=this.models.intersectRaycaster(u)[0];if(p){var v=arrayMin(d,function(D){var q=r.works.getResolvedObserver(D);if(!q)return 1/0;var z=q.standingPosition.clone();return z.distanceTo(p.point)},!0),A=v[0],g=v[1];A&&g<this.panoTapTriggerRadius&&(c=(o=this.works.getResolvedObserver(A))!==null&&o!==void 0?o:null)}c||(c=this.getForwardObserverOrNot(u));for(var h=0,y=this.locationMotion.keyframes;h<y.length;h++){var m=y[h],E=this.panoResourceFromLocationMotionKeyframe(m);if(!(m.progress<this.locationMotion.progress)&&c&&E.panoId===c.panoId){c=null;break}}if(!c)this.emit("gesture.tap",e),e.defaultPrevented||this.locationMotion.ended===!0&&this.cameraBounce();else{for(var b={},T=Math.PI/6,_=Math.PI/12,R=c.position.clone().setY(0).sub(f.position.clone().setY(0)).normalize(),S=[],C=[],B=[],L=0,M=c.accessibleIds;L<M.length;L++){var A=M[L],w=panoParse(A);if(!(panoEqual(w,this.currentPano)||panoEqual(w,c.pano))){var H=this.works.getResolvedObserver(A);if(H){var O=H.position.clone().sub(c.position).setY(0);R.angleTo(O)<T&&B.push(O)}}}var I=B.length>0?B:__spreadArray(__spreadArray([],S,!0),C,!0),N=I.slice().sort(function(D,q){return D.angleTo(R)-q.angleTo(R)})[0];N&&N.angleTo(l)>_&&(b.longitude=Math.atan2(-N.x,-N.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(b.latitude=clamp$1(0,this.minLatitude,this.maxLatitude));var k=__assign({},e.state);if(k.workCode=c.pano.workCode,k.panoIndex=c.pano.panoIndex,b.longitude!==void 0&&(k.longitude=b.longitude),b.latitude!==void 0&&(k.latitude=b.latitude),b.fov!==void 0&&(k.fov=b.fov),k.distance=0,k.offset=c.position.clone(),e.state=k,this.emit("gesture.tap",e),!e.defaultPrevented){if(this.emit("pano.select",createEvent("pano.select",{prevPano:this.currentPano,state:k,userAction:e.userAction,options:b,progress:0,error:null})),c&&!c.active){var U=c.panoId;this.panoMeshes[U]&&(this.panoMeshes[U].setDisabled(!1),this.panoMeshes[U].setLoading(!0))}c&&c.active&&this.emit("pano.request",createEvent("pano.request",{userAction:e.userAction,prevPano:this.currentPano,progress:0,state:k,options:b,error:null}))}}}}},t}(PanoramaLikeController),DEG_TO_RAD=Math.PI/180,RAD_TO_DEG=180/Math.PI,MIN_TIMESTEP=.001,MAX_TIMESTEP=1,isIOS=function(){var n=typeof navigator!="undefined"&&/iPad|iPhone|iPod/.test(navigator.platform);return function(){return n}}(),isSafari=function(){var n=typeof navigator!="undefined"&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent);return function(){return n}}(),isFirefoxAndroid=function(){var n=typeof navigator!="undefined"&&navigator.userAgent.indexOf("Firefox")!==-1&&navigator.userAgent.indexOf("Android")!==-1;return function(){return n}}(),getChromeVersion=function(){var n=typeof navigator!="undefined"?navigator.userAgent.match(/.*Chrome\/([0-9]+)/):null,t=n?parseInt(n[1],10):null;return function(){return t}}(),isChromeWithoutDeviceMotion=function(){var n=!1;if(getChromeVersion()===65){var t=typeof navigator!="undefined"?navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/):null;if(t){var e=t[1].split(".");e[0],e[1];var r=e[2],o=e[3];n=parseInt(r,10)===3325&&parseInt(o,10)<148}}return function(){return n}}(),isSafariWithoutDeviceMotion=function(){var n=isIOS()&&isSafari()&&typeof navigator!="undefined"&&navigator.userAgent.indexOf("13_4")!==-1;return function(){return n}}(),isR7=function(){var n=typeof navigator!="undefined"&&navigator.userAgent.indexOf("R7 Build")!==-1;return function(){return n}}();function isLandscapeMode(){var n=typeof window!="undefined"&&(window.orientation==90||window.orientation==-90);return isR7()?!n:n}function isTimestampDeltaValid(n){return!(isNaN(n)||n<=MIN_TIMESTEP||n>MAX_TIMESTEP)}function getQuaternionAngle(n){if(n.w>1)return 0;var t=2*Math.acos(n.w);return t}var warnOnce=function(){var n={};return function(t,e){n[t]===void 0&&(console.warn("cardboard: "+e),n[t]=!0)}}();function getOriginFromUrl(n){var t,e=n.indexOf("://");e!==-1?t=e+3:t=0;var r=n.indexOf("/",t);return r===-1&&(r=n.length),n.substring(0,r)}function isInsideCrossOriginIFrame(){if(typeof window=="undefined"||typeof document=="undefined")return!1;var n=window.self!==window.top,t=getOriginFromUrl(document.referrer),e=getOriginFromUrl(window.location.href);return n&&t!==e}var updateEyeViewMatrices=function(){function n(r,o,s){var u=o?o[0]:0,l=o?o[1]:0,c=o?o[2]:0,f=o?o[3]:1,d=u+u,p=l+l,v=c+c,A=u*d,g=u*p,h=u*v,y=l*p,m=l*v,E=c*v,b=f*d,T=f*p,_=f*v;return r[0]=1-(y+E),r[1]=g+_,r[2]=h-T,r[3]=0,r[4]=g-_,r[5]=1-(A+E),r[6]=m+b,r[7]=0,r[8]=h+T,r[9]=m-b,r[10]=1-(A+y),r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function t(r,o,s){var u=s[0],l=s[1],c=s[2],f,d,p,v,A,g,h,y,m,E,b,T;return o===r?(r[12]=o[0]*u+o[4]*l+o[8]*c+o[12],r[13]=o[1]*u+o[5]*l+o[9]*c+o[13],r[14]=o[2]*u+o[6]*l+o[10]*c+o[14],r[15]=o[3]*u+o[7]*l+o[11]*c+o[15]):(f=o[0],d=o[1],p=o[2],v=o[3],A=o[4],g=o[5],h=o[6],y=o[7],m=o[8],E=o[9],b=o[10],T=o[11],r[0]=f,r[1]=d,r[2]=p,r[3]=v,r[4]=A,r[5]=g,r[6]=h,r[7]=y,r[8]=m,r[9]=E,r[10]=b,r[11]=T,r[12]=f*u+A*l+m*c+o[12],r[13]=d*u+g*l+E*c+o[13],r[14]=p*u+h*l+b*c+o[14],r[15]=v*u+y*l+T*c+o[15]),r}function e(r,o){var s=o[0],u=o[1],l=o[2],c=o[3],f=o[4],d=o[5],p=o[6],v=o[7],A=o[8],g=o[9],h=o[10],y=o[11],m=o[12],E=o[13],b=o[14],T=o[15],_=s*d-u*f,R=s*p-l*f,S=s*v-c*f,C=u*p-l*d,B=u*v-c*d,L=l*v-c*p,M=A*E-g*m,w=A*b-h*m,H=A*T-y*m,O=g*b-h*E,I=g*T-y*E,N=h*T-y*b,k=_*N-R*I+S*O+C*H-B*w+L*M;return k?(k=1/k,r[0]=(d*N-p*I+v*O)*k,r[1]=(l*I-u*N-c*O)*k,r[2]=(E*L-b*B+T*C)*k,r[3]=(h*B-g*L-y*C)*k,r[4]=(p*H-f*N-v*w)*k,r[5]=(s*N-l*H+c*w)*k,r[6]=(b*S-m*L-T*R)*k,r[7]=(A*L-h*S+y*R)*k,r[8]=(f*I-d*H+v*M)*k,r[9]=(u*H-s*I-c*M)*k,r[10]=(m*B-E*S+T*_)*k,r[11]=(g*S-A*B-y*_)*k,r[12]=(d*w-f*O-p*M)*k,r[13]=(s*O-u*w+l*M)*k,r[14]=(E*R-m*C-b*_)*k,r[15]=(A*C-g*R+h*_)*k,r):null}return function(r,o,s){n(r,o),s&&t(r,r,s),e(r,r)}}(),SensorSample=function(){function n(t,e){t===void 0&&(t=new THREE__namespace.Vector3),e===void 0&&(e=0),this.sample=t,this.timestampS=e}return n.prototype.set=function(t,e){this.sample=t,this.timestampS=e},n.prototype.copy=function(t){this.set(t.sample,t.timestampS)},n}(),ComplementaryFilter=function(){function n(t,e){this.kFilter=t,this.isDebug=e,this.currentAccelMeasurement=new SensorSample,this.currentGyroMeasurement=new SensorSample,this.previousGyroMeasurement=new SensorSample,isIOS()?this.filterQ=new THREE__namespace.Quaternion(-1,0,0,1):this.filterQ=new THREE__namespace.Quaternion(1,0,0,1),this.previousFilterQ=new THREE__namespace.Quaternion,this.previousFilterQ.copy(this.filterQ),this.accelQ=new THREE__namespace.Quaternion,this.isOrientationInitialized=!1,this.estimatedGravity=new THREE__namespace.Vector3,this.measuredGravity=new THREE__namespace.Vector3,this.gyroIntegralQ=new THREE__namespace.Quaternion}return n.prototype.addAccelMeasurement=function(t,e){this.currentAccelMeasurement.set(t,e)},n.prototype.addGyroMeasurement=function(t,e){this.currentGyroMeasurement.set(t,e);var r=e-this.previousGyroMeasurement.timestampS;isTimestampDeltaValid(r)&&this.run_(),this.previousGyroMeasurement.copy(this.currentGyroMeasurement)},n.prototype.getOrientation=function(){return this.filterQ},n.prototype.run_=function(){if(!this.isOrientationInitialized){this.accelQ=this.accelToQuaternion_(this.currentAccelMeasurement.sample),this.previousFilterQ.copy(this.accelQ),this.isOrientationInitialized=!0;return}var t=this.currentGyroMeasurement.timestampS-this.previousGyroMeasurement.timestampS,e=this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample,t);this.gyroIntegralQ.multiply(e),this.filterQ.copy(this.previousFilterQ),this.filterQ.multiply(e);var r=new THREE__namespace.Quaternion;r.copy(this.filterQ),r.inverse(),this.estimatedGravity.set(0,0,-1),this.estimatedGravity.applyQuaternion(r),this.estimatedGravity.normalize(),this.measuredGravity.copy(this.currentAccelMeasurement.sample),this.measuredGravity.normalize();var o=new THREE__namespace.Quaternion;o.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),o.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",RAD_TO_DEG*getQuaternionAngle(o),this.estimatedGravity.x.toFixed(1),this.estimatedGravity.y.toFixed(1),this.estimatedGravity.z.toFixed(1),this.measuredGravity.x.toFixed(1),this.measuredGravity.y.toFixed(1),this.measuredGravity.z.toFixed(1));var s=new THREE__namespace.Quaternion;s.copy(this.filterQ),s.multiply(o),this.filterQ.slerp(s,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},n.prototype.accelToQuaternion_=function(t){var e=new THREE__namespace.Vector3;e.copy(t),e.normalize();var r=new THREE__namespace.Quaternion;return r.setFromUnitVectors(new THREE__namespace.Vector3(0,0,-1),e),r.inverse(),r},n.prototype.gyroToQuaternionDelta_=function(t,e){var r=new THREE__namespace.Quaternion,o=new THREE__namespace.Vector3;return o.copy(t),o.normalize(),r.setFromAxisAngle(o,t.length()*e),r},n}(),PosePredictor=function(){function n(t,e){this.predictionTimeS=t,this.isDebug=e,this.previousQ=new THREE__namespace.Quaternion,this.previousTimestampS=null,this.deltaQ=new THREE__namespace.Quaternion,this.outQ=new THREE__namespace.Quaternion}return n.prototype.getPrediction=function(t,e,r){if(!this.previousTimestampS)return this.previousQ.copy(t),this.previousTimestampS=r,t;var o=new THREE__namespace.Vector3;o.copy(e),o.normalize();var s=e.length();if(s<DEG_TO_RAD*20)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(RAD_TO_DEG*s).toFixed(1)),this.outQ.copy(t),this.previousQ.copy(t),this.outQ;var u=s*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(o,u),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(t),this.previousTimestampS=r,this.outQ},n}(),Distortion=function(){function n(t){this.coefficients=t}return n.prototype.distortInverse=function(t){for(var e=0,r=1,o=t-this.distort(e);Math.abs(r-e)>1e-4;){var s=t-this.distort(r),u=r-s*((r-e)/(s-o));e=r,r=u,o=s}return r},n.prototype.distort=function(t){for(var e=t*t,r=0,o=0;o<this.coefficients.length;o++)r=e*(r+this.coefficients[o]);return(r+1)*t},n}(),Pose=function(){function n(){this.angularAcceleration=null,this.angularVelocity=null,this.linearAcceleration=null,this.linearVelocity=null,this.orientation=null,this.position=null}return n}(),FieldOfView=function(){function n(){this.leftDegrees=0,this.rightDegrees=0,this.upDegrees=0,this.downDegrees=0}return n}(),Sensor=function(){function n(t,e,r,o){this.viewer={id:"CardboardV1",label:"Cardboard I/O 2014",fov:40,interLensDistance:.06,baselineLensDistance:.035,screenLensDistance:.042,distortionCoefficients:[.441,.156],inverseCoefficients:[-.4410035,.42756155,-.4804439,.5460139,-.58821183,.5733938,-.48303202,.33299083,-.17573841,.0651772,-.01488963,.001559834]},this.device={widthMeters:.11,heightMeters:.062,bevelMeters:.004},this.depthNear=.01,this.depthFar=1e4,this.yawOnly=r,this.accelerometer=new THREE__namespace.Vector3,this.gyroscope=new THREE__namespace.Vector3,this.filter=new ComplementaryFilter(t,o),this.posePredictor=new PosePredictor(e,o),this.isFirefoxAndroid=isFirefoxAndroid(),this.isIOS=isIOS();var s=getChromeVersion();this.isDeviceMotionInRadians=!this.isIOS&&s!==null&&s<66,this.isWithoutDeviceMotion=isChromeWithoutDeviceMotion()||isSafariWithoutDeviceMotion(),this.filterToWorldQ=new THREE__namespace.Quaternion,isIOS()?this.filterToWorldQ.setFromAxisAngle(new THREE__namespace.Vector3(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new THREE__namespace.Vector3(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new THREE__namespace.Quaternion,this.worldToScreenQ=new THREE__namespace.Quaternion,this.originalPoseAdjustQ=new THREE__namespace.Quaternion;var u=typeof window!="undefined"?-window.orientation*Math.PI/180:0;this.originalPoseAdjustQ.setFromAxisAngle(new THREE__namespace.Vector3(0,0,1),u),this.setScreenTransform_(),isLandscapeMode()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new THREE__namespace.Quaternion,this.orientationOut_=new Float32Array(4),this.previousTimestampS=Date.now()}return n.prototype.getPosition=function(){return null},n.prototype.getOrientation=function(){var t;if(this.isWithoutDeviceMotion&&this._deviceOrientationQ){this.deviceOrientationFixQ=this.deviceOrientationFixQ||function(){var s=new THREE__namespace.Quaternion().setFromAxisAngle(new THREE__namespace.Vector3(0,0,-1),0),u=new THREE__namespace.Quaternion;return typeof window!="undefined"&&window.orientation===-90?u.setFromAxisAngle(new THREE__namespace.Vector3(0,1,0),Math.PI/-2):u.setFromAxisAngle(new THREE__namespace.Vector3(0,1,0),Math.PI/2),s.multiply(u)}(),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||function(){var s=new THREE__namespace.Quaternion;return s.setFromAxisAngle(new THREE__namespace.Vector3(1,0,0),-Math.PI/2),s}(),t=this._deviceOrientationQ;var e=new THREE__namespace.Quaternion;return e.copy(t),e.multiply(this.deviceOrientationFilterToWorldQ),e.multiply(this.resetQ),e.multiply(this.worldToScreenQ),e.multiplyQuaternions(this.deviceOrientationFixQ,e),this.yawOnly&&(e.x=0,e.z=0,e.normalize()),this.orientationOut_[0]=e.x,this.orientationOut_[1]=e.y,this.orientationOut_[2]=e.z,this.orientationOut_[3]=e.w,this.orientationOut_}else{var r=this.filter.getOrientation();t=this.posePredictor.getPrediction(r,this.gyroscope,this.previousTimestampS)}var o=new THREE__namespace.Quaternion;return o.copy(this.filterToWorldQ),o.multiply(this.resetQ),o.multiply(t),o.multiply(this.worldToScreenQ),this.yawOnly&&(o.x=0,o.z=0,o.normalize()),this.orientationOut_[0]=o.x,this.orientationOut_[1]=o.y,this.orientationOut_[2]=o.z,this.orientationOut_[3]=o.w,this.orientationOut_},n.prototype.getPose=function(){var t=new Pose;return t.orientation=this.getOrientation(),t},n.prototype.resetPose=function(){this.resetQ.copy(this.filter.getOrientation()),this.resetQ.x=0,this.resetQ.y=0,this.resetQ.z*=-1,this.resetQ.normalize(),isLandscapeMode()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},n.prototype.getFrameData=function(t){var e=this.getOrientation(),r=this.getEyeOffset(),o=this.getEyeProjectionMatrix();return t.pose.angularAcceleration=null,t.pose.angularVelocity=null,t.pose.linearAcceleration=null,t.pose.linearVelocity=null,t.pose.orientation=e,t.pose.position=null,t.timestamp=this.previousTimestampS,t.leftProjectionMatrix.set(o.left),t.rightProjectionMatrix.set(o.right),updateEyeViewMatrices(t.leftViewMatrix,e,r.left),updateEyeViewMatrices(t.rightViewMatrix,e,r.right),t},n.prototype.start=function(){if(typeof window=="undefined")return function(){};var t=this.onDeviceMotion_.bind(this),e=this.onOrientationChange_.bind(this),r=this.onMessage_.bind(this),o=this.onDeviceOrientation_.bind(this);return isIOS()&&isInsideCrossOriginIFrame()&&window.addEventListener("message",r),window.addEventListener("orientationchange",e),this.isWithoutDeviceMotion?window.addEventListener("deviceorientation",o):window.addEventListener("devicemotion",t),function(){window.removeEventListener("devicemotion",t),window.removeEventListener("deviceorientation",e),window.removeEventListener("orientationchange",e),window.removeEventListener("message",r)}},n.prototype.getEyeOffset=function(){return{left:[-this.viewer.interLensDistance*.5,0,0],right:[this.viewer.interLensDistance*.5,0,0]}},n.prototype.getEyeProjectionMatrix=function(){var t=this.getEyeFieldOfView(),e=this.depthNear,r=this.depthFar,o={left:[],right:[]};{var s=t.left.upDegrees*DEG_TO_RAD,u=t.left.downDegrees*DEG_TO_RAD,l=t.left.leftDegrees*DEG_TO_RAD,c=t.left.rightDegrees*DEG_TO_RAD,f=2/(l+c),d=2/(s+u);o.left[0]=f,o.left[1]=0,o.left[2]=0,o.left[3]=0,o.left[4]=0,o.left[5]=d,o.left[6]=0,o.left[7]=0,o.left[8]=-((l-c)*f*.5),o.left[9]=(s-u)*d*.5,o.left[10]=r/(e-r),o.left[11]=-1,o.left[12]=0,o.left[13]=0,o.left[14]=r*e/(e-r),o.left[15]=0}{var s=t.right.upDegrees*DEG_TO_RAD,u=t.right.downDegrees*DEG_TO_RAD,l=t.right.leftDegrees*DEG_TO_RAD,c=t.right.rightDegrees*DEG_TO_RAD,f=2/(l+c),d=2/(s+u);o.right[0]=f,o.right[1]=0,o.right[2]=0,o.right[3]=0,o.right[4]=0,o.right[5]=d,o.right[6]=0,o.right[7]=0,o.right[8]=-((l-c)*f*.5),o.right[9]=(s-u)*d*.5,o.right[10]=r/(e-r),o.right[11]=-1,o.right[12]=0,o.right[13]=0,o.right[14]=r*e/(e-r),o.right[15]=0}return o},n.prototype.getEyeFieldOfView=function(){var t=this.viewer,e=this.device,r=new Distortion(t.distortionCoefficients),o=t.screenLensDistance,s=(e.widthMeters-t.interLensDistance)/2,u=t.interLensDistance/2,l=t.baselineLensDistance-e.bevelMeters,c=e.heightMeters-l,f=RAD_TO_DEG*Math.atan(r.distort(s/o)),d=RAD_TO_DEG*Math.atan(r.distort(u/o)),p=RAD_TO_DEG*Math.atan(r.distort(l/o)),v=RAD_TO_DEG*Math.atan(r.distort(c/o)),A=new FieldOfView,g=new FieldOfView;return A.leftDegrees=Math.min(f,t.fov),A.rightDegrees=Math.min(d,t.fov),A.downDegrees=Math.min(p,t.fov),A.upDegrees=Math.min(v,t.fov),g.leftDegrees=A.rightDegrees,g.rightDegrees=A.leftDegrees,g.upDegrees=A.upDegrees,g.downDegrees=A.downDegrees,{left:A,right:g}},n.prototype.onDeviceOrientation_=function(t){this._deviceOrientationQ=this._deviceOrientationQ||new THREE__namespace.Quaternion;var e=t.alpha,r=t.beta,o=t.gamma;e=(e||0)*Math.PI/180,r=(r||0)*Math.PI/180,o=(o||0)*Math.PI/180,this._deviceOrientationQ.setFromEuler(new THREE__namespace.Euler(e,r,-o,"YXZ"))},n.prototype.onDeviceMotion_=function(t){this.updateDeviceMotion_(t)},n.prototype.updateDeviceMotion_=function(t){var e=t.accelerationIncludingGravity,r=t.rotationRate,o=t.timeStamp/1e3,s=o-this.previousTimestampS;if(s<0){warnOnce("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),this.previousTimestampS=o;return}else if(s<=MIN_TIMESTEP||s>MAX_TIMESTEP){warnOnce("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),this.previousTimestampS=o;return}e&&(this.accelerometer.set(-e.x,-e.y,-e.z),r&&(isR7()?this.gyroscope.set(-r.beta,r.alpha,r.gamma):this.gyroscope.set(r.alpha,r.beta,r.gamma),this.isDeviceMotionInRadians||this.gyroscope.multiplyScalar(Math.PI/180),this.filter.addGyroMeasurement(this.gyroscope,o)),this.filter.addAccelMeasurement(this.accelerometer,o)),this.previousTimestampS=o},n.prototype.onOrientationChange_=function(){this.setScreenTransform_()},n.prototype.onMessage_=function(t){var e=t.data;if(!(!e||!e.type)){var r=e.type.toLowerCase();r==="devicemotion"&&this.updateDeviceMotion_(e.deviceMotionEvent)}},n.prototype.setScreenTransform_=function(){this.worldToScreenQ.set(0,0,0,1);var t=typeof window!="undefined"?window.orientation:0;switch(t){case 0:break;case 90:this.worldToScreenQ.setFromAxisAngle(new THREE__namespace.Vector3(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new THREE__namespace.Vector3(0,0,1),Math.PI/2);break}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},n}(),defaultLeftBounds=[0,0,.5,1],defaultRightBounds=[.5,0,.5,1],Cardboard=function(){function n(t){var e=this;this.renderer=t,this.sensor=new Sensor(.98,.04,!1,!1),this.scale=1,this.cameraL=new THREE__namespace.PerspectiveCamera,this.cameraR=new THREE__namespace.PerspectiveCamera;var r=this.sensor.start();this.dispose=function(){var o=e.renderer.getSize(new THREE__namespace.Vector2);e.renderer.setScissor(0,0,o.width,o.height),e.renderer.setViewport(0,0,o.width,o.height),e.renderer.setScissorTest(!1),r()}}return n.prototype.render=function(t,e){var r=this.renderer.getSize(new THREE__namespace.Vector2);if(r.width>r.height){var o=t.autoUpdate;o&&(t.updateMatrixWorld(),t.autoUpdate=!1);var s={x:Math.round(r.width*defaultLeftBounds[0]),y:Math.round(r.height*defaultLeftBounds[1]),width:Math.round(r.width*defaultLeftBounds[2]),height:Math.round(r.height*defaultLeftBounds[3])},u={x:Math.round(r.width*defaultRightBounds[0]),y:Math.round(r.height*defaultRightBounds[1]),width:Math.round(r.width*defaultRightBounds[2]),height:Math.round(r.height*defaultRightBounds[3])};this.renderer.setScissorTest(!0),this.renderer.autoClear&&this.renderer.clear(),e.parent===null&&e.updateMatrixWorld(),e.matrixWorld.decompose(this.cameraL.position,this.cameraL.quaternion,this.cameraL.scale),e.matrixWorld.decompose(this.cameraR.position,this.cameraR.quaternion,this.cameraR.scale);var l=this.sensor.getEyeOffset();this.cameraL.translateOnAxis(new THREE__namespace.Vector3().fromArray(l.left),this.scale),this.cameraR.translateOnAxis(new THREE__namespace.Vector3().fromArray(l.right),this.scale);var c=this.sensor.getEyeProjectionMatrix();this.cameraL.projectionMatrix.elements=c.left.slice(),this.cameraR.projectionMatrix.elements=c.right.slice(),this.renderer.setViewport(s.x,s.y,s.width,s.height),this.renderer.setScissor(s.x,s.y,s.width,s.height),this.renderer.render(t,this.cameraL),this.renderer.setViewport(u.x,u.y,u.width,u.height),this.renderer.setScissor(u.x,u.y,u.width,u.height),this.renderer.render(t,this.cameraR),this.renderer.setViewport(0,0,r.width,r.height),this.renderer.setScissor(0,0,r.width,r.height),this.renderer.setScissorTest(!1),o&&(t.autoUpdate=!0)}else this.renderer.render(t,e)},n.prototype.dispose=function(){},n}();const cardboard="data:image/png;base64,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",phone="data:image/png;base64,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";var _a,LOCALE={zh:{TITLE:"眼镜模式",HIT:"请将手机横屏放入 VR 眼镜中"},en:{TITLE:"GLASSES MODE",HIT:"Please put the mobile phone horizontally into the VR glasses."},ja:{TITLE:"メガネモード",HIT:"携帯電話をVRメガネに水平に入れてください。"}},TEXT=typeof navigator!="undefined"&&(_a=LOCALE[navigator.language.split("-")[0]])!==null&&_a!==void 0?_a:LOCALE.zh,CONTENTS=`
|
|
1597
1597
|
<style>
|
|
1598
1598
|
.$id {
|
|
1599
1599
|
all: initial;
|
|
@@ -1954,7 +1954,7 @@ void main() {
|
|
|
1954
1954
|
|
|
1955
1955
|
gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity * outside * inside);
|
|
1956
1956
|
}
|
|
1957
|
-
`,PanoSphereMesh=function(n){__extends(t,n);function t(){var e=n.call(this)||this;e.progress=0,e.opacity=0,e.loading=!1,e.current=!1,e.disabled=!1,e.currentMotion=new Motion({ringScale:1.1,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}),e.opacityMotion=new Motion({opacity:0}),e.loadingMotion=new Motion({opacity:0}),e.disableMotion=new Motion({opacity:0});var r={blending:THREE__namespace.CustomBlending,blendSrc:THREE__namespace.SrcAlphaFactor,blendDst:THREE__namespace.OneMinusSrcAlphaFactor,blendSrcAlpha:THREE__namespace.OneFactor,blendDstAlpha:THREE__namespace.OneMinusSrcAlphaFactor,depthWrite:!1,transparent:!0};return e.hitTestMesh=new THREE__namespace.Mesh(sharedGeometry,new THREE__namespace.MeshBasicMaterial(__assign(__assign({},r),{color:0,opacity:0}))),e.hitTestMesh.scale.set(1.5,1.5,1.5),e.ringMesh=new THREE__namespace.Mesh(sharedGeometry,new THREE__namespace.ShaderMaterial(__assign(__assign({},r),{vertexShader:ringVertexShader,fragmentShader:ringFragmentShader,uniforms:{opacity:{value:0}}}))),e.panoMesh=new THREE__namespace.Mesh(sharedGeometry,new THREE__namespace.ShaderMaterial(__assign(__assign({},r),{vertexShader,fragmentShader,uniforms:{circleScale:{value:1.1},circleFade:{value:0},circleOpacity:{value:.5},loadingAngle:{value:0},loadingOpacity:{value:0},opacity:{value:0},disable:{value:0}}}))),e.add(e.hitTestMesh),e.add(e.ringMesh),e.add(e.panoMesh),e.renderOrder=1e4,e.needsRender=!0,e}return t.prototype.setProgress=function(e){this.progress=e,this.setLoading(e>0)},t.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=clamp$1(e,0,1),this.opacityMotion.set({opacity:e},30).catch(noop$1))},t.prototype.setCurrent=function(e){if(this.current!==e){if(e){var r=[{progress:0,value:{ringScale:2,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.05,value:{ringScale:1,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.15,value:{ringScale:1.2,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.25,value:{ringScale:1.1,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.8,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.85,circleScale:1}},{progress:.9,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.65,circleScale:.8}},{progress:.92,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.65,circleScale:.8}},{progress:1,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.85,circleScale:1.1}}];this.currentMotion.setKeyframes(r,1500).catch(noop$1)}else{var r=[{progress:0,value:__assign({},this.currentMotion.value)},{progress:1,value:{ringScale:1.1,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}}];this.currentMotion.setKeyframes(r,200).catch(noop$1)}this.current=e}},t.prototype.setLoading=function(e){this.loading!==e&&(e?this.loadingMotion.setKeyframes([{progress:0,value:{opacity:0}},{progress:.3,value:{opacity:0}},{progress:1,value:{opacity:.8}}],500).catch(noop$1):this.loadingMotion.set({opacity:0},0).catch(noop$1),this.loading=e,this.disabled===!0&&this.setDisabled(!1),this.needsRender=!0)},t.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,this.loading===!0&&this.setLoading(!1),this.disableMotion.set({opacity:e?1:0},300).catch(noop$1),this.needsRender=!0)},t.prototype.tap=function(){return Promise.resolve()},t.prototype.updateTime=function(e,r){this.opacityMotion.update(e),this.currentMotion.update(e),this.loadingMotion.update(e);var o=this.opacityMotion.value.opacity;this.visible=o!==0;var s=this.currentMotion.value,u=s.ringScale,l=s.ringOpacity,c=s.circleFade,f=s.circleOpacity,d=s.circleScale;this.ringMesh.scale.set(u,1,u),this.ringMesh.material.uniforms.opacity.value=l*o,this.panoMesh.material.uniforms.opacity.value=o,this.panoMesh.material.uniforms.circleOpacity.value=f,this.panoMesh.material.uniforms.circleScale.value=d,this.panoMesh.material.uniforms.circleFade.value=c,this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingMotion.value.opacity,this.panoMesh.material.uniforms.disable.value=this.disableMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(Math.PI*2),this.needsRender=!0},t.prototype.dispose=function(){this.hitTestMesh.material.dispose(),this.ringMesh.material.dispose(),this.panoMesh.material.dispose()},t}(THREE__namespace.Object3D),ACTIVE_TO_CURRENT_DELAY=1500,defaultVRPanoramaControllerCustomInitArgs=__assign({},omit(defaultPanoramaControllerCustomInitArgs,["maxLatitude","minLatitude"])),VRPanoramaController=function(n){__extends(t,n);function t(e){var r=this,o=t.parseArgs(e);r=n.call(this,o)||this,r.mode="VRPanorama",r.cardboard=new Cardboard(r.renderer);var s=createHelper();r.helperElement=s;var u=new Hammer(s);return r.element.parentNode&&(r.element.parentNode.insertBefore(s,r.element),r.setHelperElementSize(),u.on("tap",function(){return r.emit("vr.requestExit",createEvent("vr.requestExit",{}))})),r.destroyHelper=function(){u.destroy(),s.parentNode&&s.parentNode.removeChild(s),delete r.helperElement},r}return t.parseArgs=function(e){if(e instanceof t)return e;var r=__assign(__assign({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return n.parseArgs.call(this,r)},t.initAnimationEndState=function(e){var r=this.parseArgs(e),o=n.initAnimationEndState.call(this,r);return __assign(__assign({},o),{mode:"VRPanorama"})},t.prototype.updateConfiguration=function(e){return n.prototype.updateConfiguration.call(this,__assign(__assign({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2}))},t.prototype.destroy=function(){n.prototype.destroy.call(this),this.cardboard.dispose(),this.destroyHelper();for(var e=Object.keys(this.panoMeshes),r=0,o=e;r<o.length;r++){var s=o[r],u=this.panoMeshes[s];this.helper.remove(u),u.dispose(),delete this.panoMeshes[s]}},t.prototype.isReady=function(){return!1},t.prototype.updateRenderSize=function(){this.needsRender=!0,this.modelSceneNeedsRender=!0,this.setHelperElementSize()},t.prototype.updateCamera=function(e,r,o){return Promise.resolve()},t.prototype.updateCameraWithKeyframes=function(e,r,o){return Promise.resolve()},t.prototype.updatePanoMeshesVisible=function(){for(var e=this.works.getResolvedObserver(this.currentPano),r=(e?e.visibleIds:[]).concat(panoStringify(this.currentPano)),o=0,s=this.works.resolvedObservers;o<s.length;o++){var u=s[o],l=this.panoMeshes[u.panoId];l&&(r.indexOf(u.panoId)>=0?l.parent!==this.helper&&this.helper.add(l):l.parent===this.helper&&(this.helper.remove(l),l.setOpacity(0)))}},t.prototype.updatePanoMeshes=function(){for(var e=Object.keys(this.panoMeshes),r=0,o=e;r<o.length;r++){var s=o[r],u=this.panoMeshes[s];this.helper.remove(u),u.dispose(),delete this.panoMeshes[s]}for(var l=0,c=this.works.resolvedObservers;l<c.length;l++){var f=c[l],d=f.panoId,p=new PanoSphereMesh;p.name="panoSphere_".concat(d),p.position.copy(f.position),p.needsRender=!0,this.panoMeshes[d]=p}this.updatePanoMeshesVisible()},t.prototype.updateTime=function(e,r){var o=this,s,u,l,c,f,d,p,v,A,g;if(!this.destroyed){var h=this.currentPano;this.userAction=!0,this.needsRender=!0,this.modelSceneNeedsRender=!0;var y={},m={},E=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),b=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),T=!1;if(this.modelAlphaMotion.ended===!1&&(this.modelAlphaMotion.update(e),y.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended===!1&&(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended===!1){this.locationMotion.update(e);var _=this.locationMotion.getKeyFrameSegment(e),R=_[0],S=_[1],C=this.panoResourceFromLocationMotionKeyframe(R),B=this.panoResourceFromLocationMotionKeyframe(S),L=C.position,M=B.position,w=this.locationMotion.value.count-S.value.count+1;y.progress=w,B.panoPicture&&(w<1?C.panoPicture&&(y.pano0=C.panoPicture):y.pano0=B.panoPicture,y.pano1=B.panoPicture),B.effect==="montage"?y.transition="BLACK":B.effect==="spread"?y.transition="SPREAD":y.transition="FADE",(B.effect==="zoomin"||B.effect==="zoomout")&&(y.progress=Math.pow(w,3)),w<1&&B.effect!=="fly"&&(y.pano0&&C.panoPicture&&(y.pano0={map:y.pano0.map,zoom:y.pano0.zoom,luminanceMap:y.pano0.luminanceMap,matrix:C.panoPicture.matrix.clone().premultiply(C.fixCameraTransform).setPosition(B.position)}),L.copy(M),T=!0),m.distance=this.locationMotion.value.distance,m.offset=new THREE__namespace.Vector3(L.x+(M.x-L.x)*w,L.y+(M.y-L.y)*w,L.z+(M.z-L.z)*w);for(var H=[],O=[],I=0,N=this.locationMotion.keyframes;I<N.length;I++){var k=N[I],U=k.key,D=k.progress;U!==void 0&&(H.push(U),D>this.locationMotion.progress&&O.push(U))}for(var q=0,z=Object.keys(this.panoResources);q<z.length;q++){var Q=z[q];if(!(O.indexOf(Q)>=0)){var G=this.panoResources[Q];if(G.panoPicture){var X=G.panoPicture.map,$=G.panoPicture.luminanceMap;if(X){if(X===((s=y.pano0)===null||s===void 0?void 0:s.map)||X===((u=y.pano1)===null||u===void 0?void 0:u.map))continue;X instanceof TileCubeTextureTarget&&X.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(X.cubeRenderTarget),X.dispose(),$&&($ instanceof TileCubeTextureTarget&&$.cubeRenderTarget&&this.luminanceCubeRenderTargetPool.push($.cubeRenderTarget),$.dispose()),G.panoPicture=null}}H.indexOf(Q)>=0||delete this.panoResources[Q]}}this.currentPano=panoParse(B.panoId),this.emit("pano.moving",createEvent("pano.moving",{userAction:this.userAction,prevPano:panoParse(E.panoId),state:__assign(__assign(__assign(__assign({},panoParse(b.panoId)),{mode:this.mode}),clonePose(this.camera.pose)),m),options:{},progress:this.locationMotion.progress,error:null}))}isEmptyObject(y)===!1&&(!((l=y.pano0)===null||l===void 0)&&l.map&&y.pano0.map instanceof TileCubeTextureTarget&&!y.pano0.map.cubeRenderTarget&&(y.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((c=y.pano0)===null||c===void 0)&&c.luminanceMap&&y.pano0.luminanceMap instanceof TileCubeTextureTarget&&!y.pano0.luminanceMap.cubeRenderTarget&&(y.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),!((f=y.pano1)===null||f===void 0)&&f.map&&y.pano1.map instanceof TileCubeTextureTarget&&!y.pano1.map.cubeRenderTarget&&(y.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((d=y.pano1)===null||d===void 0)&&d.luminanceMap&&y.pano1.luminanceMap instanceof TileCubeTextureTarget&&!y.pano1.luminanceMap.cubeRenderTarget&&(y.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.models.setMaterial(y)),m.offset&&this.camera.position.copy(m.offset),panoEqual(this.currentPano,h)&&this.updatePanoMeshesVisible();var W=this.camera.pose.longitude,oe=this.camera.pose.latitude;this.camera.quaternion.fromArray(this.cardboard.sensor.getOrientation()),this.camera.computePose();var ae=this.works.getResolvedObserver(this.currentPano);if(this.camera.pose.distance>.1||T)for(var re=0,j=Object.keys(this.panoMeshes);re<j.length;re++){var se=j[re],ie=this.panoMeshes[se];ie.setOpacity(0),ie.updateTime&&ie.updateTime(e,r),ie.visible=!1}else if(ae)for(var ue=ae.visibleIds.concat(panoStringify(this.currentPano)),fe=0,ne=ue;fe<ne.length;fe++){var se=ne[fe],Te=panoParse(se),_e=this.works.getResolvedObserver(Te);if(_e){var ie=this.panoMeshes[se];if(!_e.loadable&&!_e.active){ie.setOpacity(0);continue}var ve=ie.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);ve<.05?ie.setOpacity(0):ie.setOpacity(clamp$1(1.5/ve,0,1)),panoEqual(this.currentPano,Te)&&ie.setOpacity(0),ie.lookAt(this.camera.position)}}if(this.locationMotion.ended)for(var Me=this.intersect(e),Z=0,te=this.works.resolvedObservers;Z<te.length;Z++){var _e=te[Z],ie=this.panoMeshes[_e.panoId];ie&&(ie.setCurrent(ie===Me),ie.updateTime&&ie.updateTime(e,r))}(W!==this.camera.pose.longitude||oe!==this.camera.pose.latitude)&&(this.cameraMotion.set(pick(this.camera.pose,["longitude","latitude"]),0).catch(noop$1),this.emit("camera.update",createEvent("camera.update",{userAction:!0,state:__assign(__assign(__assign({},this.currentPano),{mode:this.mode}),clonePose(this.camera.pose))})));var K=this.tileLevel=function(){if(o.tileLevelForFov===!1)return 0;var me=o.renderer.getDrawingBufferSize(new THREE__namespace.Vector2);me.width*=o.scissor.width,me.height*=o.scissor.height;var ce=b.panoId,he=o.works.getResolvedObserver(ce),ee=o.imageOptions.size;if(typeof ee=="undefined"&&he){var pe=he.images.up.match(/\/cube_(\d+)\//);pe&&(ee=Number(pe[1]))}typeof ee=="undefined"&&(ee=2048);var Re=0;ee>=1024&&(Re=1),ee>=2048&&(Re=2),ee>=4096&&(Re=3),ee>=8192&&(Re=4);var we=o.tileLevelForFov(o.camera.fov,me);return we>Re?we:0}(),ye=function(){var me=o.camera.quaternion.clone(),ce=o.works.getResolvedObserver(b.panoId),he=ce!=null?ce:ae;he&&me.premultiply(he.quaternion.clone().inverse());var ee=new THREE__namespace.Matrix4().makeRotationFromQuaternion(me),pe=new THREE__namespace.Matrix4().getInverse(ee),Re=new THREE__namespace.Frustum().setFromProjectionMatrix(new THREE__namespace.Matrix4().multiplyMatrices(o.camera.projectionMatrix,pe));return Re}();b.panoId===panoStringify(this.currentPano)&&(((p=b.panoPicture)===null||p===void 0?void 0:p.map)instanceof TileCubeTextureTarget&&(b.panoPicture.map.maxRequest=this.tileMaxRequest,b.panoPicture.map.update(ye,K),b.panoPicture.map.needsRender===!0&&(b.panoPicture.map.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0)),((v=b.panoPicture)===null||v===void 0?void 0:v.luminanceMap)instanceof TileCubeTextureTarget&&(b.panoPicture.luminanceMap.maxRequest=this.tileMaxRequest,b.panoPicture.luminanceMap.update(ye,K),b.panoPicture.luminanceMap.needsRender===!0&&(b.panoPicture.luminanceMap.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0)));{var de=this.tiling.object.visible;if(this.initAnimationed){var xe=b.panoId,ge=this.works.getResolvedObserver(xe);ge?isSimilarVector3(this.camera.position,ge.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==xe&&this.tiling.cleanup(),this.tiling.panoId=xe,this.tiling.setResource((g=(A=ge.images)===null||A===void 0?void 0:A.tiles)!==null&&g!==void 0?g:[],this.enableIOSEDR&&ge.images.luminance?ge.images.luminance:null),this.tiling.setFetcher(getFetcher(ge.work)),this.tiling.setRotation(ge.quaternion),this.tiling.setPosition(ge.position),this.tiling.maxRequest=this.tileMaxRequest,K>this.tiledCubeTextureLevel?this.tiling.update(ye,K,e):this.tiling.update(ye,0,e)):this.tiling.object.visible=!1:this.tiling.object.visible=!1}else this.tiling.object.visible=!1;de!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0,this.modelSceneNeedsRender=!0)}this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(e)}},t.prototype.render=function(){this.cardboard.render(this.modelScene,this.camera),this.renderer.autoClear=!1,this.cardboard.render(this.scene,this.camera),this.renderer.autoClear=!0},t.prototype.setCamera=function(e){},t.prototype.destroyHelper=function(){},t.prototype.setHelperElementSize=function(){if(this.helperElement){var e=new THREE__namespace.Vector2(this.element.offsetWidth,this.element.offsetHeight),r=e.x*this.scissor.left,o=e.y*(1-this.scissor.bottom-this.scissor.height),s=e.x*this.scissor.width,u=e.y*this.scissor.height;this.helperElement.style.marginLeft=r+"px",this.helperElement.style.marginTop=o+"px",this.helperElement.style.width=s+"px",this.helperElement.style.height=u+"px"}},t.prototype.intersect=function(e){var r,o;if(this.locationMotion.ended===!1){this.intersectMesh.visible=!1,delete this.activePanoMesh,delete this.activeTime;return}if(this.activePanoMesh&&this.activeTime&&e-this.activeTime>ACTIVE_TO_CURRENT_DELAY){for(var s=this.activePanoMesh,u=Object.keys(this.panoMeshes),l=null,c=0,f=u;c<f.length;c++){var d=f[c];if(this.panoMeshes[d]===s){l=d;break}}return l!==null&&this.moveToPano(panoParse(l),{},!0),delete this.activePanoMesh,delete this.activeTime,s}var p=this.camera.getDirection(new THREE__namespace.Vector3),v=new THREE__namespace.Raycaster(this.camera.position,p);v.params.Points={threshold:.1};for(var A=void 0,g=[],h=this.works.getResolvedObserver(this.currentPano),y=h?h.visibleIds:[],m=0,E=y;m<E.length;m++){var l=E[m],b=this.panoMeshes[l],T=v.intersectObject((r=b.hitTestMesh)!==null&&r!==void 0?r:b,!0)[0];T&&g.push({panoMesh:b,intersection:__assign({floor:(o=h==null?void 0:h.floorIndex)!==null&&o!==void 0?o:0},T)})}var _=g.sort(function(L,M){return L.intersection.distance-M.intersection.distance})[0];_?(A=_.intersection,this.activePanoMesh!==_.panoMesh&&(this.activePanoMesh=_.panoMesh,this.activeTime=e),this.intersectMesh.position.copy(_.panoMesh.position),this.intersectMesh.lookAt(this.camera.position)):(this.activePanoMesh=void 0,this.activeTime=void 0),A||(A=this.models.intersectRaycaster(v)[0]);var R=createEvent("intersect.update",{raycaster:v,intersection:A!=null?A:null,object:this.intersectMesh});if(this.emit("intersect.update",R),R.defaultPrevented){this.hideIntersectMesh();return}if(A&&A.face){var S=A.face.normal,C=new THREE__namespace.Quaternion;C.setFromUnitVectors(new THREE__namespace.Vector3(0,0,1),S),this.intersectMesh.quaternion.copy(C);var B=A.point.clone();this.intersectMesh.position.copy(B),_?this.intersectMesh.visible=!1:this.intersectMesh.visible=!0}else this.intersectMesh.visible=!1;return _==null?void 0:_.panoMesh},t.prototype.onPanGesture=function(){},t.prototype.onTapGesture=function(){},t.prototype.onPinchGesture=function(){},t.prototype.onMouseMove=function(){},t.prototype.onMouseOut=function(){},t}(PanoramaController),HUMAN_EYE_POSITION=new THREE__namespace.Vector3(0,1.6,0),defaultModelControllerCustomInitArgs=__assign({},defaultPanoramaLikeControllerCustomInitArgs),ModelController=function(n){__extends(t,n);function t(e){var r=this,o,s=t.parseArgs(e);return r=n.call(this,s)||this,r.mode="Model",r.locationMotion=new Motion({x:r.camera.pose.offset.x,y:r.camera.pose.offset.y,z:r.camera.pose.offset.z,distance:r.camera.pose.distance}),r.modelAlphaMotion=new Motion({modelAlpha:(o=r.models.getMaterial().modelAlpha)!==null&&o!==void 0?o:0}),r.perspToOrthoMotion=new Motion({perspToOrtho:r.camera.perspToOrtho.x}),r}return t.parseArgs=function(e){return e instanceof t?e:n.parseArgs.call(this,e)},t.initAnimationEndState=function(e){var r,o,s,u,l,c,f=this.parseArgs(e),d=f.works,p=e.initial,v=p.state,A=p.currentState,g=typeof v.panoIndex=="number"?{workCode:(s=(r=v.workCode)!==null&&r!==void 0?r:(o=f.works[0])===null||o===void 0?void 0:o.workCode)!==null&&s!==void 0?s:"",panoIndex:v.panoIndex}:{workCode:A.workCode,panoIndex:A.panoIndex},h=d.getResolvedObserver(g),y=(u=v.longitude)!==null&&u!==void 0?u:A.longitude,m=clamp$1((l=v.latitude)!==null&&l!==void 0?l:!h||isFristPersonMode(A.mode)?A.latitude:f.defaultLatitude,f.minLatitude,f.maxLatitude),E=clamp$1((c=v.fov)!==null&&c!==void 0?c:!h||isFristPersonMode(A.mode)?A.fov:f.defaultFov,f.minFov,f.maxFov),b=new THREE__namespace.Vector3;if(f.initial.state.offset)b.copy(f.initial.state.offset);else if(h)b.copy(h.position);else{var T=coordinatesToVector(A).setLength(A.distance);b.copy(f.initial.currentState.offset).sub(T)}return{workCode:g.workCode,panoIndex:g.panoIndex,mode:"Model",longitude:y,latitude:m,fov:E,offset:b,distance:0}},t.prototype.updateConfiguration=function(e){return n.prototype.updateConfiguration.call(this,e)},t.prototype.destroy=function(){n.prototype.destroy.call(this),this.locationMotion.dispose()},t.prototype.isReady=function(){return this.locationMotion.ended===!1?!1:n.prototype.isReady.call(this)},t.prototype.updateWork=function(e,r,o,s){this.works=e;var u=t.initAnimationEndState(__assign(__assign({},this),{initial:{currentState:__assign(__assign({},this.currentPano),this.camera.pose),duration:o.duration,effect:o.effect,state:r,userAction:s}}));return this.hideIntersectMesh(),this.moveToPosition(u.offset,{duration:0,longitude:u.longitude,latitude:u.latitude,fov:u.fov},s),!0},t.prototype.updateCamera=function(e,r,o){var s=this;return this.initAnimationReady.then(function(){s.userAction=o,s.stopMomentumMovement();var u={},l={};return u.distance=0,e.offset!==void 0&&(u.x=e.offset.x,u.y=e.offset.y,u.z=e.offset.z),e.longitude!==void 0&&(l.longitude=e.longitude),e.latitude!==void 0&&(l.latitude=e.latitude),e.fov!==void 0&&(l.fov=e.fov),s.locationMotion.set(u,r).catch(noop$1),s.cameraMotion.set(l,r).catch(noop$1)})},t.prototype.updateCameraWithKeyframes=function(e,r,o){var s=this;return this.initAnimationReady.then(function(){s.userAction=o,s.stopMomentumMovement();for(var u=[],l=[],c=0,f=e;c<f.length;c++){var d=f[c];u.push({key:d.key,progress:d.progress,value:{distance:0,x:d.value.offset.x,y:d.value.offset.x,z:d.value.offset.x}}),l.push({key:d.key,progress:d.progress,value:{longitude:d.value.longitude,latitude:d.value.latitude,fov:d.value.fov}})}return s.locationMotion.setKeyframes(u,r).catch(noop$1),s.cameraMotion.setKeyframes(e,r)})},t.prototype.updateTime=function(e,r){if(!this.destroyed){var o={},s={};if(this.modelAlphaMotion.ended||(this.modelAlphaMotion.update(e),o.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended||(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),!this.locationMotion.ended){this.locationMotion.update(e),s.distance=this.locationMotion.value.distance,s.offset=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z);var u=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),l=this.works.resolvedObservers,c=arrayMin(l,function(f){return f.position.distanceTo(u)});this.currentPano=c?{workCode:c.work.workCode,panoIndex:c.panoIndex}:{workCode:"",panoIndex:0}}this.cameraMotion.ended||(this.cameraMotion.update(e),s.longitude=this.cameraMotion.value.longitude,s.latitude=this.cameraMotion.value.latitude,s.fov=this.cameraMotion.value.fov),isEmptyObject(o)||this.models.setMaterial(o),isEmptyObject(s)||this.setCamera(s)}},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise(function(r){var o=e.initial;o.state,o.currentState;var s=o.duration,u=o.userAction;e.userAction=u;var l=t.initAnimationEndState(e),c={modelAlpha:1},f={perspToOrtho:0},d={longitude:l.longitude,latitude:l.latitude,fov:l.fov,duration:s,moveStartCallback:function(p){e.perspToOrthoMotion.set(f,s).catch(noop$1),e.modelAlphaMotion.set(c,s).catch(noop$1),e.emit("initAnimation.start",createEvent("initAnimation.start",{state:p,userAction:e.userAction}))},moveEndCallback:function(p){e.emit("initAnimation.end",createEvent("initAnimation.end",{state:p,userAction:e.userAction})),r()},moveCancelCallback:function(){var p=e.currentPano,v=__assign(__assign({},p),{mode:e.mode,longitude:e.camera.pose.longitude,latitude:e.camera.pose.latitude,fov:e.camera.pose.fov,offset:e.camera.pose.offset.clone(),distance:e.camera.pose.distance});e.emit("initAnimation.end",createEvent("initAnimation.end",{state:v,userAction:e.userAction})),r()}};e.moveToPosition(l.offset,d,u)})},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(now())[1],r=this.locationMotion.getKeyFrameSegment(now())[1];return __assign(__assign({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:new THREE__namespace.Vector3(r.value.x,r.value.y,r.value.z),distance:r.value.distance})},t.prototype.moveToPano=function(e,r,o){r===void 0&&(r={});var s=this.works.getResolvedObserver(e);s&&this.moveToPosition(s.position,r,o)},t.prototype.moveToPosition=function(e,r,o){var s=this,u,l,c;r===void 0&&(r={}),this.userAction=o,this.stopMomentumMovement();for(var f=now(),d=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),p=d.distanceTo(e),v=this.locationMotion.getProgressVelocity(f),A=0,g=1;g<this.locationMotion.keyframes.length;g++){var h=this.locationMotion.keyframes[g-1].value,y=h.x,m=h.y,E=h.z,b=this.locationMotion.keyframes[g].value,T=b.x,_=b.y,R=b.z;A+=Math.sqrt(Math.pow(T-y,2)+Math.pow(_-m,2)+Math.pow(R-E,2))}var S=p===0?0:v*A/p,C=this.calculateMovingDuration(r.duration,p),B={x:e.x,y:e.y,z:e.z,distance:0},L={longitude:r.longitude,latitude:r.latitude,fov:r.fov},M=this.works.resolvedObservers,w=arrayMin(M,function(N){return N.position.distanceTo(d)}),H=w?{workCode:w.work.workCode,panoIndex:w.panoIndex}:{workCode:"",panoIndex:0},O=__assign(__assign({},H),{mode:this.mode,longitude:(u=L.longitude)!==null&&u!==void 0?u:this.camera.pose.longitude,latitude:(l=L.latitude)!==null&&l!==void 0?l:this.camera.pose.latitude,fov:(c=L.fov)!==null&&c!==void 0?c:this.camera.pose.fov,offset:e.clone(),distance:0}),I=this.currentPano;this.emit("pano.moveTo",createEvent("pano.moveTo",{options:r,prevPano:I,progress:0,state:O,userAction:this.userAction,error:null})),r.moveStartCallback&&r.moveStartCallback(O),this.cameraMotion.set(L,C).catch(noop$1),this.locationMotion.set(B,C,S).then(function(){for(var N=0,k=s.models;N<k.length;N++){var U=k[N];U.show()}var D=__assign(__assign(__assign({},H),{mode:s.mode}),clonePose(s.camera.pose));s.emit("pano.arrived",createEvent("pano.arrived",{options:r,prevPano:I,progress:0,state:D,userAction:s.userAction,error:null})),r.moveEndCallback&&r.moveEndCallback(D)},function(){r.moveCancelCallback&&r.moveCancelCallback(),s.emit("pano.cancel",createEvent("pano.cancel",{options:r,prevPano:I,progress:0,state:O,userAction:s.userAction,error:null}))})},t.prototype.onTapGesture=function(e){var r=e.center.raycaster;this.stopMomentumMovement();var o=this.models.intersectRaycaster(r)[0];if(o&&o.face){var s=o.face.normal,u=o.point;if(new THREE__namespace.Vector3(0,1,0).angleTo(s)>Math.PI/3){var l=s.clone().setLength(.3).add(u);r.set(l,new THREE__namespace.Vector3(0,-1,0)),o=this.models.intersectRaycaster(r)[0]}}if(o){var c=new THREE__namespace.Vector3().copy(o.point).add(HUMAN_EYE_POSITION),f=this.works.resolvedObservers,d=arrayMin(f,function(A){return A.position.distanceTo(c)},!0),p=d[0],v=d[1];p&&v<5&&(c.y=p.position.y),e.state.offset.copy(c),e.state.distance=0,this.emit("gesture.tap",e),e.defaultPrevented||this.moveToPosition(c,{},!0)}else this.emit("gesture.tap",e),e.defaultPrevented||this.cameraBounce()},t}(PanoramaLikeController);const edlVertexShader=function n(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}(`}rpvv|{-zrqvz}-sy|nH}rpvv|{-zrqvz}-v{Hnvor-rp@-}|vv|{Hnvor-rp?-H{vs|z-znA-}|wrpv|{Znv\x07H{vs|z-znA-z|qrycvrZnv\x07Hn\bv{t-rp?-bH|vq-znv{56-
|
|
1957
|
+
`,PanoSphereMesh=function(n){__extends(t,n);function t(){var e=n.call(this)||this;e.progress=0,e.opacity=0,e.loading=!1,e.current=!1,e.disabled=!1,e.currentMotion=new Motion({ringScale:1.1,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}),e.opacityMotion=new Motion({opacity:0}),e.loadingMotion=new Motion({opacity:0}),e.disableMotion=new Motion({opacity:0});var r={blending:THREE__namespace.CustomBlending,blendSrc:THREE__namespace.SrcAlphaFactor,blendDst:THREE__namespace.OneMinusSrcAlphaFactor,blendSrcAlpha:THREE__namespace.OneFactor,blendDstAlpha:THREE__namespace.OneMinusSrcAlphaFactor,depthWrite:!1,transparent:!0};return e.hitTestMesh=new THREE__namespace.Mesh(sharedGeometry,new THREE__namespace.MeshBasicMaterial(__assign(__assign({},r),{color:0,opacity:0}))),e.hitTestMesh.scale.set(1.5,1.5,1.5),e.ringMesh=new THREE__namespace.Mesh(sharedGeometry,new THREE__namespace.ShaderMaterial(__assign(__assign({},r),{vertexShader:ringVertexShader,fragmentShader:ringFragmentShader,uniforms:{opacity:{value:0}}}))),e.panoMesh=new THREE__namespace.Mesh(sharedGeometry,new THREE__namespace.ShaderMaterial(__assign(__assign({},r),{vertexShader,fragmentShader,uniforms:{circleScale:{value:1.1},circleFade:{value:0},circleOpacity:{value:.5},loadingAngle:{value:0},loadingOpacity:{value:0},opacity:{value:0},disable:{value:0}}}))),e.add(e.hitTestMesh),e.add(e.ringMesh),e.add(e.panoMesh),e.renderOrder=1e4,e.needsRender=!0,e}return t.prototype.setProgress=function(e){this.progress=e,this.setLoading(e>0)},t.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=clamp$1(e,0,1),this.opacityMotion.set({opacity:e},30).catch(noop$1))},t.prototype.setCurrent=function(e){if(this.current!==e){if(e){var r=[{progress:0,value:{ringScale:2,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.05,value:{ringScale:1,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.15,value:{ringScale:1.2,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.25,value:{ringScale:1.1,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.8,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.85,circleScale:1}},{progress:.9,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.65,circleScale:.8}},{progress:.92,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.65,circleScale:.8}},{progress:1,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.85,circleScale:1.1}}];this.currentMotion.setKeyframes(r,1500).catch(noop$1)}else{var r=[{progress:0,value:__assign({},this.currentMotion.value)},{progress:1,value:{ringScale:1.1,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}}];this.currentMotion.setKeyframes(r,200).catch(noop$1)}this.current=e}},t.prototype.setLoading=function(e){this.loading!==e&&(e?this.loadingMotion.setKeyframes([{progress:0,value:{opacity:0}},{progress:.3,value:{opacity:0}},{progress:1,value:{opacity:.8}}],500).catch(noop$1):this.loadingMotion.set({opacity:0},0).catch(noop$1),this.loading=e,this.disabled===!0&&this.setDisabled(!1),this.needsRender=!0)},t.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,this.loading===!0&&this.setLoading(!1),this.disableMotion.set({opacity:e?1:0},300).catch(noop$1),this.needsRender=!0)},t.prototype.tap=function(){return Promise.resolve()},t.prototype.updateTime=function(e,r){this.opacityMotion.update(e),this.currentMotion.update(e),this.loadingMotion.update(e);var o=this.opacityMotion.value.opacity;this.visible=o!==0;var s=this.currentMotion.value,u=s.ringScale,l=s.ringOpacity,c=s.circleFade,f=s.circleOpacity,d=s.circleScale;this.ringMesh.scale.set(u,1,u),this.ringMesh.material.uniforms.opacity.value=l*o,this.panoMesh.material.uniforms.opacity.value=o,this.panoMesh.material.uniforms.circleOpacity.value=f,this.panoMesh.material.uniforms.circleScale.value=d,this.panoMesh.material.uniforms.circleFade.value=c,this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingMotion.value.opacity,this.panoMesh.material.uniforms.disable.value=this.disableMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(Math.PI*2),this.needsRender=!0},t.prototype.dispose=function(){this.hitTestMesh.material.dispose(),this.ringMesh.material.dispose(),this.panoMesh.material.dispose()},t}(THREE__namespace.Object3D),ACTIVE_TO_CURRENT_DELAY=1500,defaultVRPanoramaControllerCustomInitArgs=__assign({},omit(defaultPanoramaControllerCustomInitArgs,["maxLatitude","minLatitude"])),VRPanoramaController=function(n){__extends(t,n);function t(e){var r=this,o=t.parseArgs(e);r=n.call(this,o)||this,r.mode="VRPanorama",r.cardboard=new Cardboard(r.renderer);var s=createHelper();r.helperElement=s;var u=new Hammer(s);return r.element.parentNode&&(r.element.parentNode.insertBefore(s,r.element),r.setHelperElementSize(),u.on("tap",function(){return r.emit("vr.requestExit",createEvent("vr.requestExit",{}))})),r.destroyHelper=function(){u.destroy(),s.parentNode&&s.parentNode.removeChild(s),delete r.helperElement},r}return t.parseArgs=function(e){if(e instanceof t)return e;var r=__assign(__assign({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return n.parseArgs.call(this,r)},t.initAnimationEndState=function(e){var r=this.parseArgs(e),o=n.initAnimationEndState.call(this,r);return __assign(__assign({},o),{mode:"VRPanorama"})},t.prototype.updateConfiguration=function(e){return n.prototype.updateConfiguration.call(this,__assign(__assign({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2}))},t.prototype.destroy=function(){n.prototype.destroy.call(this),this.cardboard.dispose(),this.destroyHelper();for(var e=Object.keys(this.panoMeshes),r=0,o=e;r<o.length;r++){var s=o[r],u=this.panoMeshes[s];this.helper.remove(u),u.dispose(),delete this.panoMeshes[s]}},t.prototype.isReady=function(){return!1},t.prototype.updateRenderSize=function(){this.needsRender=!0,this.modelSceneNeedsRender=!0,this.setHelperElementSize()},t.prototype.updateCamera=function(e,r,o){return Promise.resolve()},t.prototype.updateCameraWithKeyframes=function(e,r,o){return Promise.resolve()},t.prototype.updatePanoMeshesVisible=function(){for(var e=this.works.getResolvedObserver(this.currentPano),r=(e?e.visibleIds:[]).concat(panoStringify(this.currentPano)),o=0,s=this.works.resolvedObservers;o<s.length;o++){var u=s[o],l=this.panoMeshes[u.panoId];l&&(r.indexOf(u.panoId)>=0?l.parent!==this.helper&&this.helper.add(l):l.parent===this.helper&&(this.helper.remove(l),l.setOpacity(0)))}},t.prototype.updatePanoMeshes=function(){for(var e=Object.keys(this.panoMeshes),r=0,o=e;r<o.length;r++){var s=o[r],u=this.panoMeshes[s];this.helper.remove(u),u.dispose(),delete this.panoMeshes[s]}for(var l=0,c=this.works.resolvedObservers;l<c.length;l++){var f=c[l],d=f.panoId,p=new PanoSphereMesh;p.name="panoSphere_".concat(d),p.position.copy(f.position),p.needsRender=!0,this.panoMeshes[d]=p}this.updatePanoMeshesVisible()},t.prototype.updateTime=function(e,r){var o=this,s,u,l,c,f,d,p,v,A,g;if(!this.destroyed){var h=this.currentPano;this.userAction=!0,this.needsRender=!0,this.modelSceneNeedsRender=!0;var y={},m={},E=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),b=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),T=!1;if(this.modelAlphaMotion.ended===!1&&(this.modelAlphaMotion.update(e),y.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended===!1&&(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended===!1){this.locationMotion.update(e);var _=this.locationMotion.getKeyFrameSegment(e),R=_[0],S=_[1],C=this.panoResourceFromLocationMotionKeyframe(R),B=this.panoResourceFromLocationMotionKeyframe(S),L=C.position,M=B.position,w=this.locationMotion.value.count-S.value.count+1;y.progress=w,B.panoPicture&&(w<1?C.panoPicture&&(y.pano0=C.panoPicture):y.pano0=B.panoPicture,y.pano1=B.panoPicture),B.effect==="montage"?y.transition="BLACK":B.effect==="spread"?y.transition="SPREAD":y.transition="FADE",(B.effect==="zoomin"||B.effect==="zoomout")&&(y.progress=Math.pow(w,3)),w<1&&B.effect!=="fly"&&(y.pano0&&C.panoPicture&&(y.pano0={map:y.pano0.map,zoom:y.pano0.zoom,luminanceMap:y.pano0.luminanceMap,matrix:C.panoPicture.matrix.clone().premultiply(C.fixCameraTransform).setPosition(B.position)}),L.copy(M),T=!0),m.distance=this.locationMotion.value.distance,m.offset=new THREE__namespace.Vector3(L.x+(M.x-L.x)*w,L.y+(M.y-L.y)*w,L.z+(M.z-L.z)*w);for(var H=[],O=[],I=0,N=this.locationMotion.keyframes;I<N.length;I++){var k=N[I],U=k.key,D=k.progress;U!==void 0&&(H.push(U),D>this.locationMotion.progress&&O.push(U))}for(var q=0,z=Object.keys(this.panoResources);q<z.length;q++){var Q=z[q];if(!(O.indexOf(Q)>=0)){var G=this.panoResources[Q];if(G.panoPicture){var X=G.panoPicture.map,$=G.panoPicture.luminanceMap;if(X){if(X===((s=y.pano0)===null||s===void 0?void 0:s.map)||X===((u=y.pano1)===null||u===void 0?void 0:u.map))continue;X instanceof TileCubeTextureTarget&&X.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(X.cubeRenderTarget),X.dispose(),$&&($ instanceof TileCubeTextureTarget&&$.cubeRenderTarget&&this.luminanceCubeRenderTargetPool.push($.cubeRenderTarget),$.dispose()),G.panoPicture=null}}H.indexOf(Q)>=0||delete this.panoResources[Q]}}this.currentPano=panoParse(B.panoId),this.emit("pano.moving",createEvent("pano.moving",{userAction:this.userAction,prevPano:panoParse(E.panoId),state:__assign(__assign(__assign(__assign({},panoParse(b.panoId)),{mode:this.mode}),clonePose(this.camera.pose)),m),options:{},progress:this.locationMotion.progress,error:null}))}isEmptyObject(y)===!1&&(!((l=y.pano0)===null||l===void 0)&&l.map&&y.pano0.map instanceof TileCubeTextureTarget&&!y.pano0.map.cubeRenderTarget&&(y.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((c=y.pano0)===null||c===void 0)&&c.luminanceMap&&y.pano0.luminanceMap instanceof TileCubeTextureTarget&&!y.pano0.luminanceMap.cubeRenderTarget&&(y.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),!((f=y.pano1)===null||f===void 0)&&f.map&&y.pano1.map instanceof TileCubeTextureTarget&&!y.pano1.map.cubeRenderTarget&&(y.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((d=y.pano1)===null||d===void 0)&&d.luminanceMap&&y.pano1.luminanceMap instanceof TileCubeTextureTarget&&!y.pano1.luminanceMap.cubeRenderTarget&&(y.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.models.setMaterial(y)),m.offset&&this.camera.position.copy(m.offset),panoEqual(this.currentPano,h)&&this.updatePanoMeshesVisible();var W=this.camera.pose.longitude,oe=this.camera.pose.latitude;this.camera.quaternion.fromArray(this.cardboard.sensor.getOrientation()),this.camera.computePose();var ae=this.works.getResolvedObserver(this.currentPano);if(this.camera.pose.distance>.1||T)for(var re=0,j=Object.keys(this.panoMeshes);re<j.length;re++){var se=j[re],ie=this.panoMeshes[se];ie.setOpacity(0),ie.updateTime&&ie.updateTime(e,r),ie.visible=!1}else if(ae)for(var ue=ae.visibleIds.concat(panoStringify(this.currentPano)),fe=0,ne=ue;fe<ne.length;fe++){var se=ne[fe],Te=panoParse(se),_e=this.works.getResolvedObserver(Te);if(_e){var ie=this.panoMeshes[se];if(!_e.loadable&&!_e.active){ie.setOpacity(0);continue}var ve=ie.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);ve<.05?ie.setOpacity(0):ie.setOpacity(clamp$1(1.5/ve,0,1)),panoEqual(this.currentPano,Te)&&ie.setOpacity(0),ie.lookAt(this.camera.position)}}if(this.locationMotion.ended)for(var Me=this.intersect(e),Z=0,te=this.works.resolvedObservers;Z<te.length;Z++){var _e=te[Z],ie=this.panoMeshes[_e.panoId];ie&&(ie.setCurrent(ie===Me),ie.updateTime&&ie.updateTime(e,r))}(W!==this.camera.pose.longitude||oe!==this.camera.pose.latitude)&&(this.cameraMotion.set(pick(this.camera.pose,["longitude","latitude"]),0).catch(noop$1),this.emit("camera.update",createEvent("camera.update",{userAction:!0,state:__assign(__assign(__assign({},this.currentPano),{mode:this.mode}),clonePose(this.camera.pose))})));var K=this.tileLevel=function(){if(o.tileLevelForFov===!1)return 0;var me=o.renderer.getDrawingBufferSize(new THREE__namespace.Vector2);me.width*=o.scissor.width,me.height*=o.scissor.height;var ce=b.panoId,he=o.works.getResolvedObserver(ce),ee=o.imageOptions.size;if(typeof ee=="undefined"&&he){var pe=he.images.up.match(/\/cube_(\d+)\//);pe&&(ee=Number(pe[1]))}typeof ee=="undefined"&&(ee=2048);var Re=0;ee>=1024&&(Re=1),ee>=2048&&(Re=2),ee>=4096&&(Re=3),ee>=8192&&(Re=4);var we=o.tileLevelForFov(o.camera.fov,me);return we>Re?we:0}(),ye=function(){var me=o.camera.quaternion.clone(),ce=o.works.getResolvedObserver(b.panoId),he=ce!=null?ce:ae;he&&me.premultiply(he.quaternion.clone().inverse());var ee=new THREE__namespace.Matrix4().makeRotationFromQuaternion(me),pe=new THREE__namespace.Matrix4().getInverse(ee),Re=new THREE__namespace.Frustum().setFromProjectionMatrix(new THREE__namespace.Matrix4().multiplyMatrices(o.camera.projectionMatrix,pe));return Re}();b.panoId===panoStringify(this.currentPano)&&(((p=b.panoPicture)===null||p===void 0?void 0:p.map)instanceof TileCubeTextureTarget&&(b.panoPicture.map.maxRequest=this.tileMaxRequest,b.panoPicture.map.update(ye,K),b.panoPicture.map.needsRender===!0&&(b.panoPicture.map.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0)),((v=b.panoPicture)===null||v===void 0?void 0:v.luminanceMap)instanceof TileCubeTextureTarget&&(b.panoPicture.luminanceMap.maxRequest=this.tileMaxRequest,b.panoPicture.luminanceMap.update(ye,K),b.panoPicture.luminanceMap.needsRender===!0&&(b.panoPicture.luminanceMap.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0)));{var de=this.tiling.object.visible;if(this.initAnimationed){var xe=b.panoId,Ae=this.works.getResolvedObserver(xe);Ae?isSimilarVector3(this.camera.position,Ae.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==xe&&this.tiling.cleanup(),this.tiling.panoId=xe,this.tiling.setResource((g=(A=Ae.images)===null||A===void 0?void 0:A.tiles)!==null&&g!==void 0?g:[],this.enableIOSEDR&&Ae.images.luminance?Ae.images.luminance:null),this.tiling.setFetcher(getFetcher(Ae.work)),this.tiling.setRotation(Ae.quaternion),this.tiling.setPosition(Ae.position),this.tiling.maxRequest=this.tileMaxRequest,K>this.tiledCubeTextureLevel?this.tiling.update(ye,K,e):this.tiling.update(ye,0,e)):this.tiling.object.visible=!1:this.tiling.object.visible=!1}else this.tiling.object.visible=!1;de!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0,this.modelSceneNeedsRender=!0)}this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(e)}},t.prototype.render=function(){this.cardboard.render(this.modelScene,this.camera),this.renderer.autoClear=!1,this.cardboard.render(this.scene,this.camera),this.renderer.autoClear=!0},t.prototype.setCamera=function(e){},t.prototype.destroyHelper=function(){},t.prototype.setHelperElementSize=function(){if(this.helperElement){var e=new THREE__namespace.Vector2(this.element.offsetWidth,this.element.offsetHeight),r=e.x*this.scissor.left,o=e.y*(1-this.scissor.bottom-this.scissor.height),s=e.x*this.scissor.width,u=e.y*this.scissor.height;this.helperElement.style.marginLeft=r+"px",this.helperElement.style.marginTop=o+"px",this.helperElement.style.width=s+"px",this.helperElement.style.height=u+"px"}},t.prototype.intersect=function(e){var r,o;if(this.locationMotion.ended===!1){this.intersectMesh.visible=!1,delete this.activePanoMesh,delete this.activeTime;return}if(this.activePanoMesh&&this.activeTime&&e-this.activeTime>ACTIVE_TO_CURRENT_DELAY){for(var s=this.activePanoMesh,u=Object.keys(this.panoMeshes),l=null,c=0,f=u;c<f.length;c++){var d=f[c];if(this.panoMeshes[d]===s){l=d;break}}return l!==null&&this.moveToPano(panoParse(l),{},!0),delete this.activePanoMesh,delete this.activeTime,s}var p=this.camera.getDirection(new THREE__namespace.Vector3),v=new THREE__namespace.Raycaster(this.camera.position,p);v.params.Points={threshold:.1};for(var A=void 0,g=[],h=this.works.getResolvedObserver(this.currentPano),y=h?h.visibleIds:[],m=0,E=y;m<E.length;m++){var l=E[m],b=this.panoMeshes[l],T=v.intersectObject((r=b.hitTestMesh)!==null&&r!==void 0?r:b,!0)[0];T&&g.push({panoMesh:b,intersection:__assign({floor:(o=h==null?void 0:h.floorIndex)!==null&&o!==void 0?o:0},T)})}var _=g.sort(function(L,M){return L.intersection.distance-M.intersection.distance})[0];_?(A=_.intersection,this.activePanoMesh!==_.panoMesh&&(this.activePanoMesh=_.panoMesh,this.activeTime=e),this.intersectMesh.position.copy(_.panoMesh.position),this.intersectMesh.lookAt(this.camera.position)):(this.activePanoMesh=void 0,this.activeTime=void 0),A||(A=this.models.intersectRaycaster(v)[0]);var R=createEvent("intersect.update",{raycaster:v,intersection:A!=null?A:null,object:this.intersectMesh});if(this.emit("intersect.update",R),R.defaultPrevented){this.hideIntersectMesh();return}if(A&&A.face){var S=A.face.normal,C=new THREE__namespace.Quaternion;C.setFromUnitVectors(new THREE__namespace.Vector3(0,0,1),S),this.intersectMesh.quaternion.copy(C);var B=A.point.clone();this.intersectMesh.position.copy(B),_?this.intersectMesh.visible=!1:this.intersectMesh.visible=!0}else this.intersectMesh.visible=!1;return _==null?void 0:_.panoMesh},t.prototype.onPanGesture=function(){},t.prototype.onTapGesture=function(){},t.prototype.onPinchGesture=function(){},t.prototype.onMouseMove=function(){},t.prototype.onMouseOut=function(){},t}(PanoramaController),HUMAN_EYE_POSITION=new THREE__namespace.Vector3(0,1.6,0),defaultModelControllerCustomInitArgs=__assign({},defaultPanoramaLikeControllerCustomInitArgs),ModelController=function(n){__extends(t,n);function t(e){var r=this,o,s=t.parseArgs(e);return r=n.call(this,s)||this,r.mode="Model",r.locationMotion=new Motion({x:r.camera.pose.offset.x,y:r.camera.pose.offset.y,z:r.camera.pose.offset.z,distance:r.camera.pose.distance}),r.modelAlphaMotion=new Motion({modelAlpha:(o=r.models.getMaterial().modelAlpha)!==null&&o!==void 0?o:0}),r.perspToOrthoMotion=new Motion({perspToOrtho:r.camera.perspToOrtho.x}),r}return t.parseArgs=function(e){return e instanceof t?e:n.parseArgs.call(this,e)},t.initAnimationEndState=function(e){var r,o,s,u,l,c,f=this.parseArgs(e),d=f.works,p=e.initial,v=p.state,A=p.currentState,g=typeof v.panoIndex=="number"?{workCode:(s=(r=v.workCode)!==null&&r!==void 0?r:(o=f.works[0])===null||o===void 0?void 0:o.workCode)!==null&&s!==void 0?s:"",panoIndex:v.panoIndex}:{workCode:A.workCode,panoIndex:A.panoIndex},h=d.getResolvedObserver(g),y=(u=v.longitude)!==null&&u!==void 0?u:A.longitude,m=clamp$1((l=v.latitude)!==null&&l!==void 0?l:!h||isFristPersonMode(A.mode)?A.latitude:f.defaultLatitude,f.minLatitude,f.maxLatitude),E=clamp$1((c=v.fov)!==null&&c!==void 0?c:!h||isFristPersonMode(A.mode)?A.fov:f.defaultFov,f.minFov,f.maxFov),b=new THREE__namespace.Vector3;if(f.initial.state.offset)b.copy(f.initial.state.offset);else if(h)b.copy(h.position);else{var T=coordinatesToVector(A).setLength(A.distance);b.copy(f.initial.currentState.offset).sub(T)}return{workCode:g.workCode,panoIndex:g.panoIndex,mode:"Model",longitude:y,latitude:m,fov:E,offset:b,distance:0}},t.prototype.updateConfiguration=function(e){return n.prototype.updateConfiguration.call(this,e)},t.prototype.destroy=function(){n.prototype.destroy.call(this),this.locationMotion.dispose()},t.prototype.isReady=function(){return this.locationMotion.ended===!1?!1:n.prototype.isReady.call(this)},t.prototype.updateWork=function(e,r,o,s){this.works=e;var u=t.initAnimationEndState(__assign(__assign({},this),{initial:{currentState:__assign(__assign({},this.currentPano),this.camera.pose),duration:o.duration,effect:o.effect,state:r,userAction:s}}));return this.hideIntersectMesh(),this.moveToPosition(u.offset,{duration:0,longitude:u.longitude,latitude:u.latitude,fov:u.fov},s),!0},t.prototype.updateCamera=function(e,r,o){var s=this;return this.initAnimationReady.then(function(){s.userAction=o,s.stopMomentumMovement();var u={},l={};return u.distance=0,e.offset!==void 0&&(u.x=e.offset.x,u.y=e.offset.y,u.z=e.offset.z),e.longitude!==void 0&&(l.longitude=e.longitude),e.latitude!==void 0&&(l.latitude=e.latitude),e.fov!==void 0&&(l.fov=e.fov),s.locationMotion.set(u,r).catch(noop$1),s.cameraMotion.set(l,r).catch(noop$1)})},t.prototype.updateCameraWithKeyframes=function(e,r,o){var s=this;return this.initAnimationReady.then(function(){s.userAction=o,s.stopMomentumMovement();for(var u=[],l=[],c=0,f=e;c<f.length;c++){var d=f[c];u.push({key:d.key,progress:d.progress,value:{distance:0,x:d.value.offset.x,y:d.value.offset.x,z:d.value.offset.x}}),l.push({key:d.key,progress:d.progress,value:{longitude:d.value.longitude,latitude:d.value.latitude,fov:d.value.fov}})}return s.locationMotion.setKeyframes(u,r).catch(noop$1),s.cameraMotion.setKeyframes(e,r)})},t.prototype.updateTime=function(e,r){if(!this.destroyed){var o={},s={};if(this.modelAlphaMotion.ended||(this.modelAlphaMotion.update(e),o.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended||(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),!this.locationMotion.ended){this.locationMotion.update(e),s.distance=this.locationMotion.value.distance,s.offset=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z);var u=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),l=this.works.resolvedObservers,c=arrayMin(l,function(f){return f.position.distanceTo(u)});this.currentPano=c?{workCode:c.work.workCode,panoIndex:c.panoIndex}:{workCode:"",panoIndex:0}}this.cameraMotion.ended||(this.cameraMotion.update(e),s.longitude=this.cameraMotion.value.longitude,s.latitude=this.cameraMotion.value.latitude,s.fov=this.cameraMotion.value.fov),isEmptyObject(o)||this.models.setMaterial(o),isEmptyObject(s)||this.setCamera(s)}},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise(function(r){var o=e.initial;o.state,o.currentState;var s=o.duration,u=o.userAction;e.userAction=u;var l=t.initAnimationEndState(e),c={modelAlpha:1},f={perspToOrtho:0},d={longitude:l.longitude,latitude:l.latitude,fov:l.fov,duration:s,moveStartCallback:function(p){e.perspToOrthoMotion.set(f,s).catch(noop$1),e.modelAlphaMotion.set(c,s).catch(noop$1),e.emit("initAnimation.start",createEvent("initAnimation.start",{state:p,userAction:e.userAction}))},moveEndCallback:function(p){e.emit("initAnimation.end",createEvent("initAnimation.end",{state:p,userAction:e.userAction})),r()},moveCancelCallback:function(){var p=e.currentPano,v=__assign(__assign({},p),{mode:e.mode,longitude:e.camera.pose.longitude,latitude:e.camera.pose.latitude,fov:e.camera.pose.fov,offset:e.camera.pose.offset.clone(),distance:e.camera.pose.distance});e.emit("initAnimation.end",createEvent("initAnimation.end",{state:v,userAction:e.userAction})),r()}};e.moveToPosition(l.offset,d,u)})},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(now())[1],r=this.locationMotion.getKeyFrameSegment(now())[1];return __assign(__assign({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:new THREE__namespace.Vector3(r.value.x,r.value.y,r.value.z),distance:r.value.distance})},t.prototype.moveToPano=function(e,r,o){r===void 0&&(r={});var s=this.works.getResolvedObserver(e);s&&this.moveToPosition(s.position,r,o)},t.prototype.moveToPosition=function(e,r,o){var s=this,u,l,c;r===void 0&&(r={}),this.userAction=o,this.stopMomentumMovement();for(var f=now(),d=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),p=d.distanceTo(e),v=this.locationMotion.getProgressVelocity(f),A=0,g=1;g<this.locationMotion.keyframes.length;g++){var h=this.locationMotion.keyframes[g-1].value,y=h.x,m=h.y,E=h.z,b=this.locationMotion.keyframes[g].value,T=b.x,_=b.y,R=b.z;A+=Math.sqrt(Math.pow(T-y,2)+Math.pow(_-m,2)+Math.pow(R-E,2))}var S=p===0?0:v*A/p,C=this.calculateMovingDuration(r.duration,p),B={x:e.x,y:e.y,z:e.z,distance:0},L={longitude:r.longitude,latitude:r.latitude,fov:r.fov},M=this.works.resolvedObservers,w=arrayMin(M,function(N){return N.position.distanceTo(d)}),H=w?{workCode:w.work.workCode,panoIndex:w.panoIndex}:{workCode:"",panoIndex:0},O=__assign(__assign({},H),{mode:this.mode,longitude:(u=L.longitude)!==null&&u!==void 0?u:this.camera.pose.longitude,latitude:(l=L.latitude)!==null&&l!==void 0?l:this.camera.pose.latitude,fov:(c=L.fov)!==null&&c!==void 0?c:this.camera.pose.fov,offset:e.clone(),distance:0}),I=this.currentPano;this.emit("pano.moveTo",createEvent("pano.moveTo",{options:r,prevPano:I,progress:0,state:O,userAction:this.userAction,error:null})),r.moveStartCallback&&r.moveStartCallback(O),this.cameraMotion.set(L,C).catch(noop$1),this.locationMotion.set(B,C,S).then(function(){for(var N=0,k=s.models;N<k.length;N++){var U=k[N];U.show()}var D=__assign(__assign(__assign({},H),{mode:s.mode}),clonePose(s.camera.pose));s.emit("pano.arrived",createEvent("pano.arrived",{options:r,prevPano:I,progress:0,state:D,userAction:s.userAction,error:null})),r.moveEndCallback&&r.moveEndCallback(D)},function(){r.moveCancelCallback&&r.moveCancelCallback(),s.emit("pano.cancel",createEvent("pano.cancel",{options:r,prevPano:I,progress:0,state:O,userAction:s.userAction,error:null}))})},t.prototype.onTapGesture=function(e){var r=e.center.raycaster;this.stopMomentumMovement();var o=this.models.intersectRaycaster(r)[0];if(o&&o.face){var s=o.face.normal,u=o.point;if(new THREE__namespace.Vector3(0,1,0).angleTo(s)>Math.PI/3){var l=s.clone().setLength(.3).add(u);r.set(l,new THREE__namespace.Vector3(0,-1,0)),o=this.models.intersectRaycaster(r)[0]}}if(o){var c=new THREE__namespace.Vector3().copy(o.point).add(HUMAN_EYE_POSITION),f=this.works.resolvedObservers,d=arrayMin(f,function(A){return A.position.distanceTo(c)},!0),p=d[0],v=d[1];p&&v<5&&(c.y=p.position.y),e.state.offset.copy(c),e.state.distance=0,this.emit("gesture.tap",e),e.defaultPrevented||this.moveToPosition(c,{},!0)}else this.emit("gesture.tap",e),e.defaultPrevented||this.cameraBounce()},t}(PanoramaLikeController);const edlVertexShader=function n(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}(`}rpvv|{-zrqvz}-sy|nH}rpvv|{-zrqvz}-v{Hnvor-rp@-}|vv|{Hnvor-rp?-H{vs|z-znA-}|wrpv|{Znv\x07H{vs|z-znA-z|qrycvrZnv\x07Hn\bv{t-rp?-bH|vq-znv{56-
|
|
1958
1958
|
b-J-HrpA-z]|vv|{-J-z|qrycvrZnv\x07-7-rpA5}|vv|{9>;=6Htyl]|vv|{-J-}|wrpv|{Znv\x07-7-z]|vv|{H\f`),edlFragmentShader=function n(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}(`0r\x07r{v|{-TYlRealsntlqr}u-G-r{noyr<<<<-nqn}rq-s|z-ur-RQY-unqr-p|qr-s|z-Puvvn{-O|pur{\b-v{-py|q-p|z}nrG<<-u}G<<tvuo;p|z<py|qp|z}nr<{x<rr<znr<}ytv{<\0RQY<unqr<RQY<<}rpvv|{-zrqvz}-sy|nH}rpvv|{-zrqvz}-v{H{vs|z-sy|n-prr{dvquH{vs|z-sy|n-prr{UrvtuH{vs|z-rp?-{rvtuo|h[RVTUO\\b_lP\\b[ajH{vs|z-sy|n-rqy\`r{tuH{vs|z-sy|n-nqvH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-[rnH{vs|z-sy|n-SnH{vs|z-znA-]|wH{vs|z-nz}yr?Q-RQYP|y|Hn\bv{t-rp?-bHsy|n-r}|{r5sy|n-qr}u6
|
|
1959
1959
|
--rp?-_nqv-J-nqv-<-rp?5prr{dvqu9-prr{Urvtu6H--sy|n-z-J-=;=H--s|5v{-v-J-=H-v-I-[RVTUO\\b_lP\\b[aH-v886
|
|
1960
1960
|
----rp?-[rvtuo|-J-b-8-_nqv-7-{rvtuo|hvjH----sy|n-{rvtuo|Qr}u-J-r\x07r?Q5RQYP|y|9-[rvtuo|6;nH----{rvtuo|Qr}u-J-5{rvtuo|Qr}u-JJ->;=6-L-=;=-G-{rvtuo|Qr}uH----vs5{rvtuo|Qr}u-.J-=;=6
|
|
@@ -2166,7 +2166,7 @@ void main() {
|
|
|
2166
2166
|
#include <premultiplied_alpha_fragment>
|
|
2167
2167
|
|
|
2168
2168
|
}
|
|
2169
|
-
`},LineMaterial=function(n){__extends(t,n);function t(e){var r=n.call(this,{uniforms:THREE__namespace.UniformsUtils.clone(lineShader.uniforms),vertexShader:lineShader.vertexShader,fragmentShader:lineShader.fragmentShader,clipping:!0})||this;return r.type="LineMaterial",r.dashed=!1,Object.defineProperties(r,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(o){this.uniforms.diffuse.value=o}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(o){this.uniforms.linewidth.value=o}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(o){this.uniforms.dashScale.value=o}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(o){this.uniforms.dashSize.value=o}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(o){this.uniforms.gapSize.value=o}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(o){this.uniforms.opacity.value=o}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(o){this.uniforms.resolution.value.copy(o)}}}),r.setValues(e),r}return t}(THREE__namespace.ShaderMaterial);Object.assign(LineMaterial.prototype,{isLineMaterial:!0});var LineSegments2=function(n){__extends(t,n);function t(e,r){var o=n.call(this)||this;return o.type="LineSegments2",o.geometry=e!==void 0?e:new LineSegmentsGeometry,o.material=r!==void 0?r:new LineMaterial({color:Math.random()*16777215}),o}return t.prototype.computeLineDistances=function(){for(var e=this.geometry,r=e.attributes.instanceStart,o=e.attributes.instanceEnd,s=new Float32Array(2*r.count),u=new THREE__namespace.Vector3,l=new THREE__namespace.Vector3,c=0,f=0,d=r.count;c<d;c++,f+=2)u.fromBufferAttribute(r,c),l.fromBufferAttribute(o,c),s[f]=f===0?0:s[f-1],s[f+1]=s[f]+u.distanceTo(l);var p=new THREE__namespace.InstancedInterleavedBuffer(s,2,1);return e.setAttribute("instanceDistanceStart",new THREE__namespace.InterleavedBufferAttribute(p,1,0)),e.setAttribute("instanceDistanceEnd",new THREE__namespace.InterleavedBufferAttribute(p,1,1)),this},t.prototype.raycast=function(e,r){e.camera===null&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2.');var o=e.ray,s=e.camera,u=s.projectionMatrix,l=this.geometry,c=this.material,f=c.resolution,d=c.linewidth,p=l.attributes.instanceStart,v=l.attributes.instanceEnd,A=new THREE__namespace.Vector4,g=new THREE__namespace.Vector4,h=new THREE__namespace.Vector4,y=new THREE__namespace.Vector3,m=new THREE__namespace.Matrix4,E=new THREE__namespace.Line3,b=new THREE__namespace.Vector3;o.at(1,h),h.w=1,h.applyMatrix4(s.matrixWorldInverse),h.applyMatrix4(u),h.multiplyScalar(1/h.w),h.x*=f.x/2,h.y*=f.y/2,h.z=0,y.copy(h);var T=this.matrixWorld;m.multiplyMatrices(s.matrixWorldInverse,T);for(var _=0,R=p.count;_<R;_++){A.fromBufferAttribute(p,_),g.fromBufferAttribute(v,_),A.w=1,g.w=1,A.applyMatrix4(m),g.applyMatrix4(m),A.applyMatrix4(u),g.applyMatrix4(u),A.multiplyScalar(1/A.w),g.multiplyScalar(1/g.w);var S=A.z<-1&&g.z<-1,C=A.z>1&&g.z>1;if(!(S||C)){A.x*=f.x/2,A.y*=f.y/2,g.x*=f.x/2,g.y*=f.y/2,E.start.copy(A),E.start.z=0,E.end.copy(g),E.end.z=0;var B=E.closestPointToPointParameter(y,!0);E.at(B,b);var L=THREE__namespace.MathUtils.lerp(A.z,g.z,B),M=L>=-1&&L<=1,w=y.distanceTo(b)<d*.5;if(M&&w){E.start.fromBufferAttribute(p,_),E.end.fromBufferAttribute(v,_),E.start.applyMatrix4(T),E.end.applyMatrix4(T);var H=new THREE__namespace.Vector3,O=new THREE__namespace.Vector3;o.distanceSqToSegment(E.start,E.end,O,H),r.push({point:O,pointOnLine:H,distance:o.origin.distanceTo(O),object:this,faceIndex:_})}}}},t}(THREE__namespace.Mesh);Object.assign(LineSegments2.prototype,{isLineSegments2:!0});var Line2=function(n){__extends(t,n);function t(e,r){var o=n.call(this,e,r)||this;return o.type="Line2",o}return t}(LineSegments2);Object.assign(Line2.prototype,{isLine2:!0});var LineGeometry=function(n){__extends(t,n);function t(){var e=n.call(this)||this;return e.type="LineGeometry",e}return t.prototype.setPositions=function(e){for(var r=e.length-3,o=new Float32Array(2*r),s=0;s<r;s+=3)o[2*s]=e[s],o[2*s+1]=e[s+1],o[2*s+2]=e[s+2],o[2*s+3]=e[s+3],o[2*s+4]=e[s+4],o[2*s+5]=e[s+5];return n.prototype.setPositions.call(this,o),this},t.prototype.setColors=function(e){for(var r=e.length-3,o=new Float32Array(2*r),s=0;s<r;s+=3)o[2*s]=e[s],o[2*s+1]=e[s+1],o[2*s+2]=e[s+2],o[2*s+3]=e[s+3],o[2*s+4]=e[s+4],o[2*s+5]=e[s+5];return n.prototype.setColors.call(this,o),this},t.prototype.fromLine=function(e){var r=e.geometry;if(r instanceof THREE__namespace.Geometry){var o=new THREE__namespace.BufferGeometry().fromGeometry(r);this.setPositions(o.attributes.position.array)}else r instanceof THREE__namespace.BufferGeometry&&this.setPositions(r.attributes.position.array);return this},t.prototype.copy=function(){return this},t}(LineSegmentsGeometry);Object.assign(LineGeometry.prototype,{isLineGeometry:!0});var circleImageURL="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==",DEFAULT_COLOR=14467195,POINT_SIZE=8,DEFAULT_LINEWIDTH=2,DEFAULT_DASHSCALE=20,sharedCircleTexture=null,FiveLine=function(n){__extends(t,n);function t(e,r){e===void 0&&(e=new THREE__namespace.Vector3),r===void 0&&(r=new THREE__namespace.Vector3);var o=n.call(this)||this;o.type="FiveLine",o.needsRender=!0;var s=new LineGeometry,u=new LineMaterial({color:DEFAULT_COLOR,linewidth:DEFAULT_LINEWIDTH,dashScale:DEFAULT_DASHSCALE,dashed:!1});o.line=new Line2(s,u);var l=new THREE__namespace.BufferGeometry,c=new THREE__namespace.PointsMaterial({color:DEFAULT_COLOR,size:POINT_SIZE,map:sharedCircleTexture||(sharedCircleTexture=new THREE__namespace.TextureLoader().load(circleImageURL)),sizeAttenuation:!1,transparent:!0});return o.points=new THREE__namespace.Points(l,c),o.points.renderOrder=11,o.points.frustumCulled=!1,o.setPoints(e,r),o.add(o.line,o.points),o}return Object.defineProperty(t,"version",{get:function(){return"6.4.0-alpha.38"},enumerable:!1,configurable:!0}),t.prototype.setPoints=function(e,r){var o=[].concat(e.toArray(),r.toArray());this.points.geometry.setAttribute("position",new THREE__namespace.BufferAttribute(new Float32Array(o),3)),this.line.geometry.setPositions(o),this.line.computeLineDistances(),this.needsRender=!0},t.prototype.getPoints=function(){var e=this.points.geometry.attributes.position.array;return[new THREE__namespace.Vector3(e[0],e[1],e[2]),new THREE__namespace.Vector3(e[3],e[4],e[5])]},t.prototype.setMaterial=function(e){var r=this.line.material;for(var o in e)if(e.hasOwnProperty(o)){var s=e[o];o==="dashed"?(r.dashed=s,s?r.defines.USE_DASH="":delete r.defines.USE_DASH,r.needsUpdate=!0):r[o]=e[o]}this.needsRender=!0},t.prototype.setResolution=function(e,r){var o=this.line.material.resolution;(o.x!==e||o.y!==r)&&(o.set(e,r),this.needsRender=!0)},t}(THREE__namespace.Object3D);Object.assign(FiveLine.prototype,{isFiveLine:!0});var Constants={Handedness:Object.freeze({NONE:"none",LEFT:"left",RIGHT:"right"}),ComponentState:Object.freeze({DEFAULT:"default",TOUCHED:"touched",PRESSED:"pressed"}),ComponentProperty:Object.freeze({BUTTON:"button",X_AXIS:"xAxis",Y_AXIS:"yAxis",STATE:"state"}),ComponentType:Object.freeze({TRIGGER:"trigger",SQUEEZE:"squeeze",TOUCHPAD:"touchpad",THUMBSTICK:"thumbstick",BUTTON:"button"}),ButtonTouchThreshold:.05,AxisTouchThreshold:.1,VisualResponseProperty:Object.freeze({TRANSFORM:"transform",VISIBILITY:"visibility"})};function fetchJsonFile(n){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,fetch(n)];case 1:if(t=e.sent(),t.ok)return[2,t.json()];throw new Error(t.statusText)}})})}function fetchProfilesList(n){return __awaiter(this,void 0,void 0,function(){var t,e;return __generator(this,function(r){switch(r.label){case 0:if(!n)throw new Error("No basePath supplied");return t="profilesList.json",[4,fetchJsonFile("".concat(n,"/").concat(t))];case 1:return e=r.sent(),[2,e]}})})}function fetchProfile(n,t){return __awaiter(this,arguments,void 0,function(e,r,o,s){var u,l,c,f,d,p;return o===void 0&&(o=null),s===void 0&&(s=!0),__generator(this,function(v){switch(v.label){case 0:if(!e)throw new Error("No xrInputSource supplied");if(!r)throw new Error("No basePath supplied");return[4,fetchProfilesList(r)];case 1:if(u=v.sent(),e.profiles.some(function(A){var g=u[A];return g&&(l={profileId:A,profilePath:"".concat(r,"/").concat(g.path),deprecated:!!g.deprecated}),!!l}),!l){if(!o)throw new Error("No matching profile name found");if(c=u[o],!c)throw new Error('No matching profile name found and default profile "'.concat(o,'" missing.'));l={profileId:o,profilePath:"".concat(r,"/").concat(c.path),deprecated:!!c.deprecated}}return[4,fetchJsonFile(l.profilePath)];case 2:if(f=v.sent(),s){if(p=void 0,p=f.layouts[e.handedness],!p)throw new Error("No matching handedness, ".concat(e.handedness,", in profile ").concat(l.profileId));p.assetPath&&(d=l.profilePath.replace("profile.json",p.assetPath))}return[2,{profile:f,assetPath:d}]}})})}var defaultComponentValues={xAxis:0,yAxis:0,button:0,state:Constants.ComponentState.DEFAULT};function normalizeAxes(n,t){n===void 0&&(n=0),t===void 0&&(t=0);var e=n,r=t,o=Math.sqrt(n*n+t*t);if(o>1){var s=Math.atan2(t,n);e=Math.cos(s),r=Math.sin(s)}var u={normalizedXAxis:e*.5+.5,normalizedYAxis:r*.5+.5};return u}var VisualResponse=function(){function n(t){this.componentProperty=t.componentProperty,this.states=t.states,this.valueNodeName=t.valueNodeName,this.valueNodeProperty=t.valueNodeProperty,this.valueNodeProperty===Constants.VisualResponseProperty.TRANSFORM&&(this.minNodeName=t.minNodeName,this.maxNodeName=t.maxNodeName),this.value=0,this.updateFromComponent(defaultComponentValues)}return n.prototype.updateFromComponent=function(t){var e=t.xAxis,r=t.yAxis,o=t.button,s=t.state,u=normalizeAxes(e,r),l=u.normalizedXAxis,c=u.normalizedYAxis;switch(this.componentProperty){case Constants.ComponentProperty.X_AXIS:this.value=this.states.includes(s)?l:.5;break;case Constants.ComponentProperty.Y_AXIS:this.value=this.states.includes(s)?c:.5;break;case Constants.ComponentProperty.BUTTON:this.value=this.states.includes(s)?o:0;break;case Constants.ComponentProperty.STATE:this.valueNodeProperty===Constants.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(s):this.value=this.states.includes(s)?1:0;break;default:throw new Error("Unexpected visualResponse componentProperty ".concat(this.componentProperty))}},n}(),Component=function(){function n(t,e){var r=this;if(!t||!e||!e.visualResponses||!e.gamepadIndices||Object.keys(e.gamepadIndices).length===0)throw new Error("Invalid arguments supplied");this.id=t,this.type=e.type,this.rootNodeName=e.rootNodeName,this.touchPointNodeName=e.touchPointNodeName,this.visualResponses={},Object.keys(e.visualResponses).forEach(function(o){var s=new VisualResponse(e.visualResponses[o]);r.visualResponses[o]=s}),this.gamepadIndices=Object.assign({},e.gamepadIndices),this.values={state:Constants.ComponentState.DEFAULT,button:this.gamepadIndices.button!==void 0?0:void 0,xAxis:this.gamepadIndices.xAxis!==void 0?0:void 0,yAxis:this.gamepadIndices.yAxis!==void 0?0:void 0}}return Object.defineProperty(n.prototype,"data",{get:function(){var t=__assign({id:this.id},this.values);return t},enumerable:!1,configurable:!0}),n.prototype.updateFromGamepad=function(t){var e=this;if(this.values.state=Constants.ComponentState.DEFAULT,this.gamepadIndices.button!==void 0&&t.buttons.length>this.gamepadIndices.button){var r=t.buttons[this.gamepadIndices.button];this.values.button=r.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,r.pressed||this.values.button===1?this.values.state=Constants.ComponentState.PRESSED:(r.touched||this.values.button>Constants.ButtonTouchThreshold)&&(this.values.state=Constants.ComponentState.TOUCHED)}this.gamepadIndices.xAxis!==void 0&&t.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=t.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===Constants.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>Constants.AxisTouchThreshold&&(this.values.state=Constants.ComponentState.TOUCHED)),this.gamepadIndices.yAxis!==void 0&&t.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=t.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===Constants.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>Constants.AxisTouchThreshold&&(this.values.state=Constants.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach(function(o){o.updateFromComponent(e.values)})},n}(),MotionController=function(){function n(t,e,r){var o=this;if(!t)throw new Error("No xrInputSource supplied");if(!e)throw new Error("No profile supplied");this.xrInputSource=t,this.assetUrl=r,this.id=e.profileId,this.layoutDescription=e.layouts[t.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach(function(s){var u=o.layoutDescription.components[s];o.components[s]=new Component(s,u)}),this.updateFromGamepad()}return Object.defineProperty(n.prototype,"gripSpace",{get:function(){return this.xrInputSource.gripSpace},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"targetRaySpace",{get:function(){return this.xrInputSource.targetRaySpace},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"data",{get:function(){var t=[];return Object.values(this.components).forEach(function(e){t.push(e.data)}),t},enumerable:!1,configurable:!0}),n.prototype.updateFromGamepad=function(){var t=this;Object.values(this.components).forEach(function(e){e.updateFromGamepad(t.xrInputSource.gamepad)})},n}(),DEFAULT_PROFILES_PATH="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",DEFAULT_PROFILE="generic-trigger",XRControllerModel=function(n){__extends(t,n);function t(){var e=n.call(this)||this;return e.motionController=null,e.envMap=null,e}return t.prototype.setEnvironmentMap=function(e){var r=this;return this.envMap==e?this:(this.envMap=e,this.traverse(function(o){o instanceof THREE__namespace.Mesh&&o.isMesh&&(o.material.envMap=r.envMap,o.material.needsUpdate=!0)}),this)},t.prototype.updateMatrixWorld=function(e){n.prototype.updateMatrixWorld.call(this,e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach(function(r){Object.values(r.visualResponses).forEach(function(o){var s=o.valueNode,u=o.minNode,l=o.maxNode,c=o.value,f=o.valueNodeProperty;s&&(f===Constants.VisualResponseProperty.VISIBILITY?s.visible=c:f===Constants.VisualResponseProperty.TRANSFORM&&(s.quaternion.copy(u.quaternion).slerp(l.quaternion,c),s.position.lerpVectors(u.position,l.position,c)))})}))},t}(THREE.Object3D);function findNodes(n,t){Object.values(n.components).forEach(function(e){var r=e.type,o=e.touchPointNodeName,s=e.visualResponses;if(r===Constants.ComponentType.TOUCHPAD)if(e.touchPointNode=t.getObjectByName(o),e.touchPointNode){var u=new THREE.SphereGeometry(.001),l=new THREE.MeshBasicMaterial({color:255}),c=new THREE.Mesh(u,l);e.touchPointNode.add(c)}else console.warn("Could not find touch dot, ".concat(e.touchPointNodeName,", in touchpad component ").concat(e.id));Object.values(s).forEach(function(f){var d=f.valueNodeName,p=f.minNodeName,v=f.maxNodeName,A=f.valueNodeProperty;if(A===Constants.VisualResponseProperty.TRANSFORM){if(f.minNode=t.getObjectByName(p),f.maxNode=t.getObjectByName(v),!f.minNode){console.warn("Could not find ".concat(p," in the model"));return}if(!f.maxNode){console.warn("Could not find ".concat(v," in the model"));return}}f.valueNode=t.getObjectByName(d),f.valueNode||console.warn("Could not find ".concat(d," in the model"))})})}function addAssetSceneToControllerModel(n,t){findNodes(n.motionController,t),n.envMap&&t.traverse(function(e){e instanceof THREE__namespace.Mesh&&e.isMesh&&(e.material.envMap=n.envMap,e.material.needsUpdate=!0)}),n.add(t)}var XRControllerModelFactory=function(){function n(t){t===void 0&&(t=null),this.gltfLoader=t,this.path=DEFAULT_PROFILES_PATH,this._assetCache={}}return n.prototype.createControllerModel=function(t){var e=this,r=new XRControllerModel,o=null;return t.addEventListener("connected",function(s){var u=s.data;u.targetRayMode!=="tracked-pointer"||!u.gamepad||fetchProfile(u,e.path,DEFAULT_PROFILE).then(function(l){var c=l.profile,f=l.assetPath;r.motionController=new MotionController(u,c,f);var d=e._assetCache[r.motionController.assetUrl];if(d)o=d.scene.clone(),addAssetSceneToControllerModel(r,o);else{if(!e.gltfLoader)throw new Error("GLTFLoader not set.");e.gltfLoader.load(r.motionController.assetUrl,function(p){e._assetCache[r.motionController.assetUrl]=p,o=p.scene.clone(),addAssetSceneToControllerModel(r,o)})}}).catch(function(l){console.warn(l)})}),t.addEventListener("disconnected",function(){r.motionController=null,r.remove(o),o=null}),r},n}(),defaultXRPanoramaControllerInitArgs=__assign({},omit(defaultPanoramaControllerCustomInitArgs,["maxLatitude","minLatitude"]));function mapPanoResource(n,t){return n}var CONTROLLER_EVNET_DELTA_TIME=300,ROTATE_Y_PI_MATRIX=new THREE__namespace.Matrix4().makeRotationAxis(new THREE__namespace.Vector3(0,1,0),Math.PI),PANO_TEXTURE_SCALE=new THREE__namespace.Vector3(-1,1,1),XRPanoramaController=function(n){__extends(t,n);function t(e){var r=n.call(this,e)||this;r.xrManager=new XRManager(r.renderer,r.renderer.getContext(),{onSessionStart:function(c){r.emit("xr.session.start",createEvent("xr.session.start",{session:c,machineType:r.xrManager.machineType}))},onSessionEnd:function(){r.emit("xr.session.end",createEvent("xr.session.end",{session:null,machineType:r.xrManager.machineType}))}}),r.xrControllerRay={left:new THREE__namespace.Raycaster,right:new THREE__namespace.Raycaster},r.xrControllerRay.left.params.Points={threshold:.1},r.xrControllerRay.right.params.Points={threshold:.1},r.gazeRay=null,r.pointerLines={left:new FiveLine,right:new FiveLine},r.pointerLines.left.visible=!1,r.pointerLines.right.visible=!0,r.pointerLines.left.setMaterial({color:new THREE__namespace.Vector3(1,1,1)}),r.pointerLines.left.points.material.depthTest=!1,r.pointerLines.right.setMaterial({color:new THREE__namespace.Vector3(1,1,1)}),r.pointerLines.right.points.material.depthTest=!1,r.controllerWrappers=[new THREE__namespace.Group,new THREE__namespace.Group];var o=r.xrManager.getController(0);r.controllerWrappers[0].add(o);var s=r.xrManager.getController(1);r.controllerWrappers[1].add(s);var u=new XRControllerModelFactory;u.gltfLoader={load:function(c,f){internalFetcher.ajax(c,{responseType:"arraybuffer"}).then(function(d){var p;return parseGltf(d.body,{resourcePath:c.slice(0,c.lastIndexOf("/")+1),search:(p=c.split("?")[1])!==null&&p!==void 0?p:"",fetcher:internalFetcher})}).then(function(d){return f(d)})}},(r.xrManager.machineType==="Oculus"||r.xrManager.machineType==="Pico")&&r.scene.add(r.pointerLines.left,r.pointerLines.right,r.controllerWrappers[0],r.controllerWrappers[1]),r.panoResources={},r.panoResources[r.locationMotion.keyframes[0].key=r.locationMotion.keyframes[1].key=createUuid()]={panoId:panoStringify(r.currentPano),leftPanoPicture:null,position:r.camera.pose.offset.clone(),effect:"fade",fixCameraTransform:new THREE__namespace.Matrix4},r.parallaxCameraMatrixs=[];var l=AnimationFrameLoop.shared.getContext();return l?(r.on("xr.session.end",function(){r.scene.remove(r.pointerLines.left,r.pointerLines.right)}),r.xrManager.setSession(l),r.on("xr.session.start",function(){var c=r.xrManager.getControllerGrip(0);c.add(u.createControllerModel(c)),r.controllerWrappers[0].add(c);var f=r.xrManager.getControllerGrip(1);f.add(u.createControllerModel(f)),r.controllerWrappers[1].add(f)}),r.xrHandleState={LeftAxesUp:{touchStartTime:0,touchStart:!1},LeftAxesDown:{touchStartTime:0,touchStart:!1},LeftAxesLeft:{touchStartTime:0,touchStart:!1},LeftAxesRight:{touchStartTime:0,touchStart:!1},LeftTrigger:{touchStartTime:0,touchStart:!1},LeftPinch:{touchStartTime:0,touchStart:!1},RightAxesUp:{touchStartTime:0,touchStart:!1},RightAxesDown:{touchStartTime:0,touchStart:!1},RightAxesLeft:{touchStartTime:0,touchStart:!1},RightAxesRight:{touchStartTime:0,touchStart:!1},RightTrigger:{touchStartTime:0,touchStart:!1},RightPinch:{touchStartTime:0,touchStart:!1},Y:{touchStartTime:0,touchStart:!1},X:{touchStartTime:0,touchStart:!1},A:{touchStartTime:0,touchStart:!1},B:{touchStartTime:0,touchStart:!1}},r.xrManager.machineType==="VP"&&r.initHandEvent(),r):(console.error("获取session失败,请退出重试"),r)}return t.parseArgs=function(e){if(e instanceof t)return e;var r=__assign(__assign({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return n.parseArgs.call(this,r)},t.initAnimationEndState=function(e){var r=this.parseArgs(e),o=n.initAnimationEndState.call(this,r);return __assign(__assign({},o),{mode:"XRPanorama"})},t.prototype.updateConfiguration=function(e){return n.prototype.updateConfiguration.call(this,__assign(__assign({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2}))},t.prototype.moveToPano=function(e,r,o){var s=this,u,l,c,f,d=(u=r.effect)!==null&&u!==void 0?u:"fade";this.userAction=o,this.stopMomentumMovement();var p=this.works.getResolvedObserver(e);if(!p)throw new Error("Invalid PanoIndex");var v=getImageSizeFromURL(p.images.up),A=this.imageOptions.size;typeof A=="undefined"&&p&&v&&(A=Number(v)),typeof A=="undefined"&&(A=2048);var g=this.imageOptions.transform,h=function(M,w){return mapPanoResource(applyImageURLOptions(M,g,w))},y=__assign({key:"pano.".concat(p.panoId)},pick(this.imageOptions,["format","size","quality"])),m=p.images,E=(c=(l=p.images.tiles)===null||l===void 0?void 0:l.filter(function(M){return M.size>A}))!==null&&c!==void 0?c:null,b="pano:"+jsonHash([m,y,g]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===b)return;var T=this.pendingTextureTask.panoId;(f=this.panoMeshes[T])===null||f===void 0||f.setProgress(0),this.emit("pano.texture.abort",createEvent("pano.texture.abort",{error:null,progress:0,meta:null,pano:p.pano}))}var _=this.models.getMaterial()||{},R=_.pano0,S=_.pano1,C;if((R==null?void 0:R.map.name)===b?C=R:(S==null?void 0:S.map.name)===b&&(C=S),C){var B={panoId:p.panoId,effect:d,leftPanoPicture:{zoom:1,map:C.map,luminanceMap:C.luminanceMap,matrix:new THREE__namespace.Matrix4().compose(p.position,p.quaternion,PANO_TEXTURE_SCALE)},position:p.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};this.doMoveToPano(p.pano,B,r);return}var L="move-to-pano-"+p.panoId;this.pending.add(L),this.pendingTextureTask={panoId:p.panoId,hash:b,onLoad:function(M){if(s.pending.delete(L),s.destroyed)M.body.dispose();else{M.body.name=b;var w={panoId:p.panoId,effect:d,leftPanoPicture:{zoom:1,map:M.body,luminanceMap:null,matrix:new THREE__namespace.Matrix4().compose(p.position,p.quaternion,PANO_TEXTURE_SCALE)},position:p.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};s.doMoveToPano(p.pano,w,r)}},onError:function(M){s.pending.delete(L);var w=__assign(__assign(__assign({},p.pano),{mode:s.mode}),clonePose(s.camera.pose));s.emit("pano.error",createEvent("pano.error",{error:M,userAction:s.userAction,options:r,prevPano:s.currentPano,progress:0,state:w})),s.emit("pano.cancel",createEvent("pano.cancel",{error:null,userAction:s.userAction,options:r,prevPano:s.currentPano,progress:0,state:w})),r.moveCancelCallback&&r.moveCancelCallback()}},Promise.all([this.tileLevelForFov&&E&&E.length?this.textureLoader.loadTiledCubeTexture(m,E,{tileMaxLevel:this.tiledCubeTextureLevel,imageURL:{transform:h,options:y},format:THREE__namespace.RGBAFormat,minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,generateMipmaps:!1,viaAjax:!0,fetcher:getFetcher(p.work)},void 0,void 0,function(M){var w,H;s.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:M,meta:null,pano:p.pano})),((w=s.pendingTextureTask)===null||w===void 0?void 0:w.hash)===b&&((H=s.panoMeshes[p.panoId])===null||H===void 0||H.setProgress(M))},this.renderer):this.textureLoader.loadCubeTexture(m,{imageURL:{transform:h,options:y},format:THREE__namespace.RGBAFormat,fetcher:getFetcher(p.work)},void 0,void 0,function(M){var w,H;((w=s.pendingTextureTask)===null||w===void 0?void 0:w.hash)===b&&((H=s.panoMeshes[p.panoId])===null||H===void 0||H.setProgress(M)),s.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:M,meta:null,pano:p.pano}))},this.renderer)]).then(function(M){var w,H,O=M[0];((w=s.pendingTextureTask)===null||w===void 0?void 0:w.hash)===b?(s.pendingTextureTask.onLoad(O),(H=s.panoMeshes[p.panoId])===null||H===void 0||H.setProgress(0),delete s.pendingTextureTask,s.emit("pano.texture.success",createEvent("pano.texture.success",{error:null,progress:1,meta:O.meta,pano:p.pano}))):O.body.dispose()}).catch(function(M){var w,H;((w=s.pendingTextureTask)===null||w===void 0?void 0:w.hash)===b&&(s.pendingTextureTask.onError(M),(H=s.panoMeshes[p.panoId])===null||H===void 0||H.setProgress(0),delete s.pendingTextureTask,s.emit("pano.texture.error",createEvent("pano.texture.error",{error:M,progress:0,meta:null,pano:p.pano})),s.emit("error",M))}),this.emit("pano.texture.load",createEvent("pano.texture.load",{error:null,progress:0,meta:null,pano:p.pano}))},t.prototype.doMoveToPano=function(e,r,o){var s=this,u,l,c,f,d,p,v,A,g,h;o===void 0&&(o={});var y=now(),m=createUuid();this.panoResources[m]=r;var E=1,b,T,_;if(this.locationMotion.ended){var R=this.locationMotion.getKeyFrameSegment(y);R[0];var S=R[1],C=this.locationMotion.value,B=this.panoResourceFromLocationMotionKeyframe(S).position,L=r.position;b=Math.max(B.distanceTo(L),E),T=[{key:S.key,progress:0,value:__assign(__assign({},C),{count:0})},{key:m,progress:1,value:{distance:0,count:1}}],_=0}else{var M=this.locationMotion.getKeyFrameSegment(y),w=M[0],S=M[1],C=this.locationMotion.value,H=this.panoResourceFromLocationMotionKeyframe(w).position,B=this.panoResourceFromLocationMotionKeyframe(S).position,L=r.position,O=S.value.count-C.count,I=Math.max(H.distanceTo(B),E)*O,N=Math.max(B.distanceTo(L),E);b=I+N,T=[{key:w.key,progress:0,value:__assign({},C)},{key:S.key,progress:I/b,value:S.value},{key:m,progress:1,value:{count:S.value.count+1,distance:0}}];var k=this.locationMotionKeyframesLength(this.locationMotion.keyframes),U=this.locationMotionKeyframesLength(T);_=this.locationMotion.getProgressVelocity(y)*k/U}var D=r.effect==="instant"?0:this.calculateMovingDuration(o.duration,r.effect==="fly"?b:0),q={longitude:o.longitude,latitude:o.latitude,fov:o.fov},z=__assign(__assign({},e),{mode:this.mode,longitude:(u=q.longitude)!==null&&u!==void 0?u:this.camera.pose.longitude,latitude:(l=q.latitude)!==null&&l!==void 0?l:this.camera.pose.latitude,fov:(c=q.fov)!==null&&c!==void 0?c:this.camera.pose.fov,offset:r.position.clone(),distance:0}),Q=this.currentPano;if(this.emit("pano.moveTo",createEvent("pano.moveTo",{options:o,prevPano:Q,progress:0,state:z,userAction:this.userAction,error:null})),o.moveStartCallback&&o.moveStartCallback(z),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=noop$1,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),r.effect==="fly")this.cameraMotion.set(q,D).catch(noop$1);else{var G=coordinatesToVector({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude}),X=coordinatesToVector({longitude:(f=q.longitude)!==null&&f!==void 0?f:this.cameraMotion.value.longitude,latitude:(d=q.latitude)!==null&&d!==void 0?d:this.cameraMotion.value.latitude}),$=new THREE__namespace.Object3D;$.lookAt(G);var W=new THREE__namespace.Matrix4().makeRotationFromQuaternion($.quaternion);$.lookAt(X);var oe=new THREE__namespace.Matrix4().makeRotationFromQuaternion($.quaternion),ae=new THREE__namespace.Matrix4().getInverse(W).premultiply(oe),re=this.cameraMotion.value.fov,j=(p=q.fov)!==null&&p!==void 0?p:this.cameraMotion.value.fov,se=1;r.effect==="zoomin"?se=1.5:r.effect==="zoomout"&&(se=.4);for(var ie=j*se,ue=0;ue<T.length-1;ue++){var fe=T[ue].key;if(fe){var ne=this.panoResources[fe];ne&&(ne.fixCameraTransform.copy(ae),ne.leftPanoPicture&&(ne.leftPanoPicture.zoom=Math.tan(re/2/180*Math.PI)/Math.tan(ie/2/180*Math.PI)))}}this.cameraMotion.setKeyframes([{progress:0,value:{longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude,fov:this.cameraMotion.value.fov}},{progress:0,value:{longitude:(v=q.longitude)!==null&&v!==void 0?v:this.cameraMotion.value.longitude,latitude:(A=q.latitude)!==null&&A!==void 0?A:this.cameraMotion.value.latitude,fov:ie}},{progress:1,value:{longitude:(g=q.longitude)!==null&&g!==void 0?g:this.cameraMotion.value.longitude,latitude:(h=q.latitude)!==null&&h!==void 0?h:this.cameraMotion.value.latitude,fov:j}}],D).catch(noop$1)}var Te=this.locationMotion.setKeyframes(T,D,_);Te.then(function(){for(var _e,ve,Me,Z=0,te=s.models;Z<te.length;Z++){var K=te[Z];K.show()}var ye=__assign(__assign({},e),{mode:s.mode,longitude:s.camera.pose.longitude,latitude:s.camera.pose.latitude,fov:s.camera.pose.fov,offset:s.camera.pose.offset.clone(),distance:0});s.emit("pano.arrived",createEvent("pano.arrived",{options:o,prevPano:Q,progress:1,state:ye,userAction:s.userAction,error:null})),o.moveEndCallback&&o.moveEndCallback(ye);var de=s.works.getResolvedObserver(s.currentPano);if(de&&de.video&&s.videoTexture&&s.videoTexture.image instanceof HTMLVideoElement){var xe=ROTATE_Y_PI_MATRIX.clone().multiply((Me=(ve=(_e=s.models.getMaterial())===null||_e===void 0?void 0:_e.pano1)===null||ve===void 0?void 0:ve.matrix)!==null&&Me!==void 0?Me:new THREE__namespace.Matrix4).multiply(de.video.matrix),ge={map:s.videoTexture,size:de.video.size,matrix:xe,alpha:1},me=createUuid(),ce=s.videoTexture.image;ce.setAttribute("uuid",me),canplayVideo().then(function(he){he&&de.video&&ce.getAttribute("uuid")===me&&(ce.oncanplay=function(){ce.oncanplay=noop$1,ce.play()},ce.ontimeupdate=function(){ce.currentTime>.5&&(ce.ontimeupdate=noop$1,s.panoVideo.setMaterial(ge))},ce.src=de.video.source)}).catch(function(){ce.removeAttribute("uuid")})}},function(){s.emit("pano.cancel",createEvent("pano.cancel",{options:o,prevPano:Q,progress:0,state:z,userAction:s.userAction,error:null})),o.moveCancelCallback&&o.moveCancelCallback()})},t.prototype.checkSelectedPano=function(e){var r=this,o,s,u,l;this.stopMomentumMovement();var c=this.camera.getDirection(new THREE__namespace.Vector3).setY(0),f=null,d=this.works.getResolvedObserver(this.currentPano);if(!d)return null;var p=d.accessibleIds.filter(function(X){var $=panoParse(X);if(panoEqual($,r.currentPano))return!1;var W=r.works.getResolvedObserver($);return!W||W.position.distanceTo(r.camera.position)>r.maxAccessibleDistance?!1:W.loadable||W.active}),v=this.models.intersectRaycaster(e)[0];if(v){var A=arrayMin(p,function(X){var $=r.works.getResolvedObserver(X);if(!$)return 1/0;var W=$.standingPosition.clone();return W.distanceTo(v.point)},!0),g=A[0],h=A[1];g&&h<this.panoTapTriggerRadius&&(f=(o=this.works.getResolvedObserver(g))!==null&&o!==void 0?o:null)}if(isNil(f)){var y=this.getForwardObserverOrNot(e);y&&(f=y)}for(var m=0,E=this.locationMotion.keyframes;m<E.length;m++){var b=E[m],T=this.panoResourceFromLocationMotionKeyframe(b);if(!(b.progress<this.locationMotion.progress)&&f&&T.panoId===f.panoId){f=null;break}}if(isNil(f))return this.locationMotion.ended===!0&&this.cameraBounce(),null;if(f&&!f.active){var _=f.panoId;this.panoMeshes[_]&&(this.panoMeshes[_].setDisabled(!1),this.panoMeshes[_].setLoading(!0))}var R={};if(f){for(var S=Math.PI/6,C=Math.PI/12,B=new THREE__namespace.Vector3(0,1,0),L=f.position.clone().setY(0).sub(d.position.clone().setY(0)).normalize(),M=L.clone().applyAxisAngle(B,S),w=L.clone().applyAxisAngle(B,-S),H=[],O=[],I=[],N=0,k=f.accessibleIds;N<k.length;N++){var g=k[N],U=panoParse(g);if(!(panoEqual(U,this.currentPano)||panoEqual(U,f.pano))){var D=this.works.getResolvedObserver(g);if(D){var q=D.position.clone().sub(f.position).setY(0);L.angleTo(q)<S?I.push(q):M.angleTo(q)<S?H.push(q):w.angleTo(q)<S&&O.push(q)}}}var z=I.length>0?I:__spreadArray(__spreadArray([],H,!0),O,!0),Q=z.slice().sort(function(X,$){return X.angleTo(L)-$.angleTo(L)})[0];Q&&Q.angleTo(c)>C&&(R.longitude=Math.atan2(-Q.x,-Q.z))}this.cameraMotion.value.latitude<-Math.PI/4&&(R.latitude=clamp$1(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(R.fov=this.defaultFov);var G={workCode:f.pano.workCode,panoIndex:f.pano.panoIndex,mode:this.mode,longitude:(s=R.longitude)!==null&&s!==void 0?s:this.camera.pose.longitude,latitude:(u=R.latitude)!==null&&u!==void 0?u:this.camera.pose.latitude,fov:(l=R.fov)!==null&&l!==void 0?l:this.camera.pose.fov,distance:0,offset:f?f.position.clone():new THREE__namespace.Vector3};return this.emit("pano.select",createEvent("pano.select",{prevPano:this.currentPano,state:G,userAction:!0,options:R,progress:0,error:null})),f&&f.active?(this.emit("pano.request",createEvent("pano.request",{userAction:!0,prevPano:this.currentPano,progress:0,state:G,options:R,error:null})),f.pano):null},t.prototype.destroy=function(){n.prototype.destroy.call(this)},t.prototype.isReady=function(){return!1},t.prototype.updateCamera=function(e,r,o){return Promise.resolve()},t.prototype.updateCameraWithKeyframes=function(e,r,o){return Promise.resolve()},t.prototype.updateTime=function(e,r){for(var o=this,s,u,l,c,f,d,p,v,A=[],g=2;g<arguments.length;g++)A[g-2]=arguments[g];this.userAction=!0;var h={},y={},m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),E=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),b=!1;if(this.cameraMotion.ended===!1&&(this.cameraMotion.update(e),y.longitude=this.cameraMotion.value.longitude,y.latitude=this.cameraMotion.value.latitude,y.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended===!1&&(this.modelAlphaMotion.update(e),h.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended===!1&&(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended===!1){this.locationMotion.update(e);var T=this.locationMotion.getKeyFrameSegment(e),_=T[0],R=T[1],S=this.panoResourceFromLocationMotionKeyframe(_),C=this.panoResourceFromLocationMotionKeyframe(R),B=new THREE__namespace.Vector3().copy(S.position),L=new THREE__namespace.Vector3().copy(C.position),M=this.locationMotion.value.count-R.value.count+1;h.progress=M,C.leftPanoPicture&&(M<1?S.leftPanoPicture&&(h.pano0=S.leftPanoPicture):h.pano0=C.leftPanoPicture,h.pano1=C.leftPanoPicture),C.effect==="montage"?h.transition="BLACK":C.effect==="spread"?h.transition="SPREAD":h.transition="FADE",(C.effect==="zoomin"||C.effect==="zoomout")&&(h.progress=Math.pow(M,3)),M<1&&C.effect!=="fly"&&(h.pano0&&S.leftPanoPicture&&(h.pano0={map:h.pano0.map,zoom:h.pano0.zoom,luminanceMap:h.pano0.luminanceMap,matrix:S.leftPanoPicture.matrix.clone().setPosition(C.position)}),B.copy(L),b=!0),y.distance=this.locationMotion.value.distance,y.offset=new THREE__namespace.Vector3(B.x+(L.x-B.x)*M,B.y+(L.y-B.y)*M,B.z+(L.z-B.z)*M);for(var w=[],H=[],O=0,I=this.locationMotion.keyframes;O<I.length;O++){var N=I[O],k=N.key,U=N.progress;k!==void 0&&(w.push(k),U>this.locationMotion.progress&&H.push(k))}for(var D=0,q=Object.keys(this.panoResources);D<q.length;D++){var z=q[D];if(!(H.indexOf(z)>=0)){var Q=this.panoResources[z];if(Q.leftPanoPicture){var G=Q.leftPanoPicture.map;if(G){if(G===((s=h.pano0)===null||s===void 0?void 0:s.map)||G===((u=h.pano1)===null||u===void 0?void 0:u.map))continue;G instanceof TileCubeTextureTarget&&G.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(G.cubeRenderTarget),G.dispose(),Q.leftPanoPicture=null}}w.indexOf(z)>=0||delete this.panoResources[z]}}this.currentPano=panoParse(C.panoId),this.emit("pano.moving",createEvent("pano.moving",{userAction:this.userAction,prevPano:panoParse(m.panoId),state:__assign(__assign(__assign(__assign({},panoParse(E.panoId)),{mode:this.mode}),clonePose(this.camera.pose)),y),options:{},progress:this.locationMotion.progress,error:null}))}isEmptyObject(h)===!1&&(!((l=h.pano0)===null||l===void 0)&&l.map&&h.pano0.map instanceof TileCubeTextureTarget&&!h.pano0.map.cubeRenderTarget&&(h.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((c=h.pano1)===null||c===void 0)&&c.map&&h.pano1.map instanceof TileCubeTextureTarget&&!h.pano1.map.cubeRenderTarget&&(h.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),this.models.setMaterial(h)),isEmptyObject(y)===!1&&this.setCamera(y);var X=this.works.getResolvedObserver(this.currentPano),$=A[1];if(!$){console.error("xrFrame丢失,请重试");return}if(!this.xrManager.session){console.error("session丢失,请重试");return}var W=this.xrManager.referenceSpace;if(W){var oe=this.xrManager.cameraVR,ae=this.xrManager.cameraL,re=this.xrManager.cameraR,j=[ae,re],se=$.getViewerPose(W),ie=new THREE__namespace.Vector3(0,0,0);if(se){var ue;ue=this.xrManager.session.renderState.baseLayer;var fe=se.views;if(!ue){console.error("no layer found");return}this.renderer.setFramebuffer(ue.framebuffer);var ne=!1;fe.length!==oe.cameras.length&&(oe.cameras.length=0,ne=!0),this.parallaxCameraMatrixs=[];var Te=new THREE__namespace.Vector3,_e=new THREE__namespace.Vector3;new THREE__namespace.Matrix4().fromArray(fe[0].transform.matrix).decompose(Te,new THREE__namespace.Quaternion,new THREE__namespace.Vector3),new THREE__namespace.Matrix4().fromArray(fe[1].transform.matrix).decompose(_e,new THREE__namespace.Quaternion,new THREE__namespace.Vector3),_e.clone().sub(Te).normalize();var ve=new THREE__namespace.Vector3,Me=new THREE__namespace.Quaternion,Z=new THREE__namespace.Vector3;this.camera.matrix.decompose(ve,Me,Z);for(var te=0;te<fe.length;te++){var K=fe[te],ye=ue.getViewport(K),de=j[te];de.matrix.fromArray(K.transform.matrix);var xe=new THREE__namespace.Vector3,ge=new THREE__namespace.Quaternion,me=new THREE__namespace.Vector3;de.matrix.decompose(xe,ge,me),ie.copy(ve),de.position.copy(ve),de.quaternion.copy(ge),de.scale.copy(me),de.updateMatrix(),de.projectionMatrix.fromArray(K.projectionMatrix),de.viewport.set(ye.x,ye.y,ye.width,ye.height),ne===!0&&oe.cameras.push(de)}if(this.xrManager.session&&this.xrManager.session.inputSources){for(var te=0;te<this.xrManager.session.inputSources.length;te++)if(this.xrManager.session.inputSources[te]&&this.xrManager.session.inputSources[te].targetRayMode==="transient-pointer"){var ce=$.getPose(this.xrManager.session.inputSources[te].targetRaySpace,W);if(ce){var he=new THREE__namespace.Vector3(0,0,-1).applyQuaternion(ce.transform.orientation),ee=new THREE__namespace.Raycaster(this.camera.position,he);this.gazeRay=ee}}}if(this.xrManager.machineType==="Oculus"||this.xrManager.machineType==="Pico"){for(var pe=this.xrManager.session.inputSources,te=0;te<pe.length;te++){var Re=this.xrManager.controllers[te],we=pe[te];if(we){Re&&Re.update(we,$,W);var ee=this.xrManager.getController(te),Ue=new THREE__namespace.Vector3(0,1.2,0),be=ee.position.clone().add(ie).sub(Ue);we.handedness==="left"?this.xrControllerRay.left.set(be,new THREE__namespace.Vector3(0,0,-1).applyEuler(ee.rotation)):we.handedness==="right"&&this.xrControllerRay.right.set(be,new THREE__namespace.Vector3(0,0,-1).applyEuler(ee.rotation)),this.controllerWrappers[te].position.copy(new THREE__namespace.Vector3(0,0,0).add(ie).sub(Ue));var Ae=this.models.intersectRaycaster(this.xrControllerRay.right);if(Ae.length===0&&(Ae=this.xrControllerRay.right.intersectObject(this.boundingMesh,!0).map(function(vt){var gt;return __assign({floor:(gt=X==null?void 0:X.floorIndex)!==null&>!==void 0?gt:0},vt)})),Ae.length>=1&&Ae[0].face)if(we.handedness==="right"){var ze=this.xrControllerRay.right.intersectObject(this.xrCustomObjectsScene,!0),Ne=Ae[0].face.normal,Je=Ne.clone(),Ke=Ae[0].point.clone();this.intersectMesh.position.copy(Ke);var De=Ke.clone().add(Je);if(this.intersectMesh.lookAt(De),Math.abs(Ne.y)>.99){var Ye=this.camera.position.clone().sub(Ke);this.intersectMesh.rotation.z=-Math.atan2(Ye.z,Ye.x)}this.intersectMesh.visible=!0,this.needsRender=!0,ze.length>0?(this.pointerLines.right.setPoints(be,ze[0].point),this.pointerLines.right.points.visible=!0,this.intersectMesh.visible=!1):(this.pointerLines.right.points.visible=!1,this.pointerLines.right.setPoints(be,Ae[0].point));var Ve=Ae[0],nt=createEvent("intersect.update",{raycaster:(f=this.xrControllerRay.right)!==null&&f!==void 0?f:null,intersection:Ve!=null?Ve:null,object:this.intersectMesh});if(this.emit("intersect.update",nt),nt.defaultPrevented){this.hideIntersectMesh();return}}else this.pointerLines.left.setPoints(be,Ae[0].point)}}this.updateControllerHelper(pe,e,r)}if(this.camera.pose.distance>.1||b)for(var qe=0,Qe=Object.keys(this.panoMeshes);qe<Qe.length;qe++){var Ie=Qe[qe],Se=this.panoMeshes[Ie];Se.setOpacity(0),Se.setCurrent(!1),Se.updateTime&&Se.updateTime(e,r),Se.visible=!1}else if(X){var Be=arrayMin(X.visibleIds,function(Oe){var ut=o.works.getResolvedObserver(Oe);return ut?X.standingPosition.distanceTo(ut.standingPosition):1/0},!0),Le=Be[1];Le=clamp$1(Le,2.5,1/0);for(var ot=X.visibleIds.concat(panoStringify(this.currentPano)),$e=this.getForwardObserverOrNot(),tt=this.camera.getDirection(new THREE__namespace.Vector3),Xe=0,rt=Object.keys(this.panoMeshes);Xe<rt.length;Xe++){var Ie=rt[Xe],Se=this.panoMeshes[Ie],Ge=this.works.getResolvedObserver(Ie);if(ot.indexOf(Ie)===-1)Se.setCurrent(!1),Se.setOpacity(0);else if(!Ge)Se.setCurrent(!1),Se.setOpacity(0);else if(!Ge.loadable&&!Ge.active)Se.setCurrent(!1),Se.setOpacity(0);else{var st=Se.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);Se.setCurrent(!Se.loading&&Se.progress===0&&$e!==null&&$e.panoId===Ie),Se.setOpacity(st<.01?0:clamp$1(Le/st*1.2,.65,.98));var ct=this.camera.position.clone().setY(Se.position.y),he=new THREE__namespace.Vector3().copy(Se.position).sub(ct).normalize();if(Ie===panoStringify(this.currentPano)){var je=clamp$1((.5-ct.distanceTo(Se.position))/.5,0,1);he.multiplyScalar(1-je).add(tt.clone().multiplyScalar(je))}he.length()>0&&Se.quaternion.setFromEuler(new THREE__namespace.Euler(0,Math.atan2(he.x,he.z),0))}Se.updateTime&&Se.updateTime(e,r)}}var Fe=function(){return 4}(),We=function(){var Oe=new THREE__namespace.PerspectiveCamera;Oe.applyMatrix4(oe.matrix),Oe.position.set(0,0,0);var ut=o.works.getResolvedObserver(E.panoId),vt=ut!=null?ut:X;vt&&Oe.quaternion.premultiply(vt.quaternion.clone().inverse()),Oe.updateProjectionMatrix(),Oe.updateMatrixWorld(!0);var gt=new THREE__namespace.Frustum().setFromProjectionMatrix(new THREE__namespace.Matrix4().multiplyMatrices(Oe.projectionMatrix,Oe.matrixWorldInverse));return gt}();E.panoId===panoStringify(this.currentPano)&&((d=E.leftPanoPicture)===null||d===void 0?void 0:d.map)instanceof TileCubeTextureTarget&&(E.leftPanoPicture.map.maxRequest=this.tileMaxRequest,E.leftPanoPicture.map.update(We,Fe),E.leftPanoPicture.map.needsRender===!0&&(this.needsRender=!0,this.modelSceneNeedsRender=!0));{var at=this.tiling.object.visible;if(this.initAnimationed){var Pe=E.panoId,Ce=this.works.getResolvedObserver(Pe);Ce?isSimilarVector3(this.camera.position,Ce.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==Pe&&this.tiling.cleanup(),this.tiling.panoId=Pe,this.tiling.setResource((v=(p=Ce.images)===null||p===void 0?void 0:p.tiles)!==null&&v!==void 0?v:[],this.enableIOSEDR&&Ce.images.luminance?Ce.images.luminance:null),this.tiling.setFetcher(getFetcher(Ce.work)),this.tiling.setRotation(Ce.quaternion),this.tiling.setPosition(Ce.position),this.tiling.maxRequest=this.tileMaxRequest,Fe>this.tiledCubeTextureLevel?this.tiling.update(We,Fe,e):this.tiling.update(We,0,e)):this.tiling.object.visible=!1:this.tiling.object.visible=!1}else this.tiling.object.visible=!1;at!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0,this.modelSceneNeedsRender=!0)}this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(e)}}},t.prototype.render=function(){var e=this.xrManager.getCamera(this.camera);this.renderer.render(this.modelScene,e),this.renderer.autoClearColor=!1,this.renderer.autoClearDepth=!1,this.renderer.render(this.scene,e),this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0},t.prototype.onPanGesture=function(){},t.prototype.onTapGesture=function(){},t.prototype.onPinchGesture=function(){},t.prototype.onMouseMove=function(){},t.prototype.onMouseOut=function(){},t.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},t.prototype.updateControllerHelper=function(e,r,o){var s=this.xrControllerRay.left,u=this.xrControllerRay.right;if(!(!e||e.length===0)){for(var l={buttons:{X:!1,Y:!1,LeftTrigger:!1,LeftPinch:!1,A:!1,B:!1,RightTrigger:!1,RightPinch:!1}},c=0;c<e.length;c++){var f=e[c].handedness,d=e[c].gamepad;switch(f){case"left":d.axes&&(this.emitHandleEvent(d.axes[2]===-1,"LeftAxesLeft",r),this.emitHandleEvent(d.axes[2]===1,"LeftAxesRight",r),this.emitHandleEvent(d.axes[3]===-1,"LeftAxesUp",r),this.emitHandleEvent(d.axes[3]===1,"LeftAxesDown",r)),d!=null&&d.buttons&&(d.buttons[4]&&this.emitHandleEvent(d.buttons[4].pressed,"X",r),d.buttons[5]&&this.emitHandleEvent(d.buttons[5].pressed,"Y",r),d.buttons[0]&&this.emitHandleEvent(d.buttons[0].pressed,"LeftTrigger",r),d.buttons[1]&&this.emitHandleEvent(d.buttons[1].pressed,"LeftPinch",r));var p={raycaster:s,axes:{up:d.axes&&d.axes[3]<0?Math.abs(d.axes[3]):0,down:d.axes&&d.axes[3]<0?0:Math.abs(d.axes[3]),left:d.axes&&d.axes[2]<0?Math.abs(d.axes[2]):0,right:d.axes&&d.axes[2]<0?0:Math.abs(d.axes[2])},deltaTime:o};l.buttons.X=d.buttons&&d.buttons[4]?d.buttons[4].pressed:!1,l.buttons.Y=d.buttons&&d.buttons[5]?d==null?void 0:d.buttons[5].pressed:!1,l.buttons.LeftTrigger=d.buttons&&d.buttons[0]?d==null?void 0:d.buttons[0].pressed:!1,l.buttons.LeftPinch=d.buttons&&d.buttons[1]?d==null?void 0:d.buttons[1].pressed:!1,l.left=p;break;case"right":d.axes&&(this.emitHandleEvent(d.axes[2]===-1,"RightAxesLeft",r),this.emitHandleEvent(d.axes[2]===1,"RightAxesRight",r),this.emitHandleEvent(d.axes[3]===-1,"RightAxesUp",r),this.emitHandleEvent(d.axes[3]===1,"RightAxesDown",r)),d.buttons&&(d.buttons[4]&&this.emitHandleEvent(d.buttons[4].pressed,"A",r),d.buttons[5]&&this.emitHandleEvent(d.buttons[5].pressed,"B",r),d.buttons[0]&&this.emitHandleEvent(d.buttons[0].pressed,"RightTrigger",r),d.buttons[1]&&this.emitHandleEvent(d.buttons[1].pressed,"RightPinch",r));var v={raycaster:u,axes:{up:d.axes&&d.axes[3]<0?Math.abs(d.axes[3]):0,down:d.axes&&d.axes[3]<0?0:Math.abs(d.axes[3]),left:d.axes&&d.axes[2]<0?Math.abs(d.axes[2]):0,right:d.axes&&d.axes[2]<0?0:Math.abs(d.axes[2])},deltaTime:o};l.right=v,l.buttons.A=d.buttons&&d.buttons[4]?d==null?void 0:d.buttons[4].pressed:!1,l.buttons.B=d.buttons&&d.buttons[5]?d==null?void 0:d.buttons[5].pressed:!1,l.buttons.RightTrigger=d.buttons&&d.buttons[0]?d==null?void 0:d.buttons[0].pressed:!1,l.buttons.RightPinch=d.buttons&&d.buttons[1]?d==null?void 0:d.buttons[1].pressed:!1;break}}this.emit("xr.controller.update",createEvent("xr.controller.update",l))}},t.prototype.emitHandleEvent=function(e,r,o){var s=this.xrControllerRay.left,u=this.xrControllerRay.right;if(e)if(this.xrHandleState[r].touchStart===!1)this.xrHandleState[r].touchStartTime=o,this.xrHandleState[r].touchStart=!0,this.emit("xr.gesture.buttonDown",createEvent("xr.gesture.buttonDown",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!1,isFirst:!0,controllers:{raycaster:{leftRay:s,rightRay:u}}}));else{var l=o-this.xrHandleState[r].touchStartTime;l>CONTROLLER_EVNET_DELTA_TIME&&this.emit("xr.gesture.press",createEvent("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!0,controllers:{raycaster:{leftRay:s,rightRay:u}}}))}else if(this.xrHandleState[r].touchStart===!0){this.emit("xr.gesture.buttonUp",createEvent("xr.gesture.buttonUp",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:s,rightRay:u}}}));var l=o-this.xrHandleState[r].touchStartTime;if(l<=CONTROLLER_EVNET_DELTA_TIME){var c=createEvent("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:s,rightRay:u}}}),f=this.emit("xr.gesture.tap",c);!f&&!c.defaultPrevented&&r==="RightTrigger"&&this.checkSelectedPano(this.xrControllerRay.right)}this.xrHandleState[r].touchStart=!1,this.xrHandleState[r].touchStartTime=0}},t.prototype.initHandEvent=function(){var e=this;if(!this.xrManager.session)throw new Error("初始化失败");this.xrManager.session.addEventListener("select",function(r){e.gazeRay&&e.checkSelectedPano(e.gazeRay)})},t}(PanoramaController),Controllers={Floorplan:FloorplanController,Topview:TopviewController,Panorama:PanoramaController,VRPanorama:VRPanoramaController,Model:ModelController,Mapview:MapviewController,XRPanorama:XRPanoramaController},controllersDefaultInitArgs={Floorplan:defaultFloorplanControllerCustomInitArgs,Topview:defaultTopviewControllerCustomInitArgs,Panorama:defaultPanoramaControllerCustomInitArgs,VRPanorama:defaultVRPanoramaControllerCustomInitArgs,Model:defaultModelControllerCustomInitArgs,Mapview:defaultMapviewControllerCustomInitArgs,XRPanorama:defaultXRPanoramaControllerInitArgs},PROXY_CONTROLLER_EVENT_NAMES=["gesture.pan","gesture.tap","gesture.dbltap","gesture.press","gesture.pinch","gesture.mousewheel","gesture.mousemove","gesture.momentum","initAnimation.start","initAnimation.end","camera.update","intersect.update","pano.select","pano.moveTo","pano.moving","pano.arrived","pano.cancel","pano.error","pano.texture.load","pano.texture.progress","pano.texture.success","pano.texture.error","pano.texture.abort","xr.session.start","xr.session.end","xr.gesture.tap","xr.gesture.press","xr.gesture.buttonUp","xr.gesture.buttonDown","xr.controller.update"];function initLegacyEvent(n){n.on("initAnimation.start",function(t){n.emit("initAnimationWillStart",t.state.panoIndex,t.state,t.userAction)}),n.on("initAnimation.end",function(t){n.emit("initAnimationEnded",t.state.panoIndex,t.state,t.userAction)}),n.on("gesture.pan",function(t){var e=!1;e=n.emit("wantsGesture","pan",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPanGesture",t.state,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","pan",t.pointers,t.isFinal),n.emit("panGesture",t.state,t.isFinal))}),n.on("gesture.tap",function(t){var e=!1;e=n.emit("wantsGesture","tap",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsTapGesture",t.center.raycaster,t.center.coords,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","tap",t.pointers,t.isFinal),n.emit("tapGesture",t.center.raycaster,t.center.coords,t.isFinal))}),n.on("gesture.dbltap",function(t){var e=!1;e=n.emit("wantsGesture","dbltap",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsDblTapGesture",t.center.raycaster,t.center.coords,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","dbltap",t.pointers,t.isFinal),n.emit("dblTapGesture",t.center.raycaster,t.center.coords,t.isFinal))}),n.on("gesture.press",function(t){var e=!1;e=n.emit("wantsGesture","press",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPressGesture",t.center.raycaster,t.center.coords,t.center.delta,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","press",t.pointers,t.isFinal),n.emit("pressGesture",t.center.raycaster,t.center.coords,t.center.delta,t.isFinal))}),n.on("gesture.pinch",function(t){var e=!1;e=n.emit("wantsGesture","pinch",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPinchGesture",t.scale,t.state.fov,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","pinch",t.pointers,t.isFinal),n.emit("pinchGesture",t.scale,t.state.fov,t.isFinal))}),n.on("gesture.mousewheel",function(t){var e=!1;e=n.emit("wantsGesture","mouseWheel",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsMouseWheel",t.center.delta,t.state.fov,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","mouseWheel",t.pointers,t.isFinal),n.emit("mouseWheel",t.center.delta,t.state.fov,t.isFinal))}),n.on("gesture.mousemove",function(t){var e=!1;e=n.emit("wantsGesture","mouseMove",t.pointers,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","mouseMove",t.pointers,t.isFinal),e=n.emit("wantsChangeCameraFov",t.state.fov),e&&t.preventDefault())}),n.on("gesture.momentum",function(t){var e=!1;e=n.emit("wantsInteriaPan",t.state),e&&t.preventDefault(),t.defaultPrevented||n.emit("interiaPan",t.state,t.isFinal)}),n.on("camera.update",function(t){n.emit("cameraFovUpdate",t.state.fov,t.userAction),n.emit("cameraDirectionUpdate",t.state,t.userAction);var e=coordinatesToVector(t.state);e.setLength(t.state.distance);var r=t.state.offset.clone().sub(e);n.emit("cameraPositionUpdate",r,t.userAction),n.emit("cameraUpdate",t.state,t.userAction)}),n.on("intersect.update",function(t){if(t.intersection){var e=!1;e=n.emit("wantsShowIntersectionOnModel",t.raycaster),e&&t.preventDefault(),t.defaultPrevented||n.emit("intersectionOnModelUpdate",t.intersection,t.object)}else n.emit("intersectionHidden")}),n.on("pano.request",function(t){var e=n.emit("wantsMoveToPano",t.state.panoIndex,t.options,t.userAction);e||(e=n.emit("wantsToMoveToPano",t.state.panoIndex,t.options,t.userAction)),e&&t.preventDefault(),t.defaultPrevented||n.emit("panoWillLoad",t.state.panoIndex)}),n.on("pano.select",function(t){n.emit("panoSelected",t.state.panoIndex)}),n.on("pano.moveTo",function(t){n.emit("panoLoaded",t.state.panoIndex),n.emit("moveToPano",t.state.panoIndex,t.userAction),n.emit("panoWillArrive",t.state.panoIndex,t.state,t.userAction)}),n.on("pano.moving",function(t){n.emit("movingToPano",t.state.panoIndex,t.prevPano.panoIndex,t.progress)}),n.on("pano.arrived",function(t){n.emit("panoArrived",t.state.panoIndex,t.state,t.userAction)}),n.on("pano.cancel",function(t){n.emit("moveToPanoCanceled",t.state.panoIndex)}),n.on("pano.error",function(t){n.emit("panoLoadError",t.error,t.state.panoIndex)}),n.on("pano.texture.load",function(t){n.emit("textureStartLoad",t.pano.panoIndex)}),n.on("pano.texture.success",function(t){n.emit("textureLoaded",t.pano.panoIndex,t.meta)}),n.on("pano.texture.error",function(t){n.emit("textureError",t.error,t.pano.panoIndex)}),n.on("pano.texture.abort",function(t){n.emit("textureAbort",t.pano.panoIndex)}),n.on("pano.texture.progress",function(t){n.emit("textureLoading",t.progress,t.pano.panoIndex)}),n.on("xr.session.start",function(t){n.emit("webXRSessionStart")}),n.on("xr.session.end",function(t){n.emit("webXRSessionEnd")}),n.on("xr.gesture.tap",function(t){n.emit("webXRControllerEvent","tap",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.press",function(t){n.emit("webXRControllerEvent","press",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.buttonUp",function(t){n.emit("webXRControllerEvent","buttonUp",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.buttonDown",function(t){n.emit("webXRControllerEvent","buttonDown",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.controller.update",function(t){n.emit("webXRControllerRayUpdate",{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0}),t.left&&n.emit("webXRAxesUpdate","left",{raycaster:{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0},axesState:{up:t.left.axes.up,down:t.left.axes.down,left:t.left.axes.left,right:t.left.axes.right},deltaTime:t.left.deltaTime}),t.right&&n.emit("webXRAxesUpdate","right",{raycaster:{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0},axesState:{up:t.right.axes.up,down:t.right.axes.down,left:t.right.axes.left,right:t.right.axes.right},deltaTime:t.right.deltaTime})}),n.on("works.request",function(t){n.emit("willLoad",t.input,t.works[0],t.state)}),n.on("works.load",function(t){n.emit("load",t.input,t.works[0],t.state)}),n.on("works.ready",function(t){n.emit("loaded",t.input,t.works[0])}),n.on("state.change",function(t){n.emit("stateChange",t.state,t.userAction)}),n.on("currentState.change",function(t){n.emit("currentStateChange",t.state,t.userAction)}),n.on("state.set",function(t){n.emit("setState",t.state)}),n.on("state.synced",function(t){n.emit("stateSynced",t.state)}),n.on("model.request",function(t){n.emit("modelWillLoad",t.work.model)}),n.on("model.error",function(t){n.emit("modelLoadError",t.error,t.model)}),n.on("model.load",function(t){n.emit("modelLoaded",t.model)}),n.on("model.changeShownFloor",function(t){n.emit("modelShownFloorChange",t.model.shownFloor,t.model.floorLength)}),n.on("render",function(t){n.emit("renderFrame",t.needsRender)}),n.on("mode.change.request",function(t){n.emit("wantsChangeMode",t.mode,t.prevMode)}),n.on("mode.change",function(t){n.emit("modeChange",t.mode,t.prevMode,t.state.panoIndex,t.state,t.userAction)}),n.on("helpers.visible",function(t){n.emit("helpersVisibleChange",t.object.visible)}),n.on("network.resource",function(t){n.emit("network",t.source,t.requestType,t.requestState,t.detail)})}function generateDefaultVideoElement(){if(typeof window!="undefined"){var n=document.createElement("video");n.loop=!0,n.autoplay=!0,n.playsInline=!0,n.muted=!0,n.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),n.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),n}else return{}}function initLights(n){var t=new THREE__namespace.Group;t.name="internalLights";{var e=new THREE__namespace.DirectionalLight(16777215,.3);e.position.copy(new THREE__namespace.Vector3(1,1,1)),t.add(e)}{var e=new THREE__namespace.DirectionalLight(16777215,.1);e.position.copy(new THREE__namespace.Vector3(-1,-1,-1)),t.add(e)}{var e=new THREE__namespace.DirectionalLight(16777215,.1);t.add(e)}{var e=new THREE__namespace.AmbientLight(16777215,.6);t.add(e)}n.add(t)}function parseKeyValue(n){for(var t,e,r={},o=n.split(/(\;|\,)/),s=0,u=o;s<u.length;s++){var l=u[s],c=l.split("="),f=(t=c[0])===null||t===void 0?void 0:t.trim(),d=(e=c[1])===null||e===void 0?void 0:e.trim();f&&d&&(r[f]=d)}return r}function getViewportScale(){var n;if(typeof document!="undefined")for(var t=document.getElementsByTagName("meta"),e=0;e<t.length;e++){var r=t[e];if(r.getAttribute("name")==="viewport"){var o=parseKeyValue((n=r.getAttribute("content"))!==null&&n!==void 0?n:""),s=Number(o["initial-scale"]);if(!isNaN(s))return s}}return 1}const textureURL="data:image/png;base64,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";var imageSize=[351,63],imageOffset=[20,20],vertices=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),uvs=new Float32Array([0,0,1,0,0,1,1,1]),index=new Uint8Array([0,1,2,1,3,2]),geometry=new THREE__namespace.BufferGeometry;geometry.setAttribute("position",new THREE__namespace.BufferAttribute(vertices,3));geometry.setAttribute("uv",new THREE__namespace.BufferAttribute(uvs,2));geometry.setIndex(new THREE__namespace.BufferAttribute(index,1));var material=new THREE__namespace.MeshBasicMaterial({transparent:!0,depthTest:!1,depthWrite:!1,stencilWrite:!1,fog:!1}),mesh=new THREE__namespace.Mesh(geometry,material);mesh.matrixAutoUpdate=!1;var scene=new THREE__namespace.Scene;scene.add(mesh);scene.matrixAutoUpdate=!1;var camera=new THREE__namespace.OrthographicCamera(-.5,.5,.5,-.5,.1,1);camera.position.set(0,0,.5);camera.lookAt(0,0,0);camera.updateMatrixWorld(!0);camera.matrixAutoUpdate=!1;var prevViewport=new THREE__namespace.Vector4,prevScissor=new THREE__namespace.Vector4;function renderPoweredByRealsee(n){if(material.map){var r=n.getViewport(prevViewport),o=n.getScissor(prevScissor),s=n.getScissorTest(),u=n.autoClear,l=o.x+imageOffset[0]/3,c=o.y+imageOffset[1]/3,f=imageSize[0]/3,d=imageSize[1]/3;n.setViewport(l,c,f,d),n.setScissor(l,c,f,d),n.setScissorTest(!0),n.autoClear=!1,n.render(scene,camera),n.setViewport(r),n.setScissor(o),n.setScissorTest(s),n.autoClear=u}else{var t=new THREE__namespace.Texture,e=new Image;e.onload=function(){t.image=e,t.wrapS=THREE__namespace.ClampToEdgeWrapping,t.wrapT=THREE__namespace.ClampToEdgeWrapping,t.minFilter=THREE__namespace.LinearFilter,t.needsUpdate=!0,t.generateMipmaps=!1,material.needsUpdate=!0,e.onload=noop$1},e.src=textureURL,material.map=t}}var DEFAULT_MODE_CHANGE_DURATION=800,DEFAULT_CAMERA_FOV=90,DEFAULT_REQUEST_PROXY=function(n){return n.replace("//vrlab-public.ljcdn.com/","//vr-public.realsee-cdn.cn/").replace("//vrlab-image4.ljcdn.com/","//vr-image-4.realsee-cdn.cn/").replace("//vrlab-image3.ljcdn.com/","//vr-image-3.realsee-cdn.cn/").replace("//vrlab-image2.ljcdn.com/","//vr-image-2.realsee-cdn.cn/").replace("//vrlab-image1.ljcdn.com/","//vr-image-1.realsee-cdn.cn/")},sharedVector2=new THREE__namespace.Vector2,sharedSphere=new THREE__namespace.Sphere,sharedFrustum=new THREE__namespace.Frustum,sharedProjScreenMatrix=new THREE__namespace.Matrix4,clockForMixer=new WeakMap,worksMap=new WeakMap,emptyWorks=createWorks([]);new Scene;var Five=function(n){__extends(t,n);function t(e){e===void 0&&(e={});var r,o,s,u,l,c,f,d,p,v,A,g,h=n.call(this)||this;if(h.ident=createUuid(),typeof window!="undefined"&&(__FIVE_DEBUG__.instances[h.ident]=h),h.renderSwitch01=0,h.currentMode="Panorama",h.pano={workCode:"",panoIndex:0},h.needsRender=!1,h.modelSceneNeedsRender=!1,h.onlyRenderIfNeeds=(r=e.onlyRenderIfNeeds)!==null&&r!==void 0?r:!0,h.imageOptions=__assign({},(o=e.imageOptions)!==null&&o!==void 0?o:{}),h.textureOptions=__assign({},(s=e.textureOptions)!==null&&s!==void 0?s:{}),h.poweredByRealsee=(u=e.poweredByRealsee)!==null&&u!==void 0?u:!0,h.extraElements=[],h.controllerInits={Panorama:Object.assign({},e.panorama),Model:Object.assign({},e.model),Floorplan:Object.assign({},e.floorplan),Topview:Object.assign({},e.topview),Mapview:Object.assign({},e.mapview),VRPanorama:Object.assign({},e.vrPanorama),XRPanorama:Object.assign({},e.xrPanorama)},h.fps={testCount:0,testTime:now()},h.info=null,h.modeChangeDuration=(l=e.modeChangeDuration)!==null&&l!==void 0?l:DEFAULT_MODE_CHANGE_DURATION,h.enableWheel=(c=e.enableWheel)!==null&&c!==void 0?c:!0,typeof window!="undefined")if("renderer"in e)e.renderer instanceof InternalWebGLRenderer&&h.throwError(new Error("cannot render a internal renderer")),h.renderer=e.renderer;else try{h.renderer=new InternalWebGLRenderer({preserveDrawingBuffer:e.preserveDrawingBuffer,backgroundColor:e.backgroundColor,backgroundAlpha:e.backgroundAlpha,antialias:e.antialias,webgl2:e.webgl2,logarithmicDepthBuffer:e.logarithmicDepthBuffer,precision:e.precision,powerPreference:e.powerPreference});var y=getViewportScale();h.renderer.setPixelRatio(y===1?window.devicePixelRatio:1),h.renderer.setSize(512,512)}catch(M){M instanceof Error&&h.throwError(M)}h.getPixelsRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{encoding:(d=(f=h.renderer)===null||f===void 0?void 0:f.outputEncoding)!==null&&d!==void 0?d:THREE__namespace.sRGBEncoding,generateMipmaps:!1});var m=new THREE__namespace.DepthTexture(1,1);m.generateMipmaps=!1,m.format=THREE__namespace.DepthStencilFormat,m.type=THREE__namespace.UnsignedInt248Type,h.modelRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{encoding:(v=(p=h.renderer)===null||p===void 0?void 0:p.outputEncoding)!==null&&v!==void 0?v:THREE__namespace.sRGBEncoding,depthTexture:m,generateMipmaps:!1,depthBuffer:!0,stencilBuffer:!0}),h.scissor=Object.assign({left:0,bottom:0,width:1,height:1},e.scissor),h.camera=new Camera(DEFAULT_CAMERA_FOV),h.scene=new Scene,h.xrCustomObjectsScene=new THREE__namespace.Scene,h.scene.add(h.xrCustomObjectsScene),h.scene.matrixAutoUpdate=!1,h.lastLoadWorkTask=Promise.resolve(),h.requestProxy=(A=e.requestProxy)!==null&&A!==void 0?A:DEFAULT_REQUEST_PROXY,h.networkSubscribe=new NetworkSubscribe,h.networkSubscribe.on("network",function(M,w,H,O){var I;h.emit("network.resource",createEvent("network.resource",{source:M,requestType:w,requestState:H,detail:O})),(I=h.analysis)===null||I===void 0||I.network(h.works,M,w,H,O)}),h.boundingMesh=generateBoundingMesh(new THREE__namespace.Box3(new THREE__namespace.Vector3(-.5,-.5,-.5),new THREE__namespace.Vector3(.5,.5,.5))),h.boundingMesh.name="bounding",h.models=createModels(),h.models.push(new Model),h.lastModels=createModels(),h.lastWorks=createWorks([]),h.readyCallbacks=[],h.syncingState=!1,h.helperGroup=new THREE__namespace.Group,h.helperGroup.name="helper",h.helperGroup.matrixAutoUpdate=!1,h.scene.add(h.helperGroup),h.modelGroup=new THREE__namespace.Group,h.modelGroup.visible=!1,h.modelGroup.name="model",h.modelGroup.matrixAutoUpdate=!1,h.modelScene=new THREE__namespace.Scene,h.modelScene.add(h.modelGroup),h.modelScene.add(h.boundingMesh),h.modelScene.matrixAutoUpdate=!1,h.videoTexture=new THREE__namespace.VideoTexture(e.videoInstance||generateDefaultVideoElement()),initLights(h.scene),initLights(h.modelScene),h.state={mode:h.currentMode,workCode:h.pano.workCode,panoIndex:h.pano.panoIndex,longitude:h.camera.pose.longitude,latitude:h.camera.pose.latitude,fov:h.camera.pose.fov,offset:h.camera.pose.offset.clone(),distance:h.camera.pose.distance},h.stateSynced=!1,h._enablePostProcessing=!1,h._enableIOSEDR=!1,h._enableEDL=!1,h._enableHQ=!1,h.destroyed=!1,h.paused=!0,typeof window!="undefined"&&(e.play!==!1&&h.play(),h.stopAnimationLoop=AnimationFrameLoop.shared.add(function(M,w){for(var H=[],O=2;O<arguments.length;O++)H[O-2]=arguments[O];h.updateTime.apply(h,__spreadArray([M,w],H,!1))},!1,0,10));var E=function(){typeof document!="undefined"&&document.fullscreenElement===null&&h.currentMode==="VRPanorama"&&h.controller.emit("vr.requestExit",createEvent("vr.requestExit",{}))},b=function(){h.needsRender=!0,h.modelSceneNeedsRender=!0};if(typeof document!="undefined"&&document.addEventListener("fullscreenchange",E,!1),h.renderer&&h.renderer.domElement.addEventListener("webglcontextrestored",b,!1),h.removeEventListeners=function(){typeof document!="undefined"&&document.removeEventListener("fullscreenchange",E,!1),h.renderer&&h.renderer.domElement.removeEventListener("webglcontextrestored",b,!1)},h.plugins={},e.plugins&&e.plugins.length)for(var T=0,_=e.plugins;T<_.length;T++){var R=_[T];if(typeof R=="function")R(h);else if(Array.isArray(R)){var S=R[0],C=R[1],B=R[2];if(typeof S=="function"){var L=S(h,B);typeof C=="string"&&(h.plugins[C]?h.throwError(new Error("plugin name ".concat(C," is exists."))):h.plugins[C]=L)}}}return h.gpuPickingRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{generateMipmaps:!1}),h.meshReplaceMaterialMap=new Map,h.meshOriginMaterialMap=new Map,initLegacyEvent(h),h.enableLayeringRendering=(g=e.enableLayeringRendering)!==null&&g!==void 0?g:!1,h}return Object.defineProperty(t,"version",{get:function(){return"6.4.0-alpha.38"},enumerable:!1,configurable:!0}),Object.defineProperty(t,"dracoPath",{get:function(){return draco.decoderPath},set:function(e){draco.setDecoderPath(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t,"ktx2Path",{get:function(){return ktx2.transcoderPath},set:function(e){ktx2.setTranscoderPath(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"panoIndex",{get:function(){return this.pano.panoIndex},enumerable:!1,configurable:!0}),t.prototype.getGPUPicking=function(e,r,o,s,u){var l=this;if(s===void 0&&(s=1),u===void 0&&(u=new THREE__namespace.Vector3(0,0,0)),!this.renderer)throw new Error("renderer is not initialized.");var c=this.models.getMaterial(),f=c.constantColor,d=c.colorStyle;this.models.setMaterial({colorStyle:"CONSTANT",constantColor:u}),this.scene.traverse(function(g){if(!(!(g instanceof THREE__namespace.Mesh)||g instanceof PBMMesh||g instanceof PBMSkinnedMesh)){var h=Object.keys(o).filter(function(m){return m===g.uuid})[0];if(h)if(l.meshOriginMaterialMap.set(h,g.material),l.meshReplaceMaterialMap.get(h))g.material=l.meshReplaceMaterialMap.get(h);else{var y=new THREE__namespace.ShaderMaterial({uniforms:{color:{value:o[h]}},vertexShader:`
|
|
2169
|
+
`},LineMaterial=function(n){__extends(t,n);function t(e){var r=n.call(this,{uniforms:THREE__namespace.UniformsUtils.clone(lineShader.uniforms),vertexShader:lineShader.vertexShader,fragmentShader:lineShader.fragmentShader,clipping:!0})||this;return r.type="LineMaterial",r.dashed=!1,Object.defineProperties(r,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(o){this.uniforms.diffuse.value=o}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(o){this.uniforms.linewidth.value=o}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(o){this.uniforms.dashScale.value=o}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(o){this.uniforms.dashSize.value=o}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(o){this.uniforms.gapSize.value=o}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(o){this.uniforms.opacity.value=o}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(o){this.uniforms.resolution.value.copy(o)}}}),r.setValues(e),r}return t}(THREE__namespace.ShaderMaterial);Object.assign(LineMaterial.prototype,{isLineMaterial:!0});var LineSegments2=function(n){__extends(t,n);function t(e,r){var o=n.call(this)||this;return o.type="LineSegments2",o.geometry=e!==void 0?e:new LineSegmentsGeometry,o.material=r!==void 0?r:new LineMaterial({color:Math.random()*16777215}),o}return t.prototype.computeLineDistances=function(){for(var e=this.geometry,r=e.attributes.instanceStart,o=e.attributes.instanceEnd,s=new Float32Array(2*r.count),u=new THREE__namespace.Vector3,l=new THREE__namespace.Vector3,c=0,f=0,d=r.count;c<d;c++,f+=2)u.fromBufferAttribute(r,c),l.fromBufferAttribute(o,c),s[f]=f===0?0:s[f-1],s[f+1]=s[f]+u.distanceTo(l);var p=new THREE__namespace.InstancedInterleavedBuffer(s,2,1);return e.setAttribute("instanceDistanceStart",new THREE__namespace.InterleavedBufferAttribute(p,1,0)),e.setAttribute("instanceDistanceEnd",new THREE__namespace.InterleavedBufferAttribute(p,1,1)),this},t.prototype.raycast=function(e,r){e.camera===null&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2.');var o=e.ray,s=e.camera,u=s.projectionMatrix,l=this.geometry,c=this.material,f=c.resolution,d=c.linewidth,p=l.attributes.instanceStart,v=l.attributes.instanceEnd,A=new THREE__namespace.Vector4,g=new THREE__namespace.Vector4,h=new THREE__namespace.Vector4,y=new THREE__namespace.Vector3,m=new THREE__namespace.Matrix4,E=new THREE__namespace.Line3,b=new THREE__namespace.Vector3;o.at(1,h),h.w=1,h.applyMatrix4(s.matrixWorldInverse),h.applyMatrix4(u),h.multiplyScalar(1/h.w),h.x*=f.x/2,h.y*=f.y/2,h.z=0,y.copy(h);var T=this.matrixWorld;m.multiplyMatrices(s.matrixWorldInverse,T);for(var _=0,R=p.count;_<R;_++){A.fromBufferAttribute(p,_),g.fromBufferAttribute(v,_),A.w=1,g.w=1,A.applyMatrix4(m),g.applyMatrix4(m),A.applyMatrix4(u),g.applyMatrix4(u),A.multiplyScalar(1/A.w),g.multiplyScalar(1/g.w);var S=A.z<-1&&g.z<-1,C=A.z>1&&g.z>1;if(!(S||C)){A.x*=f.x/2,A.y*=f.y/2,g.x*=f.x/2,g.y*=f.y/2,E.start.copy(A),E.start.z=0,E.end.copy(g),E.end.z=0;var B=E.closestPointToPointParameter(y,!0);E.at(B,b);var L=THREE__namespace.MathUtils.lerp(A.z,g.z,B),M=L>=-1&&L<=1,w=y.distanceTo(b)<d*.5;if(M&&w){E.start.fromBufferAttribute(p,_),E.end.fromBufferAttribute(v,_),E.start.applyMatrix4(T),E.end.applyMatrix4(T);var H=new THREE__namespace.Vector3,O=new THREE__namespace.Vector3;o.distanceSqToSegment(E.start,E.end,O,H),r.push({point:O,pointOnLine:H,distance:o.origin.distanceTo(O),object:this,faceIndex:_})}}}},t}(THREE__namespace.Mesh);Object.assign(LineSegments2.prototype,{isLineSegments2:!0});var Line2=function(n){__extends(t,n);function t(e,r){var o=n.call(this,e,r)||this;return o.type="Line2",o}return t}(LineSegments2);Object.assign(Line2.prototype,{isLine2:!0});var LineGeometry=function(n){__extends(t,n);function t(){var e=n.call(this)||this;return e.type="LineGeometry",e}return t.prototype.setPositions=function(e){for(var r=e.length-3,o=new Float32Array(2*r),s=0;s<r;s+=3)o[2*s]=e[s],o[2*s+1]=e[s+1],o[2*s+2]=e[s+2],o[2*s+3]=e[s+3],o[2*s+4]=e[s+4],o[2*s+5]=e[s+5];return n.prototype.setPositions.call(this,o),this},t.prototype.setColors=function(e){for(var r=e.length-3,o=new Float32Array(2*r),s=0;s<r;s+=3)o[2*s]=e[s],o[2*s+1]=e[s+1],o[2*s+2]=e[s+2],o[2*s+3]=e[s+3],o[2*s+4]=e[s+4],o[2*s+5]=e[s+5];return n.prototype.setColors.call(this,o),this},t.prototype.fromLine=function(e){var r=e.geometry;if(r instanceof THREE__namespace.Geometry){var o=new THREE__namespace.BufferGeometry().fromGeometry(r);this.setPositions(o.attributes.position.array)}else r instanceof THREE__namespace.BufferGeometry&&this.setPositions(r.attributes.position.array);return this},t.prototype.copy=function(){return this},t}(LineSegmentsGeometry);Object.assign(LineGeometry.prototype,{isLineGeometry:!0});var circleImageURL="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==",DEFAULT_COLOR=14467195,POINT_SIZE=8,DEFAULT_LINEWIDTH=2,DEFAULT_DASHSCALE=20,sharedCircleTexture=null,FiveLine=function(n){__extends(t,n);function t(e,r){e===void 0&&(e=new THREE__namespace.Vector3),r===void 0&&(r=new THREE__namespace.Vector3);var o=n.call(this)||this;o.type="FiveLine",o.needsRender=!0;var s=new LineGeometry,u=new LineMaterial({color:DEFAULT_COLOR,linewidth:DEFAULT_LINEWIDTH,dashScale:DEFAULT_DASHSCALE,dashed:!1});o.line=new Line2(s,u);var l=new THREE__namespace.BufferGeometry,c=new THREE__namespace.PointsMaterial({color:DEFAULT_COLOR,size:POINT_SIZE,map:sharedCircleTexture||(sharedCircleTexture=new THREE__namespace.TextureLoader().load(circleImageURL)),sizeAttenuation:!1,transparent:!0});return o.points=new THREE__namespace.Points(l,c),o.points.renderOrder=11,o.points.frustumCulled=!1,o.setPoints(e,r),o.add(o.line,o.points),o}return Object.defineProperty(t,"version",{get:function(){return"6.4.0-alpha.39"},enumerable:!1,configurable:!0}),t.prototype.setPoints=function(e,r){var o=[].concat(e.toArray(),r.toArray());this.points.geometry.setAttribute("position",new THREE__namespace.BufferAttribute(new Float32Array(o),3)),this.line.geometry.setPositions(o),this.line.computeLineDistances(),this.needsRender=!0},t.prototype.getPoints=function(){var e=this.points.geometry.attributes.position.array;return[new THREE__namespace.Vector3(e[0],e[1],e[2]),new THREE__namespace.Vector3(e[3],e[4],e[5])]},t.prototype.setMaterial=function(e){var r=this.line.material;for(var o in e)if(e.hasOwnProperty(o)){var s=e[o];o==="dashed"?(r.dashed=s,s?r.defines.USE_DASH="":delete r.defines.USE_DASH,r.needsUpdate=!0):r[o]=e[o]}this.needsRender=!0},t.prototype.setResolution=function(e,r){var o=this.line.material.resolution;(o.x!==e||o.y!==r)&&(o.set(e,r),this.needsRender=!0)},t}(THREE__namespace.Object3D);Object.assign(FiveLine.prototype,{isFiveLine:!0});var Constants={Handedness:Object.freeze({NONE:"none",LEFT:"left",RIGHT:"right"}),ComponentState:Object.freeze({DEFAULT:"default",TOUCHED:"touched",PRESSED:"pressed"}),ComponentProperty:Object.freeze({BUTTON:"button",X_AXIS:"xAxis",Y_AXIS:"yAxis",STATE:"state"}),ComponentType:Object.freeze({TRIGGER:"trigger",SQUEEZE:"squeeze",TOUCHPAD:"touchpad",THUMBSTICK:"thumbstick",BUTTON:"button"}),ButtonTouchThreshold:.05,AxisTouchThreshold:.1,VisualResponseProperty:Object.freeze({TRANSFORM:"transform",VISIBILITY:"visibility"})};function fetchJsonFile(n){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,fetch(n)];case 1:if(t=e.sent(),t.ok)return[2,t.json()];throw new Error(t.statusText)}})})}function fetchProfilesList(n){return __awaiter(this,void 0,void 0,function(){var t,e;return __generator(this,function(r){switch(r.label){case 0:if(!n)throw new Error("No basePath supplied");return t="profilesList.json",[4,fetchJsonFile("".concat(n,"/").concat(t))];case 1:return e=r.sent(),[2,e]}})})}function fetchProfile(n,t){return __awaiter(this,arguments,void 0,function(e,r,o,s){var u,l,c,f,d,p;return o===void 0&&(o=null),s===void 0&&(s=!0),__generator(this,function(v){switch(v.label){case 0:if(!e)throw new Error("No xrInputSource supplied");if(!r)throw new Error("No basePath supplied");return[4,fetchProfilesList(r)];case 1:if(u=v.sent(),e.profiles.some(function(A){var g=u[A];return g&&(l={profileId:A,profilePath:"".concat(r,"/").concat(g.path),deprecated:!!g.deprecated}),!!l}),!l){if(!o)throw new Error("No matching profile name found");if(c=u[o],!c)throw new Error('No matching profile name found and default profile "'.concat(o,'" missing.'));l={profileId:o,profilePath:"".concat(r,"/").concat(c.path),deprecated:!!c.deprecated}}return[4,fetchJsonFile(l.profilePath)];case 2:if(f=v.sent(),s){if(p=void 0,p=f.layouts[e.handedness],!p)throw new Error("No matching handedness, ".concat(e.handedness,", in profile ").concat(l.profileId));p.assetPath&&(d=l.profilePath.replace("profile.json",p.assetPath))}return[2,{profile:f,assetPath:d}]}})})}var defaultComponentValues={xAxis:0,yAxis:0,button:0,state:Constants.ComponentState.DEFAULT};function normalizeAxes(n,t){n===void 0&&(n=0),t===void 0&&(t=0);var e=n,r=t,o=Math.sqrt(n*n+t*t);if(o>1){var s=Math.atan2(t,n);e=Math.cos(s),r=Math.sin(s)}var u={normalizedXAxis:e*.5+.5,normalizedYAxis:r*.5+.5};return u}var VisualResponse=function(){function n(t){this.componentProperty=t.componentProperty,this.states=t.states,this.valueNodeName=t.valueNodeName,this.valueNodeProperty=t.valueNodeProperty,this.valueNodeProperty===Constants.VisualResponseProperty.TRANSFORM&&(this.minNodeName=t.minNodeName,this.maxNodeName=t.maxNodeName),this.value=0,this.updateFromComponent(defaultComponentValues)}return n.prototype.updateFromComponent=function(t){var e=t.xAxis,r=t.yAxis,o=t.button,s=t.state,u=normalizeAxes(e,r),l=u.normalizedXAxis,c=u.normalizedYAxis;switch(this.componentProperty){case Constants.ComponentProperty.X_AXIS:this.value=this.states.includes(s)?l:.5;break;case Constants.ComponentProperty.Y_AXIS:this.value=this.states.includes(s)?c:.5;break;case Constants.ComponentProperty.BUTTON:this.value=this.states.includes(s)?o:0;break;case Constants.ComponentProperty.STATE:this.valueNodeProperty===Constants.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(s):this.value=this.states.includes(s)?1:0;break;default:throw new Error("Unexpected visualResponse componentProperty ".concat(this.componentProperty))}},n}(),Component=function(){function n(t,e){var r=this;if(!t||!e||!e.visualResponses||!e.gamepadIndices||Object.keys(e.gamepadIndices).length===0)throw new Error("Invalid arguments supplied");this.id=t,this.type=e.type,this.rootNodeName=e.rootNodeName,this.touchPointNodeName=e.touchPointNodeName,this.visualResponses={},Object.keys(e.visualResponses).forEach(function(o){var s=new VisualResponse(e.visualResponses[o]);r.visualResponses[o]=s}),this.gamepadIndices=Object.assign({},e.gamepadIndices),this.values={state:Constants.ComponentState.DEFAULT,button:this.gamepadIndices.button!==void 0?0:void 0,xAxis:this.gamepadIndices.xAxis!==void 0?0:void 0,yAxis:this.gamepadIndices.yAxis!==void 0?0:void 0}}return Object.defineProperty(n.prototype,"data",{get:function(){var t=__assign({id:this.id},this.values);return t},enumerable:!1,configurable:!0}),n.prototype.updateFromGamepad=function(t){var e=this;if(this.values.state=Constants.ComponentState.DEFAULT,this.gamepadIndices.button!==void 0&&t.buttons.length>this.gamepadIndices.button){var r=t.buttons[this.gamepadIndices.button];this.values.button=r.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,r.pressed||this.values.button===1?this.values.state=Constants.ComponentState.PRESSED:(r.touched||this.values.button>Constants.ButtonTouchThreshold)&&(this.values.state=Constants.ComponentState.TOUCHED)}this.gamepadIndices.xAxis!==void 0&&t.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=t.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===Constants.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>Constants.AxisTouchThreshold&&(this.values.state=Constants.ComponentState.TOUCHED)),this.gamepadIndices.yAxis!==void 0&&t.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=t.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===Constants.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>Constants.AxisTouchThreshold&&(this.values.state=Constants.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach(function(o){o.updateFromComponent(e.values)})},n}(),MotionController=function(){function n(t,e,r){var o=this;if(!t)throw new Error("No xrInputSource supplied");if(!e)throw new Error("No profile supplied");this.xrInputSource=t,this.assetUrl=r,this.id=e.profileId,this.layoutDescription=e.layouts[t.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach(function(s){var u=o.layoutDescription.components[s];o.components[s]=new Component(s,u)}),this.updateFromGamepad()}return Object.defineProperty(n.prototype,"gripSpace",{get:function(){return this.xrInputSource.gripSpace},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"targetRaySpace",{get:function(){return this.xrInputSource.targetRaySpace},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"data",{get:function(){var t=[];return Object.values(this.components).forEach(function(e){t.push(e.data)}),t},enumerable:!1,configurable:!0}),n.prototype.updateFromGamepad=function(){var t=this;Object.values(this.components).forEach(function(e){e.updateFromGamepad(t.xrInputSource.gamepad)})},n}(),DEFAULT_PROFILES_PATH="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",DEFAULT_PROFILE="generic-trigger",XRControllerModel=function(n){__extends(t,n);function t(){var e=n.call(this)||this;return e.motionController=null,e.envMap=null,e}return t.prototype.setEnvironmentMap=function(e){var r=this;return this.envMap==e?this:(this.envMap=e,this.traverse(function(o){o instanceof THREE__namespace.Mesh&&o.isMesh&&(o.material.envMap=r.envMap,o.material.needsUpdate=!0)}),this)},t.prototype.updateMatrixWorld=function(e){n.prototype.updateMatrixWorld.call(this,e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach(function(r){Object.values(r.visualResponses).forEach(function(o){var s=o.valueNode,u=o.minNode,l=o.maxNode,c=o.value,f=o.valueNodeProperty;s&&(f===Constants.VisualResponseProperty.VISIBILITY?s.visible=c:f===Constants.VisualResponseProperty.TRANSFORM&&(s.quaternion.copy(u.quaternion).slerp(l.quaternion,c),s.position.lerpVectors(u.position,l.position,c)))})}))},t}(THREE.Object3D);function findNodes(n,t){Object.values(n.components).forEach(function(e){var r=e.type,o=e.touchPointNodeName,s=e.visualResponses;if(r===Constants.ComponentType.TOUCHPAD)if(e.touchPointNode=t.getObjectByName(o),e.touchPointNode){var u=new THREE.SphereGeometry(.001),l=new THREE.MeshBasicMaterial({color:255}),c=new THREE.Mesh(u,l);e.touchPointNode.add(c)}else console.warn("Could not find touch dot, ".concat(e.touchPointNodeName,", in touchpad component ").concat(e.id));Object.values(s).forEach(function(f){var d=f.valueNodeName,p=f.minNodeName,v=f.maxNodeName,A=f.valueNodeProperty;if(A===Constants.VisualResponseProperty.TRANSFORM){if(f.minNode=t.getObjectByName(p),f.maxNode=t.getObjectByName(v),!f.minNode){console.warn("Could not find ".concat(p," in the model"));return}if(!f.maxNode){console.warn("Could not find ".concat(v," in the model"));return}}f.valueNode=t.getObjectByName(d),f.valueNode||console.warn("Could not find ".concat(d," in the model"))})})}function addAssetSceneToControllerModel(n,t){findNodes(n.motionController,t),n.envMap&&t.traverse(function(e){e instanceof THREE__namespace.Mesh&&e.isMesh&&(e.material.envMap=n.envMap,e.material.needsUpdate=!0)}),n.add(t)}var XRControllerModelFactory=function(){function n(t){t===void 0&&(t=null),this.gltfLoader=t,this.path=DEFAULT_PROFILES_PATH,this._assetCache={}}return n.prototype.createControllerModel=function(t){var e=this,r=new XRControllerModel,o=null;return t.addEventListener("connected",function(s){var u=s.data;u.targetRayMode!=="tracked-pointer"||!u.gamepad||fetchProfile(u,e.path,DEFAULT_PROFILE).then(function(l){var c=l.profile,f=l.assetPath;r.motionController=new MotionController(u,c,f);var d=e._assetCache[r.motionController.assetUrl];if(d)o=d.scene.clone(),addAssetSceneToControllerModel(r,o);else{if(!e.gltfLoader)throw new Error("GLTFLoader not set.");e.gltfLoader.load(r.motionController.assetUrl,function(p){e._assetCache[r.motionController.assetUrl]=p,o=p.scene.clone(),addAssetSceneToControllerModel(r,o)})}}).catch(function(l){console.warn(l)})}),t.addEventListener("disconnected",function(){r.motionController=null,r.remove(o),o=null}),r},n}(),defaultXRPanoramaControllerInitArgs=__assign({},omit(defaultPanoramaControllerCustomInitArgs,["maxLatitude","minLatitude"]));function mapPanoResource(n,t){return n}var CONTROLLER_EVNET_DELTA_TIME=300,ROTATE_Y_PI_MATRIX=new THREE__namespace.Matrix4().makeRotationAxis(new THREE__namespace.Vector3(0,1,0),Math.PI),PANO_TEXTURE_SCALE=new THREE__namespace.Vector3(-1,1,1),XRPanoramaController=function(n){__extends(t,n);function t(e){var r=n.call(this,e)||this;r.xrManager=new XRManager(r.renderer,r.renderer.getContext(),{onSessionStart:function(c){r.emit("xr.session.start",createEvent("xr.session.start",{session:c,machineType:r.xrManager.machineType}))},onSessionEnd:function(){r.emit("xr.session.end",createEvent("xr.session.end",{session:null,machineType:r.xrManager.machineType}))}}),r.xrControllerRay={left:new THREE__namespace.Raycaster,right:new THREE__namespace.Raycaster},r.xrControllerRay.left.params.Points={threshold:.1},r.xrControllerRay.right.params.Points={threshold:.1},r.gazeRay=null,r.pointerLines={left:new FiveLine,right:new FiveLine},r.pointerLines.left.visible=!1,r.pointerLines.right.visible=!0,r.pointerLines.left.setMaterial({color:new THREE__namespace.Vector3(1,1,1)}),r.pointerLines.left.points.material.depthTest=!1,r.pointerLines.right.setMaterial({color:new THREE__namespace.Vector3(1,1,1)}),r.pointerLines.right.points.material.depthTest=!1,r.controllerWrappers=[new THREE__namespace.Group,new THREE__namespace.Group];var o=r.xrManager.getController(0);r.controllerWrappers[0].add(o);var s=r.xrManager.getController(1);r.controllerWrappers[1].add(s);var u=new XRControllerModelFactory;u.gltfLoader={load:function(c,f){internalFetcher.ajax(c,{responseType:"arraybuffer"}).then(function(d){var p;return parseGltf(d.body,{resourcePath:c.slice(0,c.lastIndexOf("/")+1),search:(p=c.split("?")[1])!==null&&p!==void 0?p:"",fetcher:internalFetcher})}).then(function(d){return f(d)})}},(r.xrManager.machineType==="Oculus"||r.xrManager.machineType==="Pico")&&r.scene.add(r.pointerLines.left,r.pointerLines.right,r.controllerWrappers[0],r.controllerWrappers[1]),r.panoResources={},r.panoResources[r.locationMotion.keyframes[0].key=r.locationMotion.keyframes[1].key=createUuid()]={panoId:panoStringify(r.currentPano),leftPanoPicture:null,position:r.camera.pose.offset.clone(),effect:"fade",fixCameraTransform:new THREE__namespace.Matrix4},r.parallaxCameraMatrixs=[];var l=AnimationFrameLoop.shared.getContext();return l?(r.on("xr.session.end",function(){r.scene.remove(r.pointerLines.left,r.pointerLines.right)}),r.xrManager.setSession(l),r.on("xr.session.start",function(){var c=r.xrManager.getControllerGrip(0);c.add(u.createControllerModel(c)),r.controllerWrappers[0].add(c);var f=r.xrManager.getControllerGrip(1);f.add(u.createControllerModel(f)),r.controllerWrappers[1].add(f)}),r.xrHandleState={LeftAxesUp:{touchStartTime:0,touchStart:!1},LeftAxesDown:{touchStartTime:0,touchStart:!1},LeftAxesLeft:{touchStartTime:0,touchStart:!1},LeftAxesRight:{touchStartTime:0,touchStart:!1},LeftTrigger:{touchStartTime:0,touchStart:!1},LeftPinch:{touchStartTime:0,touchStart:!1},RightAxesUp:{touchStartTime:0,touchStart:!1},RightAxesDown:{touchStartTime:0,touchStart:!1},RightAxesLeft:{touchStartTime:0,touchStart:!1},RightAxesRight:{touchStartTime:0,touchStart:!1},RightTrigger:{touchStartTime:0,touchStart:!1},RightPinch:{touchStartTime:0,touchStart:!1},Y:{touchStartTime:0,touchStart:!1},X:{touchStartTime:0,touchStart:!1},A:{touchStartTime:0,touchStart:!1},B:{touchStartTime:0,touchStart:!1}},r.xrManager.machineType==="VP"&&r.initHandEvent(),r):(console.error("获取session失败,请退出重试"),r)}return t.parseArgs=function(e){if(e instanceof t)return e;var r=__assign(__assign({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return n.parseArgs.call(this,r)},t.initAnimationEndState=function(e){var r=this.parseArgs(e),o=n.initAnimationEndState.call(this,r);return __assign(__assign({},o),{mode:"XRPanorama"})},t.prototype.updateConfiguration=function(e){return n.prototype.updateConfiguration.call(this,__assign(__assign({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2}))},t.prototype.moveToPano=function(e,r,o){var s=this,u,l,c,f,d=(u=r.effect)!==null&&u!==void 0?u:"fade";this.userAction=o,this.stopMomentumMovement();var p=this.works.getResolvedObserver(e);if(!p)throw new Error("Invalid PanoIndex");var v=getImageSizeFromURL(p.images.up),A=this.imageOptions.size;typeof A=="undefined"&&p&&v&&(A=Number(v)),typeof A=="undefined"&&(A=2048);var g=this.imageOptions.transform,h=function(M,w){return mapPanoResource(applyImageURLOptions(M,g,w))},y=__assign({key:"pano.".concat(p.panoId)},pick(this.imageOptions,["format","size","quality"])),m=p.images,E=(c=(l=p.images.tiles)===null||l===void 0?void 0:l.filter(function(M){return M.size>A}))!==null&&c!==void 0?c:null,b="pano:"+jsonHash([m,y,g]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===b)return;var T=this.pendingTextureTask.panoId;(f=this.panoMeshes[T])===null||f===void 0||f.setProgress(0),this.emit("pano.texture.abort",createEvent("pano.texture.abort",{error:null,progress:0,meta:null,pano:p.pano}))}var _=this.models.getMaterial()||{},R=_.pano0,S=_.pano1,C;if((R==null?void 0:R.map.name)===b?C=R:(S==null?void 0:S.map.name)===b&&(C=S),C){var B={panoId:p.panoId,effect:d,leftPanoPicture:{zoom:1,map:C.map,luminanceMap:C.luminanceMap,matrix:new THREE__namespace.Matrix4().compose(p.position,p.quaternion,PANO_TEXTURE_SCALE)},position:p.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};this.doMoveToPano(p.pano,B,r);return}var L="move-to-pano-"+p.panoId;this.pending.add(L),this.pendingTextureTask={panoId:p.panoId,hash:b,onLoad:function(M){if(s.pending.delete(L),s.destroyed)M.body.dispose();else{M.body.name=b;var w={panoId:p.panoId,effect:d,leftPanoPicture:{zoom:1,map:M.body,luminanceMap:null,matrix:new THREE__namespace.Matrix4().compose(p.position,p.quaternion,PANO_TEXTURE_SCALE)},position:p.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};s.doMoveToPano(p.pano,w,r)}},onError:function(M){s.pending.delete(L);var w=__assign(__assign(__assign({},p.pano),{mode:s.mode}),clonePose(s.camera.pose));s.emit("pano.error",createEvent("pano.error",{error:M,userAction:s.userAction,options:r,prevPano:s.currentPano,progress:0,state:w})),s.emit("pano.cancel",createEvent("pano.cancel",{error:null,userAction:s.userAction,options:r,prevPano:s.currentPano,progress:0,state:w})),r.moveCancelCallback&&r.moveCancelCallback()}},Promise.all([this.tileLevelForFov&&E&&E.length?this.textureLoader.loadTiledCubeTexture(m,E,{tileMaxLevel:this.tiledCubeTextureLevel,imageURL:{transform:h,options:y},format:THREE__namespace.RGBAFormat,minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,generateMipmaps:!1,viaAjax:!0,fetcher:getFetcher(p.work)},void 0,void 0,function(M){var w,H;s.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:M,meta:null,pano:p.pano})),((w=s.pendingTextureTask)===null||w===void 0?void 0:w.hash)===b&&((H=s.panoMeshes[p.panoId])===null||H===void 0||H.setProgress(M))},this.renderer):this.textureLoader.loadCubeTexture(m,{imageURL:{transform:h,options:y},format:THREE__namespace.RGBAFormat,fetcher:getFetcher(p.work)},void 0,void 0,function(M){var w,H;((w=s.pendingTextureTask)===null||w===void 0?void 0:w.hash)===b&&((H=s.panoMeshes[p.panoId])===null||H===void 0||H.setProgress(M)),s.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:M,meta:null,pano:p.pano}))},this.renderer)]).then(function(M){var w,H,O=M[0];((w=s.pendingTextureTask)===null||w===void 0?void 0:w.hash)===b?(s.pendingTextureTask.onLoad(O),(H=s.panoMeshes[p.panoId])===null||H===void 0||H.setProgress(0),delete s.pendingTextureTask,s.emit("pano.texture.success",createEvent("pano.texture.success",{error:null,progress:1,meta:O.meta,pano:p.pano}))):O.body.dispose()}).catch(function(M){var w,H;((w=s.pendingTextureTask)===null||w===void 0?void 0:w.hash)===b&&(s.pendingTextureTask.onError(M),(H=s.panoMeshes[p.panoId])===null||H===void 0||H.setProgress(0),delete s.pendingTextureTask,s.emit("pano.texture.error",createEvent("pano.texture.error",{error:M,progress:0,meta:null,pano:p.pano})),s.emit("error",M))}),this.emit("pano.texture.load",createEvent("pano.texture.load",{error:null,progress:0,meta:null,pano:p.pano}))},t.prototype.doMoveToPano=function(e,r,o){var s=this,u,l,c,f,d,p,v,A,g,h;o===void 0&&(o={});var y=now(),m=createUuid();this.panoResources[m]=r;var E=1,b,T,_;if(this.locationMotion.ended){var R=this.locationMotion.getKeyFrameSegment(y);R[0];var S=R[1],C=this.locationMotion.value,B=this.panoResourceFromLocationMotionKeyframe(S).position,L=r.position;b=Math.max(B.distanceTo(L),E),T=[{key:S.key,progress:0,value:__assign(__assign({},C),{count:0})},{key:m,progress:1,value:{distance:0,count:1}}],_=0}else{var M=this.locationMotion.getKeyFrameSegment(y),w=M[0],S=M[1],C=this.locationMotion.value,H=this.panoResourceFromLocationMotionKeyframe(w).position,B=this.panoResourceFromLocationMotionKeyframe(S).position,L=r.position,O=S.value.count-C.count,I=Math.max(H.distanceTo(B),E)*O,N=Math.max(B.distanceTo(L),E);b=I+N,T=[{key:w.key,progress:0,value:__assign({},C)},{key:S.key,progress:I/b,value:S.value},{key:m,progress:1,value:{count:S.value.count+1,distance:0}}];var k=this.locationMotionKeyframesLength(this.locationMotion.keyframes),U=this.locationMotionKeyframesLength(T);_=this.locationMotion.getProgressVelocity(y)*k/U}var D=r.effect==="instant"?0:this.calculateMovingDuration(o.duration,r.effect==="fly"?b:0),q={longitude:o.longitude,latitude:o.latitude,fov:o.fov},z=__assign(__assign({},e),{mode:this.mode,longitude:(u=q.longitude)!==null&&u!==void 0?u:this.camera.pose.longitude,latitude:(l=q.latitude)!==null&&l!==void 0?l:this.camera.pose.latitude,fov:(c=q.fov)!==null&&c!==void 0?c:this.camera.pose.fov,offset:r.position.clone(),distance:0}),Q=this.currentPano;if(this.emit("pano.moveTo",createEvent("pano.moveTo",{options:o,prevPano:Q,progress:0,state:z,userAction:this.userAction,error:null})),o.moveStartCallback&&o.moveStartCallback(z),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=noop$1,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),r.effect==="fly")this.cameraMotion.set(q,D).catch(noop$1);else{var G=coordinatesToVector({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude}),X=coordinatesToVector({longitude:(f=q.longitude)!==null&&f!==void 0?f:this.cameraMotion.value.longitude,latitude:(d=q.latitude)!==null&&d!==void 0?d:this.cameraMotion.value.latitude}),$=new THREE__namespace.Object3D;$.lookAt(G);var W=new THREE__namespace.Matrix4().makeRotationFromQuaternion($.quaternion);$.lookAt(X);var oe=new THREE__namespace.Matrix4().makeRotationFromQuaternion($.quaternion),ae=new THREE__namespace.Matrix4().getInverse(W).premultiply(oe),re=this.cameraMotion.value.fov,j=(p=q.fov)!==null&&p!==void 0?p:this.cameraMotion.value.fov,se=1;r.effect==="zoomin"?se=1.5:r.effect==="zoomout"&&(se=.4);for(var ie=j*se,ue=0;ue<T.length-1;ue++){var fe=T[ue].key;if(fe){var ne=this.panoResources[fe];ne&&(ne.fixCameraTransform.copy(ae),ne.leftPanoPicture&&(ne.leftPanoPicture.zoom=Math.tan(re/2/180*Math.PI)/Math.tan(ie/2/180*Math.PI)))}}this.cameraMotion.setKeyframes([{progress:0,value:{longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude,fov:this.cameraMotion.value.fov}},{progress:0,value:{longitude:(v=q.longitude)!==null&&v!==void 0?v:this.cameraMotion.value.longitude,latitude:(A=q.latitude)!==null&&A!==void 0?A:this.cameraMotion.value.latitude,fov:ie}},{progress:1,value:{longitude:(g=q.longitude)!==null&&g!==void 0?g:this.cameraMotion.value.longitude,latitude:(h=q.latitude)!==null&&h!==void 0?h:this.cameraMotion.value.latitude,fov:j}}],D).catch(noop$1)}var Te=this.locationMotion.setKeyframes(T,D,_);Te.then(function(){for(var _e,ve,Me,Z=0,te=s.models;Z<te.length;Z++){var K=te[Z];K.show()}var ye=__assign(__assign({},e),{mode:s.mode,longitude:s.camera.pose.longitude,latitude:s.camera.pose.latitude,fov:s.camera.pose.fov,offset:s.camera.pose.offset.clone(),distance:0});s.emit("pano.arrived",createEvent("pano.arrived",{options:o,prevPano:Q,progress:1,state:ye,userAction:s.userAction,error:null})),o.moveEndCallback&&o.moveEndCallback(ye);var de=s.works.getResolvedObserver(s.currentPano);if(de&&de.video&&s.videoTexture&&s.videoTexture.image instanceof HTMLVideoElement){var xe=ROTATE_Y_PI_MATRIX.clone().multiply((Me=(ve=(_e=s.models.getMaterial())===null||_e===void 0?void 0:_e.pano1)===null||ve===void 0?void 0:ve.matrix)!==null&&Me!==void 0?Me:new THREE__namespace.Matrix4).multiply(de.video.matrix),Ae={map:s.videoTexture,size:de.video.size,matrix:xe,alpha:1},me=createUuid(),ce=s.videoTexture.image;ce.setAttribute("uuid",me),canplayVideo().then(function(he){he&&de.video&&ce.getAttribute("uuid")===me&&(ce.oncanplay=function(){ce.oncanplay=noop$1,ce.play()},ce.ontimeupdate=function(){ce.currentTime>.5&&(ce.ontimeupdate=noop$1,s.panoVideo.setMaterial(Ae))},ce.src=de.video.source)}).catch(function(){ce.removeAttribute("uuid")})}},function(){s.emit("pano.cancel",createEvent("pano.cancel",{options:o,prevPano:Q,progress:0,state:z,userAction:s.userAction,error:null})),o.moveCancelCallback&&o.moveCancelCallback()})},t.prototype.checkSelectedPano=function(e){var r=this,o,s,u,l;this.stopMomentumMovement();var c=this.camera.getDirection(new THREE__namespace.Vector3).setY(0),f=null,d=this.works.getResolvedObserver(this.currentPano);if(!d)return null;var p=d.accessibleIds.filter(function(X){var $=panoParse(X);if(panoEqual($,r.currentPano))return!1;var W=r.works.getResolvedObserver($);return!W||W.position.distanceTo(r.camera.position)>r.maxAccessibleDistance?!1:W.loadable||W.active}),v=this.models.intersectRaycaster(e)[0];if(v){var A=arrayMin(p,function(X){var $=r.works.getResolvedObserver(X);if(!$)return 1/0;var W=$.standingPosition.clone();return W.distanceTo(v.point)},!0),g=A[0],h=A[1];g&&h<this.panoTapTriggerRadius&&(f=(o=this.works.getResolvedObserver(g))!==null&&o!==void 0?o:null)}if(isNil(f)){var y=this.getForwardObserverOrNot(e);y&&(f=y)}for(var m=0,E=this.locationMotion.keyframes;m<E.length;m++){var b=E[m],T=this.panoResourceFromLocationMotionKeyframe(b);if(!(b.progress<this.locationMotion.progress)&&f&&T.panoId===f.panoId){f=null;break}}if(isNil(f))return this.locationMotion.ended===!0&&this.cameraBounce(),null;if(f&&!f.active){var _=f.panoId;this.panoMeshes[_]&&(this.panoMeshes[_].setDisabled(!1),this.panoMeshes[_].setLoading(!0))}var R={};if(f){for(var S=Math.PI/6,C=Math.PI/12,B=new THREE__namespace.Vector3(0,1,0),L=f.position.clone().setY(0).sub(d.position.clone().setY(0)).normalize(),M=L.clone().applyAxisAngle(B,S),w=L.clone().applyAxisAngle(B,-S),H=[],O=[],I=[],N=0,k=f.accessibleIds;N<k.length;N++){var g=k[N],U=panoParse(g);if(!(panoEqual(U,this.currentPano)||panoEqual(U,f.pano))){var D=this.works.getResolvedObserver(g);if(D){var q=D.position.clone().sub(f.position).setY(0);L.angleTo(q)<S?I.push(q):M.angleTo(q)<S?H.push(q):w.angleTo(q)<S&&O.push(q)}}}var z=I.length>0?I:__spreadArray(__spreadArray([],H,!0),O,!0),Q=z.slice().sort(function(X,$){return X.angleTo(L)-$.angleTo(L)})[0];Q&&Q.angleTo(c)>C&&(R.longitude=Math.atan2(-Q.x,-Q.z))}this.cameraMotion.value.latitude<-Math.PI/4&&(R.latitude=clamp$1(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(R.fov=this.defaultFov);var G={workCode:f.pano.workCode,panoIndex:f.pano.panoIndex,mode:this.mode,longitude:(s=R.longitude)!==null&&s!==void 0?s:this.camera.pose.longitude,latitude:(u=R.latitude)!==null&&u!==void 0?u:this.camera.pose.latitude,fov:(l=R.fov)!==null&&l!==void 0?l:this.camera.pose.fov,distance:0,offset:f?f.position.clone():new THREE__namespace.Vector3};return this.emit("pano.select",createEvent("pano.select",{prevPano:this.currentPano,state:G,userAction:!0,options:R,progress:0,error:null})),f&&f.active?(this.emit("pano.request",createEvent("pano.request",{userAction:!0,prevPano:this.currentPano,progress:0,state:G,options:R,error:null})),f.pano):null},t.prototype.destroy=function(){n.prototype.destroy.call(this)},t.prototype.isReady=function(){return!1},t.prototype.updateCamera=function(e,r,o){return Promise.resolve()},t.prototype.updateCameraWithKeyframes=function(e,r,o){return Promise.resolve()},t.prototype.updateTime=function(e,r){for(var o=this,s,u,l,c,f,d,p,v,A=[],g=2;g<arguments.length;g++)A[g-2]=arguments[g];this.userAction=!0;var h={},y={},m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),E=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),b=!1;if(this.cameraMotion.ended===!1&&(this.cameraMotion.update(e),y.longitude=this.cameraMotion.value.longitude,y.latitude=this.cameraMotion.value.latitude,y.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended===!1&&(this.modelAlphaMotion.update(e),h.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended===!1&&(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended===!1){this.locationMotion.update(e);var T=this.locationMotion.getKeyFrameSegment(e),_=T[0],R=T[1],S=this.panoResourceFromLocationMotionKeyframe(_),C=this.panoResourceFromLocationMotionKeyframe(R),B=new THREE__namespace.Vector3().copy(S.position),L=new THREE__namespace.Vector3().copy(C.position),M=this.locationMotion.value.count-R.value.count+1;h.progress=M,C.leftPanoPicture&&(M<1?S.leftPanoPicture&&(h.pano0=S.leftPanoPicture):h.pano0=C.leftPanoPicture,h.pano1=C.leftPanoPicture),C.effect==="montage"?h.transition="BLACK":C.effect==="spread"?h.transition="SPREAD":h.transition="FADE",(C.effect==="zoomin"||C.effect==="zoomout")&&(h.progress=Math.pow(M,3)),M<1&&C.effect!=="fly"&&(h.pano0&&S.leftPanoPicture&&(h.pano0={map:h.pano0.map,zoom:h.pano0.zoom,luminanceMap:h.pano0.luminanceMap,matrix:S.leftPanoPicture.matrix.clone().setPosition(C.position)}),B.copy(L),b=!0),y.distance=this.locationMotion.value.distance,y.offset=new THREE__namespace.Vector3(B.x+(L.x-B.x)*M,B.y+(L.y-B.y)*M,B.z+(L.z-B.z)*M);for(var w=[],H=[],O=0,I=this.locationMotion.keyframes;O<I.length;O++){var N=I[O],k=N.key,U=N.progress;k!==void 0&&(w.push(k),U>this.locationMotion.progress&&H.push(k))}for(var D=0,q=Object.keys(this.panoResources);D<q.length;D++){var z=q[D];if(!(H.indexOf(z)>=0)){var Q=this.panoResources[z];if(Q.leftPanoPicture){var G=Q.leftPanoPicture.map;if(G){if(G===((s=h.pano0)===null||s===void 0?void 0:s.map)||G===((u=h.pano1)===null||u===void 0?void 0:u.map))continue;G instanceof TileCubeTextureTarget&&G.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(G.cubeRenderTarget),G.dispose(),Q.leftPanoPicture=null}}w.indexOf(z)>=0||delete this.panoResources[z]}}this.currentPano=panoParse(C.panoId),this.emit("pano.moving",createEvent("pano.moving",{userAction:this.userAction,prevPano:panoParse(m.panoId),state:__assign(__assign(__assign(__assign({},panoParse(E.panoId)),{mode:this.mode}),clonePose(this.camera.pose)),y),options:{},progress:this.locationMotion.progress,error:null}))}isEmptyObject(h)===!1&&(!((l=h.pano0)===null||l===void 0)&&l.map&&h.pano0.map instanceof TileCubeTextureTarget&&!h.pano0.map.cubeRenderTarget&&(h.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((c=h.pano1)===null||c===void 0)&&c.map&&h.pano1.map instanceof TileCubeTextureTarget&&!h.pano1.map.cubeRenderTarget&&(h.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),this.models.setMaterial(h)),isEmptyObject(y)===!1&&this.setCamera(y);var X=this.works.getResolvedObserver(this.currentPano),$=A[1];if(!$){console.error("xrFrame丢失,请重试");return}if(!this.xrManager.session){console.error("session丢失,请重试");return}var W=this.xrManager.referenceSpace;if(W){var oe=this.xrManager.cameraVR,ae=this.xrManager.cameraL,re=this.xrManager.cameraR,j=[ae,re],se=$.getViewerPose(W),ie=new THREE__namespace.Vector3(0,0,0);if(se){var ue;ue=this.xrManager.session.renderState.baseLayer;var fe=se.views;if(!ue){console.error("no layer found");return}this.renderer.setFramebuffer(ue.framebuffer);var ne=!1;fe.length!==oe.cameras.length&&(oe.cameras.length=0,ne=!0),this.parallaxCameraMatrixs=[];var Te=new THREE__namespace.Vector3,_e=new THREE__namespace.Vector3;new THREE__namespace.Matrix4().fromArray(fe[0].transform.matrix).decompose(Te,new THREE__namespace.Quaternion,new THREE__namespace.Vector3),new THREE__namespace.Matrix4().fromArray(fe[1].transform.matrix).decompose(_e,new THREE__namespace.Quaternion,new THREE__namespace.Vector3),_e.clone().sub(Te).normalize();var ve=new THREE__namespace.Vector3,Me=new THREE__namespace.Quaternion,Z=new THREE__namespace.Vector3;this.camera.matrix.decompose(ve,Me,Z);for(var te=0;te<fe.length;te++){var K=fe[te],ye=ue.getViewport(K),de=j[te];de.matrix.fromArray(K.transform.matrix);var xe=new THREE__namespace.Vector3,Ae=new THREE__namespace.Quaternion,me=new THREE__namespace.Vector3;de.matrix.decompose(xe,Ae,me),ie.copy(ve),de.position.copy(ve),de.quaternion.copy(Ae),de.scale.copy(me),de.updateMatrix(),de.projectionMatrix.fromArray(K.projectionMatrix),de.viewport.set(ye.x,ye.y,ye.width,ye.height),ne===!0&&oe.cameras.push(de)}if(this.xrManager.session&&this.xrManager.session.inputSources){for(var te=0;te<this.xrManager.session.inputSources.length;te++)if(this.xrManager.session.inputSources[te]&&this.xrManager.session.inputSources[te].targetRayMode==="transient-pointer"){var ce=$.getPose(this.xrManager.session.inputSources[te].targetRaySpace,W);if(ce){var he=new THREE__namespace.Vector3(0,0,-1).applyQuaternion(ce.transform.orientation),ee=new THREE__namespace.Raycaster(this.camera.position,he);this.gazeRay=ee}}}if(this.xrManager.machineType==="Oculus"||this.xrManager.machineType==="Pico"){for(var pe=this.xrManager.session.inputSources,te=0;te<pe.length;te++){var Re=this.xrManager.controllers[te],we=pe[te];if(we){Re&&Re.update(we,$,W);var ee=this.xrManager.getController(te),Ue=new THREE__namespace.Vector3(0,1.2,0),be=ee.position.clone().add(ie).sub(Ue);we.handedness==="left"?this.xrControllerRay.left.set(be,new THREE__namespace.Vector3(0,0,-1).applyEuler(ee.rotation)):we.handedness==="right"&&this.xrControllerRay.right.set(be,new THREE__namespace.Vector3(0,0,-1).applyEuler(ee.rotation)),this.controllerWrappers[te].position.copy(new THREE__namespace.Vector3(0,0,0).add(ie).sub(Ue));var ge=this.models.intersectRaycaster(this.xrControllerRay.right);if(ge.length===0&&(ge=this.xrControllerRay.right.intersectObject(this.boundingMesh,!0).map(function(vt){var At;return __assign({floor:(At=X==null?void 0:X.floorIndex)!==null&&At!==void 0?At:0},vt)})),ge.length>=1&&ge[0].face)if(we.handedness==="right"){var ze=this.xrControllerRay.right.intersectObject(this.xrCustomObjectsScene,!0),Ne=ge[0].face.normal,Je=Ne.clone(),Ke=ge[0].point.clone();this.intersectMesh.position.copy(Ke);var De=Ke.clone().add(Je);if(this.intersectMesh.lookAt(De),Math.abs(Ne.y)>.99){var Ye=this.camera.position.clone().sub(Ke);this.intersectMesh.rotation.z=-Math.atan2(Ye.z,Ye.x)}this.intersectMesh.visible=!0,this.needsRender=!0,ze.length>0?(this.pointerLines.right.setPoints(be,ze[0].point),this.pointerLines.right.points.visible=!0,this.intersectMesh.visible=!1):(this.pointerLines.right.points.visible=!1,this.pointerLines.right.setPoints(be,ge[0].point));var Ve=ge[0],nt=createEvent("intersect.update",{raycaster:(f=this.xrControllerRay.right)!==null&&f!==void 0?f:null,intersection:Ve!=null?Ve:null,object:this.intersectMesh});if(this.emit("intersect.update",nt),nt.defaultPrevented){this.hideIntersectMesh();return}}else this.pointerLines.left.setPoints(be,ge[0].point)}}this.updateControllerHelper(pe,e,r)}if(this.camera.pose.distance>.1||b)for(var qe=0,Qe=Object.keys(this.panoMeshes);qe<Qe.length;qe++){var Ie=Qe[qe],Se=this.panoMeshes[Ie];Se.setOpacity(0),Se.setCurrent(!1),Se.updateTime&&Se.updateTime(e,r),Se.visible=!1}else if(X){var Be=arrayMin(X.visibleIds,function(Oe){var ut=o.works.getResolvedObserver(Oe);return ut?X.standingPosition.distanceTo(ut.standingPosition):1/0},!0),Le=Be[1];Le=clamp$1(Le,2.5,1/0);for(var ot=X.visibleIds.concat(panoStringify(this.currentPano)),$e=this.getForwardObserverOrNot(),tt=this.camera.getDirection(new THREE__namespace.Vector3),Xe=0,rt=Object.keys(this.panoMeshes);Xe<rt.length;Xe++){var Ie=rt[Xe],Se=this.panoMeshes[Ie],Ge=this.works.getResolvedObserver(Ie);if(ot.indexOf(Ie)===-1)Se.setCurrent(!1),Se.setOpacity(0);else if(!Ge)Se.setCurrent(!1),Se.setOpacity(0);else if(!Ge.loadable&&!Ge.active)Se.setCurrent(!1),Se.setOpacity(0);else{var st=Se.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);Se.setCurrent(!Se.loading&&Se.progress===0&&$e!==null&&$e.panoId===Ie),Se.setOpacity(st<.01?0:clamp$1(Le/st*1.2,.65,.98));var ct=this.camera.position.clone().setY(Se.position.y),he=new THREE__namespace.Vector3().copy(Se.position).sub(ct).normalize();if(Ie===panoStringify(this.currentPano)){var je=clamp$1((.5-ct.distanceTo(Se.position))/.5,0,1);he.multiplyScalar(1-je).add(tt.clone().multiplyScalar(je))}he.length()>0&&Se.quaternion.setFromEuler(new THREE__namespace.Euler(0,Math.atan2(he.x,he.z),0))}Se.updateTime&&Se.updateTime(e,r)}}var Fe=function(){return 4}(),We=function(){var Oe=new THREE__namespace.PerspectiveCamera;Oe.applyMatrix4(oe.matrix),Oe.position.set(0,0,0);var ut=o.works.getResolvedObserver(E.panoId),vt=ut!=null?ut:X;vt&&Oe.quaternion.premultiply(vt.quaternion.clone().inverse()),Oe.updateProjectionMatrix(),Oe.updateMatrixWorld(!0);var At=new THREE__namespace.Frustum().setFromProjectionMatrix(new THREE__namespace.Matrix4().multiplyMatrices(Oe.projectionMatrix,Oe.matrixWorldInverse));return At}();E.panoId===panoStringify(this.currentPano)&&((d=E.leftPanoPicture)===null||d===void 0?void 0:d.map)instanceof TileCubeTextureTarget&&(E.leftPanoPicture.map.maxRequest=this.tileMaxRequest,E.leftPanoPicture.map.update(We,Fe),E.leftPanoPicture.map.needsRender===!0&&(this.needsRender=!0,this.modelSceneNeedsRender=!0));{var at=this.tiling.object.visible;if(this.initAnimationed){var Pe=E.panoId,Ce=this.works.getResolvedObserver(Pe);Ce?isSimilarVector3(this.camera.position,Ce.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==Pe&&this.tiling.cleanup(),this.tiling.panoId=Pe,this.tiling.setResource((v=(p=Ce.images)===null||p===void 0?void 0:p.tiles)!==null&&v!==void 0?v:[],this.enableIOSEDR&&Ce.images.luminance?Ce.images.luminance:null),this.tiling.setFetcher(getFetcher(Ce.work)),this.tiling.setRotation(Ce.quaternion),this.tiling.setPosition(Ce.position),this.tiling.maxRequest=this.tileMaxRequest,Fe>this.tiledCubeTextureLevel?this.tiling.update(We,Fe,e):this.tiling.update(We,0,e)):this.tiling.object.visible=!1:this.tiling.object.visible=!1}else this.tiling.object.visible=!1;at!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0,this.modelSceneNeedsRender=!0)}this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(e)}}},t.prototype.render=function(){var e=this.xrManager.getCamera(this.camera);this.renderer.render(this.modelScene,e),this.renderer.autoClearColor=!1,this.renderer.autoClearDepth=!1,this.renderer.render(this.scene,e),this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0},t.prototype.onPanGesture=function(){},t.prototype.onTapGesture=function(){},t.prototype.onPinchGesture=function(){},t.prototype.onMouseMove=function(){},t.prototype.onMouseOut=function(){},t.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},t.prototype.updateControllerHelper=function(e,r,o){var s=this.xrControllerRay.left,u=this.xrControllerRay.right;if(!(!e||e.length===0)){for(var l={buttons:{X:!1,Y:!1,LeftTrigger:!1,LeftPinch:!1,A:!1,B:!1,RightTrigger:!1,RightPinch:!1}},c=0;c<e.length;c++){var f=e[c].handedness,d=e[c].gamepad;switch(f){case"left":d.axes&&(this.emitHandleEvent(d.axes[2]===-1,"LeftAxesLeft",r),this.emitHandleEvent(d.axes[2]===1,"LeftAxesRight",r),this.emitHandleEvent(d.axes[3]===-1,"LeftAxesUp",r),this.emitHandleEvent(d.axes[3]===1,"LeftAxesDown",r)),d!=null&&d.buttons&&(d.buttons[4]&&this.emitHandleEvent(d.buttons[4].pressed,"X",r),d.buttons[5]&&this.emitHandleEvent(d.buttons[5].pressed,"Y",r),d.buttons[0]&&this.emitHandleEvent(d.buttons[0].pressed,"LeftTrigger",r),d.buttons[1]&&this.emitHandleEvent(d.buttons[1].pressed,"LeftPinch",r));var p={raycaster:s,axes:{up:d.axes&&d.axes[3]<0?Math.abs(d.axes[3]):0,down:d.axes&&d.axes[3]<0?0:Math.abs(d.axes[3]),left:d.axes&&d.axes[2]<0?Math.abs(d.axes[2]):0,right:d.axes&&d.axes[2]<0?0:Math.abs(d.axes[2])},deltaTime:o};l.buttons.X=d.buttons&&d.buttons[4]?d.buttons[4].pressed:!1,l.buttons.Y=d.buttons&&d.buttons[5]?d==null?void 0:d.buttons[5].pressed:!1,l.buttons.LeftTrigger=d.buttons&&d.buttons[0]?d==null?void 0:d.buttons[0].pressed:!1,l.buttons.LeftPinch=d.buttons&&d.buttons[1]?d==null?void 0:d.buttons[1].pressed:!1,l.left=p;break;case"right":d.axes&&(this.emitHandleEvent(d.axes[2]===-1,"RightAxesLeft",r),this.emitHandleEvent(d.axes[2]===1,"RightAxesRight",r),this.emitHandleEvent(d.axes[3]===-1,"RightAxesUp",r),this.emitHandleEvent(d.axes[3]===1,"RightAxesDown",r)),d.buttons&&(d.buttons[4]&&this.emitHandleEvent(d.buttons[4].pressed,"A",r),d.buttons[5]&&this.emitHandleEvent(d.buttons[5].pressed,"B",r),d.buttons[0]&&this.emitHandleEvent(d.buttons[0].pressed,"RightTrigger",r),d.buttons[1]&&this.emitHandleEvent(d.buttons[1].pressed,"RightPinch",r));var v={raycaster:u,axes:{up:d.axes&&d.axes[3]<0?Math.abs(d.axes[3]):0,down:d.axes&&d.axes[3]<0?0:Math.abs(d.axes[3]),left:d.axes&&d.axes[2]<0?Math.abs(d.axes[2]):0,right:d.axes&&d.axes[2]<0?0:Math.abs(d.axes[2])},deltaTime:o};l.right=v,l.buttons.A=d.buttons&&d.buttons[4]?d==null?void 0:d.buttons[4].pressed:!1,l.buttons.B=d.buttons&&d.buttons[5]?d==null?void 0:d.buttons[5].pressed:!1,l.buttons.RightTrigger=d.buttons&&d.buttons[0]?d==null?void 0:d.buttons[0].pressed:!1,l.buttons.RightPinch=d.buttons&&d.buttons[1]?d==null?void 0:d.buttons[1].pressed:!1;break}}this.emit("xr.controller.update",createEvent("xr.controller.update",l))}},t.prototype.emitHandleEvent=function(e,r,o){var s=this.xrControllerRay.left,u=this.xrControllerRay.right;if(e)if(this.xrHandleState[r].touchStart===!1)this.xrHandleState[r].touchStartTime=o,this.xrHandleState[r].touchStart=!0,this.emit("xr.gesture.buttonDown",createEvent("xr.gesture.buttonDown",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!1,isFirst:!0,controllers:{raycaster:{leftRay:s,rightRay:u}}}));else{var l=o-this.xrHandleState[r].touchStartTime;l>CONTROLLER_EVNET_DELTA_TIME&&this.emit("xr.gesture.press",createEvent("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!0,controllers:{raycaster:{leftRay:s,rightRay:u}}}))}else if(this.xrHandleState[r].touchStart===!0){this.emit("xr.gesture.buttonUp",createEvent("xr.gesture.buttonUp",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:s,rightRay:u}}}));var l=o-this.xrHandleState[r].touchStartTime;if(l<=CONTROLLER_EVNET_DELTA_TIME){var c=createEvent("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:s,rightRay:u}}}),f=this.emit("xr.gesture.tap",c);!f&&!c.defaultPrevented&&r==="RightTrigger"&&this.checkSelectedPano(this.xrControllerRay.right)}this.xrHandleState[r].touchStart=!1,this.xrHandleState[r].touchStartTime=0}},t.prototype.initHandEvent=function(){var e=this;if(!this.xrManager.session)throw new Error("初始化失败");this.xrManager.session.addEventListener("select",function(r){e.gazeRay&&e.checkSelectedPano(e.gazeRay)})},t}(PanoramaController),Controllers={Floorplan:FloorplanController,Topview:TopviewController,Panorama:PanoramaController,VRPanorama:VRPanoramaController,Model:ModelController,Mapview:MapviewController,XRPanorama:XRPanoramaController},controllersDefaultInitArgs={Floorplan:defaultFloorplanControllerCustomInitArgs,Topview:defaultTopviewControllerCustomInitArgs,Panorama:defaultPanoramaControllerCustomInitArgs,VRPanorama:defaultVRPanoramaControllerCustomInitArgs,Model:defaultModelControllerCustomInitArgs,Mapview:defaultMapviewControllerCustomInitArgs,XRPanorama:defaultXRPanoramaControllerInitArgs},PROXY_CONTROLLER_EVENT_NAMES=["gesture.pan","gesture.tap","gesture.dbltap","gesture.press","gesture.pinch","gesture.mousewheel","gesture.mousemove","gesture.momentum","initAnimation.start","initAnimation.end","camera.update","intersect.update","pano.select","pano.moveTo","pano.moving","pano.arrived","pano.cancel","pano.error","pano.texture.load","pano.texture.progress","pano.texture.success","pano.texture.error","pano.texture.abort","xr.session.start","xr.session.end","xr.gesture.tap","xr.gesture.press","xr.gesture.buttonUp","xr.gesture.buttonDown","xr.controller.update"];function initLegacyEvent(n){n.on("initAnimation.start",function(t){n.emit("initAnimationWillStart",t.state.panoIndex,t.state,t.userAction)}),n.on("initAnimation.end",function(t){n.emit("initAnimationEnded",t.state.panoIndex,t.state,t.userAction)}),n.on("gesture.pan",function(t){var e=!1;e=n.emit("wantsGesture","pan",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPanGesture",t.state,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","pan",t.pointers,t.isFinal),n.emit("panGesture",t.state,t.isFinal))}),n.on("gesture.tap",function(t){var e=!1;e=n.emit("wantsGesture","tap",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsTapGesture",t.center.raycaster,t.center.coords,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","tap",t.pointers,t.isFinal),n.emit("tapGesture",t.center.raycaster,t.center.coords,t.isFinal))}),n.on("gesture.dbltap",function(t){var e=!1;e=n.emit("wantsGesture","dbltap",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsDblTapGesture",t.center.raycaster,t.center.coords,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","dbltap",t.pointers,t.isFinal),n.emit("dblTapGesture",t.center.raycaster,t.center.coords,t.isFinal))}),n.on("gesture.press",function(t){var e=!1;e=n.emit("wantsGesture","press",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPressGesture",t.center.raycaster,t.center.coords,t.center.delta,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","press",t.pointers,t.isFinal),n.emit("pressGesture",t.center.raycaster,t.center.coords,t.center.delta,t.isFinal))}),n.on("gesture.pinch",function(t){var e=!1;e=n.emit("wantsGesture","pinch",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPinchGesture",t.scale,t.state.fov,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","pinch",t.pointers,t.isFinal),n.emit("pinchGesture",t.scale,t.state.fov,t.isFinal))}),n.on("gesture.mousewheel",function(t){var e=!1;e=n.emit("wantsGesture","mouseWheel",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsMouseWheel",t.center.delta,t.state.fov,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","mouseWheel",t.pointers,t.isFinal),n.emit("mouseWheel",t.center.delta,t.state.fov,t.isFinal))}),n.on("gesture.mousemove",function(t){var e=!1;e=n.emit("wantsGesture","mouseMove",t.pointers,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","mouseMove",t.pointers,t.isFinal),e=n.emit("wantsChangeCameraFov",t.state.fov),e&&t.preventDefault())}),n.on("gesture.momentum",function(t){var e=!1;e=n.emit("wantsInteriaPan",t.state),e&&t.preventDefault(),t.defaultPrevented||n.emit("interiaPan",t.state,t.isFinal)}),n.on("camera.update",function(t){n.emit("cameraFovUpdate",t.state.fov,t.userAction),n.emit("cameraDirectionUpdate",t.state,t.userAction);var e=coordinatesToVector(t.state);e.setLength(t.state.distance);var r=t.state.offset.clone().sub(e);n.emit("cameraPositionUpdate",r,t.userAction),n.emit("cameraUpdate",t.state,t.userAction)}),n.on("intersect.update",function(t){if(t.intersection){var e=!1;e=n.emit("wantsShowIntersectionOnModel",t.raycaster),e&&t.preventDefault(),t.defaultPrevented||n.emit("intersectionOnModelUpdate",t.intersection,t.object)}else n.emit("intersectionHidden")}),n.on("pano.request",function(t){var e=n.emit("wantsMoveToPano",t.state.panoIndex,t.options,t.userAction);e||(e=n.emit("wantsToMoveToPano",t.state.panoIndex,t.options,t.userAction)),e&&t.preventDefault(),t.defaultPrevented||n.emit("panoWillLoad",t.state.panoIndex)}),n.on("pano.select",function(t){n.emit("panoSelected",t.state.panoIndex)}),n.on("pano.moveTo",function(t){n.emit("panoLoaded",t.state.panoIndex),n.emit("moveToPano",t.state.panoIndex,t.userAction),n.emit("panoWillArrive",t.state.panoIndex,t.state,t.userAction)}),n.on("pano.moving",function(t){n.emit("movingToPano",t.state.panoIndex,t.prevPano.panoIndex,t.progress)}),n.on("pano.arrived",function(t){n.emit("panoArrived",t.state.panoIndex,t.state,t.userAction)}),n.on("pano.cancel",function(t){n.emit("moveToPanoCanceled",t.state.panoIndex)}),n.on("pano.error",function(t){n.emit("panoLoadError",t.error,t.state.panoIndex)}),n.on("pano.texture.load",function(t){n.emit("textureStartLoad",t.pano.panoIndex)}),n.on("pano.texture.success",function(t){n.emit("textureLoaded",t.pano.panoIndex,t.meta)}),n.on("pano.texture.error",function(t){n.emit("textureError",t.error,t.pano.panoIndex)}),n.on("pano.texture.abort",function(t){n.emit("textureAbort",t.pano.panoIndex)}),n.on("pano.texture.progress",function(t){n.emit("textureLoading",t.progress,t.pano.panoIndex)}),n.on("xr.session.start",function(t){n.emit("webXRSessionStart")}),n.on("xr.session.end",function(t){n.emit("webXRSessionEnd")}),n.on("xr.gesture.tap",function(t){n.emit("webXRControllerEvent","tap",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.press",function(t){n.emit("webXRControllerEvent","press",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.buttonUp",function(t){n.emit("webXRControllerEvent","buttonUp",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.buttonDown",function(t){n.emit("webXRControllerEvent","buttonDown",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.controller.update",function(t){n.emit("webXRControllerRayUpdate",{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0}),t.left&&n.emit("webXRAxesUpdate","left",{raycaster:{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0},axesState:{up:t.left.axes.up,down:t.left.axes.down,left:t.left.axes.left,right:t.left.axes.right},deltaTime:t.left.deltaTime}),t.right&&n.emit("webXRAxesUpdate","right",{raycaster:{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0},axesState:{up:t.right.axes.up,down:t.right.axes.down,left:t.right.axes.left,right:t.right.axes.right},deltaTime:t.right.deltaTime})}),n.on("works.request",function(t){n.emit("willLoad",t.input,t.works[0],t.state)}),n.on("works.load",function(t){n.emit("load",t.input,t.works[0],t.state)}),n.on("works.ready",function(t){n.emit("loaded",t.input,t.works[0])}),n.on("state.change",function(t){n.emit("stateChange",t.state,t.userAction)}),n.on("currentState.change",function(t){n.emit("currentStateChange",t.state,t.userAction)}),n.on("state.set",function(t){n.emit("setState",t.state)}),n.on("state.synced",function(t){n.emit("stateSynced",t.state)}),n.on("model.request",function(t){n.emit("modelWillLoad",t.work.model)}),n.on("model.error",function(t){n.emit("modelLoadError",t.error,t.model)}),n.on("model.load",function(t){n.emit("modelLoaded",t.model)}),n.on("model.changeShownFloor",function(t){n.emit("modelShownFloorChange",t.model.shownFloor,t.model.floorLength)}),n.on("render",function(t){n.emit("renderFrame",t.needsRender)}),n.on("mode.change.request",function(t){n.emit("wantsChangeMode",t.mode,t.prevMode)}),n.on("mode.change",function(t){n.emit("modeChange",t.mode,t.prevMode,t.state.panoIndex,t.state,t.userAction)}),n.on("helpers.visible",function(t){n.emit("helpersVisibleChange",t.object.visible)}),n.on("network.resource",function(t){n.emit("network",t.source,t.requestType,t.requestState,t.detail)})}function generateDefaultVideoElement(){if(typeof window!="undefined"){var n=document.createElement("video");n.loop=!0,n.autoplay=!0,n.playsInline=!0,n.muted=!0,n.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),n.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),n}else return{}}function initLights(n){var t=new THREE__namespace.Group;t.name="internalLights";{var e=new THREE__namespace.DirectionalLight(16777215,.3);e.position.copy(new THREE__namespace.Vector3(1,1,1)),t.add(e)}{var e=new THREE__namespace.DirectionalLight(16777215,.1);e.position.copy(new THREE__namespace.Vector3(-1,-1,-1)),t.add(e)}{var e=new THREE__namespace.DirectionalLight(16777215,.1);t.add(e)}{var e=new THREE__namespace.AmbientLight(16777215,.6);t.add(e)}n.add(t)}function parseKeyValue(n){for(var t,e,r={},o=n.split(/(\;|\,)/),s=0,u=o;s<u.length;s++){var l=u[s],c=l.split("="),f=(t=c[0])===null||t===void 0?void 0:t.trim(),d=(e=c[1])===null||e===void 0?void 0:e.trim();f&&d&&(r[f]=d)}return r}function getViewportScale(){var n;if(typeof document!="undefined")for(var t=document.getElementsByTagName("meta"),e=0;e<t.length;e++){var r=t[e];if(r.getAttribute("name")==="viewport"){var o=parseKeyValue((n=r.getAttribute("content"))!==null&&n!==void 0?n:""),s=Number(o["initial-scale"]);if(!isNaN(s))return s}}return 1}const textureURL="data:image/png;base64,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";var imageSize=[351,63],imageOffset=[20,20],vertices=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),uvs=new Float32Array([0,0,1,0,0,1,1,1]),index=new Uint8Array([0,1,2,1,3,2]),geometry=new THREE__namespace.BufferGeometry;geometry.setAttribute("position",new THREE__namespace.BufferAttribute(vertices,3));geometry.setAttribute("uv",new THREE__namespace.BufferAttribute(uvs,2));geometry.setIndex(new THREE__namespace.BufferAttribute(index,1));var material=new THREE__namespace.MeshBasicMaterial({transparent:!0,depthTest:!1,depthWrite:!1,stencilWrite:!1,fog:!1}),mesh=new THREE__namespace.Mesh(geometry,material);mesh.matrixAutoUpdate=!1;var scene=new THREE__namespace.Scene;scene.add(mesh);scene.matrixAutoUpdate=!1;var camera=new THREE__namespace.OrthographicCamera(-.5,.5,.5,-.5,.1,1);camera.position.set(0,0,.5);camera.lookAt(0,0,0);camera.updateMatrixWorld(!0);camera.matrixAutoUpdate=!1;var prevViewport=new THREE__namespace.Vector4,prevScissor=new THREE__namespace.Vector4;function renderPoweredByRealsee(n){if(material.map){var r=n.getViewport(prevViewport),o=n.getScissor(prevScissor),s=n.getScissorTest(),u=n.autoClear,l=o.x+imageOffset[0]/3,c=o.y+imageOffset[1]/3,f=imageSize[0]/3,d=imageSize[1]/3;n.setViewport(l,c,f,d),n.setScissor(l,c,f,d),n.setScissorTest(!0),n.autoClear=!1,n.render(scene,camera),n.setViewport(r),n.setScissor(o),n.setScissorTest(s),n.autoClear=u}else{var t=new THREE__namespace.Texture,e=new Image;e.onload=function(){t.image=e,t.wrapS=THREE__namespace.ClampToEdgeWrapping,t.wrapT=THREE__namespace.ClampToEdgeWrapping,t.minFilter=THREE__namespace.LinearFilter,t.needsUpdate=!0,t.generateMipmaps=!1,material.needsUpdate=!0,e.onload=noop$1},e.src=textureURL,material.map=t}}var DEFAULT_MODE_CHANGE_DURATION=800,DEFAULT_CAMERA_FOV=90,DEFAULT_REQUEST_PROXY=function(n){return n.replace("//vrlab-public.ljcdn.com/","//vr-public.realsee-cdn.cn/").replace("//vrlab-image4.ljcdn.com/","//vr-image-4.realsee-cdn.cn/").replace("//vrlab-image3.ljcdn.com/","//vr-image-3.realsee-cdn.cn/").replace("//vrlab-image2.ljcdn.com/","//vr-image-2.realsee-cdn.cn/").replace("//vrlab-image1.ljcdn.com/","//vr-image-1.realsee-cdn.cn/")},sharedVector2=new THREE__namespace.Vector2,sharedSphere=new THREE__namespace.Sphere,sharedFrustum=new THREE__namespace.Frustum,sharedProjScreenMatrix=new THREE__namespace.Matrix4,clockForMixer=new WeakMap,worksMap=new WeakMap,emptyWorks=createWorks([]);new Scene;var Five=function(n){__extends(t,n);function t(e){e===void 0&&(e={});var r,o,s,u,l,c,f,d,p,v,A,g,h=n.call(this)||this;if(h.ident=createUuid(),typeof window!="undefined"&&(__FIVE_DEBUG__.instances[h.ident]=h),h.renderSwitch01=0,h.currentMode="Panorama",h.pano={workCode:"",panoIndex:0},h.needsRender=!1,h.modelSceneNeedsRender=!1,h.onlyRenderIfNeeds=(r=e.onlyRenderIfNeeds)!==null&&r!==void 0?r:!0,h.imageOptions=__assign({},(o=e.imageOptions)!==null&&o!==void 0?o:{}),h.textureOptions=__assign({},(s=e.textureOptions)!==null&&s!==void 0?s:{}),h.poweredByRealsee=(u=e.poweredByRealsee)!==null&&u!==void 0?u:!0,h.extraElements=[],h.controllerInits={Panorama:Object.assign({},e.panorama),Model:Object.assign({},e.model),Floorplan:Object.assign({},e.floorplan),Topview:Object.assign({},e.topview),Mapview:Object.assign({},e.mapview),VRPanorama:Object.assign({},e.vrPanorama),XRPanorama:Object.assign({},e.xrPanorama)},h.fps={testCount:0,testTime:now()},h.info=null,h.modeChangeDuration=(l=e.modeChangeDuration)!==null&&l!==void 0?l:DEFAULT_MODE_CHANGE_DURATION,h.enableWheel=(c=e.enableWheel)!==null&&c!==void 0?c:!0,typeof window!="undefined")if("renderer"in e)e.renderer instanceof InternalWebGLRenderer&&h.throwError(new Error("cannot render a internal renderer")),h.renderer=e.renderer;else try{h.renderer=new InternalWebGLRenderer({preserveDrawingBuffer:e.preserveDrawingBuffer,backgroundColor:e.backgroundColor,backgroundAlpha:e.backgroundAlpha,antialias:e.antialias,webgl2:e.webgl2,logarithmicDepthBuffer:e.logarithmicDepthBuffer,precision:e.precision,powerPreference:e.powerPreference});var y=getViewportScale();h.renderer.setPixelRatio(y===1?window.devicePixelRatio:1),h.renderer.setSize(512,512)}catch(M){M instanceof Error&&h.throwError(M)}h.getPixelsRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{encoding:(d=(f=h.renderer)===null||f===void 0?void 0:f.outputEncoding)!==null&&d!==void 0?d:THREE__namespace.sRGBEncoding,generateMipmaps:!1});var m=new THREE__namespace.DepthTexture(1,1);m.generateMipmaps=!1,m.format=THREE__namespace.DepthStencilFormat,m.type=THREE__namespace.UnsignedInt248Type,h.modelRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{encoding:(v=(p=h.renderer)===null||p===void 0?void 0:p.outputEncoding)!==null&&v!==void 0?v:THREE__namespace.sRGBEncoding,depthTexture:m,generateMipmaps:!1,depthBuffer:!0,stencilBuffer:!0}),h.scissor=Object.assign({left:0,bottom:0,width:1,height:1},e.scissor),h.camera=new Camera(DEFAULT_CAMERA_FOV),h.scene=new Scene,h.xrCustomObjectsScene=new THREE__namespace.Scene,h.scene.add(h.xrCustomObjectsScene),h.scene.matrixAutoUpdate=!1,h.lastLoadWorkTask=Promise.resolve(),h.requestProxy=(A=e.requestProxy)!==null&&A!==void 0?A:DEFAULT_REQUEST_PROXY,h.networkSubscribe=new NetworkSubscribe,h.networkSubscribe.on("network",function(M,w,H,O){var I;h.emit("network.resource",createEvent("network.resource",{source:M,requestType:w,requestState:H,detail:O})),(I=h.analysis)===null||I===void 0||I.network(h.works,M,w,H,O)}),h.boundingMesh=generateBoundingMesh(new THREE__namespace.Box3(new THREE__namespace.Vector3(-.5,-.5,-.5),new THREE__namespace.Vector3(.5,.5,.5))),h.boundingMesh.name="bounding",h.models=createModels(),h.models.push(new Model),h.lastModels=createModels(),h.lastWorks=createWorks([]),h.readyCallbacks=[],h.syncingState=!1,h.helperGroup=new THREE__namespace.Group,h.helperGroup.name="helper",h.helperGroup.matrixAutoUpdate=!1,h.scene.add(h.helperGroup),h.modelGroup=new THREE__namespace.Group,h.modelGroup.visible=!1,h.modelGroup.name="model",h.modelGroup.matrixAutoUpdate=!1,h.modelScene=new THREE__namespace.Scene,h.modelScene.add(h.modelGroup),h.modelScene.add(h.boundingMesh),h.modelScene.matrixAutoUpdate=!1,h.videoTexture=new THREE__namespace.VideoTexture(e.videoInstance||generateDefaultVideoElement()),initLights(h.scene),initLights(h.modelScene),h.state={mode:h.currentMode,workCode:h.pano.workCode,panoIndex:h.pano.panoIndex,longitude:h.camera.pose.longitude,latitude:h.camera.pose.latitude,fov:h.camera.pose.fov,offset:h.camera.pose.offset.clone(),distance:h.camera.pose.distance},h.stateSynced=!1,h._enablePostProcessing=!1,h._enableIOSEDR=!1,h._enableEDL=!1,h._enableHQ=!1,h.destroyed=!1,h.paused=!0,typeof window!="undefined"&&(e.play!==!1&&h.play(),h.stopAnimationLoop=AnimationFrameLoop.shared.add(function(M,w){for(var H=[],O=2;O<arguments.length;O++)H[O-2]=arguments[O];h.updateTime.apply(h,__spreadArray([M,w],H,!1))},!1,0,10));var E=function(){typeof document!="undefined"&&document.fullscreenElement===null&&h.currentMode==="VRPanorama"&&h.controller.emit("vr.requestExit",createEvent("vr.requestExit",{}))},b=function(){h.needsRender=!0,h.modelSceneNeedsRender=!0};if(typeof document!="undefined"&&document.addEventListener("fullscreenchange",E,!1),h.renderer&&h.renderer.domElement.addEventListener("webglcontextrestored",b,!1),h.removeEventListeners=function(){typeof document!="undefined"&&document.removeEventListener("fullscreenchange",E,!1),h.renderer&&h.renderer.domElement.removeEventListener("webglcontextrestored",b,!1)},h.plugins={},e.plugins&&e.plugins.length)for(var T=0,_=e.plugins;T<_.length;T++){var R=_[T];if(typeof R=="function")R(h);else if(Array.isArray(R)){var S=R[0],C=R[1],B=R[2];if(typeof S=="function"){var L=S(h,B);typeof C=="string"&&(h.plugins[C]?h.throwError(new Error("plugin name ".concat(C," is exists."))):h.plugins[C]=L)}}}return h.gpuPickingRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{generateMipmaps:!1}),h.meshReplaceMaterialMap=new Map,h.meshOriginMaterialMap=new Map,initLegacyEvent(h),h.enableLayeringRendering=(g=e.enableLayeringRendering)!==null&&g!==void 0?g:!1,h}return Object.defineProperty(t,"version",{get:function(){return"6.4.0-alpha.39"},enumerable:!1,configurable:!0}),Object.defineProperty(t,"dracoPath",{get:function(){return draco.decoderPath},set:function(e){draco.setDecoderPath(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t,"ktx2Path",{get:function(){return ktx2.transcoderPath},set:function(e){ktx2.setTranscoderPath(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"panoIndex",{get:function(){return this.pano.panoIndex},enumerable:!1,configurable:!0}),t.prototype.getGPUPicking=function(e,r,o,s,u){var l=this;if(s===void 0&&(s=1),u===void 0&&(u=new THREE__namespace.Vector3(0,0,0)),!this.renderer)throw new Error("renderer is not initialized.");var c=this.models.getMaterial(),f=c.constantColor,d=c.colorStyle;this.models.setMaterial({colorStyle:"CONSTANT",constantColor:u}),this.scene.traverse(function(g){if(!(!(g instanceof THREE__namespace.Mesh)||g instanceof PBMMesh||g instanceof PBMSkinnedMesh)){var h=Object.keys(o).filter(function(m){return m===g.uuid})[0];if(h)if(l.meshOriginMaterialMap.set(h,g.material),l.meshReplaceMaterialMap.get(h))g.material=l.meshReplaceMaterialMap.get(h);else{var y=new THREE__namespace.ShaderMaterial({uniforms:{color:{value:o[h]}},vertexShader:`
|
|
2170
2170
|
void main() {
|
|
2171
2171
|
vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );
|
|
2172
2172
|
gl_Position = projectionMatrix * mvPosition;
|