@realsee/five 6.2.0-alpha.14 → 6.2.0-alpha.15
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/docs/assets/search.js +1 -1
- package/docs/interfaces/five.EventCallback.html +66 -55
- package/docs/types/five.GestureTypes.html +1 -1
- package/docs/types/five.LegacyEventType.html +63 -54
- package/five/index.d.ts +16 -1
- package/five/index.js +5 -5
- package/five/index.mjs +18 -14
- package/gltf-loader/index.js +3 -3
- package/gltf-loader/index.mjs +3 -3
- package/line/index.js +3 -3
- package/line/index.mjs +3 -3
- package/package.json +1 -1
- package/plugins/index.js +2 -2
- package/plugins/index.mjs +2 -2
- package/react/index.js +2 -2
- package/react/index.mjs +2 -2
- package/sticker/index.js +3 -3
- package/sticker/index.mjs +3 -3
- package/umd/five-gltf-loader.js +3 -3
- package/umd/five-line.js +3 -3
- package/umd/five-plugins.js +2 -2
- package/umd/five-react.js +2 -2
- package/umd/five-sticker.js +3 -3
- package/umd/five-vfx.js +2 -2
- package/umd/five-vue.js +2 -2
- package/umd/five.js +5 -5
- package/vfx/index.js +2 -2
- package/vfx/index.mjs +2 -2
- package/vue/index.js +2 -2
- package/vue/index.mjs +2 -2
package/umd/five.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five
|
|
4
|
-
* Generated: 10/
|
|
5
|
-
* Version: 6.2.0-alpha.
|
|
4
|
+
* Generated: 10/15/2024
|
|
5
|
+
* Version: 6.2.0-alpha.15
|
|
6
6
|
* Terms:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
* Update: July 28, 2021
|
|
@@ -1366,7 +1366,7 @@ void main() {
|
|
|
1366
1366
|
|
|
1367
1367
|
gl_Position = projectionMatrix * mvPosition;
|
|
1368
1368
|
}
|
|
1369
|
-
`,camera$1=new THREE__namespace.OrthographicCamera(-1,1,1,-1,0,1),geometry$4=new THREE__namespace.BufferGeometry;geometry$4.setAttribute("position",new THREE__namespace.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),geometry$4.setAttribute("uv",new THREE__namespace.Float32BufferAttribute([0,2,0,0,2,0],2));var noneMaterial=new THREE__namespace.MeshBasicMaterial,mesh$3=new THREE__namespace.Mesh(geometry$4,noneMaterial),scene$1=new THREE__namespace.Scene;scene$1.add(mesh$3);var DepthCopyPass=function(){function n(t){this.renderer=t,this.material=new THREE__namespace.ShaderMaterial({vertexShader:VERTEX,fragmentShader:FRAGMENT$1,uniforms:Object.assign({depthBuffer:new THREE__namespace.Uniform(null)}),blending:THREE__namespace.NoBlending,depthWrite:!0,depthTest:!0}),this.renderer.getContext()&&this.renderer.getContext()instanceof WebGLRenderingContext&&(this.material.extensions.fragDepth=!0)}return n.prototype.render=function(t,e){var r=this.renderer.getRenderTarget();this.material.uniforms.depthBuffer.value=t,mesh$3.material=this.material,this.renderer.setRenderTarget(e||null),this.renderer.render(scene$1,camera$1),this.renderer.setRenderTarget(r),mesh$3.material=noneMaterial},n.prototype.dispose=function(){this.material.dispose()},n}(),sharedVector2$1=new THREE__namespace.Vector2,BaseController=function(n){__extends(t,n);function t(e){var r,i,o,s,u,c,l=n.call(this)||this,d=t.parseArgs(e);l.mode="",l.pending=new Set,l.userAction=d.initial.userAction,l.destroyed=!1,l.ident=d.ident,l.scene=d.scene,l.xrCustomObjectsScene=d.xrCustomObjectsScene,l.helper=d.helper,l.boundingMesh=d.boundingMesh,l.camera=d.camera,l.renderer=d.renderer,l.scissor=d.scissor,l.element=d.element,l.models=d.models,l.enableWheel=d.enableWheel,l.enableIOSEDR=(r=d.enableIOSEDR)!==null&&r!==void 0?r:!1,l.enableEDL=(i=d.enableEDL)!==null&&i!==void 0?i:!0,l.enableHQ=(o=d.enableHQ)!==null&&o!==void 0?o:!0,l.works=d.works,l.imageOptions=d.imageOptions,l.videoTexture=d.videoTexture,l.extraElements=d.extraElements,l.initial=d.initial,l.currentPano=typeof l.initial.state.panoIndex=="number"?{workCode:(c=(s=l.initial.state.workCode)!==null&&s!==void 0?s:(u=d.works[0])===null||u===void 0?void 0:u.workCode)!==null&&c!==void 0?c:"",panoIndex:l.initial.state.panoIndex}:{workCode:l.initial.currentState.workCode,panoIndex:l.initial.currentState.panoIndex},l.needsRender=!0,l.modelSceneNeedsRender=!0,l.cameraMotion=new Motion({longitude:{value:l.camera.pose.longitude,circle:[0,Math.PI*2]},latitude:l.camera.pose.latitude,fov:l.camera.pose.fov}),l.inMomentumMovement=null,l.eventUnbinds=[d.element].concat(d.extraElements||[]).map(function(m){return l.bindEvents(m)}),l.pending.add("init-animation"),l.initAnimationReady=new Promise(function(m){AnimationFrameLoop.shared.add(function(){l.initAnimation().then(function(){l.pending.delete("init-animation"),m()})},!0)}),l.initAnimationIsReady=!1,l.initAnimationReady.then(function(){return l.initAnimationIsReady=!0}),l.modelScene=d.modelScene;var f=new THREE__namespace.Vector2;return l.renderer.getDrawingBufferSize(f),l.modelRenderTarget=d.modelRenderTarget,l.copyPass=new CopyPass(l.renderer),l.depthCopyPass=new DepthCopyPass(l.renderer),l.screenBuffers=[],l.lastPostProcessingType=null,l}return t.parseArgs=function(e){return e instanceof t?e:__assign({},e)},t.initAnimationEndState=function(e){var r,i,o,s,u,c,l,d,f=this.parseArgs(e),m=f.initial,A=m.state,h=m.currentState,p=typeof A.panoIndex=="number"?{workCode:(o=(r=A.workCode)!==null&&r!==void 0?r:(i=f.works[0])===null||i===void 0?void 0:i.workCode)!==null&&o!==void 0?o:"",panoIndex:A.panoIndex}:{workCode:h.workCode,panoIndex:h.panoIndex};return __assign(__assign({},p),{mode:"",longitude:(s=A.longitude)!==null&&s!==void 0?s:h.longitude,latitude:(u=A.latitude)!==null&&u!==void 0?u:h.latitude,fov:(c=A.fov)!==null&&c!==void 0?c:h.fov,offset:(l=A.offset)!==null&&l!==void 0?l:h.offset,distance:(d=A.distance)!==null&&d!==void 0?d:h.distance})},t.prototype.destroy=function(){var e;this.stopMomentumMovement(),this.destroyed=!0,this.off(),this.cameraMotion.dispose();for(var r=0,i=this.eventUnbinds;r<i.length;r++){var o=i[r];o()}this.copyEffect&&(this.copyEffect.dispose(),delete this.copyEffect),delete this.panState,(e=this.pressState)===null||e===void 0||e.stop(),delete this.pressState},t.prototype.isReady=function(){return this.inMomentumMovement===null&&this.pending.size===0&&this.cameraMotion.ended===!0},t.prototype.bindExtraElement=function(e){for(var r=0,i=this.eventUnbinds;r<i.length;r++){var o=i[r];if(o.element===e)return}this.eventUnbinds.push(this.bindEvents(e))},t.prototype.unbindExtraElement=function(e){for(var r=[],i=0,o=this.eventUnbinds;i<o.length;i++){var s=o[i];s.element===e?s():r.push(s)}this.eventUnbinds=r},t.prototype.updateRenderSize=function(e){this.needsRender=!0,this.modelSceneNeedsRender=!0,this.modelRenderTarget.setSize(e.x,e.y),this.screenBuffers.forEach(function(r){r.setSize(e.x,e.y)})},t.prototype.updateModel=function(e){this.needsRender=!0,this.modelSceneNeedsRender=!0},t.prototype.updateWork=function(e,r,i,o){return this.works=e,this.userAction=o,!1},t.prototype.updateTime=function(e,r){if(!this.destroyed){var i={};this.cameraMotion.ended&&(this.cameraMotion.update(e),i.longitude=this.cameraMotion.value.longitude,i.latitude=this.cameraMotion.value.latitude,i.fov=this.cameraMotion.value.fov),isEmptyObject(i)&&this.setCamera(i)}},t.prototype.render=function(e,r){var i=this.renderer.getRenderTarget();this.updateScreenBuffer(r),e&&(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){this.destroyed},t.prototype.updateCamera=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();var s={};return e.longitude!==void 0&&(s.longitude=e.longitude),e.latitude!==void 0&&(s.latitude=e.latitude),e.fov!==void 0&&(s.fov=e.fov),o.cameraMotion.set(s,r).catch(noop$1)})},t.prototype.updateCameraWithKeyframes=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();for(var s=[],u=0,c=e;u<c.length;u++){var l=c[u];s.push({key:l.key,progress:l.progress,value:{longitude:l.value.longitude,latitude:l.value.latitude,fov:l.value.fov}})}return o.cameraMotion.setKeyframes(s,r)})},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(now())[1];return __assign(__assign({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance})},t.prototype.initAnimation=function(){var e=this.initial;e.state,e.currentState,e.duration;var r=e.userAction,i=t.initAnimationEndState(this);return this.userAction=r,this.emit("initAnimation.start",createEvent("initAnimation.start",{state:i,userAction:this.userAction})),this.emit("initAnimation.end",createEvent("initAnimation.end",{state:i,userAction:this.userAction})),Promise.resolve()},t.prototype.setCamera=function(e){var r,i,o,s,u;e===void 0&&(e={});var c=(r=e.longitude)!==null&&r!==void 0?r:this.camera.pose.longitude,l=(i=e.latitude)!==null&&i!==void 0?i:this.camera.pose.latitude,d=(o=e.fov)!==null&&o!==void 0?o:this.camera.pose.fov,f=(s=e.distance)!==null&&s!==void 0?s:this.camera.pose.distance,m=(u=e.offset)!==null&&u!==void 0?u:this.camera.pose.offset,A=notSimilarValue(c,this.camera.pose.longitude,Math.PI*2)||notSimilarValue(l,this.camera.pose.latitude),h=notSimilarValue(d,this.camera.pose.fov),p=notSimilarValue(f,this.camera.pose.distance),b=notSimilarVector3(m,this.camera.pose.offset);(h||A||b||p)&&(this.camera.setFromPose({longitude:c,latitude:l,fov:d,distance:f,offset:m}),this.emit("camera.update",createEvent("camera.update",{userAction:this.userAction,state:__assign(__assign({},this.currentPano),{mode:this.mode,longitude:c,latitude:l,fov:d,offset:m,distance:f})})),this.needsRender=!0,this.modelSceneNeedsRender=!0)},t.prototype.stopMomentumMovement=function(){if(this.inMomentumMovement&&this.inMomentumMovement.event&&!this.inMomentumMovement.event.defaultPrevented&&!this.inMomentumMovement.event.isFinal){var e=createEvent("gesture.momentum",__assign(__assign({},this.inMomentumMovement.event),{isFirst:!1,isFinal:!0}));this.emit("gesture.momentum",e)}this.inMomentumMovement=null},t.prototype.onPanGesture=function(e){this.stopMomentumMovement(),this.emit("gesture.pan",e)},t.prototype.onTapGesture=function(e){this.stopMomentumMovement(),this.emit("gesture.tap",e)},t.prototype.onDblTapGesture=function(e){this.stopMomentumMovement(),this.emit("gesture.dbltap",e),e.type="gesture.tap",this.onTapGesture(e)},t.prototype.onPressGesture=function(e){this.stopMomentumMovement(),this.emit("gesture.press",e)},t.prototype.onPinchGesture=function(e){this.stopMomentumMovement(),this.emit("gesture.pinch",e)},t.prototype.onMouseWheel=function(e){this.stopMomentumMovement(),this.emit("gesture.mousewheel",e)},t.prototype.onMouseMove=function(e){this.stopMomentumMovement(),this.emit("gesture.mousemove",e)},t.prototype.relativeClientPosition=function(e){return calculateThreeMouse(e,this.element,this.scissor)},t.prototype.bindEvents=function(e){var r=this,i=function(x){var w=calculateThreeMouse(x,r.element,r.scissor);return!(Math.abs(w.x)>1||Math.abs(w.y)>1)},o=new Hammer.Manager(e),s=function(x){var w=x.session;return w.firstInput||null},u=new Hammer.Pan({threshold:10,pointers:0}),c=new Hammer.Tap({interval:300}),l=new Hammer.Pinch({threshold:0,pointers:2});o.add([u,c,l]),o.on("panstart pan",function(x){var w=s(o);if(!(w&&!i(w.center))){var H=createEvent("gesture.pan",{target:x.target,pointerType:x.pointerType,srcEvent:x.srcEvent,pointers:x.pointers.map(function(C){var L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;return k.params.Points={threshold:.1},k.setFromCamera(L,r.camera),{x:C.x,y:C.y,delta:0,buttons:0,coords:L,raycaster:k}}),isFirst:x.isFirst,isFinal:x.isFinal,scale:x.scale,center:function(C){var L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;return k.params.Points={threshold:.1},k.setFromCamera(L,r.camera),{x:C.x,y:C.y,delta:0,buttons:0,coords:L,raycaster:k}}(x.center),velocityX:x.velocityX,velocityY:x.velocityY,overallVelocityX:x.overallVelocityX,overallVelocityY:x.overallVelocityY,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});r.onPanGesture(H),E()}}),o.on("tap",function(x){if(!(x.pointerType==="mouse"&&x.srcEvent.button!==0)){var w=s(o);if(!(w&&!i(w.center))){var H=createEvent("gesture.tap",{target:x.target,pointerType:x.pointerType,srcEvent:x.srcEvent,pointers:x.pointers.map(function(C){var L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;return k.params.Points={threshold:.1},k.setFromCamera(L,r.camera),{x:C.x,y:C.y,delta:0,buttons:0,coords:L,raycaster:k}}),isFirst:!0,isFinal:!0,scale:x.scale,center:function(C){var L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;return k.params.Points={threshold:.1},k.setFromCamera(L,r.camera),{x:C.x,y:C.y,delta:0,buttons:0,coords:L,raycaster:k}}(x.center),velocityX:x.velocityX,velocityY:x.velocityY,overallVelocityX:x.overallVelocityX,overallVelocityY:x.overallVelocityY,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});r.onTapGesture(H),E()}}}),o.on("pinchstart pinch pinchend",function(x){var w=s(o);if(!(w&&!i(w.center))){var H=createEvent("gesture.pinch",{target:x.target,pointerType:x.pointerType,srcEvent:x.srcEvent,pointers:x.pointers.map(function(C){var L,k=r.relativeClientPosition(C),O=new THREE__namespace.Raycaster;return O.params.Points={threshold:.1},O.setFromCamera(k,r.camera),{x:C.x,y:C.y,delta:(L=C.delta)!==null&&L!==void 0?L:0,buttons:0,coords:k,raycaster:O}}),isFirst:x.type==="pinchstart",isFinal:x.type==="pinchend",scale:x.scale,center:function(C){var L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;return k.params.Points={threshold:.1},k.setFromCamera(L,r.camera),{x:C.x,y:C.y,delta:0,buttons:0,coords:L,raycaster:k}}(x.center),velocityX:x.velocityX,velocityY:x.velocityY,overallVelocityX:x.overallVelocityX,overallVelocityY:x.overallVelocityY,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});r.onPinchGesture(H),E()}}),o.on("dbltap",function(x){if(!(x.pointerType==="mouse"&&x.srcEvent.button!==0)){var w=s(o);if(!(w&&!i(w.center))){var H=createEvent("gesture.dbltap",{target:x.target,pointerType:x.pointerType,srcEvent:x.srcEvent,pointers:x.pointers.map(function(C){var L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;return k.params.Points={threshold:.1},k.setFromCamera(L,r.camera),{x:C.x,y:C.y,delta:0,buttons:0,coords:L,raycaster:k}}),isFirst:!0,isFinal:!0,scale:x.scale,center:function(C){var L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;return k.params.Points={threshold:.1},k.setFromCamera(L,r.camera),{x:C.x,y:C.y,delta:0,buttons:0,coords:L,raycaster:k}}(x.center),velocityX:x.velocityX,velocityY:x.velocityY,overallVelocityX:x.overallVelocityX,overallVelocityY:x.overallVelocityY,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});r.onDblTapGesture(H),E()}}});var d=null,f=null,m=function(x,w,H){var C={x:H.clientX,y:H.clientY},L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;k.params.Points={threshold:.1},k.setFromCamera(L,r.camera);var O=__assign(__assign({},C),{coords:L,raycaster:k,buttons:H.buttons,delta:0}),G=x==="pinchend"?w:w-H.deltaY/280,Q=createEvent("gesture.pinch",{target:H.target,pointerType:"mouse",srcEvent:H,pointers:[__assign({},O)],isFirst:x==="pinchstart",isFinal:x==="pinchend",scale:clamp$1(G,.1,10),center:__assign({},O),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});return Q},A=function(x){var w,H={x:x.clientX,y:x.clientY};if(i(H)){if(x.preventDefault(),x.ctrlKey){var C=(w=d==null?void 0:d.prevEvent.scale)!==null&&w!==void 0?w:1,L=m(d?"pinch":"pinchstart",C,x);d===null?d={firstEvent:L,prevEvent:L}:d.prevEvent=L,r.onPinchGesture(L),f!==null&&window.clearTimeout(f),f=window.setTimeout(function(){var K;f=null;var z=(K=d==null?void 0:d.prevEvent.scale)!==null&&K!==void 0?K:1,q=m("pinchend",z,x);d=null,r.onPinchGesture(q)},200)}else{var k=(Math.abs(x.deltaY)>Math.abs(x.deltaX)?x.deltaY:x.deltaX)/-60,O=r.mouseWheelState!==void 0,G={x:x.clientX,y:x.clientY},Q=r.relativeClientPosition(G),D=new THREE__namespace.Raycaster;D.params.Points={threshold:.1},D.setFromCamera(Q,r.camera);var U=__assign(__assign({},G),{coords:Q,raycaster:D,buttons:x.buttons,delta:k}),L=createEvent("gesture.mousewheel",{target:x.target,pointerType:"mouse",srcEvent:x,pointers:[__assign({},U)],isFirst:O,isFinal:!1,scale:0,center:__assign({},U),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});r.onMouseWheel(L),r.mouseWheelState&&clearTimeout(r.mouseWheelState.timer),r.mouseWheelState={timer:setTimeout(function(){delete r.mouseWheelState;var z=createEvent("gesture.mousewheel",{target:x.target,pointerType:"mouse",srcEvent:x,pointers:[__assign(__assign({},U),{delta:0})],isFirst:!1,isFinal:!0,scale:0,center:__assign(__assign({},U),{delta:0}),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});r.onMouseWheel(z)},100)}}E()}},h=function(x){if(!isMobile){if(!i({x:x.clientX,y:x.clientY})){p();return}var w=!1;r.mouseMoveState||(w=!0);var H={x:x.clientX,y:x.clientY},C=r.relativeClientPosition(H),L=new THREE__namespace.Raycaster;L.params.Points={threshold:.1},L.setFromCamera(C,r.camera);var k=__assign(__assign({},H),{coords:C,raycaster:L,buttons:x.buttons,delta:0}),O=createEvent("gesture.mousemove",{target:x.target,pointerType:"mouse",srcEvent:x,pointers:[__assign({},k)],isFirst:w,isFinal:!1,scale:0,center:__assign({},k),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});r.mouseMoveState={timeStamp:now(),event:O},r.onMouseMove(O),r.pressState&&Math.abs(x.clientX-r.pressState.event.center.y)>10&&Math.abs(x.clientY-r.pressState.event.center.y)>10&&E()}},p=function(){if(r.mouseMoveState){var x=createEvent(r.mouseMoveState.event.type,__assign(__assign({},r.mouseMoveState.event),{isFinal:!0}));delete r.mouseMoveState,r.onMouseMove(x)}E()},b=function(x){if(!i(x.center)){E();return}var w=!1;r.pressState||(w=!0,r.pressState={event:x,timeStamp:now(),stop:noop$1});var H=now()-r.pressState.timeStamp,C=createEvent(r.pressState.event.type,__assign(__assign({},r.pressState.event),{isFirst:w,isFinal:!1,center:__assign(__assign({},r.pressState.event.center),{delta:H}),pointers:r.pressState.event.pointers.map(function(L){return __assign(__assign({},L),{delta:H})})}));r.onPressGesture(C),r.pressState&&(r.pressState.stop=AnimationFrameLoop.shared.add(function(L){b(x)},!0,1))},v=function(x){if(E(),!(x.touches.length>1||x.changedTouches.length<=0)){var w={x:x.changedTouches[0].clientX,y:x.changedTouches[0].clientY},H=r.relativeClientPosition(w),C=new THREE__namespace.Raycaster;C.params.Points={threshold:.1},C.setFromCamera(H,r.camera);var L=__assign(__assign({},w),{coords:H,raycaster:C,buttons:0,delta:0}),k=createEvent("gesture.press",{target:x.target,pointerType:"touch",srcEvent:x,pointers:[__assign({},L)],isFirst:!1,isFinal:!1,scale:0,center:L,velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});b(k)}},g=function(x){E();var w={x:x.clientX,y:x.clientY},H=r.relativeClientPosition(w),C=new THREE__namespace.Raycaster;C.params.Points={threshold:.1},C.setFromCamera(H,r.camera);var L=__assign(__assign({},w),{coords:H,raycaster:C,buttons:x.buttons,delta:0}),k=createEvent("gesture.press",{target:x.target,pointerType:"mouse",srcEvent:x,pointers:[__assign({},L)],isFirst:!1,isFinal:!1,scale:0,center:L,velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});b(k)},E=function(){var x;if(r.pressState){var w=now()-r.pressState.timeStamp,H=createEvent(r.pressState.event.type,__assign(__assign({},r.pressState.event),{center:__assign(__assign({},r.pressState.event.center),{delta:w}),isFirst:!1,isFinal:!0,pointers:r.pressState.event.pointers.map(function(C){return __assign(__assign({},C),{delta:w})})}));r.onPressGesture(H),(x=r.pressState)===null||x===void 0||x.stop(),delete r.pressState}},y=null,T=function(x){var w,H=!1,C=!1;switch(x.type){case"gesturestart":H=!0;break;case"gestureend":C=!0;break}var L={x:x.clientX,y:x.clientY},k=r.relativeClientPosition(L),O=new THREE__namespace.Raycaster;O.params.Points={threshold:.1},O.setFromCamera(k,r.camera);var G=__assign(__assign({},L),{coords:k,raycaster:O,buttons:0,delta:0}),Q=createEvent("gesture.pinch",{target:x.target,pointerType:"mouse",srcEvent:x,pointers:[__assign({},G)],isFirst:H,isFinal:C,scale:(w=x.scale)!==null&&w!==void 0?w:1,center:__assign({},G),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});return Q},_=function(x){if(x.preventDefault(),!isMobile){var w=T(x);y={firstEvent:w};var H=y.firstEvent;H&&!i(H.center)||r.onPinchGesture(w)}},R=function(x){if(x.preventDefault(),!isMobile&&y){var w=T(x),H=y.firstEvent;H&&!i(H.center)||r.onPinchGesture(w)}},S=function(x){if(x.preventDefault(),!isMobile&&y){var w=T(x),H=y.firstEvent;y=null,!(H&&!i(H.center))&&r.onPinchGesture(w)}},B=function(x){if(x&&typeof x.preventDefault=="function"&&x.currentTarget===e&&x.preventDefault(),typeof getSelection=="function"){var w=getSelection();w&&w.focusNode&&(w.removeAllRanges&&w.removeAllRanges(),w.empty&&w.empty())}};this.enableWheel&&e.addEventListener("wheel",A,{passive:!1}),e.addEventListener("mousemove",h,!1),e.addEventListener("mouseout",p,!1),e.addEventListener("touchstart",v,{passive:!0}),e.addEventListener("touchend",E,!1),e.addEventListener("touchcancel",E,!1),e.addEventListener("mousedown",g,!1),e.addEventListener("mouseup",E,!1),e.addEventListener("gesturestart",_,{passive:!1}),e.addEventListener("gesturechange",R,{passive:!1}),e.addEventListener("gestureend",S,{passive:!1}),e.addEventListener("touchstart",B,{passive:!1}),e.addEventListener("contextmenu",B,!1);var I=function(){o.destroy(),e.removeEventListener("wheel",A,!1),e.removeEventListener("mousemove",h,!1),e.removeEventListener("mouseout",p,!1),e.removeEventListener("touchstart",v,!1),e.removeEventListener("touchend",E,!1),e.removeEventListener("touchcancel",E,!1),e.removeEventListener("mousedown",g,!1),e.removeEventListener("mouseup",E,!1),e.removeEventListener("gesturestart",_,!1),e.removeEventListener("gesturechange",R,!1),e.removeEventListener("gestureend",S,!1),e.removeEventListener("touchstart",B,!1),e.removeEventListener("contextmenu",B,!1)};return Object.assign(I,{element:e})},t.prototype.preloadPano=function(e,r){var i=this;r===void 0&&(r=noop$1);var o=this.works.getResolvedObserver(e);if(!o)return Promise.resolve();var s=["right","left","up","down","front","back"];return Promise.all(s.map(function(u){var c=__assign({key:"pano.".concat(panoStringify(e),".").concat(u)},pick(i.imageOptions,["size","format","quality","mappings"])),l=o.images[u],d=applyImageURLOptions(l,i.imageOptions.transform,c);return getFetcher(o.work).preload(d)})).then(function(){return r(e),e})},t.prototype.updateScreenBuffer=function(e){var r,i,o,s,u,c;if(this.lastPostProcessingType!==e)if(this.lastPostProcessingType=e,e==="luminance"){if(this.screenBuffers.length===0){var l=this.renderer.getDrawingBufferSize(sharedVector2$1);this.screenBuffers=[new THREE__namespace.WebGLRenderTarget(l.x,l.y,{generateMipmaps:!1,encoding:(i=(r=this.renderer)===null||r===void 0?void 0:r.outputEncoding)!==null&&i!==void 0?i:THREE__namespace.sRGBEncoding}),this.modelRenderTarget]}}else if(e==="edl"){if(this.screenBuffers.length===0){var l=this.renderer.getDrawingBufferSize(sharedVector2$1);this.screenBuffers=[new THREE__namespace.WebGLRenderTarget(l.x,l.y,{generateMipmaps:!1,encoding:(s=(o=this.renderer)===null||o===void 0?void 0:o.outputEncoding)!==null&&s!==void 0?s:THREE__namespace.sRGBEncoding,minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter,format:THREE__namespace.RGBAFormat,type:THREE__namespace.FloatType}),this.modelRenderTarget]}this.models.setMaterial({useEDL:!0})}else if(e==="hq"){if(this.screenBuffers.length===0){var l=this.renderer.getDrawingBufferSize(sharedVector2$1),d=new THREE__namespace.WebGLRenderTarget(l.x,l.y,{generateMipmaps:!1,minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter,format:THREE__namespace.RGBAFormat,type:THREE__namespace.FloatType,depthTexture:new THREE__namespace.DepthTexture(l.x,l.y,THREE__namespace.UnsignedIntType)});d.depthTexture.format=THREE__namespace.DepthFormat,d.depthBuffer=!0;var f=new THREE__namespace.WebGLRenderTarget(l.x,l.y,{generateMipmaps:!1,encoding:(c=(u=this.renderer)===null||u===void 0?void 0:u.outputEncoding)!==null&&c!==void 0?c:THREE__namespace.sRGBEncoding,minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter,format:THREE__namespace.RGBAFormat,type:THREE__namespace.FloatType,depthTexture:d.depthTexture});this.screenBuffers=[d,f,this.modelRenderTarget]}this.models.setMaterial({useHQDepth:!0,useHQWeight:!1,pointShape:"CIRCLE"})}else this.screenBuffers&&(this.screenBuffers.forEach(function(m){m.dispose()}),this.screenBuffers=[]),this.models.setMaterial({useEDL:!1,useHQDepth:!1,useHQWeight:!1})},t}(Subscribe),FloorplanController=function(n){__extends(t,n);function t(e){var r=this,i,o=t.parseArgs(e);return r=n.call(this,o)||this,r.mode="Floorplan",r.defaultLongitude=o.defaultLongitude,r.defaultLatitude=o.defaultLatitude,r.defaultFov=o.defaultFov,r.maxFov=o.maxFov,r.minFov=o.minFov,r.maxLatitude=o.maxLatitude,r.minLatitude=o.minLatitude,r.modelInScreen=o.modelInScreen,r.locationMotion=new Motion({x:r.camera.pose.offset.x,y:r.camera.pose.offset.y,z:r.camera.pose.offset.z,distance:r.camera.pose.distance}),r.modelAlphaMotion=new Motion({modelAlpha:(i=r.models.getMaterial().modelAlpha)!==null&&i!==void 0?i:0}),r.perspToOrthoMotion=new Motion({perspToOrtho:r.camera.perspToOrtho.x}),r.currentTapId=null,r.intersectMeshCreator=o.intersectMeshCreator,r.intersectMesh=r.intersectMeshCreator(),r.intersectMesh.name="intersect",r.intersectMesh.visible=!1,r.helper.add(r.intersectMesh),r}return t.distanceFromModel=function(e,r,i){var o=e.bounding,s=Math.pow(Math.pow(o.max.x-o.min.x+1,2)+Math.pow(o.max.y-o.min.y+1,2)+Math.pow(o.max.z-o.min.z+1,2),1/2),u=s/2/Math.tan(Math.PI*r/360);return i<1&&(u=u/i),isNaN(u)?s:u},t.parseArgs=function(e){var r,i,o,s,u,c,l,d,f;if(e instanceof t)return e;var m=n.parseArgs.call(this,e);return __assign(__assign({},m),{defaultLongitude:(r=e.defaultLongitude)!==null&&r!==void 0?r:Math.PI/4,defaultLatitude:(i=e.defaultLatitude)!==null&&i!==void 0?i:Math.PI/4,defaultFov:(o=e.defaultFov)!==null&&o!==void 0?o:80,maxFov:(s=e.maxFov)!==null&&s!==void 0?s:120,minFov:(u=e.minFov)!==null&&u!==void 0?u:20,maxLatitude:(c=e.maxLatitude)!==null&&c!==void 0?c:+Math.PI/2,minLatitude:(l=e.minLatitude)!==null&&l!==void 0?l:-Math.PI/2,modelInScreen:(d=e.modelInScreen)!==null&&d!==void 0?d:"boundingbox-center",intersectMeshCreator:(f=e.intersectMeshCreator)!==null&&f!==void 0?f:function(){return new IntersectMesh}})},t.initAnimationEndState=function(e){var r,i,o,s,u,c,l,d=this.parseArgs(e),f=e.initial,m=f.state,A=f.currentState,h=typeof m.panoIndex=="number"?{workCode:(o=(r=m.workCode)!==null&&r!==void 0?r:(i=d.works[0])===null||i===void 0?void 0:i.workCode)!==null&&o!==void 0?o:"",panoIndex:m.panoIndex}:{workCode:A.workCode,panoIndex:A.panoIndex},p=__assign(__assign({},h),{mode:"Floorplan",longitude:(s=m.longitude)!==null&&s!==void 0?s:isThirdPersonMode(A.mode)?A.longitude:d.defaultLongitude,latitude:clamp$1((u=m.latitude)!==null&&u!==void 0?u:A.mode==="Floorplan"?A.latitude:d.defaultLatitude,d.minLatitude,d.maxLatitude),fov:(c=m.fov)!==null&&c!==void 0?c:d.defaultFov,offset:m.offset?m.offset.clone():e.models.bounding.getCenter(new THREE__namespace.Vector3),distance:(l=m.distance)!==null&&l!==void 0?l:t.distanceFromModel(d.models,d.defaultFov,d.camera.aspect)});return p},t.prototype.destroy=function(){n.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.panState,this.intersectMesh.dispose(),this.helper.remove(this.intersectMesh)},t.prototype.isReady=function(){return this.locationMotion.ended===!1?!1:n.prototype.isReady.call(this)},t.prototype.updateWork=function(e,r,i,o){var s;return this.works=e,this.updateCamera(r,(s=i.duration)!==null&&s!==void 0?s:0,o),!0},t.prototype.updateModel=function(e){n.prototype.updateModel.call(this,e);var r=e.bounding.getCenter(new THREE__namespace.Vector3),i=t.distanceFromModel(e,this.defaultFov,this.camera.aspect);this.locationMotion.set({x:r.x,y:r.y,z:r.z,distance:i},0).catch(noop$1)},t.prototype.updateCamera=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();var s={},u={};return e.distance!==void 0&&(s.distance=e.distance),e.offset!==void 0&&(s.x=e.offset.x,s.y=e.offset.y,s.z=e.offset.z),e.longitude!==void 0&&(u.longitude=e.longitude),e.latitude!==void 0&&(u.latitude=e.latitude),e.fov!==void 0&&(u.fov=e.fov),o.locationMotion.set(s,r).catch(noop$1),o.cameraMotion.set(u,r).catch(noop$1)})},t.prototype.updateCameraWithKeyframes=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();for(var s=[],u=[],c=0,l=e;c<l.length;c++){var d=l[c];s.push({key:d.key,progress:d.progress,value:{distance:d.value.distance,x:d.value.offset.x,y:d.value.offset.x,z:d.value.offset.x}}),u.push({key:d.key,progress:d.progress,value:{longitude:d.value.longitude,latitude:d.value.latitude,fov:d.value.fov}})}return o.locationMotion.setKeyframes(s,r).catch(noop$1),o.cameraMotion.setKeyframes(e,r)})},t.prototype.updateTime=function(e,r){if(!this.destroyed){var i={},o={};this.modelAlphaMotion.ended||(this.modelAlphaMotion.update(e),i.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended||(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended||(this.locationMotion.update(e),o.distance=this.locationMotion.value.distance,o.offset=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),this.cameraMotion.ended||(this.cameraMotion.update(e),o.longitude=this.cameraMotion.value.longitude,o.latitude=this.cameraMotion.value.latitude,o.fov=this.cameraMotion.value.fov),isEmptyObject(i)||this.models.setMaterial(i),isEmptyObject(o)||this.setCamera(o)}},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(now())[1],r=this.locationMotion.getKeyFrameSegment(now())[1];return __assign(__assign({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:new THREE__namespace.Vector3(r.value.x,r.value.y,r.value.z),distance:r.value.distance})},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise(function(r){var i=e.initial;i.state,i.currentState;var o=i.duration,s=i.userAction;e.userAction=s;var u=t.initAnimationEndState(e),c=pick(u,["longitude","latitude","fov"]),l={x:u.offset.x,y:u.offset.y,z:u.offset.z,distance:u.distance},d={modelAlpha:1},f={perspToOrtho:0};e.emit("initAnimation.start",createEvent("initAnimation.start",{state:u,userAction:e.userAction})),e.modelAlphaMotion.set(d,o/3).catch(noop$1),e.perspToOrthoMotion.set(f,o).catch(noop$1),e.cameraMotion.set(c,o).catch(noop$1),e.locationMotion.set(l,o).then(function(){e.emit("initAnimation.end",createEvent("initAnimation.end",{state:u,userAction:e.userAction}))},function(m){var A=__assign(__assign(__assign({},e.currentPano),{mode:e.mode}),clonePose(e.camera.pose));e.emit("initAnimation.end",createEvent("initAnimation.end",{state:A,userAction:e.userAction}))}).then(function(){r()})})},t.prototype.updateRenderSize=function(e){this.needsRender=!0,this.modelSceneNeedsRender=!0,this.screenBuffers.forEach(function(r){r.setSize(e.x,e.y)})},t.prototype.getForwardObserverOrNot=function(e){var r=this,i=this.models.intersectRaycaster(e)[0];if(!i)return null;var o=this.works.resolvedObservers.filter(function(l){for(var d,f=0,m=r.models;f<m.length;f++){var A=m[f];if(A.visible&&((d=A.work)===null||d===void 0?void 0:d.workCode)===l.work.workCode)return!0}return!1}),s=arrayMin(o,function(l){return l.standingPosition.distanceTo(i.point)},!0),u=s[0],c=s[1];return u&&c<10?u:null},t.prototype.coordinatesForOffset=function(e){var r=this.renderer.getSize(new THREE__namespace.Vector2);return{longitude:-2*e.x/(r.x*this.scissor.width),latitude:2*e.y/(r.y*this.scissor.height)}},t.prototype.requestMomentumMovement=function(e,r,i,o){var s=this;if(this.inMomentumMovement!==null){for(var u=__assign({},i),c={longitude:0,latitude:0},l=0;l<o;l++)u.longitude*=.996,u.latitude*=.996*.998,c.longitude+=u.longitude,c.latitude+=u.latitude;var d=formatRad(this.cameraMotion.value.longitude+c.longitude),f=clamp$1(this.cameraMotion.value.latitude+c.latitude,this.minLatitude,this.maxLatitude),m=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:d,latitude:f,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance}),A=!(u.longitude>1e-4||u.longitude<-1e-4||u.latitude>1e-4||u.latitude<-1e-4),h=createEvent("gesture.momentum",__assign(__assign({},e),{isFirst:r,isFinal:A,state:m}));if(this.inMomentumMovement.event=h,this.emit("gesture.momentum",h),e.defaultPrevented){this.inMomentumMovement=null;return}this.inMomentumMovement&&(this.cameraMotion.set({longitude:d,latitude:f},0).catch(noop$1),A?this.inMomentumMovement=null:AnimationFrameLoop.shared.add(function(p,b){s.requestMomentumMovement(e,!1,u,b|0)},!0,1))}},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var r=this.panState,i=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:i,x:e.center.x,y:e.center.y},!(typeof r=="undefined"||r.pointerLength!==i)){var o={x:e.center.x-r.x,y:e.center.y-r.y},s=this.relativeClientPosition(e.center),u=this.camera.pose.latitude<Math.PI/6||s.y<0?1:-1;o.x*=u;var c=this.coordinatesForOffset(o),l=formatRad(this.cameraMotion.value.longitude+c.longitude),d=clamp$1(this.cameraMotion.value.latitude+c.latitude,this.minLatitude,this.maxLatitude);this.camera.aspect<1&&Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(d=this.cameraMotion.value.latitude);var f=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:l,latitude:d,fov:this.camera.pose.fov,offset:this.camera.pose.offset,distance:this.camera.pose.distance});if(e.state=f,this.emit("gesture.pan",e),!e.defaultPrevented&&(this.cameraMotion.set({longitude:f.longitude,latitude:f.latitude},0).catch(noop$1),e.isFinal)){var m=e.velocityX*u,A=e.velocityY;this.inMomentumMovement={uuid:createUuid()},this.requestMomentumMovement(e,!0,this.coordinatesForOffset({x:m,y:A}),0)}}},t.prototype.onPinchGesture=function(e){var r;if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement();var i=(r=this.pinchState)===null||r===void 0?void 0:r.fov;if(e.isFirst){this.pinchState={x:e.center.x,y:e.center.y,fov:this.cameraMotion.value.fov};return}if(e.isFinal&&(delete this.panState,delete this.pinchState),typeof i!="undefined"){var o=clamp$1(i/e.scale,this.minFov,this.maxFov);e.state.fov=o,this.emit("gesture.pinch",e),!e.defaultPrevented&&(this.cameraMotion.set({fov:o},0).catch(noop$1),this.onPanGesture(e))}}},t.prototype.onMouseMove=function(e){var r,i;if(this.intersectMesh.parent&&!this.panState){if(this.emit("gesture.mousemove",e),e.defaultPrevented){this.hideIntersectMesh();return}var o=e.center.raycaster;if(e.isFinal&&this.intersectMesh.parent&&this.intersectMesh.visible===!0){this.hideIntersectMesh();return}var s=this.models.intersectRaycaster(o)[0],u=createEvent("intersect.update",{raycaster:o,intersection:s!=null?s:null,object:this.intersectMesh});if(this.emit("intersect.update",u),u.defaultPrevented){this.hideIntersectMesh();return}if(s){var c=(i=(r=s.face)===null||r===void 0?void 0:r.normal)!==null&&i!==void 0?i:new THREE__namespace.Vector3().copy(o.ray.direction).multiplyScalar(-1),l=c.clone(),d=s.point.clone();this.intersectMesh.position.copy(d);var f=o.ray.origin.distanceTo(d),m=2*Math.tan(.5*this.camera.fov/180*Math.PI),A=Math.max(f*m/10,1);this.intersectMesh.scale.set(A,A,A);var h=d.clone().add(l);if(this.intersectMesh.lookAt(h),Math.abs(c.y)>.99){var p=this.camera.position.clone().sub(d);this.intersectMesh.rotation.z=-Math.atan2(p.z,p.x)}this.intersectMesh.visible=!0,this.needsRender=!0}else this.hideIntersectMesh()}},t.prototype.onMouseWheel=function(e){if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement();var r=this,i=r.minFov,o=r.maxFov,s=clamp$1(this.camera.fov-e.center.delta,i,o);e.state.fov=s,this.emit("gesture.mousewheel",e),!e.defaultPrevented&&this.cameraMotion.set({fov:s},0).catch(noop$1)}},t.prototype.onTapGesture=function(e){var r=this;this.userAction=!0,this.stopMomentumMovement();var i=e.center.raycaster,o=this.getForwardObserverOrNot(i);if(!o)this.emit("gesture.tap",e);else{var s={longitude:this.camera.pose.longitude,latitude:0},u=__assign(__assign({},e.state),{mode:"Panorama",workCode:o.pano.workCode,panoIndex:o.pano.panoIndex,longitude:s.longitude,latitude:s.latitude,offset:o?o.position.clone():new THREE__namespace.Vector3,distance:0});if(e.state=u,this.emit("gesture.tap",e),!e.defaultPrevented&&(this.emit("pano.select",createEvent("pano.select",{prevPano:this.currentPano,state:u,userAction:e.userAction,options:s,progress:0,error:null})),o&&o.active)){var c=this.currentTapId=createUuid();this.preloadPano(o.pano).then(function(l){r.currentTapId===c&&r.emit("pano.request",createEvent("pano.request",{userAction:!0,prevPano:r.currentPano,progress:0,state:u,options:s,error:null}))})}}},t.prototype.onDblTapGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var r=this.cameraMotion.value.fov,i=this.minFov-r<r-this.defaultFov?this.minFov:this.defaultFov;e.state.fov=i,this.emit("gesture.dbltap",e),!e.defaultPrevented&&(this.cameraMotion.set({fov:i},360).catch(noop$1),this.hideIntersectMesh())},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.needsRender=!0},t}(BaseController),TopviewController=function(n){__extends(t,n);function t(e){var r=this,i=t.parseArgs(e);return r=n.call(this,i)||this,r.mode="Topview",r}return t.parseArgs=function(e){if(e instanceof t)return e;var r=__assign(__assign({},e),{defaultLongitude:0,defaultLatitude: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 __assign(__assign({},i),{longitude:r.defaultLongitude,latitude:r.defaultLatitude,mode:"Topview"})},t.prototype.updateModel=function(e){this.needsRender=!0,this.modelSceneNeedsRender=!0;var r=this.models.bounding.getCenter(new THREE__namespace.Vector3);this.locationMotion.set({x:r.x,y:r.y,z:r.z,distance:FloorplanController.distanceFromModel(this.models,this.defaultFov,this.camera.aspect)},0).catch(noop$1)},t.prototype.updateCamera=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();var s={},u={};return e.distance!==void 0&&(s.distance=e.distance),e.offset!==void 0&&(s.x=e.offset.x,s.y=e.offset.y,s.z=e.offset.z),e.longitude!==void 0&&(u.longitude=e.longitude),e.latitude!==void 0&&(u.latitude=e.latitude),e.fov!==void 0&&(u.fov=e.fov),o.locationMotion.set(s,r).catch(noop$1),o.cameraMotion.set(u,r).catch(noop$1)})},t.prototype.updateCameraWithKeyframes=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();for(var s=[],u=[],c=0,l=e;c<l.length;c++){var d=l[c];s.push({key:d.key,progress:d.progress,value:{distance:d.value.distance,x:d.value.offset.x,y:d.value.offset.y,z:d.value.offset.z}}),u.push({key:d.key,progress:d.progress,value:{longitude:d.value.longitude,latitude:d.value.latitude,fov:d.value.fov}})}return o.locationMotion.setKeyframes(s,r).catch(noop$1),o.cameraMotion.setKeyframes(e,r)})},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise(function(r){var i=e.initial;i.state,i.currentState;var o=i.duration,s=i.userAction;e.userAction=s;var u=t.initAnimationEndState(e),c={longitude:u.longitude,latitude:u.latitude,fov:u.fov},l={x:u.offset.x,y:u.offset.y,z:u.offset.z,distance:u.distance},d={modelAlpha:1},f={perspToOrtho:1};e.emit("initAnimation.start",createEvent("initAnimation.start",{state:u,userAction:e.userAction})),e.modelAlphaMotion.set(d,o/3).catch(noop$1),e.perspToOrthoMotion.set(f,o).catch(noop$1),e.cameraMotion.set(c,o).catch(noop$1),e.locationMotion.set(l,o).then(function(){e.emit("initAnimation.end",createEvent("initAnimation.end",{state:u,userAction:e.userAction}))},function(m){var A=__assign(__assign(__assign({},e.currentPano),{mode:e.mode}),clonePose(e.camera.pose));e.emit("initAnimation.end",createEvent("initAnimation.end",{state:A,userAction:e.userAction}))}).then(function(){r()})})},t.prototype.requestMomentumMovement=function(){this.inMomentumMovement=null},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var r=this.panState,i=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:i,x:e.center.x,y:e.center.y},!(typeof r=="undefined"||r.pointerLength!==i)){var o={x:e.center.x-r.x,y:e.center.y-r.y},s=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),u=this.locationMotion.value.distance;u*=Math.tan(this.cameraMotion.value.fov/2*Math.PI/180);var c=this.renderer.getSize(new THREE__namespace.Vector2),l=2*o.x*u/c.y,d=2*o.y*u/c.y,f=new THREE__namespace.Vector3;f.setFromMatrixColumn(this.camera.matrix,0),f.multiplyScalar(-l),s.add(f),f.setFromMatrixColumn(this.camera.matrix,0),f.crossVectors(this.camera.up,f),f.multiplyScalar(d),s.add(f),this.modelInScreen==="boundingbox-center"&&s.clamp(this.models.bounding.min,this.models.bounding.max);var m=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:0,latitude:Math.PI/2,fov:this.cameraMotion.value.fov,offset:s,distance:this.locationMotion.value.distance});e.state=m,this.emit("gesture.pan",e),!e.defaultPrevented&&this.locationMotion.set({x:s.x,y:s.y,z:s.z},0).catch(noop$1)}},t.prototype.onPinchGesture=function(e){var r;if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement();var i=(r=this.pinchState)===null||r===void 0?void 0:r.fov;if(e.isFirst){this.pinchState={x:e.center.x,y:e.center.y,fov:this.cameraMotion.value.fov};return}if(e.isFinal&&delete this.pinchState,typeof i!="undefined"){var o=clamp$1(i/e.scale,this.minFov,this.maxFov);e.state.fov=o,this.emit("gesture.pinch",e),!e.defaultPrevented&&(this.cameraMotion.set({fov:o},0).catch(noop$1),e.type="gesture.pan",this.onPanGesture(e))}}},t.prototype.onMouseWheel=function(e){if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement();var r=clamp$1(this.cameraMotion.value.fov-e.center.delta,this.minFov,this.maxFov);e.state.fov=r,this.emit("gesture.mousewheel",e),!e.defaultPrevented&&this.cameraMotion.set({fov:r},0).catch(noop$1)}},t}(FloorplanController),PanoramaLikeController=function(n){__extends(t,n);function t(e){var r=this,i=t.parseArgs(e);return r=n.call(this,i)||this,r.mode="PanoramaLike",r.defaultLatitude=i.defaultLatitude,r.defaultFov=i.defaultFov,r.maxFov=i.maxFov,r.minFov=i.minFov,r.maxLatitude=i.maxLatitude,r.minLatitude=i.minLatitude,r.moveSpeed=i.moveSpeed,r.intersectMeshCreator=i.intersectMeshCreator,r.intersectMesh=r.intersectMeshCreator(),r.intersectMesh.name="intersect",r.intersectMesh.visible=!1,r.helper.add(r.intersectMesh),r}return t.parseArgs=function(e){var r,i,o,s,u,c,l,d;if(e instanceof t)return e;var f=n.parseArgs.call(this,e);return __assign(__assign({},f),{defaultLatitude:(r=e.defaultLatitude)!==null&&r!==void 0?r:0,defaultFov:(i=e.defaultFov)!==null&&i!==void 0?i:90,maxFov:(o=e.maxFov)!==null&&o!==void 0?o:120,minFov:(s=e.minFov)!==null&&s!==void 0?s:20,maxLatitude:(u=e.maxLatitude)!==null&&u!==void 0?u:+Math.PI/2,minLatitude:(c=e.minLatitude)!==null&&c!==void 0?c:-Math.PI/2,moveSpeed:(l=e.moveSpeed)!==null&&l!==void 0?l:3.4,intersectMeshCreator:(d=e.intersectMeshCreator)!==null&&d!==void 0?d:function(){return new IntersectMesh}})},t.initAnimationEndState=function(e){var r,i,o,s,u,c,l=this.parseArgs(e),d=l.works,f=e.initial,m=f.state,A=f.currentState,h=typeof m.panoIndex=="number"?{workCode:(o=(r=m.workCode)!==null&&r!==void 0?r:(i=l.works[0])===null||i===void 0?void 0:i.workCode)!==null&&o!==void 0?o:"",panoIndex:m.panoIndex}:{workCode:A.workCode,panoIndex:A.panoIndex},p=d.getResolvedObserver(h),b=(s=m.longitude)!==null&&s!==void 0?s:A.longitude,v=clamp$1((u=m.latitude)!==null&&u!==void 0?u:isFristPersonMode(A.mode)?A.latitude:l.defaultLatitude,l.minLatitude,l.maxLatitude),g=clamp$1((c=m.fov)!==null&&c!==void 0?c:isFristPersonMode(A.mode)?A.fov:l.defaultFov,l.minFov,l.maxFov),E=p?p.position.clone():new THREE__namespace.Vector3;return{workCode:h.workCode,panoIndex:h.panoIndex,mode:"PanoramaLike",longitude:b,latitude:v,fov:g,offset:E,distance:0}},t.prototype.destroy=function(){n.prototype.destroy.call(this),this.intersectMesh&&(this.helper.remove(this.intersectMesh),this.intersectMesh.dispose()),delete this.panState},t.prototype.isReady=function(){return this.panState||this.pinchState?!1:n.prototype.isReady.call(this)},t.prototype.calculateMovingDuration=function(e,r){switch(typeof e){case"function":return e(r,this.moveSpeed);case"number":return e;case"string":return Number(e);default:return clamp$1(r,2,5)/this.moveSpeed*1e3}},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.needsRender=!0},t.prototype.coordinatesForOffset=function(e){var r=this.cameraMotion.value.fov,i=this.camera.aspect,o=this.renderer.getSize(new THREE__namespace.Vector2);return{longitude:2*e.x/(o.x*this.scissor.width)*r/95*i,latitude:-2*e.y/(o.y*this.scissor.height)*r/95}},t.prototype.cameraBounce=function(){var e=this.cameraMotion.value,r=e.longitude,i=e.latitude,o=e.fov,s=[{progress:0,value:{longitude:r,latitude:i,fov:o}},{progress:.5,value:{longitude:r,latitude:i,fov:o*.98}},{progress:1,value:{longitude:r,latitude:i,fov:o}}];this.cameraMotion.setKeyframes(s,500).catch(noop$1)},t.prototype.requestMomentumMovement=function(e,r,i,o){var s=this;if(this.inMomentumMovement!==null){for(var u=__assign({},i),c={longitude:0,latitude:0},l=0;l<o;l++)u.longitude*=.996,u.latitude*=.996*.99,c.longitude+=u.longitude,c.latitude+=u.latitude;var d=formatRad(this.cameraMotion.value.longitude+c.longitude),f=clamp$1(this.cameraMotion.value.latitude+c.latitude,this.minLatitude,this.maxLatitude),m=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:d,latitude:f,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance}),A=!(u.longitude>1e-4||u.longitude<-1e-4||u.latitude>1e-4||u.latitude<-1e-4),h=createEvent("gesture.momentum",__assign(__assign({},e),{isFirst:r,isFinal:A,state:m}));if(this.inMomentumMovement.event=h,this.emit("gesture.momentum",h),e.defaultPrevented){this.inMomentumMovement=null;return}this.inMomentumMovement&&(this.cameraMotion.set({longitude:d,latitude:f},0).catch(noop$1),A?this.inMomentumMovement=null:AnimationFrameLoop.shared.add(function(p,b){s.requestMomentumMovement(e,!1,u,b|0)},!0,1))}},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var r=this.panState,i=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:i,x:e.center.x,y:e.center.y},!(typeof r=="undefined"||r.pointerLength!==i)){var o={x:e.center.x-r.x,y:e.center.y-r.y},s=this.coordinatesForOffset(o),u=formatRad(this.cameraMotion.value.longitude+s.longitude),c=clamp$1(this.cameraMotion.value.latitude+s.latitude,this.minLatitude,this.maxLatitude);this.camera.aspect<1&&Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(c=this.cameraMotion.value.latitude);var l=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:u,latitude:c,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance});if(e.state=l,this.emit("gesture.pan",e),!e.defaultPrevented){var d={longitude:l.longitude,latitude:l.latitude,fov:l.fov};if(this.cameraMotion.set(d,0).catch(noop$1),e.isFinal){var f=e.velocityX,m=e.velocityY*.6;Math.abs(m)>.5&&Math.abs(f)<.5&&(f=0),this.inMomentumMovement={uuid:createUuid()},this.requestMomentumMovement(e,!0,this.coordinatesForOffset({x:f,y:m}),0)}}}},t.prototype.onPinchGesture=function(e){var r;this.userAction=e.userAction,this.stopMomentumMovement();var i=(r=this.pinchState)===null||r===void 0?void 0:r.fov,o=e.scale;if(e.isFirst){this.pinchState={x:e.center.x,y:e.center.y,fov:this.cameraMotion.value.fov};return}if(e.isFinal&&delete this.pinchState,typeof i!="undefined"){var s=clamp$1(i/o,this.minFov,this.maxFov);e.state.fov=s,this.emit("gesture.pinch",e),!e.defaultPrevented&&(this.cameraMotion.set({fov:s},0).catch(noop$1),e.type="gesture.pan",this.onPanGesture(e))}},t.prototype.onMouseWheel=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var r=clamp$1(this.cameraMotion.value.fov-e.center.delta,this.minFov,this.maxFov);e.state.fov=r,this.emit("gesture.mousewheel",e),!e.defaultPrevented&&(this.cameraMotion.set({fov:r},0).catch(noop$1),this.onMouseMove(e))},t.prototype.onMouseMove=function(e){var r,i;if(this.intersectMesh.parent&&!this.panState&&(this.emit("gesture.mousemove",e),!e.defaultPrevented)){var o=e.center.raycaster;if(e.isFinal&&this.intersectMesh.parent){this.hideIntersectMesh();return}var s=this.models.intersectRaycaster(o)[0],u=createEvent("intersect.update",{raycaster:o,intersection:s!=null?s:null,object:this.intersectMesh});if(this.emit("intersect.update",u),u.defaultPrevented){this.hideIntersectMesh();return}if(s){var c=(i=(r=s.face)===null||r===void 0?void 0:r.normal)!==null&&i!==void 0?i:new THREE__namespace.Vector3().copy(o.ray.direction).multiplyScalar(-1),l=c.clone(),d=s.point.clone();this.intersectMesh.position.copy(d);var f=d.clone().add(l);if(this.intersectMesh.lookAt(f),Math.abs(c.y)>.99){var m=this.camera.position.clone().sub(d);this.intersectMesh.rotation.z=-Math.atan2(m.z,m.x)}this.intersectMesh.visible=!0,this.needsRender=!0}else this.hideIntersectMesh()}},t.prototype.onDblTapGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var r=this.cameraMotion.value.fov,i=2,o=this.works.getResolvedObserver(this.currentPano);if(o){var s=o.images.tiles;s&&s.length&&(i=Math.max.apply(Math,s.map(function(l){return l.level})))}var u=Math.max(40-i*5,this.minFov,5),c=u-r<r-this.defaultFov?u:this.defaultFov;e.state.fov=c,this.emit("gesture.dbltap",e),!e.defaultPrevented&&(this.cameraMotion.set({fov:c},360).catch(noop$1),this.hideIntersectMesh())},t}(BaseController),blankVideo="data:video/mp4;base64,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",result;function canplayVideo(){return result||(result=new Promise(function(n){var t,e=document.createElement("video");e.muted=!0,e.src=blankVideo,e.addEventListener("timeupdate",function r(){e.removeEventListener("timeupdate",r,!1),clearTimeout(t);var i=document.createElement("canvas");i.width=i.height=1;var o=i.getContext("2d");if(!o){n(!1);return}o.drawImage(e,0,0,1,1);var s=o.getImageData(0,0,1,1).data;s[3]>10?n(!0):n(!1)},!1),e.addEventListener("canplay",function r(){e.removeEventListener("canplay",r,!1),e.play()},!1),t=window.setTimeout(function(){return n(!1)},1e3)}))}var FRAGMENT=`
|
|
1369
|
+
`,camera$1=new THREE__namespace.OrthographicCamera(-1,1,1,-1,0,1),geometry$4=new THREE__namespace.BufferGeometry;geometry$4.setAttribute("position",new THREE__namespace.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),geometry$4.setAttribute("uv",new THREE__namespace.Float32BufferAttribute([0,2,0,0,2,0],2));var noneMaterial=new THREE__namespace.MeshBasicMaterial,mesh$3=new THREE__namespace.Mesh(geometry$4,noneMaterial),scene$1=new THREE__namespace.Scene;scene$1.add(mesh$3);var DepthCopyPass=function(){function n(t){this.renderer=t,this.material=new THREE__namespace.ShaderMaterial({vertexShader:VERTEX,fragmentShader:FRAGMENT$1,uniforms:Object.assign({depthBuffer:new THREE__namespace.Uniform(null)}),blending:THREE__namespace.NoBlending,depthWrite:!0,depthTest:!0}),this.renderer.getContext()&&this.renderer.getContext()instanceof WebGLRenderingContext&&(this.material.extensions.fragDepth=!0)}return n.prototype.render=function(t,e){var r=this.renderer.getRenderTarget();this.material.uniforms.depthBuffer.value=t,mesh$3.material=this.material,this.renderer.setRenderTarget(e||null),this.renderer.render(scene$1,camera$1),this.renderer.setRenderTarget(r),mesh$3.material=noneMaterial},n.prototype.dispose=function(){this.material.dispose()},n}(),sharedVector2$1=new THREE__namespace.Vector2,BaseController=function(n){__extends(t,n);function t(e){var r,i,o,s,u,c,l=n.call(this)||this,d=t.parseArgs(e);l.mode="",l.pending=new Set,l.userAction=d.initial.userAction,l.destroyed=!1,l.ident=d.ident,l.scene=d.scene,l.xrCustomObjectsScene=d.xrCustomObjectsScene,l.helper=d.helper,l.boundingMesh=d.boundingMesh,l.camera=d.camera,l.renderer=d.renderer,l.scissor=d.scissor,l.element=d.element,l.models=d.models,l.enableWheel=d.enableWheel,l.enableIOSEDR=(r=d.enableIOSEDR)!==null&&r!==void 0?r:!1,l.enableEDL=(i=d.enableEDL)!==null&&i!==void 0?i:!0,l.enableHQ=(o=d.enableHQ)!==null&&o!==void 0?o:!0,l.works=d.works,l.imageOptions=d.imageOptions,l.videoTexture=d.videoTexture,l.extraElements=d.extraElements,l.initial=d.initial,l.currentPano=typeof l.initial.state.panoIndex=="number"?{workCode:(c=(s=l.initial.state.workCode)!==null&&s!==void 0?s:(u=d.works[0])===null||u===void 0?void 0:u.workCode)!==null&&c!==void 0?c:"",panoIndex:l.initial.state.panoIndex}:{workCode:l.initial.currentState.workCode,panoIndex:l.initial.currentState.panoIndex},l.needsRender=!0,l.modelSceneNeedsRender=!0,l.cameraMotion=new Motion({longitude:{value:l.camera.pose.longitude,circle:[0,Math.PI*2]},latitude:l.camera.pose.latitude,fov:l.camera.pose.fov}),l.inMomentumMovement=null,l.eventUnbinds=[d.element].concat(d.extraElements||[]).map(function(m){return l.bindEvents(m)}),l.pending.add("init-animation"),l.initAnimationReady=new Promise(function(m){AnimationFrameLoop.shared.add(function(){l.initAnimation().then(function(){l.pending.delete("init-animation"),m()})},!0)}),l.initAnimationIsReady=!1,l.initAnimationReady.then(function(){return l.initAnimationIsReady=!0}),l.modelScene=d.modelScene;var f=new THREE__namespace.Vector2;return l.renderer.getDrawingBufferSize(f),l.modelRenderTarget=d.modelRenderTarget,l.copyPass=new CopyPass(l.renderer),l.depthCopyPass=new DepthCopyPass(l.renderer),l.screenBuffers=[],l.lastPostProcessingType=null,l}return t.parseArgs=function(e){return e instanceof t?e:__assign({},e)},t.initAnimationEndState=function(e){var r,i,o,s,u,c,l,d,f=this.parseArgs(e),m=f.initial,A=m.state,h=m.currentState,p=typeof A.panoIndex=="number"?{workCode:(o=(r=A.workCode)!==null&&r!==void 0?r:(i=f.works[0])===null||i===void 0?void 0:i.workCode)!==null&&o!==void 0?o:"",panoIndex:A.panoIndex}:{workCode:h.workCode,panoIndex:h.panoIndex};return __assign(__assign({},p),{mode:"",longitude:(s=A.longitude)!==null&&s!==void 0?s:h.longitude,latitude:(u=A.latitude)!==null&&u!==void 0?u:h.latitude,fov:(c=A.fov)!==null&&c!==void 0?c:h.fov,offset:(l=A.offset)!==null&&l!==void 0?l:h.offset,distance:(d=A.distance)!==null&&d!==void 0?d:h.distance})},t.prototype.destroy=function(){var e;this.stopMomentumMovement(),this.destroyed=!0,this.off(),this.cameraMotion.dispose();for(var r=0,i=this.eventUnbinds;r<i.length;r++){var o=i[r];o()}this.copyEffect&&(this.copyEffect.dispose(),delete this.copyEffect),delete this.panState,(e=this.pressState)===null||e===void 0||e.stop(),delete this.pressState},t.prototype.isReady=function(){return this.inMomentumMovement===null&&this.pending.size===0&&this.cameraMotion.ended===!0},t.prototype.bindExtraElement=function(e){for(var r=0,i=this.eventUnbinds;r<i.length;r++){var o=i[r];if(o.element===e)return}this.eventUnbinds.push(this.bindEvents(e))},t.prototype.unbindExtraElement=function(e){for(var r=[],i=0,o=this.eventUnbinds;i<o.length;i++){var s=o[i];s.element===e?s():r.push(s)}this.eventUnbinds=r},t.prototype.updateRenderSize=function(e){this.needsRender=!0,this.modelSceneNeedsRender=!0,this.modelRenderTarget.setSize(e.x,e.y),this.screenBuffers.forEach(function(r){r.setSize(e.x,e.y)})},t.prototype.updateModel=function(e){this.needsRender=!0,this.modelSceneNeedsRender=!0},t.prototype.updateWork=function(e,r,i,o){return this.works=e,this.userAction=o,!1},t.prototype.updateTime=function(e,r){if(!this.destroyed){var i={};this.cameraMotion.ended&&(this.cameraMotion.update(e),i.longitude=this.cameraMotion.value.longitude,i.latitude=this.cameraMotion.value.latitude,i.fov=this.cameraMotion.value.fov),isEmptyObject(i)&&this.setCamera(i)}},t.prototype.render=function(e,r){var i=this.renderer.getRenderTarget();this.updateScreenBuffer(r),e&&(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){this.destroyed},t.prototype.updateCamera=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();var s={};return e.longitude!==void 0&&(s.longitude=e.longitude),e.latitude!==void 0&&(s.latitude=e.latitude),e.fov!==void 0&&(s.fov=e.fov),o.cameraMotion.set(s,r).catch(noop$1)})},t.prototype.updateCameraWithKeyframes=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();for(var s=[],u=0,c=e;u<c.length;u++){var l=c[u];s.push({key:l.key,progress:l.progress,value:{longitude:l.value.longitude,latitude:l.value.latitude,fov:l.value.fov}})}return o.cameraMotion.setKeyframes(s,r)})},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(now())[1];return __assign(__assign({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance})},t.prototype.initAnimation=function(){var e=this.initial;e.state,e.currentState,e.duration;var r=e.userAction,i=t.initAnimationEndState(this);return this.userAction=r,this.emit("initAnimation.start",createEvent("initAnimation.start",{state:i,userAction:this.userAction})),this.emit("initAnimation.end",createEvent("initAnimation.end",{state:i,userAction:this.userAction})),Promise.resolve()},t.prototype.setCamera=function(e){var r,i,o,s,u;e===void 0&&(e={});var c=(r=e.longitude)!==null&&r!==void 0?r:this.camera.pose.longitude,l=(i=e.latitude)!==null&&i!==void 0?i:this.camera.pose.latitude,d=(o=e.fov)!==null&&o!==void 0?o:this.camera.pose.fov,f=(s=e.distance)!==null&&s!==void 0?s:this.camera.pose.distance,m=(u=e.offset)!==null&&u!==void 0?u:this.camera.pose.offset,A=notSimilarValue(c,this.camera.pose.longitude,Math.PI*2)||notSimilarValue(l,this.camera.pose.latitude),h=notSimilarValue(d,this.camera.pose.fov),p=notSimilarValue(f,this.camera.pose.distance),b=notSimilarVector3(m,this.camera.pose.offset);(h||A||b||p)&&(this.camera.setFromPose({longitude:c,latitude:l,fov:d,distance:f,offset:m}),this.emit("camera.update",createEvent("camera.update",{userAction:this.userAction,state:__assign(__assign({},this.currentPano),{mode:this.mode,longitude:c,latitude:l,fov:d,offset:m,distance:f})})),this.needsRender=!0,this.modelSceneNeedsRender=!0)},t.prototype.stopMomentumMovement=function(){if(this.inMomentumMovement&&this.inMomentumMovement.event&&!this.inMomentumMovement.event.defaultPrevented&&!this.inMomentumMovement.event.isFinal){var e=createEvent("gesture.momentum",__assign(__assign({},this.inMomentumMovement.event),{isFirst:!1,isFinal:!0}));this.emit("gesture.momentum",e)}this.inMomentumMovement=null},t.prototype.onPanGesture=function(e){this.stopMomentumMovement(),this.emit("gesture.pan",e)},t.prototype.onTapGesture=function(e){this.stopMomentumMovement(),this.emit("gesture.tap",e)},t.prototype.onDblTapGesture=function(e){this.stopMomentumMovement(),this.emit("gesture.dbltap",e),!e.defaultPrevented&&(e.type="gesture.tap",this.onTapGesture(e))},t.prototype.onPressGesture=function(e){this.stopMomentumMovement(),this.emit("gesture.press",e)},t.prototype.onPinchGesture=function(e){this.stopMomentumMovement(),this.emit("gesture.pinch",e)},t.prototype.onMouseWheel=function(e){this.stopMomentumMovement(),this.emit("gesture.mousewheel",e)},t.prototype.onMouseMove=function(e){this.stopMomentumMovement(),this.emit("gesture.mousemove",e)},t.prototype.relativeClientPosition=function(e){return calculateThreeMouse(e,this.element,this.scissor)},t.prototype.bindEvents=function(e){var r=this,i=function(x){var w=calculateThreeMouse(x,r.element,r.scissor);return!(Math.abs(w.x)>1||Math.abs(w.y)>1)},o=new Hammer.Manager(e),s=function(x){var w=x.session;return w.firstInput||null},u=new Hammer.Pan({threshold:10,pointers:0}),c=new Hammer.Tap({interval:410}),l=new Hammer.Pinch({threshold:0,pointers:2});o.add([u,c,l]),o.on("panstart pan",function(x){var w=s(o);if(!(w&&!i(w.center))){var H=createEvent("gesture.pan",{target:x.target,pointerType:x.pointerType,srcEvent:x.srcEvent,pointers:x.pointers.map(function(C){var L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;return k.params.Points={threshold:.1},k.setFromCamera(L,r.camera),{x:C.x,y:C.y,delta:0,buttons:0,coords:L,raycaster:k}}),isFirst:x.isFirst,isFinal:x.isFinal,scale:x.scale,center:function(C){var L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;return k.params.Points={threshold:.1},k.setFromCamera(L,r.camera),{x:C.x,y:C.y,delta:0,buttons:0,coords:L,raycaster:k}}(x.center),velocityX:x.velocityX,velocityY:x.velocityY,overallVelocityX:x.overallVelocityX,overallVelocityY:x.overallVelocityY,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});r.onPanGesture(H),E()}}),o.on("tap",function(x){if(!(x.pointerType==="mouse"&&x.srcEvent.button!==0)){var w=s(o);if(!(w&&!i(w.center))){var H=createEvent("gesture.tap",{target:x.target,pointerType:x.pointerType,srcEvent:x.srcEvent,pointers:x.pointers.map(function(C){var L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;return k.params.Points={threshold:.1},k.setFromCamera(L,r.camera),{x:C.x,y:C.y,delta:0,buttons:0,coords:L,raycaster:k}}),isFirst:!0,isFinal:!0,scale:x.scale,center:function(C){var L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;return k.params.Points={threshold:.1},k.setFromCamera(L,r.camera),{x:C.x,y:C.y,delta:0,buttons:0,coords:L,raycaster:k}}(x.center),velocityX:x.velocityX,velocityY:x.velocityY,overallVelocityX:x.overallVelocityX,overallVelocityY:x.overallVelocityY,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});r.onTapGesture(H),E()}}}),o.on("pinchstart pinch pinchend",function(x){var w=s(o);if(!(w&&!i(w.center))){var H=createEvent("gesture.pinch",{target:x.target,pointerType:x.pointerType,srcEvent:x.srcEvent,pointers:x.pointers.map(function(C){var L,k=r.relativeClientPosition(C),O=new THREE__namespace.Raycaster;return O.params.Points={threshold:.1},O.setFromCamera(k,r.camera),{x:C.x,y:C.y,delta:(L=C.delta)!==null&&L!==void 0?L:0,buttons:0,coords:k,raycaster:O}}),isFirst:x.type==="pinchstart",isFinal:x.type==="pinchend",scale:x.scale,center:function(C){var L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;return k.params.Points={threshold:.1},k.setFromCamera(L,r.camera),{x:C.x,y:C.y,delta:0,buttons:0,coords:L,raycaster:k}}(x.center),velocityX:x.velocityX,velocityY:x.velocityY,overallVelocityX:x.overallVelocityX,overallVelocityY:x.overallVelocityY,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});r.onPinchGesture(H),E()}}),o.on("dbltap",function(x){if(!(x.pointerType==="mouse"&&x.srcEvent.button!==0)){var w=s(o);if(!(w&&!i(w.center))){var H=createEvent("gesture.dbltap",{target:x.target,pointerType:x.pointerType,srcEvent:x.srcEvent,pointers:x.pointers.map(function(C){var L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;return k.params.Points={threshold:.1},k.setFromCamera(L,r.camera),{x:C.x,y:C.y,delta:0,buttons:0,coords:L,raycaster:k}}),isFirst:!0,isFinal:!0,scale:x.scale,center:function(C){var L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;return k.params.Points={threshold:.1},k.setFromCamera(L,r.camera),{x:C.x,y:C.y,delta:0,buttons:0,coords:L,raycaster:k}}(x.center),velocityX:x.velocityX,velocityY:x.velocityY,overallVelocityX:x.overallVelocityX,overallVelocityY:x.overallVelocityY,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});r.onDblTapGesture(H),E()}}});var d=null,f=null,m=function(x,w,H){var C={x:H.clientX,y:H.clientY},L=r.relativeClientPosition(C),k=new THREE__namespace.Raycaster;k.params.Points={threshold:.1},k.setFromCamera(L,r.camera);var O=__assign(__assign({},C),{coords:L,raycaster:k,buttons:H.buttons,delta:0}),G=x==="pinchend"?w:w-H.deltaY/280,Q=createEvent("gesture.pinch",{target:H.target,pointerType:"mouse",srcEvent:H,pointers:[__assign({},O)],isFirst:x==="pinchstart",isFinal:x==="pinchend",scale:clamp$1(G,.1,10),center:__assign({},O),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});return Q},A=function(x){var w,H={x:x.clientX,y:x.clientY};if(i(H)){if(x.preventDefault(),x.ctrlKey){var C=(w=d==null?void 0:d.prevEvent.scale)!==null&&w!==void 0?w:1,L=m(d?"pinch":"pinchstart",C,x);d===null?d={firstEvent:L,prevEvent:L}:d.prevEvent=L,r.onPinchGesture(L),f!==null&&window.clearTimeout(f),f=window.setTimeout(function(){var K;f=null;var z=(K=d==null?void 0:d.prevEvent.scale)!==null&&K!==void 0?K:1,q=m("pinchend",z,x);d=null,r.onPinchGesture(q)},200)}else{var k=(Math.abs(x.deltaY)>Math.abs(x.deltaX)?x.deltaY:x.deltaX)/-60,O=r.mouseWheelState!==void 0,G={x:x.clientX,y:x.clientY},Q=r.relativeClientPosition(G),D=new THREE__namespace.Raycaster;D.params.Points={threshold:.1},D.setFromCamera(Q,r.camera);var U=__assign(__assign({},G),{coords:Q,raycaster:D,buttons:x.buttons,delta:k}),L=createEvent("gesture.mousewheel",{target:x.target,pointerType:"mouse",srcEvent:x,pointers:[__assign({},U)],isFirst:O,isFinal:!1,scale:0,center:__assign({},U),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});r.onMouseWheel(L),r.mouseWheelState&&clearTimeout(r.mouseWheelState.timer),r.mouseWheelState={timer:setTimeout(function(){delete r.mouseWheelState;var z=createEvent("gesture.mousewheel",{target:x.target,pointerType:"mouse",srcEvent:x,pointers:[__assign(__assign({},U),{delta:0})],isFirst:!1,isFinal:!0,scale:0,center:__assign(__assign({},U),{delta:0}),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});r.onMouseWheel(z)},100)}}E()}},h=function(x){if(!isMobile){if(!i({x:x.clientX,y:x.clientY})){p();return}var w=!1;r.mouseMoveState||(w=!0);var H={x:x.clientX,y:x.clientY},C=r.relativeClientPosition(H),L=new THREE__namespace.Raycaster;L.params.Points={threshold:.1},L.setFromCamera(C,r.camera);var k=__assign(__assign({},H),{coords:C,raycaster:L,buttons:x.buttons,delta:0}),O=createEvent("gesture.mousemove",{target:x.target,pointerType:"mouse",srcEvent:x,pointers:[__assign({},k)],isFirst:w,isFinal:!1,scale:0,center:__assign({},k),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});r.mouseMoveState={timeStamp:now(),event:O},r.onMouseMove(O),r.pressState&&Math.abs(x.clientX-r.pressState.event.center.y)>10&&Math.abs(x.clientY-r.pressState.event.center.y)>10&&E()}},p=function(){if(r.mouseMoveState){var x=createEvent(r.mouseMoveState.event.type,__assign(__assign({},r.mouseMoveState.event),{isFinal:!0}));delete r.mouseMoveState,r.onMouseMove(x)}E()},b=function(x){if(!i(x.center)){E();return}var w=!1;r.pressState||(w=!0,r.pressState={event:x,timeStamp:now(),stop:noop$1});var H=now()-r.pressState.timeStamp,C=createEvent(r.pressState.event.type,__assign(__assign({},r.pressState.event),{isFirst:w,isFinal:!1,center:__assign(__assign({},r.pressState.event.center),{delta:H}),pointers:r.pressState.event.pointers.map(function(L){return __assign(__assign({},L),{delta:H})})}));r.onPressGesture(C),r.pressState&&(r.pressState.stop=AnimationFrameLoop.shared.add(function(L){b(x)},!0,1))},v=function(x){if(E(),!(x.touches.length>1||x.changedTouches.length<=0)){var w={x:x.changedTouches[0].clientX,y:x.changedTouches[0].clientY},H=r.relativeClientPosition(w),C=new THREE__namespace.Raycaster;C.params.Points={threshold:.1},C.setFromCamera(H,r.camera);var L=__assign(__assign({},w),{coords:H,raycaster:C,buttons:0,delta:0}),k=createEvent("gesture.press",{target:x.target,pointerType:"touch",srcEvent:x,pointers:[__assign({},L)],isFirst:!1,isFinal:!1,scale:0,center:L,velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});b(k)}},g=function(x){E();var w={x:x.clientX,y:x.clientY},H=r.relativeClientPosition(w),C=new THREE__namespace.Raycaster;C.params.Points={threshold:.1},C.setFromCamera(H,r.camera);var L=__assign(__assign({},w),{coords:H,raycaster:C,buttons:x.buttons,delta:0}),k=createEvent("gesture.press",{target:x.target,pointerType:"mouse",srcEvent:x,pointers:[__assign({},L)],isFirst:!1,isFinal:!1,scale:0,center:L,velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});b(k)},E=function(){var x;if(r.pressState){var w=now()-r.pressState.timeStamp,H=createEvent(r.pressState.event.type,__assign(__assign({},r.pressState.event),{center:__assign(__assign({},r.pressState.event.center),{delta:w}),isFirst:!1,isFinal:!0,pointers:r.pressState.event.pointers.map(function(C){return __assign(__assign({},C),{delta:w})})}));r.onPressGesture(H),(x=r.pressState)===null||x===void 0||x.stop(),delete r.pressState}},y=null,T=function(x){var w,H=!1,C=!1;switch(x.type){case"gesturestart":H=!0;break;case"gestureend":C=!0;break}var L={x:x.clientX,y:x.clientY},k=r.relativeClientPosition(L),O=new THREE__namespace.Raycaster;O.params.Points={threshold:.1},O.setFromCamera(k,r.camera);var G=__assign(__assign({},L),{coords:k,raycaster:O,buttons:0,delta:0}),Q=createEvent("gesture.pinch",{target:x.target,pointerType:"mouse",srcEvent:x,pointers:[__assign({},G)],isFirst:H,isFinal:C,scale:(w=x.scale)!==null&&w!==void 0?w:1,center:__assign({},G),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:__assign(__assign({mode:r.mode},r.currentPano),clonePose(r.camera.pose))});return Q},_=function(x){if(x.preventDefault(),!isMobile){var w=T(x);y={firstEvent:w};var H=y.firstEvent;H&&!i(H.center)||r.onPinchGesture(w)}},R=function(x){if(x.preventDefault(),!isMobile&&y){var w=T(x),H=y.firstEvent;H&&!i(H.center)||r.onPinchGesture(w)}},S=function(x){if(x.preventDefault(),!isMobile&&y){var w=T(x),H=y.firstEvent;y=null,!(H&&!i(H.center))&&r.onPinchGesture(w)}},B=function(x){if(x&&typeof x.preventDefault=="function"&&x.currentTarget===e&&x.preventDefault(),typeof getSelection=="function"){var w=getSelection();w&&w.focusNode&&(w.removeAllRanges&&w.removeAllRanges(),w.empty&&w.empty())}};this.enableWheel&&e.addEventListener("wheel",A,{passive:!1}),e.addEventListener("mousemove",h,!1),e.addEventListener("mouseout",p,!1),e.addEventListener("touchstart",v,{passive:!0}),e.addEventListener("touchend",E,!1),e.addEventListener("touchcancel",E,!1),e.addEventListener("mousedown",g,!1),e.addEventListener("mouseup",E,!1),e.addEventListener("gesturestart",_,{passive:!1}),e.addEventListener("gesturechange",R,{passive:!1}),e.addEventListener("gestureend",S,{passive:!1}),e.addEventListener("touchstart",B,{passive:!1}),e.addEventListener("contextmenu",B,!1);var I=function(){o.destroy(),e.removeEventListener("wheel",A,!1),e.removeEventListener("mousemove",h,!1),e.removeEventListener("mouseout",p,!1),e.removeEventListener("touchstart",v,!1),e.removeEventListener("touchend",E,!1),e.removeEventListener("touchcancel",E,!1),e.removeEventListener("mousedown",g,!1),e.removeEventListener("mouseup",E,!1),e.removeEventListener("gesturestart",_,!1),e.removeEventListener("gesturechange",R,!1),e.removeEventListener("gestureend",S,!1),e.removeEventListener("touchstart",B,!1),e.removeEventListener("contextmenu",B,!1)};return Object.assign(I,{element:e})},t.prototype.preloadPano=function(e,r){var i=this;r===void 0&&(r=noop$1);var o=this.works.getResolvedObserver(e);if(!o)return Promise.resolve();var s=["right","left","up","down","front","back"];return Promise.all(s.map(function(u){var c=__assign({key:"pano.".concat(panoStringify(e),".").concat(u)},pick(i.imageOptions,["size","format","quality","mappings"])),l=o.images[u],d=applyImageURLOptions(l,i.imageOptions.transform,c);return getFetcher(o.work).preload(d)})).then(function(){return r(e),e})},t.prototype.updateScreenBuffer=function(e){var r,i,o,s,u,c;if(this.lastPostProcessingType!==e)if(this.lastPostProcessingType=e,e==="luminance"){if(this.screenBuffers.length===0){var l=this.renderer.getDrawingBufferSize(sharedVector2$1);this.screenBuffers=[new THREE__namespace.WebGLRenderTarget(l.x,l.y,{generateMipmaps:!1,encoding:(i=(r=this.renderer)===null||r===void 0?void 0:r.outputEncoding)!==null&&i!==void 0?i:THREE__namespace.sRGBEncoding}),this.modelRenderTarget]}}else if(e==="edl"){if(this.screenBuffers.length===0){var l=this.renderer.getDrawingBufferSize(sharedVector2$1);this.screenBuffers=[new THREE__namespace.WebGLRenderTarget(l.x,l.y,{generateMipmaps:!1,encoding:(s=(o=this.renderer)===null||o===void 0?void 0:o.outputEncoding)!==null&&s!==void 0?s:THREE__namespace.sRGBEncoding,minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter,format:THREE__namespace.RGBAFormat,type:THREE__namespace.FloatType}),this.modelRenderTarget]}this.models.setMaterial({useEDL:!0})}else if(e==="hq"){if(this.screenBuffers.length===0){var l=this.renderer.getDrawingBufferSize(sharedVector2$1),d=new THREE__namespace.WebGLRenderTarget(l.x,l.y,{generateMipmaps:!1,minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter,format:THREE__namespace.RGBAFormat,type:THREE__namespace.FloatType,depthTexture:new THREE__namespace.DepthTexture(l.x,l.y,THREE__namespace.UnsignedIntType)});d.depthTexture.format=THREE__namespace.DepthFormat,d.depthBuffer=!0;var f=new THREE__namespace.WebGLRenderTarget(l.x,l.y,{generateMipmaps:!1,encoding:(c=(u=this.renderer)===null||u===void 0?void 0:u.outputEncoding)!==null&&c!==void 0?c:THREE__namespace.sRGBEncoding,minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter,format:THREE__namespace.RGBAFormat,type:THREE__namespace.FloatType,depthTexture:d.depthTexture});this.screenBuffers=[d,f,this.modelRenderTarget]}this.models.setMaterial({useHQDepth:!0,useHQWeight:!1,pointShape:"CIRCLE"})}else this.screenBuffers&&(this.screenBuffers.forEach(function(m){m.dispose()}),this.screenBuffers=[]),this.models.setMaterial({useEDL:!1,useHQDepth:!1,useHQWeight:!1})},t}(Subscribe),FloorplanController=function(n){__extends(t,n);function t(e){var r=this,i,o=t.parseArgs(e);return r=n.call(this,o)||this,r.mode="Floorplan",r.defaultLongitude=o.defaultLongitude,r.defaultLatitude=o.defaultLatitude,r.defaultFov=o.defaultFov,r.maxFov=o.maxFov,r.minFov=o.minFov,r.maxLatitude=o.maxLatitude,r.minLatitude=o.minLatitude,r.modelInScreen=o.modelInScreen,r.locationMotion=new Motion({x:r.camera.pose.offset.x,y:r.camera.pose.offset.y,z:r.camera.pose.offset.z,distance:r.camera.pose.distance}),r.modelAlphaMotion=new Motion({modelAlpha:(i=r.models.getMaterial().modelAlpha)!==null&&i!==void 0?i:0}),r.perspToOrthoMotion=new Motion({perspToOrtho:r.camera.perspToOrtho.x}),r.currentTapId=null,r.intersectMeshCreator=o.intersectMeshCreator,r.intersectMesh=r.intersectMeshCreator(),r.intersectMesh.name="intersect",r.intersectMesh.visible=!1,r.helper.add(r.intersectMesh),r}return t.distanceFromModel=function(e,r,i){var o=e.bounding,s=Math.pow(Math.pow(o.max.x-o.min.x+1,2)+Math.pow(o.max.y-o.min.y+1,2)+Math.pow(o.max.z-o.min.z+1,2),1/2),u=s/2/Math.tan(Math.PI*r/360);return i<1&&(u=u/i),isNaN(u)?s:u},t.parseArgs=function(e){var r,i,o,s,u,c,l,d,f;if(e instanceof t)return e;var m=n.parseArgs.call(this,e);return __assign(__assign({},m),{defaultLongitude:(r=e.defaultLongitude)!==null&&r!==void 0?r:Math.PI/4,defaultLatitude:(i=e.defaultLatitude)!==null&&i!==void 0?i:Math.PI/4,defaultFov:(o=e.defaultFov)!==null&&o!==void 0?o:80,maxFov:(s=e.maxFov)!==null&&s!==void 0?s:120,minFov:(u=e.minFov)!==null&&u!==void 0?u:20,maxLatitude:(c=e.maxLatitude)!==null&&c!==void 0?c:+Math.PI/2,minLatitude:(l=e.minLatitude)!==null&&l!==void 0?l:-Math.PI/2,modelInScreen:(d=e.modelInScreen)!==null&&d!==void 0?d:"boundingbox-center",intersectMeshCreator:(f=e.intersectMeshCreator)!==null&&f!==void 0?f:function(){return new IntersectMesh}})},t.initAnimationEndState=function(e){var r,i,o,s,u,c,l,d=this.parseArgs(e),f=e.initial,m=f.state,A=f.currentState,h=typeof m.panoIndex=="number"?{workCode:(o=(r=m.workCode)!==null&&r!==void 0?r:(i=d.works[0])===null||i===void 0?void 0:i.workCode)!==null&&o!==void 0?o:"",panoIndex:m.panoIndex}:{workCode:A.workCode,panoIndex:A.panoIndex},p=__assign(__assign({},h),{mode:"Floorplan",longitude:(s=m.longitude)!==null&&s!==void 0?s:isThirdPersonMode(A.mode)?A.longitude:d.defaultLongitude,latitude:clamp$1((u=m.latitude)!==null&&u!==void 0?u:A.mode==="Floorplan"?A.latitude:d.defaultLatitude,d.minLatitude,d.maxLatitude),fov:(c=m.fov)!==null&&c!==void 0?c:d.defaultFov,offset:m.offset?m.offset.clone():e.models.bounding.getCenter(new THREE__namespace.Vector3),distance:(l=m.distance)!==null&&l!==void 0?l:t.distanceFromModel(d.models,d.defaultFov,d.camera.aspect)});return p},t.prototype.destroy=function(){n.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.panState,this.intersectMesh.dispose(),this.helper.remove(this.intersectMesh)},t.prototype.isReady=function(){return this.locationMotion.ended===!1?!1:n.prototype.isReady.call(this)},t.prototype.updateWork=function(e,r,i,o){var s;return this.works=e,this.updateCamera(r,(s=i.duration)!==null&&s!==void 0?s:0,o),!0},t.prototype.updateModel=function(e){n.prototype.updateModel.call(this,e);var r=e.bounding.getCenter(new THREE__namespace.Vector3),i=t.distanceFromModel(e,this.defaultFov,this.camera.aspect);this.locationMotion.set({x:r.x,y:r.y,z:r.z,distance:i},0).catch(noop$1)},t.prototype.updateCamera=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();var s={},u={};return e.distance!==void 0&&(s.distance=e.distance),e.offset!==void 0&&(s.x=e.offset.x,s.y=e.offset.y,s.z=e.offset.z),e.longitude!==void 0&&(u.longitude=e.longitude),e.latitude!==void 0&&(u.latitude=e.latitude),e.fov!==void 0&&(u.fov=e.fov),o.locationMotion.set(s,r).catch(noop$1),o.cameraMotion.set(u,r).catch(noop$1)})},t.prototype.updateCameraWithKeyframes=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();for(var s=[],u=[],c=0,l=e;c<l.length;c++){var d=l[c];s.push({key:d.key,progress:d.progress,value:{distance:d.value.distance,x:d.value.offset.x,y:d.value.offset.x,z:d.value.offset.x}}),u.push({key:d.key,progress:d.progress,value:{longitude:d.value.longitude,latitude:d.value.latitude,fov:d.value.fov}})}return o.locationMotion.setKeyframes(s,r).catch(noop$1),o.cameraMotion.setKeyframes(e,r)})},t.prototype.updateTime=function(e,r){if(!this.destroyed){var i={},o={};this.modelAlphaMotion.ended||(this.modelAlphaMotion.update(e),i.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended||(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended||(this.locationMotion.update(e),o.distance=this.locationMotion.value.distance,o.offset=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),this.cameraMotion.ended||(this.cameraMotion.update(e),o.longitude=this.cameraMotion.value.longitude,o.latitude=this.cameraMotion.value.latitude,o.fov=this.cameraMotion.value.fov),isEmptyObject(i)||this.models.setMaterial(i),isEmptyObject(o)||this.setCamera(o)}},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(now())[1],r=this.locationMotion.getKeyFrameSegment(now())[1];return __assign(__assign({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:new THREE__namespace.Vector3(r.value.x,r.value.y,r.value.z),distance:r.value.distance})},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise(function(r){var i=e.initial;i.state,i.currentState;var o=i.duration,s=i.userAction;e.userAction=s;var u=t.initAnimationEndState(e),c=pick(u,["longitude","latitude","fov"]),l={x:u.offset.x,y:u.offset.y,z:u.offset.z,distance:u.distance},d={modelAlpha:1},f={perspToOrtho:0};e.emit("initAnimation.start",createEvent("initAnimation.start",{state:u,userAction:e.userAction})),e.modelAlphaMotion.set(d,o/3).catch(noop$1),e.perspToOrthoMotion.set(f,o).catch(noop$1),e.cameraMotion.set(c,o).catch(noop$1),e.locationMotion.set(l,o).then(function(){e.emit("initAnimation.end",createEvent("initAnimation.end",{state:u,userAction:e.userAction}))},function(m){var A=__assign(__assign(__assign({},e.currentPano),{mode:e.mode}),clonePose(e.camera.pose));e.emit("initAnimation.end",createEvent("initAnimation.end",{state:A,userAction:e.userAction}))}).then(function(){r()})})},t.prototype.updateRenderSize=function(e){this.needsRender=!0,this.modelSceneNeedsRender=!0,this.screenBuffers.forEach(function(r){r.setSize(e.x,e.y)})},t.prototype.getForwardObserverOrNot=function(e){var r=this,i=this.models.intersectRaycaster(e)[0];if(!i)return null;var o=this.works.resolvedObservers.filter(function(l){for(var d,f=0,m=r.models;f<m.length;f++){var A=m[f];if(A.visible&&((d=A.work)===null||d===void 0?void 0:d.workCode)===l.work.workCode)return!0}return!1}),s=arrayMin(o,function(l){return l.standingPosition.distanceTo(i.point)},!0),u=s[0],c=s[1];return u&&c<10?u:null},t.prototype.coordinatesForOffset=function(e){var r=this.renderer.getSize(new THREE__namespace.Vector2);return{longitude:-2*e.x/(r.x*this.scissor.width),latitude:2*e.y/(r.y*this.scissor.height)}},t.prototype.requestMomentumMovement=function(e,r,i,o){var s=this;if(this.inMomentumMovement!==null){for(var u=__assign({},i),c={longitude:0,latitude:0},l=0;l<o;l++)u.longitude*=.996,u.latitude*=.996*.998,c.longitude+=u.longitude,c.latitude+=u.latitude;var d=formatRad(this.cameraMotion.value.longitude+c.longitude),f=clamp$1(this.cameraMotion.value.latitude+c.latitude,this.minLatitude,this.maxLatitude),m=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:d,latitude:f,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance}),A=!(u.longitude>1e-4||u.longitude<-1e-4||u.latitude>1e-4||u.latitude<-1e-4),h=createEvent("gesture.momentum",__assign(__assign({},e),{isFirst:r,isFinal:A,state:m}));if(this.inMomentumMovement.event=h,this.emit("gesture.momentum",h),e.defaultPrevented){this.inMomentumMovement=null;return}this.inMomentumMovement&&(this.cameraMotion.set({longitude:d,latitude:f},0).catch(noop$1),A?this.inMomentumMovement=null:AnimationFrameLoop.shared.add(function(p,b){s.requestMomentumMovement(e,!1,u,b|0)},!0,1))}},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var r=this.panState,i=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:i,x:e.center.x,y:e.center.y},!(typeof r=="undefined"||r.pointerLength!==i)){var o={x:e.center.x-r.x,y:e.center.y-r.y},s=this.relativeClientPosition(e.center),u=this.camera.pose.latitude<Math.PI/6||s.y<0?1:-1;o.x*=u;var c=this.coordinatesForOffset(o),l=formatRad(this.cameraMotion.value.longitude+c.longitude),d=clamp$1(this.cameraMotion.value.latitude+c.latitude,this.minLatitude,this.maxLatitude);this.camera.aspect<1&&Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(d=this.cameraMotion.value.latitude);var f=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:l,latitude:d,fov:this.camera.pose.fov,offset:this.camera.pose.offset,distance:this.camera.pose.distance});if(e.state=f,this.emit("gesture.pan",e),!e.defaultPrevented&&(this.cameraMotion.set({longitude:f.longitude,latitude:f.latitude},0).catch(noop$1),e.isFinal)){var m=e.velocityX*u,A=e.velocityY;this.inMomentumMovement={uuid:createUuid()},this.requestMomentumMovement(e,!0,this.coordinatesForOffset({x:m,y:A}),0)}}},t.prototype.onPinchGesture=function(e){var r;if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement();var i=(r=this.pinchState)===null||r===void 0?void 0:r.fov;if(e.isFirst){this.pinchState={x:e.center.x,y:e.center.y,fov:this.cameraMotion.value.fov};return}if(e.isFinal&&(delete this.panState,delete this.pinchState),typeof i!="undefined"){var o=clamp$1(i/e.scale,this.minFov,this.maxFov);e.state.fov=o,this.emit("gesture.pinch",e),!e.defaultPrevented&&(this.cameraMotion.set({fov:o},0).catch(noop$1),this.onPanGesture(e))}}},t.prototype.onMouseMove=function(e){var r,i;if(this.intersectMesh.parent&&!this.panState){if(this.emit("gesture.mousemove",e),e.defaultPrevented){this.hideIntersectMesh();return}var o=e.center.raycaster;if(e.isFinal&&this.intersectMesh.parent&&this.intersectMesh.visible===!0){this.hideIntersectMesh();return}var s=this.models.intersectRaycaster(o)[0],u=createEvent("intersect.update",{raycaster:o,intersection:s!=null?s:null,object:this.intersectMesh});if(this.emit("intersect.update",u),u.defaultPrevented){this.hideIntersectMesh();return}if(s){var c=(i=(r=s.face)===null||r===void 0?void 0:r.normal)!==null&&i!==void 0?i:new THREE__namespace.Vector3().copy(o.ray.direction).multiplyScalar(-1),l=c.clone(),d=s.point.clone();this.intersectMesh.position.copy(d);var f=o.ray.origin.distanceTo(d),m=2*Math.tan(.5*this.camera.fov/180*Math.PI),A=Math.max(f*m/10,1);this.intersectMesh.scale.set(A,A,A);var h=d.clone().add(l);if(this.intersectMesh.lookAt(h),Math.abs(c.y)>.99){var p=this.camera.position.clone().sub(d);this.intersectMesh.rotation.z=-Math.atan2(p.z,p.x)}this.intersectMesh.visible=!0,this.needsRender=!0}else this.hideIntersectMesh()}},t.prototype.onMouseWheel=function(e){if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement();var r=this,i=r.minFov,o=r.maxFov,s=clamp$1(this.camera.fov-e.center.delta,i,o);e.state.fov=s,this.emit("gesture.mousewheel",e),!e.defaultPrevented&&this.cameraMotion.set({fov:s},0).catch(noop$1)}},t.prototype.onTapGesture=function(e){var r=this;this.userAction=!0,this.stopMomentumMovement();var i=e.center.raycaster,o=this.getForwardObserverOrNot(i);if(!o)this.emit("gesture.tap",e);else{var s={longitude:this.camera.pose.longitude,latitude:0},u=__assign(__assign({},e.state),{mode:"Panorama",workCode:o.pano.workCode,panoIndex:o.pano.panoIndex,longitude:s.longitude,latitude:s.latitude,offset:o?o.position.clone():new THREE__namespace.Vector3,distance:0});if(e.state=u,this.emit("gesture.tap",e),!e.defaultPrevented&&(this.emit("pano.select",createEvent("pano.select",{prevPano:this.currentPano,state:u,userAction:e.userAction,options:s,progress:0,error:null})),o&&o.active)){var c=this.currentTapId=createUuid();this.preloadPano(o.pano).then(function(l){r.currentTapId===c&&r.emit("pano.request",createEvent("pano.request",{userAction:!0,prevPano:r.currentPano,progress:0,state:u,options:s,error:null}))})}}},t.prototype.onDblTapGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var r=this.cameraMotion.value.fov,i=this.minFov-r<r-this.defaultFov?this.minFov:this.defaultFov;e.state.fov=i,this.emit("gesture.dbltap",e),!e.defaultPrevented&&(this.cameraMotion.set({fov:i},360).catch(noop$1),this.hideIntersectMesh())},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.needsRender=!0},t}(BaseController),TopviewController=function(n){__extends(t,n);function t(e){var r=this,i=t.parseArgs(e);return r=n.call(this,i)||this,r.mode="Topview",r}return t.parseArgs=function(e){if(e instanceof t)return e;var r=__assign(__assign({},e),{defaultLongitude:0,defaultLatitude: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 __assign(__assign({},i),{longitude:r.defaultLongitude,latitude:r.defaultLatitude,mode:"Topview"})},t.prototype.updateModel=function(e){this.needsRender=!0,this.modelSceneNeedsRender=!0;var r=this.models.bounding.getCenter(new THREE__namespace.Vector3);this.locationMotion.set({x:r.x,y:r.y,z:r.z,distance:FloorplanController.distanceFromModel(this.models,this.defaultFov,this.camera.aspect)},0).catch(noop$1)},t.prototype.updateCamera=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();var s={},u={};return e.distance!==void 0&&(s.distance=e.distance),e.offset!==void 0&&(s.x=e.offset.x,s.y=e.offset.y,s.z=e.offset.z),e.longitude!==void 0&&(u.longitude=e.longitude),e.latitude!==void 0&&(u.latitude=e.latitude),e.fov!==void 0&&(u.fov=e.fov),o.locationMotion.set(s,r).catch(noop$1),o.cameraMotion.set(u,r).catch(noop$1)})},t.prototype.updateCameraWithKeyframes=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();for(var s=[],u=[],c=0,l=e;c<l.length;c++){var d=l[c];s.push({key:d.key,progress:d.progress,value:{distance:d.value.distance,x:d.value.offset.x,y:d.value.offset.y,z:d.value.offset.z}}),u.push({key:d.key,progress:d.progress,value:{longitude:d.value.longitude,latitude:d.value.latitude,fov:d.value.fov}})}return o.locationMotion.setKeyframes(s,r).catch(noop$1),o.cameraMotion.setKeyframes(e,r)})},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise(function(r){var i=e.initial;i.state,i.currentState;var o=i.duration,s=i.userAction;e.userAction=s;var u=t.initAnimationEndState(e),c={longitude:u.longitude,latitude:u.latitude,fov:u.fov},l={x:u.offset.x,y:u.offset.y,z:u.offset.z,distance:u.distance},d={modelAlpha:1},f={perspToOrtho:1};e.emit("initAnimation.start",createEvent("initAnimation.start",{state:u,userAction:e.userAction})),e.modelAlphaMotion.set(d,o/3).catch(noop$1),e.perspToOrthoMotion.set(f,o).catch(noop$1),e.cameraMotion.set(c,o).catch(noop$1),e.locationMotion.set(l,o).then(function(){e.emit("initAnimation.end",createEvent("initAnimation.end",{state:u,userAction:e.userAction}))},function(m){var A=__assign(__assign(__assign({},e.currentPano),{mode:e.mode}),clonePose(e.camera.pose));e.emit("initAnimation.end",createEvent("initAnimation.end",{state:A,userAction:e.userAction}))}).then(function(){r()})})},t.prototype.requestMomentumMovement=function(){this.inMomentumMovement=null},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var r=this.panState,i=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:i,x:e.center.x,y:e.center.y},!(typeof r=="undefined"||r.pointerLength!==i)){var o={x:e.center.x-r.x,y:e.center.y-r.y},s=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),u=this.locationMotion.value.distance;u*=Math.tan(this.cameraMotion.value.fov/2*Math.PI/180);var c=this.renderer.getSize(new THREE__namespace.Vector2),l=2*o.x*u/c.y,d=2*o.y*u/c.y,f=new THREE__namespace.Vector3;f.setFromMatrixColumn(this.camera.matrix,0),f.multiplyScalar(-l),s.add(f),f.setFromMatrixColumn(this.camera.matrix,0),f.crossVectors(this.camera.up,f),f.multiplyScalar(d),s.add(f),this.modelInScreen==="boundingbox-center"&&s.clamp(this.models.bounding.min,this.models.bounding.max);var m=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:0,latitude:Math.PI/2,fov:this.cameraMotion.value.fov,offset:s,distance:this.locationMotion.value.distance});e.state=m,this.emit("gesture.pan",e),!e.defaultPrevented&&this.locationMotion.set({x:s.x,y:s.y,z:s.z},0).catch(noop$1)}},t.prototype.onPinchGesture=function(e){var r;if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement();var i=(r=this.pinchState)===null||r===void 0?void 0:r.fov;if(e.isFirst){this.pinchState={x:e.center.x,y:e.center.y,fov:this.cameraMotion.value.fov};return}if(e.isFinal&&delete this.pinchState,typeof i!="undefined"){var o=clamp$1(i/e.scale,this.minFov,this.maxFov);e.state.fov=o,this.emit("gesture.pinch",e),!e.defaultPrevented&&(this.cameraMotion.set({fov:o},0).catch(noop$1),e.type="gesture.pan",this.onPanGesture(e))}}},t.prototype.onMouseWheel=function(e){if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement();var r=clamp$1(this.cameraMotion.value.fov-e.center.delta,this.minFov,this.maxFov);e.state.fov=r,this.emit("gesture.mousewheel",e),!e.defaultPrevented&&this.cameraMotion.set({fov:r},0).catch(noop$1)}},t}(FloorplanController),PanoramaLikeController=function(n){__extends(t,n);function t(e){var r=this,i=t.parseArgs(e);return r=n.call(this,i)||this,r.mode="PanoramaLike",r.defaultLatitude=i.defaultLatitude,r.defaultFov=i.defaultFov,r.maxFov=i.maxFov,r.minFov=i.minFov,r.maxLatitude=i.maxLatitude,r.minLatitude=i.minLatitude,r.moveSpeed=i.moveSpeed,r.intersectMeshCreator=i.intersectMeshCreator,r.intersectMesh=r.intersectMeshCreator(),r.intersectMesh.name="intersect",r.intersectMesh.visible=!1,r.helper.add(r.intersectMesh),r}return t.parseArgs=function(e){var r,i,o,s,u,c,l,d;if(e instanceof t)return e;var f=n.parseArgs.call(this,e);return __assign(__assign({},f),{defaultLatitude:(r=e.defaultLatitude)!==null&&r!==void 0?r:0,defaultFov:(i=e.defaultFov)!==null&&i!==void 0?i:90,maxFov:(o=e.maxFov)!==null&&o!==void 0?o:120,minFov:(s=e.minFov)!==null&&s!==void 0?s:20,maxLatitude:(u=e.maxLatitude)!==null&&u!==void 0?u:+Math.PI/2,minLatitude:(c=e.minLatitude)!==null&&c!==void 0?c:-Math.PI/2,moveSpeed:(l=e.moveSpeed)!==null&&l!==void 0?l:3.4,intersectMeshCreator:(d=e.intersectMeshCreator)!==null&&d!==void 0?d:function(){return new IntersectMesh}})},t.initAnimationEndState=function(e){var r,i,o,s,u,c,l=this.parseArgs(e),d=l.works,f=e.initial,m=f.state,A=f.currentState,h=typeof m.panoIndex=="number"?{workCode:(o=(r=m.workCode)!==null&&r!==void 0?r:(i=l.works[0])===null||i===void 0?void 0:i.workCode)!==null&&o!==void 0?o:"",panoIndex:m.panoIndex}:{workCode:A.workCode,panoIndex:A.panoIndex},p=d.getResolvedObserver(h),b=(s=m.longitude)!==null&&s!==void 0?s:A.longitude,v=clamp$1((u=m.latitude)!==null&&u!==void 0?u:isFristPersonMode(A.mode)?A.latitude:l.defaultLatitude,l.minLatitude,l.maxLatitude),g=clamp$1((c=m.fov)!==null&&c!==void 0?c:isFristPersonMode(A.mode)?A.fov:l.defaultFov,l.minFov,l.maxFov),E=p?p.position.clone():new THREE__namespace.Vector3;return{workCode:h.workCode,panoIndex:h.panoIndex,mode:"PanoramaLike",longitude:b,latitude:v,fov:g,offset:E,distance:0}},t.prototype.destroy=function(){n.prototype.destroy.call(this),this.intersectMesh&&(this.helper.remove(this.intersectMesh),this.intersectMesh.dispose()),delete this.panState},t.prototype.isReady=function(){return this.panState||this.pinchState?!1:n.prototype.isReady.call(this)},t.prototype.calculateMovingDuration=function(e,r){switch(typeof e){case"function":return e(r,this.moveSpeed);case"number":return e;case"string":return Number(e);default:return clamp$1(r,2,5)/this.moveSpeed*1e3}},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.needsRender=!0},t.prototype.coordinatesForOffset=function(e){var r=this.cameraMotion.value.fov,i=this.camera.aspect,o=this.renderer.getSize(new THREE__namespace.Vector2);return{longitude:2*e.x/(o.x*this.scissor.width)*r/95*i,latitude:-2*e.y/(o.y*this.scissor.height)*r/95}},t.prototype.cameraBounce=function(){var e=this.cameraMotion.value,r=e.longitude,i=e.latitude,o=e.fov,s=[{progress:0,value:{longitude:r,latitude:i,fov:o}},{progress:.5,value:{longitude:r,latitude:i,fov:o*.98}},{progress:1,value:{longitude:r,latitude:i,fov:o}}];this.cameraMotion.setKeyframes(s,500).catch(noop$1)},t.prototype.requestMomentumMovement=function(e,r,i,o){var s=this;if(this.inMomentumMovement!==null){for(var u=__assign({},i),c={longitude:0,latitude:0},l=0;l<o;l++)u.longitude*=.996,u.latitude*=.996*.99,c.longitude+=u.longitude,c.latitude+=u.latitude;var d=formatRad(this.cameraMotion.value.longitude+c.longitude),f=clamp$1(this.cameraMotion.value.latitude+c.latitude,this.minLatitude,this.maxLatitude),m=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:d,latitude:f,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance}),A=!(u.longitude>1e-4||u.longitude<-1e-4||u.latitude>1e-4||u.latitude<-1e-4),h=createEvent("gesture.momentum",__assign(__assign({},e),{isFirst:r,isFinal:A,state:m}));if(this.inMomentumMovement.event=h,this.emit("gesture.momentum",h),e.defaultPrevented){this.inMomentumMovement=null;return}this.inMomentumMovement&&(this.cameraMotion.set({longitude:d,latitude:f},0).catch(noop$1),A?this.inMomentumMovement=null:AnimationFrameLoop.shared.add(function(p,b){s.requestMomentumMovement(e,!1,u,b|0)},!0,1))}},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var r=this.panState,i=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:i,x:e.center.x,y:e.center.y},!(typeof r=="undefined"||r.pointerLength!==i)){var o={x:e.center.x-r.x,y:e.center.y-r.y},s=this.coordinatesForOffset(o),u=formatRad(this.cameraMotion.value.longitude+s.longitude),c=clamp$1(this.cameraMotion.value.latitude+s.latitude,this.minLatitude,this.maxLatitude);this.camera.aspect<1&&Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(c=this.cameraMotion.value.latitude);var l=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:u,latitude:c,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance});if(e.state=l,this.emit("gesture.pan",e),!e.defaultPrevented){var d={longitude:l.longitude,latitude:l.latitude,fov:l.fov};if(this.cameraMotion.set(d,0).catch(noop$1),e.isFinal){var f=e.velocityX,m=e.velocityY*.6;Math.abs(m)>.5&&Math.abs(f)<.5&&(f=0),this.inMomentumMovement={uuid:createUuid()},this.requestMomentumMovement(e,!0,this.coordinatesForOffset({x:f,y:m}),0)}}}},t.prototype.onPinchGesture=function(e){var r;this.userAction=e.userAction,this.stopMomentumMovement();var i=(r=this.pinchState)===null||r===void 0?void 0:r.fov,o=e.scale;if(e.isFirst){this.pinchState={x:e.center.x,y:e.center.y,fov:this.cameraMotion.value.fov};return}if(e.isFinal&&delete this.pinchState,typeof i!="undefined"){var s=clamp$1(i/o,this.minFov,this.maxFov);e.state.fov=s,this.emit("gesture.pinch",e),!e.defaultPrevented&&(this.cameraMotion.set({fov:s},0).catch(noop$1),e.type="gesture.pan",this.onPanGesture(e))}},t.prototype.onMouseWheel=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var r=clamp$1(this.cameraMotion.value.fov-e.center.delta,this.minFov,this.maxFov);e.state.fov=r,this.emit("gesture.mousewheel",e),!e.defaultPrevented&&(this.cameraMotion.set({fov:r},0).catch(noop$1),this.onMouseMove(e))},t.prototype.onMouseMove=function(e){var r,i;if(this.intersectMesh.parent&&!this.panState&&(this.emit("gesture.mousemove",e),!e.defaultPrevented)){var o=e.center.raycaster;if(e.isFinal&&this.intersectMesh.parent){this.hideIntersectMesh();return}var s=this.models.intersectRaycaster(o)[0],u=createEvent("intersect.update",{raycaster:o,intersection:s!=null?s:null,object:this.intersectMesh});if(this.emit("intersect.update",u),u.defaultPrevented){this.hideIntersectMesh();return}if(s){var c=(i=(r=s.face)===null||r===void 0?void 0:r.normal)!==null&&i!==void 0?i:new THREE__namespace.Vector3().copy(o.ray.direction).multiplyScalar(-1),l=c.clone(),d=s.point.clone();this.intersectMesh.position.copy(d);var f=d.clone().add(l);if(this.intersectMesh.lookAt(f),Math.abs(c.y)>.99){var m=this.camera.position.clone().sub(d);this.intersectMesh.rotation.z=-Math.atan2(m.z,m.x)}this.intersectMesh.visible=!0,this.needsRender=!0}else this.hideIntersectMesh()}},t.prototype.onDblTapGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var r=this.cameraMotion.value.fov,i=2,o=this.works.getResolvedObserver(this.currentPano);if(o){var s=o.images.tiles;s&&s.length&&(i=Math.max.apply(Math,s.map(function(l){return l.level})))}var u=Math.max(40-i*5,this.minFov,5),c=u-r<r-this.defaultFov?u:this.defaultFov;e.state.fov=c,this.emit("gesture.dbltap",e),!e.defaultPrevented&&(this.cameraMotion.set({fov:c},360).catch(noop$1),this.hideIntersectMesh())},t}(BaseController),blankVideo="data:video/mp4;base64,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",result;function canplayVideo(){return result||(result=new Promise(function(n){var t,e=document.createElement("video");e.muted=!0,e.src=blankVideo,e.addEventListener("timeupdate",function r(){e.removeEventListener("timeupdate",r,!1),clearTimeout(t);var i=document.createElement("canvas");i.width=i.height=1;var o=i.getContext("2d");if(!o){n(!1);return}o.drawImage(e,0,0,1,1);var s=o.getImageData(0,0,1,1).data;s[3]>10?n(!0):n(!1)},!1),e.addEventListener("canplay",function r(){e.removeEventListener("canplay",r,!1),e.play()},!1),t=window.setTimeout(function(){return n(!1)},1e3)}))}var FRAGMENT=`
|
|
1370
1370
|
#include <common>
|
|
1371
1371
|
uniform sampler2D inputBuffer;
|
|
1372
1372
|
uniform float scale;
|
|
@@ -1859,7 +1859,7 @@ void main() {
|
|
|
1859
1859
|
`,e},t.prototype.updateShaderSource=function(){var e=this.getDefines()+edlVertexShader,r=this.getDefines()+edlFragmentShader;this.setValues({vertexShader:e,fragmentShader:r}),this.needsUpdate=!0},__decorate([uniform$1("screenWidth"),__metadata("design:type",Number)],t.prototype,"screenWidth",void 0),__decorate([uniform$1("screenHeight"),__metadata("design:type",Number)],t.prototype,"screenHeight",void 0),__decorate([uniform$1("edlStrength"),__metadata("design:type",Number)],t.prototype,"edlStrength",void 0),__decorate([uniform$1("uNear"),__metadata("design:type",Number)],t.prototype,"uNear",void 0),__decorate([uniform$1("uFar"),__metadata("design:type",Number)],t.prototype,"uFar",void 0),__decorate([uniform$1("radius"),__metadata("design:type",Number)],t.prototype,"radius",void 0),__decorate([uniform$1("neighbours",!0),__metadata("design:type",Float32Array)],t.prototype,"neighbours",void 0),__decorate([uniform$1("depthMap"),__metadata("design:type",THREE__namespace.Texture)],t.prototype,"depthMap",void 0),__decorate([uniform$1("uEDLColor"),__metadata("design:type",THREE__namespace.Texture)],t.prototype,"uEDLColor",void 0),__decorate([uniform$1("uEDLDepth"),__metadata("design:type",THREE__namespace.Texture)],t.prototype,"uEDLDepth",void 0),__decorate([uniform$1("uProj"),__metadata("design:type",Array)],t.prototype,"uProj",void 0),t}(THREE__namespace.RawShaderMaterial);function makeUniform$1(n,t){return{type:n,value:t}}function uniform$1(n,t){return t===void 0&&(t=!1),function(e,r){Object.defineProperty(e,r,{get:function(){return this.getUniform(n)},set:function(i){i!==this.getUniform(n)&&(this.setUniform(n,i),t&&this.updateShaderSource())}})}}var passCamera$1=new THREE__namespace.OrthographicCamera(-1,1,1,-1,0,1),geometry$2=new THREE__namespace.BufferGeometry;geometry$2.setAttribute("position",new THREE__namespace.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),geometry$2.setAttribute("uv",new THREE__namespace.Float32BufferAttribute([0,2,0,0,2,0],2));var mesh$2=new THREE__namespace.Mesh(geometry$2),edlEffectScene=new THREE__namespace.Scene;edlEffectScene.add(mesh$2);var EDLEffect=function(n){__extends(t,n);function t(e,r,i,o){var s=n.call(this,e,r,i,o)||this;return s.sharedV2=new THREE__namespace.Vector2,s.renderer=e,s.material=new EDLMaterial,mesh$2.material=s.material,s.material.needsUpdate=!0,s}return t.prototype.render=function(e){this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0,this.renderer.setRenderTarget(e[0]),this.renderer.render(this.scene,this.camera);var r=this.camera,i=this.material.uniforms,o=this.renderer.getSize(this.sharedV2);i.screenWidth.value=o.x,i.screenHeight.value=o.y;var s=r.projectionMatrix,u=new Float32Array(16);u.set(s.elements);for(var c=new Float32Array(this.material.neighbourCount*2),l=0;l<this.material.neighbourCount;l++)c[2*l+0]=Math.cos(2*l*Math.PI/this.material.neighbourCount),c[2*l+1]=Math.sin(2*l*Math.PI/this.material.neighbourCount);i.neighbours.value=c,i.uNear.value=r.near,i.uFar.value=r.far,i.uEDLColor.value=e[0].texture,i.uProj.value=u,i.edlStrength.value=.25,i.radius.value=1,i.opacity.value=1,this.renderer.setRenderTarget(e[1]),this.renderer.render(edlEffectScene,passCamera$1)},t.prototype.dispose=function(){this.copyPass.dispose()},t}(Effect);const fragment=function n(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,i=126,o=0,s="";return t[o].split(s).map(function(u){return u.charCodeAt(o)>i?u:String.fromCharCode((u.charCodeAt(o)+r)%i)}).join(s)}(`}rpvv|{-zrqvz}-sy|nH}rpvv|{-zrqvz}-v{H{vs|z-nz}yr?Q-drvtuZn}H{vs|z-nz}yr?Q-Qr}uZn}Hn\bv{t-rp?-bH|vq-znv{56-
|
|
1860
1860
|
sy|n-qr}u-J-r\x07r?Q5Qr}uZn}9-b6;Hvs5qr}u-KJ->;=6
|
|
1861
1861
|
qvpnqH\frpA-p|y|-J-r\x07r?Q5drvtuZn}9-b6H-p|y|-J-p|y|-<-p|y|;HtylSntP|y|-J-rpA5p|y|;\x07\b 9->;=6H-\f`),vertex=function n(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,i=126,o=0,s="";return t[o].split(s).map(function(u){return u.charCodeAt(o)>i?u:String.fromCharCode((u.charCodeAt(o)+r)%i)}).join(s)}(`}rpvv|{-zrqvz}-sy|nH}rpvv|{-zrqvz}-v{Hnvor-rp@-}|vv|{Hnvor-rp?-H{vs|z-znA-}|wrpv|{Znv\x07H{vs|z-znA-z|qrycvrZnv\x07Hn\bv{t-rp?-bH|vq-znv{56-
|
|
1862
|
-
b-J-Htyl]|vv|{-J-}|wrpv|{Znv\x07-7-z|qrycvrZnv\x07-7-rpA5}|vv|{9>;=6H\f`);var HQMaterial=function(n){__extends(t,n);function t(e){var r=n.call(this,{vertexShader:vertex,fragmentShader:fragment})||this;return r.uniforms={uDepthMap:makeUniform("t",null),uWeightMap:makeUniform("t",null)},r.depthTest=!0,r.depthWrite=!0,r.opacity=1,r}return t.prototype.getUniform=function(e){return this.uniforms===void 0?void 0:this.uniforms[e].value},t.prototype.setUniform=function(e,r){if(this.uniforms!==void 0){var i=this.uniforms[e];i.value=r}},__decorate([uniform("uDepthMap"),__metadata("design:type",Number)],t.prototype,"uDepthMap",void 0),__decorate([uniform("uWeightMap"),__metadata("design:type",Number)],t.prototype,"uWeightMap",void 0),t}(THREE__namespace.RawShaderMaterial);function makeUniform(n,t){return{type:n,value:t}}function uniform(n,t){return t===void 0&&(t=!1),function(e,r){Object.defineProperty(e,r,{get:function(){return this.getUniform(n)},set:function(i){i!==this.getUniform(n)&&(this.setUniform(n,i),t&&this.updateShaderSource())}})}}var passCamera=new THREE__namespace.OrthographicCamera(-1,1,1,-1,0,1),geometry$1=new THREE__namespace.BufferGeometry;geometry$1.setAttribute("position",new THREE__namespace.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),geometry$1.setAttribute("uv",new THREE__namespace.Float32BufferAttribute([0,2,0,0,2,0],2));var mesh$1=new THREE__namespace.Mesh(geometry$1),hqScene=new THREE__namespace.Scene;hqScene.add(mesh$1);var HQEffect=function(n){__extends(t,n);function t(e,r,i,o){var s=n.call(this,e,r,i,o)||this;return s.sharedV2=new THREE__namespace.Vector2,s.renderer=e,s.material=new HQMaterial,s.camera=i,mesh$1.material=s.material,s}return t.prototype.render=function(e){this.models.setMaterial({useHQDepth:!0,useHQWeight:!1}),this.models.update(this.renderer,this.camera,"Mapview"),this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0,this.renderer.setRenderTarget(e[0]),this.renderer.render(this.scene,this.camera),this.models.setMaterial({useHQWeight:!0,useHQDepth:!1}),this.models.update(this.renderer,this.camera,"Mapview"),this.renderer.autoClearDepth=!1,this.renderer.autoClearColor=!0,this.renderer.setClearColor(new THREE__namespace.Color(0,0,0)),this.renderer.setClearAlpha(0),this.renderer.setRenderTarget(e[1]),this.renderer.render(this.scene,this.camera),this.material.uniforms.uWeightMap.value=e[1].texture,this.material.uniforms.uDepthMap.value=e[0].depthTexture,this.renderer.autoClearDepth=!0,this.renderer.autoClearColor=!0,this.renderer.setClearColor(new THREE__namespace.Color(0,0,0)),this.renderer.setClearAlpha(1),this.renderer.setRenderTarget(e[2]),this.renderer.render(hqScene,passCamera)},t.prototype.dispose=function(){this.copyPass.dispose()},t}(Effect),RAYCASTER_NEAR=.5,minDistance=.5,PANGESTURE_FORWARD_ANGLE=Math.PI/7,MapviewController=function(n){__extends(t,n);function t(e){var r=this,i,o=t.parseArgs(e);return r=n.call(this,o)||this,r.mode="Mapview",r.defaultLongitude=o.defaultLongitude,r.defaultLatitude=o.defaultLatitude,r.defaultDistance=o.defaultDistance,r.maxLatitude=o.maxLatitude,r.minLatitude=o.minLatitude,r.cameraType=o.cameraType,r.modelInScreen=o.modelInScreen,r.locationMotion=new Motion({x:r.camera.pose.offset.x,y:r.camera.pose.offset.y,z:r.camera.pose.offset.z,distance:r.camera.pose.distance}),r.modelAlphaMotion=new Motion({modelAlpha:(i=r.models.getMaterial().modelAlpha)!==null&&i!==void 0?i:0}),r.perspToOrthoMotion=new Motion({perspToOrtho:r.camera.perspToOrtho.x}),r.intersectMeshCreator=o.intersectMeshCreator,r.intersectMesh=r.intersectMeshCreator(),r.intersectMesh.name="intersect",r.intersectMesh.visible=!1,r.currentTapId=null,r.helper.add(r.intersectMesh),r.edlTarget=new THREE__namespace.WebGLRenderTarget(1024,1024,{generateMipmaps:!1,minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter,format:THREE__namespace.RGBAFormat,type:THREE__namespace.FloatType,depthTexture:new THREE__namespace.DepthTexture(1024,1024,THREE__namespace.UnsignedIntType)}),r.edlEffect=new EDLEffect(r.renderer,r.modelScene,r.camera,r.models),r.hqEffect=new HQEffect(r.renderer,r.modelScene,r.camera,r.models),r}return t.parseArgs=function(e){var r,i,o,s,u,c,l,d;if(e instanceof t)return e;var f=n.parseArgs.call(this,e);return __assign(__assign({},f),{defaultLongitude:(r=e.defaultLongitude)!==null&&r!==void 0?r:Math.PI/4,defaultLatitude:(i=e.defaultLatitude)!==null&&i!==void 0?i:Math.PI/4,defaultDistance:(o=e.defaultDistance)!==null&&o!==void 0?o:150,maxLatitude:(s=e.maxLatitude)!==null&&s!==void 0?s:+Math.PI/2,minLatitude:(u=e.minLatitude)!==null&&u!==void 0?u:0,cameraType:(c=e.cameraType)!==null&&c!==void 0?c:"auto",modelInScreen:(l=e.modelInScreen)!==null&&l!==void 0?l:"boundingbox-center",intersectMeshCreator:(d=e.intersectMeshCreator)!==null&&d!==void 0?d:function(){return new IntersectMesh}})},t.distanceFromModel=function(e,r,i){var o=e.bounding,s=Math.pow(Math.pow(o.max.x-o.min.x+1,2)+Math.pow(o.max.y-o.min.y+1,2)+Math.pow(o.max.z-o.min.z+1,2),1/2),u=s/2/Math.tan(Math.PI*r/360);return i<1&&(u=u/i),isNaN(u)?s:u},t.initAnimationEndState=function(e){var r,i,o,s,u,c,l,d=this.parseArgs(e),f=d.works,m=d.models,A=e.initial,h=A.state,p=A.currentState,b=typeof h.panoIndex=="number"?{workCode:(o=(r=h.workCode)!==null&&r!==void 0?r:(i=d.works[0])===null||i===void 0?void 0:i.workCode)!==null&&o!==void 0?o:"",panoIndex:h.panoIndex}:{workCode:p.workCode,panoIndex:p.panoIndex},v=f.getResolvedObserver(b),g=(s=h.fov)!==null&&s!==void 0?s:60,E=clamp$1((u=h.latitude)!==null&&u!==void 0?u:isThirdPersonMode(p.mode)?p.latitude:d.defaultLatitude,d.minLatitude,d.maxLatitude),y=t.distanceFromModel(d.models,g,d.camera.aspect),T=new THREE__namespace.Vector3,_=(c=h.distance)!==null&&c!==void 0?c:Math.min(d.defaultDistance,y),R=(l=h.longitude)!==null&&l!==void 0?l:isThirdPersonMode(p.mode)?p.longitude:d.defaultLongitude;return h.offset?T.copy(h.offset):d.defaultDistance<y&&v?(T.copy(v.position),h.longitude===void 0&&(R=p.longitude)):T.copy(m.bounding.getCenter(T)),m.bounding.containsPoint(T)||m.bounding.getCenter(T),__assign(__assign({},b),{mode:"Mapview",longitude:R,latitude:E,fov:g,offset:T,distance:_})},t.prototype.destroy=function(){n.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.panState,this.intersectMesh.dispose(),this.helper.remove(this.intersectMesh)},t.prototype.isReady=function(){return this.locationMotion.ended===!1?!1:n.prototype.isReady.call(this)},t.prototype.updateWork=function(e,r,i,o){this.userAction=o,this.works=e;var s=t.initAnimationEndState(__assign(__assign({},this),{initial:{currentState:__assign(__assign({},this.currentPano),this.camera.pose),duration:i.duration,effect:i.effect,state:r,userAction:o}}));this.currentPano={workCode:s.workCode,panoIndex:s.panoIndex};var u={longitude:s.longitude,latitude:s.latitude,fov:s.fov},c={x:s.offset.x,y:s.offset.y,z:s.offset.z,distance:s.distance,orthoDistance:s.distance};return this.locationMotion.set(c,i.duration).catch(noop$1),this.cameraMotion.set(u,i.duration).catch(noop$1),!0},t.prototype.updateModel=function(e){n.prototype.updateModel.call(this,e)},t.prototype.updateCamera=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();var s={},u={};return e.distance!==void 0&&(s.distance=e.distance),e.offset!==void 0&&(s.x=e.offset.x,s.y=e.offset.y,s.z=e.offset.z),e.longitude!==void 0&&(u.longitude=e.longitude),e.latitude!==void 0&&(u.latitude=e.latitude),e.fov!==void 0&&(u.fov=e.fov),o.locationMotion.set(s,r).catch(noop$1),o.cameraMotion.set(u,r).catch(noop$1)})},t.prototype.updateCameraWithKeyframes=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();for(var s=[],u=[],c=0,l=e;c<l.length;c++){var d=l[c];s.push({key:d.key,progress:d.progress,value:{distance:d.value.distance,x:d.value.offset.x,y:d.value.offset.x,z:d.value.offset.x}}),u.push({key:d.key,progress:d.progress,value:{longitude:d.value.longitude,latitude:d.value.latitude,fov:d.value.fov}})}return o.locationMotion.setKeyframes(s,r).catch(noop$1),o.cameraMotion.setKeyframes(e,r)})},t.prototype.updateTime=function(e,r){if(!this.destroyed){var i={},o={};this.locationMotion.ended||(this.locationMotion.update(e),o.distance=this.locationMotion.value.distance,o.offset=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),this.cameraMotion.ended||(this.cameraMotion.update(e),o.longitude=this.cameraMotion.value.longitude,o.latitude=this.cameraMotion.value.latitude,o.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended||(this.modelAlphaMotion.update(e),i.modelAlpha=this.modelAlphaMotion.value.modelAlpha);var s=0;this.cameraType==="auto"?s=Math.PI/2-this.cameraMotion.value.latitude<.02?1:0:this.cameraType==="perspective"?s=0:this.cameraType==="orthographic"&&(s=1),this.perspToOrthoMotion.getTargetKeyframe().value.perspToOrtho!==s&&this.perspToOrthoMotion.set({perspToOrtho:s},500).catch(noop$1),this.perspToOrthoMotion.ended||(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),isEmptyObject(i)||this.models.setMaterial(i),isEmptyObject(o)||this.setCamera(o)}},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(now())[1],r=this.locationMotion.getKeyFrameSegment(now())[1];return __assign(__assign({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,distance:r.value.distance,offset:new THREE__namespace.Vector3(r.value.x,r.value.y,r.value.z)})},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise(function(r){var i=e.initial;i.state,i.currentState;var o=i.duration,s=i.userAction;e.userAction=s;var u=t.initAnimationEndState(e),c={longitude:u.longitude,latitude:u.latitude,fov:u.fov},l={x:u.offset.x,y:u.offset.y,z:u.offset.z,distance:u.distance},d={modelAlpha:1},f={perspToOrtho:0};e.emit("initAnimation.start",createEvent("initAnimation.start",{state:u,userAction:e.userAction})),e.perspToOrthoMotion.set(f,o).catch(noop$1),e.modelAlphaMotion.set(d,o/3).catch(noop$1),e.cameraMotion.set(c,o).catch(noop$1),e.locationMotion.set(l,o).then(function(){e.emit("initAnimation.end",createEvent("initAnimation.end",{state:u,userAction:e.userAction}))},function(m){var A=__assign(__assign(__assign({},e.currentPano),{mode:e.mode}),clonePose(e.camera.pose));e.emit("initAnimation.end",createEvent("initAnimation.end",{state:A,userAction:e.userAction}))}).then(function(){r()})})},t.prototype.getForwardObserverOrNot=function(e){var r=this,i=this.models.intersectRaycaster(e)[0];if(!i)return null;var o=this.works.resolvedObservers.filter(function(l){for(var d,f=0,m=r.models;f<m.length;f++){var A=m[f];if(A.visible&&((d=A.work)===null||d===void 0?void 0:d.workCode)===l.work.workCode)return!0}return!1}),s=arrayMin(o,function(l){return l.standingPosition.distanceTo(i.point)},!0),u=s[0],c=s[1];return u&&c<10?u:null},t.prototype.coordinatesForOffset=function(e){var r=this.renderer.getSize(new THREE__namespace.Vector2);return{longitude:-2*e.x/(r.x*this.scissor.width),latitude:2*e.y/(r.y*this.scissor.height)}},t.prototype.requestMomentumMovement=function(e,r,i,o){var s=this;if(this.inMomentumMovement!==null){for(var u=__assign({},i),c={longitude:0,latitude:0,x:0,y:0,z:0},l=0;l<o;l++)u.longitude*=.996,u.latitude*=.996*.998,u.x*=.99,u.y*=.99,u.z*=.99,c.longitude+=u.longitude,c.latitude+=u.latitude,c.x+=u.x,c.y+=u.y,c.z+=u.z;var d=formatRad(this.cameraMotion.value.longitude+c.longitude),f=clamp$1(this.cameraMotion.value.latitude+c.latitude,this.minLatitude,this.maxLatitude),m=new THREE__namespace.Vector3(this.locationMotion.value.x+c.x,this.locationMotion.value.y+c.y,this.locationMotion.value.z+c.z),A=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:d,latitude:f,offset:m,fov:this.cameraMotion.value.fov,distance:this.camera.pose.distance}),h=!(Math.abs(u.longitude)>1e-4||Math.abs(u.latitude)>1e-4||Math.abs(u.x)>1e-4||Math.abs(u.y)>1e-4||Math.abs(u.z)>1e-4),p=createEvent("gesture.momentum",__assign(__assign({},e),{isFirst:r,isFinal:h,state:A}));if(this.inMomentumMovement.event=p,this.emit("gesture.momentum",p),e.defaultPrevented){this.inMomentumMovement=null;return}this.inMomentumMovement&&(this.cameraMotion.set({longitude:d,latitude:f},0).catch(noop$1),this.locationMotion.set({x:A.offset.x,y:A.offset.y,z:A.offset.z},0).catch(noop$1),h?this.inMomentumMovement=null:AnimationFrameLoop.shared.add(function(b,v){s.requestMomentumMovement(e,!1,u,v|0)},!0,1))}},t.prototype.fixFinalState=function(e){if(this.perspToOrthoMotion.getTargetKeyframe().value.perspToOrtho!==1){var r=coordinatesToVector(e,new THREE__namespace.Vector3),i=new THREE__namespace.Vector3().copy(e.offset).sub(r.clone().multiplyScalar(e.distance)),o=new THREE__namespace.Raycaster(i,r);o.params.Points={threshold:.1},o.near=RAYCASTER_NEAR;var s;if(o.ray.direction.y<-.3&&(s=this.models.intersectRaycaster(o).filter(function(f){var m,A=(m=f.face)===null||m===void 0?void 0:m.normal;return A&&o.ray.direction.dot(A)>=0?!1:f.distance>minDistance+o.near})[0],!s)){var u=new THREE__namespace.Plane(new THREE__namespace.Vector3(0,1,0),-this.models.bounding.min.y),c=o.ray.intersectPlane(u,new THREE__namespace.Vector3);if(c){var l=c.distanceTo(o.ray.origin);l<1e4&&l>=o.near&&(s={distance:l,floor:0,point:c,object:this.scene,face:null})}}if(!s){var d=Math.max(e.distance,3);s={distance:d,floor:0,point:o.ray.direction.clone().setLength(d).add(o.ray.origin),object:this.scene,face:null}}s&&(e.distance=clamp$1(s.distance,0,1/0),e.offset.copy(i).add(r.clone().multiplyScalar(e.distance)))}},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var r=e.pointers.length,i=this.panState,o=0;e.pointerType==="mouse"&&(o=e.srcEvent.buttons),i&&o===0&&i.buttons!==0&&(o=i.buttons);var s=i==null?void 0:i.target;if(!s){var u=this.relativeClientPosition(e.center),c=new THREE__namespace.Raycaster;c.params.Points={threshold:.1},c.setFromCamera(u,this.camera),c.near=RAYCASTER_NEAR,s=new THREE__namespace.Vector3().copy(c.ray.direction).multiplyScalar(3).add(c.ray.origin);var l=this.models.intersectRaycaster(c)[0];if(!l&&c.ray.direction.y<-.3){var d=new THREE__namespace.Plane(new THREE__namespace.Vector3(0,1,0),0),f=c.ray.intersectPlane(d,new THREE__namespace.Vector3);if(f){var m=f.distanceTo(c.ray.origin);m<1e4&&m>=c.near&&(l={distance:m,floor:0,point:f,object:this.scene})}}if(l)s.copy(l.point);else{var A=new THREE__namespace.Vector3().copy(this.camera.pose.offset).sub(this.camera.position).normalize(),d=new THREE__namespace.Plane().setFromNormalAndCoplanarPoint(A,this.camera.pose.offset);c.ray.intersectPlane(d,s)}}if(e.isFinal?delete this.panState:this.panState={target:s,buttons:o,pointerLength:r,x:e.center.x,y:e.center.y},!(typeof i=="undefined"||i.pointerLength!==r)){var h=r>1||o===2;if(h){var p={x:e.center.x-i.x,y:e.center.y-i.y},b=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),v=coordinatesToVector(this.cameraMotion.value).setLength(this.locationMotion.value.distance).add(b),g=new THREE__namespace.Vector3().copy(v).sub(i.target).length();g*=Math.tan(this.camera.pose.fov/2*Math.PI/180);var E=this.renderer.getSize(new THREE__namespace.Vector2),y=2*p.x*g/E.y,T=2*p.y*g/E.y,_=new THREE__namespace.Vector3;if(_.setFromMatrixColumn(this.camera.matrix,0),_.multiplyScalar(-y),b.add(_),this.camera.pose.latitude<PANGESTURE_FORWARD_ANGLE?_.setFromMatrixColumn(this.camera.matrix,1):(_.setFromMatrixColumn(this.camera.matrix,0),_.crossVectors(this.camera.up,_)),_.multiplyScalar(T),b.add(_),this.modelInScreen==="boundingbox-center"){var R=this.models.bounding.clone();R.expandByScalar(this.camera.pose.distance),b.clamp(R.min,R.max)}var S=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:b,distance:this.camera.pose.distance});if(e.state=S,this.emit("gesture.pan",e),e.defaultPrevented)return;if(this.locationMotion.set({x:S.offset.x,y:S.offset.y,z:S.offset.z},0).catch(noop$1),e.isFinal&&(this.fixFinalState(S),Object.assign(e,{__fixFinalState:!0}),this.locationMotion.set({distance:S.distance,x:S.offset.x,y:S.offset.y,z:S.offset.z},0).catch(noop$1)),e.isFinal){var B=this.renderer.getSize(new THREE__namespace.Vector2),I=2*e.velocityX*g/B.y,x=2*e.velocityY*g/B.y,w=new THREE__namespace.Vector3,H=new THREE__namespace.Vector3;w.setFromMatrixColumn(this.camera.matrix,0),w.multiplyScalar(-I),H.add(w),this.camera.pose.latitude<PANGESTURE_FORWARD_ANGLE?w.setFromMatrixColumn(this.camera.matrix,1):(w.setFromMatrixColumn(this.camera.matrix,0),w.crossVectors(this.camera.up,w)),w.multiplyScalar(x),H.add(w),this.inMomentumMovement={uuid:createUuid()},this.requestMomentumMovement(e,!0,{longitude:0,latitude:0,x:H.x,y:H.y,z:H.z},0)}}else{var p={x:e.center.x-i.x,y:e.center.y-i.y},C=this.coordinatesForOffset(p),L=formatRad(this.cameraMotion.value.longitude+C.longitude),k=clamp$1(this.cameraMotion.value.latitude+C.latitude,this.minLatitude,this.maxLatitude);this.camera.aspect<1&&Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(k=this.cameraMotion.value.latitude);var S=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:L,latitude:k,fov:this.camera.pose.fov,offset:this.camera.pose.offset,distance:this.camera.pose.distance});if(e.isFinal&&Object.assign(e,{__fixFinalState:!0}),e.state=S,this.emit("gesture.pan",e),e.defaultPrevented)return;if(e.isFinal?this.locationMotion.set({distance:S.distance,x:S.offset.x,y:S.offset.y,z:S.offset.z},0).catch(noop$1):this.cameraMotion.set({longitude:S.longitude,latitude:S.latitude},0).catch(noop$1),e.isFinal){var O=e.velocityX,G=e.velocityY;this.inMomentumMovement={uuid:createUuid()},this.requestMomentumMovement(e,!0,__assign(__assign({},this.coordinatesForOffset({x:O,y:G})),{x:0,y:0,z:0}),0)}}}},t.prototype.onPinchGesture=function(e){var r;if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var i=(r=this.pinchState)===null||r===void 0?void 0:r.distance;if(e.isFirst){this.pinchState={x:e.center.x,y:e.center.y,scale:1,distance:this.locationMotion.value.distance};return}if(typeof i!="undefined"){var o=this.models.bounding.getCenter(new THREE__namespace.Vector3),s=t.distanceFromModel(this.models,this.cameraMotion.value.fov,this.camera.aspect),u=clamp$1(i/e.scale,minDistance,1/0),c=e.state.offset.clone().sub(coordinatesToVector(e.state).setLength(u)),l=this.models.bounding.containsPoint(c),d;if(!l&&this.pinchState&&this.pinchState.scale>e.scale&&o.distanceTo(c)>s?d=e.state.distance:(d=u,this.pinchState&&(this.pinchState.scale=e.scale)),e.state.distance=d,this.emit("gesture.pinch",e),!e.defaultPrevented&&(this.locationMotion.set({distance:e.state.distance},0).catch(noop$1),e.pointerType!=="mouse"&&(e.type="gesture.pan",this.onPanGesture(e)),e.isFinal)){if(!("__fixFinalState"in e)){var f=e.state;this.fixFinalState(e.state);var m={x:f.offset.x,y:f.offset.y,z:f.offset.z,distance:f.distance};this.locationMotion.set(m,0).catch(noop$1)}delete this.panState,delete this.pinchState}}}},t.prototype.onMouseMove=function(e){var r,i;if(this.intersectMesh.parent&&!this.panState&&!this.pinchState&&!this.mouseWheelState&&(this.emit("gesture.mousemove",e),!e.defaultPrevented)){var o=e.center.raycaster;if(o.near=RAYCASTER_NEAR,o.far=500,e.isFinal&&this.intersectMesh.parent&&this.intersectMesh.visible===!0){this.hideIntersectMesh();return}var s=this.models.intersectRaycaster(o)[0],u=createEvent("intersect.update",{raycaster:o,intersection:s!=null?s:null,object:this.intersectMesh});if(this.emit("intersect.update",u),u.defaultPrevented){this.hideIntersectMesh();return}if(s){var c=(i=(r=s.face)===null||r===void 0?void 0:r.normal)!==null&&i!==void 0?i:new THREE__namespace.Vector3().copy(o.ray.direction).multiplyScalar(-1),l=c.clone(),d=s.point.clone();this.intersectMesh.position.copy(d);var f=o.ray.origin.distanceTo(d),m=2*Math.tan(.5*this.camera.fov/180*Math.PI),A=Math.max(f*m/10,1);this.intersectMesh.scale.set(A,A,A);var h=d.clone().add(l);if(this.intersectMesh.lookAt(h),Math.abs(c.y)>.99){var p=this.camera.position.clone().sub(d);this.intersectMesh.rotation.z=-Math.atan2(p.z,p.x)}this.intersectMesh.visible=!0,this.needsRender=!0}else this.hideIntersectMesh()}},t.prototype.onMouseWheel=function(e){if(this.initAnimationIsReady)if(this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh(),e.isFinal){var r=e.state;if(this.fixFinalState(r),this.emit("gesture.mousewheel",e),e.defaultPrevented)return;var i={x:r.offset.x,y:r.offset.y,z:r.offset.z,distance:r.distance};this.locationMotion.set(i,0).catch(noop$1)}else{var o=e.center.delta/2*Math.max(Math.log(this.locationMotion.value.distance),1),s=this.models.bounding.getCenter(new THREE__namespace.Vector3),u=t.distanceFromModel(this.models,this.cameraMotion.value.fov,this.camera.aspect),c=clamp$1(this.locationMotion.value.distance-o,minDistance,1/0),l=e.state.offset.clone().sub(coordinatesToVector(e.state).setLength(c)),d=this.models.bounding.containsPoint(l);if(this.modelInScreen!=="none"&&(c=!d&&o<0&&s.distanceTo(l)>u?e.state.distance:c),e.state.distance=c,this.emit("gesture.mousewheel",e),e.defaultPrevented)return;this.locationMotion.set({distance:c},0).catch(noop$1)}},t.prototype.onTapGesture=function(e){var r=this;this.userAction=e.userAction,this.stopMomentumMovement();var i=e.center.raycaster,o=this.getForwardObserverOrNot(i);if(!o)this.emit("gesture.tap",e);else{var s={longitude:this.camera.pose.longitude,latitude:0},u=__assign(__assign({},e.state),{mode:"Panorama",workCode:o.pano.workCode,panoIndex:o.pano.panoIndex,longitude:s.longitude,latitude:s.latitude,offset:o?o.position.clone():new THREE__namespace.Vector3,distance:0});if(e.state=u,this.emit("gesture.tap",e),!e.defaultPrevented&&(this.emit("pano.select",createEvent("pano.select",{prevPano:this.currentPano,state:u,userAction:e.userAction,options:s,progress:0,error:null})),o&&o.active)){var c=this.currentTapId=createUuid();this.preloadPano(o.pano).then(function(l){r.currentTapId===c&&r.emit("pano.request",createEvent("pano.request",{userAction:!0,prevPano:r.currentPano,progress:0,state:u,options:s,error:null}))})}}},t.prototype.onDblTapGesture=function(e){if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var r=e.state,i=e.center.raycaster,o=i.ray.origin.clone().add(i.ray.direction.clone().setLength(3)),s=1,u=3,c=s,l=this.models.intersectRaycaster(i)[0];l&&(o=l.point.clone(),l.distance>(s+u)/2?c=s:c=u),e.state.distance=c,e.state.offset=o;var d={x:r.offset.x,y:r.offset.y,z:r.offset.z,distance:r.distance};this.locationMotion.set(d,360).catch(noop$1),this.hideIntersectMesh()}},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.needsRender=!0},t.prototype.render=function(e,r){var i=this.renderer.getRenderTarget();this.updateScreenBuffer(r),e&&(r==="edl"?this.edlEffect.render(this.screenBuffers):r==="hq"?this.hqEffect.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}(BaseController);function isNil(n){return n==null}var _moveEvent={type:"move"},XRController=function(){function n(){this._targetRay=null,this._grip=null,this._hand=null,this._axes=[0,0]}return n.prototype.getHandSpace=function(){return this._hand===null&&(this._hand=new THREE__namespace.Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand},n.prototype.getTargetRaySpace=function(){return this._targetRay===null&&(this._targetRay=new THREE__namespace.Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new THREE__namespace.Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new THREE__namespace.Vector3),this._targetRay},n.prototype.getGripSpace=function(){return this._grip===null&&(this._grip=new THREE__namespace.Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new THREE__namespace.Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new THREE__namespace.Vector3),this._grip},n.prototype.dispatchEvent=function(t){return this._targetRay!==null&&this._targetRay.dispatchEvent(t),this._grip!==null&&this._grip.dispatchEvent(t),this._hand!==null&&this._hand.dispatchEvent(t),this},n.prototype.disconnect=function(t){return this.dispatchEvent({type:"disconnected",data:t}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this},n.prototype.getAxes=function(){return this._axes},n.prototype.update=function(t,e,r){var i=null,o=null,s=null,u=this._targetRay,c=this._grip,l=this._hand;if(t&&t.gamepad&&t.gamepad.axes&&(this._axes=[t.gamepad.axes[2],t.gamepad.axes[3]]),t&&e.session.visibilityState!=="visible-blurred")if(u!==null&&(i=e.getPose(t.targetRaySpace,r),i!==null&&(u.matrix.fromArray(i.transform.matrix),u.matrix.decompose(u.position,u.rotation,u.scale),i.linearVelocity?(u.hasLinearVelocity=!0,u.linearVelocity.copy(i.linearVelocity)):u.hasLinearVelocity=!1,i.angularVelocity?(u.hasAngularVelocity=!0,u.angularVelocity.copy(i.angularVelocity)):u.hasAngularVelocity=!1,this.dispatchEvent(_moveEvent))),l&&t.hand){s=!0;for(var d=0,f=t.hand.values();d<f.length;d++){var m=f[d],A=e.getJointPose(m,r);if(l.joints[m.jointName]===void 0){var h=new THREE__namespace.Group;h.matrixAutoUpdate=!1,h.visible=!1,l.joints[m.jointName]=h,l.add(h)}var p=l.joints[m.jointName];A!==null&&(p.matrix.fromArray(A.transform.matrix),p.matrix.decompose(p.position,p.rotation,p.scale),p.jointRadius=A.radius),p.visible=A!==null}var b=l.joints["index-finger-tip"],v=l.joints["thumb-tip"],g=b.position.distanceTo(v.position),E=.02,y=.005;l.inputState.pinching&&g>E+y?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&g<=E-y&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else c!==null&&t.gripSpace&&(o=e.getPose(t.gripSpace,r),o!==null&&(c.matrix.fromArray(o.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),o.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(o.linearVelocity)):c.hasLinearVelocity=!1,o.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(o.angularVelocity)):c.hasAngularVelocity=!1));return u!==null&&(u.visible=i!==null),c!==null&&(c.visible=o!==null),l!==null&&(l.visible=s!==null),this},n}(),framebufferScaleFactor=1,XRManager=function(){function n(t,e,r){var i,o,s,u,c;this.isPanorama=(i=r==null?void 0:r.isPanorama)!==null&&i!==void 0?i:!0;var l=navigator.userAgent.toLowerCase(),d;l.includes("pico")?d="Pico":l.includes("oculus")?d="Oculus":d="VP",this.machineType=(o=r==null?void 0:r.machineType)!==null&&o!==void 0?o:d,this.renderer=t,this.gl=e,this.enabled=!1,this.session=null,this.referenceSpaceType=(s=r==null?void 0:r.referenceSpaceType)!==null&&s!==void 0?s:"local-floor",this.referenceSpace=null,this.onSessionStartCallback=(u=r==null?void 0:r.onSessionStart)!==null&&u!==void 0?u:noop$1,this.onSessionEndCallback=(c=r==null?void 0:r.onSessionEnd)!==null&&c!==void 0?c:noop$1,this.controllers=[new XRController,new XRController],this.inputSourcesMap=new Map,this.cameraVR=new THREE__namespace.ArrayCamera,this.cameraL=new THREE__namespace.PerspectiveCamera,this.cameraR=new THREE__namespace.PerspectiveCamera,this.cameraL.viewport=new THREE__namespace.Vector4,this.cameraR.viewport=new THREE__namespace.Vector4,this.cameraL.layers.enable(1),this.cameraR.layers.enable(2),this.cameraVR.layers.enable(1),this.cameraVR.layers.enable(2),this.isPresenting=!1,this.currentDepthNear=null,this.currentDepthFar=null,this.cameraLPos=new THREE__namespace.Vector3,this.cameraRPos=new THREE__namespace.Vector3}return n.prototype.getController=function(t){var e=this.controllers[t];return e||console.warn("no controller find"),e.getTargetRaySpace()},n.prototype.getRightController=function(){if(!this.session)return null;var t=this.session.inputSources[0].handedness==="right"?0:1,e=this.controllers[t];return e||console.warn("no controller find"),e.getTargetRaySpace()},n.prototype.getLeftController=function(){if(!this.session)return null;var t=this.session.inputSources[0].handedness==="left"?0:1,e=this.controllers[t];return e||console.warn("no controller find"),e.getTargetRaySpace()},n.prototype.getControllerGrip=function(t){var e=this.controllers[t];return e||console.warn("no controller find"),e.getGripSpace()},n.prototype.getCameras=function(){return{cameraL:this.cameraL,cameraR:this.cameraR,cameraVR:this.cameraVR}},n.prototype.updateCamera=function(t,e){e===null?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.getInverse(t.matrixWorld)},n.prototype.setProjectionFromUnion=function(t,e,r){this.cameraLPos.setFromMatrixPosition(e.matrixWorld),this.cameraRPos.setFromMatrixPosition(r.matrixWorld);var i=this.cameraLPos.distanceTo(this.cameraRPos),o=e.projectionMatrix.elements,s=r.projectionMatrix.elements,u=o[14]/(o[10]-1),c=o[14]/(o[10]+1),l=(o[9]+1)/o[5],d=(o[9]-1)/o[5],f=(o[8]-1)/o[0],m=(s[8]+1)/s[0],A=u*f,h=u*m,p=i/(-f+m),b=p*-f;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(b),t.translateZ(p),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.getInverse(t.matrixWorld);var v=u+p,g=c+p,E=A-b,y=h+(i-b),T=l*c/g*v,_=d*c/g*v;t.projectionMatrix.makePerspective(E,y,T,_,v,g)},n.prototype.getCamera=function(t){this.cameraVR.near=this.cameraR.near=this.cameraL.near=t.near,this.cameraVR.far=this.cameraR.far=this.cameraL.far=t.far,this.session&&(this.currentDepthNear!==this.cameraVR.near||this.currentDepthFar!==this.cameraVR.far)&&(this.session.updateRenderState({depthNear:this.cameraVR.near,depthFar:this.cameraVR.far}),this.currentDepthNear=this.cameraVR.near,this.currentDepthFar=this.cameraVR.far);var e=t.parent,r=this.cameraVR.cameras;this.updateCamera(this.cameraVR,e);for(var i=0;i<r.length;i++)this.updateCamera(r[i],e);t.matrixWorld.copy(this.cameraVR.matrixWorld);for(var o=t.children,i=0,s=o.length;i<s;i++)o[i].updateMatrixWorld(!0);return r.length===2?this.setProjectionFromUnion(this.cameraVR,this.cameraL,this.cameraR):this.cameraVR.projectionMatrix.copy(this.cameraL.projectionMatrix),this.cameraVR},n.prototype.updateInputSources=function(t){if(!this.session){console.warn("session is lose!");return}for(var e=this.session.inputSources,r=0;r<this.controllers.length;r++)this.inputSourcesMap.set(e[r],this.controllers[r]);for(var r=0;r<t.removed.length;r++){var i=t.removed[r],o=this.inputSourcesMap.get(i);o&&(o.dispatchEvent({type:"disconnected",data:i}),this.inputSourcesMap.delete(i))}for(var r=0;r<t.added.length;r++){var i=t.added[r],o=this.inputSourcesMap.get(i);o&&o.dispatchEvent({type:"connected",data:i})}},n.prototype.onSessionEvent=function(t){var e=this.inputSourcesMap.get(t.inputSource);e&&e.dispatchEvent({type:t.type})},n.prototype.onSessionEnd=function(){this.inputSourcesMap.forEach(function(t,e){t.disconnect(e)}),this.inputSourcesMap.clear(),this.renderer.setFramebuffer(null),this.renderer.setRenderTarget(this.renderer.getRenderTarget()),this.isPresenting=!1,this.session=null,AnimationFrameLoop.shared.setContext(null),this.onSessionEndCallback()},n.prototype.onRequestReferenceSpace=function(t){this.referenceSpace=t,this.isPresenting=!0,this.session&&this.onSessionStartCallback(this.session)},n.prototype.setSession=function(t){var e=this;if(this.session=t,this.session){this.session.addEventListener("select",function(i){e.onSessionEvent(i)}),this.session.addEventListener("selectstart",function(i){e.onSessionEvent(i)}),this.session.addEventListener("selectend",function(i){e.onSessionEvent(i)}),this.session.addEventListener("squeeze",function(i){e.onSessionEvent(i)}),this.session.addEventListener("squeezestart",function(i){e.onSessionEvent(i)}),this.session.addEventListener("squeezeend",function(i){e.onSessionEvent(i)}),this.session.addEventListener("end",function(i){e.onSessionEnd()});var r=this.gl.getContextAttributes();this.gl.makeXRCompatible().then(function(){var i={antialias:r==null?void 0:r.antialias,alpha:r==null?void 0:r.alpha,depth:r==null?void 0:r.depth,stencil:r==null?void 0:r.stencil,framebufferScaleFactor};if(!e.session){console.error("session is lose while set session!");return}switch(e.machineType){case"Pico":case"VP":e.session.updateRenderState({baseLayer:new XRWebGLLayer(e.session,e.gl,i)});break;case"Oculus":e.session.updateRenderState({layers:[new XRWebGLLayer(e.session,e.gl,i)]});break;default:e.machineType;break}e.session.requestReferenceSpace(e.referenceSpaceType).then(function(o){e.onRequestReferenceSpace(o)}),e.session.addEventListener("inputsourceschange",function(o){e.updateInputSources(o)})})}},n}(),LineSegmentsGeometry=function(n){__extends(t,n);function t(){var e=n.call(this)||this;e.type="LineSegmentsGeometry";var r=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],i=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],o=[0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5];return e.setIndex(o),e.setAttribute("position",new THREE__namespace.Float32BufferAttribute(r,3)),e.setAttribute("uv",new THREE__namespace.Float32BufferAttribute(i,2)),e}return t.prototype.applyMatrix4=function(e){var r=this.attributes.instanceStart,i=this.attributes.instanceEnd;return r!==void 0&&(r.applyMatrix4(e),i.applyMatrix4(e),r.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this},t.prototype.setPositions=function(e){var r;e instanceof Float32Array?r=e:Array.isArray(e)?r=new Float32Array(e):r=new Float32Array;var i=new THREE__namespace.InstancedInterleavedBuffer(r,6,1);return this.setAttribute("instanceStart",new THREE__namespace.InterleavedBufferAttribute(i,3,0)),this.setAttribute("instanceEnd",new THREE__namespace.InterleavedBufferAttribute(i,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this},t.prototype.setColors=function(e){var r;e instanceof Float32Array?r=e:Array.isArray(e)?r=new Float32Array(e):r=new Float32Array;var i=new THREE__namespace.InstancedInterleavedBuffer(r,6,1);return this.setAttribute("instanceColorStart",new THREE__namespace.InterleavedBufferAttribute(i,3,0)),this.setAttribute("instanceColorEnd",new THREE__namespace.InterleavedBufferAttribute(i,3,3)),this},t.prototype.fromWireframeGeometry=function(e){return this.setPositions(e.attributes.position.array),this},t.prototype.fromEdgesGeometry=function(e){return this.setPositions(e.attributes.position.array),this},t.prototype.fromMesh=function(e){return this.fromWireframeGeometry(new THREE__namespace.WireframeGeometry(e.geometry)),this},t.prototype.fromLineSegments=function(e){var r=e.geometry;if(r instanceof THREE__namespace.Geometry){var i=new THREE__namespace.BufferGeometry().fromGeometry(r);this.setPositions(i.attributes.position.array)}else r instanceof THREE__namespace.BufferGeometry&&this.setPositions(r.attributes.position.array);return this},t.prototype.computeBoundingBox=function(){this.boundingBox===null&&(this.boundingBox=new THREE__namespace.Box3);var e=this.attributes.instanceStart,r=this.attributes.instanceEnd;if(e!==void 0&&r!==void 0){var i=new THREE__namespace.Box3;this.boundingBox.setFromBufferAttribute(e),i.setFromBufferAttribute(r),this.boundingBox.union(i)}},t.prototype.computeBoundingSphere=function(){this.boundingSphere===null&&(this.boundingSphere=new THREE__namespace.Sphere),this.boundingBox===null&&this.computeBoundingBox();var e=this.attributes.instanceStart,r=this.attributes.instanceEnd;if(e!==void 0&&r!==void 0){var i=this.boundingSphere.center;this.boundingBox.getCenter(i);for(var o=0,s=new THREE__namespace.Vector3,u=0,c=e.count;u<c;u++)s.fromBufferAttribute(e,u),o=Math.max(o,i.distanceToSquared(s)),s.fromBufferAttribute(r,u),o=Math.max(o,i.distanceToSquared(s));this.boundingSphere.radius=Math.sqrt(o),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}},t.prototype.toJSON=function(){},t}(THREE__namespace.InstancedBufferGeometry);Object.assign(LineSegmentsGeometry.prototype,{isLineSegmentsGeometry:!0});var lineShader={uniforms:THREE__namespace.UniformsUtils.merge([THREE__namespace.UniformsLib.common,THREE__namespace.UniformsLib.fog,{linewidth:{value:1},resolution:{value:new THREE__namespace.Vector2(1,1)},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1},opacity:{value:1}}]),vertexShader:`
|
|
1862
|
+
b-J-Htyl]|vv|{-J-}|wrpv|{Znv\x07-7-z|qrycvrZnv\x07-7-rpA5}|vv|{9>;=6H\f`);var HQMaterial=function(n){__extends(t,n);function t(e){var r=n.call(this,{vertexShader:vertex,fragmentShader:fragment})||this;return r.uniforms={uDepthMap:makeUniform("t",null),uWeightMap:makeUniform("t",null)},r.depthTest=!0,r.depthWrite=!0,r.opacity=1,r}return t.prototype.getUniform=function(e){return this.uniforms===void 0?void 0:this.uniforms[e].value},t.prototype.setUniform=function(e,r){if(this.uniforms!==void 0){var i=this.uniforms[e];i.value=r}},__decorate([uniform("uDepthMap"),__metadata("design:type",Number)],t.prototype,"uDepthMap",void 0),__decorate([uniform("uWeightMap"),__metadata("design:type",Number)],t.prototype,"uWeightMap",void 0),t}(THREE__namespace.RawShaderMaterial);function makeUniform(n,t){return{type:n,value:t}}function uniform(n,t){return t===void 0&&(t=!1),function(e,r){Object.defineProperty(e,r,{get:function(){return this.getUniform(n)},set:function(i){i!==this.getUniform(n)&&(this.setUniform(n,i),t&&this.updateShaderSource())}})}}var passCamera=new THREE__namespace.OrthographicCamera(-1,1,1,-1,0,1),geometry$1=new THREE__namespace.BufferGeometry;geometry$1.setAttribute("position",new THREE__namespace.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),geometry$1.setAttribute("uv",new THREE__namespace.Float32BufferAttribute([0,2,0,0,2,0],2));var mesh$1=new THREE__namespace.Mesh(geometry$1),hqScene=new THREE__namespace.Scene;hqScene.add(mesh$1);var HQEffect=function(n){__extends(t,n);function t(e,r,i,o){var s=n.call(this,e,r,i,o)||this;return s.sharedV2=new THREE__namespace.Vector2,s.renderer=e,s.material=new HQMaterial,s.camera=i,mesh$1.material=s.material,s}return t.prototype.render=function(e){this.models.setMaterial({useHQDepth:!0,useHQWeight:!1}),this.models.update(this.renderer,this.camera,"Mapview"),this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0,this.renderer.setRenderTarget(e[0]),this.renderer.render(this.scene,this.camera),this.models.setMaterial({useHQWeight:!0,useHQDepth:!1}),this.models.update(this.renderer,this.camera,"Mapview"),this.renderer.autoClearDepth=!1,this.renderer.autoClearColor=!0,this.renderer.setClearColor(new THREE__namespace.Color(0,0,0)),this.renderer.setClearAlpha(0),this.renderer.setRenderTarget(e[1]),this.renderer.render(this.scene,this.camera),this.material.uniforms.uWeightMap.value=e[1].texture,this.material.uniforms.uDepthMap.value=e[0].depthTexture,this.renderer.autoClearDepth=!0,this.renderer.autoClearColor=!0,this.renderer.setClearColor(new THREE__namespace.Color(0,0,0)),this.renderer.setClearAlpha(1),this.renderer.setRenderTarget(e[2]),this.renderer.render(hqScene,passCamera)},t.prototype.dispose=function(){this.copyPass.dispose()},t}(Effect),RAYCASTER_NEAR=.5,minDistance=.5,PANGESTURE_FORWARD_ANGLE=Math.PI/7,MapviewController=function(n){__extends(t,n);function t(e){var r=this,i,o=t.parseArgs(e);return r=n.call(this,o)||this,r.mode="Mapview",r.defaultLongitude=o.defaultLongitude,r.defaultLatitude=o.defaultLatitude,r.defaultDistance=o.defaultDistance,r.maxLatitude=o.maxLatitude,r.minLatitude=o.minLatitude,r.cameraType=o.cameraType,r.modelInScreen=o.modelInScreen,r.locationMotion=new Motion({x:r.camera.pose.offset.x,y:r.camera.pose.offset.y,z:r.camera.pose.offset.z,distance:r.camera.pose.distance}),r.modelAlphaMotion=new Motion({modelAlpha:(i=r.models.getMaterial().modelAlpha)!==null&&i!==void 0?i:0}),r.perspToOrthoMotion=new Motion({perspToOrtho:r.camera.perspToOrtho.x}),r.intersectMeshCreator=o.intersectMeshCreator,r.intersectMesh=r.intersectMeshCreator(),r.intersectMesh.name="intersect",r.intersectMesh.visible=!1,r.currentTapId=null,r.helper.add(r.intersectMesh),r.edlTarget=new THREE__namespace.WebGLRenderTarget(1024,1024,{generateMipmaps:!1,minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter,format:THREE__namespace.RGBAFormat,type:THREE__namespace.FloatType,depthTexture:new THREE__namespace.DepthTexture(1024,1024,THREE__namespace.UnsignedIntType)}),r.edlEffect=new EDLEffect(r.renderer,r.modelScene,r.camera,r.models),r.hqEffect=new HQEffect(r.renderer,r.modelScene,r.camera,r.models),r}return t.parseArgs=function(e){var r,i,o,s,u,c,l,d;if(e instanceof t)return e;var f=n.parseArgs.call(this,e);return __assign(__assign({},f),{defaultLongitude:(r=e.defaultLongitude)!==null&&r!==void 0?r:Math.PI/4,defaultLatitude:(i=e.defaultLatitude)!==null&&i!==void 0?i:Math.PI/4,defaultDistance:(o=e.defaultDistance)!==null&&o!==void 0?o:150,maxLatitude:(s=e.maxLatitude)!==null&&s!==void 0?s:+Math.PI/2,minLatitude:(u=e.minLatitude)!==null&&u!==void 0?u:0,cameraType:(c=e.cameraType)!==null&&c!==void 0?c:"auto",modelInScreen:(l=e.modelInScreen)!==null&&l!==void 0?l:"boundingbox-center",intersectMeshCreator:(d=e.intersectMeshCreator)!==null&&d!==void 0?d:function(){return new IntersectMesh}})},t.distanceFromModel=function(e,r,i){var o=e.bounding,s=Math.pow(Math.pow(o.max.x-o.min.x+1,2)+Math.pow(o.max.y-o.min.y+1,2)+Math.pow(o.max.z-o.min.z+1,2),1/2),u=s/2/Math.tan(Math.PI*r/360);return i<1&&(u=u/i),isNaN(u)?s:u},t.initAnimationEndState=function(e){var r,i,o,s,u,c,l,d=this.parseArgs(e),f=d.works,m=d.models,A=e.initial,h=A.state,p=A.currentState,b=typeof h.panoIndex=="number"?{workCode:(o=(r=h.workCode)!==null&&r!==void 0?r:(i=d.works[0])===null||i===void 0?void 0:i.workCode)!==null&&o!==void 0?o:"",panoIndex:h.panoIndex}:{workCode:p.workCode,panoIndex:p.panoIndex},v=f.getResolvedObserver(b),g=(s=h.fov)!==null&&s!==void 0?s:60,E=clamp$1((u=h.latitude)!==null&&u!==void 0?u:isThirdPersonMode(p.mode)?p.latitude:d.defaultLatitude,d.minLatitude,d.maxLatitude),y=t.distanceFromModel(d.models,g,d.camera.aspect),T=new THREE__namespace.Vector3,_=(c=h.distance)!==null&&c!==void 0?c:Math.min(d.defaultDistance,y),R=(l=h.longitude)!==null&&l!==void 0?l:isThirdPersonMode(p.mode)?p.longitude:d.defaultLongitude;return h.offset?T.copy(h.offset):d.defaultDistance<y&&v?(T.copy(v.position),h.longitude===void 0&&(R=p.longitude)):T.copy(m.bounding.getCenter(T)),m.bounding.containsPoint(T)||m.bounding.getCenter(T),__assign(__assign({},b),{mode:"Mapview",longitude:R,latitude:E,fov:g,offset:T,distance:_})},t.prototype.destroy=function(){n.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.panState,this.intersectMesh.dispose(),this.helper.remove(this.intersectMesh)},t.prototype.isReady=function(){return this.locationMotion.ended===!1?!1:n.prototype.isReady.call(this)},t.prototype.updateWork=function(e,r,i,o){this.userAction=o,this.works=e;var s=t.initAnimationEndState(__assign(__assign({},this),{initial:{currentState:__assign(__assign({},this.currentPano),this.camera.pose),duration:i.duration,effect:i.effect,state:r,userAction:o}}));this.currentPano={workCode:s.workCode,panoIndex:s.panoIndex};var u={longitude:s.longitude,latitude:s.latitude,fov:s.fov},c={x:s.offset.x,y:s.offset.y,z:s.offset.z,distance:s.distance,orthoDistance:s.distance};return this.locationMotion.set(c,i.duration).catch(noop$1),this.cameraMotion.set(u,i.duration).catch(noop$1),!0},t.prototype.updateModel=function(e){n.prototype.updateModel.call(this,e)},t.prototype.updateCamera=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();var s={},u={};return e.distance!==void 0&&(s.distance=e.distance),e.offset!==void 0&&(s.x=e.offset.x,s.y=e.offset.y,s.z=e.offset.z),e.longitude!==void 0&&(u.longitude=e.longitude),e.latitude!==void 0&&(u.latitude=e.latitude),e.fov!==void 0&&(u.fov=e.fov),o.locationMotion.set(s,r).catch(noop$1),o.cameraMotion.set(u,r).catch(noop$1)})},t.prototype.updateCameraWithKeyframes=function(e,r,i){var o=this;return this.initAnimationReady.then(function(){o.userAction=i,o.stopMomentumMovement();for(var s=[],u=[],c=0,l=e;c<l.length;c++){var d=l[c];s.push({key:d.key,progress:d.progress,value:{distance:d.value.distance,x:d.value.offset.x,y:d.value.offset.x,z:d.value.offset.x}}),u.push({key:d.key,progress:d.progress,value:{longitude:d.value.longitude,latitude:d.value.latitude,fov:d.value.fov}})}return o.locationMotion.setKeyframes(s,r).catch(noop$1),o.cameraMotion.setKeyframes(e,r)})},t.prototype.updateTime=function(e,r){if(!this.destroyed){var i={},o={};this.locationMotion.ended||(this.locationMotion.update(e),o.distance=this.locationMotion.value.distance,o.offset=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),this.cameraMotion.ended||(this.cameraMotion.update(e),o.longitude=this.cameraMotion.value.longitude,o.latitude=this.cameraMotion.value.latitude,o.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended||(this.modelAlphaMotion.update(e),i.modelAlpha=this.modelAlphaMotion.value.modelAlpha);var s=0;this.cameraType==="auto"?s=Math.PI/2-this.cameraMotion.value.latitude<.02?1:0:this.cameraType==="perspective"?s=0:this.cameraType==="orthographic"&&(s=1),this.perspToOrthoMotion.getTargetKeyframe().value.perspToOrtho!==s&&this.perspToOrthoMotion.set({perspToOrtho:s},500).catch(noop$1),this.perspToOrthoMotion.ended||(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),isEmptyObject(i)||this.models.setMaterial(i),isEmptyObject(o)||this.setCamera(o)}},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(now())[1],r=this.locationMotion.getKeyFrameSegment(now())[1];return __assign(__assign({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,distance:r.value.distance,offset:new THREE__namespace.Vector3(r.value.x,r.value.y,r.value.z)})},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise(function(r){var i=e.initial;i.state,i.currentState;var o=i.duration,s=i.userAction;e.userAction=s;var u=t.initAnimationEndState(e),c={longitude:u.longitude,latitude:u.latitude,fov:u.fov},l={x:u.offset.x,y:u.offset.y,z:u.offset.z,distance:u.distance},d={modelAlpha:1},f={perspToOrtho:0};e.emit("initAnimation.start",createEvent("initAnimation.start",{state:u,userAction:e.userAction})),e.perspToOrthoMotion.set(f,o).catch(noop$1),e.modelAlphaMotion.set(d,o/3).catch(noop$1),e.cameraMotion.set(c,o).catch(noop$1),e.locationMotion.set(l,o).then(function(){e.emit("initAnimation.end",createEvent("initAnimation.end",{state:u,userAction:e.userAction}))},function(m){var A=__assign(__assign(__assign({},e.currentPano),{mode:e.mode}),clonePose(e.camera.pose));e.emit("initAnimation.end",createEvent("initAnimation.end",{state:A,userAction:e.userAction}))}).then(function(){r()})})},t.prototype.getForwardObserverOrNot=function(e){var r=this,i=this.models.intersectRaycaster(e)[0];if(!i)return null;var o=this.works.resolvedObservers.filter(function(l){for(var d,f=0,m=r.models;f<m.length;f++){var A=m[f];if(A.visible&&((d=A.work)===null||d===void 0?void 0:d.workCode)===l.work.workCode)return!0}return!1}),s=arrayMin(o,function(l){return l.standingPosition.distanceTo(i.point)},!0),u=s[0],c=s[1];return u&&c<10?u:null},t.prototype.coordinatesForOffset=function(e){var r=this.renderer.getSize(new THREE__namespace.Vector2);return{longitude:-2*e.x/(r.x*this.scissor.width),latitude:2*e.y/(r.y*this.scissor.height)}},t.prototype.requestMomentumMovement=function(e,r,i,o){var s=this;if(this.inMomentumMovement!==null){for(var u=__assign({},i),c={longitude:0,latitude:0,x:0,y:0,z:0},l=0;l<o;l++)u.longitude*=.996,u.latitude*=.996*.998,u.x*=.99,u.y*=.99,u.z*=.99,c.longitude+=u.longitude,c.latitude+=u.latitude,c.x+=u.x,c.y+=u.y,c.z+=u.z;var d=formatRad(this.cameraMotion.value.longitude+c.longitude),f=clamp$1(this.cameraMotion.value.latitude+c.latitude,this.minLatitude,this.maxLatitude),m=new THREE__namespace.Vector3(this.locationMotion.value.x+c.x,this.locationMotion.value.y+c.y,this.locationMotion.value.z+c.z),A=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:d,latitude:f,offset:m,fov:this.cameraMotion.value.fov,distance:this.camera.pose.distance}),h=!(Math.abs(u.longitude)>1e-4||Math.abs(u.latitude)>1e-4||Math.abs(u.x)>1e-4||Math.abs(u.y)>1e-4||Math.abs(u.z)>1e-4),p=createEvent("gesture.momentum",__assign(__assign({},e),{isFirst:r,isFinal:h,state:A}));if(this.inMomentumMovement.event=p,this.emit("gesture.momentum",p),e.defaultPrevented){this.inMomentumMovement=null;return}this.inMomentumMovement&&(this.cameraMotion.set({longitude:d,latitude:f},0).catch(noop$1),this.locationMotion.set({x:A.offset.x,y:A.offset.y,z:A.offset.z},0).catch(noop$1),h?this.inMomentumMovement=null:AnimationFrameLoop.shared.add(function(b,v){s.requestMomentumMovement(e,!1,u,v|0)},!0,1))}},t.prototype.fixFinalState=function(e){if(this.perspToOrthoMotion.getTargetKeyframe().value.perspToOrtho!==1){var r=coordinatesToVector(e,new THREE__namespace.Vector3),i=new THREE__namespace.Vector3().copy(e.offset).sub(r.clone().multiplyScalar(e.distance)),o=new THREE__namespace.Raycaster(i,r);o.params.Points={threshold:.1},o.near=RAYCASTER_NEAR;var s;if(o.ray.direction.y<-.3&&(s=this.models.intersectRaycaster(o).filter(function(f){var m,A=(m=f.face)===null||m===void 0?void 0:m.normal;return A&&o.ray.direction.dot(A)>=0?!1:f.distance>minDistance+o.near})[0],!s)){var u=new THREE__namespace.Plane(new THREE__namespace.Vector3(0,1,0),-this.models.bounding.min.y),c=o.ray.intersectPlane(u,new THREE__namespace.Vector3);if(c){var l=c.distanceTo(o.ray.origin);l<1e4&&l>=o.near&&(s={distance:l,floor:0,point:c,object:this.scene,face:null})}}if(!s){var d=Math.max(e.distance,3);s={distance:d,floor:0,point:o.ray.direction.clone().setLength(d).add(o.ray.origin),object:this.scene,face:null}}s&&(e.distance=clamp$1(s.distance,0,1/0),e.offset.copy(i).add(r.clone().multiplyScalar(e.distance)))}},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var r=e.pointers.length,i=this.panState,o=0;e.pointerType==="mouse"&&(o=e.srcEvent.buttons),i&&o===0&&i.buttons!==0&&(o=i.buttons);var s=i==null?void 0:i.target;if(!s){var u=this.relativeClientPosition(e.center),c=new THREE__namespace.Raycaster;c.params.Points={threshold:.1},c.setFromCamera(u,this.camera),c.near=RAYCASTER_NEAR,s=new THREE__namespace.Vector3().copy(c.ray.direction).multiplyScalar(3).add(c.ray.origin);var l=this.models.intersectRaycaster(c)[0];if(!l&&c.ray.direction.y<-.3){var d=new THREE__namespace.Plane(new THREE__namespace.Vector3(0,1,0),0),f=c.ray.intersectPlane(d,new THREE__namespace.Vector3);if(f){var m=f.distanceTo(c.ray.origin);m<1e4&&m>=c.near&&(l={distance:m,floor:0,point:f,object:this.scene})}}if(l)s.copy(l.point);else{var A=new THREE__namespace.Vector3().copy(this.camera.pose.offset).sub(this.camera.position).normalize(),d=new THREE__namespace.Plane().setFromNormalAndCoplanarPoint(A,this.camera.pose.offset);c.ray.intersectPlane(d,s)}}if(e.isFinal?delete this.panState:this.panState={target:s,buttons:o,pointerLength:r,x:e.center.x,y:e.center.y},!(typeof i=="undefined"||i.pointerLength!==r)){var h=r>1||o===2;if(h){var p={x:e.center.x-i.x,y:e.center.y-i.y},b=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),v=coordinatesToVector(this.cameraMotion.value).setLength(this.locationMotion.value.distance).add(b),g=new THREE__namespace.Vector3().copy(v).sub(i.target).length();g*=Math.tan(this.camera.pose.fov/2*Math.PI/180);var E=this.renderer.getSize(new THREE__namespace.Vector2),y=2*p.x*g/E.y,T=2*p.y*g/E.y,_=new THREE__namespace.Vector3;if(_.setFromMatrixColumn(this.camera.matrix,0),_.multiplyScalar(-y),b.add(_),this.camera.pose.latitude<PANGESTURE_FORWARD_ANGLE?_.setFromMatrixColumn(this.camera.matrix,1):(_.setFromMatrixColumn(this.camera.matrix,0),_.crossVectors(this.camera.up,_)),_.multiplyScalar(T),b.add(_),this.modelInScreen==="boundingbox-center"){var R=this.models.bounding.clone();R.expandByScalar(this.camera.pose.distance),b.clamp(R.min,R.max)}var S=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:b,distance:this.camera.pose.distance});if(e.state=S,this.emit("gesture.pan",e),e.defaultPrevented)return;if(this.locationMotion.set({x:S.offset.x,y:S.offset.y,z:S.offset.z},0).catch(noop$1),e.isFinal&&(this.fixFinalState(S),Object.assign(e,{__fixFinalState:!0}),this.locationMotion.set({distance:S.distance,x:S.offset.x,y:S.offset.y,z:S.offset.z},0).catch(noop$1)),e.isFinal){var B=this.renderer.getSize(new THREE__namespace.Vector2),I=2*e.velocityX*g/B.y,x=2*e.velocityY*g/B.y,w=new THREE__namespace.Vector3,H=new THREE__namespace.Vector3;w.setFromMatrixColumn(this.camera.matrix,0),w.multiplyScalar(-I),H.add(w),this.camera.pose.latitude<PANGESTURE_FORWARD_ANGLE?w.setFromMatrixColumn(this.camera.matrix,1):(w.setFromMatrixColumn(this.camera.matrix,0),w.crossVectors(this.camera.up,w)),w.multiplyScalar(x),H.add(w),this.inMomentumMovement={uuid:createUuid()},this.requestMomentumMovement(e,!0,{longitude:0,latitude:0,x:H.x,y:H.y,z:H.z},0)}}else{var p={x:e.center.x-i.x,y:e.center.y-i.y},C=this.coordinatesForOffset(p),L=formatRad(this.cameraMotion.value.longitude+C.longitude),k=clamp$1(this.cameraMotion.value.latitude+C.latitude,this.minLatitude,this.maxLatitude);this.camera.aspect<1&&Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(k=this.cameraMotion.value.latitude);var S=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:L,latitude:k,fov:this.camera.pose.fov,offset:this.camera.pose.offset,distance:this.camera.pose.distance});if(e.isFinal&&Object.assign(e,{__fixFinalState:!0}),e.state=S,this.emit("gesture.pan",e),e.defaultPrevented)return;if(e.isFinal?this.locationMotion.set({distance:S.distance,x:S.offset.x,y:S.offset.y,z:S.offset.z},0).catch(noop$1):this.cameraMotion.set({longitude:S.longitude,latitude:S.latitude},0).catch(noop$1),e.isFinal){var O=e.velocityX,G=e.velocityY;this.inMomentumMovement={uuid:createUuid()},this.requestMomentumMovement(e,!0,__assign(__assign({},this.coordinatesForOffset({x:O,y:G})),{x:0,y:0,z:0}),0)}}}},t.prototype.onPinchGesture=function(e){var r;if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var i=(r=this.pinchState)===null||r===void 0?void 0:r.distance;if(e.isFirst){this.pinchState={x:e.center.x,y:e.center.y,scale:1,distance:this.locationMotion.value.distance};return}if(typeof i!="undefined"){var o=this.models.bounding.getCenter(new THREE__namespace.Vector3),s=t.distanceFromModel(this.models,this.cameraMotion.value.fov,this.camera.aspect),u=clamp$1(i/e.scale,minDistance,1/0),c=e.state.offset.clone().sub(coordinatesToVector(e.state).setLength(u)),l=this.models.bounding.containsPoint(c),d;if(!l&&this.pinchState&&this.pinchState.scale>e.scale&&o.distanceTo(c)>s?d=e.state.distance:(d=u,this.pinchState&&(this.pinchState.scale=e.scale)),e.state.distance=d,this.emit("gesture.pinch",e),!e.defaultPrevented&&(this.locationMotion.set({distance:e.state.distance},0).catch(noop$1),e.pointerType!=="mouse"&&(e.type="gesture.pan",this.onPanGesture(e)),e.isFinal)){if(!("__fixFinalState"in e)){var f=e.state;this.fixFinalState(e.state);var m={x:f.offset.x,y:f.offset.y,z:f.offset.z,distance:f.distance};this.locationMotion.set(m,0).catch(noop$1)}delete this.panState,delete this.pinchState}}}},t.prototype.onMouseMove=function(e){var r,i;if(this.intersectMesh.parent&&!this.panState&&!this.pinchState&&!this.mouseWheelState&&(this.emit("gesture.mousemove",e),!e.defaultPrevented)){var o=e.center.raycaster;if(o.near=RAYCASTER_NEAR,o.far=500,e.isFinal&&this.intersectMesh.parent&&this.intersectMesh.visible===!0){this.hideIntersectMesh();return}var s=this.models.intersectRaycaster(o)[0],u=createEvent("intersect.update",{raycaster:o,intersection:s!=null?s:null,object:this.intersectMesh});if(this.emit("intersect.update",u),u.defaultPrevented){this.hideIntersectMesh();return}if(s){var c=(i=(r=s.face)===null||r===void 0?void 0:r.normal)!==null&&i!==void 0?i:new THREE__namespace.Vector3().copy(o.ray.direction).multiplyScalar(-1),l=c.clone(),d=s.point.clone();this.intersectMesh.position.copy(d);var f=o.ray.origin.distanceTo(d),m=2*Math.tan(.5*this.camera.fov/180*Math.PI),A=Math.max(f*m/10,1);this.intersectMesh.scale.set(A,A,A);var h=d.clone().add(l);if(this.intersectMesh.lookAt(h),Math.abs(c.y)>.99){var p=this.camera.position.clone().sub(d);this.intersectMesh.rotation.z=-Math.atan2(p.z,p.x)}this.intersectMesh.visible=!0,this.needsRender=!0}else this.hideIntersectMesh()}},t.prototype.onMouseWheel=function(e){if(this.initAnimationIsReady)if(this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh(),e.isFinal){var r=e.state;if(this.fixFinalState(r),this.emit("gesture.mousewheel",e),e.defaultPrevented)return;var i={x:r.offset.x,y:r.offset.y,z:r.offset.z,distance:r.distance};this.locationMotion.set(i,0).catch(noop$1)}else{var o=e.center.delta/2*Math.max(Math.log(this.locationMotion.value.distance),1),s=this.models.bounding.getCenter(new THREE__namespace.Vector3),u=t.distanceFromModel(this.models,this.cameraMotion.value.fov,this.camera.aspect),c=clamp$1(this.locationMotion.value.distance-o,minDistance,1/0),l=e.state.offset.clone().sub(coordinatesToVector(e.state).setLength(c)),d=this.models.bounding.containsPoint(l);if(this.modelInScreen!=="none"&&(c=!d&&o<0&&s.distanceTo(l)>u?e.state.distance:c),e.state.distance=c,this.emit("gesture.mousewheel",e),e.defaultPrevented)return;this.locationMotion.set({distance:c},0).catch(noop$1)}},t.prototype.onTapGesture=function(e){var r=this;this.userAction=e.userAction,this.stopMomentumMovement();var i=e.center.raycaster,o=this.getForwardObserverOrNot(i);if(!o)this.emit("gesture.tap",e);else{var s={longitude:this.camera.pose.longitude,latitude:0},u=__assign(__assign({},e.state),{mode:"Panorama",workCode:o.pano.workCode,panoIndex:o.pano.panoIndex,longitude:s.longitude,latitude:s.latitude,offset:o?o.position.clone():new THREE__namespace.Vector3,distance:0});if(e.state=u,this.emit("gesture.tap",e),!e.defaultPrevented&&(this.emit("pano.select",createEvent("pano.select",{prevPano:this.currentPano,state:u,userAction:e.userAction,options:s,progress:0,error:null})),o&&o.active)){var c=this.currentTapId=createUuid();this.preloadPano(o.pano).then(function(l){r.currentTapId===c&&r.emit("pano.request",createEvent("pano.request",{userAction:!0,prevPano:r.currentPano,progress:0,state:u,options:s,error:null}))})}}},t.prototype.onDblTapGesture=function(e){if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var r=e.state,i=e.center.raycaster,o=i.ray.origin.clone().add(i.ray.direction.clone().setLength(3)),s=1,u=3,c=s,l=this.models.intersectRaycaster(i)[0];if(l&&(o=l.point.clone(),l.distance>(s+u)/2?c=s:c=u),e.state.distance=c,e.state.offset=o,this.emit("gesture.dbltap",e),!e.defaultPrevented){var d={x:r.offset.x,y:r.offset.y,z:r.offset.z,distance:r.distance};this.locationMotion.set(d,360).catch(noop$1),this.hideIntersectMesh()}}},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.needsRender=!0},t.prototype.render=function(e,r){var i=this.renderer.getRenderTarget();this.updateScreenBuffer(r),e&&(r==="edl"?this.edlEffect.render(this.screenBuffers):r==="hq"?this.hqEffect.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}(BaseController);function isNil(n){return n==null}var _moveEvent={type:"move"},XRController=function(){function n(){this._targetRay=null,this._grip=null,this._hand=null,this._axes=[0,0]}return n.prototype.getHandSpace=function(){return this._hand===null&&(this._hand=new THREE__namespace.Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand},n.prototype.getTargetRaySpace=function(){return this._targetRay===null&&(this._targetRay=new THREE__namespace.Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new THREE__namespace.Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new THREE__namespace.Vector3),this._targetRay},n.prototype.getGripSpace=function(){return this._grip===null&&(this._grip=new THREE__namespace.Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new THREE__namespace.Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new THREE__namespace.Vector3),this._grip},n.prototype.dispatchEvent=function(t){return this._targetRay!==null&&this._targetRay.dispatchEvent(t),this._grip!==null&&this._grip.dispatchEvent(t),this._hand!==null&&this._hand.dispatchEvent(t),this},n.prototype.disconnect=function(t){return this.dispatchEvent({type:"disconnected",data:t}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this},n.prototype.getAxes=function(){return this._axes},n.prototype.update=function(t,e,r){var i=null,o=null,s=null,u=this._targetRay,c=this._grip,l=this._hand;if(t&&t.gamepad&&t.gamepad.axes&&(this._axes=[t.gamepad.axes[2],t.gamepad.axes[3]]),t&&e.session.visibilityState!=="visible-blurred")if(u!==null&&(i=e.getPose(t.targetRaySpace,r),i!==null&&(u.matrix.fromArray(i.transform.matrix),u.matrix.decompose(u.position,u.rotation,u.scale),i.linearVelocity?(u.hasLinearVelocity=!0,u.linearVelocity.copy(i.linearVelocity)):u.hasLinearVelocity=!1,i.angularVelocity?(u.hasAngularVelocity=!0,u.angularVelocity.copy(i.angularVelocity)):u.hasAngularVelocity=!1,this.dispatchEvent(_moveEvent))),l&&t.hand){s=!0;for(var d=0,f=t.hand.values();d<f.length;d++){var m=f[d],A=e.getJointPose(m,r);if(l.joints[m.jointName]===void 0){var h=new THREE__namespace.Group;h.matrixAutoUpdate=!1,h.visible=!1,l.joints[m.jointName]=h,l.add(h)}var p=l.joints[m.jointName];A!==null&&(p.matrix.fromArray(A.transform.matrix),p.matrix.decompose(p.position,p.rotation,p.scale),p.jointRadius=A.radius),p.visible=A!==null}var b=l.joints["index-finger-tip"],v=l.joints["thumb-tip"],g=b.position.distanceTo(v.position),E=.02,y=.005;l.inputState.pinching&&g>E+y?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&g<=E-y&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else c!==null&&t.gripSpace&&(o=e.getPose(t.gripSpace,r),o!==null&&(c.matrix.fromArray(o.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),o.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(o.linearVelocity)):c.hasLinearVelocity=!1,o.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(o.angularVelocity)):c.hasAngularVelocity=!1));return u!==null&&(u.visible=i!==null),c!==null&&(c.visible=o!==null),l!==null&&(l.visible=s!==null),this},n}(),framebufferScaleFactor=1,XRManager=function(){function n(t,e,r){var i,o,s,u,c;this.isPanorama=(i=r==null?void 0:r.isPanorama)!==null&&i!==void 0?i:!0;var l=navigator.userAgent.toLowerCase(),d;l.includes("pico")?d="Pico":l.includes("oculus")?d="Oculus":d="VP",this.machineType=(o=r==null?void 0:r.machineType)!==null&&o!==void 0?o:d,this.renderer=t,this.gl=e,this.enabled=!1,this.session=null,this.referenceSpaceType=(s=r==null?void 0:r.referenceSpaceType)!==null&&s!==void 0?s:"local-floor",this.referenceSpace=null,this.onSessionStartCallback=(u=r==null?void 0:r.onSessionStart)!==null&&u!==void 0?u:noop$1,this.onSessionEndCallback=(c=r==null?void 0:r.onSessionEnd)!==null&&c!==void 0?c:noop$1,this.controllers=[new XRController,new XRController],this.inputSourcesMap=new Map,this.cameraVR=new THREE__namespace.ArrayCamera,this.cameraL=new THREE__namespace.PerspectiveCamera,this.cameraR=new THREE__namespace.PerspectiveCamera,this.cameraL.viewport=new THREE__namespace.Vector4,this.cameraR.viewport=new THREE__namespace.Vector4,this.cameraL.layers.enable(1),this.cameraR.layers.enable(2),this.cameraVR.layers.enable(1),this.cameraVR.layers.enable(2),this.isPresenting=!1,this.currentDepthNear=null,this.currentDepthFar=null,this.cameraLPos=new THREE__namespace.Vector3,this.cameraRPos=new THREE__namespace.Vector3}return n.prototype.getController=function(t){var e=this.controllers[t];return e||console.warn("no controller find"),e.getTargetRaySpace()},n.prototype.getRightController=function(){if(!this.session)return null;var t=this.session.inputSources[0].handedness==="right"?0:1,e=this.controllers[t];return e||console.warn("no controller find"),e.getTargetRaySpace()},n.prototype.getLeftController=function(){if(!this.session)return null;var t=this.session.inputSources[0].handedness==="left"?0:1,e=this.controllers[t];return e||console.warn("no controller find"),e.getTargetRaySpace()},n.prototype.getControllerGrip=function(t){var e=this.controllers[t];return e||console.warn("no controller find"),e.getGripSpace()},n.prototype.getCameras=function(){return{cameraL:this.cameraL,cameraR:this.cameraR,cameraVR:this.cameraVR}},n.prototype.updateCamera=function(t,e){e===null?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.getInverse(t.matrixWorld)},n.prototype.setProjectionFromUnion=function(t,e,r){this.cameraLPos.setFromMatrixPosition(e.matrixWorld),this.cameraRPos.setFromMatrixPosition(r.matrixWorld);var i=this.cameraLPos.distanceTo(this.cameraRPos),o=e.projectionMatrix.elements,s=r.projectionMatrix.elements,u=o[14]/(o[10]-1),c=o[14]/(o[10]+1),l=(o[9]+1)/o[5],d=(o[9]-1)/o[5],f=(o[8]-1)/o[0],m=(s[8]+1)/s[0],A=u*f,h=u*m,p=i/(-f+m),b=p*-f;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(b),t.translateZ(p),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.getInverse(t.matrixWorld);var v=u+p,g=c+p,E=A-b,y=h+(i-b),T=l*c/g*v,_=d*c/g*v;t.projectionMatrix.makePerspective(E,y,T,_,v,g)},n.prototype.getCamera=function(t){this.cameraVR.near=this.cameraR.near=this.cameraL.near=t.near,this.cameraVR.far=this.cameraR.far=this.cameraL.far=t.far,this.session&&(this.currentDepthNear!==this.cameraVR.near||this.currentDepthFar!==this.cameraVR.far)&&(this.session.updateRenderState({depthNear:this.cameraVR.near,depthFar:this.cameraVR.far}),this.currentDepthNear=this.cameraVR.near,this.currentDepthFar=this.cameraVR.far);var e=t.parent,r=this.cameraVR.cameras;this.updateCamera(this.cameraVR,e);for(var i=0;i<r.length;i++)this.updateCamera(r[i],e);t.matrixWorld.copy(this.cameraVR.matrixWorld);for(var o=t.children,i=0,s=o.length;i<s;i++)o[i].updateMatrixWorld(!0);return r.length===2?this.setProjectionFromUnion(this.cameraVR,this.cameraL,this.cameraR):this.cameraVR.projectionMatrix.copy(this.cameraL.projectionMatrix),this.cameraVR},n.prototype.updateInputSources=function(t){if(!this.session){console.warn("session is lose!");return}for(var e=this.session.inputSources,r=0;r<this.controllers.length;r++)this.inputSourcesMap.set(e[r],this.controllers[r]);for(var r=0;r<t.removed.length;r++){var i=t.removed[r],o=this.inputSourcesMap.get(i);o&&(o.dispatchEvent({type:"disconnected",data:i}),this.inputSourcesMap.delete(i))}for(var r=0;r<t.added.length;r++){var i=t.added[r],o=this.inputSourcesMap.get(i);o&&o.dispatchEvent({type:"connected",data:i})}},n.prototype.onSessionEvent=function(t){var e=this.inputSourcesMap.get(t.inputSource);e&&e.dispatchEvent({type:t.type})},n.prototype.onSessionEnd=function(){this.inputSourcesMap.forEach(function(t,e){t.disconnect(e)}),this.inputSourcesMap.clear(),this.renderer.setFramebuffer(null),this.renderer.setRenderTarget(this.renderer.getRenderTarget()),this.isPresenting=!1,this.session=null,AnimationFrameLoop.shared.setContext(null),this.onSessionEndCallback()},n.prototype.onRequestReferenceSpace=function(t){this.referenceSpace=t,this.isPresenting=!0,this.session&&this.onSessionStartCallback(this.session)},n.prototype.setSession=function(t){var e=this;if(this.session=t,this.session){this.session.addEventListener("select",function(i){e.onSessionEvent(i)}),this.session.addEventListener("selectstart",function(i){e.onSessionEvent(i)}),this.session.addEventListener("selectend",function(i){e.onSessionEvent(i)}),this.session.addEventListener("squeeze",function(i){e.onSessionEvent(i)}),this.session.addEventListener("squeezestart",function(i){e.onSessionEvent(i)}),this.session.addEventListener("squeezeend",function(i){e.onSessionEvent(i)}),this.session.addEventListener("end",function(i){e.onSessionEnd()});var r=this.gl.getContextAttributes();this.gl.makeXRCompatible().then(function(){var i={antialias:r==null?void 0:r.antialias,alpha:r==null?void 0:r.alpha,depth:r==null?void 0:r.depth,stencil:r==null?void 0:r.stencil,framebufferScaleFactor};if(!e.session){console.error("session is lose while set session!");return}switch(e.machineType){case"Pico":case"VP":e.session.updateRenderState({baseLayer:new XRWebGLLayer(e.session,e.gl,i)});break;case"Oculus":e.session.updateRenderState({layers:[new XRWebGLLayer(e.session,e.gl,i)]});break;default:e.machineType;break}e.session.requestReferenceSpace(e.referenceSpaceType).then(function(o){e.onRequestReferenceSpace(o)}),e.session.addEventListener("inputsourceschange",function(o){e.updateInputSources(o)})})}},n}(),LineSegmentsGeometry=function(n){__extends(t,n);function t(){var e=n.call(this)||this;e.type="LineSegmentsGeometry";var r=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],i=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],o=[0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5];return e.setIndex(o),e.setAttribute("position",new THREE__namespace.Float32BufferAttribute(r,3)),e.setAttribute("uv",new THREE__namespace.Float32BufferAttribute(i,2)),e}return t.prototype.applyMatrix4=function(e){var r=this.attributes.instanceStart,i=this.attributes.instanceEnd;return r!==void 0&&(r.applyMatrix4(e),i.applyMatrix4(e),r.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this},t.prototype.setPositions=function(e){var r;e instanceof Float32Array?r=e:Array.isArray(e)?r=new Float32Array(e):r=new Float32Array;var i=new THREE__namespace.InstancedInterleavedBuffer(r,6,1);return this.setAttribute("instanceStart",new THREE__namespace.InterleavedBufferAttribute(i,3,0)),this.setAttribute("instanceEnd",new THREE__namespace.InterleavedBufferAttribute(i,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this},t.prototype.setColors=function(e){var r;e instanceof Float32Array?r=e:Array.isArray(e)?r=new Float32Array(e):r=new Float32Array;var i=new THREE__namespace.InstancedInterleavedBuffer(r,6,1);return this.setAttribute("instanceColorStart",new THREE__namespace.InterleavedBufferAttribute(i,3,0)),this.setAttribute("instanceColorEnd",new THREE__namespace.InterleavedBufferAttribute(i,3,3)),this},t.prototype.fromWireframeGeometry=function(e){return this.setPositions(e.attributes.position.array),this},t.prototype.fromEdgesGeometry=function(e){return this.setPositions(e.attributes.position.array),this},t.prototype.fromMesh=function(e){return this.fromWireframeGeometry(new THREE__namespace.WireframeGeometry(e.geometry)),this},t.prototype.fromLineSegments=function(e){var r=e.geometry;if(r instanceof THREE__namespace.Geometry){var i=new THREE__namespace.BufferGeometry().fromGeometry(r);this.setPositions(i.attributes.position.array)}else r instanceof THREE__namespace.BufferGeometry&&this.setPositions(r.attributes.position.array);return this},t.prototype.computeBoundingBox=function(){this.boundingBox===null&&(this.boundingBox=new THREE__namespace.Box3);var e=this.attributes.instanceStart,r=this.attributes.instanceEnd;if(e!==void 0&&r!==void 0){var i=new THREE__namespace.Box3;this.boundingBox.setFromBufferAttribute(e),i.setFromBufferAttribute(r),this.boundingBox.union(i)}},t.prototype.computeBoundingSphere=function(){this.boundingSphere===null&&(this.boundingSphere=new THREE__namespace.Sphere),this.boundingBox===null&&this.computeBoundingBox();var e=this.attributes.instanceStart,r=this.attributes.instanceEnd;if(e!==void 0&&r!==void 0){var i=this.boundingSphere.center;this.boundingBox.getCenter(i);for(var o=0,s=new THREE__namespace.Vector3,u=0,c=e.count;u<c;u++)s.fromBufferAttribute(e,u),o=Math.max(o,i.distanceToSquared(s)),s.fromBufferAttribute(r,u),o=Math.max(o,i.distanceToSquared(s));this.boundingSphere.radius=Math.sqrt(o),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}},t.prototype.toJSON=function(){},t}(THREE__namespace.InstancedBufferGeometry);Object.assign(LineSegmentsGeometry.prototype,{isLineSegmentsGeometry:!0});var lineShader={uniforms:THREE__namespace.UniformsUtils.merge([THREE__namespace.UniformsLib.common,THREE__namespace.UniformsLib.fog,{linewidth:{value:1},resolution:{value:new THREE__namespace.Vector2(1,1)},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1},opacity:{value:1}}]),vertexShader:`
|
|
1863
1863
|
#include <common>
|
|
1864
1864
|
#include <color_pars_vertex>
|
|
1865
1865
|
#include <fog_pars_vertex>
|
|
@@ -2058,7 +2058,7 @@ void main() {
|
|
|
2058
2058
|
#include <premultiplied_alpha_fragment>
|
|
2059
2059
|
|
|
2060
2060
|
}
|
|
2061
|
-
`},LineMaterial=function(n){__extends(t,n);function t(e){var r=n.call(this,{uniforms:THREE__namespace.UniformsUtils.clone(lineShader.uniforms),vertexShader:lineShader.vertexShader,fragmentShader:lineShader.fragmentShader,clipping:!0})||this;return r.type="LineMaterial",r.dashed=!1,Object.defineProperties(r,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(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}(THREE__namespace.ShaderMaterial);Object.assign(LineMaterial.prototype,{isLineMaterial:!0});var LineSegments2=function(n){__extends(t,n);function t(e,r){var i=n.call(this)||this;return i.type="LineSegments2",i.geometry=e!==void 0?e:new LineSegmentsGeometry,i.material=r!==void 0?r:new LineMaterial({color:Math.random()*16777215}),i}return t.prototype.computeLineDistances=function(){for(var e=this.geometry,r=e.attributes.instanceStart,i=e.attributes.instanceEnd,o=new Float32Array(2*r.count),s=new THREE__namespace.Vector3,u=new THREE__namespace.Vector3,c=0,l=0,d=r.count;c<d;c++,l+=2)s.fromBufferAttribute(r,c),u.fromBufferAttribute(i,c),o[l]=l===0?0:o[l-1],o[l+1]=o[l]+s.distanceTo(u);var f=new THREE__namespace.InstancedInterleavedBuffer(o,2,1);return e.setAttribute("instanceDistanceStart",new THREE__namespace.InterleavedBufferAttribute(f,1,0)),e.setAttribute("instanceDistanceEnd",new THREE__namespace.InterleavedBufferAttribute(f,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,o=e.camera,s=o.projectionMatrix,u=this.geometry,c=this.material,l=c.resolution,d=c.linewidth,f=u.attributes.instanceStart,m=u.attributes.instanceEnd,A=new THREE__namespace.Vector4,h=new THREE__namespace.Vector4,p=new THREE__namespace.Vector4,b=new THREE__namespace.Vector3,v=new THREE__namespace.Matrix4,g=new THREE__namespace.Line3,E=new THREE__namespace.Vector3;i.at(1,p),p.w=1,p.applyMatrix4(o.matrixWorldInverse),p.applyMatrix4(s),p.multiplyScalar(1/p.w),p.x*=l.x/2,p.y*=l.y/2,p.z=0,b.copy(p);var y=this.matrixWorld;v.multiplyMatrices(o.matrixWorldInverse,y);for(var T=0,_=f.count;T<_;T++){A.fromBufferAttribute(f,T),h.fromBufferAttribute(m,T),A.w=1,h.w=1,A.applyMatrix4(v),h.applyMatrix4(v),A.applyMatrix4(s),h.applyMatrix4(s),A.multiplyScalar(1/A.w),h.multiplyScalar(1/h.w);var R=A.z<-1&&h.z<-1,S=A.z>1&&h.z>1;if(!(R||S)){A.x*=l.x/2,A.y*=l.y/2,h.x*=l.x/2,h.y*=l.y/2,g.start.copy(A),g.start.z=0,g.end.copy(h),g.end.z=0;var B=g.closestPointToPointParameter(b,!0);g.at(B,E);var I=THREE__namespace.MathUtils.lerp(A.z,h.z,B),x=I>=-1&&I<=1,w=b.distanceTo(E)<d*.5;if(x&&w){g.start.fromBufferAttribute(f,T),g.end.fromBufferAttribute(m,T),g.start.applyMatrix4(y),g.end.applyMatrix4(y);var H=new THREE__namespace.Vector3,C=new THREE__namespace.Vector3;i.distanceSqToSegment(g.start,g.end,C,H),r.push({point:C,pointOnLine:H,distance:i.origin.distanceTo(C),object:this,faceIndex:T})}}}},t}(THREE__namespace.Mesh);Object.assign(LineSegments2.prototype,{isLineSegments2:!0});var Line2=function(n){__extends(t,n);function t(e,r){var i=n.call(this,e,r)||this;return i.type="Line2",i}return t}(LineSegments2);Object.assign(Line2.prototype,{isLine2:!0});var LineGeometry=function(n){__extends(t,n);function t(){var e=n.call(this)||this;return e.type="LineGeometry",e}return t.prototype.setPositions=function(e){for(var r=e.length-3,i=new Float32Array(2*r),o=0;o<r;o+=3)i[2*o]=e[o],i[2*o+1]=e[o+1],i[2*o+2]=e[o+2],i[2*o+3]=e[o+3],i[2*o+4]=e[o+4],i[2*o+5]=e[o+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),o=0;o<r;o+=3)i[2*o]=e[o],i[2*o+1]=e[o+1],i[2*o+2]=e[o+2],i[2*o+3]=e[o+3],i[2*o+4]=e[o+4],i[2*o+5]=e[o+5];return n.prototype.setColors.call(this,i),this},t.prototype.fromLine=function(e){var r=e.geometry;if(r instanceof THREE__namespace.Geometry){var i=new THREE__namespace.BufferGeometry().fromGeometry(r);this.setPositions(i.attributes.position.array)}else r instanceof THREE__namespace.BufferGeometry&&this.setPositions(r.attributes.position.array);return this},t.prototype.copy=function(){return this},t}(LineSegmentsGeometry);Object.assign(LineGeometry.prototype,{isLineGeometry:!0});var circleImageURL="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==",DEFAULT_COLOR=14467195,POINT_SIZE=8,DEFAULT_LINEWIDTH=2,DEFAULT_DASHSCALE=20,sharedCircleTexture=null,FiveLine=function(n){__extends(t,n);function t(e,r){e===void 0&&(e=new THREE__namespace.Vector3),r===void 0&&(r=new THREE__namespace.Vector3);var i=n.call(this)||this;i.type="FiveLine",i.needsRender=!0;var o=new LineGeometry,s=new LineMaterial({color:DEFAULT_COLOR,linewidth:DEFAULT_LINEWIDTH,dashScale:DEFAULT_DASHSCALE,dashed:!1});i.line=new Line2(o,s);var u=new THREE__namespace.BufferGeometry,c=new THREE__namespace.PointsMaterial({color:DEFAULT_COLOR,size:POINT_SIZE,map:sharedCircleTexture||(sharedCircleTexture=new THREE__namespace.TextureLoader().load(circleImageURL)),sizeAttenuation:!1,transparent:!0});return i.points=new THREE__namespace.Points(u,c),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.2.0-alpha.14"},enumerable:!1,configurable:!0}),t.prototype.setPoints=function(e,r){var i=[].concat(e.toArray(),r.toArray());this.points.geometry.setAttribute("position",new THREE__namespace.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 THREE__namespace.Vector3(e[0],e[1],e[2]),new THREE__namespace.Vector3(e[3],e[4],e[5])]},t.prototype.setMaterial=function(e){var r=this.line.material;for(var i in e)if(e.hasOwnProperty(i)){var o=e[i];i==="dashed"?(r.dashed=o,o?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}(THREE__namespace.Object3D);Object.assign(FiveLine.prototype,{isFiveLine:!0});var Constants={Handedness:Object.freeze({NONE:"none",LEFT:"left",RIGHT:"right"}),ComponentState:Object.freeze({DEFAULT:"default",TOUCHED:"touched",PRESSED:"pressed"}),ComponentProperty:Object.freeze({BUTTON:"button",X_AXIS:"xAxis",Y_AXIS:"yAxis",STATE:"state"}),ComponentType:Object.freeze({TRIGGER:"trigger",SQUEEZE:"squeeze",TOUCHPAD:"touchpad",THUMBSTICK:"thumbstick",BUTTON:"button"}),ButtonTouchThreshold:.05,AxisTouchThreshold:.1,VisualResponseProperty:Object.freeze({TRANSFORM:"transform",VISIBILITY:"visibility"})};function fetchJsonFile(n){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,fetch(n)];case 1:if(t=e.sent(),t.ok)return[2,t.json()];throw new Error(t.statusText)}})})}function fetchProfilesList(n){return __awaiter(this,void 0,void 0,function(){var t,e;return __generator(this,function(r){switch(r.label){case 0:if(!n)throw new Error("No basePath supplied");return t="profilesList.json",[4,fetchJsonFile("".concat(n,"/").concat(t))];case 1:return e=r.sent(),[2,e]}})})}function fetchProfile(n,t){return __awaiter(this,arguments,void 0,function(e,r,i,o){var s,u,c,l,d,f;return i===void 0&&(i=null),o===void 0&&(o=!0),__generator(this,function(m){switch(m.label){case 0:if(!e)throw new Error("No xrInputSource supplied");if(!r)throw new Error("No basePath supplied");return[4,fetchProfilesList(r)];case 1:if(s=m.sent(),e.profiles.some(function(A){var h=s[A];return h&&(u={profileId:A,profilePath:"".concat(r,"/").concat(h.path),deprecated:!!h.deprecated}),!!u}),!u){if(!i)throw new Error("No matching profile name found");if(c=s[i],!c)throw new Error('No matching profile name found and default profile "'.concat(i,'" missing.'));u={profileId:i,profilePath:"".concat(r,"/").concat(c.path),deprecated:!!c.deprecated}}return[4,fetchJsonFile(u.profilePath)];case 2:if(l=m.sent(),o){if(f=void 0,f=l.layouts[e.handedness],!f)throw new Error("No matching handedness, ".concat(e.handedness,", in profile ").concat(u.profileId));f.assetPath&&(d=u.profilePath.replace("profile.json",f.assetPath))}return[2,{profile:l,assetPath:d}]}})})}var defaultComponentValues={xAxis:0,yAxis:0,button:0,state:Constants.ComponentState.DEFAULT};function normalizeAxes(n,t){n===void 0&&(n=0),t===void 0&&(t=0);var e=n,r=t,i=Math.sqrt(n*n+t*t);if(i>1){var o=Math.atan2(t,n);e=Math.cos(o),r=Math.sin(o)}var s={normalizedXAxis:e*.5+.5,normalizedYAxis:r*.5+.5};return s}var VisualResponse=function(){function n(t){this.componentProperty=t.componentProperty,this.states=t.states,this.valueNodeName=t.valueNodeName,this.valueNodeProperty=t.valueNodeProperty,this.valueNodeProperty===Constants.VisualResponseProperty.TRANSFORM&&(this.minNodeName=t.minNodeName,this.maxNodeName=t.maxNodeName),this.value=0,this.updateFromComponent(defaultComponentValues)}return n.prototype.updateFromComponent=function(t){var e=t.xAxis,r=t.yAxis,i=t.button,o=t.state,s=normalizeAxes(e,r),u=s.normalizedXAxis,c=s.normalizedYAxis;switch(this.componentProperty){case Constants.ComponentProperty.X_AXIS:this.value=this.states.includes(o)?u:.5;break;case Constants.ComponentProperty.Y_AXIS:this.value=this.states.includes(o)?c:.5;break;case Constants.ComponentProperty.BUTTON:this.value=this.states.includes(o)?i:0;break;case Constants.ComponentProperty.STATE:this.valueNodeProperty===Constants.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(o):this.value=this.states.includes(o)?1:0;break;default:throw new Error("Unexpected visualResponse componentProperty ".concat(this.componentProperty))}},n}(),Component=function(){function n(t,e){var r=this;if(!t||!e||!e.visualResponses||!e.gamepadIndices||Object.keys(e.gamepadIndices).length===0)throw new Error("Invalid arguments supplied");this.id=t,this.type=e.type,this.rootNodeName=e.rootNodeName,this.touchPointNodeName=e.touchPointNodeName,this.visualResponses={},Object.keys(e.visualResponses).forEach(function(i){var o=new VisualResponse(e.visualResponses[i]);r.visualResponses[i]=o}),this.gamepadIndices=Object.assign({},e.gamepadIndices),this.values={state:Constants.ComponentState.DEFAULT,button:this.gamepadIndices.button!==void 0?0:void 0,xAxis:this.gamepadIndices.xAxis!==void 0?0:void 0,yAxis:this.gamepadIndices.yAxis!==void 0?0:void 0}}return Object.defineProperty(n.prototype,"data",{get:function(){var t=__assign({id:this.id},this.values);return t},enumerable:!1,configurable:!0}),n.prototype.updateFromGamepad=function(t){var e=this;if(this.values.state=Constants.ComponentState.DEFAULT,this.gamepadIndices.button!==void 0&&t.buttons.length>this.gamepadIndices.button){var r=t.buttons[this.gamepadIndices.button];this.values.button=r.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,r.pressed||this.values.button===1?this.values.state=Constants.ComponentState.PRESSED:(r.touched||this.values.button>Constants.ButtonTouchThreshold)&&(this.values.state=Constants.ComponentState.TOUCHED)}this.gamepadIndices.xAxis!==void 0&&t.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=t.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===Constants.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>Constants.AxisTouchThreshold&&(this.values.state=Constants.ComponentState.TOUCHED)),this.gamepadIndices.yAxis!==void 0&&t.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=t.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===Constants.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>Constants.AxisTouchThreshold&&(this.values.state=Constants.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach(function(i){i.updateFromComponent(e.values)})},n}(),MotionController=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(o){var s=i.layoutDescription.components[o];i.components[o]=new Component(o,s)}),this.updateFromGamepad()}return Object.defineProperty(n.prototype,"gripSpace",{get:function(){return this.xrInputSource.gripSpace},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"targetRaySpace",{get:function(){return this.xrInputSource.targetRaySpace},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"data",{get:function(){var t=[];return Object.values(this.components).forEach(function(e){t.push(e.data)}),t},enumerable:!1,configurable:!0}),n.prototype.updateFromGamepad=function(){var t=this;Object.values(this.components).forEach(function(e){e.updateFromGamepad(t.xrInputSource.gamepad)})},n}(),DEFAULT_PROFILES_PATH="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",DEFAULT_PROFILE="generic-trigger",XRControllerModel=function(n){__extends(t,n);function t(){var e=n.call(this)||this;return e.motionController=null,e.envMap=null,e}return t.prototype.setEnvironmentMap=function(e){var r=this;return this.envMap==e?this:(this.envMap=e,this.traverse(function(i){i instanceof THREE__namespace.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 o=i.valueNode,s=i.minNode,u=i.maxNode,c=i.value,l=i.valueNodeProperty;o&&(l===Constants.VisualResponseProperty.VISIBILITY?o.visible=c:l===Constants.VisualResponseProperty.TRANSFORM&&(o.quaternion.copy(s.quaternion).slerp(u.quaternion,c),o.position.lerpVectors(s.position,u.position,c)))})}))},t}(THREE.Object3D);function findNodes(n,t){Object.values(n.components).forEach(function(e){var r=e.type,i=e.touchPointNodeName,o=e.visualResponses;if(r===Constants.ComponentType.TOUCHPAD)if(e.touchPointNode=t.getObjectByName(i),e.touchPointNode){var s=new THREE.SphereGeometry(.001),u=new THREE.MeshBasicMaterial({color:255}),c=new THREE.Mesh(s,u);e.touchPointNode.add(c)}else console.warn("Could not find touch dot, ".concat(e.touchPointNodeName,", in touchpad component ").concat(e.id));Object.values(o).forEach(function(l){var d=l.valueNodeName,f=l.minNodeName,m=l.maxNodeName,A=l.valueNodeProperty;if(A===Constants.VisualResponseProperty.TRANSFORM){if(l.minNode=t.getObjectByName(f),l.maxNode=t.getObjectByName(m),!l.minNode){console.warn("Could not find ".concat(f," in the model"));return}if(!l.maxNode){console.warn("Could not find ".concat(m," in the model"));return}}l.valueNode=t.getObjectByName(d),l.valueNode||console.warn("Could not find ".concat(d," in the model"))})})}function addAssetSceneToControllerModel(n,t){findNodes(n.motionController,t),n.envMap&&t.traverse(function(e){e instanceof THREE__namespace.Mesh&&e.isMesh&&(e.material.envMap=n.envMap,e.material.needsUpdate=!0)}),n.add(t)}var XRControllerModelFactory=function(){function n(t){t===void 0&&(t=null),this.gltfLoader=t,this.path=DEFAULT_PROFILES_PATH,this._assetCache={}}return n.prototype.createControllerModel=function(t){var e=this,r=new XRControllerModel,i=null;return t.addEventListener("connected",function(o){var s=o.data;s.targetRayMode!=="tracked-pointer"||!s.gamepad||fetchProfile(s,e.path,DEFAULT_PROFILE).then(function(u){var c=u.profile,l=u.assetPath;r.motionController=new MotionController(s,c,l);var d=e._assetCache[r.motionController.assetUrl];if(d)i=d.scene.clone(),addAssetSceneToControllerModel(r,i);else{if(!e.gltfLoader)throw new Error("GLTFLoader not set.");e.gltfLoader.load(r.motionController.assetUrl,function(f){e._assetCache[r.motionController.assetUrl]=f,i=f.scene.clone(),addAssetSceneToControllerModel(r,i)})}}).catch(function(u){console.warn(u)})}),t.addEventListener("disconnected",function(){r.motionController=null,r.remove(i),i=null}),r},n}();function mapPanoResource(n,t){return n}var CONTROLLER_EVNET_DELTA_TIME=300,ROTATE_Y_PI_MATRIX=new THREE__namespace.Matrix4().makeRotationAxis(new THREE__namespace.Vector3(0,1,0),Math.PI),PANO_TEXTURE_SCALE=new THREE__namespace.Vector3(-1,1,1),XRPanoramaController=function(n){__extends(t,n);function t(e){var r=n.call(this,e)||this;r.xrManager=new XRManager(r.renderer,r.renderer.getContext(),{onSessionStart:function(c){r.emit("xr.session.start",createEvent("xr.session.start",{session:c,machineType:r.xrManager.machineType}))},onSessionEnd:function(){r.emit("xr.session.end",createEvent("xr.session.end",{session:null,machineType:r.xrManager.machineType}))}}),r.xrControllerRay={left:new THREE__namespace.Raycaster,right:new THREE__namespace.Raycaster},r.xrControllerRay.left.params.Points={threshold:.1},r.xrControllerRay.right.params.Points={threshold:.1},r.gazeRay=null,r.pointerLines={left:new FiveLine,right:new FiveLine},r.pointerLines.left.visible=!1,r.pointerLines.right.visible=!0,r.pointerLines.left.setMaterial({color:new THREE__namespace.Vector3(1,1,1)}),r.pointerLines.left.points.material.depthTest=!1,r.pointerLines.right.setMaterial({color:new THREE__namespace.Vector3(1,1,1)}),r.pointerLines.right.points.material.depthTest=!1,r.controllerWrappers=[new THREE__namespace.Group,new THREE__namespace.Group];var i=r.xrManager.getController(0);r.controllerWrappers[0].add(i);var o=r.xrManager.getController(1);r.controllerWrappers[1].add(o);var s=new XRControllerModelFactory;s.gltfLoader={load:function(c,l){internalFetcher.ajax(c,{responseType:"arraybuffer"}).then(function(d){var f;return parseGltf(d.body,{resourcePath:c.slice(0,c.lastIndexOf("/")+1),search:(f=c.split("?")[1])!==null&&f!==void 0?f:"",fetcher:internalFetcher})}).then(function(d){return l(d)})}},(r.xrManager.machineType==="Oculus"||r.xrManager.machineType==="Pico")&&r.scene.add(r.pointerLines.left,r.pointerLines.right,r.controllerWrappers[0],r.controllerWrappers[1]),r.panoResources={},r.panoResources[r.locationMotion.keyframes[0].key=r.locationMotion.keyframes[1].key=createUuid()]={panoId:panoStringify(r.currentPano),leftPanoPicture:null,position:r.camera.pose.offset.clone(),effect:"fade",fixCameraTransform:new THREE__namespace.Matrix4},r.parallaxCameraMatrixs=[];var u=AnimationFrameLoop.shared.getContext();return u?(r.on("xr.session.end",function(){r.scene.remove(r.pointerLines.left,r.pointerLines.right)}),r.xrManager.setSession(u),r.on("xr.session.start",function(){var c=r.xrManager.getControllerGrip(0);c.add(s.createControllerModel(c)),r.controllerWrappers[0].add(c);var l=r.xrManager.getControllerGrip(1);l.add(s.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=__assign(__assign({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return n.parseArgs.call(this,r)},t.initAnimationEndState=function(e){var r=this.parseArgs(e),i=n.initAnimationEndState.call(this,r);return __assign(__assign({},i),{mode:"XRPanorama"})},t.prototype.moveToPano=function(e,r,i){var o=this,s,u,c,l,d=(s=r.effect)!==null&&s!==void 0?s:"fade";this.userAction=i,this.stopMomentumMovement();var f=this.works.getResolvedObserver(e);if(!f)throw new Error("Invalid PanoIndex");var m=getImageSizeFromURL(f.images.up),A=this.imageOptions.size;typeof A=="undefined"&&f&&m&&(A=Number(m)),typeof A=="undefined"&&(A=2048);var h=this.imageOptions.transform,p=function(x,w){return mapPanoResource(applyImageURLOptions(x,h,w))},b=__assign({key:"pano.".concat(f.panoId)},pick(this.imageOptions,["format","size","quality"])),v=f.images,g=(c=(u=f.images.tiles)===null||u===void 0?void 0:u.filter(function(x){return x.size>A}))!==null&&c!==void 0?c:null,E="pano:"+jsonHash([v,b,h]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===E)return;var y=this.pendingTextureTask.panoId;(l=this.panoMeshes[y])===null||l===void 0||l.setProgress(0),this.emit("pano.texture.abort",createEvent("pano.texture.abort",{error:null,progress:0,meta:null,pano:f.pano}))}var T=this.models.getMaterial()||{},_=T.pano0,R=T.pano1,S;if((_==null?void 0:_.map.name)===E?S=_:(R==null?void 0:R.map.name)===E&&(S=R),S){var B={panoId:f.panoId,effect:d,leftPanoPicture:{zoom:1,map:S.map,luminanceMap:S.luminanceMap,matrix:new THREE__namespace.Matrix4().compose(f.position,f.quaternion,PANO_TEXTURE_SCALE)},position:f.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};this.doMoveToPano(f.pano,B,r);return}var I="move-to-pano-"+f.panoId;this.pending.add(I),this.pendingTextureTask={panoId:f.panoId,hash:E,onLoad:function(x){if(o.pending.delete(I),o.destroyed)x.body.dispose();else{x.body.name=E;var w={panoId:f.panoId,effect:d,leftPanoPicture:{zoom:1,map:x.body,luminanceMap:null,matrix:new THREE__namespace.Matrix4().compose(f.position,f.quaternion,PANO_TEXTURE_SCALE)},position:f.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};o.doMoveToPano(f.pano,w,r)}},onError:function(x){o.pending.delete(I);var w=__assign(__assign(__assign({},f.pano),{mode:o.mode}),clonePose(o.camera.pose));o.emit("pano.error",createEvent("pano.error",{error:x,userAction:o.userAction,options:r,prevPano:o.currentPano,progress:0,state:w})),o.emit("pano.cancel",createEvent("pano.cancel",{error:null,userAction:o.userAction,options:r,prevPano:o.currentPano,progress:0,state:w})),r.moveCancelCallback&&r.moveCancelCallback()}},Promise.all([this.tileLevelForFov&&g&&g.length?this.textureLoader.loadTiledCubeTexture(v,g,{tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:p,options:b},format:THREE__namespace.RGBAFormat,minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,generateMipmaps:!1,viaAjax:!0,fetcher:getFetcher(f.work)},void 0,void 0,function(x){var w,H;o.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:x,meta:null,pano:f.pano})),((w=o.pendingTextureTask)===null||w===void 0?void 0:w.hash)===E&&((H=o.panoMeshes[f.panoId])===null||H===void 0||H.setProgress(x))},this.renderer):this.textureLoader.loadCubeTexture(v,{imageURL:{transform:p,options:b},format:THREE__namespace.RGBAFormat,fetcher:getFetcher(f.work)},void 0,void 0,function(x){var w,H;((w=o.pendingTextureTask)===null||w===void 0?void 0:w.hash)===E&&((H=o.panoMeshes[f.panoId])===null||H===void 0||H.setProgress(x)),o.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:x,meta:null,pano:f.pano}))},this.renderer)]).then(function(x){var w,H,C=x[0];((w=o.pendingTextureTask)===null||w===void 0?void 0:w.hash)===E?(o.pendingTextureTask.onLoad(C),(H=o.panoMeshes[f.panoId])===null||H===void 0||H.setProgress(0),delete o.pendingTextureTask,o.emit("pano.texture.success",createEvent("pano.texture.success",{error:null,progress:1,meta:C.meta,pano:f.pano}))):C.body.dispose()}).catch(function(x){var w,H;((w=o.pendingTextureTask)===null||w===void 0?void 0:w.hash)===E&&(o.pendingTextureTask.onError(x),(H=o.panoMeshes[f.panoId])===null||H===void 0||H.setProgress(0),delete o.pendingTextureTask,o.emit("pano.texture.error",createEvent("pano.texture.error",{error:x,progress:0,meta:null,pano:f.pano})),o.emit("error",x))}),this.emit("pano.texture.load",createEvent("pano.texture.load",{error:null,progress:0,meta:null,pano:f.pano}))},t.prototype.doMoveToPano=function(e,r,i){var o=this,s,u,c,l,d,f,m,A,h,p;i===void 0&&(i={});var b=now(),v=createUuid();this.panoResources[v]=r;var g=1,E,y,T;if(this.locationMotion.ended){var _=this.locationMotion.getKeyFrameSegment(b);_[0];var R=_[1],S=this.locationMotion.value,B=this.panoResourceFromLocationMotionKeyframe(R).position,I=r.position;E=Math.max(B.distanceTo(I),g),y=[{key:R.key,progress:0,value:__assign(__assign({},S),{count:0})},{key:v,progress:1,value:{distance:0,count:1}}],T=0}else{var x=this.locationMotion.getKeyFrameSegment(b),w=x[0],R=x[1],S=this.locationMotion.value,H=this.panoResourceFromLocationMotionKeyframe(w).position,B=this.panoResourceFromLocationMotionKeyframe(R).position,I=r.position,C=R.value.count-S.count,L=Math.max(H.distanceTo(B),g)*C,k=Math.max(B.distanceTo(I),g);E=L+k,y=[{key:w.key,progress:0,value:__assign({},S)},{key:R.key,progress:L/E,value:R.value},{key:v,progress:1,value:{count:R.value.count+1,distance:0}}];var O=this.locationMotionKeyframesLength(this.locationMotion.keyframes),G=this.locationMotionKeyframesLength(y);T=this.locationMotion.getProgressVelocity(b)*O/G}var Q=r.effect==="instant"?0:this.calculateMovingDuration(i.duration,r.effect==="fly"?E:0),D={longitude:i.longitude,latitude:i.latitude,fov:i.fov},U=__assign(__assign({},e),{mode:this.mode,longitude:(s=D.longitude)!==null&&s!==void 0?s:this.camera.pose.longitude,latitude:(u=D.latitude)!==null&&u!==void 0?u:this.camera.pose.latitude,fov:(c=D.fov)!==null&&c!==void 0?c:this.camera.pose.fov,offset:r.position.clone(),distance:0}),K=this.currentPano;if(this.emit("pano.moveTo",createEvent("pano.moveTo",{options:i,prevPano:K,progress:0,state:U,userAction:this.userAction,error:null})),i.moveStartCallback&&i.moveStartCallback(U),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=noop$1,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),r.effect==="fly")this.cameraMotion.set(D,Q).catch(noop$1);else{var z=coordinatesToVector({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude}),q=coordinatesToVector({longitude:(l=D.longitude)!==null&&l!==void 0?l:this.cameraMotion.value.longitude,latitude:(d=D.latitude)!==null&&d!==void 0?d:this.cameraMotion.value.latitude}),J=new THREE__namespace.Object3D;J.lookAt(z);var j=new THREE__namespace.Matrix4().makeRotationFromQuaternion(J.quaternion);J.lookAt(q);var re=new THREE__namespace.Matrix4().makeRotationFromQuaternion(J.quaternion),W=new THREE__namespace.Matrix4().getInverse(j).premultiply(re),te=this.cameraMotion.value.fov,$=(f=D.fov)!==null&&f!==void 0?f:this.cameraMotion.value.fov,ne=1;r.effect==="zoomin"?ne=1.5:r.effect==="zoomout"&&(ne=.4);for(var ee=$*ne,fe=0;fe<y.length-1;fe++){var ae=y[fe].key;if(ae){var se=this.panoResources[ae];se&&(se.fixCameraTransform.copy(W),se.leftPanoPicture&&(se.leftPanoPicture.zoom=Math.tan(te/2/180*Math.PI)/Math.tan(ee/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:(m=D.longitude)!==null&&m!==void 0?m:this.cameraMotion.value.longitude,latitude:(A=D.latitude)!==null&&A!==void 0?A:this.cameraMotion.value.latitude,fov:ee}},{progress:1,value:{longitude:(h=D.longitude)!==null&&h!==void 0?h:this.cameraMotion.value.longitude,latitude:(p=D.latitude)!==null&&p!==void 0?p:this.cameraMotion.value.latitude,fov:$}}],Q).catch(noop$1)}var Ae=this.locationMotion.setKeyframes(y,Q,T);Ae.then(function(){for(var he,me,Z,Y=0,N=o.models;Y<N.length;Y++){var Ee=N[Y];Ee.show()}var ge=__assign(__assign({},e),{mode:o.mode,longitude:o.camera.pose.longitude,latitude:o.camera.pose.latitude,fov:o.camera.pose.fov,offset:o.camera.pose.offset.clone(),distance:0});o.emit("pano.arrived",createEvent("pano.arrived",{options:i,prevPano:K,progress:1,state:ge,userAction:o.userAction,error:null})),i.moveEndCallback&&i.moveEndCallback(ge);var ve=o.works.getResolvedObserver(o.currentPano);if(ve&&ve.video&&o.videoTexture&&o.videoTexture.image instanceof HTMLVideoElement){var xe=ROTATE_Y_PI_MATRIX.clone().multiply((Z=(me=(he=o.models.getMaterial())===null||he===void 0?void 0:he.pano1)===null||me===void 0?void 0:me.matrix)!==null&&Z!==void 0?Z:new THREE__namespace.Matrix4).multiply(ve.video.matrix),de={map:o.videoTexture,size:ve.video.size,matrix:xe,alpha:1},ce=createUuid(),le=o.videoTexture.image;le.setAttribute("uuid",ce),canplayVideo().then(function(ue){ue&&ve.video&&le.getAttribute("uuid")===ce&&(le.oncanplay=function(){le.oncanplay=noop$1,le.play()},le.ontimeupdate=function(){le.currentTime>.5&&(le.ontimeupdate=noop$1,o.panoVideo.setMaterial(de))},le.src=ve.video.source)}).catch(function(){le.removeAttribute("uuid")})}},function(){o.emit("pano.cancel",createEvent("pano.cancel",{options:i,prevPano:K,progress:0,state:U,userAction:o.userAction,error:null})),i.moveCancelCallback&&i.moveCancelCallback()})},t.prototype.checkSelectedPano=function(e){var r=this,i,o,s,u;this.stopMomentumMovement();var c=this.camera.getDirection(new THREE__namespace.Vector3).setY(0),l=null,d=this.works.getResolvedObserver(this.currentPano);if(!d)return null;var f=d.accessibleIds.filter(function(q){var J=panoParse(q);if(panoEqual(J,r.currentPano))return!1;var j=r.works.getResolvedObserver(J);return!j||j.position.distanceTo(r.camera.position)>r.maxAccessibleDistance?!1:j.loadable||j.active}),m=this.models.intersectRaycaster(e)[0];if(m){var A=arrayMin(f,function(q){var J=r.works.getResolvedObserver(q);if(!J)return 1/0;var j=J.standingPosition.clone();return j.distanceTo(m.point)},!0),h=A[0],p=A[1];h&&p<this.panoTapTriggerRadius&&(l=(i=this.works.getResolvedObserver(h))!==null&&i!==void 0?i:null)}if(isNil(l)){var b=this.getForwardObserverOrNot(e);b&&(l=b)}for(var v=0,g=this.locationMotion.keyframes;v<g.length;v++){var E=g[v],y=this.panoResourceFromLocationMotionKeyframe(E);if(!(E.progress<this.locationMotion.progress)&&l&&y.panoId===l.panoId){l=null;break}}if(isNil(l))return this.locationMotion.ended===!0&&this.cameraBounce(),null;if(l&&!l.active){var T=l.panoId;this.panoMeshes[T]&&(this.panoMeshes[T].setDisabled(!1),this.panoMeshes[T].setLoading(!0))}var _={};if(l){for(var R=Math.PI/6,S=Math.PI/12,B=new THREE__namespace.Vector3(0,1,0),I=l.position.clone().setY(0).sub(d.position.clone().setY(0)).normalize(),x=I.clone().applyAxisAngle(B,R),w=I.clone().applyAxisAngle(B,-R),H=[],C=[],L=[],k=0,O=l.accessibleIds;k<O.length;k++){var h=O[k],G=panoParse(h);if(!(panoEqual(G,this.currentPano)||panoEqual(G,l.pano))){var Q=this.works.getResolvedObserver(h);if(Q){var D=Q.position.clone().sub(l.position).setY(0);I.angleTo(D)<R?L.push(D):x.angleTo(D)<R?H.push(D):w.angleTo(D)<R&&C.push(D)}}}var U=L.length>0?L:__spreadArray(__spreadArray([],H,!0),C,!0),K=U.slice().sort(function(q,J){return q.angleTo(I)-J.angleTo(I)})[0];K&&K.angleTo(c)>S&&(_.longitude=Math.atan2(-K.x,-K.z))}this.cameraMotion.value.latitude<-Math.PI/4&&(_.latitude=clamp$1(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(_.fov=this.defaultFov);var z={workCode:l.pano.workCode,panoIndex:l.pano.panoIndex,mode:this.mode,longitude:(o=_.longitude)!==null&&o!==void 0?o:this.camera.pose.longitude,latitude:(s=_.latitude)!==null&&s!==void 0?s:this.camera.pose.latitude,fov:(u=_.fov)!==null&&u!==void 0?u:this.camera.pose.fov,distance:0,offset:l?l.position.clone():new THREE__namespace.Vector3};return this.emit("pano.select",createEvent("pano.select",{prevPano:this.currentPano,state:z,userAction:!0,options:_,progress:0,error:null})),l&&l.active?(this.emit("pano.request",createEvent("pano.request",{userAction:!0,prevPano:this.currentPano,progress:0,state:z,options:_,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,o,s,u,c,l,d,f,m,A=[],h=2;h<arguments.length;h++)A[h-2]=arguments[h];this.userAction=!0;var p={},b={},v=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),g=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),E=!1;if(this.cameraMotion.ended===!1&&(this.cameraMotion.update(e),b.longitude=this.cameraMotion.value.longitude,b.latitude=this.cameraMotion.value.latitude,b.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended===!1&&(this.modelAlphaMotion.update(e),p.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended===!1&&(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended===!1){this.locationMotion.update(e);var y=this.locationMotion.getKeyFrameSegment(e),T=y[0],_=y[1],R=this.panoResourceFromLocationMotionKeyframe(T),S=this.panoResourceFromLocationMotionKeyframe(_),B=new THREE__namespace.Vector3().copy(R.position),I=new THREE__namespace.Vector3().copy(S.position),x=this.locationMotion.value.count-_.value.count+1;p.progress=x,S.leftPanoPicture&&(x<1?R.leftPanoPicture&&(p.pano0=R.leftPanoPicture):p.pano0=S.leftPanoPicture,p.pano1=S.leftPanoPicture),S.effect==="montage"?p.transition="BLACK":S.effect==="spread"?p.transition="SPREAD":p.transition="FADE",(S.effect==="zoomin"||S.effect==="zoomout")&&(p.progress=Math.pow(x,3)),x<1&&S.effect!=="fly"&&(p.pano0&&R.leftPanoPicture&&(p.pano0={map:p.pano0.map,zoom:p.pano0.zoom,luminanceMap:p.pano0.luminanceMap,matrix:R.leftPanoPicture.matrix.clone().setPosition(S.position)}),B.copy(I),E=!0),b.distance=this.locationMotion.value.distance,b.offset=new THREE__namespace.Vector3(B.x+(I.x-B.x)*x,B.y+(I.y-B.y)*x,B.z+(I.z-B.z)*x);for(var w=[],H=[],C=0,L=this.locationMotion.keyframes;C<L.length;C++){var k=L[C],O=k.key,G=k.progress;O!==void 0&&(w.push(O),G>this.locationMotion.progress&&H.push(O))}for(var Q=0,D=Object.keys(this.panoResources);Q<D.length;Q++){var U=D[Q];if(!(H.indexOf(U)>=0)){var K=this.panoResources[U];if(K.leftPanoPicture){var z=K.leftPanoPicture.map;if(z){if(z===((o=p.pano0)===null||o===void 0?void 0:o.map)||z===((s=p.pano1)===null||s===void 0?void 0:s.map))continue;z instanceof TileCubeTextureTarget&&z.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(z.cubeRenderTarget),z.dispose(),K.leftPanoPicture=null}}w.indexOf(U)>=0||delete this.panoResources[U]}}this.currentPano=panoParse(S.panoId),this.emit("pano.moving",createEvent("pano.moving",{userAction:this.userAction,prevPano:panoParse(v.panoId),state:__assign(__assign(__assign(__assign({},panoParse(g.panoId)),{mode:this.mode}),clonePose(this.camera.pose)),b),options:{},progress:this.locationMotion.progress,error:null}))}isEmptyObject(p)===!1&&(!((u=p.pano0)===null||u===void 0)&&u.map&&p.pano0.map instanceof TileCubeTextureTarget&&!p.pano0.map.cubeRenderTarget&&(p.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((c=p.pano1)===null||c===void 0)&&c.map&&p.pano1.map instanceof TileCubeTextureTarget&&!p.pano1.map.cubeRenderTarget&&(p.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),this.models.setMaterial(p)),isEmptyObject(b)===!1&&this.setCamera(b);var q=this.works.getResolvedObserver(this.currentPano),J=A[1];if(!J){console.error("xrFrame丢失,请重试");return}if(!this.xrManager.session){console.error("session丢失,请重试");return}var j=this.xrManager.referenceSpace;if(j){var re=this.xrManager.cameraVR,W=this.xrManager.cameraL,te=this.xrManager.cameraR,$=[W,te],ne=J.getViewerPose(j),ee=new THREE__namespace.Vector3(0,0,0);if(ne){var fe;fe=this.xrManager.session.renderState.baseLayer;var ae=ne.views;if(!fe){console.error("no layer found");return}this.renderer.setFramebuffer(fe.framebuffer);var se=!1;ae.length!==re.cameras.length&&(re.cameras.length=0,se=!0),this.parallaxCameraMatrixs=[];var Ae=new THREE__namespace.Vector3,he=new THREE__namespace.Vector3;new THREE__namespace.Matrix4().fromArray(ae[0].transform.matrix).decompose(Ae,new THREE__namespace.Quaternion,new THREE__namespace.Vector3),new THREE__namespace.Matrix4().fromArray(ae[1].transform.matrix).decompose(he,new THREE__namespace.Quaternion,new THREE__namespace.Vector3),he.clone().sub(Ae).normalize();var me=new THREE__namespace.Vector3,Z=new THREE__namespace.Quaternion,Y=new THREE__namespace.Vector3;this.camera.matrix.decompose(me,Z,Y);for(var N=0;N<ae.length;N++){var Ee=ae[N],ge=fe.getViewport(Ee),ve=$[N];ve.matrix.fromArray(Ee.transform.matrix);var xe=new THREE__namespace.Vector3,de=new THREE__namespace.Quaternion,ce=new THREE__namespace.Vector3;ve.matrix.decompose(xe,de,ce),ee.copy(me),ve.position.copy(me),ve.quaternion.copy(de),ve.scale.copy(ce),ve.updateMatrix(),ve.projectionMatrix.fromArray(Ee.projectionMatrix),ve.viewport.set(ge.x,ge.y,ge.width,ge.height),se===!0&&re.cameras.push(ve)}if(this.xrManager.session&&this.xrManager.session.inputSources){for(var N=0;N<this.xrManager.session.inputSources.length;N++)if(this.xrManager.session.inputSources[N]&&this.xrManager.session.inputSources[N].targetRayMode==="transient-pointer"){var le=J.getPose(this.xrManager.session.inputSources[N].targetRaySpace,j);if(le){var ue=new THREE__namespace.Vector3(0,0,-1).applyQuaternion(le.transform.orientation),oe=new THREE__namespace.Raycaster(this.camera.position,ue);this.gazeRay=oe}}}if(this.xrManager.machineType==="Oculus"||this.xrManager.machineType==="Pico"){for(var Te=this.xrManager.session.inputSources,N=0;N<Te.length;N++){var Re=this.xrManager.controllers[N],Ie=Te[N];if(Ie){Re&&Re.update(Ie,J,j);var oe=this.xrManager.getController(N),lt=new THREE__namespace.Vector3(0,1.2,0),ye=oe.position.clone().add(ee).sub(lt);Ie.handedness==="left"?this.xrControllerRay.left.set(ye,new THREE__namespace.Vector3(0,0,-1).applyEuler(oe.rotation)):Ie.handedness==="right"&&this.xrControllerRay.right.set(ye,new THREE__namespace.Vector3(0,0,-1).applyEuler(oe.rotation)),this.controllerWrappers[N].position.copy(new THREE__namespace.Vector3(0,0,0).add(ee).sub(lt));var we=this.models.intersectRaycaster(this.xrControllerRay.right);if(we.length===0&&(we=this.xrControllerRay.right.intersectObject(this.boundingMesh,!0).map(function(st){var ft;return __assign({floor:(ft=q==null?void 0:q.floorIndex)!==null&&ft!==void 0?ft:0},st)})),we.length>=1&&we[0].face)if(Ie.handedness==="right"){var Be=this.xrControllerRay.right.intersectObject(this.xrCustomObjectsScene,!0),Je=we[0].face.normal,ht=Je.clone(),Xe=we[0].point.clone();this.intersectMesh.position.copy(Xe);var Ve=Xe.clone().add(ht);if(this.intersectMesh.lookAt(Ve),Math.abs(Je.y)>.99){var je=this.camera.position.clone().sub(Xe);this.intersectMesh.rotation.z=-Math.atan2(je.z,je.x)}this.intersectMesh.visible=!0,this.needsRender=!0,Be.length>0?(this.pointerLines.right.setPoints(ye,Be[0].point),this.pointerLines.right.points.visible=!0,this.intersectMesh.visible=!1):(this.pointerLines.right.points.visible=!1,this.pointerLines.right.setPoints(ye,we[0].point));var at=we[0],Ue=createEvent("intersect.update",{raycaster:(l=this.xrControllerRay.right)!==null&&l!==void 0?l:null,intersection:at!=null?at:null,object:this.intersectMesh});if(this.emit("intersect.update",Ue),Ue.defaultPrevented){this.hideIntersectMesh();return}}else this.pointerLines.left.setPoints(ye,we[0].point)}}this.updateControllerHelper(Te,e,r)}if(this.camera.pose.distance>.1||E)for(var We=0,ze=Object.keys(this.panoMeshes);We<ze.length;We++){var He=ze[We],be=this.panoMeshes[He];be.setOpacity(0),be.setCurrent(!1),be.updateTime&&be.updateTime(e,r),be.visible=!1}else if(q){var $e=arrayMin(q.visibleIds,function(Le){var qe=i.works.getResolvedObserver(Le);return qe?q.standingPosition.distanceTo(qe.standingPosition):1/0},!0),Fe=$e[1];Fe=clamp$1(Fe,2.5,1/0);for(var et=q.visibleIds.concat(panoStringify(this.currentPano)),tt=this.getForwardObserverOrNot(),Qe=this.camera.getDirection(new THREE__namespace.Vector3),Ne=0,rt=Object.keys(this.panoMeshes);Ne<rt.length;Ne++){var He=rt[Ne],be=this.panoMeshes[He],ot=this.works.getResolvedObserver(He);if(et.indexOf(He)===-1)be.setCurrent(!1),be.setOpacity(0);else if(!ot)be.setCurrent(!1),be.setOpacity(0);else if(!ot.loadable&&!ot.active)be.setCurrent(!1),be.setOpacity(0);else{var pt=be.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);be.setCurrent(!be.loading&&be.progress===0&&tt!==null&&tt.panoId===He),be.setOpacity(pt<.01?0:clamp$1(Fe/pt*1.2,.65,.98));var ct=this.camera.position.clone().setY(be.position.y),ue=new THREE__namespace.Vector3().copy(be.position).sub(ct).normalize();if(He===panoStringify(this.currentPano)){var dt=clamp$1((.5-ct.distanceTo(be.position))/.5,0,1);ue.multiplyScalar(1-dt).add(Qe.clone().multiplyScalar(dt))}ue.length()>0&&be.quaternion.setFromEuler(new THREE__namespace.Euler(0,Math.atan2(ue.x,ue.z),0))}be.updateTime&&be.updateTime(e,r)}}var Ge=function(){return 4}(),Me=function(){var Le=new THREE__namespace.PerspectiveCamera;Le.applyMatrix4(re.matrix),Le.position.set(0,0,0);var qe=i.works.getResolvedObserver(g.panoId),st=qe!=null?qe:q;st&&Le.quaternion.premultiply(st.quaternion.clone().inverse()),Le.updateProjectionMatrix(),Le.updateMatrixWorld(!0);var ft=new THREE__namespace.Frustum().setFromProjectionMatrix(new THREE__namespace.Matrix4().multiplyMatrices(Le.projectionMatrix,Le.matrixWorldInverse));return ft}();g.panoId===panoStringify(this.currentPano)&&((d=g.leftPanoPicture)===null||d===void 0?void 0:d.map)instanceof TileCubeTextureTarget&&(g.leftPanoPicture.map.maxRequest=this.tileMaxRequest,g.leftPanoPicture.map.update(Me,Ge),g.leftPanoPicture.map.needsRender===!0&&(this.needsRender=!0,this.modelSceneNeedsRender=!0));{var _e=this.tiling.object.visible;if(this.initAnimationed){var Pe=g.panoId,ke=this.works.getResolvedObserver(Pe);ke?isSimilarVector3(this.camera.position,ke.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==Pe&&this.tiling.cleanup(),this.tiling.panoId=Pe,this.tiling.setResource((m=(f=ke.images)===null||f===void 0?void 0:f.tiles)!==null&&m!==void 0?m:[],this.enableIOSEDR&&ke.images.luminance?ke.images.luminance:null),this.tiling.setFetcher(getFetcher(ke.work)),this.tiling.setRotation(ke.quaternion),this.tiling.setPosition(ke.position),this.tiling.maxRequest=this.tileMaxRequest,Ge>this.TILED_CUBE_TEXTURE_LEVEL?this.tiling.update(Me,Ge,e):this.tiling.update(Me,0,e)):this.tiling.object.visible=!1:this.tiling.object.visible=!1}else this.tiling.object.visible=!1;_e!==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 o=this.xrControllerRay.left,s=this.xrControllerRay.right;if(!(!e||e.length===0)){for(var u={buttons:{X:!1,Y:!1,LeftTrigger:!1,LeftPinch:!1,A:!1,B:!1,RightTrigger:!1,RightPinch:!1}},c=0;c<e.length;c++){var l=e[c].handedness,d=e[c].gamepad;switch(l){case"left":d.axes&&(this.emitHandleEvent(d.axes[2]===-1,"LeftAxesLeft",r),this.emitHandleEvent(d.axes[2]===1,"LeftAxesRight",r),this.emitHandleEvent(d.axes[3]===-1,"LeftAxesUp",r),this.emitHandleEvent(d.axes[3]===1,"LeftAxesDown",r)),d!=null&&d.buttons&&(d.buttons[4]&&this.emitHandleEvent(d.buttons[4].pressed,"X",r),d.buttons[5]&&this.emitHandleEvent(d.buttons[5].pressed,"Y",r),d.buttons[0]&&this.emitHandleEvent(d.buttons[0].pressed,"LeftTrigger",r),d.buttons[1]&&this.emitHandleEvent(d.buttons[1].pressed,"LeftPinch",r));var f={raycaster:o,axes:{up:d.axes&&d.axes[3]<0?Math.abs(d.axes[3]):0,down:d.axes&&d.axes[3]<0?0:Math.abs(d.axes[3]),left:d.axes&&d.axes[2]<0?Math.abs(d.axes[2]):0,right:d.axes&&d.axes[2]<0?0:Math.abs(d.axes[2])},deltaTime:i};u.buttons.X=d.buttons&&d.buttons[4]?d.buttons[4].pressed:!1,u.buttons.Y=d.buttons&&d.buttons[5]?d==null?void 0:d.buttons[5].pressed:!1,u.buttons.LeftTrigger=d.buttons&&d.buttons[0]?d==null?void 0:d.buttons[0].pressed:!1,u.buttons.LeftPinch=d.buttons&&d.buttons[1]?d==null?void 0:d.buttons[1].pressed:!1,u.left=f;break;case"right":d.axes&&(this.emitHandleEvent(d.axes[2]===-1,"RightAxesLeft",r),this.emitHandleEvent(d.axes[2]===1,"RightAxesRight",r),this.emitHandleEvent(d.axes[3]===-1,"RightAxesUp",r),this.emitHandleEvent(d.axes[3]===1,"RightAxesDown",r)),d.buttons&&(d.buttons[4]&&this.emitHandleEvent(d.buttons[4].pressed,"A",r),d.buttons[5]&&this.emitHandleEvent(d.buttons[5].pressed,"B",r),d.buttons[0]&&this.emitHandleEvent(d.buttons[0].pressed,"RightTrigger",r),d.buttons[1]&&this.emitHandleEvent(d.buttons[1].pressed,"RightPinch",r));var m={raycaster:s,axes:{up:d.axes&&d.axes[3]<0?Math.abs(d.axes[3]):0,down:d.axes&&d.axes[3]<0?0:Math.abs(d.axes[3]),left:d.axes&&d.axes[2]<0?Math.abs(d.axes[2]):0,right:d.axes&&d.axes[2]<0?0:Math.abs(d.axes[2])},deltaTime:i};u.right=m,u.buttons.A=d.buttons&&d.buttons[4]?d==null?void 0:d.buttons[4].pressed:!1,u.buttons.B=d.buttons&&d.buttons[5]?d==null?void 0:d.buttons[5].pressed:!1,u.buttons.RightTrigger=d.buttons&&d.buttons[0]?d==null?void 0:d.buttons[0].pressed:!1,u.buttons.RightPinch=d.buttons&&d.buttons[1]?d==null?void 0:d.buttons[1].pressed:!1;break}}this.emit("xr.controller.update",createEvent("xr.controller.update",u))}},t.prototype.emitHandleEvent=function(e,r,i){var o=this.xrControllerRay.left,s=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",createEvent("xr.gesture.buttonDown",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!1,isFirst:!0,controllers:{raycaster:{leftRay:o,rightRay:s}}}));else{var u=i-this.xrHandleState[r].touchStartTime;u>CONTROLLER_EVNET_DELTA_TIME&&this.emit("xr.gesture.press",createEvent("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!0,controllers:{raycaster:{leftRay:o,rightRay:s}}}))}else if(this.xrHandleState[r].touchStart===!0){this.emit("xr.gesture.buttonUp",createEvent("xr.gesture.buttonUp",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:o,rightRay:s}}}));var u=i-this.xrHandleState[r].touchStartTime;if(u<=CONTROLLER_EVNET_DELTA_TIME){var c=createEvent("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:o,rightRay:s}}}),l=this.emit("xr.gesture.tap",c);!l&&!c.defaultPrevented&&r==="RightTrigger"&&this.checkSelectedPano(this.xrControllerRay.right)}this.xrHandleState[r].touchStart=!1,this.xrHandleState[r].touchStartTime=0}},t.prototype.initHandEvent=function(){var e=this;if(!this.xrManager.session)throw new Error("初始化失败");this.xrManager.session.addEventListener("select",function(r){e.gazeRay&&e.checkSelectedPano(e.gazeRay)})},t}(PanoramaController),Controllers={Floorplan:FloorplanController,Topview:TopviewController,Panorama:PanoramaController,VRPanorama:VRPanoramaController,Model:ModelController,Mapview:MapviewController,XRPanorama:XRPanoramaController},PROXY_CONTROLLER_EVENT_NAMES=["gesture.pan","gesture.tap","gesture.dbltap","gesture.press","gesture.pinch","gesture.mousewheel","gesture.mousemove","gesture.momentum","initAnimation.start","initAnimation.end","camera.update","intersect.update","pano.select","pano.moveTo","pano.moving","pano.arrived","pano.cancel","pano.error","pano.texture.load","pano.texture.progress","pano.texture.success","pano.texture.error","pano.texture.abort","xr.session.start","xr.session.end","xr.gesture.tap","xr.gesture.press","xr.gesture.buttonUp","xr.gesture.buttonDown","xr.controller.update"];function initLegacyEvent(n){n.on("initAnimation.start",function(t){n.emit("initAnimationWillStart",t.state.panoIndex,t.state,t.userAction)}),n.on("initAnimation.end",function(t){n.emit("initAnimationEnded",t.state.panoIndex,t.state,t.userAction)}),n.on("gesture.pan",function(t){var e=!1;e=n.emit("wantsGesture","pan",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPanGesture",t.state,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","pan",t.pointers,t.isFinal),n.emit("panGesture",t.state,t.isFinal))}),n.on("gesture.tap",function(t){var e=!1;e=n.emit("wantsGesture","tap",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsTapGesture",t.center.raycaster,t.center.coords,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","tap",t.pointers,t.isFinal),n.emit("tapGesture",t.center.raycaster,t.center.coords,t.isFinal))}),n.on("gesture.press",function(t){var e=!1;e=n.emit("wantsGesture","press",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPressGesture",t.center.raycaster,t.center.coords,t.center.delta,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","press",t.pointers,t.isFinal),n.emit("pressGesture",t.center.raycaster,t.center.coords,t.center.delta,t.isFinal))}),n.on("gesture.pinch",function(t){var e=!1;e=n.emit("wantsGesture","pinch",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPinchGesture",t.scale,t.state.fov,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","pinch",t.pointers,t.isFinal),n.emit("pinchGesture",t.scale,t.state.fov,t.isFinal))}),n.on("gesture.mousewheel",function(t){var e=!1;e=n.emit("wantsGesture","mouseWheel",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsMouseWheel",t.center.delta,t.state.fov,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","mouseWheel",t.pointers,t.isFinal),n.emit("mouseWheel",t.center.delta,t.state.fov,t.isFinal))}),n.on("gesture.mousemove",function(t){var e=!1;e=n.emit("wantsGesture","mouseMove",t.pointers,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","mouseMove",t.pointers,t.isFinal),e=n.emit("wantsChangeCameraFov",t.state.fov),e&&t.preventDefault())}),n.on("gesture.momentum",function(t){var e=!1;e=n.emit("wantsInteriaPan",t.state),e&&t.preventDefault(),t.defaultPrevented||n.emit("interiaPan",t.state,t.isFinal)}),n.on("camera.update",function(t){n.emit("cameraFovUpdate",t.state.fov,t.userAction),n.emit("cameraDirectionUpdate",t.state,t.userAction);var e=coordinatesToVector(t.state);e.setLength(t.state.distance);var r=t.state.offset.clone().sub(e);n.emit("cameraPositionUpdate",r,t.userAction),n.emit("cameraUpdate",t.state,t.userAction)}),n.on("intersect.update",function(t){if(t.intersection){var e=!1;e=n.emit("wantsShowIntersectionOnModel",t.raycaster),e&&t.preventDefault(),t.defaultPrevented||n.emit("intersectionOnModelUpdate",t.intersection,t.object)}else n.emit("intersectionHidden")}),n.on("pano.request",function(t){var e=n.emit("wantsMoveToPano",t.state.panoIndex,t.options,t.userAction);e||(e=n.emit("wantsToMoveToPano",t.state.panoIndex,t.options,t.userAction)),e&&t.preventDefault(),t.defaultPrevented||n.emit("panoWillLoad",t.state.panoIndex)}),n.on("pano.select",function(t){n.emit("panoSelected",t.state.panoIndex)}),n.on("pano.moveTo",function(t){n.emit("panoLoaded",t.state.panoIndex),n.emit("moveToPano",t.state.panoIndex,t.userAction),n.emit("panoWillArrive",t.state.panoIndex,t.state,t.userAction)}),n.on("pano.moving",function(t){n.emit("movingToPano",t.state.panoIndex,t.prevPano.panoIndex,t.progress)}),n.on("pano.arrived",function(t){n.emit("panoArrived",t.state.panoIndex,t.state,t.userAction)}),n.on("pano.cancel",function(t){n.emit("moveToPanoCanceled",t.state.panoIndex)}),n.on("pano.error",function(t){n.emit("panoLoadError",t.error,t.state.panoIndex)}),n.on("pano.texture.load",function(t){n.emit("textureStartLoad",t.pano.panoIndex)}),n.on("pano.texture.success",function(t){n.emit("textureLoaded",t.pano.panoIndex,t.meta)}),n.on("pano.texture.error",function(t){n.emit("textureError",t.error,t.pano.panoIndex)}),n.on("pano.texture.abort",function(t){n.emit("textureAbort",t.pano.panoIndex)}),n.on("pano.texture.progress",function(t){n.emit("textureLoading",t.progress,t.pano.panoIndex)}),n.on("xr.session.start",function(t){n.emit("webXRSessionStart")}),n.on("xr.session.end",function(t){n.emit("webXRSessionEnd")}),n.on("xr.gesture.tap",function(t){n.emit("webXRControllerEvent","tap",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.press",function(t){n.emit("webXRControllerEvent","press",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.buttonUp",function(t){n.emit("webXRControllerEvent","buttonUp",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.buttonDown",function(t){n.emit("webXRControllerEvent","buttonDown",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.controller.update",function(t){n.emit("webXRControllerRayUpdate",{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0}),t.left&&n.emit("webXRAxesUpdate","left",{raycaster:{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0},axesState:{up:t.left.axes.up,down:t.left.axes.down,left:t.left.axes.left,right:t.left.axes.right},deltaTime:t.left.deltaTime}),t.right&&n.emit("webXRAxesUpdate","right",{raycaster:{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0},axesState:{up:t.right.axes.up,down:t.right.axes.down,left:t.right.axes.left,right:t.right.axes.right},deltaTime:t.right.deltaTime})}),n.on("works.request",function(t){n.emit("willLoad",t.input,t.works[0],t.state)}),n.on("works.load",function(t){n.emit("load",t.input,t.works[0],t.state)}),n.on("works.ready",function(t){n.emit("loaded",t.input,t.works[0])}),n.on("state.change",function(t){n.emit("stateChange",t.state,t.userAction)}),n.on("currentState.change",function(t){n.emit("currentStateChange",t.state,t.userAction)}),n.on("state.set",function(t){n.emit("setState",t.state)}),n.on("state.synced",function(t){n.emit("stateSynced",t.state)}),n.on("model.request",function(t){n.emit("modelWillLoad",t.work.model)}),n.on("model.error",function(t){n.emit("modelLoadError",t.error,t.model)}),n.on("model.load",function(t){n.emit("modelLoaded",t.model)}),n.on("model.changeShownFloor",function(t){n.emit("modelShownFloorChange",t.model.shownFloor,t.model.floorLength)}),n.on("render",function(t){n.emit("renderFrame",t.needsRender)}),n.on("mode.change.request",function(t){n.emit("wantsChangeMode",t.mode,t.prevMode)}),n.on("mode.change",function(t){n.emit("modeChange",t.mode,t.prevMode,t.state.panoIndex,t.state,t.userAction)}),n.on("helpers.visible",function(t){n.emit("helpersVisibleChange",t.object.visible)}),n.on("network.resource",function(t){n.emit("network",t.source,t.requestType,t.requestState,t.detail)})}function generateDefaultVideoElement(){if(typeof window!="undefined"){var n=document.createElement("video");n.loop=!0,n.autoplay=!0,n.playsInline=!0,n.muted=!0,n.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),n.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),n}else return{}}function initLights(n){{var t=new THREE__namespace.DirectionalLight(16777215,.3);t.position.copy(new THREE__namespace.Vector3(1,1,1)),n.add(t)}{var t=new THREE__namespace.DirectionalLight(16777215,.1);t.position.copy(new THREE__namespace.Vector3(-1,-1,-1)),n.add(t)}{var t=new THREE__namespace.DirectionalLight(16777215,.1);n.add(t)}{var t=new THREE__namespace.AmbientLight(16777215,.6);n.add(t)}}function parseKeyValue(n){for(var t,e,r={},i=n.split(/(\;|\,)/),o=0,s=i;o<s.length;o++){var u=s[o],c=u.split("="),l=(t=c[0])===null||t===void 0?void 0:t.trim(),d=(e=c[1])===null||e===void 0?void 0:e.trim();l&&d&&(r[l]=d)}return r}function getViewportScale(){var n;if(typeof document!="undefined")for(var t=document.getElementsByTagName("meta"),e=0;e<t.length;e++){var r=t[e];if(r.getAttribute("name")==="viewport"){var i=parseKeyValue((n=r.getAttribute("content"))!==null&&n!==void 0?n:""),o=Number(i["initial-scale"]);if(!isNaN(o))return o}}return 1}const textureURL="data:image/png;base64,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";var imageSize=[351,63],imageOffset=[20,20],vertices=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),uvs=new Float32Array([0,0,1,0,0,1,1,1]),index=new Uint8Array([0,1,2,1,3,2]),geometry=new THREE__namespace.BufferGeometry;geometry.setAttribute("position",new THREE__namespace.BufferAttribute(vertices,3)),geometry.setAttribute("uv",new THREE__namespace.BufferAttribute(uvs,2)),geometry.setIndex(new THREE__namespace.BufferAttribute(index,1));var material=new THREE__namespace.MeshBasicMaterial({transparent:!0,depthTest:!1,depthWrite:!1,stencilWrite:!1,fog:!1}),mesh=new THREE__namespace.Mesh(geometry,material);mesh.matrixAutoUpdate=!1;var scene=new THREE__namespace.Scene;scene.add(mesh),scene.matrixAutoUpdate=!1;var camera=new THREE__namespace.OrthographicCamera(-.5,.5,.5,-.5,.1,1);camera.position.set(0,0,.5),camera.lookAt(0,0,0),camera.updateMatrixWorld(!0),camera.matrixAutoUpdate=!1;var prevViewport=new THREE__namespace.Vector4,prevScissor=new THREE__namespace.Vector4;function renderPoweredByRealsee(n){if(material.map){var r=n.getViewport(prevViewport),i=n.getScissor(prevScissor),o=n.getScissorTest(),s=n.autoClear,u=i.x+imageOffset[0]/3,c=i.y+imageOffset[1]/3,l=imageSize[0]/3,d=imageSize[1]/3;n.setViewport(u,c,l,d),n.setScissor(u,c,l,d),n.setScissorTest(!0),n.autoClear=!1,n.render(scene,camera),n.setViewport(r),n.setScissor(i),n.setScissorTest(o),n.autoClear=s}else{var t=new THREE__namespace.Texture,e=new Image;e.onload=function(){t.image=e,t.wrapS=THREE__namespace.ClampToEdgeWrapping,t.wrapT=THREE__namespace.ClampToEdgeWrapping,t.minFilter=THREE__namespace.LinearFilter,t.needsUpdate=!0,t.generateMipmaps=!1,material.needsUpdate=!0,e.onload=noop$1},e.src=textureURL,material.map=t}}var DEFAULT_MODE_CHANGE_DURATION=800,DEFAULT_CAMERA_FOV=90,DEFAULT_REQUEST_PROXY=function(n){return n.replace("//vrlab-public.ljcdn.com/","//vr-public.realsee-cdn.cn/").replace("//vrlab-image4.ljcdn.com/","//vr-image-4.realsee-cdn.cn/").replace("//vrlab-image3.ljcdn.com/","//vr-image-3.realsee-cdn.cn/").replace("//vrlab-image2.ljcdn.com/","//vr-image-2.realsee-cdn.cn/").replace("//vrlab-image1.ljcdn.com/","//vr-image-1.realsee-cdn.cn/")},sharedVector2=new THREE__namespace.Vector2,sharedFrustum=new THREE__namespace.Frustum,sharedProjScreenMatrix=new THREE__namespace.Matrix4,clockForMixer=new WeakMap,worksMap=new WeakMap,emptyWorks=createWorks([]),Five=function(n){__extends(t,n);function t(e){e===void 0&&(e={});var r,i,o,s,u,c,l,d,f,m,A,h=n.call(this)||this;if(h.ident=createUuid(),typeof window!="undefined"&&(__FIVE_DEBUG__.instances[h.ident]=h),h.renderSwitch01=0,h.currentMode="Panorama",h.pano={workCode:"",panoIndex:0},h.needsRender=!1,h.modelSceneNeedsRender=!1,h.onlyRenderIfNeeds=(r=e.onlyRenderIfNeeds)!==null&&r!==void 0?r:!0,h.imageOptions=__assign({},(i=e.imageOptions)!==null&&i!==void 0?i:{}),h.textureOptions=__assign({},(o=e.textureOptions)!==null&&o!==void 0?o:{}),h.poweredByRealsee=(s=e.poweredByRealsee)!==null&&s!==void 0?s:!0,h.extraElements=[],h.controllerInits={Panorama:Object.assign({},e.panorama),Model:Object.assign({},e.model),Floorplan:Object.assign({},e.floorplan),Topview:Object.assign({},e.topview),Mapview:Object.assign({},e.mapview),VRPanorama:Object.assign({},e.vrPanorama),XRPanorama:Object.assign({},e.xrPanorama)},h.fps={testCount:0,testTime:now()},h.info=null,h.modeChangeDuration=(u=e.modeChangeDuration)!==null&&u!==void 0?u:DEFAULT_MODE_CHANGE_DURATION,h.enableWheel=(c=e.enableWheel)!==null&&c!==void 0?c:!0,typeof window!="undefined")if("renderer"in e)e.renderer instanceof InternalWebGLRenderer&&h.throwError(new Error("cannot render a internal renderer")),h.renderer=e.renderer;else try{h.renderer=new InternalWebGLRenderer({preserveDrawingBuffer:e.preserveDrawingBuffer,backgroundColor:e.backgroundColor,backgroundAlpha:e.backgroundAlpha,antialias:e.antialias,webgl2:e.webgl2,logarithmicDepthBuffer:e.logarithmicDepthBuffer,precision:e.precision});var p=getViewportScale();h.renderer.setPixelRatio(p===1?window.devicePixelRatio:1),h.renderer.setSize(512,512)}catch(I){I instanceof Error&&h.throwError(I)}h.getPixelsRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{encoding:(d=(l=h.renderer)===null||l===void 0?void 0:l.outputEncoding)!==null&&d!==void 0?d:THREE__namespace.sRGBEncoding,generateMipmaps:!1});var b=new THREE__namespace.DepthTexture(1,1);b.generateMipmaps=!1,b.format=THREE__namespace.DepthStencilFormat,b.type=THREE__namespace.UnsignedInt248Type,h.modelRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{encoding:(m=(f=h.renderer)===null||f===void 0?void 0:f.outputEncoding)!==null&&m!==void 0?m:THREE__namespace.sRGBEncoding,depthTexture:b,generateMipmaps:!1,depthBuffer:!0,stencilBuffer:!0}),h.scissor=Object.assign({left:0,bottom:0,width:1,height:1},e.scissor),h.camera=new Camera(DEFAULT_CAMERA_FOV),h.scene=new Scene,h.xrCustomObjectsScene=new THREE__namespace.Scene,h.scene.add(h.xrCustomObjectsScene),h.scene.matrixAutoUpdate=!1,h.lastLoadWorkTask=Promise.resolve(),h.requestProxy=(A=e.requestProxy)!==null&&A!==void 0?A:DEFAULT_REQUEST_PROXY,h.networkSubscribe=new NetworkSubscribe,h.networkSubscribe.on("network",function(I,x,w,H){var C;h.emit("network.resource",createEvent("network.resource",{source:I,requestType:x,requestState:w,detail:H})),(C=h.analysis)===null||C===void 0||C.network(h.works,I,x,w,H)}),h.boundingMesh=generateBoundingMesh(new THREE__namespace.Box3(new THREE__namespace.Vector3(-.5,-.5,-.5),new THREE__namespace.Vector3(.5,.5,.5))),h.boundingMesh.name="bounding",h.models=createModels(),h.models.push(new Model),h.lastModels=createModels(),h.lastWorks=createWorks([]),h.readyCallbacks=[],h.syncingState=!1,h.helperGroup=new THREE__namespace.Group,h.helperGroup.name="helper",h.helperGroup.matrixAutoUpdate=!1,h.scene.add(h.helperGroup),h.modelGroup=new THREE__namespace.Group,h.modelGroup.visible=!1,h.modelGroup.name="model",h.modelGroup.matrixAutoUpdate=!1,h.modelScene=new THREE__namespace.Scene,h.modelScene.add(h.modelGroup),h.modelScene.add(h.boundingMesh),h.modelScene.matrixAutoUpdate=!1,h.videoTexture=new THREE__namespace.VideoTexture(e.videoInstance||generateDefaultVideoElement()),initLights(h.scene),initLights(h.modelScene),h.state={mode:h.currentMode,workCode:h.pano.workCode,panoIndex:h.pano.panoIndex,longitude:h.camera.pose.longitude,latitude:h.camera.pose.latitude,fov:h.camera.pose.fov,offset:h.camera.pose.offset.clone(),distance:h.camera.pose.distance},h.stateSynced=!1,h._enablePostProcessing=!1,h._enableIOSEDR=!1,h._enableEDL=!1,h._enableHQ=!1,h.destroyed=!1,h.paused=!0,typeof window!="undefined"&&(e.play!==!1&&h.play(),h.stopAnimationLoop=AnimationFrameLoop.shared.add(function(I,x){for(var w=[],H=2;H<arguments.length;H++)w[H-2]=arguments[H];h.updateTime.apply(h,__spreadArray([I,x],w,!1))},!1,0,10));var v=function(){typeof document!="undefined"&&document.fullscreenElement===null&&h.currentMode==="VRPanorama"&&h.controller.emit("vr.requestExit",createEvent("vr.requestExit",{}))},g=function(){h.needsRender=!0,h.modelSceneNeedsRender=!0};if(typeof document!="undefined"&&document.addEventListener("fullscreenchange",v,!1),h.renderer&&h.renderer.domElement.addEventListener("webglcontextrestored",g,!1),h.removeEventListeners=function(){typeof document!="undefined"&&document.removeEventListener("fullscreenchange",v,!1),h.renderer&&h.renderer.domElement.removeEventListener("webglcontextrestored",g,!1)},h.plugins={},e.plugins&&e.plugins.length)for(var E=0,y=e.plugins;E<y.length;E++){var T=y[E];if(typeof T=="function")T(h);else if(Array.isArray(T)){var _=T[0],R=T[1],S=T[2];if(typeof _=="function"){var B=_(h,S);typeof R=="string"&&(h.plugins[R]?h.throwError(new Error("plugin name ".concat(R," is exists."))):h.plugins[R]=B)}}}return h.gpuPickingRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{generateMipmaps:!1}),h.meshReplaceMaterialMap=new Map,h.meshOriginMaterialMap=new Map,initLegacyEvent(h),h}return Object.defineProperty(t,"version",{get:function(){return"6.2.0-alpha.14"},enumerable:!1,configurable:!0}),Object.defineProperty(t,"dracoPath",{get:function(){return draco.decoderPath},set:function(e){draco.setDecoderPath(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t,"ktx2Path",{get:function(){return ktx2.transcoderPath},set:function(e){ktx2.setTranscoderPath(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"panoIndex",{get:function(){return this.pano.panoIndex},enumerable:!1,configurable:!0}),t.prototype.getGPUPicking=function(e,r,i,o,s){var u=this;if(o===void 0&&(o=1),s===void 0&&(s=new THREE__namespace.Vector3(0,0,0)),!this.renderer)throw new Error("renderer is not initialized.");this.models.setMaterial({constantColor:s}),this.scene.traverse(function(f){if(!(!(f instanceof THREE__namespace.Mesh)||f instanceof PBMMesh)){var m=Object.keys(i).filter(function(h){return h===f.uuid})[0];if(m)if(u.meshOriginMaterialMap.set(m,f.material),u.meshReplaceMaterialMap.get(m))f.material=u.meshReplaceMaterialMap.get(m);else{var A=new THREE__namespace.ShaderMaterial({uniforms:{color:{value:i[m]}},vertexShader:`
|
|
2061
|
+
`},LineMaterial=function(n){__extends(t,n);function t(e){var r=n.call(this,{uniforms:THREE__namespace.UniformsUtils.clone(lineShader.uniforms),vertexShader:lineShader.vertexShader,fragmentShader:lineShader.fragmentShader,clipping:!0})||this;return r.type="LineMaterial",r.dashed=!1,Object.defineProperties(r,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(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}(THREE__namespace.ShaderMaterial);Object.assign(LineMaterial.prototype,{isLineMaterial:!0});var LineSegments2=function(n){__extends(t,n);function t(e,r){var i=n.call(this)||this;return i.type="LineSegments2",i.geometry=e!==void 0?e:new LineSegmentsGeometry,i.material=r!==void 0?r:new LineMaterial({color:Math.random()*16777215}),i}return t.prototype.computeLineDistances=function(){for(var e=this.geometry,r=e.attributes.instanceStart,i=e.attributes.instanceEnd,o=new Float32Array(2*r.count),s=new THREE__namespace.Vector3,u=new THREE__namespace.Vector3,c=0,l=0,d=r.count;c<d;c++,l+=2)s.fromBufferAttribute(r,c),u.fromBufferAttribute(i,c),o[l]=l===0?0:o[l-1],o[l+1]=o[l]+s.distanceTo(u);var f=new THREE__namespace.InstancedInterleavedBuffer(o,2,1);return e.setAttribute("instanceDistanceStart",new THREE__namespace.InterleavedBufferAttribute(f,1,0)),e.setAttribute("instanceDistanceEnd",new THREE__namespace.InterleavedBufferAttribute(f,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,o=e.camera,s=o.projectionMatrix,u=this.geometry,c=this.material,l=c.resolution,d=c.linewidth,f=u.attributes.instanceStart,m=u.attributes.instanceEnd,A=new THREE__namespace.Vector4,h=new THREE__namespace.Vector4,p=new THREE__namespace.Vector4,b=new THREE__namespace.Vector3,v=new THREE__namespace.Matrix4,g=new THREE__namespace.Line3,E=new THREE__namespace.Vector3;i.at(1,p),p.w=1,p.applyMatrix4(o.matrixWorldInverse),p.applyMatrix4(s),p.multiplyScalar(1/p.w),p.x*=l.x/2,p.y*=l.y/2,p.z=0,b.copy(p);var y=this.matrixWorld;v.multiplyMatrices(o.matrixWorldInverse,y);for(var T=0,_=f.count;T<_;T++){A.fromBufferAttribute(f,T),h.fromBufferAttribute(m,T),A.w=1,h.w=1,A.applyMatrix4(v),h.applyMatrix4(v),A.applyMatrix4(s),h.applyMatrix4(s),A.multiplyScalar(1/A.w),h.multiplyScalar(1/h.w);var R=A.z<-1&&h.z<-1,S=A.z>1&&h.z>1;if(!(R||S)){A.x*=l.x/2,A.y*=l.y/2,h.x*=l.x/2,h.y*=l.y/2,g.start.copy(A),g.start.z=0,g.end.copy(h),g.end.z=0;var B=g.closestPointToPointParameter(b,!0);g.at(B,E);var I=THREE__namespace.MathUtils.lerp(A.z,h.z,B),x=I>=-1&&I<=1,w=b.distanceTo(E)<d*.5;if(x&&w){g.start.fromBufferAttribute(f,T),g.end.fromBufferAttribute(m,T),g.start.applyMatrix4(y),g.end.applyMatrix4(y);var H=new THREE__namespace.Vector3,C=new THREE__namespace.Vector3;i.distanceSqToSegment(g.start,g.end,C,H),r.push({point:C,pointOnLine:H,distance:i.origin.distanceTo(C),object:this,faceIndex:T})}}}},t}(THREE__namespace.Mesh);Object.assign(LineSegments2.prototype,{isLineSegments2:!0});var Line2=function(n){__extends(t,n);function t(e,r){var i=n.call(this,e,r)||this;return i.type="Line2",i}return t}(LineSegments2);Object.assign(Line2.prototype,{isLine2:!0});var LineGeometry=function(n){__extends(t,n);function t(){var e=n.call(this)||this;return e.type="LineGeometry",e}return t.prototype.setPositions=function(e){for(var r=e.length-3,i=new Float32Array(2*r),o=0;o<r;o+=3)i[2*o]=e[o],i[2*o+1]=e[o+1],i[2*o+2]=e[o+2],i[2*o+3]=e[o+3],i[2*o+4]=e[o+4],i[2*o+5]=e[o+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),o=0;o<r;o+=3)i[2*o]=e[o],i[2*o+1]=e[o+1],i[2*o+2]=e[o+2],i[2*o+3]=e[o+3],i[2*o+4]=e[o+4],i[2*o+5]=e[o+5];return n.prototype.setColors.call(this,i),this},t.prototype.fromLine=function(e){var r=e.geometry;if(r instanceof THREE__namespace.Geometry){var i=new THREE__namespace.BufferGeometry().fromGeometry(r);this.setPositions(i.attributes.position.array)}else r instanceof THREE__namespace.BufferGeometry&&this.setPositions(r.attributes.position.array);return this},t.prototype.copy=function(){return this},t}(LineSegmentsGeometry);Object.assign(LineGeometry.prototype,{isLineGeometry:!0});var circleImageURL="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==",DEFAULT_COLOR=14467195,POINT_SIZE=8,DEFAULT_LINEWIDTH=2,DEFAULT_DASHSCALE=20,sharedCircleTexture=null,FiveLine=function(n){__extends(t,n);function t(e,r){e===void 0&&(e=new THREE__namespace.Vector3),r===void 0&&(r=new THREE__namespace.Vector3);var i=n.call(this)||this;i.type="FiveLine",i.needsRender=!0;var o=new LineGeometry,s=new LineMaterial({color:DEFAULT_COLOR,linewidth:DEFAULT_LINEWIDTH,dashScale:DEFAULT_DASHSCALE,dashed:!1});i.line=new Line2(o,s);var u=new THREE__namespace.BufferGeometry,c=new THREE__namespace.PointsMaterial({color:DEFAULT_COLOR,size:POINT_SIZE,map:sharedCircleTexture||(sharedCircleTexture=new THREE__namespace.TextureLoader().load(circleImageURL)),sizeAttenuation:!1,transparent:!0});return i.points=new THREE__namespace.Points(u,c),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.2.0-alpha.15"},enumerable:!1,configurable:!0}),t.prototype.setPoints=function(e,r){var i=[].concat(e.toArray(),r.toArray());this.points.geometry.setAttribute("position",new THREE__namespace.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 THREE__namespace.Vector3(e[0],e[1],e[2]),new THREE__namespace.Vector3(e[3],e[4],e[5])]},t.prototype.setMaterial=function(e){var r=this.line.material;for(var i in e)if(e.hasOwnProperty(i)){var o=e[i];i==="dashed"?(r.dashed=o,o?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}(THREE__namespace.Object3D);Object.assign(FiveLine.prototype,{isFiveLine:!0});var Constants={Handedness:Object.freeze({NONE:"none",LEFT:"left",RIGHT:"right"}),ComponentState:Object.freeze({DEFAULT:"default",TOUCHED:"touched",PRESSED:"pressed"}),ComponentProperty:Object.freeze({BUTTON:"button",X_AXIS:"xAxis",Y_AXIS:"yAxis",STATE:"state"}),ComponentType:Object.freeze({TRIGGER:"trigger",SQUEEZE:"squeeze",TOUCHPAD:"touchpad",THUMBSTICK:"thumbstick",BUTTON:"button"}),ButtonTouchThreshold:.05,AxisTouchThreshold:.1,VisualResponseProperty:Object.freeze({TRANSFORM:"transform",VISIBILITY:"visibility"})};function fetchJsonFile(n){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,fetch(n)];case 1:if(t=e.sent(),t.ok)return[2,t.json()];throw new Error(t.statusText)}})})}function fetchProfilesList(n){return __awaiter(this,void 0,void 0,function(){var t,e;return __generator(this,function(r){switch(r.label){case 0:if(!n)throw new Error("No basePath supplied");return t="profilesList.json",[4,fetchJsonFile("".concat(n,"/").concat(t))];case 1:return e=r.sent(),[2,e]}})})}function fetchProfile(n,t){return __awaiter(this,arguments,void 0,function(e,r,i,o){var s,u,c,l,d,f;return i===void 0&&(i=null),o===void 0&&(o=!0),__generator(this,function(m){switch(m.label){case 0:if(!e)throw new Error("No xrInputSource supplied");if(!r)throw new Error("No basePath supplied");return[4,fetchProfilesList(r)];case 1:if(s=m.sent(),e.profiles.some(function(A){var h=s[A];return h&&(u={profileId:A,profilePath:"".concat(r,"/").concat(h.path),deprecated:!!h.deprecated}),!!u}),!u){if(!i)throw new Error("No matching profile name found");if(c=s[i],!c)throw new Error('No matching profile name found and default profile "'.concat(i,'" missing.'));u={profileId:i,profilePath:"".concat(r,"/").concat(c.path),deprecated:!!c.deprecated}}return[4,fetchJsonFile(u.profilePath)];case 2:if(l=m.sent(),o){if(f=void 0,f=l.layouts[e.handedness],!f)throw new Error("No matching handedness, ".concat(e.handedness,", in profile ").concat(u.profileId));f.assetPath&&(d=u.profilePath.replace("profile.json",f.assetPath))}return[2,{profile:l,assetPath:d}]}})})}var defaultComponentValues={xAxis:0,yAxis:0,button:0,state:Constants.ComponentState.DEFAULT};function normalizeAxes(n,t){n===void 0&&(n=0),t===void 0&&(t=0);var e=n,r=t,i=Math.sqrt(n*n+t*t);if(i>1){var o=Math.atan2(t,n);e=Math.cos(o),r=Math.sin(o)}var s={normalizedXAxis:e*.5+.5,normalizedYAxis:r*.5+.5};return s}var VisualResponse=function(){function n(t){this.componentProperty=t.componentProperty,this.states=t.states,this.valueNodeName=t.valueNodeName,this.valueNodeProperty=t.valueNodeProperty,this.valueNodeProperty===Constants.VisualResponseProperty.TRANSFORM&&(this.minNodeName=t.minNodeName,this.maxNodeName=t.maxNodeName),this.value=0,this.updateFromComponent(defaultComponentValues)}return n.prototype.updateFromComponent=function(t){var e=t.xAxis,r=t.yAxis,i=t.button,o=t.state,s=normalizeAxes(e,r),u=s.normalizedXAxis,c=s.normalizedYAxis;switch(this.componentProperty){case Constants.ComponentProperty.X_AXIS:this.value=this.states.includes(o)?u:.5;break;case Constants.ComponentProperty.Y_AXIS:this.value=this.states.includes(o)?c:.5;break;case Constants.ComponentProperty.BUTTON:this.value=this.states.includes(o)?i:0;break;case Constants.ComponentProperty.STATE:this.valueNodeProperty===Constants.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(o):this.value=this.states.includes(o)?1:0;break;default:throw new Error("Unexpected visualResponse componentProperty ".concat(this.componentProperty))}},n}(),Component=function(){function n(t,e){var r=this;if(!t||!e||!e.visualResponses||!e.gamepadIndices||Object.keys(e.gamepadIndices).length===0)throw new Error("Invalid arguments supplied");this.id=t,this.type=e.type,this.rootNodeName=e.rootNodeName,this.touchPointNodeName=e.touchPointNodeName,this.visualResponses={},Object.keys(e.visualResponses).forEach(function(i){var o=new VisualResponse(e.visualResponses[i]);r.visualResponses[i]=o}),this.gamepadIndices=Object.assign({},e.gamepadIndices),this.values={state:Constants.ComponentState.DEFAULT,button:this.gamepadIndices.button!==void 0?0:void 0,xAxis:this.gamepadIndices.xAxis!==void 0?0:void 0,yAxis:this.gamepadIndices.yAxis!==void 0?0:void 0}}return Object.defineProperty(n.prototype,"data",{get:function(){var t=__assign({id:this.id},this.values);return t},enumerable:!1,configurable:!0}),n.prototype.updateFromGamepad=function(t){var e=this;if(this.values.state=Constants.ComponentState.DEFAULT,this.gamepadIndices.button!==void 0&&t.buttons.length>this.gamepadIndices.button){var r=t.buttons[this.gamepadIndices.button];this.values.button=r.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,r.pressed||this.values.button===1?this.values.state=Constants.ComponentState.PRESSED:(r.touched||this.values.button>Constants.ButtonTouchThreshold)&&(this.values.state=Constants.ComponentState.TOUCHED)}this.gamepadIndices.xAxis!==void 0&&t.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=t.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===Constants.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>Constants.AxisTouchThreshold&&(this.values.state=Constants.ComponentState.TOUCHED)),this.gamepadIndices.yAxis!==void 0&&t.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=t.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===Constants.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>Constants.AxisTouchThreshold&&(this.values.state=Constants.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach(function(i){i.updateFromComponent(e.values)})},n}(),MotionController=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(o){var s=i.layoutDescription.components[o];i.components[o]=new Component(o,s)}),this.updateFromGamepad()}return Object.defineProperty(n.prototype,"gripSpace",{get:function(){return this.xrInputSource.gripSpace},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"targetRaySpace",{get:function(){return this.xrInputSource.targetRaySpace},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"data",{get:function(){var t=[];return Object.values(this.components).forEach(function(e){t.push(e.data)}),t},enumerable:!1,configurable:!0}),n.prototype.updateFromGamepad=function(){var t=this;Object.values(this.components).forEach(function(e){e.updateFromGamepad(t.xrInputSource.gamepad)})},n}(),DEFAULT_PROFILES_PATH="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",DEFAULT_PROFILE="generic-trigger",XRControllerModel=function(n){__extends(t,n);function t(){var e=n.call(this)||this;return e.motionController=null,e.envMap=null,e}return t.prototype.setEnvironmentMap=function(e){var r=this;return this.envMap==e?this:(this.envMap=e,this.traverse(function(i){i instanceof THREE__namespace.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 o=i.valueNode,s=i.minNode,u=i.maxNode,c=i.value,l=i.valueNodeProperty;o&&(l===Constants.VisualResponseProperty.VISIBILITY?o.visible=c:l===Constants.VisualResponseProperty.TRANSFORM&&(o.quaternion.copy(s.quaternion).slerp(u.quaternion,c),o.position.lerpVectors(s.position,u.position,c)))})}))},t}(THREE.Object3D);function findNodes(n,t){Object.values(n.components).forEach(function(e){var r=e.type,i=e.touchPointNodeName,o=e.visualResponses;if(r===Constants.ComponentType.TOUCHPAD)if(e.touchPointNode=t.getObjectByName(i),e.touchPointNode){var s=new THREE.SphereGeometry(.001),u=new THREE.MeshBasicMaterial({color:255}),c=new THREE.Mesh(s,u);e.touchPointNode.add(c)}else console.warn("Could not find touch dot, ".concat(e.touchPointNodeName,", in touchpad component ").concat(e.id));Object.values(o).forEach(function(l){var d=l.valueNodeName,f=l.minNodeName,m=l.maxNodeName,A=l.valueNodeProperty;if(A===Constants.VisualResponseProperty.TRANSFORM){if(l.minNode=t.getObjectByName(f),l.maxNode=t.getObjectByName(m),!l.minNode){console.warn("Could not find ".concat(f," in the model"));return}if(!l.maxNode){console.warn("Could not find ".concat(m," in the model"));return}}l.valueNode=t.getObjectByName(d),l.valueNode||console.warn("Could not find ".concat(d," in the model"))})})}function addAssetSceneToControllerModel(n,t){findNodes(n.motionController,t),n.envMap&&t.traverse(function(e){e instanceof THREE__namespace.Mesh&&e.isMesh&&(e.material.envMap=n.envMap,e.material.needsUpdate=!0)}),n.add(t)}var XRControllerModelFactory=function(){function n(t){t===void 0&&(t=null),this.gltfLoader=t,this.path=DEFAULT_PROFILES_PATH,this._assetCache={}}return n.prototype.createControllerModel=function(t){var e=this,r=new XRControllerModel,i=null;return t.addEventListener("connected",function(o){var s=o.data;s.targetRayMode!=="tracked-pointer"||!s.gamepad||fetchProfile(s,e.path,DEFAULT_PROFILE).then(function(u){var c=u.profile,l=u.assetPath;r.motionController=new MotionController(s,c,l);var d=e._assetCache[r.motionController.assetUrl];if(d)i=d.scene.clone(),addAssetSceneToControllerModel(r,i);else{if(!e.gltfLoader)throw new Error("GLTFLoader not set.");e.gltfLoader.load(r.motionController.assetUrl,function(f){e._assetCache[r.motionController.assetUrl]=f,i=f.scene.clone(),addAssetSceneToControllerModel(r,i)})}}).catch(function(u){console.warn(u)})}),t.addEventListener("disconnected",function(){r.motionController=null,r.remove(i),i=null}),r},n}();function mapPanoResource(n,t){return n}var CONTROLLER_EVNET_DELTA_TIME=300,ROTATE_Y_PI_MATRIX=new THREE__namespace.Matrix4().makeRotationAxis(new THREE__namespace.Vector3(0,1,0),Math.PI),PANO_TEXTURE_SCALE=new THREE__namespace.Vector3(-1,1,1),XRPanoramaController=function(n){__extends(t,n);function t(e){var r=n.call(this,e)||this;r.xrManager=new XRManager(r.renderer,r.renderer.getContext(),{onSessionStart:function(c){r.emit("xr.session.start",createEvent("xr.session.start",{session:c,machineType:r.xrManager.machineType}))},onSessionEnd:function(){r.emit("xr.session.end",createEvent("xr.session.end",{session:null,machineType:r.xrManager.machineType}))}}),r.xrControllerRay={left:new THREE__namespace.Raycaster,right:new THREE__namespace.Raycaster},r.xrControllerRay.left.params.Points={threshold:.1},r.xrControllerRay.right.params.Points={threshold:.1},r.gazeRay=null,r.pointerLines={left:new FiveLine,right:new FiveLine},r.pointerLines.left.visible=!1,r.pointerLines.right.visible=!0,r.pointerLines.left.setMaterial({color:new THREE__namespace.Vector3(1,1,1)}),r.pointerLines.left.points.material.depthTest=!1,r.pointerLines.right.setMaterial({color:new THREE__namespace.Vector3(1,1,1)}),r.pointerLines.right.points.material.depthTest=!1,r.controllerWrappers=[new THREE__namespace.Group,new THREE__namespace.Group];var i=r.xrManager.getController(0);r.controllerWrappers[0].add(i);var o=r.xrManager.getController(1);r.controllerWrappers[1].add(o);var s=new XRControllerModelFactory;s.gltfLoader={load:function(c,l){internalFetcher.ajax(c,{responseType:"arraybuffer"}).then(function(d){var f;return parseGltf(d.body,{resourcePath:c.slice(0,c.lastIndexOf("/")+1),search:(f=c.split("?")[1])!==null&&f!==void 0?f:"",fetcher:internalFetcher})}).then(function(d){return l(d)})}},(r.xrManager.machineType==="Oculus"||r.xrManager.machineType==="Pico")&&r.scene.add(r.pointerLines.left,r.pointerLines.right,r.controllerWrappers[0],r.controllerWrappers[1]),r.panoResources={},r.panoResources[r.locationMotion.keyframes[0].key=r.locationMotion.keyframes[1].key=createUuid()]={panoId:panoStringify(r.currentPano),leftPanoPicture:null,position:r.camera.pose.offset.clone(),effect:"fade",fixCameraTransform:new THREE__namespace.Matrix4},r.parallaxCameraMatrixs=[];var u=AnimationFrameLoop.shared.getContext();return u?(r.on("xr.session.end",function(){r.scene.remove(r.pointerLines.left,r.pointerLines.right)}),r.xrManager.setSession(u),r.on("xr.session.start",function(){var c=r.xrManager.getControllerGrip(0);c.add(s.createControllerModel(c)),r.controllerWrappers[0].add(c);var l=r.xrManager.getControllerGrip(1);l.add(s.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=__assign(__assign({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return n.parseArgs.call(this,r)},t.initAnimationEndState=function(e){var r=this.parseArgs(e),i=n.initAnimationEndState.call(this,r);return __assign(__assign({},i),{mode:"XRPanorama"})},t.prototype.moveToPano=function(e,r,i){var o=this,s,u,c,l,d=(s=r.effect)!==null&&s!==void 0?s:"fade";this.userAction=i,this.stopMomentumMovement();var f=this.works.getResolvedObserver(e);if(!f)throw new Error("Invalid PanoIndex");var m=getImageSizeFromURL(f.images.up),A=this.imageOptions.size;typeof A=="undefined"&&f&&m&&(A=Number(m)),typeof A=="undefined"&&(A=2048);var h=this.imageOptions.transform,p=function(x,w){return mapPanoResource(applyImageURLOptions(x,h,w))},b=__assign({key:"pano.".concat(f.panoId)},pick(this.imageOptions,["format","size","quality"])),v=f.images,g=(c=(u=f.images.tiles)===null||u===void 0?void 0:u.filter(function(x){return x.size>A}))!==null&&c!==void 0?c:null,E="pano:"+jsonHash([v,b,h]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===E)return;var y=this.pendingTextureTask.panoId;(l=this.panoMeshes[y])===null||l===void 0||l.setProgress(0),this.emit("pano.texture.abort",createEvent("pano.texture.abort",{error:null,progress:0,meta:null,pano:f.pano}))}var T=this.models.getMaterial()||{},_=T.pano0,R=T.pano1,S;if((_==null?void 0:_.map.name)===E?S=_:(R==null?void 0:R.map.name)===E&&(S=R),S){var B={panoId:f.panoId,effect:d,leftPanoPicture:{zoom:1,map:S.map,luminanceMap:S.luminanceMap,matrix:new THREE__namespace.Matrix4().compose(f.position,f.quaternion,PANO_TEXTURE_SCALE)},position:f.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};this.doMoveToPano(f.pano,B,r);return}var I="move-to-pano-"+f.panoId;this.pending.add(I),this.pendingTextureTask={panoId:f.panoId,hash:E,onLoad:function(x){if(o.pending.delete(I),o.destroyed)x.body.dispose();else{x.body.name=E;var w={panoId:f.panoId,effect:d,leftPanoPicture:{zoom:1,map:x.body,luminanceMap:null,matrix:new THREE__namespace.Matrix4().compose(f.position,f.quaternion,PANO_TEXTURE_SCALE)},position:f.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};o.doMoveToPano(f.pano,w,r)}},onError:function(x){o.pending.delete(I);var w=__assign(__assign(__assign({},f.pano),{mode:o.mode}),clonePose(o.camera.pose));o.emit("pano.error",createEvent("pano.error",{error:x,userAction:o.userAction,options:r,prevPano:o.currentPano,progress:0,state:w})),o.emit("pano.cancel",createEvent("pano.cancel",{error:null,userAction:o.userAction,options:r,prevPano:o.currentPano,progress:0,state:w})),r.moveCancelCallback&&r.moveCancelCallback()}},Promise.all([this.tileLevelForFov&&g&&g.length?this.textureLoader.loadTiledCubeTexture(v,g,{tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:p,options:b},format:THREE__namespace.RGBAFormat,minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,generateMipmaps:!1,viaAjax:!0,fetcher:getFetcher(f.work)},void 0,void 0,function(x){var w,H;o.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:x,meta:null,pano:f.pano})),((w=o.pendingTextureTask)===null||w===void 0?void 0:w.hash)===E&&((H=o.panoMeshes[f.panoId])===null||H===void 0||H.setProgress(x))},this.renderer):this.textureLoader.loadCubeTexture(v,{imageURL:{transform:p,options:b},format:THREE__namespace.RGBAFormat,fetcher:getFetcher(f.work)},void 0,void 0,function(x){var w,H;((w=o.pendingTextureTask)===null||w===void 0?void 0:w.hash)===E&&((H=o.panoMeshes[f.panoId])===null||H===void 0||H.setProgress(x)),o.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:x,meta:null,pano:f.pano}))},this.renderer)]).then(function(x){var w,H,C=x[0];((w=o.pendingTextureTask)===null||w===void 0?void 0:w.hash)===E?(o.pendingTextureTask.onLoad(C),(H=o.panoMeshes[f.panoId])===null||H===void 0||H.setProgress(0),delete o.pendingTextureTask,o.emit("pano.texture.success",createEvent("pano.texture.success",{error:null,progress:1,meta:C.meta,pano:f.pano}))):C.body.dispose()}).catch(function(x){var w,H;((w=o.pendingTextureTask)===null||w===void 0?void 0:w.hash)===E&&(o.pendingTextureTask.onError(x),(H=o.panoMeshes[f.panoId])===null||H===void 0||H.setProgress(0),delete o.pendingTextureTask,o.emit("pano.texture.error",createEvent("pano.texture.error",{error:x,progress:0,meta:null,pano:f.pano})),o.emit("error",x))}),this.emit("pano.texture.load",createEvent("pano.texture.load",{error:null,progress:0,meta:null,pano:f.pano}))},t.prototype.doMoveToPano=function(e,r,i){var o=this,s,u,c,l,d,f,m,A,h,p;i===void 0&&(i={});var b=now(),v=createUuid();this.panoResources[v]=r;var g=1,E,y,T;if(this.locationMotion.ended){var _=this.locationMotion.getKeyFrameSegment(b);_[0];var R=_[1],S=this.locationMotion.value,B=this.panoResourceFromLocationMotionKeyframe(R).position,I=r.position;E=Math.max(B.distanceTo(I),g),y=[{key:R.key,progress:0,value:__assign(__assign({},S),{count:0})},{key:v,progress:1,value:{distance:0,count:1}}],T=0}else{var x=this.locationMotion.getKeyFrameSegment(b),w=x[0],R=x[1],S=this.locationMotion.value,H=this.panoResourceFromLocationMotionKeyframe(w).position,B=this.panoResourceFromLocationMotionKeyframe(R).position,I=r.position,C=R.value.count-S.count,L=Math.max(H.distanceTo(B),g)*C,k=Math.max(B.distanceTo(I),g);E=L+k,y=[{key:w.key,progress:0,value:__assign({},S)},{key:R.key,progress:L/E,value:R.value},{key:v,progress:1,value:{count:R.value.count+1,distance:0}}];var O=this.locationMotionKeyframesLength(this.locationMotion.keyframes),G=this.locationMotionKeyframesLength(y);T=this.locationMotion.getProgressVelocity(b)*O/G}var Q=r.effect==="instant"?0:this.calculateMovingDuration(i.duration,r.effect==="fly"?E:0),D={longitude:i.longitude,latitude:i.latitude,fov:i.fov},U=__assign(__assign({},e),{mode:this.mode,longitude:(s=D.longitude)!==null&&s!==void 0?s:this.camera.pose.longitude,latitude:(u=D.latitude)!==null&&u!==void 0?u:this.camera.pose.latitude,fov:(c=D.fov)!==null&&c!==void 0?c:this.camera.pose.fov,offset:r.position.clone(),distance:0}),K=this.currentPano;if(this.emit("pano.moveTo",createEvent("pano.moveTo",{options:i,prevPano:K,progress:0,state:U,userAction:this.userAction,error:null})),i.moveStartCallback&&i.moveStartCallback(U),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=noop$1,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),r.effect==="fly")this.cameraMotion.set(D,Q).catch(noop$1);else{var z=coordinatesToVector({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude}),q=coordinatesToVector({longitude:(l=D.longitude)!==null&&l!==void 0?l:this.cameraMotion.value.longitude,latitude:(d=D.latitude)!==null&&d!==void 0?d:this.cameraMotion.value.latitude}),J=new THREE__namespace.Object3D;J.lookAt(z);var j=new THREE__namespace.Matrix4().makeRotationFromQuaternion(J.quaternion);J.lookAt(q);var re=new THREE__namespace.Matrix4().makeRotationFromQuaternion(J.quaternion),W=new THREE__namespace.Matrix4().getInverse(j).premultiply(re),te=this.cameraMotion.value.fov,$=(f=D.fov)!==null&&f!==void 0?f:this.cameraMotion.value.fov,ne=1;r.effect==="zoomin"?ne=1.5:r.effect==="zoomout"&&(ne=.4);for(var ee=$*ne,fe=0;fe<y.length-1;fe++){var ae=y[fe].key;if(ae){var se=this.panoResources[ae];se&&(se.fixCameraTransform.copy(W),se.leftPanoPicture&&(se.leftPanoPicture.zoom=Math.tan(te/2/180*Math.PI)/Math.tan(ee/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:(m=D.longitude)!==null&&m!==void 0?m:this.cameraMotion.value.longitude,latitude:(A=D.latitude)!==null&&A!==void 0?A:this.cameraMotion.value.latitude,fov:ee}},{progress:1,value:{longitude:(h=D.longitude)!==null&&h!==void 0?h:this.cameraMotion.value.longitude,latitude:(p=D.latitude)!==null&&p!==void 0?p:this.cameraMotion.value.latitude,fov:$}}],Q).catch(noop$1)}var Ae=this.locationMotion.setKeyframes(y,Q,T);Ae.then(function(){for(var he,me,Z,Y=0,N=o.models;Y<N.length;Y++){var Ee=N[Y];Ee.show()}var ge=__assign(__assign({},e),{mode:o.mode,longitude:o.camera.pose.longitude,latitude:o.camera.pose.latitude,fov:o.camera.pose.fov,offset:o.camera.pose.offset.clone(),distance:0});o.emit("pano.arrived",createEvent("pano.arrived",{options:i,prevPano:K,progress:1,state:ge,userAction:o.userAction,error:null})),i.moveEndCallback&&i.moveEndCallback(ge);var ve=o.works.getResolvedObserver(o.currentPano);if(ve&&ve.video&&o.videoTexture&&o.videoTexture.image instanceof HTMLVideoElement){var xe=ROTATE_Y_PI_MATRIX.clone().multiply((Z=(me=(he=o.models.getMaterial())===null||he===void 0?void 0:he.pano1)===null||me===void 0?void 0:me.matrix)!==null&&Z!==void 0?Z:new THREE__namespace.Matrix4).multiply(ve.video.matrix),de={map:o.videoTexture,size:ve.video.size,matrix:xe,alpha:1},ce=createUuid(),le=o.videoTexture.image;le.setAttribute("uuid",ce),canplayVideo().then(function(ue){ue&&ve.video&&le.getAttribute("uuid")===ce&&(le.oncanplay=function(){le.oncanplay=noop$1,le.play()},le.ontimeupdate=function(){le.currentTime>.5&&(le.ontimeupdate=noop$1,o.panoVideo.setMaterial(de))},le.src=ve.video.source)}).catch(function(){le.removeAttribute("uuid")})}},function(){o.emit("pano.cancel",createEvent("pano.cancel",{options:i,prevPano:K,progress:0,state:U,userAction:o.userAction,error:null})),i.moveCancelCallback&&i.moveCancelCallback()})},t.prototype.checkSelectedPano=function(e){var r=this,i,o,s,u;this.stopMomentumMovement();var c=this.camera.getDirection(new THREE__namespace.Vector3).setY(0),l=null,d=this.works.getResolvedObserver(this.currentPano);if(!d)return null;var f=d.accessibleIds.filter(function(q){var J=panoParse(q);if(panoEqual(J,r.currentPano))return!1;var j=r.works.getResolvedObserver(J);return!j||j.position.distanceTo(r.camera.position)>r.maxAccessibleDistance?!1:j.loadable||j.active}),m=this.models.intersectRaycaster(e)[0];if(m){var A=arrayMin(f,function(q){var J=r.works.getResolvedObserver(q);if(!J)return 1/0;var j=J.standingPosition.clone();return j.distanceTo(m.point)},!0),h=A[0],p=A[1];h&&p<this.panoTapTriggerRadius&&(l=(i=this.works.getResolvedObserver(h))!==null&&i!==void 0?i:null)}if(isNil(l)){var b=this.getForwardObserverOrNot(e);b&&(l=b)}for(var v=0,g=this.locationMotion.keyframes;v<g.length;v++){var E=g[v],y=this.panoResourceFromLocationMotionKeyframe(E);if(!(E.progress<this.locationMotion.progress)&&l&&y.panoId===l.panoId){l=null;break}}if(isNil(l))return this.locationMotion.ended===!0&&this.cameraBounce(),null;if(l&&!l.active){var T=l.panoId;this.panoMeshes[T]&&(this.panoMeshes[T].setDisabled(!1),this.panoMeshes[T].setLoading(!0))}var _={};if(l){for(var R=Math.PI/6,S=Math.PI/12,B=new THREE__namespace.Vector3(0,1,0),I=l.position.clone().setY(0).sub(d.position.clone().setY(0)).normalize(),x=I.clone().applyAxisAngle(B,R),w=I.clone().applyAxisAngle(B,-R),H=[],C=[],L=[],k=0,O=l.accessibleIds;k<O.length;k++){var h=O[k],G=panoParse(h);if(!(panoEqual(G,this.currentPano)||panoEqual(G,l.pano))){var Q=this.works.getResolvedObserver(h);if(Q){var D=Q.position.clone().sub(l.position).setY(0);I.angleTo(D)<R?L.push(D):x.angleTo(D)<R?H.push(D):w.angleTo(D)<R&&C.push(D)}}}var U=L.length>0?L:__spreadArray(__spreadArray([],H,!0),C,!0),K=U.slice().sort(function(q,J){return q.angleTo(I)-J.angleTo(I)})[0];K&&K.angleTo(c)>S&&(_.longitude=Math.atan2(-K.x,-K.z))}this.cameraMotion.value.latitude<-Math.PI/4&&(_.latitude=clamp$1(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(_.fov=this.defaultFov);var z={workCode:l.pano.workCode,panoIndex:l.pano.panoIndex,mode:this.mode,longitude:(o=_.longitude)!==null&&o!==void 0?o:this.camera.pose.longitude,latitude:(s=_.latitude)!==null&&s!==void 0?s:this.camera.pose.latitude,fov:(u=_.fov)!==null&&u!==void 0?u:this.camera.pose.fov,distance:0,offset:l?l.position.clone():new THREE__namespace.Vector3};return this.emit("pano.select",createEvent("pano.select",{prevPano:this.currentPano,state:z,userAction:!0,options:_,progress:0,error:null})),l&&l.active?(this.emit("pano.request",createEvent("pano.request",{userAction:!0,prevPano:this.currentPano,progress:0,state:z,options:_,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,o,s,u,c,l,d,f,m,A=[],h=2;h<arguments.length;h++)A[h-2]=arguments[h];this.userAction=!0;var p={},b={},v=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),g=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),E=!1;if(this.cameraMotion.ended===!1&&(this.cameraMotion.update(e),b.longitude=this.cameraMotion.value.longitude,b.latitude=this.cameraMotion.value.latitude,b.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended===!1&&(this.modelAlphaMotion.update(e),p.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended===!1&&(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended===!1){this.locationMotion.update(e);var y=this.locationMotion.getKeyFrameSegment(e),T=y[0],_=y[1],R=this.panoResourceFromLocationMotionKeyframe(T),S=this.panoResourceFromLocationMotionKeyframe(_),B=new THREE__namespace.Vector3().copy(R.position),I=new THREE__namespace.Vector3().copy(S.position),x=this.locationMotion.value.count-_.value.count+1;p.progress=x,S.leftPanoPicture&&(x<1?R.leftPanoPicture&&(p.pano0=R.leftPanoPicture):p.pano0=S.leftPanoPicture,p.pano1=S.leftPanoPicture),S.effect==="montage"?p.transition="BLACK":S.effect==="spread"?p.transition="SPREAD":p.transition="FADE",(S.effect==="zoomin"||S.effect==="zoomout")&&(p.progress=Math.pow(x,3)),x<1&&S.effect!=="fly"&&(p.pano0&&R.leftPanoPicture&&(p.pano0={map:p.pano0.map,zoom:p.pano0.zoom,luminanceMap:p.pano0.luminanceMap,matrix:R.leftPanoPicture.matrix.clone().setPosition(S.position)}),B.copy(I),E=!0),b.distance=this.locationMotion.value.distance,b.offset=new THREE__namespace.Vector3(B.x+(I.x-B.x)*x,B.y+(I.y-B.y)*x,B.z+(I.z-B.z)*x);for(var w=[],H=[],C=0,L=this.locationMotion.keyframes;C<L.length;C++){var k=L[C],O=k.key,G=k.progress;O!==void 0&&(w.push(O),G>this.locationMotion.progress&&H.push(O))}for(var Q=0,D=Object.keys(this.panoResources);Q<D.length;Q++){var U=D[Q];if(!(H.indexOf(U)>=0)){var K=this.panoResources[U];if(K.leftPanoPicture){var z=K.leftPanoPicture.map;if(z){if(z===((o=p.pano0)===null||o===void 0?void 0:o.map)||z===((s=p.pano1)===null||s===void 0?void 0:s.map))continue;z instanceof TileCubeTextureTarget&&z.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(z.cubeRenderTarget),z.dispose(),K.leftPanoPicture=null}}w.indexOf(U)>=0||delete this.panoResources[U]}}this.currentPano=panoParse(S.panoId),this.emit("pano.moving",createEvent("pano.moving",{userAction:this.userAction,prevPano:panoParse(v.panoId),state:__assign(__assign(__assign(__assign({},panoParse(g.panoId)),{mode:this.mode}),clonePose(this.camera.pose)),b),options:{},progress:this.locationMotion.progress,error:null}))}isEmptyObject(p)===!1&&(!((u=p.pano0)===null||u===void 0)&&u.map&&p.pano0.map instanceof TileCubeTextureTarget&&!p.pano0.map.cubeRenderTarget&&(p.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((c=p.pano1)===null||c===void 0)&&c.map&&p.pano1.map instanceof TileCubeTextureTarget&&!p.pano1.map.cubeRenderTarget&&(p.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),this.models.setMaterial(p)),isEmptyObject(b)===!1&&this.setCamera(b);var q=this.works.getResolvedObserver(this.currentPano),J=A[1];if(!J){console.error("xrFrame丢失,请重试");return}if(!this.xrManager.session){console.error("session丢失,请重试");return}var j=this.xrManager.referenceSpace;if(j){var re=this.xrManager.cameraVR,W=this.xrManager.cameraL,te=this.xrManager.cameraR,$=[W,te],ne=J.getViewerPose(j),ee=new THREE__namespace.Vector3(0,0,0);if(ne){var fe;fe=this.xrManager.session.renderState.baseLayer;var ae=ne.views;if(!fe){console.error("no layer found");return}this.renderer.setFramebuffer(fe.framebuffer);var se=!1;ae.length!==re.cameras.length&&(re.cameras.length=0,se=!0),this.parallaxCameraMatrixs=[];var Ae=new THREE__namespace.Vector3,he=new THREE__namespace.Vector3;new THREE__namespace.Matrix4().fromArray(ae[0].transform.matrix).decompose(Ae,new THREE__namespace.Quaternion,new THREE__namespace.Vector3),new THREE__namespace.Matrix4().fromArray(ae[1].transform.matrix).decompose(he,new THREE__namespace.Quaternion,new THREE__namespace.Vector3),he.clone().sub(Ae).normalize();var me=new THREE__namespace.Vector3,Z=new THREE__namespace.Quaternion,Y=new THREE__namespace.Vector3;this.camera.matrix.decompose(me,Z,Y);for(var N=0;N<ae.length;N++){var Ee=ae[N],ge=fe.getViewport(Ee),ve=$[N];ve.matrix.fromArray(Ee.transform.matrix);var xe=new THREE__namespace.Vector3,de=new THREE__namespace.Quaternion,ce=new THREE__namespace.Vector3;ve.matrix.decompose(xe,de,ce),ee.copy(me),ve.position.copy(me),ve.quaternion.copy(de),ve.scale.copy(ce),ve.updateMatrix(),ve.projectionMatrix.fromArray(Ee.projectionMatrix),ve.viewport.set(ge.x,ge.y,ge.width,ge.height),se===!0&&re.cameras.push(ve)}if(this.xrManager.session&&this.xrManager.session.inputSources){for(var N=0;N<this.xrManager.session.inputSources.length;N++)if(this.xrManager.session.inputSources[N]&&this.xrManager.session.inputSources[N].targetRayMode==="transient-pointer"){var le=J.getPose(this.xrManager.session.inputSources[N].targetRaySpace,j);if(le){var ue=new THREE__namespace.Vector3(0,0,-1).applyQuaternion(le.transform.orientation),oe=new THREE__namespace.Raycaster(this.camera.position,ue);this.gazeRay=oe}}}if(this.xrManager.machineType==="Oculus"||this.xrManager.machineType==="Pico"){for(var Te=this.xrManager.session.inputSources,N=0;N<Te.length;N++){var Re=this.xrManager.controllers[N],Ie=Te[N];if(Ie){Re&&Re.update(Ie,J,j);var oe=this.xrManager.getController(N),lt=new THREE__namespace.Vector3(0,1.2,0),ye=oe.position.clone().add(ee).sub(lt);Ie.handedness==="left"?this.xrControllerRay.left.set(ye,new THREE__namespace.Vector3(0,0,-1).applyEuler(oe.rotation)):Ie.handedness==="right"&&this.xrControllerRay.right.set(ye,new THREE__namespace.Vector3(0,0,-1).applyEuler(oe.rotation)),this.controllerWrappers[N].position.copy(new THREE__namespace.Vector3(0,0,0).add(ee).sub(lt));var we=this.models.intersectRaycaster(this.xrControllerRay.right);if(we.length===0&&(we=this.xrControllerRay.right.intersectObject(this.boundingMesh,!0).map(function(st){var ft;return __assign({floor:(ft=q==null?void 0:q.floorIndex)!==null&&ft!==void 0?ft:0},st)})),we.length>=1&&we[0].face)if(Ie.handedness==="right"){var Be=this.xrControllerRay.right.intersectObject(this.xrCustomObjectsScene,!0),Je=we[0].face.normal,ht=Je.clone(),Xe=we[0].point.clone();this.intersectMesh.position.copy(Xe);var Ve=Xe.clone().add(ht);if(this.intersectMesh.lookAt(Ve),Math.abs(Je.y)>.99){var je=this.camera.position.clone().sub(Xe);this.intersectMesh.rotation.z=-Math.atan2(je.z,je.x)}this.intersectMesh.visible=!0,this.needsRender=!0,Be.length>0?(this.pointerLines.right.setPoints(ye,Be[0].point),this.pointerLines.right.points.visible=!0,this.intersectMesh.visible=!1):(this.pointerLines.right.points.visible=!1,this.pointerLines.right.setPoints(ye,we[0].point));var at=we[0],Ue=createEvent("intersect.update",{raycaster:(l=this.xrControllerRay.right)!==null&&l!==void 0?l:null,intersection:at!=null?at:null,object:this.intersectMesh});if(this.emit("intersect.update",Ue),Ue.defaultPrevented){this.hideIntersectMesh();return}}else this.pointerLines.left.setPoints(ye,we[0].point)}}this.updateControllerHelper(Te,e,r)}if(this.camera.pose.distance>.1||E)for(var We=0,ze=Object.keys(this.panoMeshes);We<ze.length;We++){var He=ze[We],be=this.panoMeshes[He];be.setOpacity(0),be.setCurrent(!1),be.updateTime&&be.updateTime(e,r),be.visible=!1}else if(q){var $e=arrayMin(q.visibleIds,function(Le){var qe=i.works.getResolvedObserver(Le);return qe?q.standingPosition.distanceTo(qe.standingPosition):1/0},!0),Fe=$e[1];Fe=clamp$1(Fe,2.5,1/0);for(var et=q.visibleIds.concat(panoStringify(this.currentPano)),tt=this.getForwardObserverOrNot(),Qe=this.camera.getDirection(new THREE__namespace.Vector3),Ne=0,rt=Object.keys(this.panoMeshes);Ne<rt.length;Ne++){var He=rt[Ne],be=this.panoMeshes[He],ot=this.works.getResolvedObserver(He);if(et.indexOf(He)===-1)be.setCurrent(!1),be.setOpacity(0);else if(!ot)be.setCurrent(!1),be.setOpacity(0);else if(!ot.loadable&&!ot.active)be.setCurrent(!1),be.setOpacity(0);else{var pt=be.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);be.setCurrent(!be.loading&&be.progress===0&&tt!==null&&tt.panoId===He),be.setOpacity(pt<.01?0:clamp$1(Fe/pt*1.2,.65,.98));var ct=this.camera.position.clone().setY(be.position.y),ue=new THREE__namespace.Vector3().copy(be.position).sub(ct).normalize();if(He===panoStringify(this.currentPano)){var dt=clamp$1((.5-ct.distanceTo(be.position))/.5,0,1);ue.multiplyScalar(1-dt).add(Qe.clone().multiplyScalar(dt))}ue.length()>0&&be.quaternion.setFromEuler(new THREE__namespace.Euler(0,Math.atan2(ue.x,ue.z),0))}be.updateTime&&be.updateTime(e,r)}}var Ge=function(){return 4}(),Me=function(){var Le=new THREE__namespace.PerspectiveCamera;Le.applyMatrix4(re.matrix),Le.position.set(0,0,0);var qe=i.works.getResolvedObserver(g.panoId),st=qe!=null?qe:q;st&&Le.quaternion.premultiply(st.quaternion.clone().inverse()),Le.updateProjectionMatrix(),Le.updateMatrixWorld(!0);var ft=new THREE__namespace.Frustum().setFromProjectionMatrix(new THREE__namespace.Matrix4().multiplyMatrices(Le.projectionMatrix,Le.matrixWorldInverse));return ft}();g.panoId===panoStringify(this.currentPano)&&((d=g.leftPanoPicture)===null||d===void 0?void 0:d.map)instanceof TileCubeTextureTarget&&(g.leftPanoPicture.map.maxRequest=this.tileMaxRequest,g.leftPanoPicture.map.update(Me,Ge),g.leftPanoPicture.map.needsRender===!0&&(this.needsRender=!0,this.modelSceneNeedsRender=!0));{var _e=this.tiling.object.visible;if(this.initAnimationed){var Pe=g.panoId,ke=this.works.getResolvedObserver(Pe);ke?isSimilarVector3(this.camera.position,ke.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==Pe&&this.tiling.cleanup(),this.tiling.panoId=Pe,this.tiling.setResource((m=(f=ke.images)===null||f===void 0?void 0:f.tiles)!==null&&m!==void 0?m:[],this.enableIOSEDR&&ke.images.luminance?ke.images.luminance:null),this.tiling.setFetcher(getFetcher(ke.work)),this.tiling.setRotation(ke.quaternion),this.tiling.setPosition(ke.position),this.tiling.maxRequest=this.tileMaxRequest,Ge>this.TILED_CUBE_TEXTURE_LEVEL?this.tiling.update(Me,Ge,e):this.tiling.update(Me,0,e)):this.tiling.object.visible=!1:this.tiling.object.visible=!1}else this.tiling.object.visible=!1;_e!==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 o=this.xrControllerRay.left,s=this.xrControllerRay.right;if(!(!e||e.length===0)){for(var u={buttons:{X:!1,Y:!1,LeftTrigger:!1,LeftPinch:!1,A:!1,B:!1,RightTrigger:!1,RightPinch:!1}},c=0;c<e.length;c++){var l=e[c].handedness,d=e[c].gamepad;switch(l){case"left":d.axes&&(this.emitHandleEvent(d.axes[2]===-1,"LeftAxesLeft",r),this.emitHandleEvent(d.axes[2]===1,"LeftAxesRight",r),this.emitHandleEvent(d.axes[3]===-1,"LeftAxesUp",r),this.emitHandleEvent(d.axes[3]===1,"LeftAxesDown",r)),d!=null&&d.buttons&&(d.buttons[4]&&this.emitHandleEvent(d.buttons[4].pressed,"X",r),d.buttons[5]&&this.emitHandleEvent(d.buttons[5].pressed,"Y",r),d.buttons[0]&&this.emitHandleEvent(d.buttons[0].pressed,"LeftTrigger",r),d.buttons[1]&&this.emitHandleEvent(d.buttons[1].pressed,"LeftPinch",r));var f={raycaster:o,axes:{up:d.axes&&d.axes[3]<0?Math.abs(d.axes[3]):0,down:d.axes&&d.axes[3]<0?0:Math.abs(d.axes[3]),left:d.axes&&d.axes[2]<0?Math.abs(d.axes[2]):0,right:d.axes&&d.axes[2]<0?0:Math.abs(d.axes[2])},deltaTime:i};u.buttons.X=d.buttons&&d.buttons[4]?d.buttons[4].pressed:!1,u.buttons.Y=d.buttons&&d.buttons[5]?d==null?void 0:d.buttons[5].pressed:!1,u.buttons.LeftTrigger=d.buttons&&d.buttons[0]?d==null?void 0:d.buttons[0].pressed:!1,u.buttons.LeftPinch=d.buttons&&d.buttons[1]?d==null?void 0:d.buttons[1].pressed:!1,u.left=f;break;case"right":d.axes&&(this.emitHandleEvent(d.axes[2]===-1,"RightAxesLeft",r),this.emitHandleEvent(d.axes[2]===1,"RightAxesRight",r),this.emitHandleEvent(d.axes[3]===-1,"RightAxesUp",r),this.emitHandleEvent(d.axes[3]===1,"RightAxesDown",r)),d.buttons&&(d.buttons[4]&&this.emitHandleEvent(d.buttons[4].pressed,"A",r),d.buttons[5]&&this.emitHandleEvent(d.buttons[5].pressed,"B",r),d.buttons[0]&&this.emitHandleEvent(d.buttons[0].pressed,"RightTrigger",r),d.buttons[1]&&this.emitHandleEvent(d.buttons[1].pressed,"RightPinch",r));var m={raycaster:s,axes:{up:d.axes&&d.axes[3]<0?Math.abs(d.axes[3]):0,down:d.axes&&d.axes[3]<0?0:Math.abs(d.axes[3]),left:d.axes&&d.axes[2]<0?Math.abs(d.axes[2]):0,right:d.axes&&d.axes[2]<0?0:Math.abs(d.axes[2])},deltaTime:i};u.right=m,u.buttons.A=d.buttons&&d.buttons[4]?d==null?void 0:d.buttons[4].pressed:!1,u.buttons.B=d.buttons&&d.buttons[5]?d==null?void 0:d.buttons[5].pressed:!1,u.buttons.RightTrigger=d.buttons&&d.buttons[0]?d==null?void 0:d.buttons[0].pressed:!1,u.buttons.RightPinch=d.buttons&&d.buttons[1]?d==null?void 0:d.buttons[1].pressed:!1;break}}this.emit("xr.controller.update",createEvent("xr.controller.update",u))}},t.prototype.emitHandleEvent=function(e,r,i){var o=this.xrControllerRay.left,s=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",createEvent("xr.gesture.buttonDown",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!1,isFirst:!0,controllers:{raycaster:{leftRay:o,rightRay:s}}}));else{var u=i-this.xrHandleState[r].touchStartTime;u>CONTROLLER_EVNET_DELTA_TIME&&this.emit("xr.gesture.press",createEvent("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!0,controllers:{raycaster:{leftRay:o,rightRay:s}}}))}else if(this.xrHandleState[r].touchStart===!0){this.emit("xr.gesture.buttonUp",createEvent("xr.gesture.buttonUp",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:o,rightRay:s}}}));var u=i-this.xrHandleState[r].touchStartTime;if(u<=CONTROLLER_EVNET_DELTA_TIME){var c=createEvent("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:o,rightRay:s}}}),l=this.emit("xr.gesture.tap",c);!l&&!c.defaultPrevented&&r==="RightTrigger"&&this.checkSelectedPano(this.xrControllerRay.right)}this.xrHandleState[r].touchStart=!1,this.xrHandleState[r].touchStartTime=0}},t.prototype.initHandEvent=function(){var e=this;if(!this.xrManager.session)throw new Error("初始化失败");this.xrManager.session.addEventListener("select",function(r){e.gazeRay&&e.checkSelectedPano(e.gazeRay)})},t}(PanoramaController),Controllers={Floorplan:FloorplanController,Topview:TopviewController,Panorama:PanoramaController,VRPanorama:VRPanoramaController,Model:ModelController,Mapview:MapviewController,XRPanorama:XRPanoramaController},PROXY_CONTROLLER_EVENT_NAMES=["gesture.pan","gesture.tap","gesture.dbltap","gesture.press","gesture.pinch","gesture.mousewheel","gesture.mousemove","gesture.momentum","initAnimation.start","initAnimation.end","camera.update","intersect.update","pano.select","pano.moveTo","pano.moving","pano.arrived","pano.cancel","pano.error","pano.texture.load","pano.texture.progress","pano.texture.success","pano.texture.error","pano.texture.abort","xr.session.start","xr.session.end","xr.gesture.tap","xr.gesture.press","xr.gesture.buttonUp","xr.gesture.buttonDown","xr.controller.update"];function initLegacyEvent(n){n.on("initAnimation.start",function(t){n.emit("initAnimationWillStart",t.state.panoIndex,t.state,t.userAction)}),n.on("initAnimation.end",function(t){n.emit("initAnimationEnded",t.state.panoIndex,t.state,t.userAction)}),n.on("gesture.pan",function(t){var e=!1;e=n.emit("wantsGesture","pan",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPanGesture",t.state,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","pan",t.pointers,t.isFinal),n.emit("panGesture",t.state,t.isFinal))}),n.on("gesture.tap",function(t){var e=!1;e=n.emit("wantsGesture","tap",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsTapGesture",t.center.raycaster,t.center.coords,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","tap",t.pointers,t.isFinal),n.emit("tapGesture",t.center.raycaster,t.center.coords,t.isFinal))}),n.on("gesture.dbltap",function(t){var e=!1;e=n.emit("wantsGesture","dbltap",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsDblTapGesture",t.center.raycaster,t.center.coords,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","dbltap",t.pointers,t.isFinal),n.emit("dblTapGesture",t.center.raycaster,t.center.coords,t.isFinal))}),n.on("gesture.press",function(t){var e=!1;e=n.emit("wantsGesture","press",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPressGesture",t.center.raycaster,t.center.coords,t.center.delta,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","press",t.pointers,t.isFinal),n.emit("pressGesture",t.center.raycaster,t.center.coords,t.center.delta,t.isFinal))}),n.on("gesture.pinch",function(t){var e=!1;e=n.emit("wantsGesture","pinch",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPinchGesture",t.scale,t.state.fov,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","pinch",t.pointers,t.isFinal),n.emit("pinchGesture",t.scale,t.state.fov,t.isFinal))}),n.on("gesture.mousewheel",function(t){var e=!1;e=n.emit("wantsGesture","mouseWheel",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsMouseWheel",t.center.delta,t.state.fov,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","mouseWheel",t.pointers,t.isFinal),n.emit("mouseWheel",t.center.delta,t.state.fov,t.isFinal))}),n.on("gesture.mousemove",function(t){var e=!1;e=n.emit("wantsGesture","mouseMove",t.pointers,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","mouseMove",t.pointers,t.isFinal),e=n.emit("wantsChangeCameraFov",t.state.fov),e&&t.preventDefault())}),n.on("gesture.momentum",function(t){var e=!1;e=n.emit("wantsInteriaPan",t.state),e&&t.preventDefault(),t.defaultPrevented||n.emit("interiaPan",t.state,t.isFinal)}),n.on("camera.update",function(t){n.emit("cameraFovUpdate",t.state.fov,t.userAction),n.emit("cameraDirectionUpdate",t.state,t.userAction);var e=coordinatesToVector(t.state);e.setLength(t.state.distance);var r=t.state.offset.clone().sub(e);n.emit("cameraPositionUpdate",r,t.userAction),n.emit("cameraUpdate",t.state,t.userAction)}),n.on("intersect.update",function(t){if(t.intersection){var e=!1;e=n.emit("wantsShowIntersectionOnModel",t.raycaster),e&&t.preventDefault(),t.defaultPrevented||n.emit("intersectionOnModelUpdate",t.intersection,t.object)}else n.emit("intersectionHidden")}),n.on("pano.request",function(t){var e=n.emit("wantsMoveToPano",t.state.panoIndex,t.options,t.userAction);e||(e=n.emit("wantsToMoveToPano",t.state.panoIndex,t.options,t.userAction)),e&&t.preventDefault(),t.defaultPrevented||n.emit("panoWillLoad",t.state.panoIndex)}),n.on("pano.select",function(t){n.emit("panoSelected",t.state.panoIndex)}),n.on("pano.moveTo",function(t){n.emit("panoLoaded",t.state.panoIndex),n.emit("moveToPano",t.state.panoIndex,t.userAction),n.emit("panoWillArrive",t.state.panoIndex,t.state,t.userAction)}),n.on("pano.moving",function(t){n.emit("movingToPano",t.state.panoIndex,t.prevPano.panoIndex,t.progress)}),n.on("pano.arrived",function(t){n.emit("panoArrived",t.state.panoIndex,t.state,t.userAction)}),n.on("pano.cancel",function(t){n.emit("moveToPanoCanceled",t.state.panoIndex)}),n.on("pano.error",function(t){n.emit("panoLoadError",t.error,t.state.panoIndex)}),n.on("pano.texture.load",function(t){n.emit("textureStartLoad",t.pano.panoIndex)}),n.on("pano.texture.success",function(t){n.emit("textureLoaded",t.pano.panoIndex,t.meta)}),n.on("pano.texture.error",function(t){n.emit("textureError",t.error,t.pano.panoIndex)}),n.on("pano.texture.abort",function(t){n.emit("textureAbort",t.pano.panoIndex)}),n.on("pano.texture.progress",function(t){n.emit("textureLoading",t.progress,t.pano.panoIndex)}),n.on("xr.session.start",function(t){n.emit("webXRSessionStart")}),n.on("xr.session.end",function(t){n.emit("webXRSessionEnd")}),n.on("xr.gesture.tap",function(t){n.emit("webXRControllerEvent","tap",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.press",function(t){n.emit("webXRControllerEvent","press",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.buttonUp",function(t){n.emit("webXRControllerEvent","buttonUp",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.buttonDown",function(t){n.emit("webXRControllerEvent","buttonDown",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.controller.update",function(t){n.emit("webXRControllerRayUpdate",{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0}),t.left&&n.emit("webXRAxesUpdate","left",{raycaster:{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0},axesState:{up:t.left.axes.up,down:t.left.axes.down,left:t.left.axes.left,right:t.left.axes.right},deltaTime:t.left.deltaTime}),t.right&&n.emit("webXRAxesUpdate","right",{raycaster:{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0},axesState:{up:t.right.axes.up,down:t.right.axes.down,left:t.right.axes.left,right:t.right.axes.right},deltaTime:t.right.deltaTime})}),n.on("works.request",function(t){n.emit("willLoad",t.input,t.works[0],t.state)}),n.on("works.load",function(t){n.emit("load",t.input,t.works[0],t.state)}),n.on("works.ready",function(t){n.emit("loaded",t.input,t.works[0])}),n.on("state.change",function(t){n.emit("stateChange",t.state,t.userAction)}),n.on("currentState.change",function(t){n.emit("currentStateChange",t.state,t.userAction)}),n.on("state.set",function(t){n.emit("setState",t.state)}),n.on("state.synced",function(t){n.emit("stateSynced",t.state)}),n.on("model.request",function(t){n.emit("modelWillLoad",t.work.model)}),n.on("model.error",function(t){n.emit("modelLoadError",t.error,t.model)}),n.on("model.load",function(t){n.emit("modelLoaded",t.model)}),n.on("model.changeShownFloor",function(t){n.emit("modelShownFloorChange",t.model.shownFloor,t.model.floorLength)}),n.on("render",function(t){n.emit("renderFrame",t.needsRender)}),n.on("mode.change.request",function(t){n.emit("wantsChangeMode",t.mode,t.prevMode)}),n.on("mode.change",function(t){n.emit("modeChange",t.mode,t.prevMode,t.state.panoIndex,t.state,t.userAction)}),n.on("helpers.visible",function(t){n.emit("helpersVisibleChange",t.object.visible)}),n.on("network.resource",function(t){n.emit("network",t.source,t.requestType,t.requestState,t.detail)})}function generateDefaultVideoElement(){if(typeof window!="undefined"){var n=document.createElement("video");n.loop=!0,n.autoplay=!0,n.playsInline=!0,n.muted=!0,n.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),n.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),n}else return{}}function initLights(n){{var t=new THREE__namespace.DirectionalLight(16777215,.3);t.position.copy(new THREE__namespace.Vector3(1,1,1)),n.add(t)}{var t=new THREE__namespace.DirectionalLight(16777215,.1);t.position.copy(new THREE__namespace.Vector3(-1,-1,-1)),n.add(t)}{var t=new THREE__namespace.DirectionalLight(16777215,.1);n.add(t)}{var t=new THREE__namespace.AmbientLight(16777215,.6);n.add(t)}}function parseKeyValue(n){for(var t,e,r={},i=n.split(/(\;|\,)/),o=0,s=i;o<s.length;o++){var u=s[o],c=u.split("="),l=(t=c[0])===null||t===void 0?void 0:t.trim(),d=(e=c[1])===null||e===void 0?void 0:e.trim();l&&d&&(r[l]=d)}return r}function getViewportScale(){var n;if(typeof document!="undefined")for(var t=document.getElementsByTagName("meta"),e=0;e<t.length;e++){var r=t[e];if(r.getAttribute("name")==="viewport"){var i=parseKeyValue((n=r.getAttribute("content"))!==null&&n!==void 0?n:""),o=Number(i["initial-scale"]);if(!isNaN(o))return o}}return 1}const textureURL="data:image/png;base64,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";var imageSize=[351,63],imageOffset=[20,20],vertices=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),uvs=new Float32Array([0,0,1,0,0,1,1,1]),index=new Uint8Array([0,1,2,1,3,2]),geometry=new THREE__namespace.BufferGeometry;geometry.setAttribute("position",new THREE__namespace.BufferAttribute(vertices,3)),geometry.setAttribute("uv",new THREE__namespace.BufferAttribute(uvs,2)),geometry.setIndex(new THREE__namespace.BufferAttribute(index,1));var material=new THREE__namespace.MeshBasicMaterial({transparent:!0,depthTest:!1,depthWrite:!1,stencilWrite:!1,fog:!1}),mesh=new THREE__namespace.Mesh(geometry,material);mesh.matrixAutoUpdate=!1;var scene=new THREE__namespace.Scene;scene.add(mesh),scene.matrixAutoUpdate=!1;var camera=new THREE__namespace.OrthographicCamera(-.5,.5,.5,-.5,.1,1);camera.position.set(0,0,.5),camera.lookAt(0,0,0),camera.updateMatrixWorld(!0),camera.matrixAutoUpdate=!1;var prevViewport=new THREE__namespace.Vector4,prevScissor=new THREE__namespace.Vector4;function renderPoweredByRealsee(n){if(material.map){var r=n.getViewport(prevViewport),i=n.getScissor(prevScissor),o=n.getScissorTest(),s=n.autoClear,u=i.x+imageOffset[0]/3,c=i.y+imageOffset[1]/3,l=imageSize[0]/3,d=imageSize[1]/3;n.setViewport(u,c,l,d),n.setScissor(u,c,l,d),n.setScissorTest(!0),n.autoClear=!1,n.render(scene,camera),n.setViewport(r),n.setScissor(i),n.setScissorTest(o),n.autoClear=s}else{var t=new THREE__namespace.Texture,e=new Image;e.onload=function(){t.image=e,t.wrapS=THREE__namespace.ClampToEdgeWrapping,t.wrapT=THREE__namespace.ClampToEdgeWrapping,t.minFilter=THREE__namespace.LinearFilter,t.needsUpdate=!0,t.generateMipmaps=!1,material.needsUpdate=!0,e.onload=noop$1},e.src=textureURL,material.map=t}}var DEFAULT_MODE_CHANGE_DURATION=800,DEFAULT_CAMERA_FOV=90,DEFAULT_REQUEST_PROXY=function(n){return n.replace("//vrlab-public.ljcdn.com/","//vr-public.realsee-cdn.cn/").replace("//vrlab-image4.ljcdn.com/","//vr-image-4.realsee-cdn.cn/").replace("//vrlab-image3.ljcdn.com/","//vr-image-3.realsee-cdn.cn/").replace("//vrlab-image2.ljcdn.com/","//vr-image-2.realsee-cdn.cn/").replace("//vrlab-image1.ljcdn.com/","//vr-image-1.realsee-cdn.cn/")},sharedVector2=new THREE__namespace.Vector2,sharedFrustum=new THREE__namespace.Frustum,sharedProjScreenMatrix=new THREE__namespace.Matrix4,clockForMixer=new WeakMap,worksMap=new WeakMap,emptyWorks=createWorks([]),Five=function(n){__extends(t,n);function t(e){e===void 0&&(e={});var r,i,o,s,u,c,l,d,f,m,A,h=n.call(this)||this;if(h.ident=createUuid(),typeof window!="undefined"&&(__FIVE_DEBUG__.instances[h.ident]=h),h.renderSwitch01=0,h.currentMode="Panorama",h.pano={workCode:"",panoIndex:0},h.needsRender=!1,h.modelSceneNeedsRender=!1,h.onlyRenderIfNeeds=(r=e.onlyRenderIfNeeds)!==null&&r!==void 0?r:!0,h.imageOptions=__assign({},(i=e.imageOptions)!==null&&i!==void 0?i:{}),h.textureOptions=__assign({},(o=e.textureOptions)!==null&&o!==void 0?o:{}),h.poweredByRealsee=(s=e.poweredByRealsee)!==null&&s!==void 0?s:!0,h.extraElements=[],h.controllerInits={Panorama:Object.assign({},e.panorama),Model:Object.assign({},e.model),Floorplan:Object.assign({},e.floorplan),Topview:Object.assign({},e.topview),Mapview:Object.assign({},e.mapview),VRPanorama:Object.assign({},e.vrPanorama),XRPanorama:Object.assign({},e.xrPanorama)},h.fps={testCount:0,testTime:now()},h.info=null,h.modeChangeDuration=(u=e.modeChangeDuration)!==null&&u!==void 0?u:DEFAULT_MODE_CHANGE_DURATION,h.enableWheel=(c=e.enableWheel)!==null&&c!==void 0?c:!0,typeof window!="undefined")if("renderer"in e)e.renderer instanceof InternalWebGLRenderer&&h.throwError(new Error("cannot render a internal renderer")),h.renderer=e.renderer;else try{h.renderer=new InternalWebGLRenderer({preserveDrawingBuffer:e.preserveDrawingBuffer,backgroundColor:e.backgroundColor,backgroundAlpha:e.backgroundAlpha,antialias:e.antialias,webgl2:e.webgl2,logarithmicDepthBuffer:e.logarithmicDepthBuffer,precision:e.precision});var p=getViewportScale();h.renderer.setPixelRatio(p===1?window.devicePixelRatio:1),h.renderer.setSize(512,512)}catch(I){I instanceof Error&&h.throwError(I)}h.getPixelsRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{encoding:(d=(l=h.renderer)===null||l===void 0?void 0:l.outputEncoding)!==null&&d!==void 0?d:THREE__namespace.sRGBEncoding,generateMipmaps:!1});var b=new THREE__namespace.DepthTexture(1,1);b.generateMipmaps=!1,b.format=THREE__namespace.DepthStencilFormat,b.type=THREE__namespace.UnsignedInt248Type,h.modelRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{encoding:(m=(f=h.renderer)===null||f===void 0?void 0:f.outputEncoding)!==null&&m!==void 0?m:THREE__namespace.sRGBEncoding,depthTexture:b,generateMipmaps:!1,depthBuffer:!0,stencilBuffer:!0}),h.scissor=Object.assign({left:0,bottom:0,width:1,height:1},e.scissor),h.camera=new Camera(DEFAULT_CAMERA_FOV),h.scene=new Scene,h.xrCustomObjectsScene=new THREE__namespace.Scene,h.scene.add(h.xrCustomObjectsScene),h.scene.matrixAutoUpdate=!1,h.lastLoadWorkTask=Promise.resolve(),h.requestProxy=(A=e.requestProxy)!==null&&A!==void 0?A:DEFAULT_REQUEST_PROXY,h.networkSubscribe=new NetworkSubscribe,h.networkSubscribe.on("network",function(I,x,w,H){var C;h.emit("network.resource",createEvent("network.resource",{source:I,requestType:x,requestState:w,detail:H})),(C=h.analysis)===null||C===void 0||C.network(h.works,I,x,w,H)}),h.boundingMesh=generateBoundingMesh(new THREE__namespace.Box3(new THREE__namespace.Vector3(-.5,-.5,-.5),new THREE__namespace.Vector3(.5,.5,.5))),h.boundingMesh.name="bounding",h.models=createModels(),h.models.push(new Model),h.lastModels=createModels(),h.lastWorks=createWorks([]),h.readyCallbacks=[],h.syncingState=!1,h.helperGroup=new THREE__namespace.Group,h.helperGroup.name="helper",h.helperGroup.matrixAutoUpdate=!1,h.scene.add(h.helperGroup),h.modelGroup=new THREE__namespace.Group,h.modelGroup.visible=!1,h.modelGroup.name="model",h.modelGroup.matrixAutoUpdate=!1,h.modelScene=new THREE__namespace.Scene,h.modelScene.add(h.modelGroup),h.modelScene.add(h.boundingMesh),h.modelScene.matrixAutoUpdate=!1,h.videoTexture=new THREE__namespace.VideoTexture(e.videoInstance||generateDefaultVideoElement()),initLights(h.scene),initLights(h.modelScene),h.state={mode:h.currentMode,workCode:h.pano.workCode,panoIndex:h.pano.panoIndex,longitude:h.camera.pose.longitude,latitude:h.camera.pose.latitude,fov:h.camera.pose.fov,offset:h.camera.pose.offset.clone(),distance:h.camera.pose.distance},h.stateSynced=!1,h._enablePostProcessing=!1,h._enableIOSEDR=!1,h._enableEDL=!1,h._enableHQ=!1,h.destroyed=!1,h.paused=!0,typeof window!="undefined"&&(e.play!==!1&&h.play(),h.stopAnimationLoop=AnimationFrameLoop.shared.add(function(I,x){for(var w=[],H=2;H<arguments.length;H++)w[H-2]=arguments[H];h.updateTime.apply(h,__spreadArray([I,x],w,!1))},!1,0,10));var v=function(){typeof document!="undefined"&&document.fullscreenElement===null&&h.currentMode==="VRPanorama"&&h.controller.emit("vr.requestExit",createEvent("vr.requestExit",{}))},g=function(){h.needsRender=!0,h.modelSceneNeedsRender=!0};if(typeof document!="undefined"&&document.addEventListener("fullscreenchange",v,!1),h.renderer&&h.renderer.domElement.addEventListener("webglcontextrestored",g,!1),h.removeEventListeners=function(){typeof document!="undefined"&&document.removeEventListener("fullscreenchange",v,!1),h.renderer&&h.renderer.domElement.removeEventListener("webglcontextrestored",g,!1)},h.plugins={},e.plugins&&e.plugins.length)for(var E=0,y=e.plugins;E<y.length;E++){var T=y[E];if(typeof T=="function")T(h);else if(Array.isArray(T)){var _=T[0],R=T[1],S=T[2];if(typeof _=="function"){var B=_(h,S);typeof R=="string"&&(h.plugins[R]?h.throwError(new Error("plugin name ".concat(R," is exists."))):h.plugins[R]=B)}}}return h.gpuPickingRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{generateMipmaps:!1}),h.meshReplaceMaterialMap=new Map,h.meshOriginMaterialMap=new Map,initLegacyEvent(h),h}return Object.defineProperty(t,"version",{get:function(){return"6.2.0-alpha.15"},enumerable:!1,configurable:!0}),Object.defineProperty(t,"dracoPath",{get:function(){return draco.decoderPath},set:function(e){draco.setDecoderPath(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t,"ktx2Path",{get:function(){return ktx2.transcoderPath},set:function(e){ktx2.setTranscoderPath(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"panoIndex",{get:function(){return this.pano.panoIndex},enumerable:!1,configurable:!0}),t.prototype.getGPUPicking=function(e,r,i,o,s){var u=this;if(o===void 0&&(o=1),s===void 0&&(s=new THREE__namespace.Vector3(0,0,0)),!this.renderer)throw new Error("renderer is not initialized.");this.models.setMaterial({constantColor:s}),this.scene.traverse(function(f){if(!(!(f instanceof THREE__namespace.Mesh)||f instanceof PBMMesh)){var m=Object.keys(i).filter(function(h){return h===f.uuid})[0];if(m)if(u.meshOriginMaterialMap.set(m,f.material),u.meshReplaceMaterialMap.get(m))f.material=u.meshReplaceMaterialMap.get(m);else{var A=new THREE__namespace.ShaderMaterial({uniforms:{color:{value:i[m]}},vertexShader:`
|
|
2062
2062
|
void main() {
|
|
2063
2063
|
vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );
|
|
2064
2064
|
gl_Position = projectionMatrix * mvPosition;
|