@realsee/five 6.4.0-alpha.25 → 6.4.0-alpha.26

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 CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five
4
- * Generated: 3/13/2025
5
- * Version: 6.4.0-alpha.25
4
+ * Generated: 2025/3/14
5
+ * Version: 6.4.0-alpha.26
6
6
  * Terms:
7
7
  * Realsee SDK License Agreement
8
8
  * Update: July 28, 2021
@@ -1593,7 +1593,7 @@ void main() {
1593
1593
  gl_FragColor = vec4(videoColor.rgb, match * blendAlpha * alpha);
1594
1594
  #endif
1595
1595
  }
1596
- `,Nm=function(){function n(){this.material=new f.ShaderMaterial({vertexShader:Dm,fragmentShader:Vm,uniforms:{size:new f.Uniform(null),matrix:new f.Uniform(null),alpha:new f.Uniform(null),map:new f.Uniform(null)},depthTest:!1,depthWrite:!1,defines:{USE_PANO_VIDEO:!1},blending:f.CustomBlending,blendSrc:f.SrcAlphaFactor,blendDst:f.OneMinusSrcAlphaFactor,blendSrcAlpha:f.OneFactor,blendDstAlpha:f.OneMinusSrcAlphaFactor}),this.object=new f.Mesh(hs,this.material),this.object.visible=!1,this.object.renderOrder=-1,this.object.frustumCulled=!1,this.object.name="pano-video",this.alphaMotion=new Re({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(Q),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(Q));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}(),zm=new f.Matrix4().makeRotationAxis(new f.Vector3(0,1,0),Math.PI),D0=new f.Vector3(-1,1,1),V0=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 f.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}(),pr=O(O({},dr),{maxAccessibleDistance:5,panoTapTriggerRadius:.5,panoCircleMeshCreator:function(n){return new kl},tiledCubeTextureLevel:2,tileLevelForFov:function(n,t){var e,r=function(s){return s/180*Math.PI},i=(e=Math.log2)!==null&&e!==void 0?e:function(s){return Math.log(s)*Math.LOG2E},a=t.height/2/Math.tan(r(n/2))*Math.tan(r(45))*2,o=Math.max(i(a/512),0);return o<2.3&&o>.75&&(o=1),o=o%1>.75?Math.ceil(o):Math.floor(o),o},tileMaxRequest:3,luminanceAdaptiveEffectEnable:!0}),ps=function(n){ue(t,n);function t(e){var r=this,i,a,o,s,u=t.parseArgs(e);r=n.call(this,u)||this,r.mode="Panorama",r.tileLevel=0,r.initAnimationed=!1,r.maxAccessibleDistance=u.maxAccessibleDistance,r.panoTapTriggerRadius=u.panoTapTriggerRadius,r.panoCircleMeshCreator=u.panoCircleMeshCreator,r.tiledCubeTextureLevel=u.tiledCubeTextureLevel,r.tileLevelForFov=u.tileLevelForFov,r.tileMaxRequest=u.tileMaxRequest,r.luminanceAdaptiveEffectEnable=u.luminanceAdaptiveEffectEnable,r.luminanceAdaptiveEffect=new k0(r.renderer,r.modelScene,r.camera,r.models),r.colorCubeRenderTargetPool=new V0,r.luminanceCubeRenderTargetPool=new V0;var l=r.models.getMaterial()||{},c=l.pano0,d=l.pano1;c&&(d==null?void 0:d.map)!==c.map&&(r.models.setMaterial({pano0:d}),c.map.dispose(),c.map instanceof qe&&c.map.cubeRenderTarget&&r.colorCubeRenderTargetPool.push(c.map.cubeRenderTarget),c.luminanceMap&&(c.luminanceMap.dispose(),c.luminanceMap instanceof qe&&c.luminanceMap.cubeRenderTarget&&r.luminanceCubeRenderTargetPool.push(c.luminanceMap.cubeRenderTarget)));for(var p=r.colorCubeRenderTargetPool.size;p<2;p++){var A=Math.max(1024*r.tiledCubeTextureLevel,512),h=r.colorCubeRenderTargetPool.create();h.setSize(A,A),wo(null,h,r.renderer),r.colorCubeRenderTargetPool.push(h)}r.panoMeshes={},r.updatePanoMeshes(),r.locationMotion=new Re({count:0,distance:r.camera.pose.distance}),r.modelAlphaMotion=new Re({modelAlpha:(a=(i=r.models.getMaterial())===null||i===void 0?void 0:i.modelAlpha)!==null&&a!==void 0?a:0}),r.perspToOrthoMotion=new Re({perspToOrtho:r.camera.perspToOrtho.x}),r.panoResources={},r.panoResources[r.locationMotion.keyframes[0].key=r.locationMotion.keyframes[1].key=kt()]={panoId:He(r.currentPano),panoPicture:(s=(o=r.models.getMaterial())===null||o===void 0?void 0:o.pano1)!==null&&s!==void 0?s:null,position:r.camera.pose.offset.clone(),effect:"fly",fixCameraTransform:new f.Matrix4};var v=r.works.getResolvedObserver(r.currentPano);return r.textureLoader=new Xn,r.tiling=new Lm(v?pt(v.work):ra,r.tiledCubeTextureLevel+1,r.imageOptions),r.scene.add(r.tiling.object),r.panoVideo=new Nm,r.scene.add(r.panoVideo.object),r}return t.parseArgs=function(e){var r,i,a,o,s,u,l;if(e instanceof t)return e;var c=n.parseArgs.call(this,e);return O(O({},c),{maxAccessibleDistance:(r=e.maxAccessibleDistance)!==null&&r!==void 0?r:pr.maxAccessibleDistance,panoTapTriggerRadius:(i=e.panoTapTriggerRadius)!==null&&i!==void 0?i:pr.panoTapTriggerRadius,panoCircleMeshCreator:(a=e.panoCircleMeshCreator)!==null&&a!==void 0?a:pr.panoCircleMeshCreator,tiledCubeTextureLevel:(o=e.tiledCubeTextureLevel)!==null&&o!==void 0?o:pr.tiledCubeTextureLevel,tileLevelForFov:(s=e.tileLevelForFov)!==null&&s!==void 0?s:pr.tileLevelForFov,tileMaxRequest:(u=e.tileMaxRequest)!==null&&u!==void 0?u:pr.tileMaxRequest,luminanceAdaptiveEffectEnable:(l=e.luminanceAdaptiveEffectEnable)!==null&&l!==void 0?l:pr.luminanceAdaptiveEffectEnable})},t.initAnimationEndState=function(e){var r=this.parseArgs(e),i=n.initAnimationEndState.call(this,r);return O(O({},i),{mode:"Panorama"})},t.prototype.updateConfiguration=function(e){var r=this,i=n.prototype.updateConfiguration.call(this,e);if(i===!1)return!1;var a=O(O({},pr),e);if(this.maxAccessibleDistance!==a.maxAccessibleDistance&&(this.maxAccessibleDistance=a.maxAccessibleDistance),this.panoTapTriggerRadius!==a.panoTapTriggerRadius&&(this.panoTapTriggerRadius=a.panoTapTriggerRadius),this.panoCircleMeshCreator!==a.panoCircleMeshCreator&&(this.panoCircleMeshCreator=a.panoCircleMeshCreator,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]}this.updatePanoMeshes()}return this.tiledCubeTextureLevel!==a.tiledCubeTextureLevel&&(this.tiledCubeTextureLevel=a.tiledCubeTextureLevel,setTimeout(function(){r.moveToPano(r.currentPano,{},!0)},30)),this.tileLevelForFov!==a.tileLevelForFov&&(this.tileLevelForFov=a.tileLevelForFov),this.tileMaxRequest!==a.tileMaxRequest&&(this.tileMaxRequest=a.tileMaxRequest),this.luminanceAdaptiveEffectEnable!==a.luminanceAdaptiveEffectEnable&&(this.luminanceAdaptiveEffectEnable=a.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 i=Object.keys(this.panoMeshes),a=0,o=i;a<o.length;a++){var s=o[a],u=this.panoMeshes[s];this.helper.remove(u),u.dispose(),delete this.panoMeshes[s]}var l=this.videoTexture.image;l.pause(),l.oncanplay=function(){},l.ontimeupdate=function(){},this.scene.remove(this.panoVideo.object),this.panoVideo.setMaterial(null),this.panoVideo.dispose();for(var c=(e=this.models.getMaterial())!==null&&e!==void 0?e:{},d=c.pano0,p=c.pano1,A=0,h=Object.keys(this.panoResources);A<h.length;A++){var v=h[A],g=this.panoResources[v];if(g.panoPicture){var m=g.panoPicture.map;m&&m!==(d==null?void 0:d.map)&&m!==(p==null?void 0:p.map)&&(m.dispose(),(r=g.panoPicture.luminanceMap)===null||r===void 0||r.dispose(),g.panoPicture=null)}delete this.panoResources[v]}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,i,a=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),o=((e=a.panoPicture)===null||e===void 0?void 0:e.map)instanceof qe&&(i=(r=a.panoPicture)===null||r===void 0?void 0:r.map.tilePending)!==null&&i!==void 0?i:0,s=o<=0,u=this.tiling.pedding,l=this.tiling.object.visible&&u<=0;return this.initAnimationed&&s&&l},t.prototype.updateWork=function(e,r,i,a){var o=this;this.userAction=a,this.works=e;var s=t.initAnimationEndState(O(O({},this),{initial:{currentState:O(O({},this.currentPano),this.camera.pose),duration:i.duration,effect:i.effect,state:r,userAction:a}})),u={workCode:s.workCode,panoIndex:s.panoIndex},l=this.works.getWork(u.workCode);return this.tiling.setFetcher(l?pt(l):ra),this.tiling.cleanup(),this.initAnimationed=!1,this.hideIntersectMesh(),this.updatePanoMeshes(),this.moveToPano(u,{effect:i.effect,duration:i.duration,longitude:r.longitude,latitude:r.latitude,fov:r.fov,moveEndCallback:function(){o.initAnimationed=!0},moveCancelCallback:function(){o.initAnimationed=!0}},a),!0},t.prototype.updateModel=function(e){this.models=e,this.updatePanoMeshes()},t.prototype.updateTime=function(e,r){var i=this,a,o,s,u,l,c,d,p,A,h;if(!this.destroyed){var v={},g={},m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),y=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),b=!1;if(this.cameraMotion.ended===!1&&(this.cameraMotion.update(e),g.longitude=this.cameraMotion.value.longitude,g.latitude=this.cameraMotion.value.latitude,g.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended===!1&&(this.modelAlphaMotion.update(e),v.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended===!1&&(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(ce(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended===!1){this.locationMotion.update(e);var x=this.locationMotion.getKeyFrameSegment(e),w=x[0],M=x[1],S=this.panoResourceFromLocationMotionKeyframe(w),E=this.panoResourceFromLocationMotionKeyframe(M),P=new f.Vector3().copy(S.position),B=new f.Vector3().copy(E.position),C=this.locationMotion.value.count-M.value.count+1;v.progress=C,E.panoPicture&&(C<1?S.panoPicture&&(v.pano0=S.panoPicture):v.pano0=E.panoPicture,v.pano1=E.panoPicture),E.effect==="montage"?v.transition="BLACK":E.effect==="spread"?v.transition="SPREAD":v.transition="FADE",(E.effect==="zoomin"||E.effect==="zoomout")&&(v.progress=Math.pow(C,3)),C<1&&E.effect!=="fly"&&(v.pano0&&S.panoPicture&&(v.pano0={map:v.pano0.map,zoom:v.pano0.zoom,luminanceMap:v.pano0.luminanceMap,matrix:S.panoPicture.matrix.clone().premultiply(S.fixCameraTransform).setPosition(E.position)}),P.copy(B),b=!0),g.distance=this.locationMotion.value.distance,g.offset=new f.Vector3(P.x+(B.x-P.x)*C,P.y+(B.y-P.y)*C,P.z+(B.z-P.z)*C);for(var I=[],F=[],T=0,L=this.locationMotion.keyframes;T<L.length;T++){var D=L[T],V=D.key,z=D.progress;V!==void 0&&(I.push(V),z>this.locationMotion.progress&&F.push(V))}for(var U=0,q=Object.keys(this.panoResources);U<q.length;U++){var G=q[U];if(!(F.indexOf(G)>=0)){var K=this.panoResources[G];if(K.panoPicture){var _=K.panoPicture.map,J=K.panoPicture.luminanceMap;if(_){if(_===((a=v.pano0)===null||a===void 0?void 0:a.map)||_===((o=v.pano1)===null||o===void 0?void 0:o.map))continue;_ instanceof qe&&_.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(_.cubeRenderTarget),_.dispose(),J&&(J instanceof qe&&J.cubeRenderTarget&&this.luminanceCubeRenderTargetPool.push(J.cubeRenderTarget),J.dispose()),K.panoPicture=null}}I.indexOf(G)>=0||delete this.panoResources[G]}}this.currentPano=Lt(E.panoId),this.emit("pano.moving",X("pano.moving",{userAction:this.userAction,prevPano:Lt(m.panoId),state:O(O(O(O({},Lt(y.panoId)),{mode:this.mode}),tt(this.camera.pose)),g),options:{},progress:this.locationMotion.progress,error:null}))}or(v)===!1&&(!((s=v.pano0)===null||s===void 0)&&s.map&&v.pano0.map instanceof qe&&!v.pano0.map.cubeRenderTarget&&(v.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((u=v.pano0)===null||u===void 0)&&u.luminanceMap&&v.pano0.luminanceMap instanceof qe&&!v.pano0.luminanceMap.cubeRenderTarget&&(v.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),!((l=v.pano1)===null||l===void 0)&&l.map&&v.pano1.map instanceof qe&&!v.pano1.map.cubeRenderTarget&&(v.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((c=v.pano1)===null||c===void 0)&&c.luminanceMap&&v.pano1.luminanceMap instanceof qe&&!v.pano1.luminanceMap.cubeRenderTarget&&(v.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.models.setMaterial(v)),or(g)===!1&&this.setCamera(g);var W=this.works.getResolvedObserver(this.currentPano),$=this.locationMotion.ended?this.getForwardObserverOrNot():null;if(this.camera.pose.distance>.1||b)for(var Y=0,Z=Object.keys(this.panoMeshes);Y<Z.length;Y++){var oe=Z[Y],ne=this.panoMeshes[oe];ne.setOpacity(0),ne.setCurrent(!1),ne.updateTime&&ne.updateTime(e,r),ne.visible=!1}else if(W){var de=Br(W.visibleIds,function(we){var be=i.works.getResolvedObserver(we);return be?W.standingPosition.distanceTo(be.standingPosition):1/0},!0),se=de[1];se=ce(se,2.5,1/0);for(var ye=W.visibleIds.concat(He(this.currentPano)),ie=this.camera.getDirection(new f.Vector3),xe=0,Le=Object.keys(this.panoMeshes);xe<Le.length;xe++){var oe=Le[xe],ne=this.panoMeshes[oe],Ce=this.works.getResolvedObserver(oe);if(ye.indexOf(oe)===-1)ne.setCurrent(!1),ne.setOpacity(0);else if(!Ce)ne.setCurrent(!1),ne.setOpacity(0);else if(!Ce.loadable&&!Ce.active)ne.setCurrent(!1),ne.setOpacity(0);else{var Oe=ne.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);ne.setCurrent(!ne.loading&&ne.progress===0&&$!==null&&$.panoId===oe),ne.setOpacity(Oe<.01?0:ce(se/Oe*1.2,.4,.85));var ee=this.camera.position.clone().setY(ne.position.y),re=new f.Vector3().copy(ne.position).sub(ee).normalize();if(oe===He(this.currentPano)){var H=ce((.5-ee.distanceTo(ne.position))/.5,0,1);re.multiplyScalar(1-H).add(ie.clone().multiplyScalar(H))}re.length()>0&&ne.quaternion.setFromEuler(new f.Euler(0,Math.atan2(re.x,re.z),0))}ne.updateTime&&ne.updateTime(e,r)}}var Be=this.tileLevel=function(){if(i.tileLevelForFov===!1)return 0;var we=i.renderer.getDrawingBufferSize(new f.Vector2);we.width*=i.scissor.width,we.height*=i.scissor.height;var be=y.panoId,Ae=i.works.getResolvedObserver(be),me=i.imageOptions.size;if(typeof me=="undefined"&&Ae){var ze=Ae.images.up.match(/\/cube_(\d+)\//);ze&&(me=Number(ze[1]))}typeof me=="undefined"&&(me=2048);var pe=0;me>=1024&&(pe=1),me>=2048&&(pe=2),me>=4096&&(pe=3),me>=8192&&(pe=4);var Se=i.tileLevelForFov(i.camera.fov,we);return Se>pe?Se:0}(),Te=function(){var we=i.camera.quaternion.clone(),be=i.works.getResolvedObserver(y.panoId),Ae=be!=null?be:W;Ae&&we.premultiply(Ae.quaternion.clone().inverse());var me=new f.Matrix4().makeRotationFromQuaternion(we),ze=new f.Matrix4().getInverse(me),pe=new f.Frustum().setFromProjectionMatrix(new f.Matrix4().multiplyMatrices(i.camera.projectionMatrix,ze));return pe}();y.panoId===He(this.currentPano)&&(((d=y.panoPicture)===null||d===void 0?void 0:d.map)instanceof qe&&(y.panoPicture.map.maxRequest=this.tileMaxRequest,y.panoPicture.map.update(Te,Math.min(Be,this.tiledCubeTextureLevel)),y.panoPicture.map.needsRender===!0&&(y.panoPicture.map.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0)),((p=y.panoPicture)===null||p===void 0?void 0:p.luminanceMap)instanceof qe&&(y.panoPicture.luminanceMap.maxRequest=this.tileMaxRequest,y.panoPicture.luminanceMap.update(Te,Math.min(Be,this.tiledCubeTextureLevel)),y.panoPicture.luminanceMap.needsRender===!0&&(y.panoPicture.luminanceMap.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0)));{var Ee=this.tiling.object.visible;if(this.initAnimationed){var Qe=y.panoId,Ie=this.works.getResolvedObserver(Qe);Ie?Fi(this.camera.position,Ie.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==Qe&&this.tiling.cleanup(),this.tiling.panoId=Qe,this.tiling.setResource((h=(A=Ie.images)===null||A===void 0?void 0:A.tiles)!==null&&h!==void 0?h:[],this.enableIOSEDR&&Ie.images.luminance?Ie.images.luminance:null),this.tiling.setFetcher(pt(Ie.work)),this.tiling.setRotation(Ie.quaternion),this.tiling.setPosition(Ie.position),this.tiling.maxRequest=this.tileMaxRequest,Be>this.tiledCubeTextureLevel?this.tiling.update(Te,Be,e):this.tiling.update(Te,0,e)):this.tiling.object.visible=!1:this.tiling.object.visible=!1}else this.tiling.object.visible=!1;Ee!==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(ce(this.cameraMotion.value.fov/45,0,1))}},t.prototype.render=function(e,r){var i=this.renderer.getRenderTarget(),a=this.works.getResolvedObserver(this.currentPano);a&&a.video&&(this.needsRender=!0,this.modelSceneNeedsRender=!0),this.updateScreenBuffer(r),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,i),this.renderer.autoClearDepth=!1,this.renderer.autoClearColor=!0,this.copyPass.render(this.modelRenderTarget,i),this.renderer.setRenderTarget(i),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 k0(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(ve())[1],r=this.locationMotion.getKeyFrameSegment(ve())[1],i=this.panoResourceFromLocationMotionKeyframe(r),a=this.works.getResolvedObserver(i.panoId);return{workCode:a?a.work.workCode:this.currentPano.workCode,panoIndex:a?a.panoIndex:this.currentPano.panoIndex,mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:a?a.position.clone():this.camera.position.clone(),distance:this.locationMotion.value.distance}},t.prototype.moveToPano=function(e,r,i){var a=this,o,s,u,l,c=(o=r.effect)!==null&&o!==void 0?o:"fly";this.userAction=i,this.stopMomentumMovement();var d=this.works.getResolvedObserver(e);if(!d)throw new Error("Invalid PanoId ".concat(JSON.stringify(e)));var p=mi(d.images.up),A=this.imageOptions.size;typeof A=="undefined"&&d&&p&&(A=Number(p)),typeof A=="undefined"&&(A=2048);var h=this.imageOptions.transform,v=O({key:"pano.".concat(d.panoId)},_t(this.imageOptions,["format","size","quality","sharpen","mappings"])),g=d.images,m=(u=(s=d.images.tiles)===null||s===void 0?void 0:s.filter(function(L){return L.size>A}))!==null&&u!==void 0?u:null,y=h,b={key:"pano_luminance.".concat(d.panoId),size:v.size?v.size/2:void 0},x=this.enableIOSEDR&&d.images.luminance?d.images.luminance:null,w=function(){if(!d.images.tiles||!x)return null;var L=mi(x.up);return L?m==null?void 0:m.map(function(D){var V=D.size*D.scale/2;return L<V?{level:D.level,size:V,scale:1,back:tr(x.back,V),front:tr(x.front,V),left:tr(x.left,V),right:tr(x.right,V),up:tr(x.up,V),down:tr(x.down,V)}:{level:D.level,size:L,scale:V/L,back:x.back,front:x.front,left:x.left,right:x.right,up:x.up,down:x.down}}):null}(),M="pano:"+ma([g,v,h,this.tiledCubeTextureLevel]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===M)return;var S=this.pendingTextureTask.panoId;(l=this.panoMeshes[S])===null||l===void 0||l.setProgress(0),this.emit("pano.texture.abort",X("pano.texture.abort",{error:null,progress:0,meta:null,pano:d.pano}))}var E="move-to-pano-"+d.panoId;this.pending.add(E);var P=this.models.getMaterial()||{},B=P.pano0,C=P.pano1,I;if(B&&B.map.name===M&&B.luminanceMap!==null===this.enableIOSEDR?I=B:(C==null?void 0:C.map.name)===M&&C.luminanceMap!==null===this.enableIOSEDR&&(I=C),I){var F={panoId:d.panoId,effect:c,panoPicture:{zoom:1,map:I.map,luminanceMap:I.luminanceMap,matrix:new f.Matrix4().compose(d.position,d.quaternion,D0)},position:d.position.clone(),fixCameraTransform:new f.Matrix4};Mt.shared.add(function(){a.pending.delete(E),a.doMoveToPano(d.pano,F,r)},!0,1);return}this.pendingTextureTask={panoId:d.panoId,hash:M,onLoad:function(L,D){var V;if(a.pending.delete(E),a.destroyed)L.body.dispose();else{L.body.name=M;var z={panoId:d.panoId,effect:c,panoPicture:{zoom:1,map:L.body,luminanceMap:(V=D==null?void 0:D.body)!==null&&V!==void 0?V:null,matrix:new f.Matrix4().compose(d.position,d.quaternion,D0)},position:d.position.clone(),fixCameraTransform:new f.Matrix4};a.doMoveToPano(d.pano,z,r)}},onError:function(L){a.pending.delete(E);var D=O(O(O({},d.pano),{mode:a.mode}),tt(a.camera.pose));a.emit("pano.error",X("pano.error",{error:L,userAction:a.userAction,options:r,prevPano:a.currentPano,progress:0,state:D})),a.emit("pano.cancel",X("pano.cancel",{error:L,userAction:a.userAction,options:r,prevPano:a.currentPano,progress:0,state:D})),a.emit("error",L),r.moveCancelCallback&&r.moveCancelCallback()}};var T=this.panoMeshes[d.panoId];T&&T.tap&&T.tap(),Promise.all([this.tileLevelForFov&&m&&m.length?this.textureLoader.loadTiledCubeTexture(g,m,{tileMaxLevel:this.tiledCubeTextureLevel,imageURL:{transform:h,options:v},minFilter:f.LinearFilter,magFilter:f.LinearFilter,generateMipmaps:!1,format:f.RGBAFormat,viaAjax:!0,fetcher:pt(d.work)},void 0,void 0,function(L){var D,V;a.emit("pano.texture.progress",X("pano.texture.progress",{error:null,progress:L,meta:null,pano:d.pano})),((D=a.pendingTextureTask)===null||D===void 0?void 0:D.hash)===M&&((V=a.panoMeshes[d.panoId])===null||V===void 0||V.setProgress(L))},this.renderer):this.textureLoader.loadCubeTexture(g,{imageURL:{transform:h,options:v},format:f.RGBAFormat,viaAjax:!0,fetcher:pt(d.work)},void 0,void 0,function(L){var D,V;a.emit("pano.texture.progress",X("pano.texture.progress",{error:null,progress:L,meta:null,pano:d.pano})),((D=a.pendingTextureTask)===null||D===void 0?void 0:D.hash)===M&&((V=a.panoMeshes[d.panoId])===null||V===void 0||V.setProgress(L))},this.renderer),x?this.tileLevelForFov&&w&&w.length?this.textureLoader.loadTiledCubeTexture(x,w,{tileMaxLevel:this.tiledCubeTextureLevel,imageURL:{transform:y,options:b},minFilter:f.LinearFilter,magFilter:f.LinearFilter,generateMipmaps:!1,fetcher:pt(d.work)},void 0,void 0,void 0,this.renderer).catch(function(){return null}):this.textureLoader.loadCubeTexture(x,{imageURL:{transform:y,options:b},fetcher:pt(d.work)},void 0,void 0,void 0,this.renderer).catch(function(){return null}):Promise.resolve(null)]).then(function(L){var D,V,z=L[0],U=L[1];((D=a.pendingTextureTask)===null||D===void 0?void 0:D.hash)===M?(a.pendingTextureTask.onLoad(z,U),(V=a.panoMeshes[d.panoId])===null||V===void 0||V.setProgress(0),delete a.pendingTextureTask,a.emit("pano.texture.success",X("pano.texture.success",{error:null,progress:1,meta:z.meta,pano:d.pano}))):(z.body.dispose(),U==null||U.body.dispose())}).catch(function(L){var D,V;((D=a.pendingTextureTask)===null||D===void 0?void 0:D.hash)===M&&(a.pendingTextureTask.onError(L),(V=a.panoMeshes[d.panoId])===null||V===void 0||V.setProgress(0),delete a.pendingTextureTask,a.emit("pano.texture.error",X("pano.texture.error",{error:L,progress:0,meta:null,pano:d.pano})),a.emit("error",L))}),this.emit("pano.texture.load",X("pano.texture.load",{error:null,progress:0,meta:null,pano:d.pano}))},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise(function(r){var i=e.initial,a=i.duration,o=i.effect,s=i.userAction;e.userAction=s;var u=t.initAnimationEndState(e),l={workCode:u.workCode,panoIndex:u.panoIndex},c={modelAlpha:0},d={perspToOrtho:0},p=!1;e.moveToPano(l,{longitude:u.longitude,latitude:u.latitude,fov:u.fov,effect:o,duration:a,moveStartCallback:function(A){p=!0,e.perspToOrthoMotion.set(d,a).catch(Q),e.modelAlphaMotion.setKeyframes([{progress:0,value:O({},e.modelAlphaMotion.value)},{progress:.6,value:O({},e.modelAlphaMotion.value)},{progress:1,value:c}],a).catch(Q),e.emit("initAnimation.start",X("initAnimation.start",{state:A,userAction:e.userAction}))},moveEndCallback:function(A){e.emit("initAnimation.end",X("initAnimation.end",{state:A,userAction:e.userAction})),e.initAnimationed=!0,r()},moveCancelCallback:function(){var A=O(O(O({},l),{mode:e.mode}),tt(e.camera.pose));p===!1&&e.emit("initAnimation.start",X("initAnimation.start",{state:A,userAction:e.userAction})),e.emit("initAnimation.end",X("initAnimation.end",{state:A,userAction:e.userAction})),e.initAnimationed=!0,r()}},s)})},t.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},t.prototype.locationMotionKeyframesLength=function(e){for(var r=0,i=1;i<e.length;i++){var a=this.panoResourceFromLocationMotionKeyframe(e[i-1]).position,o=this.panoResourceFromLocationMotionKeyframe(e[i]).position,s=a.distanceTo(o)*(e[i].value.count-e[i-1].value.count);r+=s}return r},t.prototype.updatePanoMeshes=function(){for(var e=this,r={},i=Object.keys(this.panoMeshes),a=0,o=i;a<o.length;a++){var s=o[a],u=this.panoMeshes[s];r[s]=u,delete this.panoMeshes[s]}for(var l=1,c={},d=function(M){var S=Br(M.accessibleIds,function(P){var B=e.works.getResolvedObserver(P);if(!B)return 1/0;var C=B.standingPosition.distanceTo(M.standingPosition);return ce(C,1,1/0)},!0),E=S[1];c[M.panoId]===void 0&&(c[M.panoId]=E)},p=0,A=this.works.resolvedObservers;p<A.length;p++){var h=A[p];d(h)}var v=Object.keys(c).map(function(M){return c[M]});if(v.length){var g=v.reduce(function(M,S){return M+S},0)/v.length;l=ce(g*.6,1,3)}for(var m=0,y=this.works.resolvedObservers;m<y.length;m++){var h=y[m],u=void 0;r[h.panoId]?(u=r[h.panoId],u.loading===!0&&h.loadable===!1&&u.setLoading(!1),delete r[h.panoId]):(u=this.panoCircleMeshCreator(h.pano),u.name="PanoCircleMesh_"+h.panoId,this.helper.add(u)),u.scale.set(l,1,l),u.position.copy(h.standingPosition),this.panoMeshes[h.panoId]=u}for(var b=0,x=Object.keys(r);b<x.length;b++){var w=x[b];this.helper.remove(r[w]),r[w].dispose(),delete r[w]}},t.prototype.doMoveToPano=function(e,r,i){var a=this,o,s,u,l,c,d,p,A,h,v,g;i===void 0&&(i={});var m=ve(),y=kt();this.tiling.cleanup(),this.panoResources[y]=r;var b=1,x,w,M;if(this.locationMotion.ended){var S=this.locationMotion.getKeyFrameSegment(m);S[0];var E=S[1],P=this.locationMotion.value,B=((o=this.panoResourceFromLocationMotionKeyframe(E))!==null&&o!==void 0?o:this.camera).position,C=r.position;x=Math.max(B.distanceTo(C),b),w=[{key:E.key,progress:0,value:O(O({},P),{count:0})},{key:y,progress:1,value:{distance:0,count:1}}],M=0}else{var I=this.locationMotion.getKeyFrameSegment(m),F=I[0],E=I[1],P=this.locationMotion.value,T=this.panoResourceFromLocationMotionKeyframe(F).position,B=this.panoResourceFromLocationMotionKeyframe(E).position,C=r.position,L=E.value.count-P.count,D=Math.max(T.distanceTo(B),b)*L,V=Math.max(B.distanceTo(C),b);x=D+V,w=[{key:F.key,progress:0,value:O({},P)},{key:E.key,progress:D/x,value:E.value},{key:y,progress:1,value:{count:E.value.count+1,distance:0}}];var z=this.locationMotionKeyframesLength(this.locationMotion.keyframes),U=this.locationMotionKeyframesLength(w);z===0||z===0?M=0:M=this.locationMotion.getProgressVelocity(m)*z/U}var q=r.effect==="instant"?0:this.calculateMovingDuration(i.duration,r.effect==="fly"?x:0),G={longitude:i.longitude,latitude:i.latitude,fov:i.fov},K=O(O({},e),{mode:this.mode,longitude:(s=G.longitude)!==null&&s!==void 0?s:this.camera.pose.longitude,latitude:(u=G.latitude)!==null&&u!==void 0?u:this.camera.pose.latitude,fov:(l=G.fov)!==null&&l!==void 0?l:this.camera.pose.fov,offset:r.position.clone(),distance:this.camera.pose.distance}),_=this.currentPano;if(this.emit("pano.moveTo",X("pano.moveTo",{options:i,prevPano:_,progress:0,state:K,userAction:this.userAction,error:null})),i.moveStartCallback&&i.moveStartCallback(K),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=Q,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),r.effect==="fly")this.cameraMotion.set(G,q).catch(Q);else{var J=nr({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude}),W=nr({longitude:(c=G.longitude)!==null&&c!==void 0?c:this.cameraMotion.value.longitude,latitude:(d=G.latitude)!==null&&d!==void 0?d:this.cameraMotion.value.latitude}),$=new f.Object3D;$.lookAt(J);var Y=new f.Matrix4().makeRotationFromQuaternion($.quaternion);$.lookAt(W);var Z=new f.Matrix4().makeRotationFromQuaternion($.quaternion),oe=new f.Matrix4().getInverse(Y).premultiply(Z),ne=this.cameraMotion.value.fov,de=(p=G.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 ye=ce(de*se,1,170),ie=0;ie<w.length-1;ie++){var xe=w[ie].key;if(xe){var Le=this.panoResources[xe];Le&&(Le.fixCameraTransform.copy(oe),Le.panoPicture&&(Le.panoPicture.zoom=Math.tan(ne/2/180*Math.PI)/Math.tan(ye/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=G.longitude)!==null&&A!==void 0?A:this.cameraMotion.value.longitude,latitude:(h=G.latitude)!==null&&h!==void 0?h:this.cameraMotion.value.latitude,fov:ye}},{progress:1,value:{longitude:(v=G.longitude)!==null&&v!==void 0?v:this.cameraMotion.value.longitude,latitude:(g=G.latitude)!==null&&g!==void 0?g:this.cameraMotion.value.latitude,fov:de}}],q).catch(Q)}var Ce=this.locationMotion.setKeyframes(w,q,M);Ce.then(function(){for(var Oe,ee,re=0,H=a.models;re<H.length;re++){var Be=H[re];Be.show()}var Te=O(O({},e),{mode:a.mode,longitude:a.camera.pose.longitude,latitude:a.camera.pose.latitude,fov:a.camera.pose.fov,offset:a.camera.pose.offset.clone(),distance:a.camera.pose.distance});a.emit("pano.arrived",X("pano.arrived",{options:i,prevPano:_,progress:1,state:Te,userAction:a.userAction,error:null})),i.moveEndCallback&&i.moveEndCallback(Te);var Ee=a.works.getResolvedObserver(e);if(Ee&&Ee.video&&a.videoTexture&&a.videoTexture.image instanceof HTMLVideoElement){var Qe=zm.clone().multiply((ee=(Oe=a.models.getMaterial().pano1)===null||Oe===void 0?void 0:Oe.matrix)!==null&&ee!==void 0?ee:new f.Matrix4).multiply(Ee.video.matrix),Ie={map:a.videoTexture,size:Ee.video.size,matrix:Qe,alpha:1},we=kt(),be=a.videoTexture.image;be.setAttribute("uuid",we),Ul().then(function(Ae){Ae&&Ee.video&&be.getAttribute("uuid")===we&&(be.oncanplay=function(){be.oncanplay=Q,be.play()},be.ontimeupdate=function(){be.currentTime>.5&&(be.ontimeupdate=Q,a.panoVideo.setMaterial(Ie))},be.src=Ee.video.source)}).catch(function(){be.removeAttribute("uuid")})}},function(){a.emit("pano.cancel",X("pano.cancel",{options:i,prevPano:_,progress:0,state:K,userAction:a.userAction,error:null})),i.moveCancelCallback&&i.moveCancelCallback()})},t.prototype.getForwardObserverOrNot=function(e){var r=this,i=this.works.getResolvedObserver(this.currentPano);if(!i)return null;var a=e!=null?e:new f.Raycaster(this.camera.position.clone(),this.camera.getDirection(new f.Vector3));a.params.Points={threshold:.1};var o=i.standingPosition.clone();if(i.position.distanceTo(a.ray.origin)>1){var s=this.models.intersectRaycaster(new f.Raycaster(a.ray.origin,new f.Vector3(0,-1,0)))[0];s&&s.distance<=2?o.copy(s.point):o.copy(a.ray.origin).add(new f.Vector3(0,-1.5,0))}var u=this.models.intersectRaycaster(a)[0],l=u?u.point:a.ray.origin.clone().add(a.ray.direction.clone().normalize().multiplyScalar(3)),c=l.clone().sub(o).normalize();if(c.length()===0)return null;for(var d=i.accessibleIds.filter(function(w){if(w===He(r.currentPano))return!1;var M=r.works.getResolvedObserver(w);if(!M)return!1;var S=M.standingPosition.clone().project(r.camera);return Math.abs(S.z)>1||Math.abs(S.x)>1||Math.abs(S.y)>1?!1:M.loadable||M.active}),p=d.slice().sort(function(w,M){var S=r.works.getResolvedObserver(w).standingPosition.clone().distanceTo(o),E=r.works.getResolvedObserver(M).standingPosition.clone().distanceTo(o);return S-E}),A=0,h=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];A<h.length;A++)for(var v=h[A],g=0,m=p;g<m.length;g++){var y=m[g],b=this.works.getResolvedObserver(y);if(b){var x=b.standingPosition.clone().sub(o);if(x&&x.length()!==0&&c.angleTo(x)<v)return b}}return null},t.prototype.onTapGesture=function(e){var r=this,i;if(this.userAction=e.userAction,this.stopMomentumMovement(),!!this.initAnimationed){if(!this.locationMotion.ended){var a=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]);if(a.panoId!==He(this.currentPano))return}var o=e.center.raycaster,s=this.camera.getDirection(new f.Vector3).setY(0),u=null,l=this.works.getResolvedObserver(this.currentPano);if(l){var c=l.accessibleIds.filter(function(U){if(U===He(r.currentPano))return!1;var q=r.works.getResolvedObserver(U);return!q||q.position.distanceTo(r.camera.position)>r.maxAccessibleDistance?!1:q.loadable||q.active}),d=this.models.intersectRaycaster(o)[0];if(d){var p=Br(c,function(U){var q=r.works.getResolvedObserver(U);if(!q)return 1/0;var G=q.standingPosition.clone();return G.distanceTo(d.point)},!0),A=p[0],h=p[1];A&&h<this.panoTapTriggerRadius&&(u=(i=this.works.getResolvedObserver(A))!==null&&i!==void 0?i:null)}u||(u=this.getForwardObserverOrNot(o));for(var v=0,g=this.locationMotion.keyframes;v<g.length;v++){var m=g[v],y=this.panoResourceFromLocationMotionKeyframe(m);if(!(m.progress<this.locationMotion.progress)&&u&&y.panoId===u.panoId){u=null;break}}if(!u)this.emit("gesture.tap",e),e.defaultPrevented||this.locationMotion.ended===!0&&this.cameraBounce();else{for(var b={},x=Math.PI/6,w=Math.PI/12,M=u.position.clone().setY(0).sub(l.position.clone().setY(0)).normalize(),S=[],E=[],P=[],B=0,C=u.accessibleIds;B<C.length;B++){var A=C[B],I=Lt(A);if(!(Ar(I,this.currentPano)||Ar(I,u.pano))){var F=this.works.getResolvedObserver(A);if(F){var T=F.position.clone().sub(u.position).setY(0);M.angleTo(T)<x&&P.push(T)}}}var L=P.length>0?P:vt(vt([],S,!0),E,!0),D=L.slice().sort(function(U,q){return U.angleTo(M)-q.angleTo(M)})[0];D&&D.angleTo(s)>w&&(b.longitude=Math.atan2(-D.x,-D.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(b.latitude=ce(0,this.minLatitude,this.maxLatitude));var V=O({},e.state);if(V.workCode=u.pano.workCode,V.panoIndex=u.pano.panoIndex,b.longitude!==void 0&&(V.longitude=b.longitude),b.latitude!==void 0&&(V.latitude=b.latitude),b.fov!==void 0&&(V.fov=b.fov),V.distance=0,V.offset=u.position.clone(),e.state=V,this.emit("gesture.tap",e),!e.defaultPrevented){if(this.emit("pano.select",X("pano.select",{prevPano:this.currentPano,state:V,userAction:e.userAction,options:b,progress:0,error:null})),u&&!u.active){var z=u.panoId;this.panoMeshes[z]&&(this.panoMeshes[z].setDisabled(!1),this.panoMeshes[z].setLoading(!0))}u&&u.active&&this.emit("pano.request",X("pano.request",{userAction:e.userAction,prevPano:this.currentPano,progress:0,state:V,options:b,error:null}))}}}}},t}(Ql),Qr=Math.PI/180,Un=180/Math.PI,ql=.001,Hl=1,pi=function(){var n=typeof navigator!="undefined"&&/iPad|iPhone|iPod/.test(navigator.platform);return function(){return n}}(),Qm=function(){var n=typeof navigator!="undefined"&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent);return function(){return n}}(),Um=function(){var n=typeof navigator!="undefined"&&navigator.userAgent.indexOf("Firefox")!==-1&&navigator.userAgent.indexOf("Android")!==-1;return function(){return n}}(),Gl=function(){var n=typeof navigator!="undefined"?navigator.userAgent.match(/.*Chrome\/([0-9]+)/):null,t=n?parseInt(n[1],10):null;return function(){return t}}(),qm=function(){var n=!1;if(Gl()===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],i=e[3];n=parseInt(r,10)===3325&&parseInt(i,10)<148}}return function(){return n}}(),Hm=function(){var n=pi()&&Qm()&&typeof navigator!="undefined"&&navigator.userAgent.indexOf("13_4")!==-1;return function(){return n}}(),Kl=function(){var n=typeof navigator!="undefined"&&navigator.userAgent.indexOf("R7 Build")!==-1;return function(){return n}}();function N0(){var n=typeof window!="undefined"&&(window.orientation==90||window.orientation==-90);return Kl()?!n:n}function Gm(n){return!(isNaN(n)||n<=ql||n>Hl)}function Km(n){if(n.w>1)return 0;var t=2*Math.acos(n.w);return t}var z0=function(){var n={};return function(t,e){n[t]===void 0&&(console.warn("cardboard: "+e),n[t]=!0)}}();function Q0(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 jm(){if(typeof window=="undefined"||typeof document=="undefined")return!1;var n=window.self!==window.top,t=Q0(document.referrer),e=Q0(window.location.href);return n&&t!==e}var U0=function(){function n(r,i,a){var o=i?i[0]:0,s=i?i[1]:0,u=i?i[2]:0,l=i?i[3]:1,c=o+o,d=s+s,p=u+u,A=o*c,h=o*d,v=o*p,g=s*d,m=s*p,y=u*p,b=l*c,x=l*d,w=l*p;return r[0]=1-(g+y),r[1]=h+w,r[2]=v-x,r[3]=0,r[4]=h-w,r[5]=1-(A+y),r[6]=m+b,r[7]=0,r[8]=v+x,r[9]=m-b,r[10]=1-(A+g),r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function t(r,i,a){var o=a[0],s=a[1],u=a[2],l,c,d,p,A,h,v,g,m,y,b,x;return i===r?(r[12]=i[0]*o+i[4]*s+i[8]*u+i[12],r[13]=i[1]*o+i[5]*s+i[9]*u+i[13],r[14]=i[2]*o+i[6]*s+i[10]*u+i[14],r[15]=i[3]*o+i[7]*s+i[11]*u+i[15]):(l=i[0],c=i[1],d=i[2],p=i[3],A=i[4],h=i[5],v=i[6],g=i[7],m=i[8],y=i[9],b=i[10],x=i[11],r[0]=l,r[1]=c,r[2]=d,r[3]=p,r[4]=A,r[5]=h,r[6]=v,r[7]=g,r[8]=m,r[9]=y,r[10]=b,r[11]=x,r[12]=l*o+A*s+m*u+i[12],r[13]=c*o+h*s+y*u+i[13],r[14]=d*o+v*s+b*u+i[14],r[15]=p*o+g*s+x*u+i[15]),r}function e(r,i){var a=i[0],o=i[1],s=i[2],u=i[3],l=i[4],c=i[5],d=i[6],p=i[7],A=i[8],h=i[9],v=i[10],g=i[11],m=i[12],y=i[13],b=i[14],x=i[15],w=a*c-o*l,M=a*d-s*l,S=a*p-u*l,E=o*d-s*c,P=o*p-u*c,B=s*p-u*d,C=A*y-h*m,I=A*b-v*m,F=A*x-g*m,T=h*b-v*y,L=h*x-g*y,D=v*x-g*b,V=w*D-M*L+S*T+E*F-P*I+B*C;return V?(V=1/V,r[0]=(c*D-d*L+p*T)*V,r[1]=(s*L-o*D-u*T)*V,r[2]=(y*B-b*P+x*E)*V,r[3]=(v*P-h*B-g*E)*V,r[4]=(d*F-l*D-p*I)*V,r[5]=(a*D-s*F+u*I)*V,r[6]=(b*S-m*B-x*M)*V,r[7]=(A*B-v*S+g*M)*V,r[8]=(l*L-c*F+p*C)*V,r[9]=(o*F-a*L-u*C)*V,r[10]=(m*P-y*S+x*w)*V,r[11]=(h*S-A*P-g*w)*V,r[12]=(c*I-l*T-d*C)*V,r[13]=(a*T-o*I+s*C)*V,r[14]=(y*M-m*E-b*w)*V,r[15]=(A*E-h*M+v*w)*V,r):null}return function(r,i,a){n(r,i),a&&t(r,r,a),e(r,r)}}(),uo=function(){function n(t,e){t===void 0&&(t=new f.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}(),_m=function(){function n(t,e){this.kFilter=t,this.isDebug=e,this.currentAccelMeasurement=new uo,this.currentGyroMeasurement=new uo,this.previousGyroMeasurement=new uo,pi()?this.filterQ=new f.Quaternion(-1,0,0,1):this.filterQ=new f.Quaternion(1,0,0,1),this.previousFilterQ=new f.Quaternion,this.previousFilterQ.copy(this.filterQ),this.accelQ=new f.Quaternion,this.isOrientationInitialized=!1,this.estimatedGravity=new f.Vector3,this.measuredGravity=new f.Vector3,this.gyroIntegralQ=new f.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;Gm(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 f.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 i=new f.Quaternion;i.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),i.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",Un*Km(i),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 a=new f.Quaternion;a.copy(this.filterQ),a.multiply(i),this.filterQ.slerp(a,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},n.prototype.accelToQuaternion_=function(t){var e=new f.Vector3;e.copy(t),e.normalize();var r=new f.Quaternion;return r.setFromUnitVectors(new f.Vector3(0,0,-1),e),r.inverse(),r},n.prototype.gyroToQuaternionDelta_=function(t,e){var r=new f.Quaternion,i=new f.Vector3;return i.copy(t),i.normalize(),r.setFromAxisAngle(i,t.length()*e),r},n}(),Jm=function(){function n(t,e){this.predictionTimeS=t,this.isDebug=e,this.previousQ=new f.Quaternion,this.previousTimestampS=null,this.deltaQ=new f.Quaternion,this.outQ=new f.Quaternion}return n.prototype.getPrediction=function(t,e,r){if(!this.previousTimestampS)return this.previousQ.copy(t),this.previousTimestampS=r,t;var i=new f.Vector3;i.copy(e),i.normalize();var a=e.length();if(a<Qr*20)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(Un*a).toFixed(1)),this.outQ.copy(t),this.previousQ.copy(t),this.outQ;var o=a*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(i,o),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(t),this.previousTimestampS=r,this.outQ},n}(),Xm=function(){function n(t){this.coefficients=t}return n.prototype.distortInverse=function(t){for(var e=0,r=1,i=t-this.distort(e);Math.abs(r-e)>1e-4;){var a=t-this.distort(r),o=r-a*((r-e)/(a-i));e=r,r=o,i=a}return r},n.prototype.distort=function(t){for(var e=t*t,r=0,i=0;i<this.coefficients.length;i++)r=e*(r+this.coefficients[i]);return(r+1)*t},n}(),Wm=function(){function n(){this.angularAcceleration=null,this.angularVelocity=null,this.linearAcceleration=null,this.linearVelocity=null,this.orientation=null,this.position=null}return n}(),q0=function(){function n(){this.leftDegrees=0,this.rightDegrees=0,this.upDegrees=0,this.downDegrees=0}return n}(),Zm=function(){function n(t,e,r,i){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 f.Vector3,this.gyroscope=new f.Vector3,this.filter=new _m(t,i),this.posePredictor=new Jm(e,i),this.isFirefoxAndroid=Um(),this.isIOS=pi();var a=Gl();this.isDeviceMotionInRadians=!this.isIOS&&a!==null&&a<66,this.isWithoutDeviceMotion=qm()||Hm(),this.filterToWorldQ=new f.Quaternion,pi()?this.filterToWorldQ.setFromAxisAngle(new f.Vector3(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new f.Vector3(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new f.Quaternion,this.worldToScreenQ=new f.Quaternion,this.originalPoseAdjustQ=new f.Quaternion;var o=typeof window!="undefined"?-window.orientation*Math.PI/180:0;this.originalPoseAdjustQ.setFromAxisAngle(new f.Vector3(0,0,1),o),this.setScreenTransform_(),N0()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new f.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 a=new f.Quaternion().setFromAxisAngle(new f.Vector3(0,0,-1),0),o=new f.Quaternion;return typeof window!="undefined"&&window.orientation===-90?o.setFromAxisAngle(new f.Vector3(0,1,0),Math.PI/-2):o.setFromAxisAngle(new f.Vector3(0,1,0),Math.PI/2),a.multiply(o)}(),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||function(){var a=new f.Quaternion;return a.setFromAxisAngle(new f.Vector3(1,0,0),-Math.PI/2),a}(),t=this._deviceOrientationQ;var e=new f.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 i=new f.Quaternion;return i.copy(this.filterToWorldQ),i.multiply(this.resetQ),i.multiply(t),i.multiply(this.worldToScreenQ),this.yawOnly&&(i.x=0,i.z=0,i.normalize()),this.orientationOut_[0]=i.x,this.orientationOut_[1]=i.y,this.orientationOut_[2]=i.z,this.orientationOut_[3]=i.w,this.orientationOut_},n.prototype.getPose=function(){var t=new Wm;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(),N0()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},n.prototype.getFrameData=function(t){var e=this.getOrientation(),r=this.getEyeOffset(),i=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(i.left),t.rightProjectionMatrix.set(i.right),U0(t.leftViewMatrix,e,r.left),U0(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),i=this.onDeviceOrientation_.bind(this);return pi()&&jm()&&window.addEventListener("message",r),window.addEventListener("orientationchange",e),this.isWithoutDeviceMotion?window.addEventListener("deviceorientation",i):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,i={left:[],right:[]};{var a=t.left.upDegrees*Qr,o=t.left.downDegrees*Qr,s=t.left.leftDegrees*Qr,u=t.left.rightDegrees*Qr,l=2/(s+u),c=2/(a+o);i.left[0]=l,i.left[1]=0,i.left[2]=0,i.left[3]=0,i.left[4]=0,i.left[5]=c,i.left[6]=0,i.left[7]=0,i.left[8]=-((s-u)*l*.5),i.left[9]=(a-o)*c*.5,i.left[10]=r/(e-r),i.left[11]=-1,i.left[12]=0,i.left[13]=0,i.left[14]=r*e/(e-r),i.left[15]=0}{var a=t.right.upDegrees*Qr,o=t.right.downDegrees*Qr,s=t.right.leftDegrees*Qr,u=t.right.rightDegrees*Qr,l=2/(s+u),c=2/(a+o);i.right[0]=l,i.right[1]=0,i.right[2]=0,i.right[3]=0,i.right[4]=0,i.right[5]=c,i.right[6]=0,i.right[7]=0,i.right[8]=-((s-u)*l*.5),i.right[9]=(a-o)*c*.5,i.right[10]=r/(e-r),i.right[11]=-1,i.right[12]=0,i.right[13]=0,i.right[14]=r*e/(e-r),i.right[15]=0}return i},n.prototype.getEyeFieldOfView=function(){var t=this.viewer,e=this.device,r=new Xm(t.distortionCoefficients),i=t.screenLensDistance,a=(e.widthMeters-t.interLensDistance)/2,o=t.interLensDistance/2,s=t.baselineLensDistance-e.bevelMeters,u=e.heightMeters-s,l=Un*Math.atan(r.distort(a/i)),c=Un*Math.atan(r.distort(o/i)),d=Un*Math.atan(r.distort(s/i)),p=Un*Math.atan(r.distort(u/i)),A=new q0,h=new q0;return A.leftDegrees=Math.min(l,t.fov),A.rightDegrees=Math.min(c,t.fov),A.downDegrees=Math.min(d,t.fov),A.upDegrees=Math.min(p,t.fov),h.leftDegrees=A.rightDegrees,h.rightDegrees=A.leftDegrees,h.upDegrees=A.upDegrees,h.downDegrees=A.downDegrees,{left:A,right:h}},n.prototype.onDeviceOrientation_=function(t){this._deviceOrientationQ=this._deviceOrientationQ||new f.Quaternion;var e=t.alpha,r=t.beta,i=t.gamma;e=(e||0)*Math.PI/180,r=(r||0)*Math.PI/180,i=(i||0)*Math.PI/180,this._deviceOrientationQ.setFromEuler(new f.Euler(e,r,-i,"YXZ"))},n.prototype.onDeviceMotion_=function(t){this.updateDeviceMotion_(t)},n.prototype.updateDeviceMotion_=function(t){var e=t.accelerationIncludingGravity,r=t.rotationRate,i=t.timeStamp/1e3,a=i-this.previousTimestampS;if(a<0){z0("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),this.previousTimestampS=i;return}else if(a<=ql||a>Hl){z0("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),this.previousTimestampS=i;return}e&&(this.accelerometer.set(-e.x,-e.y,-e.z),r&&(Kl()?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,i)),this.filter.addAccelMeasurement(this.accelerometer,i)),this.previousTimestampS=i},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 f.Vector3(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new f.Vector3(0,0,1),Math.PI/2);break}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},n}(),Gi=[0,0,.5,1],Ki=[.5,0,.5,1],Ym=function(){function n(t){var e=this;this.renderer=t,this.sensor=new Zm(.98,.04,!1,!1),this.scale=1,this.cameraL=new f.PerspectiveCamera,this.cameraR=new f.PerspectiveCamera;var r=this.sensor.start();this.dispose=function(){var i=e.renderer.getSize(new f.Vector2);e.renderer.setScissor(0,0,i.width,i.height),e.renderer.setViewport(0,0,i.width,i.height),e.renderer.setScissorTest(!1),r()}}return n.prototype.render=function(t,e){var r=this.renderer.getSize(new f.Vector2);if(r.width>r.height){var i=t.autoUpdate;i&&(t.updateMatrixWorld(),t.autoUpdate=!1);var a={x:Math.round(r.width*Gi[0]),y:Math.round(r.height*Gi[1]),width:Math.round(r.width*Gi[2]),height:Math.round(r.height*Gi[3])},o={x:Math.round(r.width*Ki[0]),y:Math.round(r.height*Ki[1]),width:Math.round(r.width*Ki[2]),height:Math.round(r.height*Ki[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 s=this.sensor.getEyeOffset();this.cameraL.translateOnAxis(new f.Vector3().fromArray(s.left),this.scale),this.cameraR.translateOnAxis(new f.Vector3().fromArray(s.right),this.scale);var u=this.sensor.getEyeProjectionMatrix();this.cameraL.projectionMatrix.elements=u.left.slice(),this.cameraR.projectionMatrix.elements=u.right.slice(),this.renderer.setViewport(a.x,a.y,a.width,a.height),this.renderer.setScissor(a.x,a.y,a.width,a.height),this.renderer.render(t,this.cameraL),this.renderer.setViewport(o.x,o.y,o.width,o.height),this.renderer.setScissor(o.x,o.y,o.width,o.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),i&&(t.autoUpdate=!0)}else this.renderer.render(t,e)},n.prototype.dispose=function(){},n}();const $m="data:image/png;base64,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",eA="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK4AAAClCAMAAADyFTYfAAAC+lBMVEUAAABISEhKSkpGRkZERERCQkJOTk45OTlBQUFQUFBSUlJUVFQ7OztYWFg/Pz8/Pz9aWlpkZGQ3NzdcXFxeXl5MTExHR0dhYWFJSUk9PT1WVlZMTEygoKBERERFRUVmZmZQUFA9PT1LS0tra2tPT09ubm5SUlI2NjZXV1czMzOpqalTU1O3t7dVVVVoaGhaWlpqamq1tbWhoaGenp6lpaWurq6ysrJZWVmjo6OgoKBUVFRdXV1cXFyvr6+0tLSwsLCrq6ubm5syMjKbm5twcHCQkJCLi4uGhobLy8uCgoJ9fX1ycnLPz894eHizs7NxcXFgYGCVlZWYmJh7e3umpqa3t7fOzs7JycnFxcWvr6+JiYl0dHRra2uSkpKNjY2IiIi4uLiUlJSsrKx3d3fDw8OHh4eQkJB9fX2dnZ2UlJR/f3++vr6RkZFzc3ODg4OioqKcnJyUlJSCgoJ4eHirq6u4uLh4eHiBgYF2dnaLi4uMjIyjo6OZmZm1tbWwsLCcnJyxsbF6enqAgICwsLC9vb26urqjo6OKioqsrKyWlpaoqKhbW1u2traCgoJ6enqZmZmbm5t+fn6JiYmgoKC0tLS4uLhmZma0tLSYmJhxcXF1dXWlpaWfn5+IiIicnJyzs7Ofn5+xsbGampq7u7vAwMCMjIxgYGChoaGgoKCQkJCOjo5vb2+RkZG1tbWOjo6Hh4d6enq1tbV8fHzGxsZubm5mZmanp6eZmZmvr6+Hh4eTk5Ojo6NwcHCenp6mpqZ6enqlpaWWlpaJiYmlpaVjY2OcnJyKiop9fX1/f3+CgoKlpaV4eHiUlJSIiIixsbGqqqqGhoZxcXGPj4+ysrK1tbWurq63t7eBgYG2tra2tralpaV+fn6enp6tra2EhISZmZmVlZWGhoZycnKhoaHV1dXX19fW1tbZ2dmrq6upqamwsLDa2trU1NSzs7Ovr6+ysrKurq6tra3S0tLGxsa9vb3Q0NDDw8PNzc3BwcG/v7/IyMi6urq4uLi1tbVYe8d+AAAA5HRSTlMA4+Pj4+Dj4OPj4+Pg4+Pg4+Pg4+Pj4OPg4OPg7+Dg4+Dj4OPg4+Dg4ODM4Mzg4+DjzPDwzMzM4MzM4ODgzMzMzMzg7uPMzMz+zMzM/swD4+DNzMz0/vz8+fXNzerMzAr58dPN9fLs7MzMzPn05My3j1w/Lff07+7MLRH77+7u7uVbJfr39PPr6eno6Ofn59W7jl9ZVxAK+ffr6dXVuHNAQCYm/Prx6uff3NLNuaePjX9zc/vq6d/f3NbUyK6rqaeNjXMR6ufc2tG9vLynp4xzWUnn0ry8t6WZemFLNxrRyMjIxGrWwvApAAASsUlEQVR42uzW12tTYRjH8aMQvLDiJDa2aimigqiQ3NjLIjVpTQutrba2FkupthXqIA6caNUaxYUXDlTcWhUVB+LeCxXUGy8EFxlocoxohokJ+Hvfk9Pn4q1By/EYwe9f8OHhd4b0P40qmXfm6vuJV8/Mk/6BVp19XD2Rd+Lq8xIprVu88kY1sEnuCYCltK1k3tbi+kXV8HLsgzpHIuFwnpHSMowA2EXVi7j2wYzA9/j3eLyioiL7lZRuYQTFxcX19fDiuNVtju+sOLio9ayUTmEERZO4lk9hoyUYDALburBXd8ORhkSF/DmN7osRTJoELcJtHzgrgqx43V1TRkYPtOFDQrZI6RFGAKuqrX9RFY1GgV2yYEgGsEqDErKcDs8bRtBcVFTEucDeXxv9FkWBhp4ZiLwNstwu6Z04gkdFPK59uDT+jRXccaG3KYntOK8sl0t/tcXPXhY2N6vahy9aw+EwsI4FRhNL4aoZZPmzpH80gtOFhdA2K9r75V+/htH0w4N6m3h0XF4/WQ5If6tVtx8VshTtpRWHvqJw1FJj6I0ELrT6c2kET1usHdqHzu2xGNNWzcwEFQlTgFb369II3lmtLS2Fire9PGaLgXvwcC9+WOLy6Li6cmkEe6ysFu69lB222aANm2sMLOISVkeuOALrVCsP2NfO6ZGIDbXOzDIoqVjUCTfwUdIvjGDCVGCTt22vskWQ7VBdL4OaOAXSMq5+18UIJkzo4B5fe85ut0cisbXnB6vW1FtAAb24i+c+hRVazp16b3UoZEfbF2YNNhCXsDQF3a+LEZyq5VjluBerQl9CqLKu/5DByEDcVMdFAR22e+D2ydraWlXbvn7Kly/Q2sp3GocIWuG4+nIxgicFKKk9fvSQy8+00xtygOXaX1+uyNV6BLcKOBbhsheX+T0uv99/bukAI7BMK16X3mLicUcEPv457oG9J6cV8Bj28rrJbrfH5Qo5dmUa0U+PS1hEWoGr9QiapqnaguNHK71uaD2rG0YZFWzqKZg61Y74+Ee4JftuvS2FVvHWXpzv9jHtlPEDM3FZgUta8UkjLbj96LpajmBLaWlTUxK7eZ3dh7wux67cTGjVJbB+TUveGs25d7Y9KS0rZdwmaC8frfR5YfXNahvNsHRc1m+9FtAYM8ag7QjelJVBq1z32Hw3qF7fZEvfXI6l4xpTLFf8Lef1mWHWlIsR5JexuHbzcrvPizxVm7JykcKlKYjeVJ+IHmOcZgSuViO4lp+fr2DR+kovuysbQZagRZ1gSStuoRsuqxkXI5jTmM/jXIzAi3w2S98sxLW5xE35iQA4Q3gtmOrMKveTFiNQsQgj4FaMIAfWJJe0qlc4boop1CS12XTdro8gr7ERXN7m9ZU4LJrVNnLYMEFLxyUvaVniFvqhNlA1GEPJvptX8vIa85K35SNANsvQnGGIYclLWjou1YGl1wJ5l2pwXYxgdh6PH3f3crsbny6vHyMAlrTCcUmb+rjEXZHUgvupqyO4Pm5cUgssRuCGFiMYm4NScVP+OIpbIG62mbi/PQIVC+6xNR4vw9osY4bDqnrFKSjRcAVvZw8acbt23f0/SLV7n6aiMAzg8SMkSkwkaPz+SPwqbbHcXAVjpRJ1cFIGAjJqTB1IR+IiyiDRBRZhkYGYuDK4ECb/AAcd/IgObscGk8YAf4Hve96ePj19r+e28eEf+OXJc889bfn04cqlK47LI+CYyYXc+dPCTRpu+uXmiNWq5XrcPx1yl169v0RhLVt5BJypcuE8x3VLSeOqbvVywWUtuO2PIHtJtMxdmzZMpREM5HLQppTLadHWvYlaxz3O+aO4wRFks1mnXX46bq10EvTnOJ2UywmUK1Rwb3bc7tLi+yzFlfuyPoLn5eLV3NVcR+WeONnBFITLWOFutjOClY8jI9kGd21ORjARn+nv7xcutLpcSYArCXAxBs3VI/g6cjlb12YxgkeZfqu1QbsWeza4XEon5V7gdsENj2D1MqVe7vLLxklQzGQyrKVAaxMqFw8a0g73OLjBEQxftrHaphFkBIt29RY4Spv25QK4wF5or903775eHx4erne7PDNe/UV/NIJCRsJY4upyj6XfHBH1imgEXJIKd3PrnyMYHCStlPuAR1C1IxgdGhpq1oIrWJu0m6OHDX25wPG4m8kjKA2SVrgja3O1KoVGcK4wREG5BGZs6BSTBMoVbahccDeJq0fwpVQi7KCdwgMaQZWq3Z6cL1BYK162SrfeoYtyrdfDhk4xlOtryeu1q0YQRYS15V6nEZgqZ6rcY7EFaDngkla3i49oTpv+iVKV67Xrb/fnj1I+KpWEO7xOI+BMxHevFSTYArR6C4JFuekXR30Xg7avL5m79COfz0d1rh2BqRoaQfEatF656lgIXcvDXH2KwZvMXfkWRaSNSHt99mGVsKb6vHyKsNDiQRMt2gUXWmA7vy645frtbjW4i9SslPt5ZrtqKBNxpVgkrea65bZebrxDt4Obo+ai3L5E7ru6NhqcZmqVR8C5xlFab7rhKegHLV2L6frtbglXtJa7fpu1U+WLo0UbT4stoNxcMtfXYrr6Z6kwty9pDIsRdcvaWW52en501Gk5oi0ka9X7V50LwVMsrFVj2LBvBrYSuDRD2tsvCKu4arl40Nq6iqX/zqMvN4q7JdxVovKxwNq5AWC1ViLDtd4WrXih/a+LrmjBjYW7mJfM1kxtsoewvle/Ijih96+N1qaXq7U+d4O4d77lbbfr28ZMVyqVu3eLo6FycYgprTrE2rvcHAl0q8awwlgS3zPm3gJhKbco5zhJZ24GN0fRSgJclNvJp4hWbiztfs/bdulQ2J7ncimMRc5w/Cl45QIradGCm/r61VpwY+EuUbXc7rgxYwR1adIiA5RD2IJg4YXWRbCdlKu3cKPB3SDuCmO53NptbhZSaIGlXOSc4hwIfhUiVl2u/hQRKBftxjIG90J7yOVSdLO+V7CSHpfe0/61HN0GD139UwS0/2r3u32jfTamtkBQR9Va1yv9OS1yyOWs0oa2EFgutMKN69xV+0ajLbxVxXqRZrUUWs6BQwc4vb29x/zLjY+FNjQFcNHuF7uFGdoCtOAOuFyEVheLkFa8kv2cw+Rt99tyF48rWOHaM5enW4ZUtJ5XqGJVWkiBFa5kXz3OG/jPQbXcFi5Z6W/CmHmxetQzVKp+wMLaXq1FjnK6u7t9beLlRrTCjcG1BxmduhW9WnFKUC7ScMpm1Q5IStZWbrfN3nr8LahyKU+auXLRNcYkvRRgBRRBraBKudB6te7rdlyA9+zdw+nq6iKtOhaEGzvub+JGFFNzXEyWmYob3KyTIl6tVgoruOJ1OXiwhRs3ceViLu1Ci6fLST2tgkILbwPqsNA6qkS04FJ22uzYDe4zx40oNeImnwXt70CCdvVeEXAhVVzyco6PjY097rpx5PXGb+JGBC7RzRxYHLHQpjQLK6T7odVQaD2oSKHl9Nx/tGcXx223xGMAF3sNbdZz+lxILfRvc2f2clMUhvGNkzFucOPOrTtD4kJcupArc8oQURQyJZI5U5nKzI1ZQiFTpkLxDyhxZZ91bHPmsbzvWmftd6/1rGWT4zjP58Plr6ffftdwPptHyylI0Al7FVQOkxrczLjLuC+clRZMiI/ZPPCE4dNleX1ne0qCsBVKu4qRodCuKdahDIogY6sQz1iNC8L+iratNNvWa7bCyTKWgS/x6FHTxfrbGAElVMaFXg0pzoOu8Hh5sFYAkTZPjkq/Ca1pV1/oUruwLyiZBdArLLc+p8MLukocDQyqtKuvn2mZcOdskFbW2hzTpxVnXVrsVXARVXBz2o4dO2pc2y6vYUAbecBCT5eHK6hxXk3q4BZBg7hsrsFFUhOcXPS7MRZmgQ1qEFjAfFCkzUk5BpfL5UctZoHg4sYAcB1UjxaXMNAAaAG3r22XUAO8uIShBbCbhUEA5cooAFyXlH5Z3DZZtjQh2rzdAmV40EoKuEIbHVtC6k8EwQzj2nTr1q1zlvVPBjLuUG438nAFaIWzWC5uuFxaO2froEhrFZDhJbCUo1k2RXBjswAONeEhS9+wj/Hi4DKpZkVcgXVwF2XZhIRoPdzQydZDRVyeswaUvrv4tIWHS6wFUEb1abvl6Tg7y7Yl5uNfcvcPDgpdveATBr06xmK1MGQtrgDTk5bNTwZKuxo0RGtIi7wwDNwDo88ptIEFoQ19wehymrUubEgSXa7gFijNX9ADKBZPX3k8VtjGwJAVWMHtzem4lF0wuEM0buR+QzyAjUFeLgsLWxigrcdwurA4DDSt4FK5SycRLtMyrmxiJNE5i4fFPMFezbqAtUpwzhpS+sXpROY+SDSuaVeqRVzoVWhttbKCAS3H2xigr4Y155VejQq7s2xZYnCHcLsKaC0qDFrvrAiPWM4JHuDk4oSc9XCn09Z8JeNyt0aGHl6gWLjf8EB9WpPgZlY4Jb4Gkm5MeyPhmJ+5SVUqkE7gMiZ2pEFnXVx8xAqkdnSBB5zKbLodu5zoEK2RAZ+uQoC2ZDebc3q0QupW6wwDD/f2UqFNzA80kQxQbWgWdI01i7QOKEjroIoH0GyHTVzt03tJPUzLuEpooyeFAmVx0KKySItLwi8esJy348Tdb+inGJaeTXzcVHCjqy1IAL2GN97uoaZQqkMLzW6a/vTVK/qpgBOrkjxsLuGq1HRqElEWeONDNu4Bbr2DyrZftPTZM6LN7jpvHCJYIwM8XRYXDouS6GERcUMS4OgSCV4+o7zqf2A+QyJu6gorEgCtkCItYMITJmMLcEWCZy9f0z/9y07yyhDBNajIG7mMKXMWUIUWQE2sBNlLerPBy2cbtu1MMJp2GLkbmAX0HTvSeLi4L4gfaULWigT0NiTCXWckwGjaYeRuoNnwaiuBBQx79QetA+rhbjrycjTlxxuRAHE1r0pTC+ntEb1eQ6Or3IKKJDYLOs1YoF819eMOSBBqNw19XNfrF8XSd6zYdh6uR4q7rsr5/of0m7FAgiBuH3LXoS2bBbkHfKAJWOClSGtJhfbo7NHfGHb1FZAAwrTa3RLa6NE2uB5gsRoXeiUJFq/WL/L6fucMSoBhWi2DsMIuJnKm4V+5tYCKHuCeq7Jn3Zf3nFEgQSTaBZah0G35p0q4mUXa+AJW33QfnX3oC9PuAgni0bR9VKry5cs5gQGog/uLYv2LLju3RILX+j1e74+BBCW4xEsyWFq49o59DOrhuq0WyoViWYKl9GYswl1wCiT4dZiWZaB2cdDG14Tf23hTKrgvODrls36R1+Qt25M/Dbug2xUFOLEjjaMBbLhKlgTG7Tx98rt3THvsNEpQHi5XP2qOsBxZwkqPto6uYIGwVvaO+qpf5DUeJPgjXJUqBxeURVy53wiLgLPr9u6PGvZQVILyMC3jmnbLP60TWtxwSWBykQSHvn5l2o0swV/ipkoFL2PgIC6o3vwC0CJuu0UL9Hu8vu4iCf4qxGrc7QwiiAW61PiaAFPLlfZC/7H6RV6H97MEDcFN1W9/WifBy0NcwDofmTXiE9NqCRqDO0CpFM40MV6oFou1C1ibRatHjGDahVtJgkZE0w5QqXJoQVko1y3Wpc0lGPOBaceJBA1ql93NSfHyCD9Uil512j97HfnM7/Ea8Wn96UkNQpV2U6V0tUAaXW7jNwYswYxdL94y7VqSoKFhWiMDXnUBaHBwoQT9Prx4Szm3TyRodLupoMJHH5LyK+9es8+l/CKvDytukQQND8FSlFIOreGM0/omiATVapVo12xd0jhExKW5294RAc40RVoftY47cd2LKtMOFwkajzuAeVOlIhfJeKahLyiWJRhLr3Ai2BVzQYKG4lLYXfg8HCSI33a2nTH5OaVWmzYHJGhsdLmDuN2exAonBTzZIuzEUS+ec0ZMBQn+Ea5KlXNI4C/UAO/k6hKwBptJgn8fgmVckgFXML9YEEFLUKMvlqAp0eWyDEAL65dLqyWo6RekTZ2XNCsD6rgpTK/4p3WcrrPH1ghWJGhONC3JoGAkRHH1JKjpNEcCxOV2I8MWyiUJqNVajSVodgiWcVMVLVeSS1ATCZoc88qjVKlSc3kSLJ5c5V6rTZQAcVkGbBeuOkgCgq2CBM3MoFwGr1tvim2aMpZZqyBBc3N1UF2GX90j9SQJKCBB83OfYAcNVjFcSrvzo95WOShB83Ody5V24fqzO0nAUSzB/89Nph38VqmuOa3gticJOP9fApuHTDt4nFJ7AXdPC0lg8/gq8y5XapSrgpUgbQ0JpF5u97hS1fOC26nlJJA8Yd41Sg3fU4dtRQkKeXSN3jo4Qqm0397OmyZOGatoDrScBIWM3DFn5kXi1ZyqRSUoZtKOa1vWKArztqgEnhIHty4f9/btuEstKwGkxf+XuCT5CbTFnFRuxktuAAAAAElFTkSuQmCC";var lo,co={zh:{TITLE:"眼镜模式",HIT:"请将手机横屏放入 VR 眼镜中"},en:{TITLE:"GLASSES MODE",HIT:"Please put the mobile phone horizontally into the VR glasses."},ja:{TITLE:"メガネモード",HIT:"携帯電話をVRメガネに水平に入れてください。"}},H0=typeof navigator!="undefined"&&(lo=co[navigator.language.split("-")[0]])!==null&&lo!==void 0?lo:co.zh,tA=`
1596
+ `,Nm=function(){function n(){this.material=new f.ShaderMaterial({vertexShader:Dm,fragmentShader:Vm,uniforms:{size:new f.Uniform(null),matrix:new f.Uniform(null),alpha:new f.Uniform(null),map:new f.Uniform(null)},depthTest:!1,depthWrite:!1,defines:{USE_PANO_VIDEO:!1},blending:f.CustomBlending,blendSrc:f.SrcAlphaFactor,blendDst:f.OneMinusSrcAlphaFactor,blendSrcAlpha:f.OneFactor,blendDstAlpha:f.OneMinusSrcAlphaFactor}),this.object=new f.Mesh(hs,this.material),this.object.visible=!1,this.object.renderOrder=-1,this.object.frustumCulled=!1,this.object.name="pano-video",this.alphaMotion=new Re({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(Q),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(Q));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}(),zm=new f.Matrix4().makeRotationAxis(new f.Vector3(0,1,0),Math.PI),D0=new f.Vector3(-1,1,1),V0=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 f.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}(),pr=O(O({},dr),{maxAccessibleDistance:5,panoTapTriggerRadius:.5,panoCircleMeshCreator:function(n){return new kl},tiledCubeTextureLevel:2,tileLevelForFov:function(n,t){var e,r=function(s){return s/180*Math.PI},i=(e=Math.log2)!==null&&e!==void 0?e:function(s){return Math.log(s)*Math.LOG2E},a=t.height/2/Math.tan(r(n/2))*Math.tan(r(45))*2,o=Math.max(i(a/512),0);return o<2.3&&o>.1&&(o=1),console.log(o),o=o%1>.75?Math.ceil(o):Math.floor(o),o},tileMaxRequest:3,luminanceAdaptiveEffectEnable:!0}),ps=function(n){ue(t,n);function t(e){var r=this,i,a,o,s,u=t.parseArgs(e);r=n.call(this,u)||this,r.mode="Panorama",r.tileLevel=0,r.initAnimationed=!1,r.maxAccessibleDistance=u.maxAccessibleDistance,r.panoTapTriggerRadius=u.panoTapTriggerRadius,r.panoCircleMeshCreator=u.panoCircleMeshCreator,r.tiledCubeTextureLevel=u.tiledCubeTextureLevel,r.tileLevelForFov=u.tileLevelForFov,r.tileMaxRequest=u.tileMaxRequest,r.luminanceAdaptiveEffectEnable=u.luminanceAdaptiveEffectEnable,r.luminanceAdaptiveEffect=new k0(r.renderer,r.modelScene,r.camera,r.models),r.colorCubeRenderTargetPool=new V0,r.luminanceCubeRenderTargetPool=new V0;var l=r.models.getMaterial()||{},c=l.pano0,d=l.pano1;c&&(d==null?void 0:d.map)!==c.map&&(r.models.setMaterial({pano0:d}),c.map.dispose(),c.map instanceof qe&&c.map.cubeRenderTarget&&r.colorCubeRenderTargetPool.push(c.map.cubeRenderTarget),c.luminanceMap&&(c.luminanceMap.dispose(),c.luminanceMap instanceof qe&&c.luminanceMap.cubeRenderTarget&&r.luminanceCubeRenderTargetPool.push(c.luminanceMap.cubeRenderTarget)));for(var p=r.colorCubeRenderTargetPool.size;p<2;p++){var A=Math.max(1024*r.tiledCubeTextureLevel,512),h=r.colorCubeRenderTargetPool.create();h.setSize(A,A),wo(null,h,r.renderer),r.colorCubeRenderTargetPool.push(h)}r.panoMeshes={},r.updatePanoMeshes(),r.locationMotion=new Re({count:0,distance:r.camera.pose.distance}),r.modelAlphaMotion=new Re({modelAlpha:(a=(i=r.models.getMaterial())===null||i===void 0?void 0:i.modelAlpha)!==null&&a!==void 0?a:0}),r.perspToOrthoMotion=new Re({perspToOrtho:r.camera.perspToOrtho.x}),r.panoResources={},r.panoResources[r.locationMotion.keyframes[0].key=r.locationMotion.keyframes[1].key=kt()]={panoId:He(r.currentPano),panoPicture:(s=(o=r.models.getMaterial())===null||o===void 0?void 0:o.pano1)!==null&&s!==void 0?s:null,position:r.camera.pose.offset.clone(),effect:"fly",fixCameraTransform:new f.Matrix4};var v=r.works.getResolvedObserver(r.currentPano);return r.textureLoader=new Xn,r.tiling=new Lm(v?pt(v.work):ra,r.tiledCubeTextureLevel+1,r.imageOptions),r.scene.add(r.tiling.object),r.panoVideo=new Nm,r.scene.add(r.panoVideo.object),r}return t.parseArgs=function(e){var r,i,a,o,s,u,l;if(e instanceof t)return e;var c=n.parseArgs.call(this,e);return O(O({},c),{maxAccessibleDistance:(r=e.maxAccessibleDistance)!==null&&r!==void 0?r:pr.maxAccessibleDistance,panoTapTriggerRadius:(i=e.panoTapTriggerRadius)!==null&&i!==void 0?i:pr.panoTapTriggerRadius,panoCircleMeshCreator:(a=e.panoCircleMeshCreator)!==null&&a!==void 0?a:pr.panoCircleMeshCreator,tiledCubeTextureLevel:(o=e.tiledCubeTextureLevel)!==null&&o!==void 0?o:pr.tiledCubeTextureLevel,tileLevelForFov:(s=e.tileLevelForFov)!==null&&s!==void 0?s:pr.tileLevelForFov,tileMaxRequest:(u=e.tileMaxRequest)!==null&&u!==void 0?u:pr.tileMaxRequest,luminanceAdaptiveEffectEnable:(l=e.luminanceAdaptiveEffectEnable)!==null&&l!==void 0?l:pr.luminanceAdaptiveEffectEnable})},t.initAnimationEndState=function(e){var r=this.parseArgs(e),i=n.initAnimationEndState.call(this,r);return O(O({},i),{mode:"Panorama"})},t.prototype.updateConfiguration=function(e){var r=this,i=n.prototype.updateConfiguration.call(this,e);if(i===!1)return!1;var a=O(O({},pr),e);if(this.maxAccessibleDistance!==a.maxAccessibleDistance&&(this.maxAccessibleDistance=a.maxAccessibleDistance),this.panoTapTriggerRadius!==a.panoTapTriggerRadius&&(this.panoTapTriggerRadius=a.panoTapTriggerRadius),this.panoCircleMeshCreator!==a.panoCircleMeshCreator&&(this.panoCircleMeshCreator=a.panoCircleMeshCreator,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]}this.updatePanoMeshes()}return this.tiledCubeTextureLevel!==a.tiledCubeTextureLevel&&(this.tiledCubeTextureLevel=a.tiledCubeTextureLevel,setTimeout(function(){r.moveToPano(r.currentPano,{},!0)},30)),this.tileLevelForFov!==a.tileLevelForFov&&(this.tileLevelForFov=a.tileLevelForFov),this.tileMaxRequest!==a.tileMaxRequest&&(this.tileMaxRequest=a.tileMaxRequest),this.luminanceAdaptiveEffectEnable!==a.luminanceAdaptiveEffectEnable&&(this.luminanceAdaptiveEffectEnable=a.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 i=Object.keys(this.panoMeshes),a=0,o=i;a<o.length;a++){var s=o[a],u=this.panoMeshes[s];this.helper.remove(u),u.dispose(),delete this.panoMeshes[s]}var l=this.videoTexture.image;l.pause(),l.oncanplay=function(){},l.ontimeupdate=function(){},this.scene.remove(this.panoVideo.object),this.panoVideo.setMaterial(null),this.panoVideo.dispose();for(var c=(e=this.models.getMaterial())!==null&&e!==void 0?e:{},d=c.pano0,p=c.pano1,A=0,h=Object.keys(this.panoResources);A<h.length;A++){var v=h[A],g=this.panoResources[v];if(g.panoPicture){var m=g.panoPicture.map;m&&m!==(d==null?void 0:d.map)&&m!==(p==null?void 0:p.map)&&(m.dispose(),(r=g.panoPicture.luminanceMap)===null||r===void 0||r.dispose(),g.panoPicture=null)}delete this.panoResources[v]}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,i,a=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),o=((e=a.panoPicture)===null||e===void 0?void 0:e.map)instanceof qe&&(i=(r=a.panoPicture)===null||r===void 0?void 0:r.map.tilePending)!==null&&i!==void 0?i:0,s=o<=0,u=this.tiling.pedding,l=this.tiling.object.visible&&u<=0;return this.initAnimationed&&s&&l},t.prototype.updateWork=function(e,r,i,a){var o=this;this.userAction=a,this.works=e;var s=t.initAnimationEndState(O(O({},this),{initial:{currentState:O(O({},this.currentPano),this.camera.pose),duration:i.duration,effect:i.effect,state:r,userAction:a}})),u={workCode:s.workCode,panoIndex:s.panoIndex},l=this.works.getWork(u.workCode);return this.tiling.setFetcher(l?pt(l):ra),this.tiling.cleanup(),this.initAnimationed=!1,this.hideIntersectMesh(),this.updatePanoMeshes(),this.moveToPano(u,{effect:i.effect,duration:i.duration,longitude:r.longitude,latitude:r.latitude,fov:r.fov,moveEndCallback:function(){o.initAnimationed=!0},moveCancelCallback:function(){o.initAnimationed=!0}},a),!0},t.prototype.updateModel=function(e){this.models=e,this.updatePanoMeshes()},t.prototype.updateTime=function(e,r){var i=this,a,o,s,u,l,c,d,p,A,h;if(!this.destroyed){var v={},g={},m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),y=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),b=!1;if(this.cameraMotion.ended===!1&&(this.cameraMotion.update(e),g.longitude=this.cameraMotion.value.longitude,g.latitude=this.cameraMotion.value.latitude,g.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended===!1&&(this.modelAlphaMotion.update(e),v.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended===!1&&(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(ce(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended===!1){this.locationMotion.update(e);var x=this.locationMotion.getKeyFrameSegment(e),w=x[0],M=x[1],S=this.panoResourceFromLocationMotionKeyframe(w),E=this.panoResourceFromLocationMotionKeyframe(M),P=new f.Vector3().copy(S.position),B=new f.Vector3().copy(E.position),C=this.locationMotion.value.count-M.value.count+1;v.progress=C,E.panoPicture&&(C<1?S.panoPicture&&(v.pano0=S.panoPicture):v.pano0=E.panoPicture,v.pano1=E.panoPicture),E.effect==="montage"?v.transition="BLACK":E.effect==="spread"?v.transition="SPREAD":v.transition="FADE",(E.effect==="zoomin"||E.effect==="zoomout")&&(v.progress=Math.pow(C,3)),C<1&&E.effect!=="fly"&&(v.pano0&&S.panoPicture&&(v.pano0={map:v.pano0.map,zoom:v.pano0.zoom,luminanceMap:v.pano0.luminanceMap,matrix:S.panoPicture.matrix.clone().premultiply(S.fixCameraTransform).setPosition(E.position)}),P.copy(B),b=!0),g.distance=this.locationMotion.value.distance,g.offset=new f.Vector3(P.x+(B.x-P.x)*C,P.y+(B.y-P.y)*C,P.z+(B.z-P.z)*C);for(var I=[],F=[],T=0,L=this.locationMotion.keyframes;T<L.length;T++){var D=L[T],V=D.key,z=D.progress;V!==void 0&&(I.push(V),z>this.locationMotion.progress&&F.push(V))}for(var U=0,q=Object.keys(this.panoResources);U<q.length;U++){var G=q[U];if(!(F.indexOf(G)>=0)){var K=this.panoResources[G];if(K.panoPicture){var _=K.panoPicture.map,J=K.panoPicture.luminanceMap;if(_){if(_===((a=v.pano0)===null||a===void 0?void 0:a.map)||_===((o=v.pano1)===null||o===void 0?void 0:o.map))continue;_ instanceof qe&&_.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(_.cubeRenderTarget),_.dispose(),J&&(J instanceof qe&&J.cubeRenderTarget&&this.luminanceCubeRenderTargetPool.push(J.cubeRenderTarget),J.dispose()),K.panoPicture=null}}I.indexOf(G)>=0||delete this.panoResources[G]}}this.currentPano=Lt(E.panoId),this.emit("pano.moving",X("pano.moving",{userAction:this.userAction,prevPano:Lt(m.panoId),state:O(O(O(O({},Lt(y.panoId)),{mode:this.mode}),tt(this.camera.pose)),g),options:{},progress:this.locationMotion.progress,error:null}))}or(v)===!1&&(!((s=v.pano0)===null||s===void 0)&&s.map&&v.pano0.map instanceof qe&&!v.pano0.map.cubeRenderTarget&&(v.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((u=v.pano0)===null||u===void 0)&&u.luminanceMap&&v.pano0.luminanceMap instanceof qe&&!v.pano0.luminanceMap.cubeRenderTarget&&(v.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),!((l=v.pano1)===null||l===void 0)&&l.map&&v.pano1.map instanceof qe&&!v.pano1.map.cubeRenderTarget&&(v.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((c=v.pano1)===null||c===void 0)&&c.luminanceMap&&v.pano1.luminanceMap instanceof qe&&!v.pano1.luminanceMap.cubeRenderTarget&&(v.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.models.setMaterial(v)),or(g)===!1&&this.setCamera(g);var W=this.works.getResolvedObserver(this.currentPano),$=this.locationMotion.ended?this.getForwardObserverOrNot():null;if(this.camera.pose.distance>.1||b)for(var Y=0,Z=Object.keys(this.panoMeshes);Y<Z.length;Y++){var oe=Z[Y],ne=this.panoMeshes[oe];ne.setOpacity(0),ne.setCurrent(!1),ne.updateTime&&ne.updateTime(e,r),ne.visible=!1}else if(W){var de=Br(W.visibleIds,function(we){var be=i.works.getResolvedObserver(we);return be?W.standingPosition.distanceTo(be.standingPosition):1/0},!0),se=de[1];se=ce(se,2.5,1/0);for(var ye=W.visibleIds.concat(He(this.currentPano)),ie=this.camera.getDirection(new f.Vector3),xe=0,Le=Object.keys(this.panoMeshes);xe<Le.length;xe++){var oe=Le[xe],ne=this.panoMeshes[oe],Ce=this.works.getResolvedObserver(oe);if(ye.indexOf(oe)===-1)ne.setCurrent(!1),ne.setOpacity(0);else if(!Ce)ne.setCurrent(!1),ne.setOpacity(0);else if(!Ce.loadable&&!Ce.active)ne.setCurrent(!1),ne.setOpacity(0);else{var Oe=ne.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);ne.setCurrent(!ne.loading&&ne.progress===0&&$!==null&&$.panoId===oe),ne.setOpacity(Oe<.01?0:ce(se/Oe*1.2,.4,.85));var ee=this.camera.position.clone().setY(ne.position.y),re=new f.Vector3().copy(ne.position).sub(ee).normalize();if(oe===He(this.currentPano)){var H=ce((.5-ee.distanceTo(ne.position))/.5,0,1);re.multiplyScalar(1-H).add(ie.clone().multiplyScalar(H))}re.length()>0&&ne.quaternion.setFromEuler(new f.Euler(0,Math.atan2(re.x,re.z),0))}ne.updateTime&&ne.updateTime(e,r)}}var Be=this.tileLevel=function(){if(i.tileLevelForFov===!1)return 0;var we=i.renderer.getDrawingBufferSize(new f.Vector2);we.width*=i.scissor.width,we.height*=i.scissor.height;var be=y.panoId,Ae=i.works.getResolvedObserver(be),me=i.imageOptions.size;if(typeof me=="undefined"&&Ae){var ze=Ae.images.up.match(/\/cube_(\d+)\//);ze&&(me=Number(ze[1]))}typeof me=="undefined"&&(me=2048);var pe=0;me>=1024&&(pe=1),me>=2048&&(pe=2),me>=4096&&(pe=3),me>=8192&&(pe=4);var Se=i.tileLevelForFov(i.camera.fov,we);return Se>pe?Se:0}(),Te=function(){var we=i.camera.quaternion.clone(),be=i.works.getResolvedObserver(y.panoId),Ae=be!=null?be:W;Ae&&we.premultiply(Ae.quaternion.clone().inverse());var me=new f.Matrix4().makeRotationFromQuaternion(we),ze=new f.Matrix4().getInverse(me),pe=new f.Frustum().setFromProjectionMatrix(new f.Matrix4().multiplyMatrices(i.camera.projectionMatrix,ze));return pe}();y.panoId===He(this.currentPano)&&(((d=y.panoPicture)===null||d===void 0?void 0:d.map)instanceof qe&&(y.panoPicture.map.maxRequest=this.tileMaxRequest,y.panoPicture.map.update(Te,Math.min(Be,this.tiledCubeTextureLevel)),y.panoPicture.map.needsRender===!0&&(y.panoPicture.map.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0)),((p=y.panoPicture)===null||p===void 0?void 0:p.luminanceMap)instanceof qe&&(y.panoPicture.luminanceMap.maxRequest=this.tileMaxRequest,y.panoPicture.luminanceMap.update(Te,Math.min(Be,this.tiledCubeTextureLevel)),y.panoPicture.luminanceMap.needsRender===!0&&(y.panoPicture.luminanceMap.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0)));{var Ee=this.tiling.object.visible;if(this.initAnimationed){var Qe=y.panoId,Ie=this.works.getResolvedObserver(Qe);Ie?Fi(this.camera.position,Ie.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==Qe&&this.tiling.cleanup(),this.tiling.panoId=Qe,this.tiling.setResource((h=(A=Ie.images)===null||A===void 0?void 0:A.tiles)!==null&&h!==void 0?h:[],this.enableIOSEDR&&Ie.images.luminance?Ie.images.luminance:null),this.tiling.setFetcher(pt(Ie.work)),this.tiling.setRotation(Ie.quaternion),this.tiling.setPosition(Ie.position),this.tiling.maxRequest=this.tileMaxRequest,Be>this.tiledCubeTextureLevel?this.tiling.update(Te,Be,e):this.tiling.update(Te,0,e)):this.tiling.object.visible=!1:this.tiling.object.visible=!1}else this.tiling.object.visible=!1;Ee!==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(ce(this.cameraMotion.value.fov/45,0,1))}},t.prototype.render=function(e,r){var i=this.renderer.getRenderTarget(),a=this.works.getResolvedObserver(this.currentPano);a&&a.video&&(this.needsRender=!0,this.modelSceneNeedsRender=!0),this.updateScreenBuffer(r),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,i),this.renderer.autoClearDepth=!1,this.renderer.autoClearColor=!0,this.copyPass.render(this.modelRenderTarget,i),this.renderer.setRenderTarget(i),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 k0(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(ve())[1],r=this.locationMotion.getKeyFrameSegment(ve())[1],i=this.panoResourceFromLocationMotionKeyframe(r),a=this.works.getResolvedObserver(i.panoId);return{workCode:a?a.work.workCode:this.currentPano.workCode,panoIndex:a?a.panoIndex:this.currentPano.panoIndex,mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:a?a.position.clone():this.camera.position.clone(),distance:this.locationMotion.value.distance}},t.prototype.moveToPano=function(e,r,i){var a=this,o,s,u,l,c=(o=r.effect)!==null&&o!==void 0?o:"fly";this.userAction=i,this.stopMomentumMovement();var d=this.works.getResolvedObserver(e);if(!d)throw new Error("Invalid PanoId ".concat(JSON.stringify(e)));var p=mi(d.images.up),A=this.imageOptions.size;typeof A=="undefined"&&d&&p&&(A=Number(p)),typeof A=="undefined"&&(A=2048);var h=this.imageOptions.transform,v=O({key:"pano.".concat(d.panoId)},_t(this.imageOptions,["format","size","quality","sharpen","mappings"])),g=d.images,m=(u=(s=d.images.tiles)===null||s===void 0?void 0:s.filter(function(L){return L.size>A}))!==null&&u!==void 0?u:null,y=h,b={key:"pano_luminance.".concat(d.panoId),size:v.size?v.size/2:void 0},x=this.enableIOSEDR&&d.images.luminance?d.images.luminance:null,w=function(){if(!d.images.tiles||!x)return null;var L=mi(x.up);return L?m==null?void 0:m.map(function(D){var V=D.size*D.scale/2;return L<V?{level:D.level,size:V,scale:1,back:tr(x.back,V),front:tr(x.front,V),left:tr(x.left,V),right:tr(x.right,V),up:tr(x.up,V),down:tr(x.down,V)}:{level:D.level,size:L,scale:V/L,back:x.back,front:x.front,left:x.left,right:x.right,up:x.up,down:x.down}}):null}(),M="pano:"+ma([g,v,h,this.tiledCubeTextureLevel]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===M)return;var S=this.pendingTextureTask.panoId;(l=this.panoMeshes[S])===null||l===void 0||l.setProgress(0),this.emit("pano.texture.abort",X("pano.texture.abort",{error:null,progress:0,meta:null,pano:d.pano}))}var E="move-to-pano-"+d.panoId;this.pending.add(E);var P=this.models.getMaterial()||{},B=P.pano0,C=P.pano1,I;if(B&&B.map.name===M&&B.luminanceMap!==null===this.enableIOSEDR?I=B:(C==null?void 0:C.map.name)===M&&C.luminanceMap!==null===this.enableIOSEDR&&(I=C),I){var F={panoId:d.panoId,effect:c,panoPicture:{zoom:1,map:I.map,luminanceMap:I.luminanceMap,matrix:new f.Matrix4().compose(d.position,d.quaternion,D0)},position:d.position.clone(),fixCameraTransform:new f.Matrix4};Mt.shared.add(function(){a.pending.delete(E),a.doMoveToPano(d.pano,F,r)},!0,1);return}this.pendingTextureTask={panoId:d.panoId,hash:M,onLoad:function(L,D){var V;if(a.pending.delete(E),a.destroyed)L.body.dispose();else{L.body.name=M;var z={panoId:d.panoId,effect:c,panoPicture:{zoom:1,map:L.body,luminanceMap:(V=D==null?void 0:D.body)!==null&&V!==void 0?V:null,matrix:new f.Matrix4().compose(d.position,d.quaternion,D0)},position:d.position.clone(),fixCameraTransform:new f.Matrix4};a.doMoveToPano(d.pano,z,r)}},onError:function(L){a.pending.delete(E);var D=O(O(O({},d.pano),{mode:a.mode}),tt(a.camera.pose));a.emit("pano.error",X("pano.error",{error:L,userAction:a.userAction,options:r,prevPano:a.currentPano,progress:0,state:D})),a.emit("pano.cancel",X("pano.cancel",{error:L,userAction:a.userAction,options:r,prevPano:a.currentPano,progress:0,state:D})),a.emit("error",L),r.moveCancelCallback&&r.moveCancelCallback()}};var T=this.panoMeshes[d.panoId];T&&T.tap&&T.tap(),Promise.all([this.tileLevelForFov&&m&&m.length?this.textureLoader.loadTiledCubeTexture(g,m,{tileMaxLevel:this.tiledCubeTextureLevel,imageURL:{transform:h,options:v},minFilter:f.LinearFilter,magFilter:f.LinearFilter,generateMipmaps:!1,format:f.RGBAFormat,viaAjax:!0,fetcher:pt(d.work)},void 0,void 0,function(L){var D,V;a.emit("pano.texture.progress",X("pano.texture.progress",{error:null,progress:L,meta:null,pano:d.pano})),((D=a.pendingTextureTask)===null||D===void 0?void 0:D.hash)===M&&((V=a.panoMeshes[d.panoId])===null||V===void 0||V.setProgress(L))},this.renderer):this.textureLoader.loadCubeTexture(g,{imageURL:{transform:h,options:v},format:f.RGBAFormat,viaAjax:!0,fetcher:pt(d.work)},void 0,void 0,function(L){var D,V;a.emit("pano.texture.progress",X("pano.texture.progress",{error:null,progress:L,meta:null,pano:d.pano})),((D=a.pendingTextureTask)===null||D===void 0?void 0:D.hash)===M&&((V=a.panoMeshes[d.panoId])===null||V===void 0||V.setProgress(L))},this.renderer),x?this.tileLevelForFov&&w&&w.length?this.textureLoader.loadTiledCubeTexture(x,w,{tileMaxLevel:this.tiledCubeTextureLevel,imageURL:{transform:y,options:b},minFilter:f.LinearFilter,magFilter:f.LinearFilter,generateMipmaps:!1,fetcher:pt(d.work)},void 0,void 0,void 0,this.renderer).catch(function(){return null}):this.textureLoader.loadCubeTexture(x,{imageURL:{transform:y,options:b},fetcher:pt(d.work)},void 0,void 0,void 0,this.renderer).catch(function(){return null}):Promise.resolve(null)]).then(function(L){var D,V,z=L[0],U=L[1];((D=a.pendingTextureTask)===null||D===void 0?void 0:D.hash)===M?(a.pendingTextureTask.onLoad(z,U),(V=a.panoMeshes[d.panoId])===null||V===void 0||V.setProgress(0),delete a.pendingTextureTask,a.emit("pano.texture.success",X("pano.texture.success",{error:null,progress:1,meta:z.meta,pano:d.pano}))):(z.body.dispose(),U==null||U.body.dispose())}).catch(function(L){var D,V;((D=a.pendingTextureTask)===null||D===void 0?void 0:D.hash)===M&&(a.pendingTextureTask.onError(L),(V=a.panoMeshes[d.panoId])===null||V===void 0||V.setProgress(0),delete a.pendingTextureTask,a.emit("pano.texture.error",X("pano.texture.error",{error:L,progress:0,meta:null,pano:d.pano})),a.emit("error",L))}),this.emit("pano.texture.load",X("pano.texture.load",{error:null,progress:0,meta:null,pano:d.pano}))},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise(function(r){var i=e.initial,a=i.duration,o=i.effect,s=i.userAction;e.userAction=s;var u=t.initAnimationEndState(e),l={workCode:u.workCode,panoIndex:u.panoIndex},c={modelAlpha:0},d={perspToOrtho:0},p=!1;e.moveToPano(l,{longitude:u.longitude,latitude:u.latitude,fov:u.fov,effect:o,duration:a,moveStartCallback:function(A){p=!0,e.perspToOrthoMotion.set(d,a).catch(Q),e.modelAlphaMotion.setKeyframes([{progress:0,value:O({},e.modelAlphaMotion.value)},{progress:.6,value:O({},e.modelAlphaMotion.value)},{progress:1,value:c}],a).catch(Q),e.emit("initAnimation.start",X("initAnimation.start",{state:A,userAction:e.userAction}))},moveEndCallback:function(A){e.emit("initAnimation.end",X("initAnimation.end",{state:A,userAction:e.userAction})),e.initAnimationed=!0,r()},moveCancelCallback:function(){var A=O(O(O({},l),{mode:e.mode}),tt(e.camera.pose));p===!1&&e.emit("initAnimation.start",X("initAnimation.start",{state:A,userAction:e.userAction})),e.emit("initAnimation.end",X("initAnimation.end",{state:A,userAction:e.userAction})),e.initAnimationed=!0,r()}},s)})},t.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},t.prototype.locationMotionKeyframesLength=function(e){for(var r=0,i=1;i<e.length;i++){var a=this.panoResourceFromLocationMotionKeyframe(e[i-1]).position,o=this.panoResourceFromLocationMotionKeyframe(e[i]).position,s=a.distanceTo(o)*(e[i].value.count-e[i-1].value.count);r+=s}return r},t.prototype.updatePanoMeshes=function(){for(var e=this,r={},i=Object.keys(this.panoMeshes),a=0,o=i;a<o.length;a++){var s=o[a],u=this.panoMeshes[s];r[s]=u,delete this.panoMeshes[s]}for(var l=1,c={},d=function(M){var S=Br(M.accessibleIds,function(P){var B=e.works.getResolvedObserver(P);if(!B)return 1/0;var C=B.standingPosition.distanceTo(M.standingPosition);return ce(C,1,1/0)},!0),E=S[1];c[M.panoId]===void 0&&(c[M.panoId]=E)},p=0,A=this.works.resolvedObservers;p<A.length;p++){var h=A[p];d(h)}var v=Object.keys(c).map(function(M){return c[M]});if(v.length){var g=v.reduce(function(M,S){return M+S},0)/v.length;l=ce(g*.6,1,3)}for(var m=0,y=this.works.resolvedObservers;m<y.length;m++){var h=y[m],u=void 0;r[h.panoId]?(u=r[h.panoId],u.loading===!0&&h.loadable===!1&&u.setLoading(!1),delete r[h.panoId]):(u=this.panoCircleMeshCreator(h.pano),u.name="PanoCircleMesh_"+h.panoId,this.helper.add(u)),u.scale.set(l,1,l),u.position.copy(h.standingPosition),this.panoMeshes[h.panoId]=u}for(var b=0,x=Object.keys(r);b<x.length;b++){var w=x[b];this.helper.remove(r[w]),r[w].dispose(),delete r[w]}},t.prototype.doMoveToPano=function(e,r,i){var a=this,o,s,u,l,c,d,p,A,h,v,g;i===void 0&&(i={});var m=ve(),y=kt();this.tiling.cleanup(),this.panoResources[y]=r;var b=1,x,w,M;if(this.locationMotion.ended){var S=this.locationMotion.getKeyFrameSegment(m);S[0];var E=S[1],P=this.locationMotion.value,B=((o=this.panoResourceFromLocationMotionKeyframe(E))!==null&&o!==void 0?o:this.camera).position,C=r.position;x=Math.max(B.distanceTo(C),b),w=[{key:E.key,progress:0,value:O(O({},P),{count:0})},{key:y,progress:1,value:{distance:0,count:1}}],M=0}else{var I=this.locationMotion.getKeyFrameSegment(m),F=I[0],E=I[1],P=this.locationMotion.value,T=this.panoResourceFromLocationMotionKeyframe(F).position,B=this.panoResourceFromLocationMotionKeyframe(E).position,C=r.position,L=E.value.count-P.count,D=Math.max(T.distanceTo(B),b)*L,V=Math.max(B.distanceTo(C),b);x=D+V,w=[{key:F.key,progress:0,value:O({},P)},{key:E.key,progress:D/x,value:E.value},{key:y,progress:1,value:{count:E.value.count+1,distance:0}}];var z=this.locationMotionKeyframesLength(this.locationMotion.keyframes),U=this.locationMotionKeyframesLength(w);z===0||z===0?M=0:M=this.locationMotion.getProgressVelocity(m)*z/U}var q=r.effect==="instant"?0:this.calculateMovingDuration(i.duration,r.effect==="fly"?x:0),G={longitude:i.longitude,latitude:i.latitude,fov:i.fov},K=O(O({},e),{mode:this.mode,longitude:(s=G.longitude)!==null&&s!==void 0?s:this.camera.pose.longitude,latitude:(u=G.latitude)!==null&&u!==void 0?u:this.camera.pose.latitude,fov:(l=G.fov)!==null&&l!==void 0?l:this.camera.pose.fov,offset:r.position.clone(),distance:this.camera.pose.distance}),_=this.currentPano;if(this.emit("pano.moveTo",X("pano.moveTo",{options:i,prevPano:_,progress:0,state:K,userAction:this.userAction,error:null})),i.moveStartCallback&&i.moveStartCallback(K),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=Q,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),r.effect==="fly")this.cameraMotion.set(G,q).catch(Q);else{var J=nr({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude}),W=nr({longitude:(c=G.longitude)!==null&&c!==void 0?c:this.cameraMotion.value.longitude,latitude:(d=G.latitude)!==null&&d!==void 0?d:this.cameraMotion.value.latitude}),$=new f.Object3D;$.lookAt(J);var Y=new f.Matrix4().makeRotationFromQuaternion($.quaternion);$.lookAt(W);var Z=new f.Matrix4().makeRotationFromQuaternion($.quaternion),oe=new f.Matrix4().getInverse(Y).premultiply(Z),ne=this.cameraMotion.value.fov,de=(p=G.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 ye=ce(de*se,1,170),ie=0;ie<w.length-1;ie++){var xe=w[ie].key;if(xe){var Le=this.panoResources[xe];Le&&(Le.fixCameraTransform.copy(oe),Le.panoPicture&&(Le.panoPicture.zoom=Math.tan(ne/2/180*Math.PI)/Math.tan(ye/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=G.longitude)!==null&&A!==void 0?A:this.cameraMotion.value.longitude,latitude:(h=G.latitude)!==null&&h!==void 0?h:this.cameraMotion.value.latitude,fov:ye}},{progress:1,value:{longitude:(v=G.longitude)!==null&&v!==void 0?v:this.cameraMotion.value.longitude,latitude:(g=G.latitude)!==null&&g!==void 0?g:this.cameraMotion.value.latitude,fov:de}}],q).catch(Q)}var Ce=this.locationMotion.setKeyframes(w,q,M);Ce.then(function(){for(var Oe,ee,re=0,H=a.models;re<H.length;re++){var Be=H[re];Be.show()}var Te=O(O({},e),{mode:a.mode,longitude:a.camera.pose.longitude,latitude:a.camera.pose.latitude,fov:a.camera.pose.fov,offset:a.camera.pose.offset.clone(),distance:a.camera.pose.distance});a.emit("pano.arrived",X("pano.arrived",{options:i,prevPano:_,progress:1,state:Te,userAction:a.userAction,error:null})),i.moveEndCallback&&i.moveEndCallback(Te);var Ee=a.works.getResolvedObserver(e);if(Ee&&Ee.video&&a.videoTexture&&a.videoTexture.image instanceof HTMLVideoElement){var Qe=zm.clone().multiply((ee=(Oe=a.models.getMaterial().pano1)===null||Oe===void 0?void 0:Oe.matrix)!==null&&ee!==void 0?ee:new f.Matrix4).multiply(Ee.video.matrix),Ie={map:a.videoTexture,size:Ee.video.size,matrix:Qe,alpha:1},we=kt(),be=a.videoTexture.image;be.setAttribute("uuid",we),Ul().then(function(Ae){Ae&&Ee.video&&be.getAttribute("uuid")===we&&(be.oncanplay=function(){be.oncanplay=Q,be.play()},be.ontimeupdate=function(){be.currentTime>.5&&(be.ontimeupdate=Q,a.panoVideo.setMaterial(Ie))},be.src=Ee.video.source)}).catch(function(){be.removeAttribute("uuid")})}},function(){a.emit("pano.cancel",X("pano.cancel",{options:i,prevPano:_,progress:0,state:K,userAction:a.userAction,error:null})),i.moveCancelCallback&&i.moveCancelCallback()})},t.prototype.getForwardObserverOrNot=function(e){var r=this,i=this.works.getResolvedObserver(this.currentPano);if(!i)return null;var a=e!=null?e:new f.Raycaster(this.camera.position.clone(),this.camera.getDirection(new f.Vector3));a.params.Points={threshold:.1};var o=i.standingPosition.clone();if(i.position.distanceTo(a.ray.origin)>1){var s=this.models.intersectRaycaster(new f.Raycaster(a.ray.origin,new f.Vector3(0,-1,0)))[0];s&&s.distance<=2?o.copy(s.point):o.copy(a.ray.origin).add(new f.Vector3(0,-1.5,0))}var u=this.models.intersectRaycaster(a)[0],l=u?u.point:a.ray.origin.clone().add(a.ray.direction.clone().normalize().multiplyScalar(3)),c=l.clone().sub(o).normalize();if(c.length()===0)return null;for(var d=i.accessibleIds.filter(function(w){if(w===He(r.currentPano))return!1;var M=r.works.getResolvedObserver(w);if(!M)return!1;var S=M.standingPosition.clone().project(r.camera);return Math.abs(S.z)>1||Math.abs(S.x)>1||Math.abs(S.y)>1?!1:M.loadable||M.active}),p=d.slice().sort(function(w,M){var S=r.works.getResolvedObserver(w).standingPosition.clone().distanceTo(o),E=r.works.getResolvedObserver(M).standingPosition.clone().distanceTo(o);return S-E}),A=0,h=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];A<h.length;A++)for(var v=h[A],g=0,m=p;g<m.length;g++){var y=m[g],b=this.works.getResolvedObserver(y);if(b){var x=b.standingPosition.clone().sub(o);if(x&&x.length()!==0&&c.angleTo(x)<v)return b}}return null},t.prototype.onTapGesture=function(e){var r=this,i;if(this.userAction=e.userAction,this.stopMomentumMovement(),!!this.initAnimationed){if(!this.locationMotion.ended){var a=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]);if(a.panoId!==He(this.currentPano))return}var o=e.center.raycaster,s=this.camera.getDirection(new f.Vector3).setY(0),u=null,l=this.works.getResolvedObserver(this.currentPano);if(l){var c=l.accessibleIds.filter(function(U){if(U===He(r.currentPano))return!1;var q=r.works.getResolvedObserver(U);return!q||q.position.distanceTo(r.camera.position)>r.maxAccessibleDistance?!1:q.loadable||q.active}),d=this.models.intersectRaycaster(o)[0];if(d){var p=Br(c,function(U){var q=r.works.getResolvedObserver(U);if(!q)return 1/0;var G=q.standingPosition.clone();return G.distanceTo(d.point)},!0),A=p[0],h=p[1];A&&h<this.panoTapTriggerRadius&&(u=(i=this.works.getResolvedObserver(A))!==null&&i!==void 0?i:null)}u||(u=this.getForwardObserverOrNot(o));for(var v=0,g=this.locationMotion.keyframes;v<g.length;v++){var m=g[v],y=this.panoResourceFromLocationMotionKeyframe(m);if(!(m.progress<this.locationMotion.progress)&&u&&y.panoId===u.panoId){u=null;break}}if(!u)this.emit("gesture.tap",e),e.defaultPrevented||this.locationMotion.ended===!0&&this.cameraBounce();else{for(var b={},x=Math.PI/6,w=Math.PI/12,M=u.position.clone().setY(0).sub(l.position.clone().setY(0)).normalize(),S=[],E=[],P=[],B=0,C=u.accessibleIds;B<C.length;B++){var A=C[B],I=Lt(A);if(!(Ar(I,this.currentPano)||Ar(I,u.pano))){var F=this.works.getResolvedObserver(A);if(F){var T=F.position.clone().sub(u.position).setY(0);M.angleTo(T)<x&&P.push(T)}}}var L=P.length>0?P:vt(vt([],S,!0),E,!0),D=L.slice().sort(function(U,q){return U.angleTo(M)-q.angleTo(M)})[0];D&&D.angleTo(s)>w&&(b.longitude=Math.atan2(-D.x,-D.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(b.latitude=ce(0,this.minLatitude,this.maxLatitude));var V=O({},e.state);if(V.workCode=u.pano.workCode,V.panoIndex=u.pano.panoIndex,b.longitude!==void 0&&(V.longitude=b.longitude),b.latitude!==void 0&&(V.latitude=b.latitude),b.fov!==void 0&&(V.fov=b.fov),V.distance=0,V.offset=u.position.clone(),e.state=V,this.emit("gesture.tap",e),!e.defaultPrevented){if(this.emit("pano.select",X("pano.select",{prevPano:this.currentPano,state:V,userAction:e.userAction,options:b,progress:0,error:null})),u&&!u.active){var z=u.panoId;this.panoMeshes[z]&&(this.panoMeshes[z].setDisabled(!1),this.panoMeshes[z].setLoading(!0))}u&&u.active&&this.emit("pano.request",X("pano.request",{userAction:e.userAction,prevPano:this.currentPano,progress:0,state:V,options:b,error:null}))}}}}},t}(Ql),Qr=Math.PI/180,Un=180/Math.PI,ql=.001,Hl=1,pi=function(){var n=typeof navigator!="undefined"&&/iPad|iPhone|iPod/.test(navigator.platform);return function(){return n}}(),Qm=function(){var n=typeof navigator!="undefined"&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent);return function(){return n}}(),Um=function(){var n=typeof navigator!="undefined"&&navigator.userAgent.indexOf("Firefox")!==-1&&navigator.userAgent.indexOf("Android")!==-1;return function(){return n}}(),Gl=function(){var n=typeof navigator!="undefined"?navigator.userAgent.match(/.*Chrome\/([0-9]+)/):null,t=n?parseInt(n[1],10):null;return function(){return t}}(),qm=function(){var n=!1;if(Gl()===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],i=e[3];n=parseInt(r,10)===3325&&parseInt(i,10)<148}}return function(){return n}}(),Hm=function(){var n=pi()&&Qm()&&typeof navigator!="undefined"&&navigator.userAgent.indexOf("13_4")!==-1;return function(){return n}}(),Kl=function(){var n=typeof navigator!="undefined"&&navigator.userAgent.indexOf("R7 Build")!==-1;return function(){return n}}();function N0(){var n=typeof window!="undefined"&&(window.orientation==90||window.orientation==-90);return Kl()?!n:n}function Gm(n){return!(isNaN(n)||n<=ql||n>Hl)}function Km(n){if(n.w>1)return 0;var t=2*Math.acos(n.w);return t}var z0=function(){var n={};return function(t,e){n[t]===void 0&&(console.warn("cardboard: "+e),n[t]=!0)}}();function Q0(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 jm(){if(typeof window=="undefined"||typeof document=="undefined")return!1;var n=window.self!==window.top,t=Q0(document.referrer),e=Q0(window.location.href);return n&&t!==e}var U0=function(){function n(r,i,a){var o=i?i[0]:0,s=i?i[1]:0,u=i?i[2]:0,l=i?i[3]:1,c=o+o,d=s+s,p=u+u,A=o*c,h=o*d,v=o*p,g=s*d,m=s*p,y=u*p,b=l*c,x=l*d,w=l*p;return r[0]=1-(g+y),r[1]=h+w,r[2]=v-x,r[3]=0,r[4]=h-w,r[5]=1-(A+y),r[6]=m+b,r[7]=0,r[8]=v+x,r[9]=m-b,r[10]=1-(A+g),r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function t(r,i,a){var o=a[0],s=a[1],u=a[2],l,c,d,p,A,h,v,g,m,y,b,x;return i===r?(r[12]=i[0]*o+i[4]*s+i[8]*u+i[12],r[13]=i[1]*o+i[5]*s+i[9]*u+i[13],r[14]=i[2]*o+i[6]*s+i[10]*u+i[14],r[15]=i[3]*o+i[7]*s+i[11]*u+i[15]):(l=i[0],c=i[1],d=i[2],p=i[3],A=i[4],h=i[5],v=i[6],g=i[7],m=i[8],y=i[9],b=i[10],x=i[11],r[0]=l,r[1]=c,r[2]=d,r[3]=p,r[4]=A,r[5]=h,r[6]=v,r[7]=g,r[8]=m,r[9]=y,r[10]=b,r[11]=x,r[12]=l*o+A*s+m*u+i[12],r[13]=c*o+h*s+y*u+i[13],r[14]=d*o+v*s+b*u+i[14],r[15]=p*o+g*s+x*u+i[15]),r}function e(r,i){var a=i[0],o=i[1],s=i[2],u=i[3],l=i[4],c=i[5],d=i[6],p=i[7],A=i[8],h=i[9],v=i[10],g=i[11],m=i[12],y=i[13],b=i[14],x=i[15],w=a*c-o*l,M=a*d-s*l,S=a*p-u*l,E=o*d-s*c,P=o*p-u*c,B=s*p-u*d,C=A*y-h*m,I=A*b-v*m,F=A*x-g*m,T=h*b-v*y,L=h*x-g*y,D=v*x-g*b,V=w*D-M*L+S*T+E*F-P*I+B*C;return V?(V=1/V,r[0]=(c*D-d*L+p*T)*V,r[1]=(s*L-o*D-u*T)*V,r[2]=(y*B-b*P+x*E)*V,r[3]=(v*P-h*B-g*E)*V,r[4]=(d*F-l*D-p*I)*V,r[5]=(a*D-s*F+u*I)*V,r[6]=(b*S-m*B-x*M)*V,r[7]=(A*B-v*S+g*M)*V,r[8]=(l*L-c*F+p*C)*V,r[9]=(o*F-a*L-u*C)*V,r[10]=(m*P-y*S+x*w)*V,r[11]=(h*S-A*P-g*w)*V,r[12]=(c*I-l*T-d*C)*V,r[13]=(a*T-o*I+s*C)*V,r[14]=(y*M-m*E-b*w)*V,r[15]=(A*E-h*M+v*w)*V,r):null}return function(r,i,a){n(r,i),a&&t(r,r,a),e(r,r)}}(),uo=function(){function n(t,e){t===void 0&&(t=new f.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}(),_m=function(){function n(t,e){this.kFilter=t,this.isDebug=e,this.currentAccelMeasurement=new uo,this.currentGyroMeasurement=new uo,this.previousGyroMeasurement=new uo,pi()?this.filterQ=new f.Quaternion(-1,0,0,1):this.filterQ=new f.Quaternion(1,0,0,1),this.previousFilterQ=new f.Quaternion,this.previousFilterQ.copy(this.filterQ),this.accelQ=new f.Quaternion,this.isOrientationInitialized=!1,this.estimatedGravity=new f.Vector3,this.measuredGravity=new f.Vector3,this.gyroIntegralQ=new f.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;Gm(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 f.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 i=new f.Quaternion;i.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),i.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",Un*Km(i),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 a=new f.Quaternion;a.copy(this.filterQ),a.multiply(i),this.filterQ.slerp(a,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},n.prototype.accelToQuaternion_=function(t){var e=new f.Vector3;e.copy(t),e.normalize();var r=new f.Quaternion;return r.setFromUnitVectors(new f.Vector3(0,0,-1),e),r.inverse(),r},n.prototype.gyroToQuaternionDelta_=function(t,e){var r=new f.Quaternion,i=new f.Vector3;return i.copy(t),i.normalize(),r.setFromAxisAngle(i,t.length()*e),r},n}(),Jm=function(){function n(t,e){this.predictionTimeS=t,this.isDebug=e,this.previousQ=new f.Quaternion,this.previousTimestampS=null,this.deltaQ=new f.Quaternion,this.outQ=new f.Quaternion}return n.prototype.getPrediction=function(t,e,r){if(!this.previousTimestampS)return this.previousQ.copy(t),this.previousTimestampS=r,t;var i=new f.Vector3;i.copy(e),i.normalize();var a=e.length();if(a<Qr*20)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(Un*a).toFixed(1)),this.outQ.copy(t),this.previousQ.copy(t),this.outQ;var o=a*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(i,o),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(t),this.previousTimestampS=r,this.outQ},n}(),Xm=function(){function n(t){this.coefficients=t}return n.prototype.distortInverse=function(t){for(var e=0,r=1,i=t-this.distort(e);Math.abs(r-e)>1e-4;){var a=t-this.distort(r),o=r-a*((r-e)/(a-i));e=r,r=o,i=a}return r},n.prototype.distort=function(t){for(var e=t*t,r=0,i=0;i<this.coefficients.length;i++)r=e*(r+this.coefficients[i]);return(r+1)*t},n}(),Wm=function(){function n(){this.angularAcceleration=null,this.angularVelocity=null,this.linearAcceleration=null,this.linearVelocity=null,this.orientation=null,this.position=null}return n}(),q0=function(){function n(){this.leftDegrees=0,this.rightDegrees=0,this.upDegrees=0,this.downDegrees=0}return n}(),Zm=function(){function n(t,e,r,i){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 f.Vector3,this.gyroscope=new f.Vector3,this.filter=new _m(t,i),this.posePredictor=new Jm(e,i),this.isFirefoxAndroid=Um(),this.isIOS=pi();var a=Gl();this.isDeviceMotionInRadians=!this.isIOS&&a!==null&&a<66,this.isWithoutDeviceMotion=qm()||Hm(),this.filterToWorldQ=new f.Quaternion,pi()?this.filterToWorldQ.setFromAxisAngle(new f.Vector3(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new f.Vector3(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new f.Quaternion,this.worldToScreenQ=new f.Quaternion,this.originalPoseAdjustQ=new f.Quaternion;var o=typeof window!="undefined"?-window.orientation*Math.PI/180:0;this.originalPoseAdjustQ.setFromAxisAngle(new f.Vector3(0,0,1),o),this.setScreenTransform_(),N0()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new f.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 a=new f.Quaternion().setFromAxisAngle(new f.Vector3(0,0,-1),0),o=new f.Quaternion;return typeof window!="undefined"&&window.orientation===-90?o.setFromAxisAngle(new f.Vector3(0,1,0),Math.PI/-2):o.setFromAxisAngle(new f.Vector3(0,1,0),Math.PI/2),a.multiply(o)}(),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||function(){var a=new f.Quaternion;return a.setFromAxisAngle(new f.Vector3(1,0,0),-Math.PI/2),a}(),t=this._deviceOrientationQ;var e=new f.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 i=new f.Quaternion;return i.copy(this.filterToWorldQ),i.multiply(this.resetQ),i.multiply(t),i.multiply(this.worldToScreenQ),this.yawOnly&&(i.x=0,i.z=0,i.normalize()),this.orientationOut_[0]=i.x,this.orientationOut_[1]=i.y,this.orientationOut_[2]=i.z,this.orientationOut_[3]=i.w,this.orientationOut_},n.prototype.getPose=function(){var t=new Wm;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(),N0()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},n.prototype.getFrameData=function(t){var e=this.getOrientation(),r=this.getEyeOffset(),i=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(i.left),t.rightProjectionMatrix.set(i.right),U0(t.leftViewMatrix,e,r.left),U0(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),i=this.onDeviceOrientation_.bind(this);return pi()&&jm()&&window.addEventListener("message",r),window.addEventListener("orientationchange",e),this.isWithoutDeviceMotion?window.addEventListener("deviceorientation",i):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,i={left:[],right:[]};{var a=t.left.upDegrees*Qr,o=t.left.downDegrees*Qr,s=t.left.leftDegrees*Qr,u=t.left.rightDegrees*Qr,l=2/(s+u),c=2/(a+o);i.left[0]=l,i.left[1]=0,i.left[2]=0,i.left[3]=0,i.left[4]=0,i.left[5]=c,i.left[6]=0,i.left[7]=0,i.left[8]=-((s-u)*l*.5),i.left[9]=(a-o)*c*.5,i.left[10]=r/(e-r),i.left[11]=-1,i.left[12]=0,i.left[13]=0,i.left[14]=r*e/(e-r),i.left[15]=0}{var a=t.right.upDegrees*Qr,o=t.right.downDegrees*Qr,s=t.right.leftDegrees*Qr,u=t.right.rightDegrees*Qr,l=2/(s+u),c=2/(a+o);i.right[0]=l,i.right[1]=0,i.right[2]=0,i.right[3]=0,i.right[4]=0,i.right[5]=c,i.right[6]=0,i.right[7]=0,i.right[8]=-((s-u)*l*.5),i.right[9]=(a-o)*c*.5,i.right[10]=r/(e-r),i.right[11]=-1,i.right[12]=0,i.right[13]=0,i.right[14]=r*e/(e-r),i.right[15]=0}return i},n.prototype.getEyeFieldOfView=function(){var t=this.viewer,e=this.device,r=new Xm(t.distortionCoefficients),i=t.screenLensDistance,a=(e.widthMeters-t.interLensDistance)/2,o=t.interLensDistance/2,s=t.baselineLensDistance-e.bevelMeters,u=e.heightMeters-s,l=Un*Math.atan(r.distort(a/i)),c=Un*Math.atan(r.distort(o/i)),d=Un*Math.atan(r.distort(s/i)),p=Un*Math.atan(r.distort(u/i)),A=new q0,h=new q0;return A.leftDegrees=Math.min(l,t.fov),A.rightDegrees=Math.min(c,t.fov),A.downDegrees=Math.min(d,t.fov),A.upDegrees=Math.min(p,t.fov),h.leftDegrees=A.rightDegrees,h.rightDegrees=A.leftDegrees,h.upDegrees=A.upDegrees,h.downDegrees=A.downDegrees,{left:A,right:h}},n.prototype.onDeviceOrientation_=function(t){this._deviceOrientationQ=this._deviceOrientationQ||new f.Quaternion;var e=t.alpha,r=t.beta,i=t.gamma;e=(e||0)*Math.PI/180,r=(r||0)*Math.PI/180,i=(i||0)*Math.PI/180,this._deviceOrientationQ.setFromEuler(new f.Euler(e,r,-i,"YXZ"))},n.prototype.onDeviceMotion_=function(t){this.updateDeviceMotion_(t)},n.prototype.updateDeviceMotion_=function(t){var e=t.accelerationIncludingGravity,r=t.rotationRate,i=t.timeStamp/1e3,a=i-this.previousTimestampS;if(a<0){z0("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),this.previousTimestampS=i;return}else if(a<=ql||a>Hl){z0("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),this.previousTimestampS=i;return}e&&(this.accelerometer.set(-e.x,-e.y,-e.z),r&&(Kl()?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,i)),this.filter.addAccelMeasurement(this.accelerometer,i)),this.previousTimestampS=i},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 f.Vector3(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new f.Vector3(0,0,1),Math.PI/2);break}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},n}(),Gi=[0,0,.5,1],Ki=[.5,0,.5,1],Ym=function(){function n(t){var e=this;this.renderer=t,this.sensor=new Zm(.98,.04,!1,!1),this.scale=1,this.cameraL=new f.PerspectiveCamera,this.cameraR=new f.PerspectiveCamera;var r=this.sensor.start();this.dispose=function(){var i=e.renderer.getSize(new f.Vector2);e.renderer.setScissor(0,0,i.width,i.height),e.renderer.setViewport(0,0,i.width,i.height),e.renderer.setScissorTest(!1),r()}}return n.prototype.render=function(t,e){var r=this.renderer.getSize(new f.Vector2);if(r.width>r.height){var i=t.autoUpdate;i&&(t.updateMatrixWorld(),t.autoUpdate=!1);var a={x:Math.round(r.width*Gi[0]),y:Math.round(r.height*Gi[1]),width:Math.round(r.width*Gi[2]),height:Math.round(r.height*Gi[3])},o={x:Math.round(r.width*Ki[0]),y:Math.round(r.height*Ki[1]),width:Math.round(r.width*Ki[2]),height:Math.round(r.height*Ki[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 s=this.sensor.getEyeOffset();this.cameraL.translateOnAxis(new f.Vector3().fromArray(s.left),this.scale),this.cameraR.translateOnAxis(new f.Vector3().fromArray(s.right),this.scale);var u=this.sensor.getEyeProjectionMatrix();this.cameraL.projectionMatrix.elements=u.left.slice(),this.cameraR.projectionMatrix.elements=u.right.slice(),this.renderer.setViewport(a.x,a.y,a.width,a.height),this.renderer.setScissor(a.x,a.y,a.width,a.height),this.renderer.render(t,this.cameraL),this.renderer.setViewport(o.x,o.y,o.width,o.height),this.renderer.setScissor(o.x,o.y,o.width,o.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),i&&(t.autoUpdate=!0)}else this.renderer.render(t,e)},n.prototype.dispose=function(){},n}();const $m="data:image/png;base64,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",eA="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK4AAAClCAMAAADyFTYfAAAC+lBMVEUAAABISEhKSkpGRkZERERCQkJOTk45OTlBQUFQUFBSUlJUVFQ7OztYWFg/Pz8/Pz9aWlpkZGQ3NzdcXFxeXl5MTExHR0dhYWFJSUk9PT1WVlZMTEygoKBERERFRUVmZmZQUFA9PT1LS0tra2tPT09ubm5SUlI2NjZXV1czMzOpqalTU1O3t7dVVVVoaGhaWlpqamq1tbWhoaGenp6lpaWurq6ysrJZWVmjo6OgoKBUVFRdXV1cXFyvr6+0tLSwsLCrq6ubm5syMjKbm5twcHCQkJCLi4uGhobLy8uCgoJ9fX1ycnLPz894eHizs7NxcXFgYGCVlZWYmJh7e3umpqa3t7fOzs7JycnFxcWvr6+JiYl0dHRra2uSkpKNjY2IiIi4uLiUlJSsrKx3d3fDw8OHh4eQkJB9fX2dnZ2UlJR/f3++vr6RkZFzc3ODg4OioqKcnJyUlJSCgoJ4eHirq6u4uLh4eHiBgYF2dnaLi4uMjIyjo6OZmZm1tbWwsLCcnJyxsbF6enqAgICwsLC9vb26urqjo6OKioqsrKyWlpaoqKhbW1u2traCgoJ6enqZmZmbm5t+fn6JiYmgoKC0tLS4uLhmZma0tLSYmJhxcXF1dXWlpaWfn5+IiIicnJyzs7Ofn5+xsbGampq7u7vAwMCMjIxgYGChoaGgoKCQkJCOjo5vb2+RkZG1tbWOjo6Hh4d6enq1tbV8fHzGxsZubm5mZmanp6eZmZmvr6+Hh4eTk5Ojo6NwcHCenp6mpqZ6enqlpaWWlpaJiYmlpaVjY2OcnJyKiop9fX1/f3+CgoKlpaV4eHiUlJSIiIixsbGqqqqGhoZxcXGPj4+ysrK1tbWurq63t7eBgYG2tra2tralpaV+fn6enp6tra2EhISZmZmVlZWGhoZycnKhoaHV1dXX19fW1tbZ2dmrq6upqamwsLDa2trU1NSzs7Ovr6+ysrKurq6tra3S0tLGxsa9vb3Q0NDDw8PNzc3BwcG/v7/IyMi6urq4uLi1tbVYe8d+AAAA5HRSTlMA4+Pj4+Dj4OPj4+Pg4+Pg4+Pg4+Pj4OPg4OPg7+Dg4+Dj4OPg4+Dg4ODM4Mzg4+DjzPDwzMzM4MzM4ODgzMzMzMzg7uPMzMz+zMzM/swD4+DNzMz0/vz8+fXNzerMzAr58dPN9fLs7MzMzPn05My3j1w/Lff07+7MLRH77+7u7uVbJfr39PPr6eno6Ofn59W7jl9ZVxAK+ffr6dXVuHNAQCYm/Prx6uff3NLNuaePjX9zc/vq6d/f3NbUyK6rqaeNjXMR6ufc2tG9vLynp4xzWUnn0ry8t6WZemFLNxrRyMjIxGrWwvApAAASsUlEQVR42uzW12tTYRjH8aMQvLDiJDa2aimigqiQ3NjLIjVpTQutrba2FkupthXqIA6caNUaxYUXDlTcWhUVB+LeCxXUGy8EFxlocoxohokJ+Hvfk9Pn4q1By/EYwe9f8OHhd4b0P40qmXfm6vuJV8/Mk/6BVp19XD2Rd+Lq8xIprVu88kY1sEnuCYCltK1k3tbi+kXV8HLsgzpHIuFwnpHSMowA2EXVi7j2wYzA9/j3eLyioiL7lZRuYQTFxcX19fDiuNVtju+sOLio9ayUTmEERZO4lk9hoyUYDALburBXd8ORhkSF/DmN7osRTJoELcJtHzgrgqx43V1TRkYPtOFDQrZI6RFGAKuqrX9RFY1GgV2yYEgGsEqDErKcDs8bRtBcVFTEucDeXxv9FkWBhp4ZiLwNstwu6Z04gkdFPK59uDT+jRXccaG3KYntOK8sl0t/tcXPXhY2N6vahy9aw+EwsI4FRhNL4aoZZPmzpH80gtOFhdA2K9r75V+/htH0w4N6m3h0XF4/WQ5If6tVtx8VshTtpRWHvqJw1FJj6I0ELrT6c2kET1usHdqHzu2xGNNWzcwEFQlTgFb369II3lmtLS2Fire9PGaLgXvwcC9+WOLy6Li6cmkEe6ysFu69lB222aANm2sMLOISVkeuOALrVCsP2NfO6ZGIDbXOzDIoqVjUCTfwUdIvjGDCVGCTt22vskWQ7VBdL4OaOAXSMq5+18UIJkzo4B5fe85ut0cisbXnB6vW1FtAAb24i+c+hRVazp16b3UoZEfbF2YNNhCXsDQF3a+LEZyq5VjluBerQl9CqLKu/5DByEDcVMdFAR22e+D2ydraWlXbvn7Kly/Q2sp3GocIWuG4+nIxgicFKKk9fvSQy8+00xtygOXaX1+uyNV6BLcKOBbhsheX+T0uv99/bukAI7BMK16X3mLicUcEPv457oG9J6cV8Bj28rrJbrfH5Qo5dmUa0U+PS1hEWoGr9QiapqnaguNHK71uaD2rG0YZFWzqKZg61Y74+Ee4JftuvS2FVvHWXpzv9jHtlPEDM3FZgUta8UkjLbj96LpajmBLaWlTUxK7eZ3dh7wux67cTGjVJbB+TUveGs25d7Y9KS0rZdwmaC8frfR5YfXNahvNsHRc1m+9FtAYM8ag7QjelJVBq1z32Hw3qF7fZEvfXI6l4xpTLFf8Lef1mWHWlIsR5JexuHbzcrvPizxVm7JykcKlKYjeVJ+IHmOcZgSuViO4lp+fr2DR+kovuysbQZagRZ1gSStuoRsuqxkXI5jTmM/jXIzAi3w2S98sxLW5xE35iQA4Q3gtmOrMKveTFiNQsQgj4FaMIAfWJJe0qlc4boop1CS12XTdro8gr7ERXN7m9ZU4LJrVNnLYMEFLxyUvaVniFvqhNlA1GEPJvptX8vIa85K35SNANsvQnGGIYclLWjou1YGl1wJ5l2pwXYxgdh6PH3f3crsbny6vHyMAlrTCcUmb+rjEXZHUgvupqyO4Pm5cUgssRuCGFiMYm4NScVP+OIpbIG62mbi/PQIVC+6xNR4vw9osY4bDqnrFKSjRcAVvZw8acbt23f0/SLV7n6aiMAzg8SMkSkwkaPz+SPwqbbHcXAVjpRJ1cFIGAjJqTB1IR+IiyiDRBRZhkYGYuDK4ECb/AAcd/IgObscGk8YAf4Hve96ePj19r+e28eEf+OXJc889bfn04cqlK47LI+CYyYXc+dPCTRpu+uXmiNWq5XrcPx1yl169v0RhLVt5BJypcuE8x3VLSeOqbvVywWUtuO2PIHtJtMxdmzZMpREM5HLQppTLadHWvYlaxz3O+aO4wRFks1mnXX46bq10EvTnOJ2UywmUK1Rwb3bc7tLi+yzFlfuyPoLn5eLV3NVcR+WeONnBFITLWOFutjOClY8jI9kGd21ORjARn+nv7xcutLpcSYArCXAxBs3VI/g6cjlb12YxgkeZfqu1QbsWeza4XEon5V7gdsENj2D1MqVe7vLLxklQzGQyrKVAaxMqFw8a0g73OLjBEQxftrHaphFkBIt29RY4Spv25QK4wF5or903775eHx4erne7PDNe/UV/NIJCRsJY4upyj6XfHBH1imgEXJIKd3PrnyMYHCStlPuAR1C1IxgdGhpq1oIrWJu0m6OHDX25wPG4m8kjKA2SVrgja3O1KoVGcK4wREG5BGZs6BSTBMoVbahccDeJq0fwpVQi7KCdwgMaQZWq3Z6cL1BYK162SrfeoYtyrdfDhk4xlOtryeu1q0YQRYS15V6nEZgqZ6rcY7EFaDngkla3i49oTpv+iVKV67Xrb/fnj1I+KpWEO7xOI+BMxHevFSTYArR6C4JFuekXR30Xg7avL5m79COfz0d1rh2BqRoaQfEatF656lgIXcvDXH2KwZvMXfkWRaSNSHt99mGVsKb6vHyKsNDiQRMt2gUXWmA7vy645frtbjW4i9SslPt5ZrtqKBNxpVgkrea65bZebrxDt4Obo+ai3L5E7ru6NhqcZmqVR8C5xlFab7rhKegHLV2L6frtbglXtJa7fpu1U+WLo0UbT4stoNxcMtfXYrr6Z6kwty9pDIsRdcvaWW52en501Gk5oi0ka9X7V50LwVMsrFVj2LBvBrYSuDRD2tsvCKu4arl40Nq6iqX/zqMvN4q7JdxVovKxwNq5AWC1ViLDtd4WrXih/a+LrmjBjYW7mJfM1kxtsoewvle/Ijih96+N1qaXq7U+d4O4d77lbbfr28ZMVyqVu3eLo6FycYgprTrE2rvcHAl0q8awwlgS3zPm3gJhKbco5zhJZ24GN0fRSgJclNvJp4hWbiztfs/bdulQ2J7ncimMRc5w/Cl45QIradGCm/r61VpwY+EuUbXc7rgxYwR1adIiA5RD2IJg4YXWRbCdlKu3cKPB3SDuCmO53NptbhZSaIGlXOSc4hwIfhUiVl2u/hQRKBftxjIG90J7yOVSdLO+V7CSHpfe0/61HN0GD139UwS0/2r3u32jfTamtkBQR9Va1yv9OS1yyOWs0oa2EFgutMKN69xV+0ajLbxVxXqRZrUUWs6BQwc4vb29x/zLjY+FNjQFcNHuF7uFGdoCtOAOuFyEVheLkFa8kv2cw+Rt99tyF48rWOHaM5enW4ZUtJ5XqGJVWkiBFa5kXz3OG/jPQbXcFi5Z6W/CmHmxetQzVKp+wMLaXq1FjnK6u7t9beLlRrTCjcG1BxmduhW9WnFKUC7ScMpm1Q5IStZWbrfN3nr8LahyKU+auXLRNcYkvRRgBRRBraBKudB6te7rdlyA9+zdw+nq6iKtOhaEGzvub+JGFFNzXEyWmYob3KyTIl6tVgoruOJ1OXiwhRs3ceViLu1Ci6fLST2tgkILbwPqsNA6qkS04FJ22uzYDe4zx40oNeImnwXt70CCdvVeEXAhVVzyco6PjY097rpx5PXGb+JGBC7RzRxYHLHQpjQLK6T7odVQaD2oSKHl9Nx/tGcXx223xGMAF3sNbdZz+lxILfRvc2f2clMUhvGNkzFucOPOrTtD4kJcupArc8oQURQyJZI5U5nKzI1ZQiFTpkLxDyhxZZ91bHPmsbzvWmftd6/1rGWT4zjP58Plr6ffftdwPptHyylI0Al7FVQOkxrczLjLuC+clRZMiI/ZPPCE4dNleX1ne0qCsBVKu4qRodCuKdahDIogY6sQz1iNC8L+iratNNvWa7bCyTKWgS/x6FHTxfrbGAElVMaFXg0pzoOu8Hh5sFYAkTZPjkq/Ca1pV1/oUruwLyiZBdArLLc+p8MLukocDQyqtKuvn2mZcOdskFbW2hzTpxVnXVrsVXARVXBz2o4dO2pc2y6vYUAbecBCT5eHK6hxXk3q4BZBg7hsrsFFUhOcXPS7MRZmgQ1qEFjAfFCkzUk5BpfL5UctZoHg4sYAcB1UjxaXMNAAaAG3r22XUAO8uIShBbCbhUEA5cooAFyXlH5Z3DZZtjQh2rzdAmV40EoKuEIbHVtC6k8EwQzj2nTr1q1zlvVPBjLuUG438nAFaIWzWC5uuFxaO2froEhrFZDhJbCUo1k2RXBjswAONeEhS9+wj/Hi4DKpZkVcgXVwF2XZhIRoPdzQydZDRVyeswaUvrv4tIWHS6wFUEb1abvl6Tg7y7Yl5uNfcvcPDgpdveATBr06xmK1MGQtrgDTk5bNTwZKuxo0RGtIi7wwDNwDo88ptIEFoQ19wehymrUubEgSXa7gFijNX9ADKBZPX3k8VtjGwJAVWMHtzem4lF0wuEM0buR+QzyAjUFeLgsLWxigrcdwurA4DDSt4FK5SycRLtMyrmxiJNE5i4fFPMFezbqAtUpwzhpS+sXpROY+SDSuaVeqRVzoVWhttbKCAS3H2xigr4Y155VejQq7s2xZYnCHcLsKaC0qDFrvrAiPWM4JHuDk4oSc9XCn09Z8JeNyt0aGHl6gWLjf8EB9WpPgZlY4Jb4Gkm5MeyPhmJ+5SVUqkE7gMiZ2pEFnXVx8xAqkdnSBB5zKbLodu5zoEK2RAZ+uQoC2ZDebc3q0QupW6wwDD/f2UqFNzA80kQxQbWgWdI01i7QOKEjroIoH0GyHTVzt03tJPUzLuEpooyeFAmVx0KKySItLwi8esJy348Tdb+inGJaeTXzcVHCjqy1IAL2GN97uoaZQqkMLzW6a/vTVK/qpgBOrkjxsLuGq1HRqElEWeONDNu4Bbr2DyrZftPTZM6LN7jpvHCJYIwM8XRYXDouS6GERcUMS4OgSCV4+o7zqf2A+QyJu6gorEgCtkCItYMITJmMLcEWCZy9f0z/9y07yyhDBNajIG7mMKXMWUIUWQE2sBNlLerPBy2cbtu1MMJp2GLkbmAX0HTvSeLi4L4gfaULWigT0NiTCXWckwGjaYeRuoNnwaiuBBQx79QetA+rhbjrycjTlxxuRAHE1r0pTC+ntEb1eQ6Or3IKKJDYLOs1YoF819eMOSBBqNw19XNfrF8XSd6zYdh6uR4q7rsr5/of0m7FAgiBuH3LXoS2bBbkHfKAJWOClSGtJhfbo7NHfGHb1FZAAwrTa3RLa6NE2uB5gsRoXeiUJFq/WL/L6fucMSoBhWi2DsMIuJnKm4V+5tYCKHuCeq7Jn3Zf3nFEgQSTaBZah0G35p0q4mUXa+AJW33QfnX3oC9PuAgni0bR9VKry5cs5gQGog/uLYv2LLju3RILX+j1e74+BBCW4xEsyWFq49o59DOrhuq0WyoViWYKl9GYswl1wCiT4dZiWZaB2cdDG14Tf23hTKrgvODrls36R1+Qt25M/Dbug2xUFOLEjjaMBbLhKlgTG7Tx98rt3THvsNEpQHi5XP2qOsBxZwkqPto6uYIGwVvaO+qpf5DUeJPgjXJUqBxeURVy53wiLgLPr9u6PGvZQVILyMC3jmnbLP60TWtxwSWBykQSHvn5l2o0swV/ipkoFL2PgIC6o3vwC0CJuu0UL9Hu8vu4iCf4qxGrc7QwiiAW61PiaAFPLlfZC/7H6RV6H97MEDcFN1W9/WifBy0NcwDofmTXiE9NqCRqDO0CpFM40MV6oFou1C1ibRatHjGDahVtJgkZE0w5QqXJoQVko1y3Wpc0lGPOBaceJBA1ql93NSfHyCD9Uil512j97HfnM7/Ea8Wn96UkNQpV2U6V0tUAaXW7jNwYswYxdL94y7VqSoKFhWiMDXnUBaHBwoQT9Prx4Szm3TyRodLupoMJHH5LyK+9es8+l/CKvDytukQQND8FSlFIOreGM0/omiATVapVo12xd0jhExKW5294RAc40RVoftY47cd2LKtMOFwkajzuAeVOlIhfJeKahLyiWJRhLr3Ai2BVzQYKG4lLYXfg8HCSI33a2nTH5OaVWmzYHJGhsdLmDuN2exAonBTzZIuzEUS+ec0ZMBQn+Ea5KlXNI4C/UAO/k6hKwBptJgn8fgmVckgFXML9YEEFLUKMvlqAp0eWyDEAL65dLqyWo6RekTZ2XNCsD6rgpTK/4p3WcrrPH1ghWJGhONC3JoGAkRHH1JKjpNEcCxOV2I8MWyiUJqNVajSVodgiWcVMVLVeSS1ATCZoc88qjVKlSc3kSLJ5c5V6rTZQAcVkGbBeuOkgCgq2CBM3MoFwGr1tvim2aMpZZqyBBc3N1UF2GX90j9SQJKCBB83OfYAcNVjFcSrvzo95WOShB83Ody5V24fqzO0nAUSzB/89Nph38VqmuOa3gticJOP9fApuHTDt4nFJ7AXdPC0lg8/gq8y5XapSrgpUgbQ0JpF5u97hS1fOC26nlJJA8Yd41Sg3fU4dtRQkKeXSN3jo4Qqm0397OmyZOGatoDrScBIWM3DFn5kXi1ZyqRSUoZtKOa1vWKArztqgEnhIHty4f9/btuEstKwGkxf+XuCT5CbTFnFRuxktuAAAAAElFTkSuQmCC";var lo,co={zh:{TITLE:"眼镜模式",HIT:"请将手机横屏放入 VR 眼镜中"},en:{TITLE:"GLASSES MODE",HIT:"Please put the mobile phone horizontally into the VR glasses."},ja:{TITLE:"メガネモード",HIT:"携帯電話をVRメガネに水平に入れてください。"}},H0=typeof navigator!="undefined"&&(lo=co[navigator.language.split("-")[0]])!==null&&lo!==void 0?lo:co.zh,tA=`
1597
1597
  <style>
1598
1598
  .$id {
1599
1599
  all: initial;
@@ -2166,7 +2166,7 @@ void main() {
2166
2166
  #include <premultiplied_alpha_fragment>
2167
2167
 
2168
2168
  }
2169
- `},gs=function(n){ue(t,n);function t(e){var r=n.call(this,{uniforms:f.UniformsUtils.clone(po.uniforms),vertexShader:po.vertexShader,fragmentShader:po.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(i){this.uniforms.diffuse.value=i}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(i){this.uniforms.linewidth.value=i}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(i){this.uniforms.dashScale.value=i}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(i){this.uniforms.dashSize.value=i}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(i){this.uniforms.gapSize.value=i}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(i){this.uniforms.opacity.value=i}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(i){this.uniforms.resolution.value.copy(i)}}}),r.setValues(e),r}return t}(f.ShaderMaterial);Object.assign(gs.prototype,{isLineMaterial:!0});var Wl=function(n){ue(t,n);function t(e,r){var i=n.call(this)||this;return i.type="LineSegments2",i.geometry=e!==void 0?e:new As,i.material=r!==void 0?r:new gs({color:Math.random()*16777215}),i}return t.prototype.computeLineDistances=function(){for(var e=this.geometry,r=e.attributes.instanceStart,i=e.attributes.instanceEnd,a=new Float32Array(2*r.count),o=new f.Vector3,s=new f.Vector3,u=0,l=0,c=r.count;u<c;u++,l+=2)o.fromBufferAttribute(r,u),s.fromBufferAttribute(i,u),a[l]=l===0?0:a[l-1],a[l+1]=a[l]+o.distanceTo(s);var d=new f.InstancedInterleavedBuffer(a,2,1);return e.setAttribute("instanceDistanceStart",new f.InterleavedBufferAttribute(d,1,0)),e.setAttribute("instanceDistanceEnd",new f.InterleavedBufferAttribute(d,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 i=e.ray,a=e.camera,o=a.projectionMatrix,s=this.geometry,u=this.material,l=u.resolution,c=u.linewidth,d=s.attributes.instanceStart,p=s.attributes.instanceEnd,A=new f.Vector4,h=new f.Vector4,v=new f.Vector4,g=new f.Vector3,m=new f.Matrix4,y=new f.Line3,b=new f.Vector3;i.at(1,v),v.w=1,v.applyMatrix4(a.matrixWorldInverse),v.applyMatrix4(o),v.multiplyScalar(1/v.w),v.x*=l.x/2,v.y*=l.y/2,v.z=0,g.copy(v);var x=this.matrixWorld;m.multiplyMatrices(a.matrixWorldInverse,x);for(var w=0,M=d.count;w<M;w++){A.fromBufferAttribute(d,w),h.fromBufferAttribute(p,w),A.w=1,h.w=1,A.applyMatrix4(m),h.applyMatrix4(m),A.applyMatrix4(o),h.applyMatrix4(o),A.multiplyScalar(1/A.w),h.multiplyScalar(1/h.w);var S=A.z<-1&&h.z<-1,E=A.z>1&&h.z>1;if(!(S||E)){A.x*=l.x/2,A.y*=l.y/2,h.x*=l.x/2,h.y*=l.y/2,y.start.copy(A),y.start.z=0,y.end.copy(h),y.end.z=0;var P=y.closestPointToPointParameter(g,!0);y.at(P,b);var B=f.MathUtils.lerp(A.z,h.z,P),C=B>=-1&&B<=1,I=g.distanceTo(b)<c*.5;if(C&&I){y.start.fromBufferAttribute(d,w),y.end.fromBufferAttribute(p,w),y.start.applyMatrix4(x),y.end.applyMatrix4(x);var F=new f.Vector3,T=new f.Vector3;i.distanceSqToSegment(y.start,y.end,T,F),r.push({point:T,pointOnLine:F,distance:i.origin.distanceTo(T),object:this,faceIndex:w})}}}},t}(f.Mesh);Object.assign(Wl.prototype,{isLineSegments2:!0});var Zl=function(n){ue(t,n);function t(e,r){var i=n.call(this,e,r)||this;return i.type="Line2",i}return t}(Wl);Object.assign(Zl.prototype,{isLine2:!0});var Yl=function(n){ue(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,i=new Float32Array(2*r),a=0;a<r;a+=3)i[2*a]=e[a],i[2*a+1]=e[a+1],i[2*a+2]=e[a+2],i[2*a+3]=e[a+3],i[2*a+4]=e[a+4],i[2*a+5]=e[a+5];return n.prototype.setPositions.call(this,i),this},t.prototype.setColors=function(e){for(var r=e.length-3,i=new Float32Array(2*r),a=0;a<r;a+=3)i[2*a]=e[a],i[2*a+1]=e[a+1],i[2*a+2]=e[a+2],i[2*a+3]=e[a+3],i[2*a+4]=e[a+4],i[2*a+5]=e[a+5];return n.prototype.setColors.call(this,i),this},t.prototype.fromLine=function(e){var r=e.geometry;if(r instanceof f.Geometry){var i=new f.BufferGeometry().fromGeometry(r);this.setPositions(i.attributes.position.array)}else r instanceof f.BufferGeometry&&this.setPositions(r.attributes.position.array);return this},t.prototype.copy=function(){return this},t}(As);Object.assign(Yl.prototype,{isLineGeometry:!0});var PA="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==",X0=14467195,RA=8,BA=2,FA=20,W0=null,zo=function(n){ue(t,n);function t(e,r){e===void 0&&(e=new f.Vector3),r===void 0&&(r=new f.Vector3);var i=n.call(this)||this;i.type="FiveLine",i.needsRender=!0;var a=new Yl,o=new gs({color:X0,linewidth:BA,dashScale:FA,dashed:!1});i.line=new Zl(a,o);var s=new f.BufferGeometry,u=new f.PointsMaterial({color:X0,size:RA,map:W0||(W0=new f.TextureLoader().load(PA)),sizeAttenuation:!1,transparent:!0});return i.points=new f.Points(s,u),i.points.renderOrder=11,i.points.frustumCulled=!1,i.setPoints(e,r),i.add(i.line,i.points),i}return Object.defineProperty(t,"version",{get:function(){return"6.4.0-alpha.25"},enumerable:!1,configurable:!0}),t.prototype.setPoints=function(e,r){var i=[].concat(e.toArray(),r.toArray());this.points.geometry.setAttribute("position",new f.BufferAttribute(new Float32Array(i),3)),this.line.geometry.setPositions(i),this.line.computeLineDistances(),this.needsRender=!0},t.prototype.getPoints=function(){var e=this.points.geometry.attributes.position.array;return[new f.Vector3(e[0],e[1],e[2]),new f.Vector3(e[3],e[4],e[5])]},t.prototype.setMaterial=function(e){var r=this.line.material;for(var i in e)if(e.hasOwnProperty(i)){var a=e[i];i==="dashed"?(r.dashed=a,a?r.defines.USE_DASH="":delete r.defines.USE_DASH,r.needsUpdate=!0):r[i]=e[i]}this.needsRender=!0},t.prototype.setResolution=function(e,r){var i=this.line.material.resolution;(i.x!==e||i.y!==r)&&(i.set(e,r),this.needsRender=!0)},t}(f.Object3D);Object.assign(zo.prototype,{isFiveLine:!0});var rt={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 $l(n){return ha(this,void 0,void 0,function(){var t;return pa(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 LA(n){return ha(this,void 0,void 0,function(){var t,e;return pa(this,function(r){switch(r.label){case 0:if(!n)throw new Error("No basePath supplied");return t="profilesList.json",[4,$l("".concat(n,"/").concat(t))];case 1:return e=r.sent(),[2,e]}})})}function kA(n,t){return ha(this,arguments,void 0,function(e,r,i,a){var o,s,u,l,c,d;return i===void 0&&(i=null),a===void 0&&(a=!0),pa(this,function(p){switch(p.label){case 0:if(!e)throw new Error("No xrInputSource supplied");if(!r)throw new Error("No basePath supplied");return[4,LA(r)];case 1:if(o=p.sent(),e.profiles.some(function(A){var h=o[A];return h&&(s={profileId:A,profilePath:"".concat(r,"/").concat(h.path),deprecated:!!h.deprecated}),!!s}),!s){if(!i)throw new Error("No matching profile name found");if(u=o[i],!u)throw new Error('No matching profile name found and default profile "'.concat(i,'" missing.'));s={profileId:i,profilePath:"".concat(r,"/").concat(u.path),deprecated:!!u.deprecated}}return[4,$l(s.profilePath)];case 2:if(l=p.sent(),a){if(d=void 0,d=l.layouts[e.handedness],!d)throw new Error("No matching handedness, ".concat(e.handedness,", in profile ").concat(s.profileId));d.assetPath&&(c=s.profilePath.replace("profile.json",d.assetPath))}return[2,{profile:l,assetPath:c}]}})})}var OA={xAxis:0,yAxis:0,button:0,state:rt.ComponentState.DEFAULT};function DA(n,t){n===void 0&&(n=0),t===void 0&&(t=0);var e=n,r=t,i=Math.sqrt(n*n+t*t);if(i>1){var a=Math.atan2(t,n);e=Math.cos(a),r=Math.sin(a)}var o={normalizedXAxis:e*.5+.5,normalizedYAxis:r*.5+.5};return o}var VA=function(){function n(t){this.componentProperty=t.componentProperty,this.states=t.states,this.valueNodeName=t.valueNodeName,this.valueNodeProperty=t.valueNodeProperty,this.valueNodeProperty===rt.VisualResponseProperty.TRANSFORM&&(this.minNodeName=t.minNodeName,this.maxNodeName=t.maxNodeName),this.value=0,this.updateFromComponent(OA)}return n.prototype.updateFromComponent=function(t){var e=t.xAxis,r=t.yAxis,i=t.button,a=t.state,o=DA(e,r),s=o.normalizedXAxis,u=o.normalizedYAxis;switch(this.componentProperty){case rt.ComponentProperty.X_AXIS:this.value=this.states.includes(a)?s:.5;break;case rt.ComponentProperty.Y_AXIS:this.value=this.states.includes(a)?u:.5;break;case rt.ComponentProperty.BUTTON:this.value=this.states.includes(a)?i:0;break;case rt.ComponentProperty.STATE:this.valueNodeProperty===rt.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(a):this.value=this.states.includes(a)?1:0;break;default:throw new Error("Unexpected visualResponse componentProperty ".concat(this.componentProperty))}},n}(),NA=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(i){var a=new VA(e.visualResponses[i]);r.visualResponses[i]=a}),this.gamepadIndices=Object.assign({},e.gamepadIndices),this.values={state:rt.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=O({id:this.id},this.values);return t},enumerable:!1,configurable:!0}),n.prototype.updateFromGamepad=function(t){var e=this;if(this.values.state=rt.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=rt.ComponentState.PRESSED:(r.touched||this.values.button>rt.ButtonTouchThreshold)&&(this.values.state=rt.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===rt.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>rt.AxisTouchThreshold&&(this.values.state=rt.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===rt.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>rt.AxisTouchThreshold&&(this.values.state=rt.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach(function(i){i.updateFromComponent(e.values)})},n}(),zA=function(){function n(t,e,r){var i=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(a){var o=i.layoutDescription.components[a];i.components[a]=new NA(a,o)}),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}(),QA="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",UA="generic-trigger",qA=function(n){ue(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(i){i instanceof f.Mesh&&i.isMesh&&(i.material.envMap=r.envMap,i.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(i){var a=i.valueNode,o=i.minNode,s=i.maxNode,u=i.value,l=i.valueNodeProperty;a&&(l===rt.VisualResponseProperty.VISIBILITY?a.visible=u:l===rt.VisualResponseProperty.TRANSFORM&&(a.quaternion.copy(o.quaternion).slerp(s.quaternion,u),a.position.lerpVectors(o.position,s.position,u)))})}))},t}(si.Object3D);function HA(n,t){Object.values(n.components).forEach(function(e){var r=e.type,i=e.touchPointNodeName,a=e.visualResponses;if(r===rt.ComponentType.TOUCHPAD)if(e.touchPointNode=t.getObjectByName(i),e.touchPointNode){var o=new si.SphereGeometry(.001),s=new si.MeshBasicMaterial({color:255}),u=new si.Mesh(o,s);e.touchPointNode.add(u)}else console.warn("Could not find touch dot, ".concat(e.touchPointNodeName,", in touchpad component ").concat(e.id));Object.values(a).forEach(function(l){var c=l.valueNodeName,d=l.minNodeName,p=l.maxNodeName,A=l.valueNodeProperty;if(A===rt.VisualResponseProperty.TRANSFORM){if(l.minNode=t.getObjectByName(d),l.maxNode=t.getObjectByName(p),!l.minNode){console.warn("Could not find ".concat(d," in the model"));return}if(!l.maxNode){console.warn("Could not find ".concat(p," in the model"));return}}l.valueNode=t.getObjectByName(c),l.valueNode||console.warn("Could not find ".concat(c," in the model"))})})}function Z0(n,t){HA(n.motionController,t),n.envMap&&t.traverse(function(e){e instanceof f.Mesh&&e.isMesh&&(e.material.envMap=n.envMap,e.material.needsUpdate=!0)}),n.add(t)}var GA=function(){function n(t){t===void 0&&(t=null),this.gltfLoader=t,this.path=QA,this._assetCache={}}return n.prototype.createControllerModel=function(t){var e=this,r=new qA,i=null;return t.addEventListener("connected",function(a){var o=a.data;o.targetRayMode!=="tracked-pointer"||!o.gamepad||kA(o,e.path,UA).then(function(s){var u=s.profile,l=s.assetPath;r.motionController=new zA(o,u,l);var c=e._assetCache[r.motionController.assetUrl];if(c)i=c.scene.clone(),Z0(r,i);else{if(!e.gltfLoader)throw new Error("GLTFLoader not set.");e.gltfLoader.load(r.motionController.assetUrl,function(d){e._assetCache[r.motionController.assetUrl]=d,i=d.scene.clone(),Z0(r,i)})}}).catch(function(s){console.warn(s)})}),t.addEventListener("disconnected",function(){r.motionController=null,r.remove(i),i=null}),r},n}(),KA=O({},Aa(pr,["maxLatitude","minLatitude"]));function jA(n,t){return n}var Y0=300,_A=new f.Matrix4().makeRotationAxis(new f.Vector3(0,1,0),Math.PI),$0=new f.Vector3(-1,1,1),JA=function(n){ue(t,n);function t(e){var r=n.call(this,e)||this;r.xrManager=new TA(r.renderer,r.renderer.getContext(),{onSessionStart:function(u){r.emit("xr.session.start",X("xr.session.start",{session:u,machineType:r.xrManager.machineType}))},onSessionEnd:function(){r.emit("xr.session.end",X("xr.session.end",{session:null,machineType:r.xrManager.machineType}))}}),r.xrControllerRay={left:new f.Raycaster,right:new f.Raycaster},r.xrControllerRay.left.params.Points={threshold:.1},r.xrControllerRay.right.params.Points={threshold:.1},r.gazeRay=null,r.pointerLines={left:new zo,right:new zo},r.pointerLines.left.visible=!1,r.pointerLines.right.visible=!0,r.pointerLines.left.setMaterial({color:new f.Vector3(1,1,1)}),r.pointerLines.left.points.material.depthTest=!1,r.pointerLines.right.setMaterial({color:new f.Vector3(1,1,1)}),r.pointerLines.right.points.material.depthTest=!1,r.controllerWrappers=[new f.Group,new f.Group];var i=r.xrManager.getController(0);r.controllerWrappers[0].add(i);var a=r.xrManager.getController(1);r.controllerWrappers[1].add(a);var o=new GA;o.gltfLoader={load:function(u,l){ra.ajax(u,{responseType:"arraybuffer"}).then(function(c){var d;return es(c.body,{resourcePath:u.slice(0,u.lastIndexOf("/")+1),search:(d=u.split("?")[1])!==null&&d!==void 0?d:"",fetcher:ra})}).then(function(c){return l(c)})}},(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=kt()]={panoId:He(r.currentPano),leftPanoPicture:null,position:r.camera.pose.offset.clone(),effect:"fade",fixCameraTransform:new f.Matrix4},r.parallaxCameraMatrixs=[];var s=Mt.shared.getContext();return s?(r.on("xr.session.end",function(){r.scene.remove(r.pointerLines.left,r.pointerLines.right)}),r.xrManager.setSession(s),r.on("xr.session.start",function(){var u=r.xrManager.getControllerGrip(0);u.add(o.createControllerModel(u)),r.controllerWrappers[0].add(u);var l=r.xrManager.getControllerGrip(1);l.add(o.createControllerModel(l)),r.controllerWrappers[1].add(l)}),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=O(O({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return n.parseArgs.call(this,r)},t.initAnimationEndState=function(e){var r=this.parseArgs(e),i=n.initAnimationEndState.call(this,r);return O(O({},i),{mode:"XRPanorama"})},t.prototype.updateConfiguration=function(e){return n.prototype.updateConfiguration.call(this,O(O({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2}))},t.prototype.moveToPano=function(e,r,i){var a=this,o,s,u,l,c=(o=r.effect)!==null&&o!==void 0?o:"fade";this.userAction=i,this.stopMomentumMovement();var d=this.works.getResolvedObserver(e);if(!d)throw new Error("Invalid PanoIndex");var p=mi(d.images.up),A=this.imageOptions.size;typeof A=="undefined"&&d&&p&&(A=Number(p)),typeof A=="undefined"&&(A=2048);var h=this.imageOptions.transform,v=function(C,I){return jA(Cn(C,h,I))},g=O({key:"pano.".concat(d.panoId)},_t(this.imageOptions,["format","size","quality"])),m=d.images,y=(u=(s=d.images.tiles)===null||s===void 0?void 0:s.filter(function(C){return C.size>A}))!==null&&u!==void 0?u:null,b="pano:"+ma([m,g,h]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===b)return;var x=this.pendingTextureTask.panoId;(l=this.panoMeshes[x])===null||l===void 0||l.setProgress(0),this.emit("pano.texture.abort",X("pano.texture.abort",{error:null,progress:0,meta:null,pano:d.pano}))}var w=this.models.getMaterial()||{},M=w.pano0,S=w.pano1,E;if((M==null?void 0:M.map.name)===b?E=M:(S==null?void 0:S.map.name)===b&&(E=S),E){var P={panoId:d.panoId,effect:c,leftPanoPicture:{zoom:1,map:E.map,luminanceMap:E.luminanceMap,matrix:new f.Matrix4().compose(d.position,d.quaternion,$0)},position:d.position.clone(),fixCameraTransform:new f.Matrix4};this.doMoveToPano(d.pano,P,r);return}var B="move-to-pano-"+d.panoId;this.pending.add(B),this.pendingTextureTask={panoId:d.panoId,hash:b,onLoad:function(C){if(a.pending.delete(B),a.destroyed)C.body.dispose();else{C.body.name=b;var I={panoId:d.panoId,effect:c,leftPanoPicture:{zoom:1,map:C.body,luminanceMap:null,matrix:new f.Matrix4().compose(d.position,d.quaternion,$0)},position:d.position.clone(),fixCameraTransform:new f.Matrix4};a.doMoveToPano(d.pano,I,r)}},onError:function(C){a.pending.delete(B);var I=O(O(O({},d.pano),{mode:a.mode}),tt(a.camera.pose));a.emit("pano.error",X("pano.error",{error:C,userAction:a.userAction,options:r,prevPano:a.currentPano,progress:0,state:I})),a.emit("pano.cancel",X("pano.cancel",{error:null,userAction:a.userAction,options:r,prevPano:a.currentPano,progress:0,state:I})),r.moveCancelCallback&&r.moveCancelCallback()}},Promise.all([this.tileLevelForFov&&y&&y.length?this.textureLoader.loadTiledCubeTexture(m,y,{tileMaxLevel:this.tiledCubeTextureLevel,imageURL:{transform:v,options:g},format:f.RGBAFormat,minFilter:f.LinearFilter,magFilter:f.LinearFilter,generateMipmaps:!1,viaAjax:!0,fetcher:pt(d.work)},void 0,void 0,function(C){var I,F;a.emit("pano.texture.progress",X("pano.texture.progress",{error:null,progress:C,meta:null,pano:d.pano})),((I=a.pendingTextureTask)===null||I===void 0?void 0:I.hash)===b&&((F=a.panoMeshes[d.panoId])===null||F===void 0||F.setProgress(C))},this.renderer):this.textureLoader.loadCubeTexture(m,{imageURL:{transform:v,options:g},format:f.RGBAFormat,fetcher:pt(d.work)},void 0,void 0,function(C){var I,F;((I=a.pendingTextureTask)===null||I===void 0?void 0:I.hash)===b&&((F=a.panoMeshes[d.panoId])===null||F===void 0||F.setProgress(C)),a.emit("pano.texture.progress",X("pano.texture.progress",{error:null,progress:C,meta:null,pano:d.pano}))},this.renderer)]).then(function(C){var I,F,T=C[0];((I=a.pendingTextureTask)===null||I===void 0?void 0:I.hash)===b?(a.pendingTextureTask.onLoad(T),(F=a.panoMeshes[d.panoId])===null||F===void 0||F.setProgress(0),delete a.pendingTextureTask,a.emit("pano.texture.success",X("pano.texture.success",{error:null,progress:1,meta:T.meta,pano:d.pano}))):T.body.dispose()}).catch(function(C){var I,F;((I=a.pendingTextureTask)===null||I===void 0?void 0:I.hash)===b&&(a.pendingTextureTask.onError(C),(F=a.panoMeshes[d.panoId])===null||F===void 0||F.setProgress(0),delete a.pendingTextureTask,a.emit("pano.texture.error",X("pano.texture.error",{error:C,progress:0,meta:null,pano:d.pano})),a.emit("error",C))}),this.emit("pano.texture.load",X("pano.texture.load",{error:null,progress:0,meta:null,pano:d.pano}))},t.prototype.doMoveToPano=function(e,r,i){var a=this,o,s,u,l,c,d,p,A,h,v;i===void 0&&(i={});var g=ve(),m=kt();this.panoResources[m]=r;var y=1,b,x,w;if(this.locationMotion.ended){var M=this.locationMotion.getKeyFrameSegment(g);M[0];var S=M[1],E=this.locationMotion.value,P=this.panoResourceFromLocationMotionKeyframe(S).position,B=r.position;b=Math.max(P.distanceTo(B),y),x=[{key:S.key,progress:0,value:O(O({},E),{count:0})},{key:m,progress:1,value:{distance:0,count:1}}],w=0}else{var C=this.locationMotion.getKeyFrameSegment(g),I=C[0],S=C[1],E=this.locationMotion.value,F=this.panoResourceFromLocationMotionKeyframe(I).position,P=this.panoResourceFromLocationMotionKeyframe(S).position,B=r.position,T=S.value.count-E.count,L=Math.max(F.distanceTo(P),y)*T,D=Math.max(P.distanceTo(B),y);b=L+D,x=[{key:I.key,progress:0,value:O({},E)},{key:S.key,progress:L/b,value:S.value},{key:m,progress:1,value:{count:S.value.count+1,distance:0}}];var V=this.locationMotionKeyframesLength(this.locationMotion.keyframes),z=this.locationMotionKeyframesLength(x);w=this.locationMotion.getProgressVelocity(g)*V/z}var U=r.effect==="instant"?0:this.calculateMovingDuration(i.duration,r.effect==="fly"?b:0),q={longitude:i.longitude,latitude:i.latitude,fov:i.fov},G=O(O({},e),{mode:this.mode,longitude:(o=q.longitude)!==null&&o!==void 0?o:this.camera.pose.longitude,latitude:(s=q.latitude)!==null&&s!==void 0?s:this.camera.pose.latitude,fov:(u=q.fov)!==null&&u!==void 0?u:this.camera.pose.fov,offset:r.position.clone(),distance:0}),K=this.currentPano;if(this.emit("pano.moveTo",X("pano.moveTo",{options:i,prevPano:K,progress:0,state:G,userAction:this.userAction,error:null})),i.moveStartCallback&&i.moveStartCallback(G),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=Q,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),r.effect==="fly")this.cameraMotion.set(q,U).catch(Q);else{var _=nr({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude}),J=nr({longitude:(l=q.longitude)!==null&&l!==void 0?l:this.cameraMotion.value.longitude,latitude:(c=q.latitude)!==null&&c!==void 0?c:this.cameraMotion.value.latitude}),W=new f.Object3D;W.lookAt(_);var $=new f.Matrix4().makeRotationFromQuaternion(W.quaternion);W.lookAt(J);var Y=new f.Matrix4().makeRotationFromQuaternion(W.quaternion),Z=new f.Matrix4().getInverse($).premultiply(Y),oe=this.cameraMotion.value.fov,ne=(d=q.fov)!==null&&d!==void 0?d:this.cameraMotion.value.fov,de=1;r.effect==="zoomin"?de=1.5:r.effect==="zoomout"&&(de=.4);for(var se=ne*de,ye=0;ye<x.length-1;ye++){var ie=x[ye].key;if(ie){var xe=this.panoResources[ie];xe&&(xe.fixCameraTransform.copy(Z),xe.leftPanoPicture&&(xe.leftPanoPicture.zoom=Math.tan(oe/2/180*Math.PI)/Math.tan(se/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:(p=q.longitude)!==null&&p!==void 0?p:this.cameraMotion.value.longitude,latitude:(A=q.latitude)!==null&&A!==void 0?A:this.cameraMotion.value.latitude,fov:se}},{progress:1,value:{longitude:(h=q.longitude)!==null&&h!==void 0?h:this.cameraMotion.value.longitude,latitude:(v=q.latitude)!==null&&v!==void 0?v:this.cameraMotion.value.latitude,fov:ne}}],U).catch(Q)}var Le=this.locationMotion.setKeyframes(x,U,w);Le.then(function(){for(var Ce,Oe,ee,re=0,H=a.models;re<H.length;re++){var Be=H[re];Be.show()}var Te=O(O({},e),{mode:a.mode,longitude:a.camera.pose.longitude,latitude:a.camera.pose.latitude,fov:a.camera.pose.fov,offset:a.camera.pose.offset.clone(),distance:0});a.emit("pano.arrived",X("pano.arrived",{options:i,prevPano:K,progress:1,state:Te,userAction:a.userAction,error:null})),i.moveEndCallback&&i.moveEndCallback(Te);var Ee=a.works.getResolvedObserver(a.currentPano);if(Ee&&Ee.video&&a.videoTexture&&a.videoTexture.image instanceof HTMLVideoElement){var Qe=_A.clone().multiply((ee=(Oe=(Ce=a.models.getMaterial())===null||Ce===void 0?void 0:Ce.pano1)===null||Oe===void 0?void 0:Oe.matrix)!==null&&ee!==void 0?ee:new f.Matrix4).multiply(Ee.video.matrix),Ie={map:a.videoTexture,size:Ee.video.size,matrix:Qe,alpha:1},we=kt(),be=a.videoTexture.image;be.setAttribute("uuid",we),Ul().then(function(Ae){Ae&&Ee.video&&be.getAttribute("uuid")===we&&(be.oncanplay=function(){be.oncanplay=Q,be.play()},be.ontimeupdate=function(){be.currentTime>.5&&(be.ontimeupdate=Q,a.panoVideo.setMaterial(Ie))},be.src=Ee.video.source)}).catch(function(){be.removeAttribute("uuid")})}},function(){a.emit("pano.cancel",X("pano.cancel",{options:i,prevPano:K,progress:0,state:G,userAction:a.userAction,error:null})),i.moveCancelCallback&&i.moveCancelCallback()})},t.prototype.checkSelectedPano=function(e){var r=this,i,a,o,s;this.stopMomentumMovement();var u=this.camera.getDirection(new f.Vector3).setY(0),l=null,c=this.works.getResolvedObserver(this.currentPano);if(!c)return null;var d=c.accessibleIds.filter(function(J){var W=Lt(J);if(Ar(W,r.currentPano))return!1;var $=r.works.getResolvedObserver(W);return!$||$.position.distanceTo(r.camera.position)>r.maxAccessibleDistance?!1:$.loadable||$.active}),p=this.models.intersectRaycaster(e)[0];if(p){var A=Br(d,function(J){var W=r.works.getResolvedObserver(J);if(!W)return 1/0;var $=W.standingPosition.clone();return $.distanceTo(p.point)},!0),h=A[0],v=A[1];h&&v<this.panoTapTriggerRadius&&(l=(i=this.works.getResolvedObserver(h))!==null&&i!==void 0?i:null)}if(_0(l)){var g=this.getForwardObserverOrNot(e);g&&(l=g)}for(var m=0,y=this.locationMotion.keyframes;m<y.length;m++){var b=y[m],x=this.panoResourceFromLocationMotionKeyframe(b);if(!(b.progress<this.locationMotion.progress)&&l&&x.panoId===l.panoId){l=null;break}}if(_0(l))return this.locationMotion.ended===!0&&this.cameraBounce(),null;if(l&&!l.active){var w=l.panoId;this.panoMeshes[w]&&(this.panoMeshes[w].setDisabled(!1),this.panoMeshes[w].setLoading(!0))}var M={};if(l){for(var S=Math.PI/6,E=Math.PI/12,P=new f.Vector3(0,1,0),B=l.position.clone().setY(0).sub(c.position.clone().setY(0)).normalize(),C=B.clone().applyAxisAngle(P,S),I=B.clone().applyAxisAngle(P,-S),F=[],T=[],L=[],D=0,V=l.accessibleIds;D<V.length;D++){var h=V[D],z=Lt(h);if(!(Ar(z,this.currentPano)||Ar(z,l.pano))){var U=this.works.getResolvedObserver(h);if(U){var q=U.position.clone().sub(l.position).setY(0);B.angleTo(q)<S?L.push(q):C.angleTo(q)<S?F.push(q):I.angleTo(q)<S&&T.push(q)}}}var G=L.length>0?L:vt(vt([],F,!0),T,!0),K=G.slice().sort(function(J,W){return J.angleTo(B)-W.angleTo(B)})[0];K&&K.angleTo(u)>E&&(M.longitude=Math.atan2(-K.x,-K.z))}this.cameraMotion.value.latitude<-Math.PI/4&&(M.latitude=ce(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(M.fov=this.defaultFov);var _={workCode:l.pano.workCode,panoIndex:l.pano.panoIndex,mode:this.mode,longitude:(a=M.longitude)!==null&&a!==void 0?a:this.camera.pose.longitude,latitude:(o=M.latitude)!==null&&o!==void 0?o:this.camera.pose.latitude,fov:(s=M.fov)!==null&&s!==void 0?s:this.camera.pose.fov,distance:0,offset:l?l.position.clone():new f.Vector3};return this.emit("pano.select",X("pano.select",{prevPano:this.currentPano,state:_,userAction:!0,options:M,progress:0,error:null})),l&&l.active?(this.emit("pano.request",X("pano.request",{userAction:!0,prevPano:this.currentPano,progress:0,state:_,options:M,error:null})),l.pano):null},t.prototype.destroy=function(){n.prototype.destroy.call(this)},t.prototype.isReady=function(){return!1},t.prototype.updateCamera=function(e,r,i){return Promise.resolve()},t.prototype.updateCameraWithKeyframes=function(e,r,i){return Promise.resolve()},t.prototype.updateTime=function(e,r){for(var i=this,a,o,s,u,l,c,d,p,A=[],h=2;h<arguments.length;h++)A[h-2]=arguments[h];this.userAction=!0;var v={},g={},m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),y=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),b=!1;if(this.cameraMotion.ended===!1&&(this.cameraMotion.update(e),g.longitude=this.cameraMotion.value.longitude,g.latitude=this.cameraMotion.value.latitude,g.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended===!1&&(this.modelAlphaMotion.update(e),v.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended===!1&&(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(ce(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended===!1){this.locationMotion.update(e);var x=this.locationMotion.getKeyFrameSegment(e),w=x[0],M=x[1],S=this.panoResourceFromLocationMotionKeyframe(w),E=this.panoResourceFromLocationMotionKeyframe(M),P=new f.Vector3().copy(S.position),B=new f.Vector3().copy(E.position),C=this.locationMotion.value.count-M.value.count+1;v.progress=C,E.leftPanoPicture&&(C<1?S.leftPanoPicture&&(v.pano0=S.leftPanoPicture):v.pano0=E.leftPanoPicture,v.pano1=E.leftPanoPicture),E.effect==="montage"?v.transition="BLACK":E.effect==="spread"?v.transition="SPREAD":v.transition="FADE",(E.effect==="zoomin"||E.effect==="zoomout")&&(v.progress=Math.pow(C,3)),C<1&&E.effect!=="fly"&&(v.pano0&&S.leftPanoPicture&&(v.pano0={map:v.pano0.map,zoom:v.pano0.zoom,luminanceMap:v.pano0.luminanceMap,matrix:S.leftPanoPicture.matrix.clone().setPosition(E.position)}),P.copy(B),b=!0),g.distance=this.locationMotion.value.distance,g.offset=new f.Vector3(P.x+(B.x-P.x)*C,P.y+(B.y-P.y)*C,P.z+(B.z-P.z)*C);for(var I=[],F=[],T=0,L=this.locationMotion.keyframes;T<L.length;T++){var D=L[T],V=D.key,z=D.progress;V!==void 0&&(I.push(V),z>this.locationMotion.progress&&F.push(V))}for(var U=0,q=Object.keys(this.panoResources);U<q.length;U++){var G=q[U];if(!(F.indexOf(G)>=0)){var K=this.panoResources[G];if(K.leftPanoPicture){var _=K.leftPanoPicture.map;if(_){if(_===((a=v.pano0)===null||a===void 0?void 0:a.map)||_===((o=v.pano1)===null||o===void 0?void 0:o.map))continue;_ instanceof qe&&_.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(_.cubeRenderTarget),_.dispose(),K.leftPanoPicture=null}}I.indexOf(G)>=0||delete this.panoResources[G]}}this.currentPano=Lt(E.panoId),this.emit("pano.moving",X("pano.moving",{userAction:this.userAction,prevPano:Lt(m.panoId),state:O(O(O(O({},Lt(y.panoId)),{mode:this.mode}),tt(this.camera.pose)),g),options:{},progress:this.locationMotion.progress,error:null}))}or(v)===!1&&(!((s=v.pano0)===null||s===void 0)&&s.map&&v.pano0.map instanceof qe&&!v.pano0.map.cubeRenderTarget&&(v.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((u=v.pano1)===null||u===void 0)&&u.map&&v.pano1.map instanceof qe&&!v.pano1.map.cubeRenderTarget&&(v.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),this.models.setMaterial(v)),or(g)===!1&&this.setCamera(g);var J=this.works.getResolvedObserver(this.currentPano),W=A[1];if(!W){console.error("xrFrame丢失,请重试");return}if(!this.xrManager.session){console.error("session丢失,请重试");return}var $=this.xrManager.referenceSpace;if($){var Y=this.xrManager.cameraVR,Z=this.xrManager.cameraL,oe=this.xrManager.cameraR,ne=[Z,oe],de=W.getViewerPose($),se=new f.Vector3(0,0,0);if(de){var ye;ye=this.xrManager.session.renderState.baseLayer;var ie=de.views;if(!ye){console.error("no layer found");return}this.renderer.setFramebuffer(ye.framebuffer);var xe=!1;ie.length!==Y.cameras.length&&(Y.cameras.length=0,xe=!0),this.parallaxCameraMatrixs=[];var Le=new f.Vector3,Ce=new f.Vector3;new f.Matrix4().fromArray(ie[0].transform.matrix).decompose(Le,new f.Quaternion,new f.Vector3),new f.Matrix4().fromArray(ie[1].transform.matrix).decompose(Ce,new f.Quaternion,new f.Vector3),Ce.clone().sub(Le).normalize();var Oe=new f.Vector3,ee=new f.Quaternion,re=new f.Vector3;this.camera.matrix.decompose(Oe,ee,re);for(var H=0;H<ie.length;H++){var Be=ie[H],Te=ye.getViewport(Be),Ee=ne[H];Ee.matrix.fromArray(Be.transform.matrix);var Qe=new f.Vector3,Ie=new f.Quaternion,we=new f.Vector3;Ee.matrix.decompose(Qe,Ie,we),se.copy(Oe),Ee.position.copy(Oe),Ee.quaternion.copy(Ie),Ee.scale.copy(we),Ee.updateMatrix(),Ee.projectionMatrix.fromArray(Be.projectionMatrix),Ee.viewport.set(Te.x,Te.y,Te.width,Te.height),xe===!0&&Y.cameras.push(Ee)}if(this.xrManager.session&&this.xrManager.session.inputSources){for(var H=0;H<this.xrManager.session.inputSources.length;H++)if(this.xrManager.session.inputSources[H]&&this.xrManager.session.inputSources[H].targetRayMode==="transient-pointer"){var be=W.getPose(this.xrManager.session.inputSources[H].targetRaySpace,$);if(be){var Ae=new f.Vector3(0,0,-1).applyQuaternion(be.transform.orientation),me=new f.Raycaster(this.camera.position,Ae);this.gazeRay=me}}}if(this.xrManager.machineType==="Oculus"||this.xrManager.machineType==="Pico"){for(var ze=this.xrManager.session.inputSources,H=0;H<ze.length;H++){var pe=this.xrManager.controllers[H],Se=ze[H];if(Se){pe&&pe.update(Se,W,$);var me=this.xrManager.getController(H),St=new f.Vector3(0,1.2,0),Pe=me.position.clone().add(se).sub(St);Se.handedness==="left"?this.xrControllerRay.left.set(Pe,new f.Vector3(0,0,-1).applyEuler(me.rotation)):Se.handedness==="right"&&this.xrControllerRay.right.set(Pe,new f.Vector3(0,0,-1).applyEuler(me.rotation)),this.controllerWrappers[H].position.copy(new f.Vector3(0,0,0).add(se).sub(St));var _e=this.models.intersectRaycaster(this.xrControllerRay.right);if(_e.length===0&&(_e=this.xrControllerRay.right.intersectObject(this.boundingMesh,!0).map(function(_r){var mn;return O({floor:(mn=J==null?void 0:J.floorIndex)!==null&&mn!==void 0?mn:0},_r)})),_e.length>=1&&_e[0].face)if(Se.handedness==="right"){var it=this.xrControllerRay.right.intersectObject(this.xrCustomObjectsScene,!0),Jt=_e[0].face.normal,Kr=Jt.clone(),Xt=_e[0].point.clone();this.intersectMesh.position.copy(Xt);var ut=Xt.clone().add(Kr);if(this.intersectMesh.lookAt(ut),Math.abs(Jt.y)>.99){var Ct=this.camera.position.clone().sub(Xt);this.intersectMesh.rotation.z=-Math.atan2(Ct.z,Ct.x)}this.intersectMesh.visible=!0,this.needsRender=!0,it.length>0?(this.pointerLines.right.setPoints(Pe,it[0].point),this.pointerLines.right.points.visible=!0,this.intersectMesh.visible=!1):(this.pointerLines.right.points.visible=!1,this.pointerLines.right.setPoints(Pe,_e[0].point));var dt=_e[0],Et=X("intersect.update",{raycaster:(l=this.xrControllerRay.right)!==null&&l!==void 0?l:null,intersection:dt!=null?dt:null,object:this.intersectMesh});if(this.emit("intersect.update",Et),Et.defaultPrevented){this.hideIntersectMesh();return}}else this.pointerLines.left.setPoints(Pe,_e[0].point)}}this.updateControllerHelper(ze,e,r)}if(this.camera.pose.distance>.1||b)for(var It=0,Tt=Object.keys(this.panoMeshes);It<Tt.length;It++){var Xe=Tt[It],Ne=this.panoMeshes[Xe];Ne.setOpacity(0),Ne.setCurrent(!1),Ne.updateTime&&Ne.updateTime(e,r),Ne.visible=!1}else if(J){var We=Br(J.visibleIds,function(Pt){var sr=i.works.getResolvedObserver(Pt);return sr?J.standingPosition.distanceTo(sr.standingPosition):1/0},!0),At=We[1];At=ce(At,2.5,1/0);for(var Ze=J.visibleIds.concat(He(this.currentPano)),gt=this.getForwardObserverOrNot(),qt=this.camera.getDirection(new f.Vector3),yt=0,Wt=Object.keys(this.panoMeshes);yt<Wt.length;yt++){var Xe=Wt[yt],Ne=this.panoMeshes[Xe],xr=this.works.getResolvedObserver(Xe);if(Ze.indexOf(Xe)===-1)Ne.setCurrent(!1),Ne.setOpacity(0);else if(!xr)Ne.setCurrent(!1),Ne.setOpacity(0);else if(!xr.loadable&&!xr.active)Ne.setCurrent(!1),Ne.setOpacity(0);else{var jr=Ne.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);Ne.setCurrent(!Ne.loading&&Ne.progress===0&&gt!==null&&gt.panoId===Xe),Ne.setOpacity(jr<.01?0:ce(At/jr*1.2,.65,.98));var wr=this.camera.position.clone().setY(Ne.position.y),Ae=new f.Vector3().copy(Ne.position).sub(wr).normalize();if(Xe===He(this.currentPano)){var Lr=ce((.5-wr.distanceTo(Ne.position))/.5,0,1);Ae.multiplyScalar(1-Lr).add(qt.clone().multiplyScalar(Lr))}Ae.length()>0&&Ne.quaternion.setFromEuler(new f.Euler(0,Math.atan2(Ae.x,Ae.z),0))}Ne.updateTime&&Ne.updateTime(e,r)}}var Dt=function(){return 4}(),Ge=function(){var Pt=new f.PerspectiveCamera;Pt.applyMatrix4(Y.matrix),Pt.position.set(0,0,0);var sr=i.works.getResolvedObserver(y.panoId),_r=sr!=null?sr:J;_r&&Pt.quaternion.premultiply(_r.quaternion.clone().inverse()),Pt.updateProjectionMatrix(),Pt.updateMatrixWorld(!0);var mn=new f.Frustum().setFromProjectionMatrix(new f.Matrix4().multiplyMatrices(Pt.projectionMatrix,Pt.matrixWorldInverse));return mn}();y.panoId===He(this.currentPano)&&((c=y.leftPanoPicture)===null||c===void 0?void 0:c.map)instanceof qe&&(y.leftPanoPicture.map.maxRequest=this.tileMaxRequest,y.leftPanoPicture.map.update(Ge,Dt),y.leftPanoPicture.map.needsRender===!0&&(this.needsRender=!0,this.modelSceneNeedsRender=!0));{var ke=this.tiling.object.visible;if(this.initAnimationed){var Ye=y.panoId,bt=this.works.getResolvedObserver(Ye);bt?Fi(this.camera.position,bt.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==Ye&&this.tiling.cleanup(),this.tiling.panoId=Ye,this.tiling.setResource((p=(d=bt.images)===null||d===void 0?void 0:d.tiles)!==null&&p!==void 0?p:[],this.enableIOSEDR&&bt.images.luminance?bt.images.luminance:null),this.tiling.setFetcher(pt(bt.work)),this.tiling.setRotation(bt.quaternion),this.tiling.setPosition(bt.position),this.tiling.maxRequest=this.tileMaxRequest,Dt>this.tiledCubeTextureLevel?this.tiling.update(Ge,Dt,e):this.tiling.update(Ge,0,e)):this.tiling.object.visible=!1:this.tiling.object.visible=!1}else this.tiling.object.visible=!1;ke!==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,i){var a=this.xrControllerRay.left,o=this.xrControllerRay.right;if(!(!e||e.length===0)){for(var s={buttons:{X:!1,Y:!1,LeftTrigger:!1,LeftPinch:!1,A:!1,B:!1,RightTrigger:!1,RightPinch:!1}},u=0;u<e.length;u++){var l=e[u].handedness,c=e[u].gamepad;switch(l){case"left":c.axes&&(this.emitHandleEvent(c.axes[2]===-1,"LeftAxesLeft",r),this.emitHandleEvent(c.axes[2]===1,"LeftAxesRight",r),this.emitHandleEvent(c.axes[3]===-1,"LeftAxesUp",r),this.emitHandleEvent(c.axes[3]===1,"LeftAxesDown",r)),c!=null&&c.buttons&&(c.buttons[4]&&this.emitHandleEvent(c.buttons[4].pressed,"X",r),c.buttons[5]&&this.emitHandleEvent(c.buttons[5].pressed,"Y",r),c.buttons[0]&&this.emitHandleEvent(c.buttons[0].pressed,"LeftTrigger",r),c.buttons[1]&&this.emitHandleEvent(c.buttons[1].pressed,"LeftPinch",r));var d={raycaster:a,axes:{up:c.axes&&c.axes[3]<0?Math.abs(c.axes[3]):0,down:c.axes&&c.axes[3]<0?0:Math.abs(c.axes[3]),left:c.axes&&c.axes[2]<0?Math.abs(c.axes[2]):0,right:c.axes&&c.axes[2]<0?0:Math.abs(c.axes[2])},deltaTime:i};s.buttons.X=c.buttons&&c.buttons[4]?c.buttons[4].pressed:!1,s.buttons.Y=c.buttons&&c.buttons[5]?c==null?void 0:c.buttons[5].pressed:!1,s.buttons.LeftTrigger=c.buttons&&c.buttons[0]?c==null?void 0:c.buttons[0].pressed:!1,s.buttons.LeftPinch=c.buttons&&c.buttons[1]?c==null?void 0:c.buttons[1].pressed:!1,s.left=d;break;case"right":c.axes&&(this.emitHandleEvent(c.axes[2]===-1,"RightAxesLeft",r),this.emitHandleEvent(c.axes[2]===1,"RightAxesRight",r),this.emitHandleEvent(c.axes[3]===-1,"RightAxesUp",r),this.emitHandleEvent(c.axes[3]===1,"RightAxesDown",r)),c.buttons&&(c.buttons[4]&&this.emitHandleEvent(c.buttons[4].pressed,"A",r),c.buttons[5]&&this.emitHandleEvent(c.buttons[5].pressed,"B",r),c.buttons[0]&&this.emitHandleEvent(c.buttons[0].pressed,"RightTrigger",r),c.buttons[1]&&this.emitHandleEvent(c.buttons[1].pressed,"RightPinch",r));var p={raycaster:o,axes:{up:c.axes&&c.axes[3]<0?Math.abs(c.axes[3]):0,down:c.axes&&c.axes[3]<0?0:Math.abs(c.axes[3]),left:c.axes&&c.axes[2]<0?Math.abs(c.axes[2]):0,right:c.axes&&c.axes[2]<0?0:Math.abs(c.axes[2])},deltaTime:i};s.right=p,s.buttons.A=c.buttons&&c.buttons[4]?c==null?void 0:c.buttons[4].pressed:!1,s.buttons.B=c.buttons&&c.buttons[5]?c==null?void 0:c.buttons[5].pressed:!1,s.buttons.RightTrigger=c.buttons&&c.buttons[0]?c==null?void 0:c.buttons[0].pressed:!1,s.buttons.RightPinch=c.buttons&&c.buttons[1]?c==null?void 0:c.buttons[1].pressed:!1;break}}this.emit("xr.controller.update",X("xr.controller.update",s))}},t.prototype.emitHandleEvent=function(e,r,i){var a=this.xrControllerRay.left,o=this.xrControllerRay.right;if(e)if(this.xrHandleState[r].touchStart===!1)this.xrHandleState[r].touchStartTime=i,this.xrHandleState[r].touchStart=!0,this.emit("xr.gesture.buttonDown",X("xr.gesture.buttonDown",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!1,isFirst:!0,controllers:{raycaster:{leftRay:a,rightRay:o}}}));else{var s=i-this.xrHandleState[r].touchStartTime;s>Y0&&this.emit("xr.gesture.press",X("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!0,controllers:{raycaster:{leftRay:a,rightRay:o}}}))}else if(this.xrHandleState[r].touchStart===!0){this.emit("xr.gesture.buttonUp",X("xr.gesture.buttonUp",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:a,rightRay:o}}}));var s=i-this.xrHandleState[r].touchStartTime;if(s<=Y0){var u=X("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:a,rightRay:o}}}),l=this.emit("xr.gesture.tap",u);!l&&!u.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}(ps),ht={Floorplan:No,Topview:Am,Panorama:ps,VRPanorama:fA,Model:pA,Mapview:CA,XRPanorama:JA},XA={Floorplan:$t,Topview:mm,Panorama:pr,VRPanorama:cA,Model:hA,Mapview:Ir,XRPanorama:KA},ec=["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 WA(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=nr(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 ZA(){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 eu(n){var t=new f.Group;t.name="internalLights";{var e=new f.DirectionalLight(16777215,.3);e.position.copy(new f.Vector3(1,1,1)),t.add(e)}{var e=new f.DirectionalLight(16777215,.1);e.position.copy(new f.Vector3(-1,-1,-1)),t.add(e)}{var e=new f.DirectionalLight(16777215,.1);t.add(e)}{var e=new f.AmbientLight(16777215,.6);t.add(e)}n.add(t)}function YA(n){for(var t,e,r={},i=n.split(/(\;|\,)/),a=0,o=i;a<o.length;a++){var s=o[a],u=s.split("="),l=(t=u[0])===null||t===void 0?void 0:t.trim(),c=(e=u[1])===null||e===void 0?void 0:e.trim();l&&c&&(r[l]=c)}return r}function tc(){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 i=YA((n=r.getAttribute("content"))!==null&&n!==void 0?n:""),a=Number(i["initial-scale"]);if(!isNaN(a))return a}}return 1}const $A="data:image/png;base64,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";var tu=[351,63],ru=[20,20],eg=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),tg=new Float32Array([0,0,1,0,0,1,1,1]),rg=new Uint8Array([0,1,2,1,3,2]),wa=new f.BufferGeometry;wa.setAttribute("position",new f.BufferAttribute(eg,3));wa.setAttribute("uv",new f.BufferAttribute(tg,2));wa.setIndex(new f.BufferAttribute(rg,1));var ta=new f.MeshBasicMaterial({transparent:!0,depthTest:!1,depthWrite:!1,stencilWrite:!1,fog:!1}),rc=new f.Mesh(wa,ta);rc.matrixAutoUpdate=!1;var ys=new f.Scene;ys.add(rc);ys.matrixAutoUpdate=!1;var Li=new f.OrthographicCamera(-.5,.5,.5,-.5,.1,1);Li.position.set(0,0,.5);Li.lookAt(0,0,0);Li.updateMatrixWorld(!0);Li.matrixAutoUpdate=!1;var ng=new f.Vector4,ig=new f.Vector4;function ag(n){if(ta.map){var r=n.getViewport(ng),i=n.getScissor(ig),a=n.getScissorTest(),o=n.autoClear,s=i.x+ru[0]/3,u=i.y+ru[1]/3,l=tu[0]/3,c=tu[1]/3;n.setViewport(s,u,l,c),n.setScissor(s,u,l,c),n.setScissorTest(!0),n.autoClear=!1,n.render(ys,Li),n.setViewport(r),n.setScissor(i),n.setScissorTest(a),n.autoClear=o}else{var t=new f.Texture,e=new Image;e.onload=function(){t.image=e,t.wrapS=f.ClampToEdgeWrapping,t.wrapT=f.ClampToEdgeWrapping,t.minFilter=f.LinearFilter,t.needsUpdate=!0,t.generateMipmaps=!1,ta.needsUpdate=!0,e.onload=Q},e.src=$A,ta.map=t}}var og=800,nu=90,sg=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/")},ug=new f.Vector2,lg=new f.Sphere,ji=new f.Frustum,_i=new f.Matrix4,iu=new WeakMap,vo=new WeakMap,mo=Lo([]);new Xo;var nc=function(n){ue(t,n);function t(e){e===void 0&&(e={});var r,i,a,o,s,u,l,c,d,p,A,h=n.call(this)||this;if(h.ident=kt(),typeof window!="undefined"&&(Qo.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=O({},(i=e.imageOptions)!==null&&i!==void 0?i:{}),h.textureOptions=O({},(a=e.textureOptions)!==null&&a!==void 0?a:{}),h.poweredByRealsee=(o=e.poweredByRealsee)!==null&&o!==void 0?o:!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:ve()},h.info=null,h.modeChangeDuration=(s=e.modeChangeDuration)!==null&&s!==void 0?s:og,h.enableWheel=(u=e.enableWheel)!==null&&u!==void 0?u:!0,typeof window!="undefined")if("renderer"in e)e.renderer instanceof xn&&h.throwError(new Error("cannot render a internal renderer")),h.renderer=e.renderer;else try{h.renderer=new xn({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 v=tc();h.renderer.setPixelRatio(v===1?window.devicePixelRatio:1),h.renderer.setSize(512,512)}catch(B){B instanceof Error&&h.throwError(B)}h.getPixelsRenderTarget=new f.WebGLRenderTarget(1,1,{encoding:(c=(l=h.renderer)===null||l===void 0?void 0:l.outputEncoding)!==null&&c!==void 0?c:f.sRGBEncoding,generateMipmaps:!1});var g=new f.DepthTexture(1,1);g.generateMipmaps=!1,g.format=f.DepthStencilFormat,g.type=f.UnsignedInt248Type,h.modelRenderTarget=new f.WebGLRenderTarget(1,1,{encoding:(p=(d=h.renderer)===null||d===void 0?void 0:d.outputEncoding)!==null&&p!==void 0?p:f.sRGBEncoding,depthTexture:g,generateMipmaps:!1,depthBuffer:!0,stencilBuffer:!0}),h.scissor=Object.assign({left:0,bottom:0,width:1,height:1},e.scissor),h.camera=new Su(nu),h.scene=new Xo,h.xrCustomObjectsScene=new f.Scene,h.scene.add(h.xrCustomObjectsScene),h.scene.matrixAutoUpdate=!1,h.lastLoadWorkTask=Promise.resolve(),h.requestProxy=(A=e.requestProxy)!==null&&A!==void 0?A:sg,h.networkSubscribe=new du,h.networkSubscribe.on("network",function(B,C,I,F){var T;h.emit("network.resource",X("network.resource",{source:B,requestType:C,requestState:I,detail:F})),(T=h.analysis)===null||T===void 0||T.network(h.works,B,C,I,F)}),h.boundingMesh=$v(new f.Box3(new f.Vector3(-.5,-.5,-.5),new f.Vector3(.5,.5,.5))),h.boundingMesh.name="bounding",h.models=I0(),h.models.push(new Oo),h.lastModels=I0(),h.lastWorks=Lo([]),h.readyCallbacks=[],h.syncingState=!1,h.helperGroup=new f.Group,h.helperGroup.name="helper",h.helperGroup.matrixAutoUpdate=!1,h.scene.add(h.helperGroup),h.modelGroup=new f.Group,h.modelGroup.visible=!1,h.modelGroup.name="model",h.modelGroup.matrixAutoUpdate=!1,h.modelScene=new f.Scene,h.modelScene.add(h.modelGroup),h.modelScene.add(h.boundingMesh),h.modelScene.matrixAutoUpdate=!1,h.videoTexture=new f.VideoTexture(e.videoInstance||ZA()),eu(h.scene),eu(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=Mt.shared.add(function(B,C){for(var I=[],F=2;F<arguments.length;F++)I[F-2]=arguments[F];h.updateTime.apply(h,vt([B,C],I,!1))},!1,0,10));var m=function(){typeof document!="undefined"&&document.fullscreenElement===null&&h.currentMode==="VRPanorama"&&h.controller.emit("vr.requestExit",X("vr.requestExit",{}))},y=function(){h.needsRender=!0,h.modelSceneNeedsRender=!0};if(typeof document!="undefined"&&document.addEventListener("fullscreenchange",m,!1),h.renderer&&h.renderer.domElement.addEventListener("webglcontextrestored",y,!1),h.removeEventListeners=function(){typeof document!="undefined"&&document.removeEventListener("fullscreenchange",m,!1),h.renderer&&h.renderer.domElement.removeEventListener("webglcontextrestored",y,!1)},h.plugins={},e.plugins&&e.plugins.length)for(var b=0,x=e.plugins;b<x.length;b++){var w=x[b];if(typeof w=="function")w(h);else if(Array.isArray(w)){var M=w[0],S=w[1],E=w[2];if(typeof M=="function"){var P=M(h,E);typeof S=="string"&&(h.plugins[S]?h.throwError(new Error("plugin name ".concat(S," is exists."))):h.plugins[S]=P)}}}return h.gpuPickingRenderTarget=new f.WebGLRenderTarget(1,1,{generateMipmaps:!1}),h.meshReplaceMaterialMap=new Map,h.meshOriginMaterialMap=new Map,WA(h),h}return Object.defineProperty(t,"version",{get:function(){return"6.4.0-alpha.25"},enumerable:!1,configurable:!0}),Object.defineProperty(t,"dracoPath",{get:function(){return ua.decoderPath},set:function(e){ua.setDecoderPath(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t,"ktx2Path",{get:function(){return fi.transcoderPath},set:function(e){fi.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,i,a,o){var s=this;if(a===void 0&&(a=1),o===void 0&&(o=new f.Vector3(0,0,0)),!this.renderer)throw new Error("renderer is not initialized.");var u=this.models.getMaterial(),l=u.constantColor,c=u.colorStyle;this.models.setMaterial({colorStyle:"CONSTANT",constantColor:o}),this.scene.traverse(function(h){if(!(!(h instanceof f.Mesh)||h instanceof Ot)){var v=Object.keys(i).filter(function(m){return m===h.uuid})[0];if(v)if(s.meshOriginMaterialMap.set(v,h.material),s.meshReplaceMaterialMap.get(v))h.material=s.meshReplaceMaterialMap.get(v);else{var g=new f.ShaderMaterial({uniforms:{color:{value:i[v]}},vertexShader:`
2169
+ `},gs=function(n){ue(t,n);function t(e){var r=n.call(this,{uniforms:f.UniformsUtils.clone(po.uniforms),vertexShader:po.vertexShader,fragmentShader:po.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(i){this.uniforms.diffuse.value=i}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(i){this.uniforms.linewidth.value=i}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(i){this.uniforms.dashScale.value=i}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(i){this.uniforms.dashSize.value=i}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(i){this.uniforms.gapSize.value=i}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(i){this.uniforms.opacity.value=i}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(i){this.uniforms.resolution.value.copy(i)}}}),r.setValues(e),r}return t}(f.ShaderMaterial);Object.assign(gs.prototype,{isLineMaterial:!0});var Wl=function(n){ue(t,n);function t(e,r){var i=n.call(this)||this;return i.type="LineSegments2",i.geometry=e!==void 0?e:new As,i.material=r!==void 0?r:new gs({color:Math.random()*16777215}),i}return t.prototype.computeLineDistances=function(){for(var e=this.geometry,r=e.attributes.instanceStart,i=e.attributes.instanceEnd,a=new Float32Array(2*r.count),o=new f.Vector3,s=new f.Vector3,u=0,l=0,c=r.count;u<c;u++,l+=2)o.fromBufferAttribute(r,u),s.fromBufferAttribute(i,u),a[l]=l===0?0:a[l-1],a[l+1]=a[l]+o.distanceTo(s);var d=new f.InstancedInterleavedBuffer(a,2,1);return e.setAttribute("instanceDistanceStart",new f.InterleavedBufferAttribute(d,1,0)),e.setAttribute("instanceDistanceEnd",new f.InterleavedBufferAttribute(d,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 i=e.ray,a=e.camera,o=a.projectionMatrix,s=this.geometry,u=this.material,l=u.resolution,c=u.linewidth,d=s.attributes.instanceStart,p=s.attributes.instanceEnd,A=new f.Vector4,h=new f.Vector4,v=new f.Vector4,g=new f.Vector3,m=new f.Matrix4,y=new f.Line3,b=new f.Vector3;i.at(1,v),v.w=1,v.applyMatrix4(a.matrixWorldInverse),v.applyMatrix4(o),v.multiplyScalar(1/v.w),v.x*=l.x/2,v.y*=l.y/2,v.z=0,g.copy(v);var x=this.matrixWorld;m.multiplyMatrices(a.matrixWorldInverse,x);for(var w=0,M=d.count;w<M;w++){A.fromBufferAttribute(d,w),h.fromBufferAttribute(p,w),A.w=1,h.w=1,A.applyMatrix4(m),h.applyMatrix4(m),A.applyMatrix4(o),h.applyMatrix4(o),A.multiplyScalar(1/A.w),h.multiplyScalar(1/h.w);var S=A.z<-1&&h.z<-1,E=A.z>1&&h.z>1;if(!(S||E)){A.x*=l.x/2,A.y*=l.y/2,h.x*=l.x/2,h.y*=l.y/2,y.start.copy(A),y.start.z=0,y.end.copy(h),y.end.z=0;var P=y.closestPointToPointParameter(g,!0);y.at(P,b);var B=f.MathUtils.lerp(A.z,h.z,P),C=B>=-1&&B<=1,I=g.distanceTo(b)<c*.5;if(C&&I){y.start.fromBufferAttribute(d,w),y.end.fromBufferAttribute(p,w),y.start.applyMatrix4(x),y.end.applyMatrix4(x);var F=new f.Vector3,T=new f.Vector3;i.distanceSqToSegment(y.start,y.end,T,F),r.push({point:T,pointOnLine:F,distance:i.origin.distanceTo(T),object:this,faceIndex:w})}}}},t}(f.Mesh);Object.assign(Wl.prototype,{isLineSegments2:!0});var Zl=function(n){ue(t,n);function t(e,r){var i=n.call(this,e,r)||this;return i.type="Line2",i}return t}(Wl);Object.assign(Zl.prototype,{isLine2:!0});var Yl=function(n){ue(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,i=new Float32Array(2*r),a=0;a<r;a+=3)i[2*a]=e[a],i[2*a+1]=e[a+1],i[2*a+2]=e[a+2],i[2*a+3]=e[a+3],i[2*a+4]=e[a+4],i[2*a+5]=e[a+5];return n.prototype.setPositions.call(this,i),this},t.prototype.setColors=function(e){for(var r=e.length-3,i=new Float32Array(2*r),a=0;a<r;a+=3)i[2*a]=e[a],i[2*a+1]=e[a+1],i[2*a+2]=e[a+2],i[2*a+3]=e[a+3],i[2*a+4]=e[a+4],i[2*a+5]=e[a+5];return n.prototype.setColors.call(this,i),this},t.prototype.fromLine=function(e){var r=e.geometry;if(r instanceof f.Geometry){var i=new f.BufferGeometry().fromGeometry(r);this.setPositions(i.attributes.position.array)}else r instanceof f.BufferGeometry&&this.setPositions(r.attributes.position.array);return this},t.prototype.copy=function(){return this},t}(As);Object.assign(Yl.prototype,{isLineGeometry:!0});var PA="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==",X0=14467195,RA=8,BA=2,FA=20,W0=null,zo=function(n){ue(t,n);function t(e,r){e===void 0&&(e=new f.Vector3),r===void 0&&(r=new f.Vector3);var i=n.call(this)||this;i.type="FiveLine",i.needsRender=!0;var a=new Yl,o=new gs({color:X0,linewidth:BA,dashScale:FA,dashed:!1});i.line=new Zl(a,o);var s=new f.BufferGeometry,u=new f.PointsMaterial({color:X0,size:RA,map:W0||(W0=new f.TextureLoader().load(PA)),sizeAttenuation:!1,transparent:!0});return i.points=new f.Points(s,u),i.points.renderOrder=11,i.points.frustumCulled=!1,i.setPoints(e,r),i.add(i.line,i.points),i}return Object.defineProperty(t,"version",{get:function(){return"6.4.0-alpha.26"},enumerable:!1,configurable:!0}),t.prototype.setPoints=function(e,r){var i=[].concat(e.toArray(),r.toArray());this.points.geometry.setAttribute("position",new f.BufferAttribute(new Float32Array(i),3)),this.line.geometry.setPositions(i),this.line.computeLineDistances(),this.needsRender=!0},t.prototype.getPoints=function(){var e=this.points.geometry.attributes.position.array;return[new f.Vector3(e[0],e[1],e[2]),new f.Vector3(e[3],e[4],e[5])]},t.prototype.setMaterial=function(e){var r=this.line.material;for(var i in e)if(e.hasOwnProperty(i)){var a=e[i];i==="dashed"?(r.dashed=a,a?r.defines.USE_DASH="":delete r.defines.USE_DASH,r.needsUpdate=!0):r[i]=e[i]}this.needsRender=!0},t.prototype.setResolution=function(e,r){var i=this.line.material.resolution;(i.x!==e||i.y!==r)&&(i.set(e,r),this.needsRender=!0)},t}(f.Object3D);Object.assign(zo.prototype,{isFiveLine:!0});var rt={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 $l(n){return ha(this,void 0,void 0,function(){var t;return pa(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 LA(n){return ha(this,void 0,void 0,function(){var t,e;return pa(this,function(r){switch(r.label){case 0:if(!n)throw new Error("No basePath supplied");return t="profilesList.json",[4,$l("".concat(n,"/").concat(t))];case 1:return e=r.sent(),[2,e]}})})}function kA(n,t){return ha(this,arguments,void 0,function(e,r,i,a){var o,s,u,l,c,d;return i===void 0&&(i=null),a===void 0&&(a=!0),pa(this,function(p){switch(p.label){case 0:if(!e)throw new Error("No xrInputSource supplied");if(!r)throw new Error("No basePath supplied");return[4,LA(r)];case 1:if(o=p.sent(),e.profiles.some(function(A){var h=o[A];return h&&(s={profileId:A,profilePath:"".concat(r,"/").concat(h.path),deprecated:!!h.deprecated}),!!s}),!s){if(!i)throw new Error("No matching profile name found");if(u=o[i],!u)throw new Error('No matching profile name found and default profile "'.concat(i,'" missing.'));s={profileId:i,profilePath:"".concat(r,"/").concat(u.path),deprecated:!!u.deprecated}}return[4,$l(s.profilePath)];case 2:if(l=p.sent(),a){if(d=void 0,d=l.layouts[e.handedness],!d)throw new Error("No matching handedness, ".concat(e.handedness,", in profile ").concat(s.profileId));d.assetPath&&(c=s.profilePath.replace("profile.json",d.assetPath))}return[2,{profile:l,assetPath:c}]}})})}var OA={xAxis:0,yAxis:0,button:0,state:rt.ComponentState.DEFAULT};function DA(n,t){n===void 0&&(n=0),t===void 0&&(t=0);var e=n,r=t,i=Math.sqrt(n*n+t*t);if(i>1){var a=Math.atan2(t,n);e=Math.cos(a),r=Math.sin(a)}var o={normalizedXAxis:e*.5+.5,normalizedYAxis:r*.5+.5};return o}var VA=function(){function n(t){this.componentProperty=t.componentProperty,this.states=t.states,this.valueNodeName=t.valueNodeName,this.valueNodeProperty=t.valueNodeProperty,this.valueNodeProperty===rt.VisualResponseProperty.TRANSFORM&&(this.minNodeName=t.minNodeName,this.maxNodeName=t.maxNodeName),this.value=0,this.updateFromComponent(OA)}return n.prototype.updateFromComponent=function(t){var e=t.xAxis,r=t.yAxis,i=t.button,a=t.state,o=DA(e,r),s=o.normalizedXAxis,u=o.normalizedYAxis;switch(this.componentProperty){case rt.ComponentProperty.X_AXIS:this.value=this.states.includes(a)?s:.5;break;case rt.ComponentProperty.Y_AXIS:this.value=this.states.includes(a)?u:.5;break;case rt.ComponentProperty.BUTTON:this.value=this.states.includes(a)?i:0;break;case rt.ComponentProperty.STATE:this.valueNodeProperty===rt.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(a):this.value=this.states.includes(a)?1:0;break;default:throw new Error("Unexpected visualResponse componentProperty ".concat(this.componentProperty))}},n}(),NA=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(i){var a=new VA(e.visualResponses[i]);r.visualResponses[i]=a}),this.gamepadIndices=Object.assign({},e.gamepadIndices),this.values={state:rt.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=O({id:this.id},this.values);return t},enumerable:!1,configurable:!0}),n.prototype.updateFromGamepad=function(t){var e=this;if(this.values.state=rt.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=rt.ComponentState.PRESSED:(r.touched||this.values.button>rt.ButtonTouchThreshold)&&(this.values.state=rt.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===rt.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>rt.AxisTouchThreshold&&(this.values.state=rt.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===rt.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>rt.AxisTouchThreshold&&(this.values.state=rt.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach(function(i){i.updateFromComponent(e.values)})},n}(),zA=function(){function n(t,e,r){var i=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(a){var o=i.layoutDescription.components[a];i.components[a]=new NA(a,o)}),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}(),QA="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",UA="generic-trigger",qA=function(n){ue(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(i){i instanceof f.Mesh&&i.isMesh&&(i.material.envMap=r.envMap,i.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(i){var a=i.valueNode,o=i.minNode,s=i.maxNode,u=i.value,l=i.valueNodeProperty;a&&(l===rt.VisualResponseProperty.VISIBILITY?a.visible=u:l===rt.VisualResponseProperty.TRANSFORM&&(a.quaternion.copy(o.quaternion).slerp(s.quaternion,u),a.position.lerpVectors(o.position,s.position,u)))})}))},t}(si.Object3D);function HA(n,t){Object.values(n.components).forEach(function(e){var r=e.type,i=e.touchPointNodeName,a=e.visualResponses;if(r===rt.ComponentType.TOUCHPAD)if(e.touchPointNode=t.getObjectByName(i),e.touchPointNode){var o=new si.SphereGeometry(.001),s=new si.MeshBasicMaterial({color:255}),u=new si.Mesh(o,s);e.touchPointNode.add(u)}else console.warn("Could not find touch dot, ".concat(e.touchPointNodeName,", in touchpad component ").concat(e.id));Object.values(a).forEach(function(l){var c=l.valueNodeName,d=l.minNodeName,p=l.maxNodeName,A=l.valueNodeProperty;if(A===rt.VisualResponseProperty.TRANSFORM){if(l.minNode=t.getObjectByName(d),l.maxNode=t.getObjectByName(p),!l.minNode){console.warn("Could not find ".concat(d," in the model"));return}if(!l.maxNode){console.warn("Could not find ".concat(p," in the model"));return}}l.valueNode=t.getObjectByName(c),l.valueNode||console.warn("Could not find ".concat(c," in the model"))})})}function Z0(n,t){HA(n.motionController,t),n.envMap&&t.traverse(function(e){e instanceof f.Mesh&&e.isMesh&&(e.material.envMap=n.envMap,e.material.needsUpdate=!0)}),n.add(t)}var GA=function(){function n(t){t===void 0&&(t=null),this.gltfLoader=t,this.path=QA,this._assetCache={}}return n.prototype.createControllerModel=function(t){var e=this,r=new qA,i=null;return t.addEventListener("connected",function(a){var o=a.data;o.targetRayMode!=="tracked-pointer"||!o.gamepad||kA(o,e.path,UA).then(function(s){var u=s.profile,l=s.assetPath;r.motionController=new zA(o,u,l);var c=e._assetCache[r.motionController.assetUrl];if(c)i=c.scene.clone(),Z0(r,i);else{if(!e.gltfLoader)throw new Error("GLTFLoader not set.");e.gltfLoader.load(r.motionController.assetUrl,function(d){e._assetCache[r.motionController.assetUrl]=d,i=d.scene.clone(),Z0(r,i)})}}).catch(function(s){console.warn(s)})}),t.addEventListener("disconnected",function(){r.motionController=null,r.remove(i),i=null}),r},n}(),KA=O({},Aa(pr,["maxLatitude","minLatitude"]));function jA(n,t){return n}var Y0=300,_A=new f.Matrix4().makeRotationAxis(new f.Vector3(0,1,0),Math.PI),$0=new f.Vector3(-1,1,1),JA=function(n){ue(t,n);function t(e){var r=n.call(this,e)||this;r.xrManager=new TA(r.renderer,r.renderer.getContext(),{onSessionStart:function(u){r.emit("xr.session.start",X("xr.session.start",{session:u,machineType:r.xrManager.machineType}))},onSessionEnd:function(){r.emit("xr.session.end",X("xr.session.end",{session:null,machineType:r.xrManager.machineType}))}}),r.xrControllerRay={left:new f.Raycaster,right:new f.Raycaster},r.xrControllerRay.left.params.Points={threshold:.1},r.xrControllerRay.right.params.Points={threshold:.1},r.gazeRay=null,r.pointerLines={left:new zo,right:new zo},r.pointerLines.left.visible=!1,r.pointerLines.right.visible=!0,r.pointerLines.left.setMaterial({color:new f.Vector3(1,1,1)}),r.pointerLines.left.points.material.depthTest=!1,r.pointerLines.right.setMaterial({color:new f.Vector3(1,1,1)}),r.pointerLines.right.points.material.depthTest=!1,r.controllerWrappers=[new f.Group,new f.Group];var i=r.xrManager.getController(0);r.controllerWrappers[0].add(i);var a=r.xrManager.getController(1);r.controllerWrappers[1].add(a);var o=new GA;o.gltfLoader={load:function(u,l){ra.ajax(u,{responseType:"arraybuffer"}).then(function(c){var d;return es(c.body,{resourcePath:u.slice(0,u.lastIndexOf("/")+1),search:(d=u.split("?")[1])!==null&&d!==void 0?d:"",fetcher:ra})}).then(function(c){return l(c)})}},(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=kt()]={panoId:He(r.currentPano),leftPanoPicture:null,position:r.camera.pose.offset.clone(),effect:"fade",fixCameraTransform:new f.Matrix4},r.parallaxCameraMatrixs=[];var s=Mt.shared.getContext();return s?(r.on("xr.session.end",function(){r.scene.remove(r.pointerLines.left,r.pointerLines.right)}),r.xrManager.setSession(s),r.on("xr.session.start",function(){var u=r.xrManager.getControllerGrip(0);u.add(o.createControllerModel(u)),r.controllerWrappers[0].add(u);var l=r.xrManager.getControllerGrip(1);l.add(o.createControllerModel(l)),r.controllerWrappers[1].add(l)}),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=O(O({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return n.parseArgs.call(this,r)},t.initAnimationEndState=function(e){var r=this.parseArgs(e),i=n.initAnimationEndState.call(this,r);return O(O({},i),{mode:"XRPanorama"})},t.prototype.updateConfiguration=function(e){return n.prototype.updateConfiguration.call(this,O(O({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2}))},t.prototype.moveToPano=function(e,r,i){var a=this,o,s,u,l,c=(o=r.effect)!==null&&o!==void 0?o:"fade";this.userAction=i,this.stopMomentumMovement();var d=this.works.getResolvedObserver(e);if(!d)throw new Error("Invalid PanoIndex");var p=mi(d.images.up),A=this.imageOptions.size;typeof A=="undefined"&&d&&p&&(A=Number(p)),typeof A=="undefined"&&(A=2048);var h=this.imageOptions.transform,v=function(C,I){return jA(Cn(C,h,I))},g=O({key:"pano.".concat(d.panoId)},_t(this.imageOptions,["format","size","quality"])),m=d.images,y=(u=(s=d.images.tiles)===null||s===void 0?void 0:s.filter(function(C){return C.size>A}))!==null&&u!==void 0?u:null,b="pano:"+ma([m,g,h]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===b)return;var x=this.pendingTextureTask.panoId;(l=this.panoMeshes[x])===null||l===void 0||l.setProgress(0),this.emit("pano.texture.abort",X("pano.texture.abort",{error:null,progress:0,meta:null,pano:d.pano}))}var w=this.models.getMaterial()||{},M=w.pano0,S=w.pano1,E;if((M==null?void 0:M.map.name)===b?E=M:(S==null?void 0:S.map.name)===b&&(E=S),E){var P={panoId:d.panoId,effect:c,leftPanoPicture:{zoom:1,map:E.map,luminanceMap:E.luminanceMap,matrix:new f.Matrix4().compose(d.position,d.quaternion,$0)},position:d.position.clone(),fixCameraTransform:new f.Matrix4};this.doMoveToPano(d.pano,P,r);return}var B="move-to-pano-"+d.panoId;this.pending.add(B),this.pendingTextureTask={panoId:d.panoId,hash:b,onLoad:function(C){if(a.pending.delete(B),a.destroyed)C.body.dispose();else{C.body.name=b;var I={panoId:d.panoId,effect:c,leftPanoPicture:{zoom:1,map:C.body,luminanceMap:null,matrix:new f.Matrix4().compose(d.position,d.quaternion,$0)},position:d.position.clone(),fixCameraTransform:new f.Matrix4};a.doMoveToPano(d.pano,I,r)}},onError:function(C){a.pending.delete(B);var I=O(O(O({},d.pano),{mode:a.mode}),tt(a.camera.pose));a.emit("pano.error",X("pano.error",{error:C,userAction:a.userAction,options:r,prevPano:a.currentPano,progress:0,state:I})),a.emit("pano.cancel",X("pano.cancel",{error:null,userAction:a.userAction,options:r,prevPano:a.currentPano,progress:0,state:I})),r.moveCancelCallback&&r.moveCancelCallback()}},Promise.all([this.tileLevelForFov&&y&&y.length?this.textureLoader.loadTiledCubeTexture(m,y,{tileMaxLevel:this.tiledCubeTextureLevel,imageURL:{transform:v,options:g},format:f.RGBAFormat,minFilter:f.LinearFilter,magFilter:f.LinearFilter,generateMipmaps:!1,viaAjax:!0,fetcher:pt(d.work)},void 0,void 0,function(C){var I,F;a.emit("pano.texture.progress",X("pano.texture.progress",{error:null,progress:C,meta:null,pano:d.pano})),((I=a.pendingTextureTask)===null||I===void 0?void 0:I.hash)===b&&((F=a.panoMeshes[d.panoId])===null||F===void 0||F.setProgress(C))},this.renderer):this.textureLoader.loadCubeTexture(m,{imageURL:{transform:v,options:g},format:f.RGBAFormat,fetcher:pt(d.work)},void 0,void 0,function(C){var I,F;((I=a.pendingTextureTask)===null||I===void 0?void 0:I.hash)===b&&((F=a.panoMeshes[d.panoId])===null||F===void 0||F.setProgress(C)),a.emit("pano.texture.progress",X("pano.texture.progress",{error:null,progress:C,meta:null,pano:d.pano}))},this.renderer)]).then(function(C){var I,F,T=C[0];((I=a.pendingTextureTask)===null||I===void 0?void 0:I.hash)===b?(a.pendingTextureTask.onLoad(T),(F=a.panoMeshes[d.panoId])===null||F===void 0||F.setProgress(0),delete a.pendingTextureTask,a.emit("pano.texture.success",X("pano.texture.success",{error:null,progress:1,meta:T.meta,pano:d.pano}))):T.body.dispose()}).catch(function(C){var I,F;((I=a.pendingTextureTask)===null||I===void 0?void 0:I.hash)===b&&(a.pendingTextureTask.onError(C),(F=a.panoMeshes[d.panoId])===null||F===void 0||F.setProgress(0),delete a.pendingTextureTask,a.emit("pano.texture.error",X("pano.texture.error",{error:C,progress:0,meta:null,pano:d.pano})),a.emit("error",C))}),this.emit("pano.texture.load",X("pano.texture.load",{error:null,progress:0,meta:null,pano:d.pano}))},t.prototype.doMoveToPano=function(e,r,i){var a=this,o,s,u,l,c,d,p,A,h,v;i===void 0&&(i={});var g=ve(),m=kt();this.panoResources[m]=r;var y=1,b,x,w;if(this.locationMotion.ended){var M=this.locationMotion.getKeyFrameSegment(g);M[0];var S=M[1],E=this.locationMotion.value,P=this.panoResourceFromLocationMotionKeyframe(S).position,B=r.position;b=Math.max(P.distanceTo(B),y),x=[{key:S.key,progress:0,value:O(O({},E),{count:0})},{key:m,progress:1,value:{distance:0,count:1}}],w=0}else{var C=this.locationMotion.getKeyFrameSegment(g),I=C[0],S=C[1],E=this.locationMotion.value,F=this.panoResourceFromLocationMotionKeyframe(I).position,P=this.panoResourceFromLocationMotionKeyframe(S).position,B=r.position,T=S.value.count-E.count,L=Math.max(F.distanceTo(P),y)*T,D=Math.max(P.distanceTo(B),y);b=L+D,x=[{key:I.key,progress:0,value:O({},E)},{key:S.key,progress:L/b,value:S.value},{key:m,progress:1,value:{count:S.value.count+1,distance:0}}];var V=this.locationMotionKeyframesLength(this.locationMotion.keyframes),z=this.locationMotionKeyframesLength(x);w=this.locationMotion.getProgressVelocity(g)*V/z}var U=r.effect==="instant"?0:this.calculateMovingDuration(i.duration,r.effect==="fly"?b:0),q={longitude:i.longitude,latitude:i.latitude,fov:i.fov},G=O(O({},e),{mode:this.mode,longitude:(o=q.longitude)!==null&&o!==void 0?o:this.camera.pose.longitude,latitude:(s=q.latitude)!==null&&s!==void 0?s:this.camera.pose.latitude,fov:(u=q.fov)!==null&&u!==void 0?u:this.camera.pose.fov,offset:r.position.clone(),distance:0}),K=this.currentPano;if(this.emit("pano.moveTo",X("pano.moveTo",{options:i,prevPano:K,progress:0,state:G,userAction:this.userAction,error:null})),i.moveStartCallback&&i.moveStartCallback(G),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=Q,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),r.effect==="fly")this.cameraMotion.set(q,U).catch(Q);else{var _=nr({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude}),J=nr({longitude:(l=q.longitude)!==null&&l!==void 0?l:this.cameraMotion.value.longitude,latitude:(c=q.latitude)!==null&&c!==void 0?c:this.cameraMotion.value.latitude}),W=new f.Object3D;W.lookAt(_);var $=new f.Matrix4().makeRotationFromQuaternion(W.quaternion);W.lookAt(J);var Y=new f.Matrix4().makeRotationFromQuaternion(W.quaternion),Z=new f.Matrix4().getInverse($).premultiply(Y),oe=this.cameraMotion.value.fov,ne=(d=q.fov)!==null&&d!==void 0?d:this.cameraMotion.value.fov,de=1;r.effect==="zoomin"?de=1.5:r.effect==="zoomout"&&(de=.4);for(var se=ne*de,ye=0;ye<x.length-1;ye++){var ie=x[ye].key;if(ie){var xe=this.panoResources[ie];xe&&(xe.fixCameraTransform.copy(Z),xe.leftPanoPicture&&(xe.leftPanoPicture.zoom=Math.tan(oe/2/180*Math.PI)/Math.tan(se/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:(p=q.longitude)!==null&&p!==void 0?p:this.cameraMotion.value.longitude,latitude:(A=q.latitude)!==null&&A!==void 0?A:this.cameraMotion.value.latitude,fov:se}},{progress:1,value:{longitude:(h=q.longitude)!==null&&h!==void 0?h:this.cameraMotion.value.longitude,latitude:(v=q.latitude)!==null&&v!==void 0?v:this.cameraMotion.value.latitude,fov:ne}}],U).catch(Q)}var Le=this.locationMotion.setKeyframes(x,U,w);Le.then(function(){for(var Ce,Oe,ee,re=0,H=a.models;re<H.length;re++){var Be=H[re];Be.show()}var Te=O(O({},e),{mode:a.mode,longitude:a.camera.pose.longitude,latitude:a.camera.pose.latitude,fov:a.camera.pose.fov,offset:a.camera.pose.offset.clone(),distance:0});a.emit("pano.arrived",X("pano.arrived",{options:i,prevPano:K,progress:1,state:Te,userAction:a.userAction,error:null})),i.moveEndCallback&&i.moveEndCallback(Te);var Ee=a.works.getResolvedObserver(a.currentPano);if(Ee&&Ee.video&&a.videoTexture&&a.videoTexture.image instanceof HTMLVideoElement){var Qe=_A.clone().multiply((ee=(Oe=(Ce=a.models.getMaterial())===null||Ce===void 0?void 0:Ce.pano1)===null||Oe===void 0?void 0:Oe.matrix)!==null&&ee!==void 0?ee:new f.Matrix4).multiply(Ee.video.matrix),Ie={map:a.videoTexture,size:Ee.video.size,matrix:Qe,alpha:1},we=kt(),be=a.videoTexture.image;be.setAttribute("uuid",we),Ul().then(function(Ae){Ae&&Ee.video&&be.getAttribute("uuid")===we&&(be.oncanplay=function(){be.oncanplay=Q,be.play()},be.ontimeupdate=function(){be.currentTime>.5&&(be.ontimeupdate=Q,a.panoVideo.setMaterial(Ie))},be.src=Ee.video.source)}).catch(function(){be.removeAttribute("uuid")})}},function(){a.emit("pano.cancel",X("pano.cancel",{options:i,prevPano:K,progress:0,state:G,userAction:a.userAction,error:null})),i.moveCancelCallback&&i.moveCancelCallback()})},t.prototype.checkSelectedPano=function(e){var r=this,i,a,o,s;this.stopMomentumMovement();var u=this.camera.getDirection(new f.Vector3).setY(0),l=null,c=this.works.getResolvedObserver(this.currentPano);if(!c)return null;var d=c.accessibleIds.filter(function(J){var W=Lt(J);if(Ar(W,r.currentPano))return!1;var $=r.works.getResolvedObserver(W);return!$||$.position.distanceTo(r.camera.position)>r.maxAccessibleDistance?!1:$.loadable||$.active}),p=this.models.intersectRaycaster(e)[0];if(p){var A=Br(d,function(J){var W=r.works.getResolvedObserver(J);if(!W)return 1/0;var $=W.standingPosition.clone();return $.distanceTo(p.point)},!0),h=A[0],v=A[1];h&&v<this.panoTapTriggerRadius&&(l=(i=this.works.getResolvedObserver(h))!==null&&i!==void 0?i:null)}if(_0(l)){var g=this.getForwardObserverOrNot(e);g&&(l=g)}for(var m=0,y=this.locationMotion.keyframes;m<y.length;m++){var b=y[m],x=this.panoResourceFromLocationMotionKeyframe(b);if(!(b.progress<this.locationMotion.progress)&&l&&x.panoId===l.panoId){l=null;break}}if(_0(l))return this.locationMotion.ended===!0&&this.cameraBounce(),null;if(l&&!l.active){var w=l.panoId;this.panoMeshes[w]&&(this.panoMeshes[w].setDisabled(!1),this.panoMeshes[w].setLoading(!0))}var M={};if(l){for(var S=Math.PI/6,E=Math.PI/12,P=new f.Vector3(0,1,0),B=l.position.clone().setY(0).sub(c.position.clone().setY(0)).normalize(),C=B.clone().applyAxisAngle(P,S),I=B.clone().applyAxisAngle(P,-S),F=[],T=[],L=[],D=0,V=l.accessibleIds;D<V.length;D++){var h=V[D],z=Lt(h);if(!(Ar(z,this.currentPano)||Ar(z,l.pano))){var U=this.works.getResolvedObserver(h);if(U){var q=U.position.clone().sub(l.position).setY(0);B.angleTo(q)<S?L.push(q):C.angleTo(q)<S?F.push(q):I.angleTo(q)<S&&T.push(q)}}}var G=L.length>0?L:vt(vt([],F,!0),T,!0),K=G.slice().sort(function(J,W){return J.angleTo(B)-W.angleTo(B)})[0];K&&K.angleTo(u)>E&&(M.longitude=Math.atan2(-K.x,-K.z))}this.cameraMotion.value.latitude<-Math.PI/4&&(M.latitude=ce(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(M.fov=this.defaultFov);var _={workCode:l.pano.workCode,panoIndex:l.pano.panoIndex,mode:this.mode,longitude:(a=M.longitude)!==null&&a!==void 0?a:this.camera.pose.longitude,latitude:(o=M.latitude)!==null&&o!==void 0?o:this.camera.pose.latitude,fov:(s=M.fov)!==null&&s!==void 0?s:this.camera.pose.fov,distance:0,offset:l?l.position.clone():new f.Vector3};return this.emit("pano.select",X("pano.select",{prevPano:this.currentPano,state:_,userAction:!0,options:M,progress:0,error:null})),l&&l.active?(this.emit("pano.request",X("pano.request",{userAction:!0,prevPano:this.currentPano,progress:0,state:_,options:M,error:null})),l.pano):null},t.prototype.destroy=function(){n.prototype.destroy.call(this)},t.prototype.isReady=function(){return!1},t.prototype.updateCamera=function(e,r,i){return Promise.resolve()},t.prototype.updateCameraWithKeyframes=function(e,r,i){return Promise.resolve()},t.prototype.updateTime=function(e,r){for(var i=this,a,o,s,u,l,c,d,p,A=[],h=2;h<arguments.length;h++)A[h-2]=arguments[h];this.userAction=!0;var v={},g={},m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),y=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),b=!1;if(this.cameraMotion.ended===!1&&(this.cameraMotion.update(e),g.longitude=this.cameraMotion.value.longitude,g.latitude=this.cameraMotion.value.latitude,g.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended===!1&&(this.modelAlphaMotion.update(e),v.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended===!1&&(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(ce(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended===!1){this.locationMotion.update(e);var x=this.locationMotion.getKeyFrameSegment(e),w=x[0],M=x[1],S=this.panoResourceFromLocationMotionKeyframe(w),E=this.panoResourceFromLocationMotionKeyframe(M),P=new f.Vector3().copy(S.position),B=new f.Vector3().copy(E.position),C=this.locationMotion.value.count-M.value.count+1;v.progress=C,E.leftPanoPicture&&(C<1?S.leftPanoPicture&&(v.pano0=S.leftPanoPicture):v.pano0=E.leftPanoPicture,v.pano1=E.leftPanoPicture),E.effect==="montage"?v.transition="BLACK":E.effect==="spread"?v.transition="SPREAD":v.transition="FADE",(E.effect==="zoomin"||E.effect==="zoomout")&&(v.progress=Math.pow(C,3)),C<1&&E.effect!=="fly"&&(v.pano0&&S.leftPanoPicture&&(v.pano0={map:v.pano0.map,zoom:v.pano0.zoom,luminanceMap:v.pano0.luminanceMap,matrix:S.leftPanoPicture.matrix.clone().setPosition(E.position)}),P.copy(B),b=!0),g.distance=this.locationMotion.value.distance,g.offset=new f.Vector3(P.x+(B.x-P.x)*C,P.y+(B.y-P.y)*C,P.z+(B.z-P.z)*C);for(var I=[],F=[],T=0,L=this.locationMotion.keyframes;T<L.length;T++){var D=L[T],V=D.key,z=D.progress;V!==void 0&&(I.push(V),z>this.locationMotion.progress&&F.push(V))}for(var U=0,q=Object.keys(this.panoResources);U<q.length;U++){var G=q[U];if(!(F.indexOf(G)>=0)){var K=this.panoResources[G];if(K.leftPanoPicture){var _=K.leftPanoPicture.map;if(_){if(_===((a=v.pano0)===null||a===void 0?void 0:a.map)||_===((o=v.pano1)===null||o===void 0?void 0:o.map))continue;_ instanceof qe&&_.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(_.cubeRenderTarget),_.dispose(),K.leftPanoPicture=null}}I.indexOf(G)>=0||delete this.panoResources[G]}}this.currentPano=Lt(E.panoId),this.emit("pano.moving",X("pano.moving",{userAction:this.userAction,prevPano:Lt(m.panoId),state:O(O(O(O({},Lt(y.panoId)),{mode:this.mode}),tt(this.camera.pose)),g),options:{},progress:this.locationMotion.progress,error:null}))}or(v)===!1&&(!((s=v.pano0)===null||s===void 0)&&s.map&&v.pano0.map instanceof qe&&!v.pano0.map.cubeRenderTarget&&(v.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((u=v.pano1)===null||u===void 0)&&u.map&&v.pano1.map instanceof qe&&!v.pano1.map.cubeRenderTarget&&(v.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),this.models.setMaterial(v)),or(g)===!1&&this.setCamera(g);var J=this.works.getResolvedObserver(this.currentPano),W=A[1];if(!W){console.error("xrFrame丢失,请重试");return}if(!this.xrManager.session){console.error("session丢失,请重试");return}var $=this.xrManager.referenceSpace;if($){var Y=this.xrManager.cameraVR,Z=this.xrManager.cameraL,oe=this.xrManager.cameraR,ne=[Z,oe],de=W.getViewerPose($),se=new f.Vector3(0,0,0);if(de){var ye;ye=this.xrManager.session.renderState.baseLayer;var ie=de.views;if(!ye){console.error("no layer found");return}this.renderer.setFramebuffer(ye.framebuffer);var xe=!1;ie.length!==Y.cameras.length&&(Y.cameras.length=0,xe=!0),this.parallaxCameraMatrixs=[];var Le=new f.Vector3,Ce=new f.Vector3;new f.Matrix4().fromArray(ie[0].transform.matrix).decompose(Le,new f.Quaternion,new f.Vector3),new f.Matrix4().fromArray(ie[1].transform.matrix).decompose(Ce,new f.Quaternion,new f.Vector3),Ce.clone().sub(Le).normalize();var Oe=new f.Vector3,ee=new f.Quaternion,re=new f.Vector3;this.camera.matrix.decompose(Oe,ee,re);for(var H=0;H<ie.length;H++){var Be=ie[H],Te=ye.getViewport(Be),Ee=ne[H];Ee.matrix.fromArray(Be.transform.matrix);var Qe=new f.Vector3,Ie=new f.Quaternion,we=new f.Vector3;Ee.matrix.decompose(Qe,Ie,we),se.copy(Oe),Ee.position.copy(Oe),Ee.quaternion.copy(Ie),Ee.scale.copy(we),Ee.updateMatrix(),Ee.projectionMatrix.fromArray(Be.projectionMatrix),Ee.viewport.set(Te.x,Te.y,Te.width,Te.height),xe===!0&&Y.cameras.push(Ee)}if(this.xrManager.session&&this.xrManager.session.inputSources){for(var H=0;H<this.xrManager.session.inputSources.length;H++)if(this.xrManager.session.inputSources[H]&&this.xrManager.session.inputSources[H].targetRayMode==="transient-pointer"){var be=W.getPose(this.xrManager.session.inputSources[H].targetRaySpace,$);if(be){var Ae=new f.Vector3(0,0,-1).applyQuaternion(be.transform.orientation),me=new f.Raycaster(this.camera.position,Ae);this.gazeRay=me}}}if(this.xrManager.machineType==="Oculus"||this.xrManager.machineType==="Pico"){for(var ze=this.xrManager.session.inputSources,H=0;H<ze.length;H++){var pe=this.xrManager.controllers[H],Se=ze[H];if(Se){pe&&pe.update(Se,W,$);var me=this.xrManager.getController(H),St=new f.Vector3(0,1.2,0),Pe=me.position.clone().add(se).sub(St);Se.handedness==="left"?this.xrControllerRay.left.set(Pe,new f.Vector3(0,0,-1).applyEuler(me.rotation)):Se.handedness==="right"&&this.xrControllerRay.right.set(Pe,new f.Vector3(0,0,-1).applyEuler(me.rotation)),this.controllerWrappers[H].position.copy(new f.Vector3(0,0,0).add(se).sub(St));var _e=this.models.intersectRaycaster(this.xrControllerRay.right);if(_e.length===0&&(_e=this.xrControllerRay.right.intersectObject(this.boundingMesh,!0).map(function(_r){var mn;return O({floor:(mn=J==null?void 0:J.floorIndex)!==null&&mn!==void 0?mn:0},_r)})),_e.length>=1&&_e[0].face)if(Se.handedness==="right"){var it=this.xrControllerRay.right.intersectObject(this.xrCustomObjectsScene,!0),Jt=_e[0].face.normal,Kr=Jt.clone(),Xt=_e[0].point.clone();this.intersectMesh.position.copy(Xt);var ut=Xt.clone().add(Kr);if(this.intersectMesh.lookAt(ut),Math.abs(Jt.y)>.99){var Ct=this.camera.position.clone().sub(Xt);this.intersectMesh.rotation.z=-Math.atan2(Ct.z,Ct.x)}this.intersectMesh.visible=!0,this.needsRender=!0,it.length>0?(this.pointerLines.right.setPoints(Pe,it[0].point),this.pointerLines.right.points.visible=!0,this.intersectMesh.visible=!1):(this.pointerLines.right.points.visible=!1,this.pointerLines.right.setPoints(Pe,_e[0].point));var dt=_e[0],Et=X("intersect.update",{raycaster:(l=this.xrControllerRay.right)!==null&&l!==void 0?l:null,intersection:dt!=null?dt:null,object:this.intersectMesh});if(this.emit("intersect.update",Et),Et.defaultPrevented){this.hideIntersectMesh();return}}else this.pointerLines.left.setPoints(Pe,_e[0].point)}}this.updateControllerHelper(ze,e,r)}if(this.camera.pose.distance>.1||b)for(var It=0,Tt=Object.keys(this.panoMeshes);It<Tt.length;It++){var Xe=Tt[It],Ne=this.panoMeshes[Xe];Ne.setOpacity(0),Ne.setCurrent(!1),Ne.updateTime&&Ne.updateTime(e,r),Ne.visible=!1}else if(J){var We=Br(J.visibleIds,function(Pt){var sr=i.works.getResolvedObserver(Pt);return sr?J.standingPosition.distanceTo(sr.standingPosition):1/0},!0),At=We[1];At=ce(At,2.5,1/0);for(var Ze=J.visibleIds.concat(He(this.currentPano)),gt=this.getForwardObserverOrNot(),qt=this.camera.getDirection(new f.Vector3),yt=0,Wt=Object.keys(this.panoMeshes);yt<Wt.length;yt++){var Xe=Wt[yt],Ne=this.panoMeshes[Xe],xr=this.works.getResolvedObserver(Xe);if(Ze.indexOf(Xe)===-1)Ne.setCurrent(!1),Ne.setOpacity(0);else if(!xr)Ne.setCurrent(!1),Ne.setOpacity(0);else if(!xr.loadable&&!xr.active)Ne.setCurrent(!1),Ne.setOpacity(0);else{var jr=Ne.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);Ne.setCurrent(!Ne.loading&&Ne.progress===0&&gt!==null&&gt.panoId===Xe),Ne.setOpacity(jr<.01?0:ce(At/jr*1.2,.65,.98));var wr=this.camera.position.clone().setY(Ne.position.y),Ae=new f.Vector3().copy(Ne.position).sub(wr).normalize();if(Xe===He(this.currentPano)){var Lr=ce((.5-wr.distanceTo(Ne.position))/.5,0,1);Ae.multiplyScalar(1-Lr).add(qt.clone().multiplyScalar(Lr))}Ae.length()>0&&Ne.quaternion.setFromEuler(new f.Euler(0,Math.atan2(Ae.x,Ae.z),0))}Ne.updateTime&&Ne.updateTime(e,r)}}var Dt=function(){return 4}(),Ge=function(){var Pt=new f.PerspectiveCamera;Pt.applyMatrix4(Y.matrix),Pt.position.set(0,0,0);var sr=i.works.getResolvedObserver(y.panoId),_r=sr!=null?sr:J;_r&&Pt.quaternion.premultiply(_r.quaternion.clone().inverse()),Pt.updateProjectionMatrix(),Pt.updateMatrixWorld(!0);var mn=new f.Frustum().setFromProjectionMatrix(new f.Matrix4().multiplyMatrices(Pt.projectionMatrix,Pt.matrixWorldInverse));return mn}();y.panoId===He(this.currentPano)&&((c=y.leftPanoPicture)===null||c===void 0?void 0:c.map)instanceof qe&&(y.leftPanoPicture.map.maxRequest=this.tileMaxRequest,y.leftPanoPicture.map.update(Ge,Dt),y.leftPanoPicture.map.needsRender===!0&&(this.needsRender=!0,this.modelSceneNeedsRender=!0));{var ke=this.tiling.object.visible;if(this.initAnimationed){var Ye=y.panoId,bt=this.works.getResolvedObserver(Ye);bt?Fi(this.camera.position,bt.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==Ye&&this.tiling.cleanup(),this.tiling.panoId=Ye,this.tiling.setResource((p=(d=bt.images)===null||d===void 0?void 0:d.tiles)!==null&&p!==void 0?p:[],this.enableIOSEDR&&bt.images.luminance?bt.images.luminance:null),this.tiling.setFetcher(pt(bt.work)),this.tiling.setRotation(bt.quaternion),this.tiling.setPosition(bt.position),this.tiling.maxRequest=this.tileMaxRequest,Dt>this.tiledCubeTextureLevel?this.tiling.update(Ge,Dt,e):this.tiling.update(Ge,0,e)):this.tiling.object.visible=!1:this.tiling.object.visible=!1}else this.tiling.object.visible=!1;ke!==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,i){var a=this.xrControllerRay.left,o=this.xrControllerRay.right;if(!(!e||e.length===0)){for(var s={buttons:{X:!1,Y:!1,LeftTrigger:!1,LeftPinch:!1,A:!1,B:!1,RightTrigger:!1,RightPinch:!1}},u=0;u<e.length;u++){var l=e[u].handedness,c=e[u].gamepad;switch(l){case"left":c.axes&&(this.emitHandleEvent(c.axes[2]===-1,"LeftAxesLeft",r),this.emitHandleEvent(c.axes[2]===1,"LeftAxesRight",r),this.emitHandleEvent(c.axes[3]===-1,"LeftAxesUp",r),this.emitHandleEvent(c.axes[3]===1,"LeftAxesDown",r)),c!=null&&c.buttons&&(c.buttons[4]&&this.emitHandleEvent(c.buttons[4].pressed,"X",r),c.buttons[5]&&this.emitHandleEvent(c.buttons[5].pressed,"Y",r),c.buttons[0]&&this.emitHandleEvent(c.buttons[0].pressed,"LeftTrigger",r),c.buttons[1]&&this.emitHandleEvent(c.buttons[1].pressed,"LeftPinch",r));var d={raycaster:a,axes:{up:c.axes&&c.axes[3]<0?Math.abs(c.axes[3]):0,down:c.axes&&c.axes[3]<0?0:Math.abs(c.axes[3]),left:c.axes&&c.axes[2]<0?Math.abs(c.axes[2]):0,right:c.axes&&c.axes[2]<0?0:Math.abs(c.axes[2])},deltaTime:i};s.buttons.X=c.buttons&&c.buttons[4]?c.buttons[4].pressed:!1,s.buttons.Y=c.buttons&&c.buttons[5]?c==null?void 0:c.buttons[5].pressed:!1,s.buttons.LeftTrigger=c.buttons&&c.buttons[0]?c==null?void 0:c.buttons[0].pressed:!1,s.buttons.LeftPinch=c.buttons&&c.buttons[1]?c==null?void 0:c.buttons[1].pressed:!1,s.left=d;break;case"right":c.axes&&(this.emitHandleEvent(c.axes[2]===-1,"RightAxesLeft",r),this.emitHandleEvent(c.axes[2]===1,"RightAxesRight",r),this.emitHandleEvent(c.axes[3]===-1,"RightAxesUp",r),this.emitHandleEvent(c.axes[3]===1,"RightAxesDown",r)),c.buttons&&(c.buttons[4]&&this.emitHandleEvent(c.buttons[4].pressed,"A",r),c.buttons[5]&&this.emitHandleEvent(c.buttons[5].pressed,"B",r),c.buttons[0]&&this.emitHandleEvent(c.buttons[0].pressed,"RightTrigger",r),c.buttons[1]&&this.emitHandleEvent(c.buttons[1].pressed,"RightPinch",r));var p={raycaster:o,axes:{up:c.axes&&c.axes[3]<0?Math.abs(c.axes[3]):0,down:c.axes&&c.axes[3]<0?0:Math.abs(c.axes[3]),left:c.axes&&c.axes[2]<0?Math.abs(c.axes[2]):0,right:c.axes&&c.axes[2]<0?0:Math.abs(c.axes[2])},deltaTime:i};s.right=p,s.buttons.A=c.buttons&&c.buttons[4]?c==null?void 0:c.buttons[4].pressed:!1,s.buttons.B=c.buttons&&c.buttons[5]?c==null?void 0:c.buttons[5].pressed:!1,s.buttons.RightTrigger=c.buttons&&c.buttons[0]?c==null?void 0:c.buttons[0].pressed:!1,s.buttons.RightPinch=c.buttons&&c.buttons[1]?c==null?void 0:c.buttons[1].pressed:!1;break}}this.emit("xr.controller.update",X("xr.controller.update",s))}},t.prototype.emitHandleEvent=function(e,r,i){var a=this.xrControllerRay.left,o=this.xrControllerRay.right;if(e)if(this.xrHandleState[r].touchStart===!1)this.xrHandleState[r].touchStartTime=i,this.xrHandleState[r].touchStart=!0,this.emit("xr.gesture.buttonDown",X("xr.gesture.buttonDown",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!1,isFirst:!0,controllers:{raycaster:{leftRay:a,rightRay:o}}}));else{var s=i-this.xrHandleState[r].touchStartTime;s>Y0&&this.emit("xr.gesture.press",X("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!0,controllers:{raycaster:{leftRay:a,rightRay:o}}}))}else if(this.xrHandleState[r].touchStart===!0){this.emit("xr.gesture.buttonUp",X("xr.gesture.buttonUp",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:a,rightRay:o}}}));var s=i-this.xrHandleState[r].touchStartTime;if(s<=Y0){var u=X("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:a,rightRay:o}}}),l=this.emit("xr.gesture.tap",u);!l&&!u.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}(ps),ht={Floorplan:No,Topview:Am,Panorama:ps,VRPanorama:fA,Model:pA,Mapview:CA,XRPanorama:JA},XA={Floorplan:$t,Topview:mm,Panorama:pr,VRPanorama:cA,Model:hA,Mapview:Ir,XRPanorama:KA},ec=["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 WA(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=nr(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 ZA(){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 eu(n){var t=new f.Group;t.name="internalLights";{var e=new f.DirectionalLight(16777215,.3);e.position.copy(new f.Vector3(1,1,1)),t.add(e)}{var e=new f.DirectionalLight(16777215,.1);e.position.copy(new f.Vector3(-1,-1,-1)),t.add(e)}{var e=new f.DirectionalLight(16777215,.1);t.add(e)}{var e=new f.AmbientLight(16777215,.6);t.add(e)}n.add(t)}function YA(n){for(var t,e,r={},i=n.split(/(\;|\,)/),a=0,o=i;a<o.length;a++){var s=o[a],u=s.split("="),l=(t=u[0])===null||t===void 0?void 0:t.trim(),c=(e=u[1])===null||e===void 0?void 0:e.trim();l&&c&&(r[l]=c)}return r}function tc(){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 i=YA((n=r.getAttribute("content"))!==null&&n!==void 0?n:""),a=Number(i["initial-scale"]);if(!isNaN(a))return a}}return 1}const $A="data:image/png;base64,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";var tu=[351,63],ru=[20,20],eg=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),tg=new Float32Array([0,0,1,0,0,1,1,1]),rg=new Uint8Array([0,1,2,1,3,2]),wa=new f.BufferGeometry;wa.setAttribute("position",new f.BufferAttribute(eg,3));wa.setAttribute("uv",new f.BufferAttribute(tg,2));wa.setIndex(new f.BufferAttribute(rg,1));var ta=new f.MeshBasicMaterial({transparent:!0,depthTest:!1,depthWrite:!1,stencilWrite:!1,fog:!1}),rc=new f.Mesh(wa,ta);rc.matrixAutoUpdate=!1;var ys=new f.Scene;ys.add(rc);ys.matrixAutoUpdate=!1;var Li=new f.OrthographicCamera(-.5,.5,.5,-.5,.1,1);Li.position.set(0,0,.5);Li.lookAt(0,0,0);Li.updateMatrixWorld(!0);Li.matrixAutoUpdate=!1;var ng=new f.Vector4,ig=new f.Vector4;function ag(n){if(ta.map){var r=n.getViewport(ng),i=n.getScissor(ig),a=n.getScissorTest(),o=n.autoClear,s=i.x+ru[0]/3,u=i.y+ru[1]/3,l=tu[0]/3,c=tu[1]/3;n.setViewport(s,u,l,c),n.setScissor(s,u,l,c),n.setScissorTest(!0),n.autoClear=!1,n.render(ys,Li),n.setViewport(r),n.setScissor(i),n.setScissorTest(a),n.autoClear=o}else{var t=new f.Texture,e=new Image;e.onload=function(){t.image=e,t.wrapS=f.ClampToEdgeWrapping,t.wrapT=f.ClampToEdgeWrapping,t.minFilter=f.LinearFilter,t.needsUpdate=!0,t.generateMipmaps=!1,ta.needsUpdate=!0,e.onload=Q},e.src=$A,ta.map=t}}var og=800,nu=90,sg=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/")},ug=new f.Vector2,lg=new f.Sphere,ji=new f.Frustum,_i=new f.Matrix4,iu=new WeakMap,vo=new WeakMap,mo=Lo([]);new Xo;var nc=function(n){ue(t,n);function t(e){e===void 0&&(e={});var r,i,a,o,s,u,l,c,d,p,A,h=n.call(this)||this;if(h.ident=kt(),typeof window!="undefined"&&(Qo.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=O({},(i=e.imageOptions)!==null&&i!==void 0?i:{}),h.textureOptions=O({},(a=e.textureOptions)!==null&&a!==void 0?a:{}),h.poweredByRealsee=(o=e.poweredByRealsee)!==null&&o!==void 0?o:!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:ve()},h.info=null,h.modeChangeDuration=(s=e.modeChangeDuration)!==null&&s!==void 0?s:og,h.enableWheel=(u=e.enableWheel)!==null&&u!==void 0?u:!0,typeof window!="undefined")if("renderer"in e)e.renderer instanceof xn&&h.throwError(new Error("cannot render a internal renderer")),h.renderer=e.renderer;else try{h.renderer=new xn({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 v=tc();h.renderer.setPixelRatio(v===1?window.devicePixelRatio:1),h.renderer.setSize(512,512)}catch(B){B instanceof Error&&h.throwError(B)}h.getPixelsRenderTarget=new f.WebGLRenderTarget(1,1,{encoding:(c=(l=h.renderer)===null||l===void 0?void 0:l.outputEncoding)!==null&&c!==void 0?c:f.sRGBEncoding,generateMipmaps:!1});var g=new f.DepthTexture(1,1);g.generateMipmaps=!1,g.format=f.DepthStencilFormat,g.type=f.UnsignedInt248Type,h.modelRenderTarget=new f.WebGLRenderTarget(1,1,{encoding:(p=(d=h.renderer)===null||d===void 0?void 0:d.outputEncoding)!==null&&p!==void 0?p:f.sRGBEncoding,depthTexture:g,generateMipmaps:!1,depthBuffer:!0,stencilBuffer:!0}),h.scissor=Object.assign({left:0,bottom:0,width:1,height:1},e.scissor),h.camera=new Su(nu),h.scene=new Xo,h.xrCustomObjectsScene=new f.Scene,h.scene.add(h.xrCustomObjectsScene),h.scene.matrixAutoUpdate=!1,h.lastLoadWorkTask=Promise.resolve(),h.requestProxy=(A=e.requestProxy)!==null&&A!==void 0?A:sg,h.networkSubscribe=new du,h.networkSubscribe.on("network",function(B,C,I,F){var T;h.emit("network.resource",X("network.resource",{source:B,requestType:C,requestState:I,detail:F})),(T=h.analysis)===null||T===void 0||T.network(h.works,B,C,I,F)}),h.boundingMesh=$v(new f.Box3(new f.Vector3(-.5,-.5,-.5),new f.Vector3(.5,.5,.5))),h.boundingMesh.name="bounding",h.models=I0(),h.models.push(new Oo),h.lastModels=I0(),h.lastWorks=Lo([]),h.readyCallbacks=[],h.syncingState=!1,h.helperGroup=new f.Group,h.helperGroup.name="helper",h.helperGroup.matrixAutoUpdate=!1,h.scene.add(h.helperGroup),h.modelGroup=new f.Group,h.modelGroup.visible=!1,h.modelGroup.name="model",h.modelGroup.matrixAutoUpdate=!1,h.modelScene=new f.Scene,h.modelScene.add(h.modelGroup),h.modelScene.add(h.boundingMesh),h.modelScene.matrixAutoUpdate=!1,h.videoTexture=new f.VideoTexture(e.videoInstance||ZA()),eu(h.scene),eu(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=Mt.shared.add(function(B,C){for(var I=[],F=2;F<arguments.length;F++)I[F-2]=arguments[F];h.updateTime.apply(h,vt([B,C],I,!1))},!1,0,10));var m=function(){typeof document!="undefined"&&document.fullscreenElement===null&&h.currentMode==="VRPanorama"&&h.controller.emit("vr.requestExit",X("vr.requestExit",{}))},y=function(){h.needsRender=!0,h.modelSceneNeedsRender=!0};if(typeof document!="undefined"&&document.addEventListener("fullscreenchange",m,!1),h.renderer&&h.renderer.domElement.addEventListener("webglcontextrestored",y,!1),h.removeEventListeners=function(){typeof document!="undefined"&&document.removeEventListener("fullscreenchange",m,!1),h.renderer&&h.renderer.domElement.removeEventListener("webglcontextrestored",y,!1)},h.plugins={},e.plugins&&e.plugins.length)for(var b=0,x=e.plugins;b<x.length;b++){var w=x[b];if(typeof w=="function")w(h);else if(Array.isArray(w)){var M=w[0],S=w[1],E=w[2];if(typeof M=="function"){var P=M(h,E);typeof S=="string"&&(h.plugins[S]?h.throwError(new Error("plugin name ".concat(S," is exists."))):h.plugins[S]=P)}}}return h.gpuPickingRenderTarget=new f.WebGLRenderTarget(1,1,{generateMipmaps:!1}),h.meshReplaceMaterialMap=new Map,h.meshOriginMaterialMap=new Map,WA(h),h}return Object.defineProperty(t,"version",{get:function(){return"6.4.0-alpha.26"},enumerable:!1,configurable:!0}),Object.defineProperty(t,"dracoPath",{get:function(){return ua.decoderPath},set:function(e){ua.setDecoderPath(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t,"ktx2Path",{get:function(){return fi.transcoderPath},set:function(e){fi.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,i,a,o){var s=this;if(a===void 0&&(a=1),o===void 0&&(o=new f.Vector3(0,0,0)),!this.renderer)throw new Error("renderer is not initialized.");var u=this.models.getMaterial(),l=u.constantColor,c=u.colorStyle;this.models.setMaterial({colorStyle:"CONSTANT",constantColor:o}),this.scene.traverse(function(h){if(!(!(h instanceof f.Mesh)||h instanceof Ot)){var v=Object.keys(i).filter(function(m){return m===h.uuid})[0];if(v)if(s.meshOriginMaterialMap.set(v,h.material),s.meshReplaceMaterialMap.get(v))h.material=s.meshReplaceMaterialMap.get(v);else{var g=new f.ShaderMaterial({uniforms:{color:{value:i[v]}},vertexShader:`
2170
2170
  void main() {
2171
2171
  vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );
2172
2172
  gl_Position = projectionMatrix * mvPosition;