@realsee/five 6.0.0-alpha.12 → 6.0.0-alpha.13

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.
Files changed (163) hide show
  1. package/docs/classes/five.AnimationFrameLoop.html +1 -1
  2. package/docs/classes/five.BVH.html +1 -1
  3. package/docs/classes/five.BVHIntersect.html +1 -1
  4. package/docs/classes/five.BVHNode.html +1 -1
  5. package/docs/classes/five.BVHVector3.html +1 -1
  6. package/docs/classes/five.BoxBoundingVolume.html +1 -1
  7. package/docs/classes/five.Camera.html +1 -1
  8. package/docs/classes/five.Clipper.html +1 -1
  9. package/docs/classes/five.CullingVolume.html +1 -1
  10. package/docs/classes/five.Five.html +41 -41
  11. package/docs/classes/five.InternalWebGLRenderer.html +1 -1
  12. package/docs/classes/five.IntersectMesh.html +1 -1
  13. package/docs/classes/five.Model.html +1 -1
  14. package/docs/classes/five.NetworkSubscribe.html +1 -1
  15. package/docs/classes/five.PBMContainer.html +1 -1
  16. package/docs/classes/five.PBMGroup.html +1 -1
  17. package/docs/classes/five.PBMMaterialReferenceCache.html +1 -1
  18. package/docs/classes/five.PBMMesh.html +1 -1
  19. package/docs/classes/five.PBMMeshMaterial.html +1 -1
  20. package/docs/classes/five.PanoCircleMesh.html +1 -1
  21. package/docs/classes/five.PanoCircleMeshCustom.html +1 -1
  22. package/docs/classes/five.PanoCircleMeshSolid.html +1 -1
  23. package/docs/classes/five.RegionBoundingVolume.html +1 -1
  24. package/docs/classes/five.RequestScheduler.html +1 -1
  25. package/docs/classes/five.Scene.html +1 -1
  26. package/docs/classes/five.SphereBoundingVolume.html +1 -1
  27. package/docs/classes/five.Subscribe.html +1 -1
  28. package/docs/classes/five.TextureLoader.html +1 -1
  29. package/docs/classes/five.Tile.html +1 -1
  30. package/docs/classes/five.Tile3DModel.html +1 -1
  31. package/docs/classes/five.TileCubeTextureTarget.html +1 -1
  32. package/docs/classes/five.TileNode.html +1 -1
  33. package/docs/classes/five.Tileset.html +1 -1
  34. package/docs/classes/five.TilesetCache.html +1 -1
  35. package/docs/classes/five.TilesetTraverser.html +1 -1
  36. package/docs/classes/five.Work.html +1 -1
  37. package/docs/classes/five.XRButton.html +1 -1
  38. package/docs/classes/gltf_loader.DDSLoader.html +1 -1
  39. package/docs/classes/gltf_loader.DRACOLoader.html +1 -1
  40. package/docs/classes/gltf_loader.GLTFLoader.html +1 -1
  41. package/docs/classes/gltf_loader.GLTFObject.html +1 -1
  42. package/docs/classes/gltf_loader.GLTFParser.html +1 -1
  43. package/docs/classes/gltf_loader.THREEGLTFLoader.html +1 -1
  44. package/docs/classes/line.Line.html +1 -1
  45. package/docs/classes/line.LineGeometry.html +1 -1
  46. package/docs/classes/line.LineMaterial.html +1 -1
  47. package/docs/classes/line.LineSegmentsGeometry.html +1 -1
  48. package/docs/classes/line.THREE_Line2.html +1 -1
  49. package/docs/classes/line.THREE_LineSegments2.html +1 -1
  50. package/docs/classes/react.Store.html +1 -1
  51. package/docs/classes/sticker.Sticker.html +1 -1
  52. package/docs/classes/vfx.Airflow.html +1 -1
  53. package/docs/classes/vfx.Flame.html +1 -1
  54. package/docs/classes/vfx.Particle.html +1 -1
  55. package/docs/classes/vfx.SpotLight.html +1 -1
  56. package/docs/enums/five.VolumePlaneIntersect.html +1 -1
  57. package/docs/index.html +1 -1
  58. package/docs/interfaces/five.AddableObject.html +1 -1
  59. package/docs/interfaces/five.AnimationFrame.html +1 -1
  60. package/docs/interfaces/five.BaseEvent.html +1 -1
  61. package/docs/interfaces/five.BoundingVolume.html +1 -1
  62. package/docs/interfaces/five.CameraPose.html +1 -1
  63. package/docs/interfaces/five.ClipperParameter.html +1 -1
  64. package/docs/interfaces/five.DepthPanoramaControllerCustomInitArgs.html +1 -1
  65. package/docs/interfaces/five.EventCallback.html +1 -1
  66. package/docs/interfaces/five.FiveInitArgs.html +1 -1
  67. package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +1 -1
  68. package/docs/interfaces/five.GestureEvent.html +1 -1
  69. package/docs/interfaces/five.ImageOptions.html +1 -1
  70. package/docs/interfaces/five.ImageURLMappings.html +1 -1
  71. package/docs/interfaces/five.ImageURLOptions.html +1 -1
  72. package/docs/interfaces/five.IntersectEvent.html +1 -1
  73. package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
  74. package/docs/interfaces/five.Intersection.html +1 -1
  75. package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +1 -1
  76. package/docs/interfaces/five.ModeChangeEvent.html +1 -1
  77. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
  78. package/docs/interfaces/five.ModelEvent.html +1 -1
  79. package/docs/interfaces/five.ModelLodOptions.html +1 -1
  80. package/docs/interfaces/five.ModelsEvent.html +1 -1
  81. package/docs/interfaces/five.MotionKeyframe.html +1 -1
  82. package/docs/interfaces/five.MovePanoOptions.html +1 -1
  83. package/docs/interfaces/five.NetworkOptions.html +1 -1
  84. package/docs/interfaces/five.NetworkResourceEvent.html +1 -1
  85. package/docs/interfaces/five.ObjectEvent.html +1 -1
  86. package/docs/interfaces/five.PBMPanoPicture.html +1 -1
  87. package/docs/interfaces/five.PBMParameters.html +1 -1
  88. package/docs/interfaces/five.PanoCircleMeshCustomOptions.html +1 -1
  89. package/docs/interfaces/five.PanoCircleMeshInterface.html +1 -1
  90. package/docs/interfaces/five.PanoCircleMeshOptions.html +1 -1
  91. package/docs/interfaces/five.PanoCircleMeshSolidOptions.html +1 -1
  92. package/docs/interfaces/five.PanoEvent.html +1 -1
  93. package/docs/interfaces/five.PanoTextureEvent.html +1 -1
  94. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +1 -1
  95. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
  96. package/docs/interfaces/five.Pose.html +1 -1
  97. package/docs/interfaces/five.RenderEvent.html +1 -1
  98. package/docs/interfaces/five.Scissor.html +1 -1
  99. package/docs/interfaces/five.State.html +1 -1
  100. package/docs/interfaces/five.StateEvent.html +1 -1
  101. package/docs/interfaces/five.SubscribeMixinType.emit.html +1 -1
  102. package/docs/interfaces/five.SubscribeMixinType.hasListener.html +1 -1
  103. package/docs/interfaces/five.SubscribeMixinType.off.html +1 -1
  104. package/docs/interfaces/five.SubscribeMixinType.on.html +1 -1
  105. package/docs/interfaces/five.SubscribeMixinType.once.html +1 -1
  106. package/docs/interfaces/five.SubscribeMixinType.waitUnitl.html +1 -1
  107. package/docs/interfaces/five.TextureOptions.html +1 -1
  108. package/docs/interfaces/five.Tile3DModelLoaderOptions.html +1 -1
  109. package/docs/interfaces/five.TileCubeNode.html +1 -1
  110. package/docs/interfaces/five.TileCubeTree.html +1 -1
  111. package/docs/interfaces/five.TileHeader.html +1 -1
  112. package/docs/interfaces/five.TilesetHeader.html +1 -1
  113. package/docs/interfaces/five.TilesetOptions.html +1 -1
  114. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +1 -1
  115. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +1 -1
  116. package/docs/interfaces/five.WebXRAxesParams.html +1 -1
  117. package/docs/interfaces/five.WebXRControllerParams.html +1 -1
  118. package/docs/interfaces/five.WorkCubeImage.html +1 -1
  119. package/docs/interfaces/five.WorkImage.html +1 -1
  120. package/docs/interfaces/five.WorkInitial.html +1 -1
  121. package/docs/interfaces/five.WorkModel.html +1 -1
  122. package/docs/interfaces/five.WorkObserver.html +1 -1
  123. package/docs/interfaces/five.WorkOptions.html +1 -1
  124. package/docs/interfaces/five.WorkResolvedObserver.html +1 -1
  125. package/docs/interfaces/five.WorkTile.html +1 -1
  126. package/docs/interfaces/five.WorkVideo.html +1 -1
  127. package/docs/interfaces/five.WorksEvent.html +1 -1
  128. package/docs/interfaces/five.XRControllerEvent.html +1 -1
  129. package/docs/interfaces/five.XRGestureEvent.html +1 -1
  130. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +1 -1
  131. package/docs/interfaces/five.XRSessionEvent.html +1 -1
  132. package/docs/interfaces/gltf_loader.DDS.html +1 -1
  133. package/docs/interfaces/gltf_loader.GLTF.html +1 -1
  134. package/docs/interfaces/gltf_loader.GLTFReference.html +1 -1
  135. package/docs/interfaces/gltf_loader.THREEGLTF.html +1 -1
  136. package/docs/interfaces/react.FiveActionReactCallbacks.html +1 -1
  137. package/docs/interfaces/react.FiveInjectionTypes.html +1 -1
  138. package/docs/interfaces/react.PropTypeOfFiveFeatures.html +1 -1
  139. package/docs/interfaces/sticker.IntersectionLike.html +1 -1
  140. package/docs/interfaces/vfx.ParticleArgs.html +1 -1
  141. package/docs/interfaces/vfx.ParticleTweenKeyframe.html +1 -1
  142. package/docs/interfaces/vue.FiveActionVueCallbacks.html +1 -1
  143. package/docs/modules/five.SubscribeMixinType.html +1 -1
  144. package/docs/modules/five.html +1 -1
  145. package/docs/modules/gltf_loader.html +1 -1
  146. package/docs/modules/line.html +1 -1
  147. package/docs/modules/react.html +1 -1
  148. package/docs/modules/sticker.html +1 -1
  149. package/docs/modules/vfx.html +1 -1
  150. package/docs/modules/vue.html +1 -1
  151. package/docs/modules.html +1 -1
  152. package/five/index.js +2 -2
  153. package/gltf-loader/index.js +2 -2
  154. package/line/index.js +2 -2
  155. package/package.json +1 -1
  156. package/react/index.js +1 -1
  157. package/sticker/index.js +2 -2
  158. package/umd/five-gltf-loader.js +1 -1
  159. package/umd/five-line.js +1 -1
  160. package/umd/five-sticker.js +1 -1
  161. package/umd/five.js +1 -1
  162. package/vfx/index.js +1 -1
  163. package/vue/index.js +1 -1
package/five/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  * @realsee/five
3
3
  *
4
4
  * Generated: 2023-09-20
5
- * Version: 6.0.0-alpha.12
5
+ * Version: 6.0.0-alpha.13
6
6
  *
7
7
  * Terms:
8
8
  * Realsee SDK License Agreement
@@ -359,4 +359,4 @@ function(e,t){for(var r=e.toByteArray(),n=0;n<r.length&&0==r[n];)++n;if(r.length
359
359
  * http://hammerjs.github.io/
360
360
  *
361
361
  * Copyright (c) 2016 Jorik Tangelder;
362
- * Licensed under the MIT license */var aa=function(e,t,r,n){var i,o=["","webkit","Moz","MS","ms","o"],a=t.createElement?t.createElement("div"):n,s="function",l=Math.round,u=Math.abs,c=Date.now;function d(e,t,r){return setTimeout(g(e,r),t)}function p(e,t,r){return!!Array.isArray(e)&&(h(e,r[t],r),!0)}function h(e,t,r){var i;if(e)if(e.forEach)e.forEach(t,r);else if(e.length!==n)for(i=0;i<e.length;)t.call(r,e[i],i,e),i++;else for(i in e)e.hasOwnProperty(i)&&t.call(r,e[i],i,e)}function f(t,r,n){var i="DEPRECATED METHOD: "+r+"\n"+n+" AT \n";return function(){var r=new Error("get-stack-trace"),n=r&&r.stack?r.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=e.console&&(e.console.warn||e.console.log);return o&&o.call(e.console,i,n),t.apply(this,arguments)}}i="function"!=typeof Object.assign?function(e){if(e===n||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),r=1;r<arguments.length;r++){var i=arguments[r];if(i!==n&&null!==i)for(var o in i)i.hasOwnProperty(o)&&(t[o]=i[o])}return t}:Object.assign;var v=f((function(e,t,r){for(var i=Object.keys(t),o=0;o<i.length;)(!r||r&&e[i[o]]===n)&&(e[i[o]]=t[i[o]]),o++;return e}),"extend","Use `assign`."),A=f((function(e,t){return v(e,t,!0)}),"merge","Use `assign`.");function m(e,t,r){var n,o=t.prototype;(n=e.prototype=Object.create(o)).constructor=e,n._super=o,r&&i(n,r)}function g(e,t){return function(){return e.apply(t,arguments)}}function y(e,t){return typeof e==s?e.apply(t&&t[0]||n,t):e}function b(e,t){return e===n?t:e}function x(e,t,r){h(C(t),(function(t){e.addEventListener(t,r,!1)}))}function w(e,t,r){h(C(t),(function(t){e.removeEventListener(t,r,!1)}))}function M(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function E(e,t){return e.indexOf(t)>-1}function C(e){return e.trim().split(/\s+/g)}function S(e,t,r){if(e.indexOf&&!r)return e.indexOf(t);for(var n=0;n<e.length;){if(r&&e[n][r]==t||!r&&e[n]===t)return n;n++}return-1}function I(e){return Array.prototype.slice.call(e,0)}function P(e,t,r){for(var n=[],i=[],o=0;o<e.length;){var a=t?e[o][t]:e[o];S(i,a)<0&&n.push(e[o]),i[o]=a,o++}return r&&(n=t?n.sort((function(e,r){return e[t]>r[t]})):n.sort()),n}function T(e,t){for(var r,i,a=t[0].toUpperCase()+t.slice(1),s=0;s<o.length;){if((i=(r=o[s])?r+a:t)in e)return i;s++}return n}var B=1;function R(t){var r=t.ownerDocument||t;return r.defaultView||r.parentWindow||e}var O="ontouchstart"in e,k=T(e,"PointerEvent")!==n,D=O&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),F="touch",L="mouse",Q=25,N=1,V=2,U=4,z=8,q=1,H=2,_=4,j=8,G=16,K=H|_,W=j|G,Y=K|W,X=["x","y"],J=["clientX","clientY"];function Z(e,t){var r=this;this.manager=e,this.callback=t,this.element=e.element,this.target=e.options.inputTarget,this.domHandler=function(t){y(e.options.enable,[e])&&r.handler(t)},this.init()}function $(e,t,r){var i=r.pointers.length,o=r.changedPointers.length,a=t&N&&i-o==0,s=t&(U|z)&&i-o==0;r.isFirst=!!a,r.isFinal=!!s,a&&(e.session={}),r.eventType=t,function(e,t){var r=e.session,i=t.pointers,o=i.length;r.firstInput||(r.firstInput=ee(t));o>1&&!r.firstMultiple?r.firstMultiple=ee(t):1===o&&(r.firstMultiple=!1);var a=r.firstInput,s=r.firstMultiple,l=s?s.center:a.center,d=t.center=te(i);t.timeStamp=c(),t.deltaTime=t.timeStamp-a.timeStamp,t.angle=oe(l,d),t.distance=ie(l,d),function(e,t){var r=t.center,n=e.offsetDelta||{},i=e.prevDelta||{},o=e.prevInput||{};t.eventType!==N&&o.eventType!==U||(i=e.prevDelta={x:o.deltaX||0,y:o.deltaY||0},n=e.offsetDelta={x:r.x,y:r.y});t.deltaX=i.x+(r.x-n.x),t.deltaY=i.y+(r.y-n.y)}(r,t),t.offsetDirection=ne(t.deltaX,t.deltaY);var p=re(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=p.x,t.overallVelocityY=p.y,t.overallVelocity=u(p.x)>u(p.y)?p.x:p.y,t.scale=s?function(e,t){return ie(t[0],t[1],J)/ie(e[0],e[1],J)}(s.pointers,i):1,t.rotation=s?function(e,t){return oe(t[1],t[0],J)+oe(e[1],e[0],J)}(s.pointers,i):0,t.maxPointers=r.prevInput?t.pointers.length>r.prevInput.maxPointers?t.pointers.length:r.prevInput.maxPointers:t.pointers.length,function(e,t){var r,i,o,a,s=e.lastInterval||t,l=t.timeStamp-s.timeStamp;if(t.eventType!=z&&(l>Q||s.velocity===n)){var c=t.deltaX-s.deltaX,d=t.deltaY-s.deltaY,p=re(l,c,d);i=p.x,o=p.y,r=u(p.x)>u(p.y)?p.x:p.y,a=ne(c,d),e.lastInterval=t}else r=s.velocity,i=s.velocityX,o=s.velocityY,a=s.direction;t.velocity=r,t.velocityX=i,t.velocityY=o,t.direction=a}(r,t);var h=e.element;M(t.srcEvent.target,h)&&(h=t.srcEvent.target);t.target=h}(e,r),e.emit("hammer.input",r),e.recognize(r),e.session.prevInput=r}function ee(e){for(var t=[],r=0;r<e.pointers.length;)t[r]={clientX:l(e.pointers[r].clientX),clientY:l(e.pointers[r].clientY)},r++;return{timeStamp:c(),pointers:t,center:te(t),deltaX:e.deltaX,deltaY:e.deltaY}}function te(e){var t=e.length;if(1===t)return{x:l(e[0].clientX),y:l(e[0].clientY)};for(var r=0,n=0,i=0;i<t;)r+=e[i].clientX,n+=e[i].clientY,i++;return{x:l(r/t),y:l(n/t)}}function re(e,t,r){return{x:t/e||0,y:r/e||0}}function ne(e,t){return e===t?q:u(e)>=u(t)?e<0?H:_:t<0?j:G}function ie(e,t,r){r||(r=X);var n=t[r[0]]-e[r[0]],i=t[r[1]]-e[r[1]];return Math.sqrt(n*n+i*i)}function oe(e,t,r){r||(r=X);var n=t[r[0]]-e[r[0]],i=t[r[1]]-e[r[1]];return 180*Math.atan2(i,n)/Math.PI}Z.prototype={handler:function(){},init:function(){this.evEl&&x(this.element,this.evEl,this.domHandler),this.evTarget&&x(this.target,this.evTarget,this.domHandler),this.evWin&&x(R(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&w(this.element,this.evEl,this.domHandler),this.evTarget&&w(this.target,this.evTarget,this.domHandler),this.evWin&&w(R(this.element),this.evWin,this.domHandler)}};var ae={mousedown:N,mousemove:V,mouseup:U},se="mousedown",le="mousemove mouseup";function ue(){this.evEl=se,this.evWin=le,this.pressed=!1,Z.apply(this,arguments)}m(ue,Z,{handler:function(e){var t=ae[e.type];t&N&&(0===e.button||2===e.button)&&(this.pressed=!0),t&V&&1!==e.which&&(t=U),this.pressed&&(t&U&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:L,srcEvent:e}))}});var ce={pointerdown:N,pointermove:V,pointerup:U,pointercancel:z,pointerout:z},de={2:F,3:"pen",4:L,5:"kinect"},pe="pointerdown",he="pointermove pointerup pointercancel";function fe(){this.evEl=pe,this.evWin=he,Z.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}e.MSPointerEvent&&!e.PointerEvent&&(pe="MSPointerDown",he="MSPointerMove MSPointerUp MSPointerCancel"),m(fe,Z,{handler:function(e){var t=this.store,r=!1,n=!1,i=e.type.toLowerCase().replace("ms",""),o=ce[i],a=de[e.pointerType]||e.pointerType,s=a==F,l=S(t,e.pointerId,"pointerId");o&N&&(0===e.button||2===e.button||s)?l<0&&(t.push(e),l=t.length-1):o&(U|z)?r=!0:s||0!==e.buttons||(r=!0,n=!0,o=ce.pointerup),l<0||(n||(t[l]=e),this.callback(this.manager,o,{pointers:t,changedPointers:[e],pointerType:a,srcEvent:t[l]}),r&&t.splice(l,1))}});var ve={touchstart:N,touchmove:V,touchend:U,touchcancel:z};function Ae(){this.evTarget="touchstart",this.evWin="touchstart touchmove touchend touchcancel",this.started=!1,Z.apply(this,arguments)}function me(e,t){var r=I(e.touches),n=I(e.changedTouches);return t&(U|z)&&(r=P(r.concat(n),"identifier",!0)),[r,n]}m(Ae,Z,{handler:function(e){var t=ve[e.type];if(t===N&&(this.started=!0),this.started){var r=me.call(this,e,t);t&(U|z)&&r[0].length-r[1].length==0&&(this.started=!1),this.callback(this.manager,t,{pointers:r[0],changedPointers:r[1],pointerType:F,srcEvent:e})}}});var ge={touchstart:N,touchmove:V,touchend:U,touchcancel:z},ye="touchstart touchmove touchend touchcancel";function be(){this.evTarget=ye,this.targetIds={},Z.apply(this,arguments)}function xe(e,t){var r=I(e.touches),n=this.targetIds;if(t&(N|V)&&1===r.length)return n[r[0].identifier]=!0,[r,r];var i,o,a=I(e.changedTouches),s=[],l=this.target;if(o=r.filter((function(e){return M(e.target,l)})),t===N)for(i=0;i<o.length;)n[o[i].identifier]=!0,i++;for(i=0;i<a.length;)n[a[i].identifier]&&s.push(a[i]),t&(U|z)&&delete n[a[i].identifier],i++;return s.length?[P(o.concat(s),"identifier",!0),s]:void 0}m(be,Z,{handler:function(e){var t=ge[e.type],r=xe.call(this,e,t);r&&this.callback(this.manager,t,{pointers:r[0],changedPointers:r[1],pointerType:F,srcEvent:e})}});var we=2500;function Me(){Z.apply(this,arguments);var e=g(this.handler,this);this.touch=new be(this.manager,e),this.mouse=new ue(this.manager,e),this.primaryTouch=null,this.lastTouches=[]}function Ee(e,t){e&N?(this.primaryTouch=t.changedPointers[0].identifier,Ce.call(this,t)):e&(U|z)&&Ce.call(this,t)}function Ce(e){var t=e.changedPointers[0];if(t.identifier===this.primaryTouch){var r={x:t.clientX,y:t.clientY};this.lastTouches.push(r);var n=this.lastTouches;setTimeout((function(){var e=n.indexOf(r);e>-1&&n.splice(e,1)}),we)}}function Se(e){for(var t=e.srcEvent.clientX,r=e.srcEvent.clientY,n=0;n<this.lastTouches.length;n++){var i=this.lastTouches[n],o=Math.abs(t-i.x),a=Math.abs(r-i.y);if(o<=25&&a<=25)return!0}return!1}m(Me,Z,{handler:function(e,t,r){var n=r.pointerType==F,i=r.pointerType==L;if(!(i&&r.sourceCapabilities&&r.sourceCapabilities.firesTouchEvents)){if(n)Ee.call(this,t,r);else if(i&&Se.call(this,r))return;this.callback(e,t,r)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Ie=a?T(a.style,"touchAction"):n,Pe=Ie!==n,Te="compute",Be="auto",Re="manipulation",Oe="none",ke="pan-x",De="pan-y",Fe=function(){if(!Pe)return!1;var t={},r=e.CSS&&e.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach((function(n){t[n]=!r||e.CSS.supports("touch-action",n)})),t}();function Le(e,t){this.manager=e,this.set(t)}Le.prototype={set:function(e){e==Te&&(e=this.compute()),Pe&&this.manager.element.style&&Fe[e]&&(this.manager.element.style[Ie]=e),this.actions=e.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var e=[];return h(this.manager.recognizers,(function(t){y(t.options.enable,[t])&&(e=e.concat(t.getTouchAction()))})),function(e){if(E(e,Oe))return Oe;var t=E(e,ke),r=E(e,De);if(t&&r)return Oe;if(t||r)return t?ke:De;if(E(e,Re))return Re;return Be}(e.join(" "))},preventDefaults:function(e){var t=e.srcEvent,r=e.offsetDirection;if(this.manager.session.prevented)t.preventDefault();else{var n=this.actions,i=E(n,Oe)&&!Fe[Oe],o=E(n,De)&&!Fe[De],a=E(n,ke)&&!Fe[ke];if(i){var s=1===e.pointers.length,l=e.distance<2,u=e.deltaTime<250;if(s&&l&&u)return}if(!a||!o)return i||o&&r&K||a&&r&W?this.preventSrc(t):void 0}},preventSrc:function(e){this.manager.session.prevented=!0,e.preventDefault()}};var Qe=1,Ne=2,Ve=4,Ue=8,ze=Ue,qe=16,He=32;function _e(e){this.options=i({},this.defaults,e||{}),this.id=B++,this.manager=null,this.options.enable=b(this.options.enable,!0),this.state=Qe,this.simultaneous={},this.requireFail=[]}function je(e){return e&qe?"cancel":e&Ue?"end":e&Ve?"move":e&Ne?"start":""}function Ge(e){return e==G?"down":e==j?"up":e==H?"left":e==_?"right":""}function Ke(e,t){var r=t.manager;return r?r.get(e):e}function We(){_e.apply(this,arguments)}function Ye(){We.apply(this,arguments),this.pX=null,this.pY=null}function Xe(){We.apply(this,arguments)}function Je(){_e.apply(this,arguments),this._timer=null,this._input=null}function Ze(){We.apply(this,arguments)}function $e(){We.apply(this,arguments)}function et(){_e.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function tt(e,t){return(t=t||{}).recognizers=b(t.recognizers,tt.defaults.preset),new rt(e,t)}_e.prototype={defaults:{},set:function(e){return i(this.options,e),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(e){if(p(e,"recognizeWith",this))return this;var t=this.simultaneous;return t[(e=Ke(e,this)).id]||(t[e.id]=e,e.recognizeWith(this)),this},dropRecognizeWith:function(e){return p(e,"dropRecognizeWith",this)||(e=Ke(e,this),delete this.simultaneous[e.id]),this},requireFailure:function(e){if(p(e,"requireFailure",this))return this;var t=this.requireFail;return-1===S(t,e=Ke(e,this))&&(t.push(e),e.requireFailure(this)),this},dropRequireFailure:function(e){if(p(e,"dropRequireFailure",this))return this;e=Ke(e,this);var t=S(this.requireFail,e);return t>-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){var t=this,r=this.state;function n(r){t.manager.emit(r,e)}r<Ue&&n(t.options.event+je(r)),n(t.options.event),e.additionalEvent&&n(e.additionalEvent),r>=Ue&&n(t.options.event+je(r))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=He},canEmit:function(){for(var e=0;e<this.requireFail.length;){if(!(this.requireFail[e].state&(He|Qe)))return!1;e++}return!0},recognize:function(e){var t=i({},e);if(!y(this.options.enable,[this,t]))return this.reset(),void(this.state=He);this.state&(ze|qe|He)&&(this.state=Qe),this.state=this.process(t),this.state&(Ne|Ve|Ue|qe)&&this.tryEmit(t)},process:function(e){},getTouchAction:function(){},reset:function(){}},m(We,_e,{defaults:{pointers:1},attrTest:function(e){var t=this.options.pointers;return 0===t||e.pointers.length===t},process:function(e){var t=this.state,r=e.eventType,n=t&(Ne|Ve),i=this.attrTest(e);return n&&(r&z||!i)?t|qe:n||i?r&U?t|Ue:t&Ne?t|Ve:Ne:He}}),m(Ye,We,{defaults:{event:"pan",threshold:10,pointers:1,direction:Y},getTouchAction:function(){var e=this.options.direction,t=[];return e&K&&t.push(De),e&W&&t.push(ke),t},directionTest:function(e){var t=this.options,r=!0,n=e.distance,i=e.direction,o=e.deltaX,a=e.deltaY;return i&t.direction||(t.direction&K?(i=0===o?q:o<0?H:_,r=o!=this.pX,n=Math.abs(e.deltaX)):(i=0===a?q:a<0?j:G,r=a!=this.pY,n=Math.abs(e.deltaY))),e.direction=i,r&&n>t.threshold&&i&t.direction},attrTest:function(e){return We.prototype.attrTest.call(this,e)&&(this.state&Ne||!(this.state&Ne)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=Ge(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),m(Xe,We,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Oe]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||this.state&Ne)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),m(Je,_e,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Be]},process:function(e){var t=this.options,r=e.pointers.length===t.pointers,n=e.distance<t.threshold,i=e.deltaTime>t.time;if(this._input=e,!n||!r||e.eventType&(U|z)&&!i)this.reset();else if(e.eventType&N)this.reset(),this._timer=d((function(){this.state=ze,this.tryEmit()}),t.time,this);else if(e.eventType&U)return ze;return He},reset:function(){clearTimeout(this._timer)},emit:function(e){this.state===ze&&(e&&e.eventType&U?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=c(),this.manager.emit(this.options.event,this._input)))}}),m(Ze,We,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Oe]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||this.state&Ne)}}),m($e,We,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:K|W,pointers:1},getTouchAction:function(){return Ye.prototype.getTouchAction.call(this)},attrTest:function(e){var t,r=this.options.direction;return r&(K|W)?t=e.overallVelocity:r&K?t=e.overallVelocityX:r&W&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&r&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&u(t)>this.options.velocity&&e.eventType&U},emit:function(e){var t=Ge(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),m(et,_e,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Re]},process:function(e){var t=this.options,r=e.pointers.length===t.pointers,n=e.distance<t.threshold,i=e.deltaTime<t.time;if(this.reset(),e.eventType&N&&0===this.count)return this.failTimeout();if(n&&i&&r){if(e.eventType!=U)return this.failTimeout();var o=!this.pTime||e.timeStamp-this.pTime<t.interval,a=!this.pCenter||ie(this.pCenter,e.center)<t.posThreshold;if(this.pTime=e.timeStamp,this.pCenter=e.center,a&&o?this.count+=1:this.count=1,this._input=e,0===this.count%t.taps)return this.hasRequireFailures()?(this._timer=d((function(){this.state=ze,this.tryEmit()}),t.interval,this),Ne):ze}return He},failTimeout:function(){return this._timer=d((function(){this.state=He}),this.options.interval,this),He},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ze&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),tt.VERSION="2.0.7",tt.defaults={domEvents:!1,touchAction:Te,enable:!0,inputTarget:null,inputClass:null,preset:[[Ze,{enable:!1}],[Xe,{enable:!1},["rotate"]],[$e,{direction:K}],[Ye,{direction:K},["swipe"]],[et],[et,{event:"doubletap",taps:2},["tap"]],[Je]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};function rt(e,t){var r;this.options=i({},tt.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=e,this.input=new((r=this).options.inputClass||(k?fe:D?be:O?Me:ue))(r,$),this.touchAction=new Le(this,this.options.touchAction),nt(this,!0),h(this.options.recognizers,(function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])}),this)}function nt(e,t){var r,n=e.element;n.style&&(h(e.options.cssProps,(function(i,o){r=T(n.style,o),t?(e.oldCssProps[r]=n.style[r],n.style[r]=i):n.style[r]=e.oldCssProps[r]||""})),t||(e.oldCssProps={}))}return rt.prototype={set:function(e){return i(this.options,e),e.touchAction&&this.touchAction.update(),e.inputTarget&&(this.input.destroy(),this.input.target=e.inputTarget,this.input.init()),this},stop:function(e){this.session.stopped=e?2:1},recognize:function(e){var t=this.session;if(!t.stopped){var r;this.touchAction.preventDefaults(e);var n=this.recognizers,i=t.curRecognizer;(!i||i&&i.state&ze)&&(i=t.curRecognizer=null);for(var o=0;o<n.length;)r=n[o],2===t.stopped||i&&r!=i&&!r.canRecognizeWith(i)?r.reset():r.recognize(e),!i&&r.state&(Ne|Ve|Ue)&&(i=t.curRecognizer=r),o++}},get:function(e){if(e instanceof _e)return e;for(var t=this.recognizers,r=0;r<t.length;r++)if(t[r].options.event==e)return t[r];return null},add:function(e){if(p(e,"add",this))return this;var t=this.get(e.options.event);return t&&this.remove(t),this.recognizers.push(e),e.manager=this,this.touchAction.update(),e},remove:function(e){if(p(e,"remove",this))return this;if(e=this.get(e)){var t=this.recognizers,r=S(t,e);-1!==r&&(t.splice(r,1),this.touchAction.update())}return this},on:function(e,t){if(e!==n&&t!==n){var r=this.handlers;return h(C(e),(function(e){r[e]=r[e]||[],r[e].push(t)})),this}},off:function(e,t){if(e!==n){var r=this.handlers;return h(C(e),(function(e){t?r[e]&&r[e].splice(S(r[e],t),1):delete r[e]})),this}},emit:function(e,r){this.options.domEvents&&function(e,r){var n=t.createEvent("Event");n.initEvent(e,!0,!0),n.gesture=r,r.target.dispatchEvent(n)}(e,r);var n=this.handlers[e]&&this.handlers[e].slice();if(n&&n.length){r.type=e,r.preventDefault=function(){r.srcEvent.preventDefault()};for(var i=0;i<n.length;)n[i](r),i++}},destroy:function(){this.element&&nt(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},i(tt,{INPUT_START:N,INPUT_MOVE:V,INPUT_END:U,INPUT_CANCEL:z,STATE_POSSIBLE:Qe,STATE_BEGAN:Ne,STATE_CHANGED:Ve,STATE_ENDED:Ue,STATE_RECOGNIZED:ze,STATE_CANCELLED:qe,STATE_FAILED:He,DIRECTION_NONE:q,DIRECTION_LEFT:H,DIRECTION_RIGHT:_,DIRECTION_UP:j,DIRECTION_DOWN:G,DIRECTION_HORIZONTAL:K,DIRECTION_VERTICAL:W,DIRECTION_ALL:Y,Manager:rt,Input:Z,TouchAction:Le,TouchInput:be,MouseInput:ue,PointerEventInput:fe,TouchMouseInput:Me,SingleTouchInput:Ae,Recognizer:_e,AttrRecognizer:We,Tap:et,Pan:Ye,Swipe:$e,Pinch:Xe,Rotate:Ze,Press:Je,on:x,off:w,each:h,merge:A,extend:v,assign:i,inherit:m,bindFn:g,prefixed:T}),tt}("undefined"!=typeof window?window:{},"undefined"!=typeof document?document:{});function sa(e,t,r){var i=t.getBoundingClientRect(),o=i.top,a=i.left,s=i.width,l=i.height;return r&&(a+=s*r.left,o+=l*(1-r.bottom-r.height),s*=r.width,l*=r.height),new n.Vector2((e.x-a)/s*2-1,-(e.y-o)/l*2+1)}var la=function(e){function t(r){var n,i,o,a,s,l=this;l=e.call(this)||this;var u=t.parseArgs(r);return l.mode="",l.pending=new Set,l.userAction=u.initial.userAction,l.destroyed=!1,l.ident=u.ident,l.scene=u.scene,l.xrCustomObjectsScene=u.xrCustomObjectsScene,l.helper=u.helper,l.boundingMesh=u.boundingMesh,l.camera=u.camera,l.renderer=u.renderer,l.scissor=u.scissor,l.element=u.element,l.models=u.models,l.enableIOSEDR=null!==(n=u.enableIOSEDR)&&void 0!==n&&n,l.enableEDL=null===(i=u.enableEDL)||void 0===i||i,l.works=u.works,l.imageOptions=u.imageOptions,l.videoTexture=u.videoTexture,l.networkSubscribe=u.networkSubscribe,l.requestProxy=u.requestProxy,l.extraElements=u.extraElements,l.initial=u.initial,l.currentPano="number"==typeof l.initial.state.panoIndex?{workCode:null!==(s=null!==(o=l.initial.state.workCode)&&void 0!==o?o:null===(a=u.works[0])||void 0===a?void 0:a.workCode)&&void 0!==s?s:"",panoIndex:l.initial.state.panoIndex}:{workCode:l.initial.currentState.workCode,panoIndex:l.initial.currentState.panoIndex},l.needsRender=!0,l.cameraMotion=new Io({longitude:{value:l.camera.pose.longitude,circle:[0,2*Math.PI]},latitude:l.camera.pose.latitude,fov:l.camera.pose.fov}),l.inMomentumMovement=null,l.eventUnbinds=[u.element].concat(u.extraElements||[]).map((function(e){return l.bindEvents(e)})),l.pending.add("init-animation"),Ne.shared.add((function(){l.initAnimation().then((function(){l.pending.delete("init-animation")}))}),!0),l}return ne(t,e),t.parseArgs=function(e){return e instanceof t?e:ie({},e)},t.initAnimationEndState=function(e){var t,r,n,i,o,a,s,l,u=this.parseArgs(e),c=u.initial,d=c.state,p=c.currentState,h="number"==typeof d.panoIndex?{workCode:null!==(n=null!==(t=d.workCode)&&void 0!==t?t:null===(r=u.works[0])||void 0===r?void 0:r.workCode)&&void 0!==n?n:"",panoIndex:d.panoIndex}:{workCode:p.workCode,panoIndex:p.panoIndex};return ie(ie({},h),{mode:"",longitude:null!==(i=d.longitude)&&void 0!==i?i:p.longitude,latitude:null!==(o=d.latitude)&&void 0!==o?o:p.latitude,fov:null!==(a=d.fov)&&void 0!==a?a:p.fov,offset:null!==(s=d.offset)&&void 0!==s?s:p.offset,distance:null!==(l=d.distance)&&void 0!==l?l:p.distance})},t.prototype.destroy=function(){var e;this.stopMomentumMovement(),this.destroyed=!0,this.off(),this.cameraMotion.dispose();for(var t=0,r=this.eventUnbinds;t<r.length;t++){(0,r[t])()}this.copyEffect&&(this.copyEffect.dispose(),delete this.copyEffect),delete this.panState,null===(e=this.pressState)||void 0===e||e.stop(),delete this.pressState},t.prototype.isReady=function(){return null===this.inMomentumMovement&&0===this.pending.size&&!0===this.cameraMotion.ended},t.prototype.bindExtraElement=function(e){for(var t=0,r=this.eventUnbinds;t<r.length;t++){if(r[t].element===e)return}this.eventUnbinds.push(this.bindEvents(e))},t.prototype.unbindExtraElement=function(e){for(var t=[],r=0,n=this.eventUnbinds;r<n.length;r++){var i=n[r];i.element===e?i():t.push(i)}this.eventUnbinds=t},t.prototype.updateRenderSize=function(){this.needsRender=!0},t.prototype.updateModel=function(e){this.needsRender=!0},t.prototype.updateWork=function(e,t,r,n){return this.works=e,this.userAction=n,!1},t.prototype.updateTime=function(e,t){if(!this.destroyed){var r={};this.cameraMotion.ended&&(this.cameraMotion.update(e),r.longitude=this.cameraMotion.value.longitude,r.latitude=this.cameraMotion.value.latitude,r.fov=this.cameraMotion.value.fov),ia(r)&&this.setCamera(r)}},t.prototype.render=function(){this.renderer.render(this.scene,this.camera)},t.prototype.postProcessing=function(e,t){this.destroyed},t.prototype.updateCamera=function(e,t,r){return this.userAction=r,this.cameraMotion.set(e,t).catch(fe)},t.prototype.updateCameraWithKeyframes=function(e,t,r){return this.userAction=r,this.cameraMotion.setKeyframes(e,t)},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(Ae())[1];return ie(ie({},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,n=t.initAnimationEndState(this);return this.userAction=r,this.emit("initAnimation.start",$o("initAnimation.start",{state:n,userAction:this.userAction})),this.emit("initAnimation.end",$o("initAnimation.end",{state:n,userAction:this.userAction})),Promise.resolve()},t.prototype.setCamera=function(e){var t,r,n,i,o;void 0===e&&(e={});var a=null!==(t=e.longitude)&&void 0!==t?t:this.camera.pose.longitude,s=null!==(r=e.latitude)&&void 0!==r?r:this.camera.pose.latitude,l=null!==(n=e.fov)&&void 0!==n?n:this.camera.pose.fov,u=null!==(i=e.distance)&&void 0!==i?i:this.camera.pose.distance,c=null!==(o=e.offset)&&void 0!==o?o:this.camera.pose.offset,d=zo(a,this.camera.pose.longitude,2*Math.PI)||zo(s,this.camera.pose.latitude),p=zo(l,this.camera.pose.fov),h=zo(u,this.camera.pose.distance),f=Ho(c,this.camera.pose.offset);(p||d||f||h)&&(this.camera.setFromPose({longitude:a,latitude:s,fov:l,distance:u,offset:c}),this.emit("camera.update",$o("camera.update",{userAction:this.userAction,state:ie(ie({},this.currentPano),{mode:this.mode,longitude:a,latitude:s,fov:l,offset:c,distance:u})})),this.needsRender=!0)},t.prototype.stopMomentumMovement=function(){if(this.inMomentumMovement&&this.inMomentumMovement.event&&!this.inMomentumMovement.event.defaultPrevented&&!this.inMomentumMovement.event.isFinal){var e=$o("gesture.momentum",ie(ie({},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.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 sa(e,this.element,this.scissor)},t.prototype.bindEvents=function(e){var t=this,r=function(e){var r=sa(e,t.element,t.scissor);return!(Math.abs(r.x)>1||Math.abs(r.y)>1)},i=new aa.Manager(e),o=function(e){return e.session.firstInput||null};i.add(new aa.Pan({threshold:10,pointers:0})),i.add(new aa.Tap({interval:410})),i.add(new aa.Pinch({threshold:0,pointers:2})),i.on("panstart pan",(function(e){var a=o(i);if(!a||r(a.center)){var s,l,u,c=$o("gesture.pan",{target:e.target,pointerType:e.pointerType,srcEvent:e.srcEvent,pointers:e.pointers.map((function(e){var r=t.relativeClientPosition(e),i=new n.Raycaster;return i.setFromCamera(r,t.camera),{x:e.x,y:e.y,delta:0,buttons:0,coords:r,raycaster:i}})),isFirst:e.isFirst,isFinal:e.isFinal,scale:e.scale,center:(s=e.center,l=t.relativeClientPosition(s),u=new n.Raycaster,u.setFromCamera(l,t.camera),{x:s.x,y:s.y,delta:0,buttons:0,coords:l,raycaster:u}),velocityX:e.velocityX,velocityY:e.velocityY,overallVelocityX:e.overallVelocityX,overallVelocityY:e.overallVelocityY,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});t.onPanGesture(c),v()}})),i.on("tap",(function(e){if("mouse"!==e.pointerType||0===e.srcEvent.button){var a=o(i);if(!a||r(a.center)){var s,l,u,c=$o("gesture.tap",{target:e.target,pointerType:e.pointerType,srcEvent:e.srcEvent,pointers:e.pointers.map((function(e){var r=t.relativeClientPosition(e),i=new n.Raycaster;return i.setFromCamera(r,t.camera),{x:e.x,y:e.y,delta:0,buttons:0,coords:r,raycaster:i}})),isFirst:!0,isFinal:!0,scale:e.scale,center:(s=e.center,l=t.relativeClientPosition(s),u=new n.Raycaster,u.setFromCamera(l,t.camera),{x:s.x,y:s.y,delta:0,buttons:0,coords:l,raycaster:u}),velocityX:e.velocityX,velocityY:e.velocityY,overallVelocityX:e.overallVelocityX,overallVelocityY:e.overallVelocityY,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});t.onTapGesture(c),v()}}})),i.on("pinchstart pinch pinchend",(function(e){var a=o(i);if(!a||r(a.center)){var s,l,u,c=$o("gesture.pinch",{target:e.target,pointerType:e.pointerType,srcEvent:e.srcEvent,pointers:e.pointers.map((function(e){var r,i=t.relativeClientPosition(e),o=new n.Raycaster;return o.setFromCamera(i,t.camera),{x:e.x,y:e.y,delta:null!==(r=e.delta)&&void 0!==r?r:0,buttons:0,coords:i,raycaster:o}})),isFirst:"pinchstart"===e.type,isFinal:"pinchend"===e.type,scale:e.scale,center:(s=e.center,l=t.relativeClientPosition(s),u=new n.Raycaster,u.setFromCamera(l,t.camera),{x:s.x,y:s.y,delta:0,buttons:0,coords:l,raycaster:u}),velocityX:e.velocityX,velocityY:e.velocityY,overallVelocityX:e.overallVelocityX,overallVelocityY:e.overallVelocityY,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});t.onPinchGesture(c),v()}}));var a=null,s=null,l=function(e,r,i){var o={x:i.clientX,y:i.clientY},a=t.relativeClientPosition(o),s=new n.Raycaster;s.setFromCamera(a,t.camera);var l=ie(ie({},o),{coords:a,raycaster:s,buttons:i.buttons,delta:0}),u="pinchend"===e?r:r-i.deltaY/280;return $o("gesture.pinch",{target:i.target,pointerType:"mouse",srcEvent:i,pointers:[ie({},l)],isFirst:"pinchstart"===e,isFinal:"pinchend"===e,scale:Dr(u,.1,10),center:ie({},l),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))})},u=function(e){var i,o={x:e.clientX,y:e.clientY};if(r(o)){if(e.preventDefault(),e.ctrlKey){var u=null!==(i=null==a?void 0:a.prevEvent.scale)&&void 0!==i?i:1,c=l(a?"pinch":"pinchstart",u,e);null===a?a={firstEvent:c,prevEvent:c}:a.prevEvent=c,t.onPinchGesture(c),null!==s&&window.clearTimeout(s),s=window.setTimeout((function(){var r;s=null;var n=null!==(r=null==a?void 0:a.prevEvent.scale)&&void 0!==r?r:1,i=l("pinchend",n,e);a=null,t.onPinchGesture(i)}),200)}else{var d=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,p=void 0!==t.mouseWheelState,h={x:e.clientX,y:e.clientY},f=t.relativeClientPosition(h),A=new n.Raycaster;A.setFromCamera(f,t.camera);var m=ie(ie({},h),{coords:f,raycaster:A,buttons:e.buttons,delta:d});c=$o("gesture.mousewheel",{target:e.target,pointerType:"mouse",srcEvent:e,pointers:[ie({},m)],isFirst:p,isFinal:!1,scale:0,center:ie({},m),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});t.onMouseWheel(c),t.mouseWheelState&&clearTimeout(t.mouseWheelState.timer),t.mouseWheelState={timer:setTimeout((function(){delete t.mouseWheelState;var r=$o("gesture.mousewheel",{target:e.target,pointerType:"mouse",srcEvent:e,pointers:[ie(ie({},m),{delta:0})],isFirst:!1,isFinal:!0,scale:0,center:ie(ie({},m),{delta:0}),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});t.onMouseWheel(r)}),100)}}v()}},c=function(e){if(!Zo())if(r({x:e.clientX,y:e.clientY})){var i=!1;t.mouseMoveState||(i=!0);var o={x:e.clientX,y:e.clientY},a=t.relativeClientPosition(o),s=new n.Raycaster;s.setFromCamera(a,t.camera);var l=ie(ie({},o),{coords:a,raycaster:s,buttons:e.buttons,delta:0}),u=$o("gesture.mousemove",{target:e.target,pointerType:"mouse",srcEvent:e,pointers:[ie({},l)],isFirst:i,isFinal:!1,scale:0,center:ie({},l),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});t.mouseMoveState||(t.mouseMoveState={timeStamp:Ae(),event:u}),t.onMouseMove(u),t.pressState&&Math.abs(e.clientX-t.pressState.event.center.y)>10&&Math.abs(e.clientY-t.pressState.event.center.y)>10&&v()}else d()},d=function(){if(t.mouseMoveState){var e=$o(t.mouseMoveState.event.type,ie(ie({},t.mouseMoveState.event),{isFinal:!0}));t.onMouseMove(e)}v()},p=function(e){if(r(e.center)){var n=!1;t.pressState||(n=!0,t.pressState={event:e,timeStamp:Ae(),stop:fe});var i=Ae()-t.pressState.timeStamp,o=$o(t.pressState.event.type,ie(ie({},t.pressState.event),{isFirst:n,isFinal:!1,center:ie(ie({},t.pressState.event.center),{delta:i}),pointers:t.pressState.event.pointers.map((function(e){return ie(ie({},e),{delta:i})}))}));t.onPressGesture(o),t.pressState&&(t.pressState.stop=Ne.shared.add((function(t){p(e)}),!0,1))}else v()},h=function(e){if(v(),!(e.touches.length>1||e.changedTouches.length<=0)){var r={x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY},i=t.relativeClientPosition(r),o=new n.Raycaster;o.setFromCamera(i,t.camera);var a=ie(ie({},r),{coords:i,raycaster:o,buttons:0,delta:0}),s=$o("gesture.press",{target:e.target,pointerType:"touch",srcEvent:e,pointers:[ie({},a)],isFirst:!1,isFinal:!1,scale:0,center:a,velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});p(s)}},f=function(e){v();var r={x:e.clientX,y:e.clientY},i=t.relativeClientPosition(r),o=new n.Raycaster;o.setFromCamera(i,t.camera);var a=ie(ie({},r),{coords:i,raycaster:o,buttons:e.buttons,delta:0}),s=$o("gesture.press",{target:e.target,pointerType:"mouse",srcEvent:e,pointers:[ie({},a)],isFirst:!1,isFinal:!1,scale:0,center:a,velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});p(s)},v=function(){var e;if(t.pressState){var r=Ae()-t.pressState.timeStamp,n=$o(t.pressState.event.type,ie(ie({},t.pressState.event),{center:ie(ie({},t.pressState.event.center),{delta:r}),isFirst:!1,isFinal:!0,pointers:t.pressState.event.pointers.map((function(e){return ie(ie({},e),{delta:r})}))}));t.onPressGesture(n),null===(e=t.pressState)||void 0===e||e.stop(),delete t.pressState}},A=null,m=function(e){var r,i=!1,o=!1;switch(e.type){case"gesturestart":i=!0;break;case"gestureend":o=!0}var a={x:e.clientX,y:e.clientY},s=t.relativeClientPosition(a),l=new n.Raycaster;l.setFromCamera(s,t.camera);var u=ie(ie({},a),{coords:s,raycaster:l,buttons:0,delta:0});return $o("gesture.pinch",{target:e.target,pointerType:"mouse",srcEvent:e,pointers:[ie({},u)],isFirst:i,isFinal:o,scale:null!==(r=e.scale)&&void 0!==r?r:1,center:ie({},u),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))})},g=function(e){if(e.preventDefault(),!Zo()){var n=m(e),i=(A={firstEvent:n}).firstEvent;i&&!r(i.center)||t.onPinchGesture(n)}},y=function(e){if(e.preventDefault(),!Zo()&&A){var n=m(e),i=A.firstEvent;i&&!r(i.center)||t.onPinchGesture(n)}},b=function(e){if(e.preventDefault(),!Zo()&&A){var n=m(e),i=A.firstEvent;A=null,i&&!r(i.center)||t.onPinchGesture(n)}},x=function(t){if(t&&"function"==typeof t.preventDefault&&t.currentTarget===e&&t.preventDefault(),"function"==typeof getSelection){var r=getSelection();r&&r.focusNode&&(r.removeAllRanges&&r.removeAllRanges(),r.empty&&r.empty())}};e.addEventListener("wheel",u,{passive:!1}),e.addEventListener("mousemove",c,!1),e.addEventListener("mouseout",d,!1),e.addEventListener("touchstart",h,{passive:!0}),e.addEventListener("touchend",v,!1),e.addEventListener("touchcancel",v,!1),e.addEventListener("mousedown",f,!1),e.addEventListener("mouseup",v,!1),e.addEventListener("gesturestart",g,{passive:!1}),e.addEventListener("gesturechange",y,{passive:!1}),e.addEventListener("gestureend",b,{passive:!1}),e.addEventListener("touchstart",x,{passive:!1}),e.addEventListener("contextmenu",x,!1);return Object.assign((function(){i.destroy(),e.removeEventListener("wheel",u,!1),e.removeEventListener("mousemove",c,!1),e.removeEventListener("mouseout",d,!1),e.removeEventListener("touchstart",h,!1),e.removeEventListener("touchend",v,!1),e.removeEventListener("touchcancel",v,!1),e.removeEventListener("mousedown",f,!1),e.removeEventListener("mouseup",v,!1),e.removeEventListener("gesturestart",g,!1),e.removeEventListener("gesturechange",y,!1),e.removeEventListener("gestureend",b,!1),e.removeEventListener("touchstart",x,!1),e.removeEventListener("contextmenu",x,!1)}),{element:e})},t.prototype.preloadPano=function(e,t){var r=this;void 0===t&&(t=fe);var n=this.works.getResolvedObserver(e);if(!n)return Promise.resolve();var i=this.works[0].allowHosts;return Promise.all(["right","left","up","down","front","back"].map((function(t){var o=ie({key:"pano.".concat(Xe(e),".").concat(t)},Zn(r.imageOptions,["size","format","quality","mappings"])),a=n.images[t];return De(r.imageOptions.transform?r.imageOptions.transform(a,o):_e(a,o),{allowHosts:i,requestProxy:r.requestProxy,networkSubscribe:r.networkSubscribe})}))).then((function(){return t(e),e}))},t}(he),ua=function(e){function t(r){var n,i=this,o=t.parseArgs(r);return(i=e.call(this,o)||this).mode="Floorplan",i.defaultLatitude=o.defaultLatitude,i.defaultFov=o.defaultFov,i.maxFov=o.maxFov,i.minFov=o.minFov,i.maxLatitude=o.maxLatitude,i.minLatitude=o.minLatitude,i.locationMotion=new Io({x:i.camera.pose.offset.x,y:i.camera.pose.offset.y,z:i.camera.pose.offset.z,distance:i.camera.pose.distance,modelAlpha:null!==(n=i.models.getMaterial().modelAlpha)&&void 0!==n?n:0,perspToOrtho:i.camera.perspToOrtho.x,orthoDistance:i.camera.orthoDistance}),i.currentTapId=null,i.intersectMeshCreator=o.intersectMeshCreator,i.intersectMesh=i.intersectMeshCreator(),i.intersectMesh.name="intersect",i.intersectMesh.visible=!1,i.helper.add(i.intersectMesh),i}return ne(t,e),t.distanceFromModel=function(e,t,r){var n=e.bounding,i=Math.pow(Math.pow(n.max.x-n.min.x+1,2)+Math.pow(n.max.y-n.min.y+1,2)+Math.pow(n.max.z-n.min.z+1,2),.5),o=i/2/Math.tan(Math.PI*t/360);return r<1&&(o/=r),isNaN(o)?i:o},t.parseArgs=function(r){var n,i,o,a,s,l,u;if(r instanceof t)return r;var c=e.parseArgs.call(this,r);return ie(ie({},c),{defaultLatitude:null!==(n=r.defaultLatitude)&&void 0!==n?n:Math.PI/4,defaultFov:null!==(i=r.defaultFov)&&void 0!==i?i:80,maxFov:null!==(o=r.maxFov)&&void 0!==o?o:120,minFov:null!==(a=r.minFov)&&void 0!==a?a:20,maxLatitude:null!==(s=r.maxLatitude)&&void 0!==s?s:+Math.PI/2,minLatitude:null!==(l=r.minLatitude)&&void 0!==l?l:-Math.PI/2,intersectMeshCreator:null!==(u=r.intersectMeshCreator)&&void 0!==u?u:function(){return new Vo}})},t.initAnimationEndState=function(e){var r,i,o,a,s,l,u=this.parseArgs(e),c=e.initial,d=c.state,p=c.currentState,h="number"==typeof d.panoIndex?{workCode:null!==(o=null!==(r=d.workCode)&&void 0!==r?r:null===(i=u.works[0])||void 0===i?void 0:i.workCode)&&void 0!==o?o:"",panoIndex:d.panoIndex}:{workCode:p.workCode,panoIndex:p.panoIndex};return ie(ie({},h),{mode:"Floorplan",longitude:null!==(a=d.longitude)&&void 0!==a?a:p.longitude,latitude:Dr(null!==(s=d.latitude)&&void 0!==s?s:"Floorplan"===p.mode?p.latitude:u.defaultLatitude,u.minLatitude,u.maxLatitude),fov:null!==(l=d.fov)&&void 0!==l?l:u.defaultFov,offset:e.models.bounding.getCenter(new n.Vector3),distance:t.distanceFromModel(u.models,u.defaultFov,u.camera.aspect)})},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.panState,this.intersectMesh.dispose(),this.helper.remove(this.intersectMesh)},t.prototype.isReady=function(){return!1!==this.locationMotion.ended&&e.prototype.isReady.call(this)},t.prototype.updateWork=function(e,t,r,n){return this.works=e,this.updateCamera(t,null!=r?r:0,n),!0},t.prototype.updateModel=function(r){e.prototype.updateModel.call(this,r);var i=r.bounding.getCenter(new n.Vector3),o=t.distanceFromModel(r,this.defaultFov,this.camera.aspect);this.locationMotion.set({x:i.x,y:i.y,z:i.z,distance:o},0).catch(fe)},t.prototype.updateTime=function(e,t){if(!this.destroyed){var r={},i={};this.locationMotion.ended||(this.locationMotion.update(e),r.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Dr(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,i.distance=this.locationMotion.value.distance,i.offset=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),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),ia(r)||this.models.setMaterial(r),ia(i)||this.setCamera(i)}},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(Ae())[1],t=this.locationMotion.getKeyFrameSegment(Ae())[1];return ie(ie({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:new n.Vector3(t.value.x,t.value.y,t.value.z),distance:t.value.distance})},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise((function(r){var n=e.initial;n.state,n.currentState;var i=n.duration,o=n.userAction;e.userAction=o;var a=t.initAnimationEndState(e),s=Zn(a,["longitude","latitude","fov"]),l={x:a.offset.x,y:a.offset.y,z:a.offset.z,distance:a.distance,modelAlpha:1,perspToOrtho:0,orthoDistance:a.distance};e.emit("initAnimation.start",$o("initAnimation.start",{state:a,userAction:e.userAction})),e.cameraMotion.set(s,i).catch(fe),e.locationMotion.set(l,i).then((function(){e.emit("initAnimation.end",$o("initAnimation.end",{state:a,userAction:e.userAction}))}),(function(t){var r=ie(ie(ie({},e.currentPano),{mode:e.mode}),oa(e.camera.pose));e.emit("initAnimation.end",$o("initAnimation.end",{state:r,userAction:e.userAction}))})).then((function(){r()}))}))},t.prototype.updateRenderSize=function(){this.locationMotion.set({distance:t.distanceFromModel(this.models,this.defaultFov,this.camera.aspect)},0).catch(fe)},t.prototype.getForwardObserverOrNot=function(e){var t=this.models.intersectRaycaster(e)[0];if(!t)return null;var r=na(this.works.resolvedObservers,(function(e){return e.standingPosition.distanceTo(t.point)}),!0),n=r[0],i=r[1];return n&&i<10?n:null},t.prototype.coordinatesForOffset=function(e){var t=this.renderer.getSize(new n.Vector2);return{longitude:2*e.x/(t.x*this.scissor.width),latitude:2*e.y/(t.y*this.scissor.height)}},t.prototype.requestMomentumMovement=function(e,t,r,n){var i=this;if(null!==this.inMomentumMovement){for(var o=ie({},r),a={longitude:0,latitude:0},s=0;s<n;s++)o.longitude*=.996,o.latitude*=.994008,a.longitude+=o.longitude,a.latitude+=o.latitude;var l=Ko(this.cameraMotion.value.longitude+a.longitude),u=Dr(this.cameraMotion.value.latitude+a.latitude,this.minLatitude,this.maxLatitude),c=ie(ie({},this.currentPano),{mode:this.mode,longitude:l,latitude:u,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance}),d=!(o.longitude>1e-4||o.longitude<-1e-4||o.latitude>1e-4||o.latitude<-1e-4),p=$o("gesture.momentum",ie(ie({},e),{isFirst:t,isFinal:d,state:c}));this.inMomentumMovement.event=p,this.emit("gesture.momentum",p),e.defaultPrevented?this.inMomentumMovement=null:this.inMomentumMovement&&(this.cameraMotion.set({longitude:l,latitude:u},0).catch(fe),d?this.inMomentumMovement=null:Ne.shared.add((function(t,r){i.requestMomentumMovement(e,!1,o,0|r)}),!0,1))}},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var t=this.panState,r=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:r,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===r){var n={x:e.center.x-t.x,y:e.center.y-t.y},i=this.relativeClientPosition(e.center),o=this.camera.pose.latitude<Math.PI/6||i.y<0?-1:1;n.x*=o;var a=this.coordinatesForOffset(n),s=Ko(this.cameraMotion.value.longitude+a.longitude),l=Dr(this.cameraMotion.value.latitude+a.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&&(l=this.cameraMotion.value.latitude);var u=ie(ie({},this.currentPano),{mode:this.mode,longitude:s,latitude:l,fov:this.camera.pose.fov,offset:this.camera.pose.offset,distance:this.camera.pose.distance});if(e.state=u,this.emit("gesture.pan",e),!e.defaultPrevented&&(this.cameraMotion.set({longitude:u.longitude,latitude:u.latitude},0).catch(fe),e.isFinal)){var c=e.velocityX*o,d=e.velocityY;this.inMomentumMovement={uuid:Fi()},this.requestMomentumMovement(e,!0,this.coordinatesForOffset({x:c,y:d}),0)}}},t.prototype.onPinchGesture=function(e){var t;this.userAction=e.userAction,this.stopMomentumMovement();var r=null===(t=this.pinchState)||void 0===t?void 0:t.fov;if("pinchstart"!==e.type){if("pinchend"===e.type&&(delete this.panState,delete this.pinchState),void 0!==r){var n=Dr(r/e.scale,this.minFov,this.maxFov);e.state.fov=n,this.emit("gesture.pinch",e),e.defaultPrevented||(this.cameraMotion.set({fov:n},0).catch(fe),this.onPanGesture(e))}}else this.pinchState={x:e.center.x,y:e.center.y,fov:this.cameraMotion.value.fov}},t.prototype.onMouseMove=function(e){var t,r;if(this.intersectMesh.parent&&!this.panState)if(this.emit("gesture.mousemove",e),e.defaultPrevented)this.hideIntersectMesh();else{var i=e.center.raycaster;if(e.isFinal&&this.intersectMesh.parent&&!0===this.intersectMesh.visible)this.hideIntersectMesh();else{var o=this.models.intersectRaycaster(i)[0],a=$o("intersect.update",{raycaster:i,intersection:null!=o?o:null,object:this.intersectMesh});if(this.emit("intersect.update",a),a.defaultPrevented)this.hideIntersectMesh();else if(o){var s=null!==(r=null===(t=o.face)||void 0===t?void 0:t.normal)&&void 0!==r?r:(new n.Vector3).copy(i.ray.direction).multiplyScalar(-1),l=s.clone().multiplyScalar(.05),u=o.point.clone().add(l);this.intersectMesh.position.copy(u);var c=u.clone().add(l);if(this.intersectMesh.lookAt(c),Math.abs(s.y)>.99){var d=this.camera.position.clone().sub(u);this.intersectMesh.rotation.z=-Math.atan2(d.z,d.x)}this.intersectMesh.visible=!0,this.needsRender=!0}else this.hideIntersectMesh()}}},t.prototype.onMouseWheel=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var t=this.minFov,r=this.maxFov,n=Dr(this.camera.fov-e.center.delta,t,r);e.state.fov=n,this.emit("gesture.mousewheel",e),e.defaultPrevented||this.cameraMotion.set({fov:n},0).catch(fe)},t.prototype.onTapGesture=function(e){var t=this;this.userAction=!0,this.stopMomentumMovement();var r=e.center.raycaster,i=this.getForwardObserverOrNot(r);if(i){var o={longitude:this.camera.pose.longitude,latitude:0},a=ie(ie({},e.state),{mode:"Panorama",workCode:i.pano.workCode,panoIndex:i.pano.panoIndex,longitude:o.longitude,latitude:o.latitude,offset:i?i.position.clone():new n.Vector3,distance:0});if(e.state=a,this.emit("gesture.tap",e),!e.defaultPrevented&&(this.emit("pano.select",$o("pano.select",{prevPano:this.currentPano,state:a,userAction:e.userAction,options:o,progress:0,error:null})),i&&i.active)){var s=this.currentTapId=Fi();this.preloadPano(i.pano).then((function(e){t.currentTapId===s&&t.emit("pano.request",$o("pano.request",{userAction:!0,prevPano:t.currentPano,progress:0,state:a,options:o,error:null}))}))}}else this.emit("gesture.tap",e)},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.needsRender=!0},t}(la),ca={longitude:0,latitude:Math.PI/2},da={longitude:0,latitude:0},pa={longitude:Math.PI/2,latitude:0},ha={longitude:Math.PI,latitude:0},fa={longitude:1.5*Math.PI,latitude:0};var va,Aa=function(e){function t(r){var n=this,i=t.parseArgs(r);return(n=e.call(this,i)||this).mode="Topview",n}return ne(t,e),t.parseArgs=function(r){if(r instanceof t)return r;var n=ie(ie({},r.initial),{state:ie(ie({},r.initial.state),{longitude:0,latitude:Math.PI/2})}),i=ie(ie({},r),{initial:n,maxLatitude:Math.PI/2,minLatitude:Math.PI/2,defaultLongitude:0,defaultLatitude:Math.PI/2});return e.parseArgs.call(this,i)},t.initAnimationEndState=function(t){var r=this.parseArgs(t),n=e.initAnimationEndState.call(this,r);return ie(ie({},n),{mode:"Topview"})},t.prototype.updateModel=function(e){this.needsRender=!0;var t=this.models.bounding.getCenter(new n.Vector3);this.locationMotion.set({x:t.x,y:t.y,z:t.z,distance:ua.distanceFromModel(this.models,this.defaultFov,this.camera.aspect)},0).catch(fe)},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise((function(r){var n=e.initial;n.state,n.currentState;var i=n.duration,o=n.userAction;e.userAction=o;var a=t.initAnimationEndState(e),s={longitude:a.longitude,latitude:a.latitude,fov:a.fov},l={x:a.offset.x,y:a.offset.y,z:a.offset.z,distance:a.distance,modelAlpha:1,perspToOrtho:1,orthoDistance:a.distance};e.emit("initAnimation.start",$o("initAnimation.start",{state:a,userAction:e.userAction})),e.cameraMotion.set(s,i).catch(fe),e.locationMotion.set(l,i).then((function(){e.emit("initAnimation.end",$o("initAnimation.end",{state:a,userAction:e.userAction}))}),(function(t){var r=ie(ie(ie({},e.currentPano),{mode:e.mode}),oa(e.camera.pose));e.emit("initAnimation.end",$o("initAnimation.end",{state:r,userAction:e.userAction}))})).then((function(){r()}))}))},t.prototype.getZoomOffsetFromFov=function(e,t,r){var i=this.camera.getDirection(new n.Vector3),o=Math.tan(r/2*Math.PI/180),a=Math.tan(t.fov/2*Math.PI/180),s=(a-o)/a,l=new n.Raycaster;l.setFromCamera(e,t);var u=l.ray.direction,c=u.angleTo(i),d=ua.distanceFromModel(this.models,this.defaultFov,this.camera.aspect),p=d*Math.tan(c),h=u.clone().setLength(d*Math.cos(c)).projectOnPlane(i),f=h.length(),v=s/f*h.x*p,A=s/f*h.z*p,m=s/f*h.y*p;return new n.Vector3(v,m,A)},t.prototype.requestMomentumMovement=function(){this.inMomentumMovement=null},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var t=this.panState,r=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:r,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===r){var i=e.center.x-t.x,o=e.center.y-t.y,a=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),s=this.models.bounding,l=s.getCenter(new n.Vector3),u=(s.max.x-s.min.x)/this.defaultFov*this.cameraMotion.value.fov,c=(s.max.y-s.min.y)/this.defaultFov*this.cameraMotion.value.fov,d=(s.max.z-s.min.z)/this.defaultFov*this.cameraMotion.value.fov,p={left:new n.Vector3,up:new n.Vector3,cameraDirection:"y"};this.cameraMotion.value.longitude===ca.longitude&&this.cameraMotion.value.latitude===ca.latitude?(p.left.set(1,0,0),p.up.set(0,0,-1),p.cameraDirection="y"):this.cameraMotion.value.longitude===da.longitude&&this.cameraMotion.value.latitude===da.latitude?(p.left.set(1,0,0),p.up.set(0,1,0),p.cameraDirection="z"):this.cameraMotion.value.longitude===ha.longitude&&this.cameraMotion.value.latitude===ha.latitude?(p.left.set(1,0,0),p.up.set(0,-1,0),p.cameraDirection="z"):this.cameraMotion.value.longitude===fa.longitude&&this.cameraMotion.value.latitude===fa.latitude?(p.left.set(0,0,-1),p.up.set(0,-1,0),p.cameraDirection="x"):this.cameraMotion.value.longitude===pa.longitude&&this.cameraMotion.value.latitude===pa.latitude&&(p.left.set(0,0,-1),p.up.set(0,1,0),p.cameraDirection="x");var h=(this.camera.position[p.cameraDirection]-s.min[p.cameraDirection])*Math.tan(this.camera.fov/2*Math.PI/180),f=this.renderer.getSize(new n.Vector2);a.add(function(e,t){var r=(new n.Vector3).copy(t);return r.multiplyScalar(-e),r}(2*i*h/f.y,p.left)),a.add(function(e,t){var r=(new n.Vector3).copy(t);return r.multiplyScalar(e),r}(2*o*h/f.y,p.up)),a.x=Dr(a.x,l.x-u,l.x+u),a.y=Dr(a.y,l.y-c,l.y+c),a.z=Dr(a.z,l.z-d,l.z+d);var v=ie(ie({},this.currentPano),{mode:this.mode,longitude:0,latitude:Math.PI/2,fov:this.cameraMotion.value.fov,offset:a,distance:this.locationMotion.value.distance});e.state=v,this.emit("gesture.pan",e),e.defaultPrevented||this.locationMotion.set({x:a.x,y:a.y,z:a.z},0).catch(fe)}},t.prototype.onPinchGesture=function(e){var t;this.userAction=e.userAction,this.stopMomentumMovement();var r=null===(t=this.pinchState)||void 0===t?void 0:t.fov;if("pinchstart"!==e.type){if("pinchend"===e.type&&delete this.pinchState,void 0!==r){var n=Dr(r/e.scale,this.minFov,this.maxFov),i=this.relativeClientPosition({x:e.center.x,y:e.center.y}),o=this.getZoomOffsetFromFov(i,this.camera,n);this.cameraMotion.value.longitude===ca.longitude&&this.cameraMotion.value.latitude===ca.latitude?o.y=0:this.cameraMotion.value.longitude===da.longitude&&this.cameraMotion.value.latitude===da.latitude||this.cameraMotion.value.longitude===ha.longitude&&this.cameraMotion.value.latitude===ha.latitude?o.z=0:(this.cameraMotion.value.longitude===fa.longitude&&this.cameraMotion.value.latitude===fa.latitude||this.cameraMotion.value.longitude===pa.longitude&&this.cameraMotion.value.latitude===pa.latitude)&&(o.x=0);var a=this.camera.pose.offset.clone().add(o);e.state.offset.copy(a),e.state.fov=n,this.emit("gesture.pinch",e),e.defaultPrevented||(this.locationMotion.set({x:a.x,y:a.y,z:a.z},0).catch(fe),this.cameraMotion.set({fov:n},0).catch(fe),e.type="gesture.pan",this.onPanGesture(e))}}else this.pinchState={x:e.center.x,y:e.center.y,fov:this.cameraMotion.value.fov}},t.prototype.onMouseWheel=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var t=Dr(this.cameraMotion.value.fov-e.center.delta,this.minFov,this.maxFov),r=e.center.coords,n=this.getZoomOffsetFromFov(r,this.camera,t);this.cameraMotion.value.longitude===ca.longitude&&this.cameraMotion.value.latitude===ca.latitude?n.y=0:this.cameraMotion.value.longitude===da.longitude&&this.cameraMotion.value.latitude===da.latitude||this.cameraMotion.value.longitude===ha.longitude&&this.cameraMotion.value.latitude===ha.latitude?n.z=0:(this.cameraMotion.value.longitude===fa.longitude&&this.cameraMotion.value.latitude===fa.latitude||this.cameraMotion.value.longitude===pa.longitude&&this.cameraMotion.value.latitude===pa.latitude)&&(n.x=0);var i=this.camera.pose.offset.clone().add(n);e.state.offset.copy(i),e.state.fov=t,this.emit("gesture.mousewheel",e),e.defaultPrevented||(this.locationMotion.set({x:i.x,y:i.y,z:i.z},0).catch(fe),this.cameraMotion.set({fov:t},0).catch(fe))},t}(ua),ma=function(e){function t(r){var n=this,i=t.parseArgs(r);return(n=e.call(this,i)||this).mode="PanoramaLike",n.defaultLatitude=i.defaultLatitude,n.defaultFov=i.defaultFov,n.maxFov=i.maxFov,n.minFov=i.minFov,n.maxLatitude=i.maxLatitude,n.minLatitude=i.minLatitude,n.moveSpeed=i.moveSpeed,n.intersectMeshCreator=i.intersectMeshCreator,n.intersectMesh=n.intersectMeshCreator(),n.intersectMesh.name="intersect",n.intersectMesh.visible=!1,n.helper.add(n.intersectMesh),n}return ne(t,e),t.parseArgs=function(r){var n,i,o,a,s,l,u,c;if(r instanceof t)return r;var d=e.parseArgs.call(this,r);return ie(ie({},d),{defaultLatitude:null!==(n=r.defaultLatitude)&&void 0!==n?n:0,defaultFov:null!==(i=r.defaultFov)&&void 0!==i?i:90,maxFov:null!==(o=r.maxFov)&&void 0!==o?o:120,minFov:null!==(a=r.minFov)&&void 0!==a?a:40,maxLatitude:null!==(s=r.maxLatitude)&&void 0!==s?s:+Math.PI/2,minLatitude:null!==(l=r.minLatitude)&&void 0!==l?l:-Math.PI/2,moveSpeed:null!==(u=r.moveSpeed)&&void 0!==u?u:3.4,intersectMeshCreator:null!==(c=r.intersectMeshCreator)&&void 0!==c?c:function(){return new Vo}})},t.initAnimationEndState=function(e){var t,r,i,o,a,s,l=this.parseArgs(e),u=l.works,c=e.initial,d=c.state,p=c.currentState,h="number"==typeof d.panoIndex?{workCode:null!==(i=null!==(t=d.workCode)&&void 0!==t?t:null===(r=l.works[0])||void 0===r?void 0:r.workCode)&&void 0!==i?i:"",panoIndex:d.panoIndex}:{workCode:p.workCode,panoIndex:p.panoIndex},f=u.getResolvedObserver(h),v=null!==(o=d.longitude)&&void 0!==o?o:p.longitude,A=Dr(null!==(a=d.latitude)&&void 0!==a?a:zi(p.mode)?p.latitude:l.defaultLatitude,l.minLatitude,l.maxLatitude),m=Dr(null!==(s=d.fov)&&void 0!==s?s:zi(p.mode)?p.fov:l.defaultFov,l.minFov,l.maxFov),g=f?f.position.clone():new n.Vector3;return{workCode:h.workCode,panoIndex:h.panoIndex,mode:"PanoramaLike",longitude:v,latitude:A,fov:m,offset:g,distance:0}},t.prototype.destroy=function(){e.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&&e.prototype.isReady.call(this))},t.prototype.calculateMovingDuration=function(e,t){switch(typeof e){case"function":return e(t,this.moveSpeed);case"number":return e;case"string":return Number(e);default:return Dr(t,2,5)/this.moveSpeed*1e3}},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.needsRender=!0},t.prototype.coordinatesForOffset=function(e){var t=this.cameraMotion.value.fov,r=this.camera.aspect,i=this.renderer.getSize(new n.Vector2);return{longitude:2*e.x/(i.x*this.scissor.width)*t/95*r,latitude:-2*e.y/(i.y*this.scissor.height)*t/95}},t.prototype.cameraBounce=function(){var e=this.cameraMotion.value,t=e.longitude,r=e.latitude,n=e.fov,i=[{progress:0,value:{longitude:t,latitude:r,fov:n}},{progress:.5,value:{longitude:t,latitude:r,fov:.98*n}},{progress:1,value:{longitude:t,latitude:r,fov:n}}];this.cameraMotion.setKeyframes(i,500).catch(fe)},t.prototype.requestMomentumMovement=function(e,t,r,n){var i=this;if(null!==this.inMomentumMovement){for(var o=ie({},r),a={longitude:0,latitude:0},s=0;s<n;s++)o.longitude*=.996,o.latitude*=.98604,a.longitude+=o.longitude,a.latitude+=o.latitude;var l=Ko(this.cameraMotion.value.longitude+a.longitude),u=Dr(this.cameraMotion.value.latitude+a.latitude,this.minLatitude,this.maxLatitude),c=ie(ie({},this.currentPano),{mode:this.mode,longitude:l,latitude:u,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance}),d=!(o.longitude>1e-4||o.longitude<-1e-4||o.latitude>1e-4||o.latitude<-1e-4),p=$o("gesture.momentum",ie(ie({},e),{isFirst:t,isFinal:d,state:c}));this.inMomentumMovement.event=p,this.emit("gesture.momentum",p),e.defaultPrevented?this.inMomentumMovement=null:this.inMomentumMovement&&(this.cameraMotion.set({longitude:l,latitude:u},0).catch(fe),d?this.inMomentumMovement=null:Ne.shared.add((function(t,r){i.requestMomentumMovement(e,!1,o,0|r)}),!0,1))}},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var t=this.panState,r=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:r,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===r){var n={x:e.center.x-t.x,y:e.center.y-t.y},i=this.coordinatesForOffset(n),o=Ko(this.cameraMotion.value.longitude+i.longitude),a=Dr(this.cameraMotion.value.latitude+i.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&&(a=this.cameraMotion.value.latitude);var s=ie(ie({},this.currentPano),{mode:this.mode,longitude:o,latitude:a,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance});if(e.state=s,this.emit("gesture.pan",e),!e.defaultPrevented){var l={longitude:s.longitude,latitude:s.latitude,fov:s.fov};if(this.cameraMotion.set(l,0).catch(fe),e.isFinal){var u=e.velocityX,c=.6*e.velocityY;Math.abs(c)>.5&&Math.abs(u)<.5&&(u=0),this.inMomentumMovement={uuid:Fi()},this.requestMomentumMovement(e,!0,this.coordinatesForOffset({x:u,y:c}),0)}}}},t.prototype.onPinchGesture=function(e){var t;this.userAction=e.userAction,this.stopMomentumMovement();var r=null===(t=this.pinchState)||void 0===t?void 0:t.fov,n=e.scale;if(e.isFirst)this.pinchState={x:e.center.x,y:e.center.y,fov:this.cameraMotion.value.fov};else if(e.isFinal&&delete this.pinchState,void 0!==r){var i=Dr(r/n,this.minFov,this.maxFov);e.state.fov=i,this.emit("gesture.pinch",e),e.defaultPrevented||(this.cameraMotion.set({fov:i},0).catch(fe),e.type="gesture.pan",this.onPanGesture(e))}},t.prototype.onMouseWheel=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var t=Dr(this.cameraMotion.value.fov-e.center.delta,this.minFov,this.maxFov);e.state.fov=t,this.emit("gesture.mousewheel",e),e.defaultPrevented||this.cameraMotion.set({fov:t},0).catch(fe)},t.prototype.onMouseMove=function(e){var t,r;if(this.intersectMesh.parent&&!this.panState&&(this.emit("gesture.mousemove",e),!e.defaultPrevented)){var i=e.center.raycaster;if(e.isFinal&&this.intersectMesh.parent&&!0===this.intersectMesh.visible)this.hideIntersectMesh();else{var o=this.models.intersectRaycaster(i)[0],a=$o("intersect.update",{raycaster:i,intersection:null!=o?o:null,object:this.intersectMesh});if(this.emit("intersect.update",a),a.defaultPrevented)this.hideIntersectMesh();else if(o){var s=null!==(r=null===(t=o.face)||void 0===t?void 0:t.normal)&&void 0!==r?r:(new n.Vector3).copy(i.ray.direction).multiplyScalar(-1),l=s.clone().multiplyScalar(.05),u=o.point.clone().add(l);this.intersectMesh.position.copy(u);var c=u.clone().add(l);if(this.intersectMesh.lookAt(c),Math.abs(s.y)>.99){var d=this.camera.position.clone().sub(u);this.intersectMesh.rotation.z=-Math.atan2(d.z,d.x)}this.intersectMesh.visible=!0,this.needsRender=!0}else this.hideIntersectMesh()}}},t}(la);function ga(){return va||(va=new Promise((function(e){var t,r=document.createElement("video");r.muted=!0,r.src="data:video/mp4;base64,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",r.addEventListener("timeupdate",(function n(){r.removeEventListener("timeupdate",n,!1),clearTimeout(t);var i=document.createElement("canvas");i.width=i.height=1;var o=i.getContext("2d");o?(o.drawImage(r,0,0,1,1),o.getImageData(0,0,1,1).data[3]>10?e(!0):e(!1)):e(!1)}),!1),r.addEventListener("canplay",(function e(){r.removeEventListener("canplay",e,!1),r.play()}),!1),t=window.setTimeout((function(){return e(!1)}),1e3)})))}var ya=new n.OrthographicCamera(-1,1,1,-1,0,1),ba=new n.BufferGeometry;ba.setAttribute("position",new n.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),ba.setAttribute("uv",new n.Float32BufferAttribute([0,2,0,0,2,0],2));var xa=new n.Mesh(ba),wa=new n.Scene;wa.add(xa);var Ma,Ea=function(){function e(e,t){var r;this.renderer=e,this.material=new n.ShaderMaterial({vertexShader:null!==(r=t.vertex)&&void 0!==r?r:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:t.fragment,uniforms:Object.assign({inputBuffer:new n.Uniform(null)},t.uniforms),defines:Object.assign({},t.defines),blending:n.NoBlending,depthWrite:!1,depthTest:!1})}return e.prototype.render=function(e,t){var r=this.renderer.getRenderTarget(),n=xa.material;this.material.uniforms.inputBuffer.value=e.texture,xa.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(wa,ya),this.renderer.setRenderTarget(r),xa.material=n},e.prototype.dispose=function(){this.material.dispose()},e}(),Ca=function(){function e(e){this.renderer=e,this.material=new n.ShaderMaterial({vertexShader:"\nvoid main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform vec3 inputValue;\nvoid main() {\n gl_FragColor = vec4(inputValue, 1.0);\n}\n",uniforms:Object.assign({inputValue:new n.Uniform(new n.Vector3)}),blending:n.NoBlending,depthWrite:!1,depthTest:!1})}return e.prototype.render=function(e,t){var r=this.renderer.getRenderTarget(),n=xa.material;this.material.uniforms.inputValue.value.copy(e),xa.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(wa,ya),this.renderer.setRenderTarget(r),xa.material=n},e.prototype.dispose=function(){this.material.dispose()},e}(),Sa=function(e){function t(t,r){return void 0===r&&(r=.5),e.call(this,t,{uniforms:{inputBuffer:new n.Uniform(null),scale:new n.Uniform(r)},fragment:"\n#include <common>\nuniform sampler2D inputBuffer;\nuniform float scale;\nvarying vec2 vUv;\n\nvoid main() {\n float u = (vUv.x - 0.5) * scale + 0.5;\n float v = (vUv.y - 0.5) * scale + 0.5;\n vec3 rgb = texture2D(inputBuffer, vec2(u, v)).rgb;\n float luminance = clamp(linearToRelativeLuminance(rgb), 0.1, 0.9);\n gl_FragColor = vec4(luminance);\n}\n"})||this}return ne(t,e),t}(Ea),Ia=function(e){function t(t){return e.call(this,t,{fragment:"\nuniform sampler2D inputBuffer;\nvarying vec2 vUv;\nvoid main() {\n gl_FragColor = texture2D(inputBuffer, vUv);\n}\n"})||this}return ne(t,e),t}(Ea),Pa=function(){function e(e,t,r,n){this.enable=!0,this.renderer=e,this.scene=t,this.camera=r,this.models=n,this.copyPass=new Ia(this.renderer)}return e.prototype.render=function(e,t){},e.prototype.dispose=function(){this.copyPass.dispose()},e}(),Ta=function(e){function t(t,r){void 0===r&&(r=.002);var i=e.call(this,t,{uniforms:{targetBuffer:new n.Uniform(null),inputBuffer:new n.Uniform(null),step:new n.Uniform(r)},fragment:"\n uniform sampler2D targetBuffer;\n uniform sampler2D inputBuffer;\n uniform float step;\n varying vec2 vUv;\n void main() {\n\n #ifdef GL_EXT_shader_texture_lod\n #if __VERSION__ < 300\n float target = texture2DLodEXT(targetBuffer, vUv, 5.0).r;\n #else\n float target = textureLod(targetBuffer, vUv, 5.0).r;\n #endif\n #else\n float target = texture2D(targetBuffer, vUv).r;\n #endif\n float current = texture2D(inputBuffer, vUv).r;\n\n float result;\n if (abs(target - current) < step) {\n result = target;\n } else if (target - current > 0.0) {\n result = current + step;\n } else {\n result = current - step;\n }\n gl_FragColor = vec4(result, result, result, 1.0);\n }\n "})||this;return i.material.extensions.shaderTextureLOD=!0,i}return ne(t,e),Object.defineProperty(t.prototype,"targetBuffer",{get:function(){return this.material.uniforms.targetBuffer.value},set:function(e){this.material.uniforms.targetBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"step",{get:function(){return this.material.uniforms.step.value},set:function(e){this.material.uniforms.step.value=e},enumerable:!1,configurable:!0}),t}(Ea),Ba=function(e){function t(t){var r=e.call(this,t,{uniforms:{inputBuffer:new n.Uniform(null),luminanceAdaptiveBuffer:new n.Uniform(null),progress:new n.Uniform(0)},fragment:"\n #include <common>\n uniform sampler2D inputBuffer;\n uniform sampler2D luminanceAdaptiveBuffer;\n uniform float progress;\n varying vec2 vUv;\n\n void main() {\n float middleGrey = 1.5;\n float whitePoint = 13.0;\n float exposure = 1.4;\n vec4 inputColor = texture2D(inputBuffer, vUv);\n vec3 rgb = inputColor.rgb * exposure;\n float alpha = inputColor.a;\n float luminance = linearToRelativeLuminance(rgb);\n float lumAvg = texture2D(luminanceAdaptiveBuffer, vec2(0.5)).r;\n float lumScaled = (luminance * middleGrey) / max(lumAvg, 1e-6);\n float lumCompressed = lumScaled * (1.0 + lumScaled / (whitePoint * whitePoint));\n lumCompressed /= (1.0 + lumScaled);\n rgb = clamp(lumCompressed * rgb, 0.0, 1.0);\n gl_FragColor = mix(inputColor, vec4(rgb, alpha), progress * 0.9);\n }\n "})||this;return r.material.transparent=!0,r}return ne(t,e),Object.defineProperty(t.prototype,"luminanceAdaptiveBuffer",{get:function(){return this.material.uniforms.luminanceAdaptiveBuffer.value},set:function(e){this.material.uniforms.luminanceAdaptiveBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"progress",{get:function(){return this.material.uniforms.progress.value},set:function(e){this.material.uniforms.progress.value=e},enumerable:!1,configurable:!0}),t}(Ea),Ra=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n,i)||this;return o.enableTime=Ae(),o.renderer=t,o.valuePass=new Ca(o.renderer),o.luminancePass=new Sa(o.renderer,Math.sqrt(1/3)),o.nextStepPass=new Ta(o.renderer,.01),o.luminanceAdaptivePass=new Ba(o.renderer),o}return ne(t,e),t.prototype.render=function(e){if(!this.enable)return this.enableTime=null,void this.copyPass.render(e[0],e[1]);null===this.enableTime&&(this.enableTime=Ae()),this.luminanceTargetBuffer||(this.luminanceTargetBuffer=new n.WebGLRenderTarget(128,128,{minFilter:n.LinearMipmapLinearFilter,magFilter:n.LinearFilter,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1,format:n.RGBAFormat,generateMipmaps:!0}),this.nextStepPass.targetBuffer=this.luminanceTargetBuffer.texture),this.luminancePass.render(e[0],this.luminanceTargetBuffer),this.luminancePrevBuffer||(this.luminancePrevBuffer=new n.WebGLRenderTarget(1,1,{minFilter:n.NearestFilter,magFilter:n.NearestFilter,type:n.HalfFloatType,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1}),this.valuePass.render(new n.Vector3(.5,.5,.5),this.luminancePrevBuffer)),this.luminanceNextBuffer||(this.luminanceNextBuffer=new n.WebGLRenderTarget(1,1,{minFilter:n.NearestFilter,magFilter:n.NearestFilter,type:n.HalfFloatType,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1}),this.valuePass.render(new n.Vector3(.5,.5,.5),this.luminanceNextBuffer),this.luminanceAdaptivePass.luminanceAdaptiveBuffer=this.luminanceNextBuffer.texture),this.copyPass.render(this.luminanceNextBuffer,this.luminancePrevBuffer),this.nextStepPass.render(this.luminancePrevBuffer,this.luminanceNextBuffer),this.luminanceAdaptivePass.progress=Math.min((Ae()-this.enableTime)/100,1),this.luminanceAdaptivePass.render(e[0])},t.prototype.dispose=function(){var e,t,r;null===(e=this.luminanceTargetBuffer)||void 0===e||e.dispose(),null===(t=this.luminancePrevBuffer)||void 0===t||t.dispose(),null===(r=this.luminanceNextBuffer)||void 0===r||r.dispose(),this.copyPass.dispose(),this.luminancePass.dispose(),this.nextStepPass.dispose(),this.luminanceAdaptivePass.dispose()},t}(Pa),Oa=512,ka=null!==(Ma=Math.SQRT1_2)&&void 0!==Ma?Ma:Math.sqrt(2),Da={up:new n.Quaternion(ka,0,0,ka),down:new n.Quaternion(-ka,0,0,ka),left:new n.Quaternion(0,ka,0,ka),right:new n.Quaternion(0,-ka,0,ka),front:new n.Quaternion(0,0,0,1),back:new n.Quaternion(0,1,0,0)},Fa=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),La=new Float32Array([0,0,1,0,0,1,1,1]),Qa=new Uint8Array([0,1,2,1,3,2]),Na=new n.BufferGeometry;Na.setAttribute("position",new n.BufferAttribute(Fa,3)),Na.setAttribute("uv",new n.BufferAttribute(La,2)),Na.setIndex(new n.BufferAttribute(Qa,1));var Va=function(e){function t(){var t=e.call(this,{uniforms:{map:{value:null},luminanceMap:{value:null},flipY:{value:0}},vertexShader:"\nuniform float flipY;\nvarying vec2 vUv;\nvoid main() {\n vUv = vec2(uv.x, mix(uv.y, (1.0 - uv.y), flipY));\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\n#if defined(USE_LUMINANCE)\nuniform sampler2D luminanceMap;\n#endif\nuniform sampler2D map;\nvarying vec2 vUv;\n\nvoid main() {\n gl_FragColor = texture2D(map, vUv);\n #if defined(USE_LUMINANCE)\n gl_FragColor.a = 1.0 - texture2D(luminanceMap, vUv).r;\n #endif\n}\n"})||this;return t.depthTest=!1,t.depthWrite=!1,t.blending=n.NoBlending,t.map=t.uniforms.map.value,t.luminanceMap=t.uniforms.luminanceMap.value,t.flipY=t.uniforms.flipY.value,Object.defineProperties(t,{map:{get:function(){return this.uniforms.map.value},set:function(e){this.uniforms.map.value=e}},luminanceMap:{get:function(){return this.uniforms.luminanceMap.value},set:function(e){this.uniforms.luminanceMap.value=e,this.defines.USE_LUMINANCE=null!==e,this.needsUpdate=!0}},flipY:{get:function(){return 1===this.uniforms.flipY.value},set:function(e){this.uniforms.flipY.value=e?1:0}}}),t}return ne(t,e),t}(n.ShaderMaterial),Ua=function(e){function t(t,r){var i=e.call(this,Na,new Va)||this;return t.box.getCenter(i.position),i.quaternion.multiplyQuaternions((new n.Quaternion).setFromAxisAngle(new n.Vector3(0,1,0),-Math.PI),Da[t.face]),i.scale.setScalar(t.size),i.node=t,i.name="tiling:tile",i.material.visible=!1,i.activeTime=-1,i.disposed=!1,i.needsRender=!1,i.frustumCulled=!1,r.then((function(e){var t=e[0],r=e[1];i.disposed?(t.dispose(),null==r||r.dispose()):(i.material.map=t,i.material.luminanceMap=r,i.material.flipY=!t.flipY,i.material.needsUpdate=!0,i.material.visible=!0,i.needsRender=!0)})).catch(fe),i}return ne(t,e),t.prototype.updateTime=function(e){},t.prototype.dispose=function(){var e;this.disposed=!0,this.material.map&&(this.material.map.dispose(),null===(e=this.material.luminanceMap)||void 0===e||e.dispose()),this.material.dispose()},t}(n.Mesh),za=function(e){function t(){var t=e.call(this)||this;return t.needsRender=!1,t.name="tiling",t}return ne(t,e),t}(n.Group),qa=function(){function e(e,t,r){this.disposed=!1,this.textureLoader=new Ft,this.minLevel=t,this.level=0,this.panoId="[0]",this.pedding=0,this.tileTree=dt(this.minLevel),this.tileMeshes=new Map,this.resource=[],this.luminance=null,this.imageOptions=r,this.networkOptions=e,this.object=new za,this.object.renderOrder=-3}return e.prototype.setAllowHosts=function(e){this.networkOptions.allowHosts=e},e.prototype.setRequestProxy=function(e){this.networkOptions.requestProxy=e},e.prototype.setNetworkSubscribe=function(e){this.networkOptions.networkSubscribe=e},e.prototype.cleanup=function(){var e=this;this.tileMeshes.forEach((function(t){t.dispose(),e.object.remove(t),e.object.needsRender=!0})),this.tileMeshes.clear()},e.prototype.setRotation=function(e){this.disposed||this.object.quaternion.equals(e)||(this.object.quaternion.copy(e),this.object.needsRender=!0)},e.prototype.setPosition=function(e){this.disposed||this.object.position.equals(e)||(this.object.position.copy(e),this.object.needsRender=!0)},e.prototype.setResource=function(e,t){var r,n;if(!this.disposed&&(this.resource!==e||this.luminance!==t)){this.cleanup(),this.resource=e;var i=null!==(n=null===(r=e.slice().sort((function(e,t){return t.level-e.level}))[0])||void 0===r?void 0:r.level)&&void 0!==n?n:0;this.tileTree=dt(i),this.luminance=t,this.object.needsRender=!0}},e.prototype.update=function(e,t,r){var i=this;if(!this.disposed){this.level=t;var o=e.planes[5].normal,a=[];t>=this.minLevel&&pt(this.tileTree,(function(r){if(!(r.level<i.minLevel))return!(r.level>t)&&(!!e.intersectsBox(r.box)&&void a.push(r))}));var s=new n.Vector3;a.sort((function(e,t){return e.level!==t.level?e.level-t.level:e.box.getCenter(s).angleTo(o)-t.box.getCenter(s).angleTo(o)}));for(var l=new Set,u=function(e){var t=c.resource.filter((function(t){return t.level===e.level}))[0];if(!t)return"continue";if(l.add(e),c.tileMeshes.has(e))return c.tileMeshes.get(e).activeTime=r,"continue";var n=t.size,o=c.imageOptions.transform,a=Math.pow(2,e.level)*e.position.y,s=Math.pow(2,e.level)*e.position.x,u="".concat(c.panoId,".").concat(e.face,".").concat(e.level,".").concat(a,".").concat(s),d=ie(ie({key:"pano_tile.".concat(u)},Zn(c.imageOptions,["format","size","quality","sharpen","mappings"])),{size:n*e.size===Oa?void 0:Oa,cut:[n*e.position.x,n*e.position.y,n*e.size,n*e.size]}),p=c.textureLoader.loadTexture(t[e.face],{imageURL:{transform:o,options:d},allowHosts:c.networkOptions.allowHosts,networkSubscribe:c.networkOptions.networkSubscribe,requestProxy:c.networkOptions.requestProxy,viaAjax:Pt}).then((function(e){return e.body})),h=null;if(c.luminance){var f=c.luminance[e.face],v=f.match(/\/cube_(\d+)\//),A=!!v&&Number(v[1]);if(!1!==A){var m=ie(ie({},d),{size:A*e.size==256?void 0:256,cut:[A*e.position.x,A*e.position.y,A*e.size,A*e.size],key:"pano_tile_luminance.".concat(u)});h=c.textureLoader.loadTexture(f,{imageURL:{transform:c.imageOptions.transform,options:m},allowHosts:c.networkOptions.allowHosts,networkSubscribe:c.networkOptions.networkSubscribe,requestProxy:c.networkOptions.requestProxy,viaAjax:Pt}).then((function(e){return e.body})).catch((function(){return null}))}}c.pedding++;var g=Promise.all([p,h]).then((function(e){return i.pedding--,e}),(function(e){return i.pedding--,Promise.reject(e)})),y=new Ua(e,g);y.name="tiling:tile-".concat(u),y.activeTime=r,y.renderOrder=e.level,c.tileMeshes.set(e,y),c.object.needsRender=!0,c.object.add(y)},c=this,d=0,p=a;d<p.length;d++){u(m=p[d])}var h=[];this.tileMeshes.forEach((function(e,r){l.has(r)||h.push(r),e.visible=r.level<=t}));for(var f=h.sort((function(e,t){var r,n,o,a;return(null!==(n=null===(r=i.tileMeshes.get(t))||void 0===r?void 0:r.activeTime)&&void 0!==n?n:0)-(null!==(a=null===(o=i.tileMeshes.get(e))||void 0===o?void 0:o.activeTime)&&void 0!==a?a:0)})).slice(Math.max(0,32-l.size)),v=0,A=f;v<A.length;v++){var m=A[v],g=this.tileMeshes.get(m);g&&(g.dispose(),this.object.remove(g),this.object.needsRender=!0),this.tileMeshes.delete(m)}}},e.prototype.dispose=function(){this.cleanup(),this.resource=[],this.disposed=!0},e}(),Ha=new Float32Array([-1,1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,1,-1,1,1,1,1,-1,-1,1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,-1,1,-1,-1,1,-1,1,-1,1,1,-1,-1,-1,-1,1,-1,-1]),_a=new Uint8Array([0,2,1,2,3,1,4,6,5,6,7,5,8,10,9,10,11,9,12,14,13,14,15,13,16,18,17,18,19,17,20,22,21,22,23,21]),ja=new n.BufferGeometry;ja.setAttribute("position",new n.BufferAttribute(Ha,3)),ja.setIndex(new n.BufferAttribute(_a,1));var Ga=function(){function e(){this.material=new n.ShaderMaterial({vertexShader:"\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\nvoid main() {\n vec4 transformed = vec4(position, 1.0);\n #if defined(USE_PANO_VIDEO)\n worldPosition = (modelMatrix * transformed).xyz;\n #endif\n gl_Position = projectionMatrix * modelViewMatrix * transformed;\n}\n",fragmentShader:"\nuniform vec2 size;\nuniform mat4 matrix;\nuniform float alpha;\nuniform sampler2D map;\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n#include <common>\nvoid main() {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n #if defined(USE_PANO_VIDEO)\n vec3 cameraToVertex = worldPosition - cameraPosition;\n vec4 mapCoods = vec4(cameraToVertex, 1.0) * matrix;\n vec2 uv = vec2(\n 0.5 + mapCoods.x / mapCoods.z / size.x,\n 0.5 - mapCoods.y / mapCoods.z / size.y\n );\n vec4 videoColor = texture2D(map, uv);\n float match = (1.0 - step(0.0, mapCoods.z)) * (1.0 - step(0.5, abs(uv.x - 0.5))) * (1.0 - step(0.5, abs(uv.y - 0.5)));\n float blendAlpha = clamp(0.0, 1.0, 5.0 * (1.0 - clamp(distance(uv, vec2(0.5, 0.5)) / 0.55 , 0.0, 1.0)));\n gl_FragColor = vec4(videoColor.rgb, match * blendAlpha * alpha);\n #endif\n}\n",uniforms:{size:new n.Uniform(null),matrix:new n.Uniform(null),alpha:new n.Uniform(null),map:new n.Uniform(null)},depthTest:!1,depthWrite:!1,defines:{USE_PANO_VIDEO:!1},blending:n.CustomBlending,blendSrc:n.SrcAlphaFactor,blendDst:n.OneMinusSrcAlphaFactor,blendSrcAlpha:n.OneFactor,blendDstAlpha:n.OneMinusSrcAlphaFactor}),this.object=new n.Mesh(ja,this.material),this.object.visible=!1,this.object.renderOrder=-1,this.object.frustumCulled=!1,this.object.name="pano-video",this.alphaMotion=new Io({alpha:0})}return e.prototype.setMaterial=function(e){e?(this.material.uniforms.size.value=e.size,this.material.uniforms.matrix.value=e.matrix,this.material.uniforms.map.value=e.map,this.alphaMotion.set({alpha:e.alpha},500).catch(fe),this.material.uniforms.alpha.value=e.alpha):(this.material.uniforms.size.value=null,this.material.uniforms.matrix.value=null,this.material.uniforms.map.value=null,this.alphaMotion.set({alpha:0},0).catch(fe));var t=null!==e;t!==this.material.defines.USE_PANO_VIDEO&&(this.material.defines.USE_PANO_VIDEO=t,this.material.needsUpdate=!0,this.object.visible=null!==e)},e.prototype.updateTime=function(e){this.alphaMotion.ended||(this.alphaMotion.update(e),this.material.uniforms.alpha.value=this.alphaMotion.value.alpha)},e.prototype.dispose=function(){this.material.dispose()},e}(),Ka=(new n.Matrix4).makeRotationAxis(new n.Vector3(0,1,0),Math.PI),Wa=new n.Vector3(-1,1,1),Ya=function(){function e(e){void 0===e&&(e=0),this.width=e,this.pool=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.pool.length},enumerable:!1,configurable:!0}),e.prototype.create=function(){return new n.WebGLCubeRenderTarget(this.width,{stencilBuffer:!1,depthBuffer:!1})},e.prototype.pop=function(){var e=this.pool.pop();return e||this.create()},e.prototype.push=function(e){-1===this.pool.indexOf(e)&&this.pool.push(e)},e.prototype.clear=function(){for(var e=0,t=this.pool;e<t.length;e++){t[e].dispose()}this.pool.length=0},e}(),Xa=function(e){function t(r){var n,i,o,a,s=this,l=t.parseArgs(r);(s=e.call(this,l)||this).TILED_CUBE_TEXTURE_LEVEL=2,s.mode="Panorama",s.tileLevel=0,s.initAnimationed=!1,s.maxAccessibleDistance=l.maxAccessibleDistance,s.panoTapTriggerRadius=l.panoTapTriggerRadius,s.panoCircleMeshCreator=l.panoCircleMeshCreator,s.tileLevelForFov=l.tileLevelForFov,s.luminanceAdaptiveEffectEnable=l.luminanceAdaptiveEffectEnable,s.colorCubeRenderTargetPool=new Ya,s.luminanceCubeRenderTargetPool=new Ya;var u=s.models.getMaterial()||{},c=u.pano0,d=u.pano1;c&&(null==d?void 0:d.map)!==c.map&&(s.models.setMaterial({pano0:d}),c.map.dispose(),c.map instanceof Dt&&c.map.cubeRenderTarget&&s.colorCubeRenderTargetPool.push(c.map.cubeRenderTarget),c.luminanceMap&&(c.luminanceMap.dispose(),c.luminanceMap instanceof Dt&&c.luminanceMap.cubeRenderTarget&&s.luminanceCubeRenderTargetPool.push(c.luminanceMap.cubeRenderTarget)));for(var p=s.colorCubeRenderTargetPool.size;p<2;p++){var h=Math.max(1024*s.TILED_CUBE_TEXTURE_LEVEL,512),f=s.colorCubeRenderTargetPool.create();f.setSize(h,h),gt(null,f,s.renderer),s.colorCubeRenderTargetPool.push(f)}s.panoMeshes={},s.updatePanoMeshes(),s.locationMotion=new Io({count:0,distance:s.camera.pose.distance,modelAlpha:null!==(i=null===(n=s.models.getMaterial())||void 0===n?void 0:n.modelAlpha)&&void 0!==i?i:0,perspToOrtho:s.camera.perspToOrtho.x,orthoDistance:s.camera.orthoDistance}),s.panoResources={},s.panoResources[s.locationMotion.keyframes[0].key=s.locationMotion.keyframes[1].key=Fi()]={panoId:Xe(s.currentPano),panoPicture:null!==(a=null===(o=s.models.getMaterial())||void 0===o?void 0:o.pano1)&&void 0!==a?a:null,position:s.camera.pose.offset.clone(),effect:"fly"};var v={allowHosts:s.works[0].allowHosts,requestProxy:s.requestProxy,networkSubscribe:s.networkSubscribe};return s.textureLoader=new Ft,s.tiling=new qa(v,s.TILED_CUBE_TEXTURE_LEVEL+1,s.imageOptions),s.scene.add(s.tiling.object),s.panoVideo=new Ga,s.scene.add(s.panoVideo.object),s}return ne(t,e),t.parseArgs=function(r){var n,i,o,a,s;if(r instanceof t)return r;var l=e.parseArgs.call(this,r);return ie(ie({},l),{maxAccessibleDistance:null!==(n=r.maxAccessibleDistance)&&void 0!==n?n:5,panoTapTriggerRadius:null!==(i=r.panoTapTriggerRadius)&&void 0!==i?i:.5,panoCircleMeshCreator:null!==(o=r.panoCircleMeshCreator)&&void 0!==o?o:function(e){return new Bo},tileLevelForFov:null!==(a=r.tileLevelForFov)&&void 0!==a?a:function(e,t){var r=2*Math.atan(Math.tan(e/180*Math.PI/2)*(t.width/t.height))/Math.PI*180,n=Math.max(t.width/r,t.height/e);return n>60?4:n>30?3:n>18?2:n>12?1:0},luminanceAdaptiveEffectEnable:null===(s=r.luminanceAdaptiveEffectEnable)||void 0===s||s})},t.initAnimationEndState=function(t){var r=this.parseArgs(t),n=e.initAnimationEndState.call(this,r);return ie(ie({},n),{mode:"Panorama"})},t.prototype.destroy=function(){var t,r;if(e.prototype.destroy.call(this),this.scene.remove(this.tiling.object),this.tiling.dispose(),this.locationMotion.dispose(),this.colorCubeRenderTargetPool.clear(),this.luminanceCubeRenderTargetPool.clear(),delete this.pendingTextureTask,this.panoMeshes)for(var n=0,i=Object.keys(this.panoMeshes);n<i.length;n++){var o=i[n],a=this.panoMeshes[o];this.helper.remove(a),a.dispose(),delete this.panoMeshes[o]}var s=this.videoTexture.image;s.pause(),s.oncanplay=function(){},s.ontimeupdate=function(){},this.scene.remove(this.panoVideo.object),this.panoVideo.setMaterial(null),this.panoVideo.dispose();for(var l=null!==(t=this.models.getMaterial())&&void 0!==t?t:{},u=l.pano0,c=l.pano1,d=0,p=Object.keys(this.panoResources);d<p.length;d++){var h=p[d],f=this.panoResources[h];if(f.panoPicture){var v=f.panoPicture.map;v&&v!==(null==u?void 0:u.map)&&v!==(null==c?void 0:c.map)&&(v.dispose(),null===(r=f.panoPicture.luminanceMap)||void 0===r||r.dispose(),f.panoPicture=null)}delete this.panoResources[h]}this.luminanceAdaptiveEffect&&(this.luminanceAdaptiveEffect.dispose(),delete this.luminanceAdaptiveEffect)},t.prototype.isReady=function(){return!0===this.locationMotion.ended&&e.prototype.isReady.call(this)},t.prototype.isTileReady=function(){var e,t,r,n=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),i=(null===(e=n.panoPicture)||void 0===e?void 0:e.map)instanceof Dt&&null!==(r=null===(t=n.panoPicture)||void 0===t?void 0:t.map.tilePending)&&void 0!==r?r:0,o=this.tiling.pedding;return this.initAnimationed&&i<=0&&o<=0},t.prototype.updateWork=function(e,r,n,i){var o=this;this.userAction=i,this.works=e;var a=t.initAnimationEndState(ie(ie({},this),{initial:{currentState:ie(ie({},this.currentPano),this.camera.pose),duration:n,state:r,userAction:i}})),s={workCode:a.workCode,panoIndex:a.panoIndex};return this.tiling.setAllowHosts(this.works[0].allowHosts),this.tiling.cleanup(),this.initAnimationed=!1,this.hideIntersectMesh(),this.updatePanoMeshes(),this.moveToPano(s,{effect:"fade",duration:n,longitude:r.longitude,latitude:r.latitude,fov:r.fov,moveEndCallback:function(){o.initAnimationed=!0},moveCancelCallback:function(){o.initAnimationed=!0}},i),!0},t.prototype.updateModel=function(e){this.models=e,this.updatePanoMeshes()},t.prototype.updateTime=function(e,t){var r,i,o,a,s,l,u,c,d,p,h=this;if(!this.destroyed){var f={},v={},A=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),g=!1;if(!1===this.cameraMotion.ended&&(this.cameraMotion.update(e),v.longitude=this.cameraMotion.value.longitude,v.latitude=this.cameraMotion.value.latitude,v.fov=this.cameraMotion.value.fov),!1===this.locationMotion.ended){this.locationMotion.update(e);var y=this.locationMotion.getKeyFrameSegment(e),b=y[0],x=y[1],w=this.panoResourceFromLocationMotionKeyframe(b),M=this.panoResourceFromLocationMotionKeyframe(x),E=(new n.Vector3).copy(w.position),C=(new n.Vector3).copy(M.position),S=this.locationMotion.value.count-x.value.count+1;f.progress=S,f.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Dr(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,M.panoPicture&&(S<1?w.panoPicture&&(f.pano0=w.panoPicture):f.pano0=M.panoPicture,f.pano1=M.panoPicture),g=f.useBlackTransition="instant"===M.effect||"montage"===M.effect,"fade"!==M.effect&&"montage"!==M.effect||(f.pano0&&w.panoPicture&&(f.pano0={map:f.pano0.map,luminanceMap:f.pano0.luminanceMap,matrix:w.panoPicture.matrix.clone().setPosition(M.position)}),E.copy(C)),v.distance=this.locationMotion.value.distance,v.offset=new n.Vector3(E.x+(C.x-E.x)*S,E.y+(C.y-E.y)*S,E.z+(C.z-E.z)*S);for(var I=[],P=[],T=0,B=this.locationMotion.keyframes;T<B.length;T++){var R=B[T],O=R.key,k=R.progress;void 0!==O&&(I.push(O),k>=this.locationMotion.progress&&P.push(O))}for(var D=0,F=Object.keys(this.panoResources);D<F.length;D++){var L=F[D];if(!(P.indexOf(L)>=0)){var Q=this.panoResources[L];if(Q.panoPicture){var N=Q.panoPicture.map,V=Q.panoPicture.luminanceMap;if(N){if(N===(null===(r=f.pano0)||void 0===r?void 0:r.map))continue;if(N===(null===(i=f.pano1)||void 0===i?void 0:i.map))continue;N instanceof Dt&&N.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(N.cubeRenderTarget),N.dispose(),V&&(V instanceof Dt&&V.cubeRenderTarget&&this.luminanceCubeRenderTargetPool.push(V.cubeRenderTarget),V.dispose()),Q.panoPicture=null}}I.indexOf(L)>=0||delete this.panoResources[L]}}this.currentPano=Je(M.panoId),this.emit("pano.moving",$o("pano.moving",{userAction:this.userAction,prevPano:Je(A.panoId),state:ie(ie(ie(ie({},Je(m.panoId)),{mode:this.mode}),oa(this.camera.pose)),v),options:{},progress:this.locationMotion.progress,error:null}))}!1===ia(f)&&((null===(o=f.pano0)||void 0===o?void 0:o.map)&&f.pano0.map instanceof Dt&&!f.pano0.map.cubeRenderTarget&&(f.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(a=f.pano0)||void 0===a?void 0:a.luminanceMap)&&f.pano0.luminanceMap instanceof Dt&&!f.pano0.luminanceMap.cubeRenderTarget&&(f.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),(null===(s=f.pano1)||void 0===s?void 0:s.map)&&f.pano1.map instanceof Dt&&!f.pano1.map.cubeRenderTarget&&(f.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(l=f.pano1)||void 0===l?void 0:l.luminanceMap)&&f.pano1.luminanceMap instanceof Dt&&!f.pano1.luminanceMap.cubeRenderTarget&&(f.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.models.setMaterial(f)),!1===ia(v)&&this.setCamera(v);var U=this.works.getResolvedObserver(this.currentPano),z=this.locationMotion.ended?this.getForwardObserverOrNot():null;if(this.camera.pose.distance>.1||g){if(U)for(var q=0,H=Object.keys(this.panoMeshes);q<H.length;q++){var _=H[q];(X=this.panoMeshes[_]).setOpacity(0),X.setCurrent(!1),X.updateTime&&X.updateTime(e,t)}}else if(U){var j=na(U.visibleIds,(function(e){var t=h.works.getResolvedObserver(e);return t?U.standingPosition.distanceTo(t.standingPosition):1/0}),!0)[1];j=Dr(j,2.5,1/0);for(var G=U.visibleIds.concat(Xe(this.currentPano)),K=this.camera.getDirection(new n.Vector3),W=0,Y=Object.keys(this.panoMeshes);W<Y.length;W++){_=Y[W];var X=this.panoMeshes[_],J=this.works.getResolvedObserver(_);if(-1===G.indexOf(_))X.setCurrent(!1),X.setOpacity(0);else if(J)if(J.loadable||J.active){var Z=X.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);X.setCurrent(!X.loading&&0===X.progress&&null!==z&&z.panoId===_),X.setOpacity(Z<.01?0:Dr(j/Z*1.2,.4,.85));var $=this.camera.position.clone().setY(X.position.y),ee=(new n.Vector3).copy(X.position).sub($).normalize();if(_===Xe(this.currentPano)){var te=Dr((.5-$.distanceTo(X.position))/.5,0,1);ee.multiplyScalar(1-te).add(K.clone().multiplyScalar(te))}ee.length()>0&&X.quaternion.setFromEuler(new n.Euler(0,Math.atan2(ee.x,ee.z),0))}else X.setCurrent(!1),X.setOpacity(0);else X.setCurrent(!1),X.setOpacity(0);X.updateTime&&X.updateTime(e,t)}}var re=this.tileLevel=function(){if(!1===h.tileLevelForFov)return 0;var e=h.renderer.getDrawingBufferSize(new n.Vector2);e.width*=h.scissor.width,e.height*=h.scissor.height;var t=m.panoId,r=h.works.getResolvedObserver(t),i=h.imageOptions.size;if(void 0===i&&r){var o=r.images.up.match(/\/cube_(\d+)\//);o&&(i=Number(o[1]))}void 0===i&&(i=2048);var a=0;i>=1024&&(a=1),i>=2048&&(a=2),i>=4096&&(a=3),i>=8192&&(a=4);var s=h.tileLevelForFov(h.camera.fov,e);return s>a?s:0}(),ne=function(){var e=h.camera.quaternion.clone(),t=h.works.getResolvedObserver(m.panoId),r=null!=t?t:U;r&&e.premultiply(r.quaternion.clone().inverse());var i=(new n.Matrix4).makeRotationFromQuaternion(e),o=(new n.Matrix4).getInverse(i);return(new n.Frustum).setFromProjectionMatrix((new n.Matrix4).multiplyMatrices(h.camera.projectionMatrix,o))}();m.panoId===Xe(this.currentPano)&&((null===(u=m.panoPicture)||void 0===u?void 0:u.map)instanceof Dt&&(m.panoPicture.map.update(ne,re),!0===m.panoPicture.map.needsRender&&(m.panoPicture.map.needsRender=!1,this.needsRender=!0)),(null===(c=m.panoPicture)||void 0===c?void 0:c.luminanceMap)instanceof Dt&&(m.panoPicture.luminanceMap.update(ne,re),!0===m.panoPicture.luminanceMap.needsRender&&(m.panoPicture.luminanceMap.needsRender=!1,this.needsRender=!0)));var oe=this.tiling.object.visible;if(this.initAnimationed){var ae=m.panoId,se=this.works.getResolvedObserver(ae);se&&qo(this.camera.position,se.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==ae&&this.tiling.cleanup(),this.tiling.panoId=ae,this.tiling.setResource(null!==(p=null===(d=se.images)||void 0===d?void 0:d.tiles)&&void 0!==p?p:[],this.enableIOSEDR&&se.images.luminance?se.images.luminance:null),this.tiling.setAllowHosts(se.work.allowHosts),this.tiling.setNetworkSubscribe(this.networkSubscribe),this.tiling.setRequestProxy(this.requestProxy),this.tiling.setRotation(se.quaternion),this.tiling.setPosition(se.position),re>this.TILED_CUBE_TEXTURE_LEVEL?this.tiling.update(ne,re,e):this.tiling.update(ne,0,e)):this.tiling.object.visible=!1}else this.tiling.object.visible=!1;oe!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0),this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(e)}},t.prototype.render=function(){var t=this.works.getResolvedObserver(this.currentPano);t&&t.video&&(this.needsRender=!0),e.prototype.render.call(this)},t.prototype.postProcessing=function(e,t){if(!this.destroyed)return"luminance"===t?(this.luminanceAdaptiveEffect||(this.luminanceAdaptiveEffect=new Ra(this.renderer,this.scene,this.camera,this.models),this.luminanceAdaptiveEffect.enable=this.luminanceAdaptiveEffectEnable),this.luminanceAdaptiveEffect.render(e)):void 0},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(Ae())[1],t=this.locationMotion.getKeyFrameSegment(Ae())[1],r=this.panoResourceFromLocationMotionKeyframe(t),n=this.works.getResolvedObserver(r.panoId);return{workCode:n?n.work.workCode:this.currentPano.workCode,panoIndex:n?n.panoIndex:this.currentPano.panoIndex,mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:n?n.position.clone():this.camera.position.clone(),distance:this.locationMotion.value.distance}},t.prototype.moveToPano=function(e,t,r){var i,o,a,s,l=this;this.userAction=r,this.stopMomentumMovement();var u=this.works.getResolvedObserver(e);if(!u)throw new Error("Invalid PanoId ".concat(JSON.stringify(e)));var c=this.imageOptions.size;if(void 0===c&&u){var d=u.images.up.match(/\/cube_(\d+)\//);d&&(c=Number(d[1]))}void 0===c&&(c=2048);var p=this.imageOptions.transform,h=ie({key:"pano.".concat(u.panoId)},Zn(this.imageOptions,["format","size","quality","sharpen","mappings"])),f=u.images,v=null!==(o=null===(i=u.images.tiles)||void 0===i?void 0:i.filter((function(e){return e.size>c})))&&void 0!==o?o:null,A=p,m={key:"pano_luminance.".concat(u.panoId),size:h.size?h.size/2:1024},g=this.enableIOSEDR&&u.images.luminance?u.images.luminance:null,y=function(){if(!u.images.tiles)return null;if(!g)return null;var e=g.up.match(/\/cube_(\d+)\//),t=!!e&&Number(e[1]);return!1===t?null:null==v?void 0:v.map((function(e){return{level:e.level,size:t,back:g.back,front:g.front,left:g.left,right:g.right,up:g.up,down:g.down}}))}(),b="pano:"+ei([f,h,p]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===b)return;var x=this.pendingTextureTask.panoId;null===(a=this.panoMeshes[x])||void 0===a||a.setProgress(0),this.emit("pano.texture.abort",$o("pano.texture.abort",{error:null,progress:0,meta:null,pano:u.pano})),this.pendingTextureTask.onError(new Error("texture aborted"))}var w="move-to-pano-"+u.panoId;this.pending.add(w);var M,E=this.models.getMaterial()||{},C=E.pano0,S=E.pano1;if(C&&C.map.name===b&&null!==C.luminanceMap===this.enableIOSEDR?M=C:(null==S?void 0:S.map.name)===b&&null!==S.luminanceMap===this.enableIOSEDR&&(M=S),M){var I={panoId:u.panoId,effect:null!==(s=t.effect)&&void 0!==s?s:"fly",panoPicture:{map:M.map,luminanceMap:M.luminanceMap,matrix:(new n.Matrix4).compose(u.position,u.quaternion,Wa)},position:u.position.clone()};Ne.shared.add((function(){l.pending.delete(w),l.doMoveToPano(u.pano,I,t)}),!0,1)}else{this.pendingTextureTask={panoId:u.panoId,hash:b,onLoad:function(e,r){var i,o;if(l.pending.delete(w),l.destroyed)e.body.dispose();else{e.body.name=b;var a={panoId:u.panoId,effect:null!==(i=t.effect)&&void 0!==i?i:"fly",panoPicture:{map:e.body,luminanceMap:null!==(o=null==r?void 0:r.body)&&void 0!==o?o:null,matrix:(new n.Matrix4).compose(u.position,u.quaternion,Wa)},position:u.position.clone()};l.doMoveToPano(u.pano,a,t)}},onError:function(e){l.pending.delete(w);var r=ie(ie(ie({},u.pano),{mode:l.mode}),oa(l.camera.pose));l.emit("pano.error",$o("pano.error",{error:e,userAction:l.userAction,options:t,prevPano:l.currentPano,progress:0,state:r})),l.emit("pano.cancel",$o("pano.cancel",{error:null,userAction:l.userAction,options:t,prevPano:l.currentPano,progress:0,state:r})),t.moveCancelCallback&&t.moveCancelCallback()}};var P=this.panoMeshes[u.panoId];P&&P.tap&&P.tap(),Promise.all([this.tileLevelForFov&&v&&v.length?this.textureLoader.loadTiledCubeTexture(f,v,{tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:p,options:h},format:n.RGBAFormat,viaAjax:!0},void 0,void 0,(function(e){var t,r;l.emit("pano.texture.progress",$o("pano.texture.progress",{error:null,progress:e,meta:null,pano:u.pano})),(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===b&&(null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(e))}),this.renderer):this.textureLoader.loadCubeTexture(f,{imageURL:{transform:p,options:h},format:n.RGBAFormat,viaAjax:!0},void 0,void 0,(function(e){var t,r;l.emit("pano.texture.progress",$o("pano.texture.progress",{error:null,progress:e,meta:null,pano:u.pano})),(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===b&&(null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(e))}),this.renderer),g?this.tileLevelForFov&&y&&y.length?this.textureLoader.loadTiledCubeTexture(g,y,{tileImageSize:256,tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:A,options:m}},void 0,void 0,void 0,this.renderer).catch((function(){return null})):this.textureLoader.loadCubeTexture(g,{imageURL:{transform:A,options:m}},void 0,void 0,void 0,this.renderer).catch((function(){return null})):Promise.resolve(null)]).then((function(e){var t,r,n=e[0],i=e[1];(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===b?(l.pendingTextureTask.onLoad(n,i),null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(0),delete l.pendingTextureTask,l.emit("pano.texture.success",$o("pano.texture.success",{error:null,progress:1,meta:n.meta,pano:u.pano}))):(n.body.dispose(),null==i||i.body.dispose())})).catch((function(e){var t,r;(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===b&&(l.pendingTextureTask.onError(e),null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(0),delete l.pendingTextureTask,l.emit("pano.texture.error",$o("pano.texture.error",{error:e,progress:0,meta:null,pano:u.pano})),l.emit("error",e))})),this.emit("pano.texture.load",$o("pano.texture.load",{error:null,progress:0,meta:null,pano:u.pano}))}},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise((function(r){var n=e.initial;n.state,n.currentState;var i=n.duration,o=n.userAction;e.userAction=o;var a=t.initAnimationEndState(e),s={workCode:a.workCode,panoIndex:a.panoIndex},l=!1;e.moveToPano(s,{longitude:a.longitude,latitude:a.latitude,fov:a.fov,duration:i,moveStartCallback:function(t){l=!0,e.emit("initAnimation.start",$o("initAnimation.start",{state:t,userAction:e.userAction}))},moveEndCallback:function(t){e.emit("initAnimation.end",$o("initAnimation.end",{state:t,userAction:e.userAction})),e.initAnimationed=!0,r()},moveCancelCallback:function(){var t=ie(ie(ie({},s),{mode:e.mode}),oa(e.camera.pose));!1===l&&e.emit("initAnimation.start",$o("initAnimation.start",{state:t,userAction:e.userAction})),e.emit("initAnimation.end",$o("initAnimation.end",{state:t,userAction:e.userAction})),e.initAnimationed=!0,r()}},o)}))},t.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},t.prototype.locationMotionKeyframesLength=function(e){for(var t=0,r=1;r<e.length;r++){var n=this.panoResourceFromLocationMotionKeyframe(e[r-1]).position,i=this.panoResourceFromLocationMotionKeyframe(e[r]).position;t+=n.distanceTo(i)*(e[r].value.count-e[r-1].value.count)}return t},t.prototype.updatePanoMeshes=function(){for(var e=this,t={},r=0,n=Object.keys(this.panoMeshes);r<n.length;r++){var i=n[r],o=this.panoMeshes[i];t[i]=o,delete this.panoMeshes[i]}for(var a=1,s={},l=function(t){var r=na(t.accessibleIds,(function(r){var n=e.works.getResolvedObserver(r);return n?Dr(n.standingPosition.distanceTo(t.standingPosition),1,1/0):1/0}),!0)[1];void 0===s[t.panoId]&&(s[t.panoId]=r)},u=0,c=this.works.resolvedObservers;u<c.length;u++){l(f=c[u])}var d=Object.keys(s).map((function(e){return s[e]}));d.length&&(a=Dr(.6*(d.reduce((function(e,t){return e+t}),0)/d.length),1,3));for(var p=0,h=this.works.resolvedObservers;p<h.length;p++){var f;o=void 0;t[(f=h[p]).panoId]?(!0===(o=t[f.panoId]).loading&&!1===f.loadable&&o.setLoading(!1),delete t[f.panoId]):((o=this.panoCircleMeshCreator(f.pano)).name="PanoCircleMesh_"+f.panoId,this.helper.add(o)),o.scale.set(a,1,a),o.position.copy(f.standingPosition),this.panoMeshes[f.panoId]=o}for(var v=0,A=Object.keys(t);v<A.length;v++){var m=A[v];this.helper.remove(t[m]),t[m].dispose(),delete t[m]}},t.prototype.doMoveToPano=function(e,t,r){var i,o,a,s,l=this;void 0===r&&(r={});var u=Ae(),c=Fi();this.tiling.cleanup(),this.panoResources[c]=t;var d,p,h;if(this.locationMotion.ended){var f=this.locationMotion.getKeyFrameSegment(u);f[0];var v=f[1],A=this.locationMotion.value,m=(null!==(i=this.panoResourceFromLocationMotionKeyframe(v))&&void 0!==i?i:this.camera).position,g=t.position;d=Math.max(m.distanceTo(g),1),p=[{key:v.key,progress:0,value:ie(ie({},A),{count:0})},{key:c,progress:1,value:{distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0,count:1}}],h=0}else{var y=this.locationMotion.getKeyFrameSegment(u),b=y[0],x=(v=y[1],A=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(b).position),w=(m=this.panoResourceFromLocationMotionKeyframe(v).position,g=t.position,v.value.count-A.count),M=Math.max(x.distanceTo(m),1)*w;d=M+Math.max(m.distanceTo(g),1),p=[{key:b.key,progress:0,value:ie({},A)},{key:v.key,progress:M/d,value:v.value},{key:c,progress:1,value:{count:v.value.count+1,distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0}}];var E=this.locationMotionKeyframesLength(this.locationMotion.keyframes),C=this.locationMotionKeyframesLength(p);h=0===E||0===E?0:this.locationMotion.getProgressVelocity(u)*E/C}var S=this.calculateMovingDuration(r.duration,"fade"===r.effect||"montage"===r.effect?0:d),I={longitude:r.longitude,latitude:r.latitude,fov:r.fov},P=ie(ie({},e),{mode:this.mode,longitude:null!==(o=I.longitude)&&void 0!==o?o:this.camera.pose.longitude,latitude:null!==(a=I.latitude)&&void 0!==a?a:this.camera.pose.latitude,fov:null!==(s=I.fov)&&void 0!==s?s:this.camera.pose.fov,offset:t.position.clone(),distance:this.camera.pose.distance}),T=this.currentPano;this.emit("pano.moveTo",$o("pano.moveTo",{options:r,prevPano:T,progress:0,state:P,userAction:this.userAction,error:null})),r.moveStartCallback&&r.moveStartCallback(P),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=fe,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),this.cameraMotion.set(I,S).catch(fe),this.locationMotion.setKeyframes(p,S,h).then((function(){var t,i,o=ie(ie({},e),{mode:l.mode,longitude:l.camera.pose.longitude,latitude:l.camera.pose.latitude,fov:l.camera.pose.fov,offset:l.camera.pose.offset.clone(),distance:l.camera.pose.distance});l.emit("pano.arrived",$o("pano.arrived",{options:r,prevPano:T,progress:1,state:o,userAction:l.userAction,error:null})),r.moveEndCallback&&r.moveEndCallback(o);var a=l.works.getResolvedObserver(e);if(a&&a.video&&l.videoTexture&&l.videoTexture.image instanceof HTMLVideoElement){var s=Ka.clone().multiply(null!==(i=null===(t=l.models.getMaterial().pano1)||void 0===t?void 0:t.matrix)&&void 0!==i?i:new n.Matrix4).multiply(a.video.matrix),u={map:l.videoTexture,size:a.video.size,matrix:s,alpha:1},c=Fi(),d=l.videoTexture.image;d.setAttribute("uuid",c),ga().then((function(e){e&&a.video&&d.getAttribute("uuid")===c&&(d.oncanplay=function(){d.oncanplay=fe,d.play()},d.ontimeupdate=function(){d.currentTime>.5&&(d.ontimeupdate=fe,l.panoVideo.setMaterial(u))},d.src=a.video.source)})).catch((function(){d.removeAttribute("uuid")}))}}),(function(){l.emit("pano.cancel",$o("pano.cancel",{options:r,prevPano:T,progress:0,state:P,userAction:l.userAction,error:null})),r.moveCancelCallback&&r.moveCancelCallback()}))},t.prototype.getForwardObserverOrNot=function(e){var t=this,r=this.works.getResolvedObserver(this.currentPano);if(!r)return null;var i=null!=e?e:new n.Raycaster(this.camera.position.clone(),this.camera.getDirection(new n.Vector3)),o=r.standingPosition.clone();if(r.position.distanceTo(i.ray.origin)>1){var a=this.models.intersectRaycaster(new n.Raycaster(i.ray.origin,new n.Vector3(0,-1,0)))[0];a&&a.distance<=2?o.copy(a.point):o.copy(i.ray.origin).add(new n.Vector3(0,-1.5,0))}var s=this.models.intersectRaycaster(i)[0],l=(s?s.point:i.ray.origin.clone().add(i.ray.direction.clone().normalize().multiplyScalar(3))).clone().sub(o).normalize();if(0===l.length())return null;for(var u=r.accessibleIds.filter((function(e){if(e===Xe(t.currentPano))return!1;var r=t.works.getResolvedObserver(e);if(!r)return!1;var n=r.standingPosition.clone().project(t.camera);return!(Math.abs(n.z)>1)&&(!(Math.abs(n.x)>1)&&(!(Math.abs(n.y)>1)&&(r.loadable||r.active)))})),c=u.slice().sort((function(e,r){return t.works.getResolvedObserver(e).standingPosition.clone().distanceTo(o)-t.works.getResolvedObserver(r).standingPosition.clone().distanceTo(o)})),d=0,p=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];d<p.length;d++)for(var h=p[d],f=0,v=c;f<v.length;f++){var A=v[f],m=this.works.getResolvedObserver(A);if(m){var g=m.standingPosition.clone().sub(o);if(g&&0!==g.length()&&l.angleTo(g)<h)return m}}return null},t.prototype.onTapGesture=function(e){var t,r=this;if(this.userAction=e.userAction,this.stopMomentumMovement(),this.initAnimationed){if(!this.locationMotion.ended)if(this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]).panoId!==Xe(this.currentPano))return;var i=e.center.raycaster,o=this.camera.getDirection(new n.Vector3).setY(0),a=null,s=this.works.getResolvedObserver(this.currentPano);if(s){var l=s.accessibleIds.filter((function(e){if(e===Xe(r.currentPano))return!1;var t=r.works.getResolvedObserver(e);return!!t&&(!(t.position.distanceTo(r.camera.position)>r.maxAccessibleDistance)&&(t.loadable||t.active))})),u=this.models.intersectRaycaster(i)[0];if(u){var c=na(l,(function(e){var t=r.works.getResolvedObserver(e);return t?t.standingPosition.clone().distanceTo(u.point):1/0}),!0),d=c[0],p=c[1];d&&p<this.panoTapTriggerRadius&&(a=null!==(t=this.works.getResolvedObserver(d))&&void 0!==t?t:null)}a||(a=this.getForwardObserverOrNot(i));for(var h=0,f=this.locationMotion.keyframes;h<f.length;h++){var v=f[h],A=this.panoResourceFromLocationMotionKeyframe(v);if(!(v.progress<this.locationMotion.progress)&&(a&&A.panoId===a.panoId)){a=null;break}}if(a){for(var m={},g=Math.PI/6,y=Math.PI/12,b=a.position.clone().setY(0).sub(s.position.clone().setY(0)).normalize(),x=[],w=0,M=a.accessibleIds;w<M.length;w++){var E=Je(d=M[w]);if(!Ze(E,this.currentPano)&&!Ze(E,a.pano)){var C=this.works.getResolvedObserver(d);if(C){var S=C.position.clone().sub(a.position).setY(0);b.angleTo(S)<g&&x.push(S)}}}var I=(x.length>0?x:ue(ue([],[],!0),[],!0)).slice().sort((function(e,t){return e.angleTo(b)-t.angleTo(b)}))[0];I&&I.angleTo(o)>y&&(m.longitude=Math.atan2(-I.x,-I.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(m.latitude=Dr(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(m.fov=this.defaultFov);var P=ie({},e.state);if(P.workCode=a.pano.workCode,P.panoIndex=a.pano.panoIndex,void 0!==m.longitude&&(P.longitude=m.longitude),void 0!==m.latitude&&(P.latitude=m.latitude),void 0!==m.fov&&(P.fov=m.fov),P.distance=0,P.offset=a.position.clone(),e.state=P,this.emit("gesture.tap",e),!e.defaultPrevented){if(this.emit("pano.select",$o("pano.select",{prevPano:this.currentPano,state:P,userAction:e.userAction,options:m,progress:0,error:null})),a&&!a.active){var T=a.panoId;this.panoMeshes[T]&&(this.panoMeshes[T].setDisabled(!1),this.panoMeshes[T].setLoading(!0))}a&&a.active&&this.emit("pano.request",$o("pano.request",{userAction:e.userAction,prevPano:this.currentPano,progress:0,state:P,options:m,error:null}))}}else this.emit("gesture.tap",e),e.defaultPrevented||!0===this.locationMotion.ended&&this.cameraBounce()}}},t}(ma),Ja=Math.PI/180,Za=180/Math.PI,$a=.001,es=1,ts=function(){var e="undefined"!=typeof navigator&&/iPad|iPhone|iPod/.test(navigator.platform);return function(){return e}}(),rs=function(){var e="undefined"!=typeof navigator&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent);return function(){return e}}(),ns=function(){var e="undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("Firefox")&&-1!==navigator.userAgent.indexOf("Android");return function(){return e}}(),is=function(){var e="undefined"!=typeof navigator?navigator.userAgent.match(/.*Chrome\/([0-9]+)/):null,t=e?parseInt(e[1],10):null;return function(){return t}}(),os=function(){var e=!1;if(65===is()){var t="undefined"!=typeof navigator?navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/):null;if(t){var r=t[1].split(".");r[0],r[1];var n=r[2],i=r[3];e=3325===parseInt(n,10)&&parseInt(i,10)<148}}return function(){return e}}(),as=function(){var e=ts()&&rs()&&"undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("13_4");return function(){return e}}(),ss=function(){var e="undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("R7 Build");return function(){return e}}();function ls(){var e="undefined"!=typeof window&&(90==window.orientation||-90==window.orientation);return ss()?!e:e}var us,cs=(us={},function(e,t){void 0===us[e]&&(console.warn("cardboard: "+t),us[e]=!0)});function ds(e){var t,r=e.indexOf("://");t=-1!==r?r+3:0;var n=e.indexOf("/",t);return-1===n&&(n=e.length),e.substring(0,n)}var ps,hs=function(e,t,r){var n,i,o,a,s,l,u,c,d,p,h,f,v,A,m,g,y,b,x;n=e,a=(i=t)?i[0]:0,s=i?i[1]:0,l=i?i[2]:0,u=i?i[3]:1,h=a*(c=a+a),f=a*(d=s+s),v=a*(p=l+l),A=s*d,m=s*p,g=l*p,y=u*c,b=u*d,x=u*p,n[0]=1-(A+g),n[1]=f+x,n[2]=v-b,n[3]=0,n[4]=f-x,n[5]=1-(h+g),n[6]=m+y,n[7]=0,n[8]=v+b,n[9]=m-y,n[10]=1-(h+A),n[11]=0,n[12]=o?o[0]:0,n[13]=o?o[1]:0,n[14]=o?o[2]:0,n[15]=1,r&&function(e,t,r){var n,i,o,a,s,l,u,c,d,p,h,f,v=r[0],A=r[1],m=r[2];t===e?(e[12]=t[0]*v+t[4]*A+t[8]*m+t[12],e[13]=t[1]*v+t[5]*A+t[9]*m+t[13],e[14]=t[2]*v+t[6]*A+t[10]*m+t[14],e[15]=t[3]*v+t[7]*A+t[11]*m+t[15]):(n=t[0],i=t[1],o=t[2],a=t[3],s=t[4],l=t[5],u=t[6],c=t[7],d=t[8],p=t[9],h=t[10],f=t[11],e[0]=n,e[1]=i,e[2]=o,e[3]=a,e[4]=s,e[5]=l,e[6]=u,e[7]=c,e[8]=d,e[9]=p,e[10]=h,e[11]=f,e[12]=n*v+s*A+d*m+t[12],e[13]=i*v+l*A+p*m+t[13],e[14]=o*v+u*A+h*m+t[14],e[15]=a*v+c*A+f*m+t[15])}(e,e,r),function(e,t){var r=t[0],n=t[1],i=t[2],o=t[3],a=t[4],s=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],h=t[11],f=t[12],v=t[13],A=t[14],m=t[15],g=r*s-n*a,y=r*l-i*a,b=r*u-o*a,x=n*l-i*s,w=n*u-o*s,M=i*u-o*l,E=c*v-d*f,C=c*A-p*f,S=c*m-h*f,I=d*A-p*v,P=d*m-h*v,T=p*m-h*A,B=g*T-y*P+b*I+x*S-w*C+M*E;B&&(B=1/B,e[0]=(s*T-l*P+u*I)*B,e[1]=(i*P-n*T-o*I)*B,e[2]=(v*M-A*w+m*x)*B,e[3]=(p*w-d*M-h*x)*B,e[4]=(l*S-a*T-u*C)*B,e[5]=(r*T-i*S+o*C)*B,e[6]=(A*b-f*M-m*y)*B,e[7]=(c*M-p*b+h*y)*B,e[8]=(a*P-s*S+u*E)*B,e[9]=(n*S-r*P-o*E)*B,e[10]=(f*w-v*b+m*g)*B,e[11]=(d*b-c*w-h*g)*B,e[12]=(s*C-a*I-l*E)*B,e[13]=(r*I-n*C+i*E)*B,e[14]=(v*y-f*x-A*g)*B,e[15]=(c*x-d*y+p*g)*B)}(e,e)},fs=function(){function e(e,t){void 0===e&&(e=new n.Vector3),void 0===t&&(t=0),this.sample=e,this.timestampS=t}return e.prototype.set=function(e,t){this.sample=e,this.timestampS=t},e.prototype.copy=function(e){this.set(e.sample,e.timestampS)},e}(),vs=function(){function e(e,t){this.kFilter=e,this.isDebug=t,this.currentAccelMeasurement=new fs,this.currentGyroMeasurement=new fs,this.previousGyroMeasurement=new fs,ts()?this.filterQ=new n.Quaternion(-1,0,0,1):this.filterQ=new n.Quaternion(1,0,0,1),this.previousFilterQ=new n.Quaternion,this.previousFilterQ.copy(this.filterQ),this.accelQ=new n.Quaternion,this.isOrientationInitialized=!1,this.estimatedGravity=new n.Vector3,this.measuredGravity=new n.Vector3,this.gyroIntegralQ=new n.Quaternion}return e.prototype.addAccelMeasurement=function(e,t){this.currentAccelMeasurement.set(e,t)},e.prototype.addGyroMeasurement=function(e,t){this.currentGyroMeasurement.set(e,t);var r,n=t-this.previousGyroMeasurement.timestampS;r=n,isNaN(r)||r<=$a||r>es||this.run_(),this.previousGyroMeasurement.copy(this.currentGyroMeasurement)},e.prototype.getOrientation=function(){return this.filterQ},e.prototype.run_=function(){if(!this.isOrientationInitialized)return this.accelQ=this.accelToQuaternion_(this.currentAccelMeasurement.sample),this.previousFilterQ.copy(this.accelQ),void(this.isOrientationInitialized=!0);var e=this.currentGyroMeasurement.timestampS-this.previousGyroMeasurement.timestampS,t=this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample,e);this.gyroIntegralQ.multiply(t),this.filterQ.copy(this.previousFilterQ),this.filterQ.multiply(t);var r=new n.Quaternion;r.copy(this.filterQ),r.inverse(),this.estimatedGravity.set(0,0,-1),this.estimatedGravity.applyQuaternion(r),this.estimatedGravity.normalize(),this.measuredGravity.copy(this.currentAccelMeasurement.sample),this.measuredGravity.normalize();var i,o=new n.Quaternion;o.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),o.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",Za*((i=o).w>1?0:2*Math.acos(i.w)),this.estimatedGravity.x.toFixed(1),this.estimatedGravity.y.toFixed(1),this.estimatedGravity.z.toFixed(1),this.measuredGravity.x.toFixed(1),this.measuredGravity.y.toFixed(1),this.measuredGravity.z.toFixed(1));var a=new n.Quaternion;a.copy(this.filterQ),a.multiply(o),this.filterQ.slerp(a,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},e.prototype.accelToQuaternion_=function(e){var t=new n.Vector3;t.copy(e),t.normalize();var r=new n.Quaternion;return r.setFromUnitVectors(new n.Vector3(0,0,-1),t),r.inverse(),r},e.prototype.gyroToQuaternionDelta_=function(e,t){var r=new n.Quaternion,i=new n.Vector3;return i.copy(e),i.normalize(),r.setFromAxisAngle(i,e.length()*t),r},e}(),As=function(){function e(e,t){this.predictionTimeS=e,this.isDebug=t,this.previousQ=new n.Quaternion,this.previousTimestampS=null,this.deltaQ=new n.Quaternion,this.outQ=new n.Quaternion}return e.prototype.getPrediction=function(e,t,r){if(!this.previousTimestampS)return this.previousQ.copy(e),this.previousTimestampS=r,e;var i=new n.Vector3;i.copy(t),i.normalize();var o=t.length();if(o<20*Ja)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(Za*o).toFixed(1)),this.outQ.copy(e),this.previousQ.copy(e),this.outQ;var a=o*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(i,a),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(e),this.previousTimestampS=r,this.outQ},e}(),ms=function(){function e(e){this.coefficients=e}return e.prototype.distortInverse=function(e){for(var t=0,r=1,n=e-this.distort(t);Math.abs(r-t)>1e-4;){var i=e-this.distort(r),o=r-i*((r-t)/(i-n));t=r,r=o,n=i}return r},e.prototype.distort=function(e){for(var t=e*e,r=0,n=0;n<this.coefficients.length;n++)r=t*(r+this.coefficients[n]);return(r+1)*e},e}(),gs=function(){this.angularAcceleration=null,this.angularVelocity=null,this.linearAcceleration=null,this.linearVelocity=null,this.orientation=null,this.position=null},ys=function(){this.leftDegrees=0,this.rightDegrees=0,this.upDegrees=0,this.downDegrees=0},bs=function(){function e(e,t,r,i){this.viewer={id:"CardboardV1",label:"Cardboard I/O 2014",fov:40,interLensDistance:.06,baselineLensDistance:.035,screenLensDistance:.042,distortionCoefficients:[.441,.156],inverseCoefficients:[-.4410035,.42756155,-.4804439,.5460139,-.58821183,.5733938,-.48303202,.33299083,-.17573841,.0651772,-.01488963,.001559834]},this.device={widthMeters:.11,heightMeters:.062,bevelMeters:.004},this.depthNear=.01,this.depthFar=1e4,this.yawOnly=r,this.accelerometer=new n.Vector3,this.gyroscope=new n.Vector3,this.filter=new vs(e,i),this.posePredictor=new As(t,i),this.isFirefoxAndroid=ns(),this.isIOS=ts();var o=is();this.isDeviceMotionInRadians=!this.isIOS&&null!==o&&o<66,this.isWithoutDeviceMotion=os()||as(),this.filterToWorldQ=new n.Quaternion,ts()?this.filterToWorldQ.setFromAxisAngle(new n.Vector3(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new n.Vector3(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new n.Quaternion,this.worldToScreenQ=new n.Quaternion,this.originalPoseAdjustQ=new n.Quaternion;var a="undefined"!=typeof window?-window.orientation*Math.PI/180:0;this.originalPoseAdjustQ.setFromAxisAngle(new n.Vector3(0,0,1),a),this.setScreenTransform_(),ls()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new n.Quaternion,this.orientationOut_=new Float32Array(4),this.previousTimestampS=Date.now()}return e.prototype.getPosition=function(){return null},e.prototype.getOrientation=function(){var e;if(this.isWithoutDeviceMotion&&this._deviceOrientationQ){this.deviceOrientationFixQ=this.deviceOrientationFixQ||(i=(new n.Quaternion).setFromAxisAngle(new n.Vector3(0,0,-1),0),o=new n.Quaternion,"undefined"!=typeof window&&-90===window.orientation?o.setFromAxisAngle(new n.Vector3(0,1,0),Math.PI/-2):o.setFromAxisAngle(new n.Vector3(0,1,0),Math.PI/2),i.multiply(o)),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||((r=new n.Quaternion).setFromAxisAngle(new n.Vector3(1,0,0),-Math.PI/2),r),e=this._deviceOrientationQ;var t=new n.Quaternion;return t.copy(e),t.multiply(this.deviceOrientationFilterToWorldQ),t.multiply(this.resetQ),t.multiply(this.worldToScreenQ),t.multiplyQuaternions(this.deviceOrientationFixQ,t),this.yawOnly&&(t.x=0,t.z=0,t.normalize()),this.orientationOut_[0]=t.x,this.orientationOut_[1]=t.y,this.orientationOut_[2]=t.z,this.orientationOut_[3]=t.w,this.orientationOut_}var r,i,o,a=this.filter.getOrientation();e=this.posePredictor.getPrediction(a,this.gyroscope,this.previousTimestampS);var s=new n.Quaternion;return s.copy(this.filterToWorldQ),s.multiply(this.resetQ),s.multiply(e),s.multiply(this.worldToScreenQ),this.yawOnly&&(s.x=0,s.z=0,s.normalize()),this.orientationOut_[0]=s.x,this.orientationOut_[1]=s.y,this.orientationOut_[2]=s.z,this.orientationOut_[3]=s.w,this.orientationOut_},e.prototype.getPose=function(){var e=new gs;return e.orientation=this.getOrientation(),e},e.prototype.resetPose=function(){this.resetQ.copy(this.filter.getOrientation()),this.resetQ.x=0,this.resetQ.y=0,this.resetQ.z*=-1,this.resetQ.normalize(),ls()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},e.prototype.getFrameData=function(e){var t=this.getOrientation(),r=this.getEyeOffset(),n=this.getEyeProjectionMatrix();return e.pose.angularAcceleration=null,e.pose.angularVelocity=null,e.pose.linearAcceleration=null,e.pose.linearVelocity=null,e.pose.orientation=t,e.pose.position=null,e.timestamp=this.previousTimestampS,e.leftProjectionMatrix.set(n.left),e.rightProjectionMatrix.set(n.right),hs(e.leftViewMatrix,t,r.left),hs(e.rightViewMatrix,t,r.right),e},e.prototype.start=function(){if("undefined"==typeof window)return function(){};var e=this.onDeviceMotion_.bind(this),t=this.onOrientationChange_.bind(this),r=this.onMessage_.bind(this),n=this.onDeviceOrientation_.bind(this);return ts()&&function(){if("undefined"==typeof window)return!1;if("undefined"==typeof document)return!1;var e=window.self!==window.top,t=ds(document.referrer),r=ds(window.location.href);return e&&t!==r}()&&window.addEventListener("message",r),window.addEventListener("orientationchange",t),this.isWithoutDeviceMotion?window.addEventListener("deviceorientation",n):window.addEventListener("devicemotion",e),function(){window.removeEventListener("devicemotion",e),window.removeEventListener("deviceorientation",t),window.removeEventListener("orientationchange",t),window.removeEventListener("message",r)}},e.prototype.getEyeOffset=function(){return{left:[.5*-this.viewer.interLensDistance,0,0],right:[.5*this.viewer.interLensDistance,0,0]}},e.prototype.getEyeProjectionMatrix=function(){var e=this.getEyeFieldOfView(),t=this.depthNear,r=this.depthFar,n={left:[],right:[]},i=e.left.upDegrees*Ja,o=e.left.downDegrees*Ja,a=2/((l=e.left.leftDegrees*Ja)+(u=e.left.rightDegrees*Ja)),s=2/(i+o);n.left[0]=a,n.left[1]=0,n.left[2]=0,n.left[3]=0,n.left[4]=0,n.left[5]=s,n.left[6]=0,n.left[7]=0,n.left[8]=-(l-u)*a*.5,n.left[9]=(i-o)*s*.5,n.left[10]=r/(t-r),n.left[11]=-1,n.left[12]=0,n.left[13]=0,n.left[14]=r*t/(t-r),n.left[15]=0;var l,u;i=e.right.upDegrees*Ja,o=e.right.downDegrees*Ja,a=2/((l=e.right.leftDegrees*Ja)+(u=e.right.rightDegrees*Ja)),s=2/(i+o);return n.right[0]=a,n.right[1]=0,n.right[2]=0,n.right[3]=0,n.right[4]=0,n.right[5]=s,n.right[6]=0,n.right[7]=0,n.right[8]=-(l-u)*a*.5,n.right[9]=(i-o)*s*.5,n.right[10]=r/(t-r),n.right[11]=-1,n.right[12]=0,n.right[13]=0,n.right[14]=r*t/(t-r),n.right[15]=0,n},e.prototype.getEyeFieldOfView=function(){var e=this.viewer,t=this.device,r=new ms(e.distortionCoefficients),n=e.screenLensDistance,i=(t.widthMeters-e.interLensDistance)/2,o=e.interLensDistance/2,a=e.baselineLensDistance-t.bevelMeters,s=t.heightMeters-a,l=Za*Math.atan(r.distort(i/n)),u=Za*Math.atan(r.distort(o/n)),c=Za*Math.atan(r.distort(a/n)),d=Za*Math.atan(r.distort(s/n)),p=new ys,h=new ys;return p.leftDegrees=Math.min(l,e.fov),p.rightDegrees=Math.min(u,e.fov),p.downDegrees=Math.min(c,e.fov),p.upDegrees=Math.min(d,e.fov),h.leftDegrees=p.rightDegrees,h.rightDegrees=p.leftDegrees,h.upDegrees=p.upDegrees,h.downDegrees=p.downDegrees,{left:p,right:h}},e.prototype.onDeviceOrientation_=function(e){this._deviceOrientationQ=this._deviceOrientationQ||new n.Quaternion;var t=e.alpha,r=e.beta,i=e.gamma;t=(t||0)*Math.PI/180,r=(r||0)*Math.PI/180,i=(i||0)*Math.PI/180,this._deviceOrientationQ.setFromEuler(new n.Euler(t,r,-i,"YXZ"))},e.prototype.onDeviceMotion_=function(e){this.updateDeviceMotion_(e)},e.prototype.updateDeviceMotion_=function(e){var t=e.accelerationIncludingGravity,r=e.rotationRate,n=e.timeStamp/1e3,i=n-this.previousTimestampS;return i<0?(cs("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),void(this.previousTimestampS=n)):i<=$a||i>es?(cs("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),void(this.previousTimestampS=n)):(t&&(this.accelerometer.set(-t.x,-t.y,-t.z),r&&(ss()?this.gyroscope.set(-r.beta,r.alpha,r.gamma):this.gyroscope.set(r.alpha,r.beta,r.gamma),this.isDeviceMotionInRadians||this.gyroscope.multiplyScalar(Math.PI/180),this.filter.addGyroMeasurement(this.gyroscope,n)),this.filter.addAccelMeasurement(this.accelerometer,n)),void(this.previousTimestampS=n))},e.prototype.onOrientationChange_=function(){this.setScreenTransform_()},e.prototype.onMessage_=function(e){var t=e.data;t&&t.type&&("devicemotion"===t.type.toLowerCase()&&this.updateDeviceMotion_(t.deviceMotionEvent))},e.prototype.setScreenTransform_=function(){switch(this.worldToScreenQ.set(0,0,0,1),"undefined"!=typeof window?window.orientation:0){case 0:break;case 90:this.worldToScreenQ.setFromAxisAngle(new n.Vector3(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new n.Vector3(0,0,1),Math.PI/2)}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},e}(),xs=[0,0,.5,1],ws=[.5,0,.5,1],Ms=function(){function e(e){var t=this;this.renderer=e,this.sensor=new bs(.98,.04,!1,!1),this.scale=1,this.cameraL=new n.PerspectiveCamera,this.cameraR=new n.PerspectiveCamera;var r=this.sensor.start();this.dispose=function(){var e=t.renderer.getSize(new n.Vector2);t.renderer.setScissor(0,0,e.width,e.height),t.renderer.setViewport(0,0,e.width,e.height),t.renderer.setScissorTest(!1),r()}}return e.prototype.render=function(e,t){var r=this.renderer.getSize(new n.Vector2);if(r.width>r.height){var i=e.autoUpdate;i&&(e.updateMatrixWorld(),e.autoUpdate=!1);var o={x:Math.round(r.width*xs[0]),y:Math.round(r.height*xs[1]),width:Math.round(r.width*xs[2]),height:Math.round(r.height*xs[3])},a={x:Math.round(r.width*ws[0]),y:Math.round(r.height*ws[1]),width:Math.round(r.width*ws[2]),height:Math.round(r.height*ws[3])};this.renderer.setScissorTest(!0),this.renderer.autoClear&&this.renderer.clear(),null===t.parent&&t.updateMatrixWorld(),t.matrixWorld.decompose(this.cameraL.position,this.cameraL.quaternion,this.cameraL.scale),t.matrixWorld.decompose(this.cameraR.position,this.cameraR.quaternion,this.cameraR.scale);var s=this.sensor.getEyeOffset();this.cameraL.translateOnAxis((new n.Vector3).fromArray(s.left),this.scale),this.cameraR.translateOnAxis((new n.Vector3).fromArray(s.right),this.scale);var l=this.sensor.getEyeProjectionMatrix();this.cameraL.projectionMatrix.elements=l.left.slice(),this.cameraR.projectionMatrix.elements=l.right.slice(),this.renderer.setViewport(o.x,o.y,o.width,o.height),this.renderer.setScissor(o.x,o.y,o.width,o.height),this.renderer.render(e,this.cameraL),this.renderer.setViewport(a.x,a.y,a.width,a.height),this.renderer.setScissor(a.x,a.y,a.width,a.height),this.renderer.render(e,this.cameraR),this.renderer.setViewport(0,0,r.width,r.height),this.renderer.setScissor(0,0,r.width,r.height),this.renderer.setScissorTest(!1),i&&(e.autoUpdate=!0)}else this.renderer.render(e,t)},e.prototype.dispose=function(){},e}(),Es={zh:{TITLE:"眼镜模式",HIT:"请将手机横屏放入 VR 眼镜中"},en:{TITLE:"GLASSES MODE",HIT:"Please put the mobile phone horizontally into the VR glasses."},ja:{TITLE:"メガネモード",HIT:"携帯電話をVRメガネに水平に入れてください。"}},Cs="undefined"!=typeof navigator&&null!==(ps=Es[navigator.language.split("-")[0]])&&void 0!==ps?ps:Es.zh,Ss="\n<style>\n.$id {\n all: initial;\n position: absolute;\n overflow: hidden;\n display: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.$id-modal {\n width: 100%;\n height: 332px;\n position: absolute;\n bottom: -2px;\n left: 0;\n right: 0;\n overflow: hidden;\n pointer-events: none;\n will-change: transform;\n animation: $id-modal-fade-in 0.3s ease 1;\n}\n.$id-modal-bg {\n background: rgba(0, 0, 0, 0.75);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n}\n.$id-modal-bg-line {\n height: 1px;\n background-image: linear-gradient(\n 85deg,\n rgba(162, 177, 255, 0.3) 1%,\n rgba(120, 126, 255, 0.8) 30%,\n rgba(147, 218, 255, 0.8) 66%,\n rgba(250, 255, 184, 0.3) 92%\n );\n}\n.$id-modal-bg-wave svg {\n width: 375px;\n height: 61px;\n display: block;\n}\n.$id-modal-content {\n color: #ffffff;\n padding: 0 14px;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n overflow: hidden;\n}\n.$id-modal-content-title {\n font-size: 17px;\n font-family: sans-serif;\n line-height: 18px;\n padding: 20px 0;\n font-weight: bold;\n}\n.$id-modal-content-hit {\n font-size: 14px;\n font-family: sans-serif;\n line-height: 24px;\n opacity: 0.85;\n}\n.$id-modal-content-guide {\n position: relative;\n width: 168px;\n height: 139px;\n margin: 36px auto 0;\n}\n.$id-modal-content-guide-cardboard {\n position: absolute;\n width: 100px;\n height: 82px;\n left: 68px;\n top: 57px;\n}\n.$id-modal-content-guide-cardboard-image {\n width: 100px;\n height: 82px;\n background-image: url(".concat("data:image/png;base64,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",");\n background-size: 100%;\n background-repeat: no-repeat;\n}\n.$id-modal-content-guide-phone {\n position: absolute;\n width: 58px;\n height: 56px;\n left: 0;\n top: 0;\n}\n.$id-modal-content-guide-phone-move-x {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n will-change: transform;\n animation: $id-guide-move-x 4s 0.5s infinite;\n}\n.$id-modal-content-guide-phone-move-y {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n will-change: transform;\n animation: $id-guide-move-y 4s cubic-bezier(0.42, 0, 0.23, 0.98) 0.5s infinite;\n}\n.$id-modal-content-guide-phone-blink {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n will-change: opacity;\n animation: $id-guide-blink 4s 0.5s infinite;\n}\n.$id-modal-content-guide-phone-image {\n width: 58px;\n height: 56px;\n background-image: url(").concat("data:image/png;base64,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",');\n background-size: 100%;\n background-repeat: no-repeat;\n}\n.$id-modal-close {\n position: absolute;\n top: 20px;\n right: 14px;\n width: 14px;\n height: 14px;\n}\n.$id-modal-close svg {\n width: 14px;\n height: 14px;\n display: block;\n}\n\n@keyframes $id-modal-fade-in {\n 0% { transform: translate3d(0, 100%, 0); opacity: 0.5; }\n 100% { transform: translate3d(0, 0, 0); opacity: 1; }\n}\n@keyframes $id-guide-blink {\n 0% { opacity: 0; }\n 7% { opacity: 0; }\n 12% { opacity: 1; }\n 29% { opacity: 1; }\n 34% { opacity: 0.3; }\n 39% { opacity: 1; }\n 44% { opacity: 0.3; }\n 49% { opacity: 1; }\n 80% { opacity: 1; }\n 100% { opacity: 0; }\n}\n@keyframes $id-guide-move-x {\n 0% { transform: translate3d(0, 0, 0); }\n 57% { transform: translate3d(0, 0, 0); }\n 80% { transform: translate3d(70px, 0, 0); }\n 100% { transform: translate3d(70px, 0, 0); }\n}\n@keyframes $id-guide-move-y {\n 0% { transform: translate3d(0, 0, 0); }\n 57% { transform: translate3d(0, 0, 0); }\n 80% { transform: translate3d(0, 58px, 0); }\n 100% { transform: translate3d(0, 58px, 0); }\n}\n@media screen and (orientation: portrait) {\n .$id {\n display: block;\n }\n}\n</style>\n<div class="$id-modal">\n <div class="$id-modal-bg">\n <div class="$id-modal-bg-line"></div>\n <div class="$id-modal-bg-wave">\n <svg width="375" height="61" viewBox="0 0 375 61" version="1.1" xmlns="http://www.w3.org/2000/svg">\n <defs>\n <linearGradient x1="0" y1="0%" x2="0" y2="100%" id="$id-2y6_dj_hgp">\n <stop stop-color="#8598FF" stop-opacity="0.15" offset="0%"></stop>\n <stop stop-color="#000" stop-opacity="0" offset="100%"></stop>\n </linearGradient>\n </defs>\n <path transform="translate(187.5, 30.5) scale(-1, 1) translate(-187.5, -30.5)" fill="url(#$id-2y6_dj_hgp)" d="\nM0,1\nC83.001,1.706 140.146,4.164 171.435,8.374\nC218.369,14.688 253.467,26.308 273.002,33\nC292.536,39.691323.501,51 343.709,56\nC357.182,59.333 367.612,61 375,61\nL375,0\nL0,0\nL0,1\nZ\n"></path>\n </svg>\n </div>\n </div>\n <div class="$id-modal-content">\n <div class="$id-modal-content-title">').concat(Cs.TITLE,'</div>\n <div class="$id-modal-content-hit">').concat(Cs.HIT,'</div>\n <div class="$id-modal-content-guide">\n <div class="$id-modal-content-guide-phone">\n <div class="$id-modal-content-guide-phone-move-x">\n <div class="$id-modal-content-guide-phone-move-y">\n <div class="$id-modal-content-guide-phone-blink">\n <div class="$id-modal-content-guide-phone-image"></div>\n </div>\n </div>\n </div>\n </div>\n <div class="$id-modal-content-guide-cardboard">\n <div class="$id-modal-content-guide-cardboard-image"></div>\n </div>\n </div>\n </div>\n <div class="$id-modal-close">\n <svg width="14" height="14" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg">\n <defs>\n <radialGradient cx="50%" cy="50%" fx="50%" fy="50%" r="70%" id="$id-ho0itsc4p9">\n <stop stop-color="#FFF" stop-opacity="0.75" offset="0%"></stop>\n <stop stop-color="#FFF" stop-opacity="0.22" offset="100%"></stop>\n </radialGradient>\n </defs>\n <path transform="translate(-3, -3)" fill="url(#$id-ho0itsc4p9)" fill-rule="nonzero" d="\nM16.791,3.198\nC17.044,3.438 17.067,3.814 16.860,4.080\nL16.791,4.156\nL12.144,9.331\nC11.803,9.711 11.803,10.288 12.144,10.668\nL16.791,15.843\nC17.044,16.084 17.067,16.460 16.860,16.725\nL16.791,16.801\nC16.538,17.042 16.142,17.063 15.864,16.867\nL15.784,16.801\nL10.000,11.250\nL4.215,16.801\nL4.135,16.867\nC3.857,17.063 3.461,17.042 3.208,16.801\nL3.208,16.801\nL3.139,16.725\nC2.932,16.460 2.955,16.084 3.208,15.843\nL3.208,15.843\nL7.855,10.668\nC8.196,10.288 8.196,9.711 7.855,9.331\nL7.855,9.331\nL3.208,4.156\nL3.139,4.080\nC2.932,3.814 2.955,3.438 3.208,3.198\nC3.486,2.933 3.937,2.933 4.215,3.198\nL4.215,3.198 L9.999,8.749\nL15.784,3.198\nC16.062,2.933 16.513,2.933 16.791,3.198\nZ\n"></path>\n </svg>\n </div>\n</div>\n');function Is(e){for(var t=1,r=document.getElementsByTagName("meta"),n=0;n<r.length;n++){var i=r[n];if("viewport"===i.getAttribute("name")){var o=(i.getAttribute("content")||"").match(/initial\-scale\=([\d|\.]+)/);o&&(t=Number(o[1])),isNaN(t)&&(t=1)}}return Ss.replace(/\n/g," ").replace(/\ +/g," ").replace(/\$id/g,e).replace(/(\d+)px/g,(function(e,r){return function(e){return Math.floor(e*t)+"px"}(Number(r))}))}var Ps=new n.CircleBufferGeometry(.12,16),Ts=function(e){function t(){var t=e.call(this)||this;t.progress=0,t.opacity=0,t.loading=!1,t.current=!1,t.disabled=!1,t.currentMotion=new Io({ringScale:1.1,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}),t.opacityMotion=new Io({opacity:0}),t.loadingMotion=new Io({opacity:0}),t.disableMotion=new Io({opacity:0});var r={blending:n.CustomBlending,blendSrc:n.SrcAlphaFactor,blendDst:n.OneMinusSrcAlphaFactor,blendSrcAlpha:n.OneFactor,blendDstAlpha:n.OneMinusSrcAlphaFactor,depthWrite:!1,transparent:!0};return t.hitTestMesh=new n.Mesh(Ps,new n.MeshBasicMaterial(ie(ie({},r),{color:0,opacity:0}))),t.hitTestMesh.scale.set(1.5,1.5,1.5),t.ringMesh=new n.Mesh(Ps,new n.ShaderMaterial(ie(ie({},r),{vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nvarying vec2 vUv;\nuniform float opacity;\n\nfloat smoothDist = 0.01;\nvoid main() {\n vec2 center = vec2(0.5, 0.5);\n float dist = length(center - vUv);\n float outerDist = 0.49;\n float innerDist = 0.29;\n\n float outside = 1.0 - smoothstep(outerDist - smoothDist, outerDist, dist);\n float inside = smoothstep(innerDist, innerDist + smoothDist, dist);\n\n vec4 bg = vec4(0.576, 0.635, 1.0, 0.3);\n float gradientAlpha = clamp(abs(dist - (outerDist + innerDist) / 2.0) / (outerDist - innerDist) * 1.5 + 0.1, 0.0, 1.0);\n vec4 gradient = vec4(1.0, 1.0, 1.0, gradientAlpha);\n\n gl_FragColor = mix(bg, gradient, gradient.a);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity * outside * inside);\n}\n",uniforms:{opacity:{value:0}}}))),t.panoMesh=new n.Mesh(Ps,new n.ShaderMaterial(ie(ie({},r),{vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform float circleScale;\nuniform float circleFade;\nuniform float circleOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float opacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#define PI 3.141592653589793\n#define TAU 6.283185307179586\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n float gradient = clamp(0.98 + abs(dot(normalize(vec2(1.0, -1.0)), vUv - CENTER)) * 2.0, 0.0, 1.0);\n vec3 color = mix(vec3(0.576, 0.635, 1.0), vec3(1.0, 1.0, 1.0), circleFade * 0.5);\n return vec4(color, 1.0 * gradient * circleOpacity * outside(0.3 * circleScale));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.5 * outside(0.32 * circleScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, TAU);\n float gradient = (1.0 - smoothstep(0.0, TAU, angle)) * 0.9 + 0.1;\n return vec4(1.0, 1.0, 1.0, gradient * loadingOpacity * inside(0.2 * circleScale) * outside(0.25 * circleScale));\n}\n\nvoid main() {\n gl_FragColor = vec4(1.0, 1.0, 1.0, 0);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity);\n}\n",uniforms:{circleScale:{value:1.1},circleFade:{value:0},circleOpacity:{value:.5},loadingAngle:{value:0},loadingOpacity:{value:0},opacity:{value:0},disable:{value:0}}}))),t.add(t.hitTestMesh),t.add(t.ringMesh),t.add(t.panoMesh),t.renderOrder=1e4,t.needsRender=!0,t}return ne(t,e),t.prototype.setProgress=function(e){this.progress=e,this.setLoading(e>0)},t.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=Dr(e,0,1),this.opacityMotion.set({opacity:e},30).catch(fe))},t.prototype.setCurrent=function(e){if(this.current!==e){if(e){var t=[{progress:0,value:{ringScale:2,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.05,value:{ringScale:1,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.15,value:{ringScale:1.2,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.25,value:{ringScale:1.1,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.8,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.85,circleScale:1}},{progress:.9,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.65,circleScale:.8}},{progress:.92,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.65,circleScale:.8}},{progress:1,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.85,circleScale:1.1}}];this.currentMotion.setKeyframes(t,1500).catch(fe)}else{t=[{progress:0,value:ie({},this.currentMotion.value)},{progress:1,value:{ringScale:1.1,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}}];this.currentMotion.setKeyframes(t,200).catch(fe)}this.current=e}},t.prototype.setLoading=function(e){this.loading!==e&&(e?this.loadingMotion.setKeyframes([{progress:0,value:{opacity:0}},{progress:.3,value:{opacity:0}},{progress:1,value:{opacity:.8}}],500).catch(fe):this.loadingMotion.set({opacity:0},0).catch(fe),this.loading=e,!0===this.disabled&&this.setDisabled(!1),this.needsRender=!0)},t.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,!0===this.loading&&this.setLoading(!1),this.disableMotion.set({opacity:e?1:0},300).catch(fe),this.needsRender=!0)},t.prototype.tap=function(){return Promise.resolve()},t.prototype.updateTime=function(e,t){this.opacityMotion.update(e),this.currentMotion.update(e),this.loadingMotion.update(e);var r=this.opacityMotion.value.opacity;this.visible=0!==r;var n=this.currentMotion.value,i=n.ringScale,o=n.ringOpacity,a=n.circleFade,s=n.circleOpacity,l=n.circleScale;this.ringMesh.scale.set(i,1,i),this.ringMesh.material.uniforms.opacity.value=o*r,this.panoMesh.material.uniforms.opacity.value=r,this.panoMesh.material.uniforms.circleOpacity.value=s,this.panoMesh.material.uniforms.circleScale.value=l,this.panoMesh.material.uniforms.circleFade.value=a,this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingMotion.value.opacity,this.panoMesh.material.uniforms.disable.value=this.disableMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(2*Math.PI),this.needsRender=!0},t.prototype.dispose=function(){this.hitTestMesh.material.dispose(),this.ringMesh.material.dispose(),this.panoMesh.material.dispose()},t}(n.Object3D),Bs=function(e){function t(r){var n=this,i=t.parseArgs(r);(n=e.call(this,i)||this).mode="VRPanorama",n.cardboard=new Ms(n.renderer);var o,a,s,l=(o="five_vr_helper_"+Fi(),a=Is(o),(s=document.createElement("div")).className=o,s.innerHTML=a,s);n.helperElement=l;var u=new aa(l);return n.element.parentNode&&(n.element.parentNode.insertBefore(l,n.element),n.setHelperElementSize(),u.on("tap",(function(){return n.emit("vr.requestExit",$o("vr.requestExit",{}))}))),n.destroyHelper=function(){u.destroy(),l.parentNode&&l.parentNode.removeChild(l),delete n.helperElement},n}return ne(t,e),t.parseArgs=function(r){if(r instanceof t)return r;var n=ie(ie({},r),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return e.parseArgs.call(this,n)},t.initAnimationEndState=function(t){var r=this.parseArgs(t),n=e.initAnimationEndState.call(this,r);return ie(ie({},n),{mode:"VRPanorama"})},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.cardboard.dispose(),this.destroyHelper();for(var t=0,r=Object.keys(this.panoMeshes);t<r.length;t++){var n=r[t],i=this.panoMeshes[n];this.helper.remove(i),i.dispose(),delete this.panoMeshes[n]}},t.prototype.isReady=function(){return!1},t.prototype.updateRenderSize=function(){this.needsRender=!0,this.setHelperElementSize()},t.prototype.updatePanoMeshesVisible=function(){for(var e=this.works.getResolvedObserver(this.currentPano),t=(e?e.visibleIds:[]).concat(Xe(this.currentPano)),r=0,n=this.works.resolvedObservers;r<n.length;r++){var i=n[r],o=this.panoMeshes[i.panoId];o&&(t.indexOf(i.panoId)>=0?o.parent!==this.helper&&this.helper.add(o):o.parent===this.helper&&(this.helper.remove(o),o.setOpacity(0)))}},t.prototype.updatePanoMeshes=function(){for(var e=0,t=Object.keys(this.panoMeshes);e<t.length;e++){var r=t[e],n=this.panoMeshes[r];this.helper.remove(n),n.dispose(),delete this.panoMeshes[r]}for(var i=0,o=this.works.resolvedObservers;i<o.length;i++){var a=o[i],s=a.panoId,l=new Ts;l.name="panoSphere_".concat(s),l.position.copy(a.position),l.needsRender=!0,this.panoMeshes[s]=l}this.updatePanoMeshesVisible()},t.prototype.updateTime=function(e,t){var r,i,o,a,s,l;if(!this.destroyed){var u=this.currentPano;this.needsRender=!0;var c={},d={};if(!1===this.locationMotion.ended){this.locationMotion.update(e);var p=this.locationMotion.getKeyFrameSegment(e),h=p[0],f=p[1],v=this.panoResourceFromLocationMotionKeyframe(h),A=this.panoResourceFromLocationMotionKeyframe(f),m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),g=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),y=v.position,b=A.position,x=this.locationMotion.value.count-f.value.count+1;c.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Dr(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,c.useBlackTransition="instant"===A.effect,A.panoPicture&&(x<1?v.panoPicture&&(c.pano0=v.panoPicture):c.pano0=A.panoPicture,c.pano1=A.panoPicture),"fade"===A.effect&&(c.pano0&&v.panoPicture&&(c.pano0={map:c.pano0.map,luminanceMap:c.pano0.luminanceMap,matrix:v.panoPicture.matrix.clone().setPosition(A.position)}),y.copy(b)),c.progress=x,d.distance=this.locationMotion.value.distance,d.offset=new n.Vector3(y.x+(b.x-y.x)*x,y.y+(b.y-y.y)*x,y.z+(b.z-y.z)*x);for(var w=[],M=[],E=0,C=this.locationMotion.keyframes;E<C.length;E++){var S=C[E],I=S.key,P=S.progress;void 0!==I&&(w.push(I),P>=this.locationMotion.progress&&M.push(I))}for(var T=0,B=Object.keys(this.panoResources);T<B.length;T++){var R=B[T];if(!(M.indexOf(R)>=0)){var O=this.panoResources[R];if(O.panoPicture){var k=O.panoPicture.map;if(k){if(k===(null===(r=c.pano0)||void 0===r?void 0:r.map))continue;if(k===(null===(i=c.pano1)||void 0===i?void 0:i.map))continue;k.dispose(),O.panoPicture=null}}w.indexOf(R)>=0||delete this.panoResources[R]}}this.currentPano=Je(A.panoId),this.emit("pano.moving",$o("pano.moving",{userAction:this.userAction,prevPano:Je(m.panoId),state:ie(ie(ie(ie({},Je(g.panoId)),{mode:this.mode}),oa(this.camera.pose)),d),options:{},progress:this.locationMotion.progress,error:null}))}!1===ia(c)&&((null===(o=c.pano0)||void 0===o?void 0:o.map)&&c.pano0.map instanceof Dt&&!c.pano0.map.cubeRenderTarget&&(c.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(a=c.pano0)||void 0===a?void 0:a.luminanceMap)&&c.pano0.luminanceMap instanceof Dt&&!c.pano0.luminanceMap.cubeRenderTarget&&(c.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),(null===(s=c.pano1)||void 0===s?void 0:s.map)&&c.pano1.map instanceof Dt&&!c.pano1.map.cubeRenderTarget&&(c.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(l=c.pano1)||void 0===l?void 0:l.luminanceMap)&&c.pano1.luminanceMap instanceof Dt&&!c.pano1.luminanceMap.cubeRenderTarget&&(c.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.models.setMaterial(c)),d.offset&&this.camera.position.copy(d.offset),Ze(this.currentPano,u)&&this.updatePanoMeshesVisible();var D=this.camera.pose.longitude,F=this.camera.pose.latitude;this.camera.quaternion.fromArray(this.cardboard.sensor.getOrientation()),this.camera.updateMatrixWorld(),this.camera.computePose();var L=this.works.getResolvedObserver(this.currentPano);if(L)for(var Q=0,N=L.visibleIds.concat(Xe(this.currentPano));Q<N.length;Q++){var V=N[Q],U=Je(V);if(G=this.works.getResolvedObserver(U)){var z=this.panoMeshes[V];if(G.loadable||G.active){var q=z.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);q<.05?z.setOpacity(0):z.setOpacity(Dr(1.5/q,0,1)),Ze(this.currentPano,U)&&z.setOpacity(0),z.lookAt(this.camera.position)}else z.setOpacity(0)}}for(var H=this.intersect(e),_=0,j=this.works.resolvedObservers;_<j.length;_++){var G=j[_];(z=this.panoMeshes[G.panoId])&&(z.setCurrent(z===H),z.updateTime&&z.updateTime(e,t))}D===this.camera.pose.longitude&&F===this.camera.pose.latitude||(this.cameraMotion.set(Zn(this.camera.pose,["longitude","latitude"]),0).catch(fe),this.emit("camera.update",$o("camera.update",{userAction:!0,state:ie(ie(ie({},this.currentPano),{mode:this.mode}),oa(this.camera.pose))})))}},t.prototype.render=function(){this.cardboard.render(this.scene,this.camera)},t.prototype.setCamera=function(e){},t.prototype.destroyHelper=function(){},t.prototype.setHelperElementSize=function(){if(this.helperElement){var e=new n.Vector2(this.element.offsetWidth,this.element.offsetHeight),t=e.x*this.scissor.left,r=e.y*(1-this.scissor.bottom-this.scissor.height),i=e.x*this.scissor.width,o=e.y*this.scissor.height;this.helperElement.style.marginLeft=t+"px",this.helperElement.style.marginTop=r+"px",this.helperElement.style.width=i+"px",this.helperElement.style.height=o+"px"}},t.prototype.intersect=function(e){var t;if(!1===this.locationMotion.ended)return this.intersectMesh.visible=!1,delete this.activePanoMesh,void delete this.activeTime;if(this.activePanoMesh&&this.activeTime&&e-this.activeTime>1500){for(var r=this.activePanoMesh,i=null,o=0,a=Object.keys(this.panoMeshes);o<a.length;o++){var s=a[o];if(this.panoMeshes[s]===r){i=s;break}}return null!==i&&this.moveToPano(Je(i),{},!0),delete this.activePanoMesh,delete this.activeTime,r}for(var l=this.camera.getDirection(new n.Vector3),u=new n.Raycaster(this.camera.position,l),c=void 0,d=[],p=this.works.getResolvedObserver(this.currentPano),h=0,f=p?p.visibleIds:[];h<f.length;h++){i=f[h];var v=this.panoMeshes[i],A=u.intersectObject(null!==(t=v.hitTestMesh)&&void 0!==t?t:v,!0)[0];A&&d.push({panoMesh:v,intersection:A})}var m=d.sort((function(e,t){return e.intersection.distance-t.intersection.distance}))[0];m?(c=m.intersection,this.activePanoMesh!==m.panoMesh&&(this.activePanoMesh=m.panoMesh,this.activeTime=e),this.intersectMesh.position.copy(m.panoMesh.position),this.intersectMesh.lookAt(this.camera.position),this.intersectMesh.visible=!1):(this.activePanoMesh=void 0,this.activeTime=void 0),c||(c=this.models.intersectRaycaster(u)[0]);var g=$o("intersect.update",{raycaster:u,intersection:null!=c?c:null,object:this.intersectMesh});if(this.emit("intersect.update",g),!g.defaultPrevented){if(c&&c.face){var y=c.face.normal,b=new n.Quaternion;b.setFromUnitVectors(new n.Vector3(0,0,1),y),this.intersectMesh.quaternion.copy(b);var x=y.clone().multiplyScalar(.05),w=c.point.clone().add(x);this.intersectMesh.position.copy(w),this.intersectMesh.visible=!0}else this.intersectMesh.visible=!1;return null==m?void 0:m.panoMesh}this.hideIntersectMesh()},t.prototype.onPanGesture=function(){},t.prototype.onTapGesture=function(){},t.prototype.onPinchGesture=function(){},t.prototype.onMouseMove=function(){},t.prototype.onMouseOut=function(){},t}(Xa),Rs=new n.Vector3(0,1.6,0),Os=function(e){function t(r){var n,i=this,o=t.parseArgs(r);return(i=e.call(this,o)||this).mode="Model",i.locationMotion=new Io({x:i.camera.pose.offset.x,y:i.camera.pose.offset.y,z:i.camera.pose.offset.z,distance:i.camera.pose.distance,modelAlpha:null!==(n=i.models.getMaterial().modelAlpha)&&void 0!==n?n:0,perspToOrtho:i.camera.perspToOrtho.x,orthoDistance:i.camera.orthoDistance}),i}return ne(t,e),t.parseArgs=function(r){return r instanceof t?r:e.parseArgs.call(this,r)},t.initAnimationEndState=function(t){var r=this.parseArgs(t),n=e.initAnimationEndState.call(this,r);return ie(ie({},n),{mode:"Model"})},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.locationMotion.dispose()},t.prototype.isReady=function(){return!1!==this.locationMotion.ended},t.prototype.updateWork=function(e,r,n,i){this.works=e;var o=t.initAnimationEndState(ie(ie({},this),{initial:{currentState:ie(ie({},this.currentPano),this.camera.pose),duration:n,state:r,userAction:i}}));this.hideIntersectMesh();var a={duration:0,longitude:o.longitude,latitude:o.latitude,fov:o.fov};return this.moveToPano(this.currentPano,a,i),!0},t.prototype.updateTime=function(e,t){if(!this.destroyed){var r={},i={};if(!this.locationMotion.ended){this.locationMotion.update(e),r.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Dr(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,i.distance=this.locationMotion.value.distance,i.offset=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z);var o=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),a=na(this.works.resolvedObservers,(function(e){return e.position.distanceTo(o)}));this.currentPano=a?{workCode:a.work.workCode,panoIndex:a.panoIndex}:{workCode:"",panoIndex:0}}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),ia(r)||this.models.setMaterial(r),ia(i)||this.setCamera(i)}},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise((function(r){var n=e.initial;n.state,n.currentState;var i=n.duration,o=n.userAction;e.userAction=o;var a=t.initAnimationEndState(e),s={workCode:a.workCode,panoIndex:a.panoIndex};e.moveToPano(s,{longitude:a.longitude,latitude:a.latitude,fov:a.fov,duration:i,moveStartCallback:function(t){e.emit("initAnimation.start",$o("initAnimation.start",{state:t,userAction:e.userAction}))},moveEndCallback:function(t){e.emit("initAnimation.end",$o("initAnimation.end",{state:t,userAction:e.userAction})),r()},moveCancelCallback:function(){var t=e.currentPano,n=ie(ie({},t),{mode:e.mode,longitude:e.camera.pose.longitude,latitude:e.camera.pose.latitude,fov:e.camera.pose.fov,offset:e.camera.pose.offset.clone(),distance:e.camera.pose.distance});e.emit("initAnimation.end",$o("initAnimation.end",{state:n,userAction:e.userAction})),r()}},o)}))},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(Ae())[1],t=this.locationMotion.getKeyFrameSegment(Ae())[1];return ie(ie({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:new n.Vector3(t.value.x,t.value.y,t.value.z),distance:t.value.distance})},t.prototype.moveToPano=function(e,t,r){void 0===t&&(t={});var n=this.works.getResolvedObserver(e);n&&this.moveToPosition(n.position,t,r)},t.prototype.moveToPosition=function(e,t,r){var i,o,a,s=this;void 0===t&&(t={}),this.userAction=r,this.stopMomentumMovement();for(var l=Ae(),u=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),c=u.distanceTo(e),d=this.locationMotion.getProgressVelocity(l),p=0,h=1;h<this.locationMotion.keyframes.length;h++){var f=this.locationMotion.keyframes[h-1].value,v=f.x,A=f.y,m=f.z,g=this.locationMotion.keyframes[h].value,y=g.x,b=g.y,x=g.z;p+=Math.sqrt(Math.pow(y-v,2)+Math.pow(b-A,2)+Math.pow(x-m,2))}var w=0===c?0:d*p/c,M=this.calculateMovingDuration(t.duration,c),E={x:e.x,y:e.y,z:e.z,distance:0,modelAlpha:1,perspToOrtho:0,orthoDistance:1},C={longitude:t.longitude,latitude:t.latitude,fov:t.fov},S=na(this.works.resolvedObservers,(function(e){return e.position.distanceTo(u)})),I=S?{workCode:S.work.workCode,panoIndex:S.panoIndex}:{workCode:"",panoIndex:0},P=ie(ie({},I),{mode:this.mode,longitude:null!==(i=C.longitude)&&void 0!==i?i:this.camera.pose.longitude,latitude:null!==(o=C.latitude)&&void 0!==o?o:this.camera.pose.latitude,fov:null!==(a=C.fov)&&void 0!==a?a:this.camera.pose.fov,offset:e.clone(),distance:0}),T=this.currentPano;this.emit("pano.moveTo",$o("pano.moveTo",{options:t,prevPano:T,progress:0,state:P,userAction:this.userAction,error:null})),t.moveStartCallback&&t.moveStartCallback(P),this.cameraMotion.set(C,M).catch(fe),this.locationMotion.set(E,M,w).then((function(){var e=ie(ie(ie({},I),{mode:s.mode}),oa(s.camera.pose));s.emit("pano.arrived",$o("pano.arrived",{options:t,prevPano:T,progress:0,state:e,userAction:s.userAction,error:null})),t.moveEndCallback&&t.moveEndCallback(e)}),(function(){t.moveCancelCallback&&t.moveCancelCallback(),s.emit("pano.cancel",$o("pano.cancel",{options:t,prevPano:T,progress:0,state:P,userAction:s.userAction,error:null}))}))},t.prototype.onTapGesture=function(e){var t=e.center.raycaster;this.stopMomentumMovement();var r=this.models.intersectRaycaster(t)[0];if(r&&r.face){var i=r.face.normal,o=r.point;if(new n.Vector3(0,1,0).angleTo(i)>Math.PI/3){var a=i.clone().setLength(.3).add(o);t.set(a,new n.Vector3(0,-1,0)),r=this.models.intersectRaycaster(t)[0]}}if(r){var s=(new n.Vector3).copy(r.point).add(Rs),l=na(this.works.resolvedObservers,(function(e){return e.position.distanceTo(s)}),!0),u=l[0],c=l[1];u&&c<5&&(s.y=u.position.y),e.state.offset.copy(s),e.state.distance=0,this.emit("gesture.tap",e),e.defaultPrevented||this.moveToPosition(s,{},!0)}else this.emit("gesture.tap",e),e.defaultPrevented||this.cameraBounce()},t}(ma),ks=function(){return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("{vs|z-rp@-}n{|]|vv|{H{vs|z-znA-}n{|ZnvH{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}H<<{vs|z-sy|n-pnyrHn\bv{t-rp@-}n{|d|yq]|vv|{H<<-n\bv{t-sy|n-vU|yrHp|{-sy|n-]V-J-@;>A>BF?CHp|{-sy|n-aNb-J-C;?E@>EB?Hp|{-sy|n-pnyr-J->@;>Hrp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5:rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-aNb9-urn-<-]V6H\f|vq-znv{56-\n--rpA-|yq]|vv|{-J-z|qryZnv-7-rpA5}|vv|{9->;=6H--}n{|d|yq]|vv|{-J-5rpA5|yq]|vv|{;\b\t9->;=6-7-}n{|Znv6;\b\tH--rp?-p||q-J-|P||q5}n{|d|yq]|vv|{6H--sy|n-qvn{pr-J-pnyrH--vs-5p||q;\b-I-=;>B6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-=;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5=;>B-:-p||q;\b66H----qvn{pr-J-pnyrH--\f-ryr-vs-5p||q;\b-KJ-=;>B-33-p||q;\b-IJ-=;EB6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-5p||q;\b-:-=;>B6-<-=;D6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----vs5-}n{|Qv}ynprzr{;-JJ-=;=6\n------qvn{pr-J-pnyrH----\fryr\n------qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----\f--\f-ryr-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9->;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5p||q;\b-:-=;EB66H----qvn{pr-J-pnyrH--\f--rpA-ry]|vv|{-J-rpA5}|vv|{-8-}n{|]|vv|{-8-{|znyv\tr5|yq]|vv|{;\b\t6-7-qvn{pr9->;=6H--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-ry]|vv|{H\f"),Ds=function(){return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("{vs|z-sy|n-|}npv\bH{vs|z-nz}yrPor-}n{|Zn}H{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}Hn\bv{t-rp@-}n{|d|yq]|vv|{H|vq-znv{56-\n--rpA-}n{|P|y|-J-rrPor5}n{|Zn}9-}n{|d|yq]|vv|{;\b\t6H--tylSntP|y|-J-rpA5}n{|P|y|;to9-|}npv\b6H\f"),Fs=Object.assign({opacity:new n.Uniform(1),scale:new n.Uniform(13.1),panoMap:new n.Uniform(null),panoDisplacementMap:new n.Uniform(null),panoPosition:new n.Uniform(new n.Vector3),panoMatrix:new n.Uniform(new n.Matrix4)},{emissive:new n.Uniform(new n.Color(0)),emissiveMap:new n.Uniform(null),specular:new n.Uniform(new n.Color(1118481)),specularMap:new n.Uniform(null),normalMap:new n.Uniform(null),bumpMap:new n.Uniform(null),shininess:new n.Uniform(30)},n.UniformsLib.common,n.UniformsLib.lights),Ls=new n.SphereBufferGeometry(.01,128,128);var Qs=function(){function e(){this.textureLoader=new Ft}return e.prototype.load=function(e,t,r,i,o,a,s){var l=[0,0],u=function(e,t){l[t]=e,a(.8*l[0]+.2*l[1])},c=[this.textureLoader.loadTexture(e,{imageURL:r.imageURL,viaAjax:!0,allowHosts:r.allowHosts,networkSubscribe:r.networkSubscribe,requestProxy:r.requestProxy},void 0,void 0,(function(e){return u(e,1)}),s),this.textureLoader.loadCubeTexture(t,{imageURL:r.imageURL,viaAjax:!0,allowHosts:r.allowHosts,networkSubscribe:r.networkSubscribe,requestProxy:r.requestProxy},void 0,void 0,(function(e){return u(e,0)}),s)];return Promise.all(c).then((function(e){var t=e[0],o=e[1],a=function(e,t,r,i){var o=new n.ShaderMaterial({side:n.BackSide,vertexShader:ks,fragmentShader:Ds,transparent:!0,uniforms:n.UniformsUtils.clone(Fs)}),a=t;return a.needsUpdate=!0,a.minFilter=n.LinearFilter,a.magFilter=n.LinearFilter,e.needsUpdate=!0,e.minFilter=n.LinearFilter,e.magFilter=n.LinearFilter,o.uniforms.opacity.value=0,o.uniforms.panoMap.value=a,o.uniforms.panoDisplacementMap.value=e,o.uniforms.panoPosition.value=r,o.uniforms.panoMatrix.value=i,Object.assign(new n.Mesh(Ls,o),{frustumCulled:!1,dispose:function(){this.material instanceof n.ShaderMaterial&&(this.material.uniforms.panoDisplacementMap.value.dispose(),this.material.uniforms.panoDisplacementMap.value=null,this.material.dispose())}})}(t.body,o.body,r.position,r.matrix),s={body:a,meta:ue([t.meta],o.meta,!0)};return i(s),s})).catch((function(e){for(var t=0,r=c;t<r.length;t++){r[t].then((function(e){return e.body.dispose()})).catch(fe)}return o(e),Promise.reject(e)}))},e}(),Ns=new n.Vector3(-1,1,1),Vs=function(e){function t(r){var i,o,a,s=this,l=t.parseArgs(r);s=e.call(this,l)||this;var u=l.initial;return u.state,u.currentState,s.maxAccessibleDistance=l.maxAccessibleDistance,s.panoTapTriggerRadius=l.panoTapTriggerRadius,s.panoCircleMeshCreator=l.panoCircleMeshCreator,s.panoModelGroup=new n.Group,s.panoModelGroup.name="panoModels",s.scene.add(s.panoModelGroup),s.panoMeshes={},s.updatePanoMeshes(),s.helper.remove(s.intersectMesh),s.locationMotion=new Io({count:0,distance:s.camera.pose.distance,modelAlpha:null!==(i=s.models.getMaterial().modelAlpha)&&void 0!==i?i:0,perspToOrtho:s.camera.perspToOrtho.x,orthoDistance:s.camera.orthoDistance}),s.panoResources={},s.panoResources[s.locationMotion.keyframes[0].key=s.locationMotion.keyframes[1].key=Fi()]={panoId:Xe(s.currentPano),matrix:null!==(a=null===(o=s.models.getMaterial().pano1)||void 0===o?void 0:o.matrix)&&void 0!==a?a:new n.Matrix4,position:s.camera.pose.offset.clone(),effect:"fly"},s.depthTextureLoader=new Qs,s}return ne(t,e),t.parseArgs=function(r){var n,i,o;if(r instanceof t)return r;var a=e.parseArgs.call(this,r);return ie(ie({},a),{maxAccessibleDistance:null!==(n=r.maxAccessibleDistance)&&void 0!==n?n:5,panoTapTriggerRadius:null!==(i=r.panoTapTriggerRadius)&&void 0!==i?i:1,panoCircleMeshCreator:null!==(o=r.panoCircleMeshCreator)&&void 0!==o?o:function(e){return new Bo}})},t.initAnimationEndState=function(t){var r=this.parseArgs(t),n=e.initAnimationEndState.call(this,r);return ie(ie({},n),{mode:"DepthPanorama"})},t.prototype.destroy=function(){var t;if(e.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.pendingTextureTask,this.panoModelGroup){for(var r=0,n=this.panoModelGroup.children;r<n.length;r++){var i=n[r];"function"==typeof i.dispose&&i.dispose()}this.scene.remove(this.panoModelGroup)}if(this.panoMeshes)for(var o=0,a=Object.keys(this.panoMeshes);o<a.length;o++){var s=a[o],l=this.panoMeshes[s];this.helper.remove(l),l.dispose(),delete this.panoMeshes[s]}for(var u=null!==(t=this.models.getMaterial())&&void 0!==t?t:{},c=u.pano0,d=u.pano1,p=0,h=Object.keys(this.panoResources);p<h.length;p++){var f=h[p],v=this.panoResources[f];v.panoModel&&v.panoModel.material.uniforms.panoMap.value!==(null==c?void 0:c.map)&&v.panoModel.material.uniforms.panoMap.value!==(null==d?void 0:d.map)&&(this.panoModelGroup.remove(v.panoModel),v.panoModel.material.uniforms.panoMap.value.dispose(),v.panoModel.dispose(),delete v.panoModel),delete this.panoResources[f]}},t.prototype.isReady=function(){return!1===this.locationMotion.ended&&e.prototype.isReady.call(this)},t.prototype.updateWork=function(e,r,n,i){this.userAction=i,this.works=e;var o=t.initAnimationEndState(ie(ie({},this),{initial:{currentState:ie(ie({},this.currentPano),this.camera.pose),duration:n,state:r,userAction:i}})),a={workCode:o.workCode,panoIndex:o.panoIndex};return this.hideIntersectMesh(),this.updatePanoMeshes(),this.moveToPano(a,{effect:"fade",duration:n,longitude:r.longitude,latitude:r.latitude,fov:r.fov},i),!0},t.prototype.updateTime=function(e,t){var r,i,o=this;if(!this.destroyed){var a={},s={},l=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),u=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),c=!1;if(!1===this.cameraMotion.ended&&(this.cameraMotion.update(e),s.longitude=this.cameraMotion.value.longitude,s.latitude=this.cameraMotion.value.latitude,s.fov=this.cameraMotion.value.fov),!1===this.locationMotion.ended){this.locationMotion.update(e);var d=this.locationMotion.getKeyFrameSegment(e),p=d[0],h=d[1],f=this.panoResourceFromLocationMotionKeyframe(p),v=this.panoResourceFromLocationMotionKeyframe(h),A=(new n.Vector3).copy(f.position),m=(new n.Vector3).copy(v.position),g=this.locationMotion.value.count-h.value.count+1;a.progress=g,a.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Dr(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance;for(var y=0,b=this.panoModelGroup.children;y<b.length;y++){var x=b[y];x.visible=x===f.panoModel||x===v.panoModel}f.panoModel&&(f.panoModel.material.uniforms.opacity.value=1-g,f.panoModel.material.depthTest=0!==g),v.panoModel&&(v.panoModel.material.uniforms.opacity.value=g,v.panoModel.material.depthTest=1!==g),v.panoModel&&(g<1?f.panoModel&&(a.pano0={map:f.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:f.matrix}):a.pano0={map:v.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:v.matrix},a.pano1={map:v.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:v.matrix}),c=a.useBlackTransition="instant"===v.effect||"montage"===v.effect,"fade"!==v.effect&&"montage"!==v.effect||(a.pano0&&(a.pano0={map:a.pano0.map,luminanceMap:null,matrix:f.matrix.clone().setPosition(v.position)}),A.copy(m)),s.distance=this.locationMotion.value.distance,s.offset=new n.Vector3(A.x+(m.x-A.x)*g,A.y+(m.y-A.y)*g,A.z+(m.z-A.z)*g);for(var w=[],M=[],E=0,C=this.locationMotion.keyframes;E<C.length;E++){var S=C[E],I=S.key,P=S.progress;void 0!==I&&(w.push(I),P>=this.locationMotion.progress&&M.push(I))}for(var T=0,B=Object.keys(this.panoResources);T<B.length;T++){var R=B[T];if(!(M.indexOf(R)>=0)){var O=this.panoResources[R];if(O.panoModel){if(O.panoModel.material.uniforms.panoMap.value===(null===(r=a.pano0)||void 0===r?void 0:r.map))continue;if(O.panoModel.material.uniforms.panoMap.value===(null===(i=a.pano1)||void 0===i?void 0:i.map))continue;this.panoModelGroup.remove(O.panoModel),O.panoModel.material.uniforms.panoMap.value.dispose(),O.panoModel.dispose(),delete O.panoModel}w.indexOf(R)>=0||delete this.panoResources[R]}}this.currentPano=Je(v.panoId),this.emit("pano.moving",$o("pano.moving",{userAction:this.userAction,prevPano:Je(l.panoId),state:ie(ie(ie(ie({},Je(u.panoId)),{mode:this.mode}),oa(this.camera.pose)),s),options:{},progress:this.locationMotion.progress,error:null}))}!1===ia(a)&&this.models.setMaterial(a),!1===ia(s)&&this.setCamera(s);var k=this.works.getResolvedObserver(this.currentPano),D=this.locationMotion.ended?this.getForwardObserverOrNot():null;if(this.camera.pose.distance>.1||c){if(k)for(var F=0,L=Object.keys(this.panoMeshes);F<L.length;F++){var Q=L[F];(_=this.panoMeshes[Q]).setOpacity(0),_.setCurrent(!1),_.updateTime&&_.updateTime(e,t)}}else if(k){var N=na(k.visibleIds,(function(e){var t=o.works.getResolvedObserver(e);return t?k.standingPosition.distanceTo(t.standingPosition):1/0}),!0),V=N[1];V=Dr(V,2.5,1/0);for(var U=k.visibleIds.concat(Xe(this.currentPano)),z=this.camera.getDirection(new n.Vector3),q=0,H=Object.keys(this.panoMeshes);q<H.length;q++){Q=H[q];var _=this.panoMeshes[Q],j=this.works.getResolvedObserver(Q);if(-1===U.indexOf(Q))_.setCurrent(!1),_.setOpacity(0);else if(j)if(j.loadable||j.active){var G=_.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);_.setCurrent(!_.loading&&0===_.progress&&null!==D&&D.panoId===Q),_.setOpacity(G<.01?0:Dr(V/G*1.2,.4,.85));var K=this.camera.position.clone().setY(_.position.y),W=(new n.Vector3).copy(_.position).sub(K).normalize();if(Q===Xe(this.currentPano)){var Y=Dr((.5-K.distanceTo(_.position))/.5,0,1);W.multiplyScalar(1-Y).add(z.clone().multiplyScalar(Y))}W.length()>0&&_.quaternion.setFromEuler(new n.Euler(0,Math.atan2(W.x,W.z),0))}else _.setCurrent(!1),_.setOpacity(0);else _.setCurrent(!1),_.setOpacity(0);_.updateTime&&_.updateTime(e,t)}}}},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(Ae())[1],t=this.locationMotion.getKeyFrameSegment(Ae())[1],r=this.panoResourceFromLocationMotionKeyframe(t),n=this.works.getResolvedObserver(r.panoId);return{mode:this.mode,workCode:n?n.work.workCode:this.currentPano.workCode,panoIndex:n?n.pano.panoIndex:this.currentPano.panoIndex,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:n?n.position.clone():this.camera.position.clone(),distance:0}},t.prototype.moveToPano=function(e,t,r){var i,o=this;void 0===t&&(t={});var a=this.works.getResolvedObserver(e);if(!a)throw new Error("panoId ".concat(JSON.stringify(e)," is not found."));this.userAction=r;var s=a.images.depth,l=ie({key:"pano.".concat(a.panoId)},Zn(this.imageOptions,["format","size","quality","sharpen","mappings"])),u=this.imageOptions.transform,c=a.images,d=a.position,p=a.quaternion,h=(new n.Matrix4).compose(d,p,new n.Vector3(-1,1,1)),f="pano:"+ei(c);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===f)return;var v=this.pendingTextureTask.panoId,A=Je(v);null===(i=this.panoMeshes[v])||void 0===i||i.setProgress(0),this.emit("pano.texture.abort",$o("pano.texture.abort",{error:null,progress:0,meta:null,pano:A})),this.pendingTextureTask.onError(new Error("pano ".concat(JSON.stringify(A)," texture aborted")))}var m="move-to-pano-"+a.panoId;this.pending.add(m),this.pendingTextureTask={panoId:a.panoId,hash:f,onLoad:function(e){o.pending.delete(m),o.destroyed?e.body.dispose():(e.body.name=f,o.doMoveToPano(a.pano,e.body,t))},onError:function(e){o.pending.delete(m);var r=ie(ie(ie({},a.pano),{mode:o.mode}),oa(o.camera.pose));o.emit("pano.error",$o("pano.error",{error:e,userAction:o.userAction,options:t,prevPano:o.currentPano,progress:0,state:r})),o.emit("pano.cancel",$o("pano.cancel",{error:null,userAction:o.userAction,options:t,prevPano:o.currentPano,progress:0,state:r})),t.moveCancelCallback&&t.moveCancelCallback()}};var g=this.panoMeshes[a.panoId];g&&g.tap&&g.tap(),this.depthTextureLoader.load(s,c,{imageURL:{transform:u,options:l},position:d,matrix:h,allowHosts:a.work.allowHosts,networkSubscribe:this.networkSubscribe,requestProxy:this.requestProxy},(function(e){var t,r;(null===(t=o.pendingTextureTask)||void 0===t?void 0:t.hash)===f?(o.pendingTextureTask.onLoad(e),null===(r=o.panoMeshes[a.panoId])||void 0===r||r.setProgress(0),delete o.pendingTextureTask,o.emit("pano.texture.success",$o("pano.texture.success",{error:null,progress:1,meta:e.meta,pano:a.pano}))):e.body.dispose()}),(function(e){var t,r;(null===(t=o.pendingTextureTask)||void 0===t?void 0:t.hash)===f&&(o.pendingTextureTask.onError(e),null===(r=o.panoMeshes[a.panoId])||void 0===r||r.setProgress(0),delete o.pendingTextureTask,o.emit("pano.texture.error",$o("pano.texture.error",{error:e,progress:0,meta:null,pano:a.pano})),o.emit("error",e))}),(function(e){var t,r;o.emit("pano.texture.progress",$o("pano.texture.progress",{error:null,progress:e,meta:null,pano:a.pano})),(null===(t=o.pendingTextureTask)||void 0===t?void 0:t.hash)===f&&(null===(r=o.panoMeshes[a.panoId])||void 0===r||r.setProgress(e))}),this.renderer),this.emit("pano.texture.load",$o("pano.texture.load",{error:null,progress:0,meta:null,pano:a.pano}))},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise((function(r){var n=e.initial;n.state,n.currentState;var i=n.duration,o=n.userAction,a=t.initAnimationEndState(e),s={workCode:a.workCode,panoIndex:a.panoIndex},l=!1;e.userAction=o,e.moveToPano(s,{longitude:a.longitude,latitude:a.latitude,fov:a.fov,duration:i,moveStartCallback:function(t){l=!0,e.emit("initAnimation.start",$o("initAnimation.start",{state:t,userAction:o}))},moveEndCallback:function(t){e.emit("initAnimation.end",$o("initAnimation.end",{state:t,userAction:e.userAction})),r()},moveCancelCallback:function(){var t=ie(ie(ie({},s),{mode:e.mode}),oa(e.camera.pose));!1===l&&e.emit("initAnimation.start",$o("initAnimation.start",{state:t,userAction:e.userAction})),e.emit("initAnimation.end",$o("initAnimation.end",{state:t,userAction:e.userAction})),r()}},o)}))},t.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},t.prototype.locationMotionKeyframesLength=function(e){for(var t=0,r=1;r<e.length;r++){var n=this.panoResourceFromLocationMotionKeyframe(e[r-1]).position,i=this.panoResourceFromLocationMotionKeyframe(e[r]).position;t+=n.distanceTo(i)*(e[r].value.count-e[r-1].value.count)}return t},t.prototype.updatePanoMeshes=function(){for(var e=this,t={},r=0,n=Object.keys(this.panoMeshes);r<n.length;r++){var i=n[r],o=this.panoMeshes[i];t[i]=o,delete this.panoMeshes[i]}for(var a=1,s={},l=function(t){var r=na(t.accessibleIds,(function(r){var n=e.works.getResolvedObserver(r);return n?Dr(n.standingPosition.distanceTo(t.standingPosition),1,1/0):1/0}),!0)[1];void 0===s[t.panoId]&&(s[t.panoId]=r)},u=0,c=this.works.resolvedObservers;u<c.length;u++){l(f=c[u])}var d=Object.keys(s).map((function(e){return s[e]}));d.length&&(a=Dr(.6*(d.reduce((function(e,t){return e+t}),0)/d.length),1,3));for(var p=0,h=this.works.resolvedObservers;p<h.length;p++){var f;o=void 0;t[(f=h[p]).panoId]?(!0===(o=t[f.panoId]).loading&&!1===f.loadable&&o.setLoading(!1),delete t[f.panoId]):((o=this.panoCircleMeshCreator(f.pano)).name="PanoCircleMesh_"+f.panoId,this.helper.remove(o)),o.scale.set(a,1,a),o.position.copy(f.standingPosition),this.panoMeshes[f.panoId]=o}for(var v=0,A=Object.keys(t);v<A.length;v++){var m=A[v];this.helper.remove(t[m]),t[m].dispose(),delete t[m]}},t.prototype.doMoveToPano=function(e,t,r){var i,o,a,s,l=this;void 0===r&&(r={});var u=Ae(),c=Fi(),d=this.works.getResolvedObserver(e);if(!d)throw new Error("panoId ".concat(JSON.stringify(e)," never found"));var p=this.panoResources[c]={panoId:d.panoId,effect:null!==(i=r.effect)&&void 0!==i?i:"fly",panoModel:t,matrix:(new n.Matrix4).compose(d.position,d.quaternion,Ns),position:d.position.clone()};t.visible=!1,t.renderOrder=-1,this.panoModelGroup.add(t);var h,f,v;if(this.locationMotion.ended){var A=this.locationMotion.getKeyFrameSegment(u);A[0];var m=A[1],g=this.locationMotion.value,y=this.panoResourceFromLocationMotionKeyframe(m).position,b=p.position;h=Math.max(y.distanceTo(b),1),f=[{key:m.key,progress:0,value:ie(ie({},g),{count:0})},{key:c,progress:1,value:{distance:0,perspToOrtho:0,modelAlpha:0,orthoDistance:1,count:1}}],v=0}else{var x=this.locationMotion.getKeyFrameSegment(u),w=x[0],M=(m=x[1],g=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(w).position),E=(y=this.panoResourceFromLocationMotionKeyframe(m).position,b=p.position,m.value.count-g.count),C=Math.max(M.distanceTo(y),1)*E;h=C+Math.max(y.distanceTo(b),1),f=[{key:w.key,progress:0,value:ie({},g)},{key:m.key,progress:C/h,value:m.value},{key:c,progress:1,value:{count:m.value.count+1,distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0}}];var S=this.locationMotionKeyframesLength(this.locationMotion.keyframes),I=this.locationMotionKeyframesLength(f);v=0===S||0===S?0:this.locationMotion.getProgressVelocity(u)*S/I}var P=this.calculateMovingDuration(r.duration,"fade"===r.effect||"montage"===r.effect?0:h),T={longitude:r.longitude,latitude:r.latitude,fov:r.fov},B=ie(ie({},e),{mode:this.mode,longitude:null!==(o=T.longitude)&&void 0!==o?o:this.camera.pose.longitude,latitude:null!==(a=T.latitude)&&void 0!==a?a:this.camera.pose.latitude,fov:null!==(s=T.fov)&&void 0!==s?s:this.camera.pose.fov,offset:d.position.clone(),distance:this.camera.pose.distance}),R=this.currentPano;this.emit("pano.moveTo",$o("pano.moveTo",{options:r,prevPano:R,progress:0,state:B,userAction:this.userAction,error:null})),r.moveStartCallback&&r.moveStartCallback(B),this.cameraMotion.set(T,P).catch(fe),this.locationMotion.setKeyframes(f,P,v).then((function(){var t=ie(ie({},e),{mode:l.mode,longitude:l.camera.pose.longitude,latitude:l.camera.pose.latitude,fov:l.camera.pose.fov,offset:l.camera.pose.offset.clone(),distance:l.camera.pose.distance});l.emit("pano.arrived",$o("pano.arrived",{options:r,prevPano:R,progress:1,state:t,userAction:l.userAction,error:null})),r.moveEndCallback&&r.moveEndCallback(t)}),(function(){l.emit("pano.cancel",$o("pano.cancel",{options:r,prevPano:R,progress:0,state:B,userAction:l.userAction,error:null})),r.moveCancelCallback&&r.moveCancelCallback()}))},t.prototype.getForwardObserverOrNot=function(e){var t=this,r=this.camera.getDirection(new n.Vector3),i=this.camera.position.clone(),o=this.works.getResolvedObserver(this.currentPano);if(!o)return null;var a=o.accessibleIds.filter((function(e){if(e===Xe(t.currentPano))return!1;var r=t.works.getResolvedObserver(e);if(!r)return!1;var o=r.standingPosition.clone().sub(i);return 0!==o.length()&&(!(o.angleTo(new n.Vector3(0,-1,0))<Math.PI/12)&&(r.loadable||r.active))})),s=(e?e.ray.direction.clone():r.clone()).setY(0);if(0===s.length())return null;for(var l=a.slice().sort((function(e,r){var n=t.works.getResolvedObserver(e).position.clone().setY(i.y),o=t.works.getResolvedObserver(r).position.clone().setY(i.y);return n.distanceTo(i)-o.distanceTo(i)})),u=0,c=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];u<c.length;u++)for(var d=c[u],p=0,h=l;p<h.length;p++){var f=h[p],v=this.works.getResolvedObserver(f);if(v){var A=v.position.clone().setY(i.y).sub(i);if(A&&0!==A.length()&&s.angleTo(A)<d)return v}}return null},t.prototype.onTapGesture=function(e){var t,r=this;this.userAction=e.userAction,this.stopMomentumMovement();var i=e.center.raycaster,o=this.camera.getDirection(new n.Vector3).setY(0),a=null,s=this.works.getResolvedObserver(this.currentPano);if(s){var l=s.accessibleIds.filter((function(e){if(e===Xe(r.currentPano))return!1;var t=r.works.getResolvedObserver(e);return!!t&&(!(t.position.distanceTo(r.camera.position)>r.maxAccessibleDistance)&&(t.loadable||t.active))})),u=i.intersectObject(this.boundingMesh,!0)[0];if(u){var c=na(l,(function(e){var t=r.works.getResolvedObserver(e).standingPosition.clone();return t.clone().sub(r.camera.position).setY(0).angleTo(o)>Math.PI/2?1/0:t.distanceTo(u.point)}),!0),d=c[0],p=c[1];d&&p<this.panoTapTriggerRadius&&(a=null!==(t=this.works.getResolvedObserver(d))&&void 0!==t?t:null)}a||(a=this.getForwardObserverOrNot(i));for(var h=0,f=this.locationMotion.keyframes;h<f.length;h++){var v=f[h],A=this.panoResourceFromLocationMotionKeyframe(v);if(!(v.progress<this.locationMotion.progress)&&(a&&A.panoId===a.panoId)){a=null;break}}if(a){for(var m={},g=Math.PI/6,y=Math.PI/12,b=new n.Vector3(0,1,0),x=a.position.clone().setY(0).sub(s.position.clone().setY(0)).normalize(),w=x.clone().applyAxisAngle(b,g),M=x.clone().applyAxisAngle(b,-g),E=[],C=[],S=[],I=0,P=a.accessibleIds;I<P.length;I++){var T=Je(d=P[I]);if(!Ze(T,this.currentPano)&&!Ze(T,a.pano)){var B=this.works.getResolvedObserver(d);if(B){var R=B.position.clone().sub(a.position).setY(0);x.angleTo(R)<g?S.push(R):w.angleTo(R)<g?E.push(R):M.angleTo(R)<g&&C.push(R)}}}var O=(S.length>0?S:ue(ue([],E,!0),C,!0)).slice().sort((function(e,t){return e.angleTo(x)-t.angleTo(x)}))[0];O&&O.angleTo(o)>y&&(m.longitude=Math.atan2(-O.x,-O.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(m.latitude=Dr(0,this.minLatitude,this.maxLatitude));var k=ie({},e.state);if(k.workCode=a.pano.workCode,k.panoIndex=a.pano.panoIndex,void 0!==m.longitude&&(k.longitude=m.longitude),void 0!==m.latitude&&(k.latitude=m.latitude),void 0!==m.fov&&(k.fov=m.fov),k.distance=0,k.offset=a?a.position.clone():new n.Vector3,e.state=k,this.emit("gesture.tap",e),!e.defaultPrevented){if(this.emit("pano.select",$o("pano.select",{prevPano:this.currentPano,state:k,userAction:e.userAction,options:m,progress:0,error:null})),a&&!a.active){var D=a.panoId;this.panoMeshes[D]&&(this.panoMeshes[D].setDisabled(!1),this.panoMeshes[D].setLoading(!0))}a&&a.active&&this.emit("pano.request",$o("pano.request",{userAction:!0,prevPano:this.currentPano,progress:0,state:k,options:m,error:null}))}}else this.emit("gesture.tap",e),e.defaultPrevented||!0===this.locationMotion.ended&&this.cameraBounce()}},t}(ma),Us=function(){return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("}rpvv|{-zrqvz}-sy|nH}rpvv|{-zrqvz}-v{Hnvor-rp@-}|vv|{Hnvor-rp?-H{vs|z-znA-}|wrpv|{ZnvH{vs|z-znA-z|qrycvrZnvHn\bv{t-rp?-bH|vq-znv{56-\nb-J-HrpA-z]|vv|{-J-z|qrycvrZnv-7-rpA5}|vv|{9>;=6Htyl]|vv|{-J-}|wrpv|{Znv-7-z]|vv|{H\f"),zs=function(){return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("0rr{v|{-TYlRealsntlqr}u-G-r{noyr<<-<<-nqn}rq-s|z-ur-RQY-unqr-p|qr-s|z-Puvvn{-O|pur{\b-v{-py|q-p|z}nrG<<-u}G<<tvuo;p|z<py|qp|z}nr<{x<rr<znr<}ytv{<\0RQY<unqr<RQY<<}rpvv|{-zrqvz}-sy|nH}rpvv|{-zrqvz}-v{H{vs|z-sy|n-prr{dvquH{vs|z-sy|n-prr{UrvtuH{vs|z-rp?-{rvtuo|h[RVTUO\\b_lP\\b[ajH{vs|z-sy|n-rqy`r{tuH{vs|z-sy|n-nqvH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-[rnH{vs|z-sy|n-SnH{vs|z-znA-]|wH{vs|z-nz}yr?Q-RQYP|y|H{vs|z-nz}yr?Q-RQYQr}uHn\bv{t-rp?-bHsy|n-r}|{r5sy|n-qr}u6\nrp?-_nqv-J-nqv-<-rp?5prr{dvqu9-prr{Urvtu6Hsy|n-z-J-=;=Hs|5v{-v-J-=H-v-I-[RVTUO\\b_lP\\b[aH-v886\nrp?-[rvtuo|-J-b-8-_nqv-7-{rvtuo|hvjHsy|n-{rvtuo|Qr}u-J-rr?Q5RQYP|y|9-[rvtuo|6;nH{rvtuo|Qr}u-J-5{rvtuo|Qr}u-JJ->;=6-L-=;=-G-{rvtuo|Qr}uHvs5{rvtuo|Qr}u-.J-=;=6\nvs5qr}u-JJ-=;=6\nz-8J->==;=H\fryr\nz-8J-zn5=;=9-qr}u-:-{rvtuo|Qr}u6H\f\f\fr{-z-<-sy|n5[RVTUO\\b_lP\\b[a6H\f|vq-znv{56\nrpA-pRQY-J-rr?Q5RQYP|y|9-b6H--sy|n-qr}u-J-pRQY;nHqr}u-J-5qr}u-JJ->;=6-L-=;=-G-qr}uHsy|n-r-J-r}|{r5qr}u6Hsy|n-unqr-J-r}5:r-7-@==;=-7-rqy`r{tu6HtylSntP|y|-J-rpA5pRQY;to-7-unqr9-|}npv\b6H\n-<<-vr-rtyn-u\b}ro|yvp-qr}u-nyr-|-qr}u-ossrsy|n-qy-J-}|5?;=9-qr}u6HrpA-q}-J-]|w-7-rpA5=;=9-=;=9-:qy9->;=6Hsy|n-}\t-J-q};\t-<-q};Hsy|n-sntQr}u-J-5}\t-8->;=6-<-?;=HtylSntQr}uRea-J-sntQr}uH\fvs5qr}u-JJ-=;=6\nqvpnqH\f\f"),qs=function(e){function t(t){var r=e.call(this)||this;return r.uniforms={screenWidth:Hs("f",0),screenHeight:Hs("f",0),edlStrength:Hs("f",1),uNear:Hs("f",1),uFar:Hs("f",1),radius:Hs("f",1),neighbours:Hs("2fv",new Float32Array),depthMap:Hs("t",new n.Texture),uEDLColor:Hs("t",new n.Texture),uEDLDepth:Hs("t",new n.Texture),opacity:Hs("f",1),uProj:Hs("Matrix4fv",new Float32Array)},r.neighbourCount=8,r.updateShaderSource(),r.transparent=!0,r}return ne(t,e),t.prototype.getUniform=function(e){return void 0===this.uniforms?void 0:this.uniforms[e].value},t.prototype.setUniform=function(e,t){void 0!==this.uniforms&&(this.uniforms[e].value=t)},t.prototype.getDefines=function(){var e="";return e+="#define NEIGHBOUR_COUNT "+this.neighbourCount+"\n"},t.prototype.updateShaderSource=function(){var e=this.getDefines()+Us,t=this.getDefines()+zs;this.setValues({vertexShader:e,fragmentShader:t}),this.needsUpdate=!0},oe([_s("screenWidth"),ae("design:type",Number)],t.prototype,"screenWidth",void 0),oe([_s("screenHeight"),ae("design:type",Number)],t.prototype,"screenHeight",void 0),oe([_s("edlStrength"),ae("design:type",Number)],t.prototype,"edlStrength",void 0),oe([_s("uNear"),ae("design:type",Number)],t.prototype,"uNear",void 0),oe([_s("uFar"),ae("design:type",Number)],t.prototype,"uFar",void 0),oe([_s("radius"),ae("design:type",Number)],t.prototype,"radius",void 0),oe([_s("neighbours",!0),ae("design:type",Float32Array)],t.prototype,"neighbours",void 0),oe([_s("depthMap"),ae("design:type",n.Texture)],t.prototype,"depthMap",void 0),oe([_s("uEDLColor"),ae("design:type",n.Texture)],t.prototype,"uEDLColor",void 0),oe([_s("uEDLDepth"),ae("design:type",n.Texture)],t.prototype,"uEDLDepth",void 0),oe([_s("uProj"),ae("design:type",Array)],t.prototype,"uProj",void 0),t}(n.RawShaderMaterial);function Hs(e,t){return{type:e,value:t}}function _s(e,t){return void 0===t&&(t=!1),function(r,n){Object.defineProperty(r,n,{get:function(){return this.getUniform(e)},set:function(r){r!==this.getUniform(e)&&(this.setUniform(e,r),t&&this.updateShaderSource())}})}}var js=new n.OrthographicCamera(-1,1,1,-1,0,1),Gs=new n.BufferGeometry;Gs.setAttribute("position",new n.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),Gs.setAttribute("uv",new n.Float32BufferAttribute([0,2,0,0,2,0],2));var Ks=new n.Mesh(Gs),Ws=new n.Scene;Ws.add(Ks);var Ys=function(e){function t(t,r,i,o){var a=e.call(this,t,r,i,o)||this;return a.sharedV2=new n.Vector2,a.renderer=t,a.material=new qs,Ks.material=a.material,a}return ne(t,e),t.prototype.render=function(e){var t=this.camera,r=this.material.uniforms,n=this.renderer.getSize(this.sharedV2);r.screenWidth.value=n.x,r.screenHeight.value=n.y;var i=t.projectionMatrix,o=new Float32Array(16);o.set(i.elements);for(var a=new Float32Array(2*this.material.neighbourCount),s=0;s<this.material.neighbourCount;s++)a[2*s+0]=Math.cos(2*s*Math.PI/this.material.neighbourCount),a[2*s+1]=Math.sin(2*s*Math.PI/this.material.neighbourCount);r.neighbours.value=a,r.uNear.value=t.near,r.uFar.value=t.far,r.uEDLColor.value=e[0].texture,r.uProj.value=o,r.edlStrength.value=1,r.radius.value=1,r.opacity.value=1,this.renderer.setRenderTarget(null),this.renderer.render(Ws,js)},t.prototype.dispose=function(){this.copyPass.dispose()},t}(Pa),Xs=function(){return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("}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-\n<<-sy|n-qr}u-J-rr?Q5Qr}uZn}9-b6;H<<-vs5qr}u-KJ->;=6\n<<-qvpnqH<<-\f<<-tylSntP|y|-J-rpA5qr}u9->;=9-=;=9->;=6HrpA-p|y|-J-rr?Q5drvtuZn}9-b6H-p|y|-J-p|y|-<-p|y|;HtylSntP|y|-J-rpA5p|y|;\b\t9->;=6H-<<-tylSntQr}uRea-J-qr}uH\f"),Js=function(){return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("}rpvv|{-zrqvz}-sy|nH}rpvv|{-zrqvz}-v{Hnvor-rp@-}|vv|{Hnvor-rp?-H{vs|z-znA-}|wrpv|{ZnvH{vs|z-znA-z|qrycvrZnvHn\bv{t-rp?-bH|vq-znv{56-\nb-J-Htyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-rpA5}|vv|{9>;=6H\f"),Zs=function(e){function t(t){var r=e.call(this,{vertexShader:Js,fragmentShader:Xs})||this;return r.uniforms={uDepthMap:$s("t",null),uWeightMap:$s("t",null)},r.depthTest=!0,r.depthWrite=!0,r.opacity=1,r}return ne(t,e),t.prototype.getUniform=function(e){return void 0===this.uniforms?void 0:this.uniforms[e].value},t.prototype.setUniform=function(e,t){void 0!==this.uniforms&&(this.uniforms[e].value=t)},oe([el("uDepthMap"),ae("design:type",Number)],t.prototype,"uDepthMap",void 0),oe([el("uWeightMap"),ae("design:type",Number)],t.prototype,"uWeightMap",void 0),t}(n.RawShaderMaterial);function $s(e,t){return{type:e,value:t}}function el(e,t){return void 0===t&&(t=!1),function(r,n){Object.defineProperty(r,n,{get:function(){return this.getUniform(e)},set:function(r){r!==this.getUniform(e)&&(this.setUniform(e,r),t&&this.updateShaderSource())}})}}var tl=new n.OrthographicCamera(-1,1,1,-1,0,1),rl=new n.BufferGeometry;rl.setAttribute("position",new n.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),rl.setAttribute("uv",new n.Float32BufferAttribute([0,2,0,0,2,0],2));var nl=new n.Mesh(rl),il=new n.Scene;il.add(nl);var ol=function(e){function t(t,r,i,o){var a=e.call(this,t,r,i,o)||this;return a.sharedV2=new n.Vector2,a.renderer=t,a.material=new Zs,a.scene=r,a.camera=i,nl.material=a.material,a}return ne(t,e),t.prototype.render=function(e){var t=this.material.uniforms;this.renderer.setRenderTarget(e[1]),this.models.setMaterial({useHQWeight:!0,useHQDepth:!1}),this.models.update(this.renderer,this.camera,"Mapview"),this.renderer.render(this.scene,this.camera),t.uWeightMap.value=e[1].texture,this.renderer.setRenderTarget(null),this.renderer.render(il,tl),this.models.setMaterial({useHQWeight:!1,useHQDepth:!0}),this.models.update(this.renderer,this.camera,"Mapview")},t.prototype.dispose=function(){this.copyPass.dispose()},t}(Pa),al=Number.MAX_VALUE||1/0,sl=function(e){function t(r){var i,o=this,a=t.parseArgs(r);return(o=e.call(this,a)||this).mode="Mapview",o.defaultLatitude=a.defaultLatitude,o.defaultDistance=a.defaultDistance,o.maxLatitude=a.maxLatitude,o.minLatitude=a.minLatitude,o.locationMotion=new Io({x:o.camera.pose.offset.x,y:o.camera.pose.offset.y,z:o.camera.pose.offset.z,distance:o.camera.pose.distance,modelAlpha:null!==(i=o.models.getMaterial().modelAlpha)&&void 0!==i?i:0,perspToOrtho:o.camera.perspToOrtho.x,orthoDistance:o.camera.orthoDistance}),o.intersectMeshCreator=a.intersectMeshCreator,o.intersectMesh=o.intersectMeshCreator(),o.intersectMesh.name="intersect",o.intersectMesh.visible=!1,o.currentTapId=null,o.helper.add(o.intersectMesh),o.edlTarget=new n.WebGLRenderTarget(1024,1024,{minFilter:n.NearestFilter,magFilter:n.NearestFilter,format:n.RGBAFormat,type:n.FloatType,depthTexture:new n.DepthTexture(1024,1024,n.UnsignedIntType)}),o.edlEffect=new Ys(o.renderer,o.scene,o.camera,o.models),o.hqEffect=new ol(o.renderer,o.scene,o.camera,o.models),o}return ne(t,e),t.parseArgs=function(r){var n,i,o,a,s;if(r instanceof t)return r;var l=e.parseArgs.call(this,r);return ie(ie({},l),{defaultLatitude:null!==(n=r.defaultLatitude)&&void 0!==n?n:Math.PI/4,defaultDistance:null!==(i=r.defaultDistance)&&void 0!==i?i:50,maxLatitude:null!==(o=r.maxLatitude)&&void 0!==o?o:+Math.PI/2,minLatitude:null!==(a=r.minLatitude)&&void 0!==a?a:0,intersectMeshCreator:null!==(s=r.intersectMeshCreator)&&void 0!==s?s:function(){return new Vo}})},t.distanceFromModel=function(e,t,r){var n=e.bounding,i=Math.pow(Math.pow(n.max.x-n.min.x+1,2)+Math.pow(n.max.y-n.min.y+1,2)+Math.pow(n.max.z-n.min.z+1,2),.5),o=i/2/Math.tan(Math.PI*t/360);return r<1&&(o/=r),isNaN(o)?i:o},t.initAnimationEndState=function(e){var r,i,o,a,s,l,u,c,d,p,h,f=this.parseArgs(e),v=f.works,A=f.models,m=e.initial,g=m.state,y=m.currentState,b="number"==typeof g.panoIndex?{workCode:null!==(o=null!==(r=g.workCode)&&void 0!==r?r:null===(i=f.works[0])||void 0===i?void 0:i.workCode)&&void 0!==o?o:"",panoIndex:g.panoIndex}:{workCode:y.workCode,panoIndex:y.panoIndex},x=null!==(a=g.fov)&&void 0!==a?a:60,w=null!==(s=g.longitude)&&void 0!==s?s:y.longitude,M=Dr(null!==(l=g.latitude)&&void 0!==l?l:function(e){switch(e){case"Floorplan":case"Mapview":return!0;default:return!1}}(y.mode)?y.latitude:f.defaultLatitude,f.minLatitude,f.maxLatitude),E=Dr(null!==(u=g.distance)&&void 0!==u?u:f.defaultDistance,0,t.distanceFromModel(f.models,x,f.camera.aspect)),C=null!==(h=null!==(d=null===(c=g.offset)||void 0===c?void 0:c.clone())&&void 0!==d?d:null===(p=v.getResolvedObserver(b))||void 0===p?void 0:p.position.clone())&&void 0!==h?h:new n.Vector3;A.bounding.containsPoint(C)||A.bounding.getCenter(C);var S=A.bounding.getSize(new n.Vector3);return S.x*S.z<400&&A.bounding.getCenter(C),ie(ie({},b),{mode:"Mapview",longitude:w,latitude:M,fov:x,offset:C,distance:E})},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.panState,this.intersectMesh.dispose(),this.helper.remove(this.intersectMesh)},t.prototype.isReady=function(){return!1!==this.locationMotion.ended&&e.prototype.isReady.call(this)},t.prototype.updateWork=function(e,r,n,i){var o,a,s;this.userAction=i,this.works=e;var l=t.initAnimationEndState(ie(ie({},this),{initial:{currentState:ie(ie({},this.currentPano),this.camera.pose),duration:n,state:r,userAction:i}}));this.currentPano={workCode:l.workCode,panoIndex:l.panoIndex};var u={longitude:l.longitude,latitude:l.latitude,fov:l.fov},c={x:null===(o=l.offset)||void 0===o?void 0:o.x,y:null===(a=l.offset)||void 0===a?void 0:a.y,z:null===(s=l.offset)||void 0===s?void 0:s.z,distance:l.distance};return this.locationMotion.set(c,n).catch(fe),this.cameraMotion.set(u,n).catch(fe),!0},t.prototype.updateModel=function(t){e.prototype.updateModel.call(this,t)},t.prototype.updateTime=function(e,t){if(!this.destroyed){var r={},i={};this.locationMotion.ended||(this.locationMotion.update(e),r.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Dr(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,i.distance=this.locationMotion.value.distance,i.offset=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),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),ia(r)||this.models.setMaterial(r),ia(i)||this.setCamera(i)}},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(Ae())[1],t=this.locationMotion.getKeyFrameSegment(Ae())[1];return ie(ie({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,distance:t.value.distance,offset:new n.Vector3(t.value.x,t.value.y,t.value.z)})},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise((function(r){var n=e.initial;n.state,n.currentState;var i=n.duration,o=n.userAction;e.userAction=o;var a=t.initAnimationEndState(e),s={longitude:a.longitude,latitude:a.latitude,fov:a.fov},l={x:a.offset.x,y:a.offset.y,z:a.offset.z,distance:a.distance,modelAlpha:1,perspToOrtho:0,orthoDistance:a.distance};e.emit("initAnimation.start",$o("initAnimation.start",{state:a,userAction:e.userAction})),e.cameraMotion.set(s,i).catch(fe),e.locationMotion.set(l,i).then((function(){e.emit("initAnimation.end",$o("initAnimation.end",{state:a,userAction:e.userAction}))}),(function(t){var r=ie(ie(ie({},e.currentPano),{mode:e.mode}),oa(e.camera.pose));e.emit("initAnimation.end",$o("initAnimation.end",{state:r,userAction:e.userAction}))})).then((function(){r()}))}))},t.prototype.getForwardObserverOrNot=function(e){var t=this.models.intersectRaycaster(e)[0];if(!t)return null;var r=na(this.works.resolvedObservers,(function(e){return e.standingPosition.distanceTo(t.point)}),!0),n=r[0],i=r[1];return n&&i<10?n:null},t.prototype.coordinatesForOffset=function(e){var t=this.cameraMotion.value.fov,r=this.camera.aspect,i=this.renderer.getSize(new n.Vector2);return{longitude:2*e.x/(i.x*this.scissor.width)*t/95*r,latitude:-2*e.y/(i.y*this.scissor.height)*t/95}},t.prototype.requestMomentumMovement=function(e,t,r,i){var o=this;if(null!==this.inMomentumMovement){for(var a=ie({},r),s={longitude:0,latitude:0,x:0,y:0,z:0},l=0;l<i;l++)a.longitude*=.996,a.latitude*=.994008,a.x*=.99,a.y*=.99,a.z*=.99,s.longitude+=a.longitude,s.latitude+=a.latitude,s.x+=a.x,s.y+=a.y,s.z+=a.z;var u=Ko(this.cameraMotion.value.longitude+s.longitude),c=Dr(this.cameraMotion.value.latitude+s.latitude,this.minLatitude,this.maxLatitude),d=Dr(this.locationMotion.value.x+s.x,this.models.bounding.min.x,this.models.bounding.max.x),p=Dr(this.locationMotion.value.y+s.y,this.models.bounding.min.y,this.models.bounding.max.y),h=Dr(this.locationMotion.value.z+s.z,this.models.bounding.min.z,this.models.bounding.max.z),f=ie(ie({},this.currentPano),{mode:this.mode,longitude:u,latitude:c,offset:new n.Vector3(d,p,h),fov:this.cameraMotion.value.fov,distance:this.camera.pose.distance}),v=!(Math.abs(a.longitude)>1e-4||Math.abs(a.latitude)>1e-4||Math.abs(a.x)>1e-4||Math.abs(a.y)>1e-4||Math.abs(a.z)>1e-4),A=$o("gesture.momentum",ie(ie({},e),{isFirst:t,isFinal:v,state:f}));this.inMomentumMovement.event=A,this.emit("gesture.momentum",A),e.defaultPrevented?this.inMomentumMovement=null:this.inMomentumMovement&&(this.cameraMotion.set({longitude:u,latitude:c},0).catch(fe),this.locationMotion.set({x:f.offset.x,y:f.offset.y,z:f.offset.z},0).catch(fe),v?this.inMomentumMovement=null:Ne.shared.add((function(t,r){o.requestMomentumMovement(e,!1,a,0|r)}),!0,1))}},t.prototype.fixFinalState=function(e){var t=Ht(e,new n.Vector3),r=(new n.Vector3).copy(e.offset).sub(t.clone().multiplyScalar(e.distance)),i=new n.Raycaster(r,t);i.near=.5;var o=this.models.intersectRaycaster(i)[0];o&&(e.distance=Dr(o.distance,0,al),e.offset.copy(r).add(t.clone().multiplyScalar(e.distance)))},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var t=e.pointers.length,r=this.panState,i=0;"mouse"===e.pointerType&&(i=e.srcEvent.buttons),r&&0===i&&0!==r.buttons&&(i=r.buttons);var o=null==r?void 0:r.target;if(!o){var a=this.relativeClientPosition(e.center),s=new n.Raycaster;s.setFromCamera(a,this.camera),s.near=.5,o=(new n.Vector3).copy(s.ray.direction).multiplyScalar(3).add(s.ray.origin);var l=this.models.intersectRaycaster(s)[0];if(l)o.copy(l.point);else{var u=(new n.Vector3).copy(this.camera.pose.offset).sub(this.camera.position),c=(new n.Plane).setFromNormalAndCoplanarPoint(u,this.camera.pose.offset);s.ray.intersectPlane(c,o)}}if(e.isFinal?delete this.panState:this.panState={target:o,buttons:i,pointerLength:t,x:e.center.x,y:e.center.y},void 0!==r&&r.pointerLength===t)if(t>1||2===i){var d={x:e.center.x-r.x,y:e.center.y-r.y},p=(new n.Vector3).copy(this.camera.position).sub(r.target).length();p*=Math.tan(this.camera.fov/2*Math.PI/180);var h=(new n.Vector3).copy(this.camera.pose.offset),f=2*d.x*p/this.element.clientHeight,v=2*d.y*p/this.element.clientHeight,A=new n.Vector3;A.setFromMatrixColumn(this.camera.matrix,0),A.multiplyScalar(-f),h.add(A),this.camera.pose.latitude<Math.PI/12?A.setFromMatrixColumn(this.camera.matrix,1):(A.setFromMatrixColumn(this.camera.matrix,0),A.crossVectors(this.camera.up,A)),A.multiplyScalar(v),h.add(A),h.clamp(this.models.bounding.min,this.models.bounding.max);var m=ie(ie({},this.currentPano),{mode:this.mode,longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:h,distance:this.camera.pose.distance});if(e.state=m,this.emit("gesture.pan",e),e.defaultPrevented)return;if(this.locationMotion.set({x:m.offset.x,y:m.offset.y,z:m.offset.z},0).catch(fe),e.isFinal&&(this.fixFinalState(m),this.locationMotion.set({distance:m.distance,x:m.offset.x,y:m.offset.y,z:m.offset.z},0).catch(fe)),e.isFinal){var g=2*e.velocityX*p/this.element.clientHeight,y=2*e.velocityY*p/this.element.clientHeight,b=new n.Vector3,x=new n.Vector3;b.setFromMatrixColumn(this.camera.matrix,0),b.multiplyScalar(-g),x.add(b),this.camera.pose.latitude<Math.PI/4?b.setFromMatrixColumn(this.camera.matrix,1):(b.setFromMatrixColumn(this.camera.matrix,0),b.crossVectors(this.camera.up,b)),b.multiplyScalar(y),x.add(b),this.inMomentumMovement={uuid:Fi()},this.requestMomentumMovement(e,!0,{longitude:0,latitude:0,x:x.x,y:x.y,z:x.z},0)}}else{(d={x:e.center.x-r.x,y:e.center.y-r.y}).x*=-1,d.y*=-1;var w=this.coordinatesForOffset(d),M=Ko(this.cameraMotion.value.longitude+w.longitude),E=Dr(this.cameraMotion.value.latitude+w.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&&(E=this.cameraMotion.value.latitude);m=ie(ie({},this.currentPano),{mode:this.mode,longitude:M,latitude:E,fov:this.camera.pose.fov,offset:this.camera.pose.offset,distance:this.camera.pose.distance});if(e.isFinal&&this.fixFinalState(m),e.state=m,this.emit("gesture.pan",e),e.defaultPrevented)return;if(this.cameraMotion.set({longitude:m.longitude,latitude:m.latitude},0).catch(fe),this.locationMotion.set({distance:m.distance,x:m.offset.x,y:m.offset.y,z:m.offset.z},0).catch(fe),e.isFinal){var C=-1*e.velocityX,S=-1*e.velocityY;this.inMomentumMovement={uuid:Fi()},this.requestMomentumMovement(e,!0,ie(ie({},this.coordinatesForOffset({x:C,y:S})),{x:0,y:0,z:0}),0)}}},t.prototype.onPinchGesture=function(e){var t;this.userAction=e.userAction,this.stopMomentumMovement();var r=null===(t=this.pinchState)||void 0===t?void 0:t.distance;if(e.isFirst)this.pinchState={x:e.center.x,y:e.center.y,distance:this.locationMotion.value.distance};else if(e.isFinal&&(delete this.panState,delete this.pinchState),void 0!==r){var n=Dr(r/e.scale,0,al);e.state.distance=n,this.emit("gesture.pinch",e),e.defaultPrevented||(this.locationMotion.set({distance:n},0).catch(fe),e.type="gesture.pan",this.onPanGesture(e))}},t.prototype.onMouseMove=function(e){var t,r;if(this.intersectMesh.parent&&!this.panState&&(this.emit("gesture.mousemove",e),!e.defaultPrevented)){var i=e.center.raycaster;if(i.near=.5,e.isFinal&&this.intersectMesh.parent&&!0===this.intersectMesh.visible)this.hideIntersectMesh();else{var o=this.models.intersectRaycaster(i)[0],a=$o("intersect.update",{raycaster:i,intersection:null!=o?o:null,object:this.intersectMesh});if(this.emit("intersect.update",a),a.defaultPrevented)this.hideIntersectMesh();else if(o){var s=null!==(r=null===(t=o.face)||void 0===t?void 0:t.normal)&&void 0!==r?r:(new n.Vector3).copy(i.ray.direction).multiplyScalar(-1),l=s.clone().multiplyScalar(.05),u=o.point.clone().add(l);this.intersectMesh.position.copy(u);var c=u.clone().add(l);if(this.intersectMesh.lookAt(c),Math.abs(s.y)>.99){var d=this.camera.position.clone().sub(u);this.intersectMesh.rotation.z=-Math.atan2(d.z,d.x)}this.intersectMesh.visible=!0,this.needsRender=!0}else this.hideIntersectMesh()}}},t.prototype.onMouseWheel=function(e){if(this.userAction=e.userAction,this.stopMomentumMovement(),e.isFinal){var t=e.state;if(this.fixFinalState(t),this.emit("gesture.mousewheel",e),e.defaultPrevented)return;var r={x:t.offset.x,y:t.offset.y,z:t.offset.z,distance:t.distance};this.locationMotion.set(r,0).catch(fe)}else{var n=Dr(this.locationMotion.value.distance-e.center.delta/2,0,al);if(e.state.distance=n,this.emit("gesture.mousewheel",e),e.defaultPrevented)return;this.locationMotion.set({distance:n},0).catch(fe)}},t.prototype.onTapGesture=function(e){var t=this;this.userAction=e.userAction,this.stopMomentumMovement();var r=e.center.raycaster,i=this.getForwardObserverOrNot(r);if(i){var o={longitude:this.camera.pose.longitude,latitude:0},a=ie(ie({},e.state),{mode:"Panorama",workCode:i.pano.workCode,panoIndex:i.pano.panoIndex,longitude:o.longitude,latitude:o.latitude,offset:i?i.position.clone():new n.Vector3,distance:0});if(e.state=a,this.emit("gesture.tap",e),!e.defaultPrevented&&(this.emit("pano.select",$o("pano.select",{prevPano:this.currentPano,state:a,userAction:e.userAction,options:o,progress:0,error:null})),i&&i.active)){var s=this.currentTapId=Fi();this.preloadPano(i.pano).then((function(e){t.currentTapId===s&&t.emit("pano.request",$o("pano.request",{userAction:!0,prevPano:t.currentPano,progress:0,state:a,options:o,error:null}))}))}}else this.emit("gesture.tap",e)},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.needsRender=!0},t.prototype.postProcessing=function(e,t){var r;if(!this.destroyed)return"edl"===t?this.edlEffect.render(e):"hq"===t?null===(r=this.hqEffect)||void 0===r?void 0:r.render(e):void 0},t}(la);function ll(e){return null==e}var ul={type:"move"},cl=function(){function e(){this._targetRay=null,this._grip=null,this._hand=null,this._axes=[0,0]}return e.prototype.getHandSpace=function(){return null===this._hand&&(this._hand=new n.Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand},e.prototype.getTargetRaySpace=function(){return null===this._targetRay&&(this._targetRay=new n.Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new n.Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new n.Vector3),this._targetRay},e.prototype.getGripSpace=function(){return null===this._grip&&(this._grip=new n.Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new n.Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new n.Vector3),this._grip},e.prototype.dispatchEvent=function(e){return null!==this._targetRay&&this._targetRay.dispatchEvent(e),null!==this._grip&&this._grip.dispatchEvent(e),null!==this._hand&&this._hand.dispatchEvent(e),this},e.prototype.disconnect=function(e){return this.dispatchEvent({type:"disconnected",data:e}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this},e.prototype.getAxes=function(){return this._axes},e.prototype.update=function(e,t,r){var i=null,o=null,a=null,s=this._targetRay,l=this._grip,u=this._hand;if(e&&e.gamepad&&e.gamepad.axes&&(this._axes=[e.gamepad.axes[2],e.gamepad.axes[3]]),e&&"visible-blurred"!==t.session.visibilityState)if(null!==s&&null!==(i=t.getPose(e.targetRaySpace,r))&&(s.matrix.fromArray(i.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),i.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(i.linearVelocity)):s.hasLinearVelocity=!1,i.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(i.angularVelocity)):s.hasAngularVelocity=!1,this.dispatchEvent(ul)),u&&e.hand){a=!0;for(var c=0,d=e.hand.values();c<d.length;c++){var p=d[c],h=t.getJointPose(p,r);if(void 0===u.joints[p.jointName]){var f=new n.Group;f.matrixAutoUpdate=!1,f.visible=!1,u.joints[p.jointName]=f,u.add(f)}var v=u.joints[p.jointName];null!==h&&(v.matrix.fromArray(h.transform.matrix),v.matrix.decompose(v.position,v.rotation,v.scale),v.jointRadius=h.radius),v.visible=null!==h}var A=u.joints["index-finger-tip"],m=u.joints["thumb-tip"],g=A.position.distanceTo(m.position);u.inputState.pinching&&g>.025?(u.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!u.inputState.pinching&&g<=.015&&(u.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==l&&e.gripSpace&&null!==(o=t.getPose(e.gripSpace,r))&&(l.matrix.fromArray(o.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),o.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(o.linearVelocity)):l.hasLinearVelocity=!1,o.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(o.angularVelocity)):l.hasAngularVelocity=!1);return null!==s&&(s.visible=null!==i),null!==l&&(l.visible=null!==o),null!==u&&(u.visible=null!==a),this},e}(),dl=function(){function e(e,t,r){var i,o,a,s,l;this.isPanorama=null===(i=null==r?void 0:r.isPanorama)||void 0===i||i,this.machineType=null!==(o=null==r?void 0:r.machineType)&&void 0!==o?o:"Pico",this.renderer=e,this.gl=t,this.enabled=!1,this.session=null,this.referenceSpaceType=null!==(a=null==r?void 0:r.referenceSpaceType)&&void 0!==a?a:"local-floor",this.referenceSpace=null,this.onSessionStartCallback=null!==(s=null==r?void 0:r.onSessionStart)&&void 0!==s?s:fe,this.onSessionEndCallback=null!==(l=null==r?void 0:r.onSessionEnd)&&void 0!==l?l:fe,this.controllers=[new cl,new cl],this.inputSourcesMap=new Map,this.cameraVR=new n.ArrayCamera,this.cameraL=new n.PerspectiveCamera,this.cameraR=new n.PerspectiveCamera,this.cameraL.viewport=new n.Vector4,this.cameraR.viewport=new n.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 n.Vector3,this.cameraRPos=new n.Vector3}return e.prototype.getController=function(e){var t=this.controllers[e];return t||console.warn("no controller find"),t.getTargetRaySpace()},e.prototype.getControllerGrip=function(e){var t=this.controllers[e];return t||console.warn("no controller find"),t.getGripSpace()},e.prototype.getCameras=function(){return{cameraL:this.cameraL,cameraR:this.cameraR,cameraVR:this.cameraVR}},e.prototype.updateCamera=function(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.getInverse(e.matrixWorld)},e.prototype.setProjectionFromUnion=function(e,t,r){this.cameraLPos.setFromMatrixPosition(t.matrixWorld),this.cameraRPos.setFromMatrixPosition(r.matrixWorld);var n=this.cameraLPos.distanceTo(this.cameraRPos),i=t.projectionMatrix.elements,o=r.projectionMatrix.elements,a=i[14]/(i[10]-1),s=i[14]/(i[10]+1),l=(i[9]+1)/i[5],u=(i[9]-1)/i[5],c=(i[8]-1)/i[0],d=(o[8]+1)/o[0],p=a*c,h=a*d,f=n/(-c+d),v=f*-c;t.matrixWorld.decompose(e.position,e.quaternion,e.scale),e.translateX(v),e.translateZ(f),e.matrixWorld.compose(e.position,e.quaternion,e.scale),e.matrixWorldInverse.getInverse(e.matrixWorld);var A=a+f,m=s+f,g=p-v,y=h+(n-v),b=l*s/m*A,x=u*s/m*A;e.projectionMatrix.makePerspective(g,y,b,x,A,m)},e.prototype.getCamera=function(e){this.cameraVR.near=this.cameraR.near=this.cameraL.near=e.near,this.cameraVR.far=this.cameraR.far=this.cameraL.far=e.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 t=e.parent,r=this.cameraVR.cameras;this.updateCamera(this.cameraVR,t);for(var n=0;n<r.length;n++)this.updateCamera(r[n],t);e.matrixWorld.copy(this.cameraVR.matrixWorld);for(var i=e.children,o=(n=0,i.length);n<o;n++)i[n].updateMatrixWorld(!0);return 2===r.length?this.setProjectionFromUnion(this.cameraVR,this.cameraL,this.cameraR):this.cameraVR.projectionMatrix.copy(this.cameraL.projectionMatrix),this.cameraVR},e.prototype.updateInputSources=function(e){if(this.session){for(var t=this.session.inputSources,r=0;r<this.controllers.length;r++)this.inputSourcesMap.set(t[r],this.controllers[r]);for(r=0;r<e.removed.length;r++){var n=e.removed[r];(i=this.inputSourcesMap.get(n))&&(i.dispatchEvent({type:"disconnected",data:n}),this.inputSourcesMap.delete(n))}for(r=0;r<e.added.length;r++){var i;n=e.added[r];(i=this.inputSourcesMap.get(n))&&i.dispatchEvent({type:"connected",data:n})}}else console.warn("session is lose!")},e.prototype.onSessionEvent=function(e){var t=this.inputSourcesMap.get(e.inputSource);t&&t.dispatchEvent({type:e.type})},e.prototype.onSessionEnd=function(){this.inputSourcesMap.forEach((function(e,t){e.disconnect(t)})),this.inputSourcesMap.clear(),this.renderer.setFramebuffer(null),this.renderer.setRenderTarget(this.renderer.getRenderTarget()),this.isPresenting=!1,this.session=null,Ne.shared.setContext(null),this.onSessionEndCallback()},e.prototype.onRequestReferenceSpace=function(e){this.referenceSpace=e,this.isPresenting=!0,this.session&&this.onSessionStartCallback(this.session)},e.prototype.setSession=function(e){var t=this;if(this.session=e,this.session){this.session.addEventListener("select",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("selectstart",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("selectend",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("squeeze",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("squeezestart",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("squeezeend",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("end",(function(e){t.onSessionEnd()}));var r=this.gl.getContextAttributes();this.gl.makeXRCompatible().then((function(){var e={antialias:null==r?void 0:r.antialias,alpha:null==r?void 0:r.alpha,depth:null==r?void 0:r.depth,stencil:null==r?void 0:r.stencil,framebufferScaleFactor:1};if(t.session){switch(t.machineType){case"Pico":t.session.updateRenderState({baseLayer:new XRWebGLLayer(t.session,t.gl,e)});break;case"Oculus":t.session.updateRenderState({layers:[new XRWebGLLayer(t.session,t.gl,e)]});break;default:t.machineType}t.session.requestReferenceSpace(t.referenceSpaceType).then((function(e){t.onRequestReferenceSpace(e)})),t.session.addEventListener("inputsourceschange",(function(e){t.updateInputSources(e)}))}else console.error("session is lose while set session!")}))}},e}(),pl=function(e){function t(){var t=e.call(this)||this;t.type="LineSegmentsGeometry";return t.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),t.setAttribute("position",new n.Float32BufferAttribute([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),t.setAttribute("uv",new n.Float32BufferAttribute([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2)),t}return ne(t,e),t.prototype.applyMatrix4=function(e){var t=this.attributes.instanceStart,r=this.attributes.instanceEnd;return void 0!==t&&(t.applyMatrix4(e),r.applyMatrix4(e),t.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},t.prototype.setPositions=function(e){var t;t=e instanceof Float32Array?e:Array.isArray(e)?new Float32Array(e):new Float32Array;var r=new n.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceStart",new n.InterleavedBufferAttribute(r,3,0)),this.setAttribute("instanceEnd",new n.InterleavedBufferAttribute(r,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this},t.prototype.setColors=function(e){var t;t=e instanceof Float32Array?e:Array.isArray(e)?new Float32Array(e):new Float32Array;var r=new n.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceColorStart",new n.InterleavedBufferAttribute(r,3,0)),this.setAttribute("instanceColorEnd",new n.InterleavedBufferAttribute(r,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 n.WireframeGeometry(e.geometry)),this},t.prototype.fromLineSegments=function(e){var t=e.geometry;if(t instanceof n.Geometry){var r=(new n.BufferGeometry).fromGeometry(t);this.setPositions(r.attributes.position.array)}else t instanceof n.BufferGeometry&&this.setPositions(t.attributes.position.array);return this},t.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new n.Box3);var e=this.attributes.instanceStart,t=this.attributes.instanceEnd;if(void 0!==e&&void 0!==t){var r=new n.Box3;this.boundingBox.setFromBufferAttribute(e),r.setFromBufferAttribute(t),this.boundingBox.union(r)}},t.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new n.Sphere),null===this.boundingBox&&this.computeBoundingBox();var e=this.attributes.instanceStart,t=this.attributes.instanceEnd;if(void 0!==e&&void 0!==t){var r=this.boundingSphere.center;this.boundingBox.getCenter(r);for(var i=0,o=new n.Vector3,a=0,s=e.count;a<s;a++)o.fromBufferAttribute(e,a),i=Math.max(i,r.distanceToSquared(o)),o.fromBufferAttribute(t,a),i=Math.max(i,r.distanceToSquared(o));this.boundingSphere.radius=Math.sqrt(i),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}(n.InstancedBufferGeometry);Object.assign(pl.prototype,{isLineSegmentsGeometry:!0});var hl={uniforms:n.UniformsUtils.merge([n.UniformsLib.common,n.UniformsLib.fog,{linewidth:{value:1},resolution:{value:new n.Vector2(1,1)},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1},opacity:{value:1}}]),vertexShader:"\n\t\t#include <common>\n\t\t#include <color_pars_vertex>\n\t\t#include <fog_pars_vertex>\n\t\t#include <logdepthbuf_pars_vertex>\n\t\t#include <clipping_planes_pars_vertex>\n\n\t\tuniform float linewidth;\n\t\tuniform vec2 resolution;\n\n\t\tattribute vec3 instanceStart;\n\t\tattribute vec3 instanceEnd;\n\n\t\tattribute vec3 instanceColorStart;\n\t\tattribute vec3 instanceColorEnd;\n\n\t\tvarying vec2 vUv;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashScale;\n\t\t\tattribute float instanceDistanceStart;\n\t\t\tattribute float instanceDistanceEnd;\n\t\t\tvarying float vLineDistance;\n\n\t\t#endif\n\n\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t// conservative estimate of the near plane\n\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#ifdef USE_COLOR\n\n\t\t\t\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n\t\t\t#endif\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\n\t\t\t#endif\n\n\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\tvUv = uv;\n\n\t\t\t// camera space\n\t\t\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n\t\t\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\tif ( perspective ) {\n\n\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// clip space\n\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t// ndc space\n\t\t\tvec2 ndcStart = clipStart.xy / clipStart.w;\n\t\t\tvec2 ndcEnd = clipEnd.xy / clipEnd.w;\n\n\t\t\t// direction\n\t\t\tvec2 dir = ndcEnd - ndcStart;\n\n\t\t\t// account for clip-space aspect ratio\n\t\t\tdir.x *= aspect;\n\t\t\tdir = normalize( dir );\n\n\t\t\t// perpendicular to dir\n\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\n\t\t\t// undo aspect ratio adjustment\n\t\t\tdir.x /= aspect;\n\t\t\toffset.x /= aspect;\n\n\t\t\t// sign flip\n\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t// endcaps\n\t\t\tif ( position.y < 0.0 ) {\n\n\t\t\t\toffset += - dir;\n\n\t\t\t} else if ( position.y > 1.0 ) {\n\n\t\t\t\toffset += dir;\n\n\t\t\t}\n\n\t\t\t// adjust for linewidth\n\t\t\toffset *= linewidth;\n\n\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\toffset /= resolution.y;\n\n\t\t\t// select end\n\t\t\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t// back to clip space\n\t\t\toffset *= clip.w;\n\n\t\t\tclip.xy += offset;\n\n\t\t\tgl_Position = clip;\n\n\t\t\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t#include <logdepthbuf_vertex>\n\t\t\t#include <clipping_planes_vertex>\n\t\t\t#include <fog_vertex>\n\n\t\t}\n\t\t",fragmentShader:"\n\t\tuniform vec3 diffuse;\n\t\tuniform float opacity;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashSize;\n\t\t\tuniform float gapSize;\n\n\t\t#endif\n\n\t\tvarying float vLineDistance;\n\n\t\t#include <common>\n\t\t#include <color_pars_fragment>\n\t\t#include <fog_pars_fragment>\n\t\t#include <logdepthbuf_pars_fragment>\n\t\t#include <clipping_planes_pars_fragment>\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\t#include <clipping_planes_fragment>\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\tif ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t#endif\n\n\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\tfloat a = vUv.x;\n\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t}\n\n\t\t\tvec4 diffuseColor = vec4( diffuse, opacity );\n\n\t\t\t#include <logdepthbuf_fragment>\n\t\t\t#include <color_fragment>\n\n\t\t\tgl_FragColor = vec4( diffuseColor.rgb, diffuseColor.a );\n\n\t\t\t#include <tonemapping_fragment>\n\t\t\t#include <fog_fragment>\n\t\t\t#include <premultiplied_alpha_fragment>\n\n\t\t}\n\t\t"},fl=function(e){function t(t){var r=e.call(this,{uniforms:n.UniformsUtils.clone(hl.uniforms),vertexShader:hl.vertexShader,fragmentShader:hl.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(e){this.uniforms.diffuse.value=e}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(e){this.uniforms.linewidth.value=e}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(e){this.uniforms.dashScale.value=e}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(e){this.uniforms.dashSize.value=e}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(e){this.uniforms.gapSize.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}}}),r.setValues(t),r}return ne(t,e),t}(n.ShaderMaterial);Object.assign(fl.prototype,{isLineMaterial:!0});var vl=function(e){function t(t,r){var n=e.call(this)||this;return n.type="LineSegments2",n.geometry=void 0!==t?t:new pl,n.material=void 0!==r?r:new fl({color:16777215*Math.random()}),n}return ne(t,e),t.prototype.computeLineDistances=function(){for(var e=this.geometry,t=e.attributes.instanceStart,r=e.attributes.instanceEnd,i=new Float32Array(2*t.count),o=new n.Vector3,a=new n.Vector3,s=0,l=0,u=t.count;s<u;s++,l+=2)o.fromBufferAttribute(t,s),a.fromBufferAttribute(r,s),i[l]=0===l?0:i[l-1],i[l+1]=i[l]+o.distanceTo(a);var c=new n.InstancedInterleavedBuffer(i,2,1);return e.setAttribute("instanceDistanceStart",new n.InterleavedBufferAttribute(c,1,0)),e.setAttribute("instanceDistanceEnd",new n.InterleavedBufferAttribute(c,1,1)),this},t.prototype.raycast=function(e,t){null===e.camera&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2.');var r=e.ray,i=e.camera,o=i.projectionMatrix,a=this.geometry,s=this.material,l=s.resolution,u=s.linewidth,c=a.attributes.instanceStart,d=a.attributes.instanceEnd,p=new n.Vector4,h=new n.Vector4,f=new n.Vector4,v=new n.Vector3,A=new n.Matrix4,m=new n.Line3,g=new n.Vector3;r.at(1,f),f.w=1,f.applyMatrix4(i.matrixWorldInverse),f.applyMatrix4(o),f.multiplyScalar(1/f.w),f.x*=l.x/2,f.y*=l.y/2,f.z=0,v.copy(f);var y=this.matrixWorld;A.multiplyMatrices(i.matrixWorldInverse,y);for(var b=0,x=c.count;b<x;b++){p.fromBufferAttribute(c,b),h.fromBufferAttribute(d,b),p.w=1,h.w=1,p.applyMatrix4(A),h.applyMatrix4(A),p.applyMatrix4(o),h.applyMatrix4(o),p.multiplyScalar(1/p.w),h.multiplyScalar(1/h.w);var w=p.z<-1&&h.z<-1,M=p.z>1&&h.z>1;if(!w&&!M){p.x*=l.x/2,p.y*=l.y/2,h.x*=l.x/2,h.y*=l.y/2,m.start.copy(p),m.start.z=0,m.end.copy(h),m.end.z=0;var E=m.closestPointToPointParameter(v,!0);m.at(E,g);var C=n.MathUtils.lerp(p.z,h.z,E),S=C>=-1&&C<=1,I=v.distanceTo(g)<.5*u;if(S&&I){m.start.fromBufferAttribute(c,b),m.end.fromBufferAttribute(d,b),m.start.applyMatrix4(y),m.end.applyMatrix4(y);var P=new n.Vector3,T=new n.Vector3;r.distanceSqToSegment(m.start,m.end,T,P),t.push({point:T,pointOnLine:P,distance:r.origin.distanceTo(T),object:this,faceIndex:b})}}}},t}(n.Mesh);Object.assign(vl.prototype,{isLineSegments2:!0});var Al=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.type="Line2",n}return ne(t,e),t}(vl);Object.assign(Al.prototype,{isLine2:!0});var ml=function(e){function t(){var t=e.call(this)||this;return t.type="LineGeometry",t}return ne(t,e),t.prototype.setPositions=function(t){for(var r=t.length-3,n=new Float32Array(2*r),i=0;i<r;i+=3)n[2*i]=t[i],n[2*i+1]=t[i+1],n[2*i+2]=t[i+2],n[2*i+3]=t[i+3],n[2*i+4]=t[i+4],n[2*i+5]=t[i+5];return e.prototype.setPositions.call(this,n),this},t.prototype.setColors=function(t){for(var r=t.length-3,n=new Float32Array(2*r),i=0;i<r;i+=3)n[2*i]=t[i],n[2*i+1]=t[i+1],n[2*i+2]=t[i+2],n[2*i+3]=t[i+3],n[2*i+4]=t[i+4],n[2*i+5]=t[i+5];return e.prototype.setColors.call(this,n),this},t.prototype.fromLine=function(e){var t=e.geometry;if(t instanceof n.Geometry){var r=(new n.BufferGeometry).fromGeometry(t);this.setPositions(r.attributes.position.array)}else t instanceof n.BufferGeometry&&this.setPositions(t.attributes.position.array);return this},t.prototype.copy=function(){return this},t}(pl);Object.assign(ml.prototype,{isLineGeometry:!0});var gl=14467195,yl=null,bl=function(e){function t(t,r){void 0===t&&(t=new n.Vector3),void 0===r&&(r=new n.Vector3);var i=e.call(this)||this;i.type="FiveLine",i.needsRender=!0;var o=new ml,a=new fl({color:gl,linewidth:2,dashScale:20,dashed:!1});i.line=new Al(o,a);var s=new n.BufferGeometry,l=new n.PointsMaterial({color:gl,size:8,map:yl||(yl=(new n.TextureLoader).load("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==")),sizeAttenuation:!1,transparent:!0});return i.points=new n.Points(s,l),i.points.renderOrder=11,i.points.frustumCulled=!1,i.setPoints(t,r),i.add(i.line,i.points),i}return ne(t,e),Object.defineProperty(t,"version",{get:function(){return"6.0.0-alpha.12"},enumerable:!1,configurable:!0}),t.prototype.setPoints=function(e,t){var r=[].concat(e.toArray(),t.toArray());this.points.geometry.setAttribute("position",new n.BufferAttribute(new Float32Array(r),3)),this.line.geometry.setPositions(r),this.line.computeLineDistances(),this.needsRender=!0},t.prototype.getPoints=function(){var e=this.points.geometry.attributes.position.array;return[new n.Vector3(e[0],e[1],e[2]),new n.Vector3(e[3],e[4],e[5])]},t.prototype.setMaterial=function(e){var t=this.line.material;for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];"dashed"===r?(t.dashed=n,n?t.defines.USE_DASH="":delete t.defines.USE_DASH,t.needsUpdate=!0):t[r]=e[r]}this.needsRender=!0},t.prototype.setResolution=function(e,t){var r=this.line.material.resolution;r.x===e&&r.y===t||(r.set(e,t),this.needsRender=!0)},t}(n.Object3D);Object.assign(bl.prototype,{isFiveLine:!0});const xl={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"})};async function wl(e){const t=await fetch(e);if(t.ok)return t.json();throw new Error(t.statusText)}async function Ml(e,t,r=null,n=!0){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No basePath supplied");const i=await async function(e){if(!e)throw new Error("No basePath supplied");return await wl(`${e}/profilesList.json`)}(t);let o;if(e.profiles.some((e=>{const r=i[e];return r&&(o={profileId:e,profilePath:`${t}/${r.path}`,deprecated:!!r.deprecated}),!!o})),!o){if(!r)throw new Error("No matching profile name found");const e=i[r];if(!e)throw new Error(`No matching profile name found and default profile "${r}" missing.`);o={profileId:r,profilePath:`${t}/${e.path}`,deprecated:!!e.deprecated}}const a=await wl(o.profilePath);let s;if(n){let t;if(t="any"===e.handedness?a.layouts[Object.keys(a.layouts)[0]]:a.layouts[e.handedness],!t)throw new Error(`No matching handedness, ${e.handedness}, in profile ${o.profileId}`);t.assetPath&&(s=o.profilePath.replace("profile.json",t.assetPath))}return{profile:a,assetPath:s}}const El={xAxis:0,yAxis:0,button:0,state:xl.ComponentState.DEFAULT};class Cl{constructor(e){this.componentProperty=e.componentProperty,this.states=e.states,this.valueNodeName=e.valueNodeName,this.valueNodeProperty=e.valueNodeProperty,this.valueNodeProperty===xl.VisualResponseProperty.TRANSFORM&&(this.minNodeName=e.minNodeName,this.maxNodeName=e.maxNodeName),this.value=0,this.updateFromComponent(El)}updateFromComponent({xAxis:e,yAxis:t,button:r,state:n}){const{normalizedXAxis:i,normalizedYAxis:o}=function(e=0,t=0){let r=e,n=t;if(Math.sqrt(e*e+t*t)>1){const i=Math.atan2(t,e);r=Math.cos(i),n=Math.sin(i)}return{normalizedXAxis:.5*r+.5,normalizedYAxis:.5*n+.5}}(e,t);switch(this.componentProperty){case xl.ComponentProperty.X_AXIS:this.value=this.states.includes(n)?i:.5;break;case xl.ComponentProperty.Y_AXIS:this.value=this.states.includes(n)?o:.5;break;case xl.ComponentProperty.BUTTON:this.value=this.states.includes(n)?r:0;break;case xl.ComponentProperty.STATE:this.valueNodeProperty===xl.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(n):this.value=this.states.includes(n)?1:0;break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`)}}}class Sl{constructor(e,t){if(!(e&&t&&t.visualResponses&&t.gamepadIndices&&0!==Object.keys(t.gamepadIndices).length))throw new Error("Invalid arguments supplied");this.id=e,this.type=t.type,this.rootNodeName=t.rootNodeName,this.touchPointNodeName=t.touchPointNodeName,this.visualResponses={},Object.keys(t.visualResponses).forEach((e=>{const r=new Cl(t.visualResponses[e]);this.visualResponses[e]=r})),this.gamepadIndices=Object.assign({},t.gamepadIndices),this.values={state:xl.ComponentState.DEFAULT,button:void 0!==this.gamepadIndices.button?0:void 0,xAxis:void 0!==this.gamepadIndices.xAxis?0:void 0,yAxis:void 0!==this.gamepadIndices.yAxis?0:void 0}}get data(){return{id:this.id,...this.values}}updateFromGamepad(e){if(this.values.state=xl.ComponentState.DEFAULT,void 0!==this.gamepadIndices.button&&e.buttons.length>this.gamepadIndices.button){const t=e.buttons[this.gamepadIndices.button];this.values.button=t.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,t.pressed||1===this.values.button?this.values.state=xl.ComponentState.PRESSED:(t.touched||this.values.button>xl.ButtonTouchThreshold)&&(this.values.state=xl.ComponentState.TOUCHED)}void 0!==this.gamepadIndices.xAxis&&e.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=e.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===xl.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>xl.AxisTouchThreshold&&(this.values.state=xl.ComponentState.TOUCHED)),void 0!==this.gamepadIndices.yAxis&&e.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=e.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===xl.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>xl.AxisTouchThreshold&&(this.values.state=xl.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach((e=>{e.updateFromComponent(this.values)}))}}class Il{constructor(e,t,r){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No profile supplied");this.xrInputSource=e,this.assetUrl=r,this.id=t.profileId,this.layoutDescription=t.layouts[e.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach((e=>{const t=this.layoutDescription.components[e];this.components[e]=new Sl(e,t)})),this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const e=[];return Object.values(this.components).forEach((t=>{e.push(t.data)})),e}updateFromGamepad(){Object.values(this.components).forEach((e=>{e.updateFromGamepad(this.xrInputSource.gamepad)}))}}class Pl extends e.Object3D{constructor(){super(),this.motionController=null,this.envMap=null}setEnvironmentMap(e){return this.envMap==e||(this.envMap=e,this.traverse((e=>{e.isMesh&&(e.material.envMap=this.envMap,e.material.needsUpdate=!0)}))),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach((e=>{Object.values(e.visualResponses).forEach((e=>{const{valueNode:t,minNode:r,maxNode:n,value:i,valueNodeProperty:o}=e;t&&(o===xl.VisualResponseProperty.VISIBILITY?t.visible=i:o===xl.VisualResponseProperty.TRANSFORM&&(t.quaternion.copy(r.quaternion).slerp(n.quaternion,i),t.position.lerpVectors(r.position,n.position,i)))}))})))}}function Tl(t,r){!function(t,r){Object.values(t.components).forEach((t=>{const{type:n,touchPointNodeName:i,visualResponses:o}=t;if(n===xl.ComponentType.TOUCHPAD)if(t.touchPointNode=r.getObjectByName(i),t.touchPointNode){const r=new e.SphereGeometry(.001),n=new e.MeshBasicMaterial({color:255}),i=new e.Mesh(r,n);t.touchPointNode.add(i)}else console.warn(`Could not find touch dot, ${t.touchPointNodeName}, in touchpad component ${t.id}`);Object.values(o).forEach((e=>{const{valueNodeName:t,minNodeName:n,maxNodeName:i,valueNodeProperty:o}=e;if(o===xl.VisualResponseProperty.TRANSFORM){if(e.minNode=r.getObjectByName(n),e.maxNode=r.getObjectByName(i),!e.minNode)return void console.warn(`Could not find ${n} in the model`);if(!e.maxNode)return void console.warn(`Could not find ${i} in the model`)}e.valueNode=r.getObjectByName(t),e.valueNode||console.warn(`Could not find ${t} in the model`)}))}))}(t.motionController,r),t.envMap&&r.traverse((e=>{e.isMesh&&(e.material.envMap=t.envMap,e.material.needsUpdate=!0)})),t.add(r)}class Bl{constructor(e=null){this.gltfLoader=e,this.path="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",this._assetCache={},this.gltfLoader||(this.gltfLoader=new yn)}createControllerModel(e){const t=new Pl;let r=null;return e.addEventListener("connected",(e=>{const n=e.data;"tracked-pointer"===n.targetRayMode&&n.gamepad&&Ml(n,this.path,"generic-trigger").then((({profile:e,assetPath:i})=>{t.motionController=new Il(n,e,i);const o=this._assetCache[t.motionController.assetUrl];if(o)r=o.scene.clone(),Tl(t,r);else{if(!this.gltfLoader)throw new Error("GLTFLoader not set.");this.gltfLoader.setPath(""),this.gltfLoader.load(t.motionController.assetUrl,(e=>{this._assetCache[t.motionController.assetUrl]=e,r=e.scene.clone(),Tl(t,r)}),null,(()=>{throw new Error(`Asset ${t.motionController.assetUrl} missing or malformed.`)}))}})).catch((e=>{console.warn(e)}))})),e.addEventListener("disconnected",(()=>{t.motionController=null,t.remove(r),r=null})),t}}var Rl=(new n.Matrix4).makeRotationAxis(new n.Vector3(0,1,0),Math.PI),Ol=new n.Vector3(-1,1,1),kl=function(e){function t(t){var r=e.call(this,t)||this;r.xrManager=new dl(r.renderer,r.renderer.getContext(),{onSessionStart:function(e){r.emit("xr.session.start",$o("xr.session.start",{session:e,machineType:r.xrManager.machineType}))},onSessionEnd:function(){r.emit("xr.session.end",$o("xr.session.end",{session:null,machineType:r.xrManager.machineType}))}}),r.xrControllerRay=[new n.Raycaster,new n.Raycaster],r.pointerLines=[new bl,new bl],"Oculus"===r.xrManager.machineType?r.pointerLines[1].visible=!1:r.pointerLines[0].visible=!1,r.pointerLines.forEach((function(e){e.setMaterial({color:new n.Vector3(1,1,1)}),e.points.material.depthTest=!1})),r.scene.add(r.pointerLines[0],r.pointerLines[1]),r.panoResources={},r.panoResources[r.locationMotion.keyframes[0].key=r.locationMotion.keyframes[1].key=Fi()]={panoId:Xe(r.currentPano),leftPanoPicture:null,position:r.camera.pose.offset.clone(),effect:"fade"},r.parallaxCameraMatrixs=[];var i=Ne.shared.getContext();if(!i)return console.error("获取session失败,请退出重试"),r;r.xrManager.setSession(i),r.controllerWrappers=[new n.Group,new n.Group],r.scene.add(r.controllerWrappers[0],r.controllerWrappers[1]);var o=r.xrManager.getController(0);r.controllerWrappers[0].add(o);var a=r.xrManager.getController(1);r.controllerWrappers[1].add(a);var s=new Bl,l=r.xrManager.getControllerGrip(0);l.add(s.createControllerModel(l)),r.controllerWrappers[0].add(l);var u=r.xrManager.getControllerGrip(1);return u.add(s.createControllerModel(u)),r.controllerWrappers[1].add(u),r.xrControllerState={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}return ne(t,e),t.parseArgs=function(r){if(r instanceof t)return r;var n=ie(ie({},r),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return e.parseArgs.call(this,n)},t.initAnimationEndState=function(t){var r=this.parseArgs(t),n=e.initAnimationEndState.call(this,r);return ie(ie({},n),{mode:"XRPanorama"})},t.prototype.moveToPano=function(e,t,r){var i,o,a,s,l=this;this.userAction=r,this.stopMomentumMovement();var u=this.works.getResolvedObserver(e);if(!u)throw new Error("Invalid PanoIndex");var c=this.imageOptions.size;if(void 0===c&&u){var d=u.images.up.match(/\/cube_(\d+)\//);d&&(c=Number(d[1]))}void 0===c&&(c=2048);var p=this.imageOptions.transform,h=function(e,t){return function(e,t){if(!t)return e;var r=e.match(/\d+_[a-z].png/);return e.substring(0,r.index)+t+"/"+e.substring(r.index)}(je(e,p,t))},f=ie({key:"pano.".concat(u.panoId)},Zn(this.imageOptions,["format","size","quality"])),v=u.images,A=null!==(o=null===(i=u.images.tiles)||void 0===i?void 0:i.filter((function(e){return e.size>c})))&&void 0!==o?o:null,m="pano:"+ei([v,f,p]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===m)return;var g=this.pendingTextureTask.panoId;null===(a=this.panoMeshes[g])||void 0===a||a.setProgress(0),this.emit("pano.texture.abort",$o("pano.texture.abort",{error:null,progress:0,meta:null,pano:u.pano})),this.pendingTextureTask.onError(new Error("texture aborted"))}var y,b=this.models.getMaterial()||{},x=b.pano0,w=b.pano1;if((null==x?void 0:x.map.name)===m?y=x:(null==w?void 0:w.map.name)===m&&(y=w),y){var M={panoId:u.panoId,effect:null!==(s=t.effect)&&void 0!==s?s:"fade",leftPanoPicture:{map:y.map,luminanceMap:y.luminanceMap,matrix:(new n.Matrix4).compose(u.position,u.quaternion,Ol)},position:u.position.clone()};this.doMoveToPano(u.pano,M,t)}else{var E="move-to-pano-"+u.panoId;this.pending.add(E),this.pendingTextureTask={panoId:u.panoId,hash:m,onLoad:function(e){var r;if(l.pending.delete(E),l.destroyed)e.body.dispose();else{e.body.name=m;var i={panoId:u.panoId,effect:null!==(r=t.effect)&&void 0!==r?r:"fade",leftPanoPicture:{map:e.body,luminanceMap:null,matrix:(new n.Matrix4).compose(u.position,u.quaternion,Ol)},position:u.position.clone()};l.doMoveToPano(u.pano,i,t)}},onError:function(e){l.pending.delete(E);var r=ie(ie(ie({},u.pano),{mode:l.mode}),oa(l.camera.pose));l.emit("pano.error",$o("pano.error",{error:e,userAction:l.userAction,options:t,prevPano:l.currentPano,progress:0,state:r})),l.emit("pano.cancel",$o("pano.cancel",{error:null,userAction:l.userAction,options:t,prevPano:l.currentPano,progress:0,state:r})),t.moveCancelCallback&&t.moveCancelCallback()}},Promise.all([this.tileLevelForFov&&A&&A.length?this.textureLoader.loadTiledCubeTexture(v,A,{tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:h,options:f},format:n.RGBAFormat,viaAjax:!0},void 0,void 0,(function(e){var t,r;l.emit("pano.texture.progress",$o("pano.texture.progress",{error:null,progress:e,meta:null,pano:u.pano})),(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===m&&(null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(e))}),this.renderer):this.textureLoader.loadCubeTexture(v,{imageURL:{transform:h,options:f},format:n.RGBAFormat},void 0,void 0,(function(e){var t,r;(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===m&&(null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(e)),l.emit("pano.texture.progress",$o("pano.texture.progress",{error:null,progress:e,meta:null,pano:u.pano}))}),this.renderer)]).then((function(e){var t,r,n=e[0];(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===m?(l.pendingTextureTask.onLoad(n),null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(0),delete l.pendingTextureTask,l.emit("pano.texture.success",$o("pano.texture.success",{error:null,progress:1,meta:n.meta,pano:u.pano}))):n.body.dispose()})).catch((function(e){var t,r;(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===m&&(l.pendingTextureTask.onError(e),null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(0),delete l.pendingTextureTask,l.emit("pano.texture.error",$o("pano.texture.error",{error:e,progress:0,meta:null,pano:u.pano})),l.emit("error",e))})),this.emit("pano.texture.load",$o("pano.texture.load",{error:null,progress:0,meta:null,pano:u.pano}))}},t.prototype.doMoveToPano=function(e,t,r){var i,o,a,s=this;void 0===r&&(r={});var l=Ae(),u=Fi();this.panoResources[u]=t;var c,d,p;if(this.locationMotion.ended){var h=this.locationMotion.getKeyFrameSegment(l);h[0];var f=h[1],v=this.locationMotion.value,A=this.panoResourceFromLocationMotionKeyframe(f).position,m=t.position;c=Math.max(A.distanceTo(m),1),d=[{key:f.key,progress:0,value:ie(ie({},v),{count:0})},{key:u,progress:1,value:{distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0,count:1}}],p=0}else{var g=this.locationMotion.getKeyFrameSegment(l),y=g[0],b=(f=g[1],v=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(y).position),x=(A=this.panoResourceFromLocationMotionKeyframe(f).position,m=t.position,f.value.count-v.count),w=Math.max(b.distanceTo(A),1)*x;c=w+Math.max(A.distanceTo(m),1),d=[{key:y.key,progress:0,value:ie({},v)},{key:f.key,progress:w/c,value:f.value},{key:u,progress:1,value:{count:f.value.count+1,distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0}}];var M=this.locationMotionKeyframesLength(this.locationMotion.keyframes),E=this.locationMotionKeyframesLength(d);p=this.locationMotion.getProgressVelocity(l)*M/E}var C=this.calculateMovingDuration(r.duration,c),S={longitude:r.longitude,latitude:r.latitude,fov:r.fov},I=ie(ie({},e),{mode:this.mode,longitude:null!==(i=S.longitude)&&void 0!==i?i:this.camera.pose.longitude,latitude:null!==(o=S.latitude)&&void 0!==o?o:this.camera.pose.latitude,fov:null!==(a=S.fov)&&void 0!==a?a:this.camera.pose.fov,offset:t.position.clone(),distance:0}),P=this.currentPano;this.emit("pano.moveTo",$o("pano.moveTo",{options:r,prevPano:P,progress:0,state:I,userAction:this.userAction,error:null})),r.moveStartCallback&&r.moveStartCallback(I),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=fe,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),this.cameraMotion.set(S,C).catch(fe),this.locationMotion.setKeyframes(d,C,p).then((function(){var t,i,o,a=ie(ie({},e),{mode:s.mode,longitude:s.camera.pose.longitude,latitude:s.camera.pose.latitude,fov:s.camera.pose.fov,offset:s.camera.pose.offset.clone(),distance:0});s.emit("pano.arrived",$o("pano.arrived",{options:r,prevPano:P,progress:1,state:a,userAction:s.userAction,error:null})),r.moveEndCallback&&r.moveEndCallback(a);var l=s.works.getResolvedObserver(s.currentPano);if(l&&l.video&&s.videoTexture&&s.videoTexture.image instanceof HTMLVideoElement){var u=Rl.clone().multiply(null!==(o=null===(i=null===(t=s.models.getMaterial())||void 0===t?void 0:t.pano1)||void 0===i?void 0:i.matrix)&&void 0!==o?o:new n.Matrix4).multiply(l.video.matrix),c={map:s.videoTexture,size:l.video.size,matrix:u,alpha:1},d=Fi(),p=s.videoTexture.image;p.setAttribute("uuid",d),ga().then((function(e){e&&l.video&&p.getAttribute("uuid")===d&&(p.oncanplay=function(){p.oncanplay=fe,p.play()},p.ontimeupdate=function(){p.currentTime>.5&&(p.ontimeupdate=fe,s.panoVideo.setMaterial(c))},p.src=l.video.source)})).catch((function(){p.removeAttribute("uuid")}))}}),(function(){s.emit("pano.cancel",$o("pano.cancel",{options:r,prevPano:P,progress:0,state:I,userAction:s.userAction,error:null})),r.moveCancelCallback&&r.moveCancelCallback()}))},t.prototype.checkSelectedPano=function(e){var t,r,i,o,a=this;this.stopMomentumMovement();var s=this.camera.getDirection(new n.Vector3).setY(0),l=null,u=this.works.getResolvedObserver(this.currentPano);if(!u)return null;var c=u.accessibleIds.filter((function(e){var t=Je(e);if(Ze(t,a.currentPano))return!1;var r=a.works.getResolvedObserver(t);return!!r&&(!(r.position.distanceTo(a.camera.position)>a.maxAccessibleDistance)&&(r.loadable||r.active))})),d=this.models.intersectRaycaster(e)[0];if(d){var p=na(c,(function(e){var t=a.works.getResolvedObserver(e);return t?t.standingPosition.clone().distanceTo(d.point):1/0}),!0),h=p[0],f=p[1];h&&f<this.panoTapTriggerRadius&&(l=null!==(t=this.works.getResolvedObserver(h))&&void 0!==t?t:null)}if(ll(l)){var v=this.getForwardObserverOrNot(e);v&&(l=v)}for(var A=0,m=this.locationMotion.keyframes;A<m.length;A++){var g=m[A],y=this.panoResourceFromLocationMotionKeyframe(g);if(!(g.progress<this.locationMotion.progress)&&(l&&y.panoId===l.panoId)){l=null;break}}if(ll(l))return!0===this.locationMotion.ended&&this.cameraBounce(),null;if(l&&!l.active){var b=l.panoId;this.panoMeshes[b]&&(this.panoMeshes[b].setDisabled(!1),this.panoMeshes[b].setLoading(!0))}var x={};if(l){x.effect="fade";for(var w=Math.PI/6,M=Math.PI/12,E=new n.Vector3(0,1,0),C=l.position.clone().setY(0).sub(u.position.clone().setY(0)).normalize(),S=C.clone().applyAxisAngle(E,w),I=C.clone().applyAxisAngle(E,-w),P=[],T=[],B=[],R=0,O=l.accessibleIds;R<O.length;R++){var k=Je(h=O[R]);if(!Ze(k,this.currentPano)&&!Ze(k,l.pano)){var D=this.works.getResolvedObserver(h);if(D){var F=D.position.clone().sub(l.position).setY(0);C.angleTo(F)<w?B.push(F):S.angleTo(F)<w?P.push(F):I.angleTo(F)<w&&T.push(F)}}}var L=(B.length>0?B:ue(ue([],P,!0),T,!0)).slice().sort((function(e,t){return e.angleTo(C)-t.angleTo(C)}))[0];L&&L.angleTo(s)>M&&(x.longitude=Math.atan2(-L.x,-L.z))}this.cameraMotion.value.latitude<-Math.PI/4&&(x.latitude=Dr(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(x.fov=this.defaultFov);var Q={workCode:l.pano.workCode,panoIndex:l.pano.panoIndex,mode:this.mode,longitude:null!==(r=x.longitude)&&void 0!==r?r:this.camera.pose.longitude,latitude:null!==(i=x.latitude)&&void 0!==i?i:this.camera.pose.latitude,fov:null!==(o=x.fov)&&void 0!==o?o:this.camera.pose.fov,distance:0,offset:l?l.position.clone():new n.Vector3};return this.emit("pano.select",$o("pano.select",{prevPano:this.currentPano,state:Q,userAction:!0,options:x,progress:0,error:null})),l&&l.active?(this.emit("pano.request",$o("pano.request",{userAction:!0,prevPano:this.currentPano,progress:0,state:Q,options:x,error:null})),l.pano):null},t.prototype.destroy=function(){e.prototype.destroy.call(this)},t.prototype.isReady=function(){return!1},t.prototype.updateTime=function(e,t){for(var r,i,o,a,s,l,u,c,d=this,p=[],h=2;h<arguments.length;h++)p[h-2]=arguments[h];var f={},v={},A=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),g=!1;if(!1===this.cameraMotion.ended&&(this.cameraMotion.update(e),v.longitude=this.cameraMotion.value.longitude,v.latitude=this.cameraMotion.value.latitude,v.fov=this.cameraMotion.value.fov),!1===this.locationMotion.ended){this.locationMotion.update(e);var y=this.locationMotion.getKeyFrameSegment(e),b=y[0],x=y[1],w=this.panoResourceFromLocationMotionKeyframe(b),M=this.panoResourceFromLocationMotionKeyframe(x),E=(new n.Vector3).copy(w.position),C=(new n.Vector3).copy(M.position),S=this.locationMotion.value.count-x.value.count+1;f.progress=S,f.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Dr(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,M.leftPanoPicture&&(S<1?w.leftPanoPicture&&(f.pano0=w.leftPanoPicture):f.pano0=M.leftPanoPicture,f.pano1=M.leftPanoPicture),g=f.useBlackTransition="instant"===M.effect||"montage"===M.effect,"fade"!==M.effect&&"montage"!==M.effect||(f.pano0&&w.leftPanoPicture&&(f.pano0={map:f.pano0.map,luminanceMap:f.pano0.luminanceMap,matrix:w.leftPanoPicture.matrix.clone().setPosition(M.position)}),E.copy(C)),v.distance=this.locationMotion.value.distance,v.offset=new n.Vector3(E.x+(C.x-E.x)*S,E.y+(C.y-E.y)*S,E.z+(C.z-E.z)*S);for(var I=[],P=[],T=0,B=this.locationMotion.keyframes;T<B.length;T++){var R=B[T],O=R.key,k=R.progress;void 0!==O&&(I.push(O),k>=this.locationMotion.progress&&P.push(O))}for(var D=0,F=Object.keys(this.panoResources);D<F.length;D++){var L=F[D];if(!(P.indexOf(L)>=0)){var Q=this.panoResources[L];if(Q.leftPanoPicture){var N=Q.leftPanoPicture.map;if(N){if(N===(null===(r=f.pano0)||void 0===r?void 0:r.map))continue;if(N===(null===(i=f.pano1)||void 0===i?void 0:i.map))continue;N instanceof Dt&&N.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(N.cubeRenderTarget),N.dispose(),Q.leftPanoPicture=null}}I.indexOf(L)>=0||delete this.panoResources[L]}}this.currentPano=Je(M.panoId),this.emit("pano.moving",$o("pano.moving",{userAction:this.userAction,prevPano:Je(A.panoId),state:ie(ie(ie(ie({},Je(m.panoId)),{mode:this.mode}),oa(this.camera.pose)),v),options:{},progress:this.locationMotion.progress,error:null}))}!1===ia(f)&&((null===(o=f.pano0)||void 0===o?void 0:o.map)&&f.pano0.map instanceof Dt&&!f.pano0.map.cubeRenderTarget&&(f.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(a=f.pano1)||void 0===a?void 0:a.map)&&f.pano1.map instanceof Dt&&!f.pano1.map.cubeRenderTarget&&(f.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),this.models.setMaterial(f)),!1===ia(v)&&this.setCamera(v);var V=p[1];if(V)if(this.xrManager.session){var U=this.xrManager.referenceSpace;if(U){var z=this.xrManager.cameraVR,q=this.xrManager.cameraL,H=this.xrManager.cameraR,_=[q,H],j=V.getViewerPose(U),G=new n.Vector3(0,0,0);if(j){var K;K=this.xrManager.session.renderState.baseLayer;var W=j.views;if(K){this.renderer.setFramebuffer(K.framebuffer);var Y=!1;W.length!==z.cameras.length&&(z.cameras.length=0,Y=!0),this.parallaxCameraMatrixs=[];var X=new n.Vector3,J=new n.Vector3;(new n.Matrix4).fromArray(W[0].transform.matrix).decompose(X,new n.Quaternion,new n.Vector3),(new n.Matrix4).fromArray(W[1].transform.matrix).decompose(J,new n.Quaternion,new n.Vector3),J.clone().sub(X).normalize();var Z=new n.Vector3,$=new n.Quaternion,ee=new n.Vector3;this.camera.matrix.decompose(Z,$,ee);for(var te=0;te<W.length;te++){var re=W[te],ne=K.getViewport(re),oe=_[te];oe.matrix.fromArray(re.transform.matrix);var ae=new n.Vector3,se=new n.Quaternion,le=new n.Vector3;oe.matrix.decompose(ae,se,le),G.copy(Z),oe.position.copy(Z),oe.quaternion.copy(se),oe.scale.copy(le),oe.updateMatrix(),oe.projectionMatrix.fromArray(re.projectionMatrix),oe.viewport.set(ne.x,ne.y,ne.width,ne.height),!0===Y&&z.cameras.push(oe)}j.views[0].transform.position,j.views[1].transform.position;var ue=this.xrManager.session.inputSources;for(te=0;te<this.xrManager.controllers.length;te++){var ce=this.xrManager.controllers[te],de=ue[te];ce.update(de,V,U);var pe=this.xrManager.getController(te),he=new n.Vector3(0,1.2,0),fe=pe.position.clone().add(G).sub(he);this.controllerWrappers[te].position.copy(new n.Vector3(0,0,0).add(G).sub(he)),this.xrControllerRay[te].set(fe,new n.Vector3(0,0,-1).applyEuler(pe.rotation));var ve=this.models.intersectRaycaster(this.xrControllerRay[te]);if(0===ve.length&&(ve=this.xrControllerRay[te].intersectObject(this.boundingMesh,!0)),ve.length>=1&&ve[0].face)if("Oculus"===this.xrManager.machineType?0===te:1===te){var Ae=this.xrControllerRay[te].intersectObject(this.xrCustomObjectsScene,!0),me=ve[0].face.normal,ge=me.clone().multiplyScalar(.05),ye=ve[0].point.clone().add(ge);this.intersectMesh.position.copy(ye);var be=ye.clone().add(ge);if(this.intersectMesh.lookAt(be),Math.abs(me.y)>.99){var xe=this.camera.position.clone().sub(ye);this.intersectMesh.rotation.z=-Math.atan2(xe.z,xe.x)}this.intersectMesh.visible=!0,this.needsRender=!0,Ae.length>0?(this.pointerLines[te].setPoints(fe,Ae[0].point),this.pointerLines[te].points.visible=!0,this.intersectMesh.visible=!1):(this.pointerLines[te].points.visible=!1,this.pointerLines[te].setPoints(fe,ve[0].point));var we=ve[0],Me=$o("intersect.update",{raycaster:null!==(s=this.xrControllerRay[1])&&void 0!==s?s:null,intersection:null!=we?we:null,object:this.intersectMesh});if(this.emit("intersect.update",Me),Me.defaultPrevented)return void this.hideIntersectMesh()}else this.pointerLines[te].setPoints(fe,ve[0].point)}var Ee=this.works.getResolvedObserver(this.currentPano);if(this.camera.pose.distance>.1||g){if(Ee)for(var Ce=0,Se=Object.keys(this.panoMeshes);Ce<Se.length;Ce++){var Ie=Se[Ce];(Fe=this.panoMeshes[Ie]).setOpacity(0),Fe.setCurrent(!1),Fe.updateTime&&Fe.updateTime(e,t)}}else if(Ee){var Pe=na(Ee.visibleIds,(function(e){var t=d.works.getResolvedObserver(e);return t?Ee.standingPosition.distanceTo(t.standingPosition):1/0}),!0),Te=Pe[1];Te=Dr(Te,2.5,1/0);for(var Be=Ee.visibleIds.concat(Xe(this.currentPano)),Re=this.getForwardObserverOrNot(),Oe=this.camera.getDirection(new n.Vector3),ke=0,De=Object.keys(this.panoMeshes);ke<De.length;ke++){Ie=De[ke];var Fe=this.panoMeshes[Ie],Le=this.works.getResolvedObserver(Ie);if(-1===Be.indexOf(Ie))Fe.setCurrent(!1),Fe.setOpacity(0);else if(Le)if(Le.loadable||Le.active){var Qe=Fe.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);Fe.setCurrent(!Fe.loading&&0===Fe.progress&&null!==Re&&Re.panoId===Ie),Fe.setOpacity(Qe<.01?0:Dr(Te/Qe*1.2,.65,.98));var Ne=this.camera.position.clone().setY(Fe.position.y),Ve=(new n.Vector3).copy(Fe.position).sub(Ne).normalize();if(Ie===Xe(this.currentPano)){var Ue=Dr((.5-Ne.distanceTo(Fe.position))/.5,0,1);Ve.multiplyScalar(1-Ue).add(Oe.clone().multiplyScalar(Ue))}Ve.length()>0&&Fe.quaternion.setFromEuler(new n.Euler(0,Math.atan2(Ve.x,Ve.z),0))}else Fe.setCurrent(!1),Fe.setOpacity(0);else Fe.setCurrent(!1),Fe.setOpacity(0);Fe.updateTime&&Fe.updateTime(e,t)}}var ze=function(){if(!1===d.tileLevelForFov)return 0;var e=new n.Vector2(4e3,4e3),t=m.panoId,r=d.works.getResolvedObserver(t),i=d.imageOptions.size;if(void 0===i&&r){var o=r.images.up.match(/\/cube_(\d+)\//);o&&(i=Number(o[1]))}void 0===i&&(i=2048);var a=0;i>=1024&&(a=1),i>=2048&&(a=2),i>=4096&&(a=3),i>=8192&&(a=4);var s=d.tileLevelForFov(q.fov,e);return s>a?s:0}(),qe=function(){var e=new n.PerspectiveCamera;e.applyMatrix4(z.matrix),e.position.set(0,0,0);var t=d.works.getResolvedObserver(m.panoId),r=null!=t?t:Ee;return r&&e.quaternion.premultiply(r.quaternion.clone().inverse()),e.updateProjectionMatrix(),e.updateMatrixWorld(!0),(new n.Frustum).setFromProjectionMatrix((new n.Matrix4).multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse))}();m.panoId===Xe(this.currentPano)&&(null===(l=m.leftPanoPicture)||void 0===l?void 0:l.map)instanceof Dt&&(m.leftPanoPicture.map.update(qe,ze),!0===m.leftPanoPicture.map.needsRender&&(this.needsRender=!0));var He=this.tiling.object.visible;if(ze>this.TILED_CUBE_TEXTURE_LEVEL&&this.initAnimationed){var _e=m.panoId,je=this.works.getResolvedObserver(_e);je&&qo(this.camera.position,je.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==_e&&this.tiling.cleanup(),this.tiling.panoId=_e,this.tiling.setResource(null!==(c=null===(u=je.images)||void 0===u?void 0:u.tiles)&&void 0!==c?c:[],this.enableIOSEDR&&je.images.luminance?je.images.luminance:null),this.tiling.setAllowHosts(je.work.allowHosts),this.tiling.setNetworkSubscribe(this.networkSubscribe),this.tiling.setRequestProxy(this.requestProxy),this.tiling.setRotation(je.quaternion),this.tiling.setPosition(je.position),this.tiling.update(qe,ze,e)):this.tiling.object.visible=!1}else this.tiling.object.visible=!1;He!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0),this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(e),this.updateControllerHelper(ue,e,t)}else console.error("no layer found")}}}else console.error("session丢失,请重试");else console.error("xrFrame丢失,请重试")},t.prototype.render=function(){var e=this.xrManager.getCamera(this.camera);this.renderer.render(this.scene,e)},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,t,r){var n="Oculus"===this.xrManager.machineType?this.xrControllerRay[1]:this.xrControllerRay[0],i="Oculus"===this.xrManager.machineType?this.xrControllerRay[0]:this.xrControllerRay[1];if(e&&2===e.length&&e[0].gamepad&&e[1].gamepad){for(var o={buttons:{X:!1,Y:!1,LeftTrigger:!1,LeftPinch:!1,A:!1,B:!1,RightTrigger:!1,RightPinch:!1}},a=0;a<e.length;a++){var s=e[a].handedness,l=e[a].gamepad;switch(s){case"left":this.emitEvent(-1===l.axes[2],"LeftAxesLeft",t),this.emitEvent(1===l.axes[2],"LeftAxesRight",t),this.emitEvent(-1===l.axes[3],"LeftAxesUp",t),this.emitEvent(1===l.axes[3],"LeftAxesDown",t),this.emitEvent(null==l?void 0:l.buttons[4].pressed,"X",t),this.emitEvent(l.buttons[5].pressed,"Y",t),this.emitEvent(null==l?void 0:l.buttons[0].pressed,"LeftTrigger",t),this.emitEvent(null==l?void 0:l.buttons[1].pressed,"LeftPinch",t);var u={raycaster:n,axes:{up:l.axes[3]<0?Math.abs(l.axes[3]):0,down:l.axes[3]<0?0:Math.abs(l.axes[3]),left:l.axes[2]<0?Math.abs(l.axes[2]):0,right:l.axes[2]<0?0:Math.abs(l.axes[2])},deltaTime:r};o.buttons.X=null==l?void 0:l.buttons[4].pressed,o.buttons.Y=null==l?void 0:l.buttons[5].pressed,o.buttons.LeftTrigger=null==l?void 0:l.buttons[0].pressed,o.buttons.LeftPinch=null==l?void 0:l.buttons[1].pressed,o.left=u;break;case"right":this.emitEvent(-1===l.axes[2],"RightAxesLeft",t),this.emitEvent(1===l.axes[2],"RightAxesRight",t),this.emitEvent(-1===l.axes[3],"RightAxesUp",t),this.emitEvent(1===l.axes[3],"RightAxesDown",t),this.emitEvent(null==l?void 0:l.buttons[4].pressed,"A",t),this.emitEvent(l.buttons[5].pressed,"B",t),this.emitEvent(null==l?void 0:l.buttons[0].pressed,"RightTrigger",t),this.emitEvent(null==l?void 0:l.buttons[1].pressed,"RightPinch",t);var c={raycaster:i,axes:{up:l.axes[3]<0?Math.abs(l.axes[3]):0,down:l.axes[3]<0?0:Math.abs(l.axes[3]),left:l.axes[2]<0?Math.abs(l.axes[2]):0,right:l.axes[2]<0?0:Math.abs(l.axes[2])},deltaTime:r};o.right=c,o.buttons.A=null==l?void 0:l.buttons[4].pressed,o.buttons.B=null==l?void 0:l.buttons[5].pressed,o.buttons.RightTrigger=null==l?void 0:l.buttons[0].pressed,o.buttons.RightPinch=null==l?void 0:l.buttons[1].pressed}}this.emit("xr.controller.update",$o("xr.controller.update",o))}},t.prototype.emitEvent=function(e,t,r){var n="Oculus"===this.xrManager.machineType?this.xrControllerRay[1]:this.xrControllerRay[0],i="Oculus"===this.xrManager.machineType?this.xrControllerRay[0]:this.xrControllerRay[1];if(e)!1===this.xrControllerState[t].touchStart?(this.xrControllerState[t].touchStartTime=r,this.xrControllerState[t].touchStart=!0,this.emit("xr.gesture.buttonDown",$o("xr.gesture.buttonDown",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:t,isFinal:!1,isFirst:!0,controllers:{raycaster:{leftRay:n,rightRay:i}}}))):r-this.xrControllerState[t].touchStartTime>300&&this.emit("xr.gesture.press",$o("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:t,isFinal:!0,isFirst:!0,controllers:{raycaster:{leftRay:n,rightRay:i}}}));else if(!0===this.xrControllerState[t].touchStart){if(this.emit("xr.gesture.buttonUp",$o("xr.gesture.buttonUp",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:t,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:n,rightRay:i}}})),r-this.xrControllerState[t].touchStartTime<=300)this.emit("xr.gesture.tap",$o("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:t,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:n,rightRay:i}}}))||"RightTrigger"===t&&this.checkSelectedPano("Oculus"===this.xrManager.machineType?this.xrControllerRay[0]:this.xrControllerRay[1]);this.xrControllerState[t].touchStart=!1,this.xrControllerState[t].touchStartTime=0}},t}(Xa),Dl={Floorplan:ua,Topview:Aa,Panorama:Xa,VRPanorama:Bs,Model:Os,DepthPanorama:Vs,Mapview:sl,XRPanorama:kl},Fl=["gesture.pan","gesture.tap","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 Ll(e){for(var t,r,n={},i=0,o=e.split(/(\;|\,)/);i<o.length;i++){var a=o[i].split("="),s=null===(t=a[0])||void 0===t?void 0:t.trim(),l=null===(r=a[1])||void 0===r?void 0:r.trim();s&&l&&(n[s]=l)}return n}function Ql(){for(var e,t=document.getElementsByTagName("meta"),r=0;r<t.length;r++){var n=t[r];if("viewport"===n.getAttribute("name")){var i=Ll(null!==(e=n.getAttribute("content"))&&void 0!==e?e:""),o=Number(i["initial-scale"]);if(!isNaN(o))return o}}return 1}var Nl=[351,63],Vl=[20,20],Ul=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),zl=new Float32Array([0,0,1,0,0,1,1,1]),ql=new Uint8Array([0,1,2,1,3,2]),Hl=new n.BufferGeometry;Hl.setAttribute("position",new n.BufferAttribute(Ul,3)),Hl.setAttribute("uv",new n.BufferAttribute(zl,2)),Hl.setIndex(new n.BufferAttribute(ql,1));var _l=new n.MeshBasicMaterial({transparent:!0,depthTest:!1,depthWrite:!1,stencilWrite:!1,fog:!1}),jl=new n.Mesh(Hl,_l);jl.matrixAutoUpdate=!1;var Gl=new n.Scene;Gl.add(jl),Gl.matrixAutoUpdate=!1;var Kl=new n.OrthographicCamera(-.5,.5,.5,-.5,.1,1);Kl.position.set(0,0,.5),Kl.lookAt(0,0,0),Kl.updateMatrixWorld(!0),Kl.matrixAutoUpdate=!1;var Wl=new n.Vector4,Yl=new n.Vector4;function Xl(e){if(_l.map){var t=e.getViewport(Wl),r=e.getScissor(Yl),i=e.getScissorTest(),o=e.autoClear,a=r.x+Vl[0]/3,s=r.y+Vl[1]/3,l=Nl[0]/3,u=Nl[1]/3;e.setViewport(a,s,l,u),e.setScissor(a,s,l,u),e.setScissorTest(!0),e.autoClear=!1,e.render(Gl,Kl),e.setViewport(t),e.setScissor(r),e.setScissorTest(i),e.autoClear=o}else{var c=new n.Texture,d=new Image;d.onload=function(){c.image=d,c.wrapS=n.ClampToEdgeWrapping,c.wrapT=n.ClampToEdgeWrapping,c.minFilter=n.LinearFilter,c.needsUpdate=!0,c.generateMipmaps=!1,_l.needsUpdate=!0,d.onload=fe},d.src="data:image/png;base64,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",_l.map=c}}var Jl=function(e){return e.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/")},Zl=new n.Vector2,$l=new n.Frustum,eu=new n.Matrix4,tu=new WeakMap,ru=new WeakMap,nu=Mo([]),iu=function(e){function t(t){void 0===t&&(t={});var r,i,o,a,s,l,u,c,d,p,h,f=this;if((f=e.call(this)||this).ident=Fi(),ou.instances[f.ident]=f,f.renderSwitch01=0,f.currentMode="Panorama",f.pano={workCode:"",panoIndex:0},f.needsRender=!1,f.onlyRenderIfNeeds=null===(r=t.onlyRenderIfNeeds)||void 0===r||r,f.imageOptions=ie({},null!==(i=t.imageOptions)&&void 0!==i?i:{}),f.textureOptions=ie({},null!==(o=t.textureOptions)&&void 0!==o?o:{}),f.modelLodOptions=ie({},null!==(a=t.modelLod)&&void 0!==a?a:{}),f.poweredByRealsee=null===(s=t.poweredByRealsee)||void 0===s||s,f.extraElements=[],f.controllerInits={Panorama:Object.assign({},t.panorama),Model:Object.assign({},t.model),Floorplan:Object.assign({},t.floorplan),Topview:Object.assign({},t.topview),Mapview:Object.assign({},t.mapview),DepthPanorama:Object.assign({},t.depthPanorama),VRPanorama:Object.assign({},t.vrPanorama),XRPanorama:Object.assign({},t.xrPanorama)},f.fps={testCount:0,testTime:Ae()},f.info=null,f.modeChangeDuration=null!==(l=t.modeChangeDuration)&&void 0!==l?l:800,"undefined"!=typeof window)if(t.renderer)t.renderer instanceof zt&&f.throwError(new Error("cannot render a internal renderer")),f.renderer=t.renderer;else try{f.renderer=new zt({preserveDrawingBuffer:t.preserveDrawingBuffer,backgroundColor:t.backgroundColor,backgroundAlpha:t.backgroundAlpha,antialias:t.antialias,webgl2:null==t?void 0:t.webgl2});var v=Ql();f.renderer.setPixelRatio(1===v?window.devicePixelRatio:1),f.renderer.setSize(512,512)}catch(e){e instanceof Error&&f.throwError(e)}f.getPixelsRenderTarget=new n.WebGLRenderTarget(1,1,{encoding:null!==(c=null===(u=f.renderer)||void 0===u?void 0:u.outputEncoding)&&void 0!==c?c:n.sRGBEncoding}),f.scissor=Object.assign({left:0,bottom:0,width:1,height:1},t.scissor),f.camera=new Wt(90),f.scene=new qt,f.xrCustomObjectsScene=new n.Scene,f.scene.matrixAutoUpdate=!1,f.lastLoadWorkTask=Promise.resolve(),f.requestProxy=null!==(d=t.requestProxy)&&void 0!==d?d:Jl,f.networkSubscribe=new Re,f.networkSubscribe.on("network",(function(e,t,r,n){var i;f.emit("network.resource",$o("network.resource",{source:e,requestType:t,requestState:r,detail:n})),null===(i=f.analysis)||void 0===i||i.network(f.works,e,t,r,n)})),f.boundingMesh=(p=new n.Box3(new n.Vector3(-.5,-.5,-.5),new n.Vector3(.5,.5,.5)),void 0===h&&(h=_o),new jo(p,h)),f.boundingMesh.name="bounding",f.scene.add(f.boundingMesh),f.models=$i(),f.models.push(new Zi),f.lastModels=$i(),f.readyCallbacks=[],f.syncingState=!1,f.modelGroup=new n.Group,f.modelGroup.visible=!1,f.modelGroup.name="model",f.modelGroup.matrixAutoUpdate=!1,f.modelGroup.renderOrder=-4,f.scene.add(f.modelGroup),f.helperGroup=new n.Group,f.helperGroup.name="helper",f.helperGroup.matrixAutoUpdate=!1,f.scene.add(f.helperGroup),f.videoTexture=new n.VideoTexture(t.videoInstance||function(){var e=document.createElement("video");e.loop=!0,e.autoplay=!0,e.playsInline=!0,e.muted=!0,e.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),e.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),e}()),function(e){(t=new n.DirectionalLight(16777215,.5)).position.copy(new n.Vector3(1,1,1)),e.add(t);var t=new n.DirectionalLight(16777215,.3);e.add(t),t=new n.AmbientLight(16777215,.3),e.add(t)}(f.scene),f.copyEffect=new Pa(f.renderer,f.scene,f.camera,f.models),f.state={mode:f.currentMode,workCode:f.pano.workCode,panoIndex:f.pano.panoIndex,longitude:f.camera.pose.longitude,latitude:f.camera.pose.latitude,fov:f.camera.pose.fov,offset:f.camera.pose.offset.clone(),distance:f.camera.pose.distance},f.stateSynced=!1,f._enableIOSEDR=!1,f.destroyed=!1,f.paused=!0,"undefined"!=typeof window&&(!1!==t.play&&f.play(),f.stopAnimationLoop=Ne.shared.add((function(e,t){for(var r=[],n=2;n<arguments.length;n++)r[n-2]=arguments[n];f.updateTime.apply(f,ue([e,t],r,!1))}),!1,0,10));var A,m=function(){"undefined"!=typeof document&&null===document.fullscreenElement&&"VRPanorama"===f.currentMode&&f.controller.emit("vr.requestExit",$o("vr.requestExit",{}))};if("undefined"!=typeof document&&document.addEventListener("fullscreenchange",m,!1),f.removeEventListeners=function(){"undefined"!=typeof document&&document.removeEventListener("fullscreenchange",m,!1)},f.plugins={},t.plugins&&t.plugins.length)for(var g=0,y=t.plugins;g<y.length;g++){var b=y[g];if("function"==typeof b)b(f);else if(Array.isArray(b)){var x=b[0],w=b[1],M=b[2];if("function"==typeof x){var E=x(f,M);"string"==typeof w&&(f.plugins[w]?f.throwError(new Error("plugin name ".concat(w," is exists."))):f.plugins[w]=E)}}}return f.gpuPickingRenderTarget=new n.WebGLRenderTarget(1,1),f.meshReplaceMaterialMap=new Map,f.meshOriginMaterialMap=new Map,(A=f).on("initAnimation.start",(function(e){A.emit("initAnimationWillStart",e.state.panoIndex,e.state,e.userAction)})),A.on("initAnimation.end",(function(e){A.emit("initAnimationEnded",e.state.panoIndex,e.state,e.userAction)})),A.on("gesture.pan",(function(e){A.emit("wantsGesture","pan",e.pointers,e.isFinal)&&e.preventDefault(),A.emit("wantsPanGesture",e.state,e.isFinal)&&e.preventDefault(),e.defaultPrevented||(A.emit("gesture","pan",e.pointers,e.isFinal),A.emit("panGesture",e.state,e.isFinal))})),A.on("gesture.tap",(function(e){A.emit("wantsGesture","tap",e.pointers,e.isFinal)&&e.preventDefault(),A.emit("wantsTapGesture",e.center.raycaster,e.center.coords,e.isFinal)&&e.preventDefault(),e.defaultPrevented||(A.emit("gesture","tap",e.pointers,e.isFinal),A.emit("tapGesture",e.center.raycaster,e.center.coords,e.isFinal))})),A.on("gesture.press",(function(e){A.emit("wantsGesture","press",e.pointers,e.isFinal)&&e.preventDefault(),A.emit("wantsPressGesture",e.center.raycaster,e.center.coords,e.center.delta,e.isFinal)&&e.preventDefault(),e.defaultPrevented||(A.emit("gesture","press",e.pointers,e.isFinal),A.emit("pressGesture",e.center.raycaster,e.center.coords,e.center.delta,e.isFinal))})),A.on("gesture.pinch",(function(e){A.emit("wantsGesture","pinch",e.pointers,e.isFinal)&&e.preventDefault(),A.emit("wantsPinchGesture",e.scale,e.state.fov,e.isFinal)&&e.preventDefault(),e.defaultPrevented||(A.emit("gesture","pinch",e.pointers,e.isFinal),A.emit("pinchGesture",e.scale,e.state.fov,e.isFinal))})),A.on("gesture.mousewheel",(function(e){A.emit("wantsGesture","mouseWheel",e.pointers,e.isFinal)&&e.preventDefault(),A.emit("wantsMouseWheel",e.center.delta,e.state.fov,e.isFinal)&&e.preventDefault(),e.defaultPrevented||(A.emit("gesture","mouseWheel",e.pointers,e.isFinal),A.emit("mouseWheel",e.center.delta,e.state.fov,e.isFinal))})),A.on("gesture.mousemove",(function(e){A.emit("wantsGesture","mouseMove",e.pointers,e.isFinal)&&e.preventDefault(),e.defaultPrevented||(A.emit("gesture","mouseMove",e.pointers,e.isFinal),A.emit("wantsChangeCameraFov",e.state.fov)&&e.preventDefault())})),A.on("gesture.momentum",(function(e){A.emit("wantsInteriaPan",e.state)&&e.preventDefault(),e.defaultPrevented||A.emit("interiaPan",e.state,e.isFinal)})),A.on("camera.update",(function(e){A.emit("cameraFovUpdate",e.state.fov,e.userAction),A.emit("cameraDirectionUpdate",e.state,e.userAction);var t=Ht(e.state);t.setLength(e.state.distance);var r=e.state.offset.clone().sub(t);A.emit("cameraPositionUpdate",r,e.userAction),A.emit("cameraUpdate",e.state,e.userAction)})),A.on("intersect.update",(function(e){e.intersection?(A.emit("wantsShowIntersectionOnModel",e.raycaster)&&e.preventDefault(),e.defaultPrevented||A.emit("intersectionOnModelUpdate",e.intersection,e.object)):A.emit("intersectionHidden")})),A.on("pano.request",(function(e){var t=A.emit("wantsMoveToPano",e.state.panoIndex,e.options,e.userAction);t||(t=A.emit("wantsToMoveToPano",e.state.panoIndex,e.options,e.userAction)),t&&e.preventDefault(),e.defaultPrevented||A.emit("panoWillLoad",e.state.panoIndex)})),A.on("pano.select",(function(e){A.emit("panoSelected",e.state.panoIndex)})),A.on("pano.moveTo",(function(e){A.emit("panoLoaded",e.state.panoIndex),A.emit("moveToPano",e.state.panoIndex,e.userAction),A.emit("panoWillArrive",e.state.panoIndex,e.state,e.userAction)})),A.on("pano.moving",(function(e){A.emit("movingToPano",e.state.panoIndex,e.prevPano.panoIndex,e.progress)})),A.on("pano.arrived",(function(e){A.emit("panoArrived",e.state.panoIndex,e.state,e.userAction)})),A.on("pano.cancel",(function(e){A.emit("moveToPanoCanceled",e.state.panoIndex)})),A.on("pano.error",(function(e){A.emit("panoLoadError",e.error,e.state.panoIndex)})),A.on("pano.texture.load",(function(e){A.emit("textureStartLoad",e.pano.panoIndex)})),A.on("pano.texture.success",(function(e){A.emit("textureLoaded",e.pano.panoIndex,e.meta)})),A.on("pano.texture.error",(function(e){A.emit("textureError",e.error,e.pano.panoIndex)})),A.on("pano.texture.abort",(function(e){A.emit("textureAbort",e.pano.panoIndex)})),A.on("pano.texture.progress",(function(e){A.emit("textureLoading",e.progress,e.pano.panoIndex)})),A.on("xr.session.start",(function(e){A.emit("webXRSessionStart")})),A.on("xr.session.end",(function(e){A.emit("webXRSessionEnd")})),A.on("xr.gesture.tap",(function(e){A.emit("webXRControllerEvent","tap",e.buttons,{raycaster:e.controllers.raycaster})})),A.on("xr.gesture.press",(function(e){A.emit("webXRControllerEvent","press",e.buttons,{raycaster:e.controllers.raycaster})})),A.on("xr.gesture.buttonUp",(function(e){A.emit("webXRControllerEvent","buttonUp",e.buttons,{raycaster:e.controllers.raycaster})})),A.on("xr.gesture.buttonDown",(function(e){A.emit("webXRControllerEvent","buttonDown",e.buttons,{raycaster:e.controllers.raycaster})})),A.on("xr.controller.update",(function(e){A.emit("webXRControllerRayUpdate",{leftRay:e.left.raycaster,rightRay:e.right.raycaster}),A.emit("webXRAxesUpdate","left",{raycaster:{leftRay:e.left.raycaster,rightRay:e.right.raycaster},axesState:{up:e.left.axes.up,down:e.left.axes.down,left:e.left.axes.left,right:e.left.axes.right},deltaTime:e.left.deltaTime}),A.emit("webXRAxesUpdate","right",{raycaster:{leftRay:e.left.raycaster,rightRay:e.right.raycaster},axesState:{up:e.right.axes.up,down:e.right.axes.down,left:e.right.axes.left,right:e.right.axes.right},deltaTime:e.right.deltaTime})})),A.on("works.request",(function(e){A.emit("willLoad",e.input,e.works[0],e.state)})),A.on("works.load",(function(e){A.emit("load",e.input,e.works[0],e.state)})),A.on("works.ready",(function(e){A.emit("loaded",e.input,e.works[0])})),A.on("state.change",(function(e){A.emit("stateChange",e.state,e.userAction)})),A.on("currentState.change",(function(e){A.emit("currentStateChange",e.state,e.userAction)})),A.on("state.set",(function(e){A.emit("setState",e.state)})),A.on("state.synced",(function(e){A.emit("stateSynced",e.state)})),A.on("model.request",(function(e){A.emit("modelWillLoad",e.work.model)})),A.on("model.error",(function(e){A.emit("modelLoadError",e.error,e.model)})),A.on("model.load",(function(e){A.emit("modelLoaded",e.model)})),A.on("model.changeShownFloor",(function(e){A.emit("modelShownFloorChange",e.model.shownFloor,e.model.floorLength)})),A.on("render",(function(e){A.emit("renderFrame",e.needsRender)})),A.on("mode.change.request",(function(e){A.emit("wantsChangeMode",e.mode,e.prevMode)})),A.on("mode.change",(function(e){A.emit("modeChange",e.mode,e.prevMode,e.state.panoIndex,e.state,e.userAction)})),A.on("helpers.visible",(function(e){A.emit("helpersVisibleChange",e.object.visible)})),A.on("network.resource",(function(e){A.emit("network",e.source,e.requestType,e.requestState,e.detail)})),f}return ne(t,e),Object.defineProperty(t,"version",{get:function(){return"6.0.0-alpha.12"},enumerable:!1,configurable:!0}),Object.defineProperty(t,"dracoPath",{get:function(){return gn.decoderPath},set:function(e){gn.setDecoderPath(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,t,r,i,o){var a=this;if(void 0===i&&(i=1),void 0===o&&(o=new n.Vector3(0,0,0)),!this.renderer)throw new Error("renderer is not initialized.");this.models.setMaterial({constantColor:o}),this.scene.traverse((function(e){if(e instanceof n.Mesh&&!(e instanceof tt)){var t=Object.keys(r).filter((function(t){return t===e.uuid}))[0];if(t)if(a.meshOriginMaterialMap.set(t,e.material),a.meshReplaceMaterialMap.get(t))e.material=a.meshReplaceMaterialMap.get(t);else{var i=new n.ShaderMaterial({uniforms:{color:{value:r[t]}},vertexShader:"\n void main() {\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n }\n ",fragmentShader:"\n uniform vec3 color;\n void main() {\n gl_FragColor = vec4( color, 1.0 );\n }\n "});i.depthTest=e.material.depthTest,i.side=e.material.side,a.meshReplaceMaterialMap.set(t,i),e.material=i}}}));var s=this.renderer.getSize(new n.Vector2);this.camera.setViewOffset(s.width,s.height,e*i,t*i,1,1),this.renderer.setRenderTarget(this.gpuPickingRenderTarget),this.render();var l=new Uint8Array(4);this.renderer.readRenderTargetPixels(this.gpuPickingRenderTarget,0,0,1,1,l),this.renderer.setRenderTarget(null),this.camera.clearViewOffset(),this.scene.traverse((function(e){e instanceof n.Mesh&&!(e instanceof tt)&&a.meshOriginMaterialMap.get(e.uuid)&&(e.material=a.meshOriginMaterialMap.get(e.uuid))})),this.models.setMaterial({constantColor:null});var u=Object.keys(r).filter((function(e){return r[e].equals((new n.Color).setRGB(l[0]/255,l[1]/255,l[2]/255))}))[0];return u||!1},t.prototype.dispose=function(){var e,t;if(!0!==this.destroyed){delete ou.instances[this.ident],this.emit("dispose"),this.destroyed=!0,this.pause(),this.stopAnimationLoop&&(this.stopAnimationLoop(),delete this.stopAnimationLoop),null===(e=this.renderer)||void 0===e||e.setAnimationLoop(null),this.off(),this.networkSubscribe.off(),this.controller&&(this.controller.destroy(),this.controller=void 0);var r=this.getElement();r&&r.parentNode&&r.parentNode.removeChild(r);var n=this.models.getMaterial();n&&(n.pano0&&n.pano0.map.dispose(),n.pano1&&n.pano1.map!==(null===(t=n.pano0)||void 0===t?void 0:t.map)&&n.pano1.map.dispose());for(var i=0,o=this.models;i<o.length;i++){o[i].dispose()}this.models.length=0,this.models.setMaterial({pano0:null,pano1:null}),this.meshReplaceMaterialMap.forEach((function(e){e.dispose()})),this.meshOriginMaterialMap.forEach((function(e){e.dispose()})),this.renderer instanceof zt&&this.renderer.forceContextLoss&&this.renderer.forceContextLoss()}},t.prototype.setScissor=function(e){Object.assign(this.scissor,e),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize()},Object.defineProperty(t.prototype,"helperVisible",{get:function(){return this.helperGroup.visible},set:function(e){this.helperGroup.visible!==e&&(this.helperGroup.visible=e,this.emit("helpers.visible",$o("helpers.visible",{object:this.helperGroup})),this.needsRender=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enableIOSEDR",{get:function(){return this._enableIOSEDR},set:function(e){this._enableIOSEDR!==e&&(this._enableIOSEDR=e,this.currentMode&&"Panorama"===this.currentMode&&this.changeMode(this.currentMode,this.getCurrentState(),0,!1,!0))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"postProcessingType",{get:function(){return"Panorama"===this.currentMode&&this.enableIOSEDR?"luminance":"Mapview"===this.currentMode&&this.enableEDL?"edl":"Mapview"===this.currentMode&&this.enableHQ?"hq":null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enableEDL",{get:function(){return this.models.getMaterial().useEDL},set:function(e){var r,i,o,a;if(!0===e&&this.currentMode!==t.Mode.Mapview)throw new Error("只支持Mapview下开启EDL");if(this.models.setMaterial({useEDL:e}),this.boundingMesh.visible=!e,e){if(!this.screenBuffers){var s=this.getDrawingBufferSize(Zl);this.screenBuffers=[new n.WebGLRenderTarget(s.x,s.y,{encoding:null!==(i=null===(r=this.renderer)||void 0===r?void 0:r.outputEncoding)&&void 0!==i?i:n.sRGBEncoding,minFilter:n.NearestFilter,magFilter:n.NearestFilter,format:n.RGBAFormat,type:n.FloatType}),new n.WebGLRenderTarget(s.x,s.y,{encoding:null!==(a=null===(o=this.renderer)||void 0===o?void 0:o.outputEncoding)&&void 0!==a?a:n.sRGBEncoding,minFilter:n.LinearMipMapLinearFilter,magFilter:n.LinearMipMapLinearFilter})]}}else this.screenBuffers&&(this.screenBuffers.forEach((function(e){e.dispose()})),delete this.screenBuffers);this.needsRender=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enableHQ",{get:function(){return this.models.getMaterial().useHQWeight||this.models.getMaterial().useHQDepth||!1},set:function(e){var r,i;if(!0===e&&this.currentMode!==t.Mode.Mapview)throw new Error("只支持Mapview下开启HQ");if(!0===e?this.models.setMaterial({useHQDepth:!0,useHQWeight:!1}):this.models.setMaterial({useHQDepth:!1,useHQWeight:!1}),this.boundingMesh.visible=!e,e){if(!this.screenBuffers){var o=this.getDrawingBufferSize(Zl),a=new n.WebGLRenderTarget(o.x,o.y,{minFilter:n.NearestFilter,magFilter:n.NearestFilter,format:n.RGBAFormat,type:n.FloatType,depthTexture:new n.DepthTexture(o.x,o.y,n.UnsignedIntType)}),s=new n.WebGLRenderTarget(o.x,o.y,{encoding:null!==(i=null===(r=this.renderer)||void 0===r?void 0:r.outputEncoding)&&void 0!==i?i:n.sRGBEncoding,minFilter:n.NearestFilter,magFilter:n.NearestFilter,format:n.RGBAFormat,type:n.FloatType,depthTexture:a.depthTexture});this.screenBuffers=[a,s]}}else this.screenBuffers&&(this.screenBuffers.forEach((function(e){e.dispose()})),delete this.screenBuffers);this.needsRender=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enablePostProcessing",{get:function(){return void 0!==this.screenBuffers},set:function(e){var t,r,i,o;if(e){if(!this.screenBuffers){var a=this.getDrawingBufferSize(Zl);this.screenBuffers=[new n.WebGLRenderTarget(a.x,a.y,{encoding:null!==(r=null===(t=this.renderer)||void 0===t?void 0:t.outputEncoding)&&void 0!==r?r:n.sRGBEncoding}),new n.WebGLRenderTarget(a.x,a.y,{encoding:null!==(o=null===(i=this.renderer)||void 0===i?void 0:i.outputEncoding)&&void 0!==o?o:n.sRGBEncoding})]}}else this.screenBuffers&&(this.screenBuffers.forEach((function(e){e.dispose()})),delete this.screenBuffers);this.needsRender=!0},enumerable:!1,configurable:!0}),t.prototype.updateConfiguration=function(e){var t=!1;e.panorama&&(Object.assign(this.controllerInits.Panorama,e.panorama),"Panorama"===this.currentMode&&(t=!0)),e.model&&(Object.assign(this.controllerInits.Model,e.model),"Model"===this.currentMode&&(t=!0)),e.floorplan&&(Object.assign(this.controllerInits.Floorplan,e.floorplan),"Floorplan"===this.currentMode&&(t=!0)),e.topview&&(Object.assign(this.controllerInits.Topview,e.topview),"Topview"===this.currentMode&&(t=!0)),e.mapview&&(Object.assign(this.controllerInits.Mapview,e.topview),"Mapview"===this.currentMode&&(t=!0)),e.depthPanorama&&(Object.assign(this.controllerInits.DepthPanorama,e.depthPanorama),"DepthPanorama"===this.currentMode&&(t=!0)),e.vrPanorama&&(Object.assign(this.controllerInits.VRPanorama,e.vrPanorama),"VRPanorama"===this.currentMode&&(t=!0)),e.imageOptions&&(Object.assign(this.imageOptions,e.imageOptions),"Panorama"!==this.currentMode&&"DepthPanorama"!==this.currentMode&&"VRPanorama"!==this.currentMode||(t=!0)),t&&this.controller&&this.currentMode&&this.changeMode(this.currentMode,this.getCurrentState(),0,!1,!0),e.textureOptions&&Object.assign(this.textureOptions,e.textureOptions)},t.prototype.appendTo=function(e,t){if(void 0===t&&(t={}),this.renderer)if(this.renderer instanceof zt){var r=this.getElement();if(r){e.appendChild(r),this.refresh(t);var n=window.getComputedStyle(e).position;"relative"!==n&&"absolute"!==n&&"fixed"!==n&&"sticky"!==n&&(e.style.position="relative")}}else this.throwError(new Error("cannot call appendTo method when render a external renderer"))},t.prototype.refresh=function(e,t){if(void 0===e&&(e={}),this.renderer){var r=this.getElement();if(r){var i=r.parentNode;if(i&&i.nodeName){var o=e.width,a=void 0===o?i.offsetWidth:o,s=e.height,l=void 0===s?i.offsetHeight:s;this.renderer instanceof zt&&(t&&this.renderer.setPixelRatio(t),this.renderer.setSize(a,l))}var u=this.renderer.getSize(new n.Vector2);this.camera.aspect=u.x*this.scissor.width/(u.y*this.scissor.height),this.camera.updateProjectionMatrix(),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize(),this.needsRender=!0}}},t.prototype.addExtraElement=function(e){var t=this;return-1===this.extraElements.indexOf(e)&&(this.extraElements.push(e),this.controller&&this.controller.bindExtraElement(e)),function(){return t.removeExtraElement(e)}},t.prototype.removeExtraElement=function(e){var t=this.extraElements.indexOf(e);-1!==t&&(this.extraElements.splice(t,1),this.controller&&this.controller.unbindExtraElement(e))},t.prototype.getPose=function(){var e=this.camera.copyPose(),t=e.longitude,r=e.latitude,n=e.fov,i=e.offset,o=e.distance;return{longitude:t,latitude:r,fov:n,offset:i.clone(),distance:o}},t.prototype.getSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},t.prototype.getDrawingBufferSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getDrawingBufferSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},t.prototype.updateCamera=function(e,t,r){return void 0===r&&(r=!0),this.controller?(this.controller.stopMomentumMovement(),this.controller.updateCamera(e,t,r)):Promise.reject(new Error("controller is not initialized."))},t.prototype.updateCameraWithKeyframes=function(e,t,r){return void 0===r&&(r=!0),this.controller?(this.controller.stopMomentumMovement(),this.controller.updateCameraWithKeyframes(e,t,r)):Promise.reject(new Error("controller is not initialized."))},t.prototype.getLongitudeAndLatitude=function(){var e=this.getPose();return{longitude:e.longitude,latitude:e.latitude}},t.prototype.getOffset=function(){return this.getPose().offset},t.prototype.getCameraLocal=function(){if(this.pano.workCode&&this.controller&&this.works){var e=this.works.getResolvedObserver(this.pano);if(e){var t=new n.Object3D;return t.position.copy(e.position),t.quaternion.copy(e.quaternion),t.scale.set(1,1,1),t.matrix.compose(t.position,t.quaternion,t.scale),t.matrixAutoUpdate=!1,function(e,t){var r=new n.Vector3(0,0,-1);r.applyQuaternion(e.quaternion);var i=t.quaternion.clone().inverse();return r.applyQuaternion(i),{theta:Math.atan2(r.x,-r.z),phi:-Math.asin(r.y),lookAtVector:r}}(this.camera,t)}}return null},Object.defineProperty(t.prototype,"works",{get:function(){var e=ru.get(this);if(!e)return nu;for(var t=0,r=e;t<r.length;t++){var n=r[t];if(!po.has(n))return nu}return e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"work",{get:function(){return this.works[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"model",{get:function(){return this.models[0]},enumerable:!1,configurable:!0}),t.prototype.load=function(e,t,r,n){var i=this;if(void 0===n&&(n=!0),!this.renderer)throw new Error("renderer is not initialized");var o=this.lastLoadWorkTask.then((function(){return!(o=e)||"object"!=typeof o&&"function"!=typeof o||"function"!=typeof o.then?i.load_(e,t,r,n):e.then((function(e){return i.load_(e,t,r,n)}));var o}));return this.lastLoadWorkTask=o.catch((function(e){i.throwError(e)})),o},t.prototype.load_=function(e,r,i,o){var a,s,l,u,c,d,p=this;void 0===o&&(o=!0);var h=[];if(Array.isArray(e))for(var f=0,v=e;f<v.length;f++){var A=v[f];"string"!=typeof A&&"work"in A?h.push(wo(A.work,A)):h.push(wo(A))}else h.push(wo(e));var m=Mo(h),g=this.works;void 0===r&&(r=0!==g.length?"inherit":"initial");var y=m.initial,b=y.work.observers[0],x=b?{workCode:b.work.workCode,panoIndex:b.panoIndex}:{workCode:y.work.workCode,panoIndex:0},w=null!==(a=y.mode)&&void 0!==a?a:b?"Panorama":"Mapview",M={};if("inherit"===r)w=this.currentMode,(E=m.resolvedObservers[this.panoIndex])?x={workCode:E.work.workCode,panoIndex:E.panoIndex}:"number"==typeof m.initial.panoIndex?x={workCode:m.initial.work.workCode,panoIndex:m.initial.panoIndex}:"Panorama"!==w&&"DepthPanorama"!==w&&"VRPanorama"!==w&&"XRPanorama"!==w||(w="Mapview"),M={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,distance:this.camera.pose.distance,offset:this.camera.pose.offset.clone()};else if("initial"===r)"number"==typeof y.panoIndex&&(x={workCode:y.work.workCode,panoIndex:y.panoIndex}),y.mode&&(w=y.mode),M={longitude:y.longitude,latitude:y.latitude,fov:y.fov,distance:y.distance,offset:null===(s=y.offset)||void 0===s?void 0:s.clone()};else{var E;if(w=null!==(l=r.mode)&&void 0!==l?l:this.currentMode,"number"==typeof r.panoIndex)(E=m.getResolvedObserver({workCode:null!==(c=null!==(u=r.workCode)&&void 0!==u?u:y.work.workCode)&&void 0!==c?c:"",panoIndex:r.panoIndex}))&&(x={workCode:E.work.workCode,panoIndex:E.panoIndex});M={longitude:r.longitude,latitude:r.latitude,fov:r.fov,distance:r.distance,offset:r.offset}}var C=ie(ie(ie({},x),{mode:w}),M);this.emit("works.request",$o("works.request",{input:e,works:m,state:C,userAction:o}));var S=function(){p.modelGroup.visible=!0,p.pano=x;var e=p.controller?null!=i?i:p.modeChangeDuration:0,t=ie(ie({initial:{state:C,currentState:p.getCurrentState(),duration:e,userAction:o}},p.commonParams()),p.controllerInits[w]);if(p.controller&&p.currentMode===w)!1===p.controller.updateWork(m,C,e,o)&&(p.controller.destroy(),p.controller=p.applyController(w,t));else{var r=p.currentMode,n=Dl[w].initAnimationEndState(t);p.controller=p.applyController(w,t);var a=$o("mode.change",{prevMode:r,mode:w,state:n,userAction:o});p.emit("mode.change",a)}};if(ru.set(this,m),w===t.Mode.Floorplan||w===t.Mode.Topview||w===t.Mode.Mapview||w===t.Mode.Model)this.loadModel(m).then((function(){if(p.needsRender=!0,S(),p.controller&&0===p.controller.initial.duration){var e=Dl[w].initAnimationEndState(p.controller);p.camera.setFromPose(e)}p.emit("camera.update",$o("camera.update",{state:p.getCurrentState(),userAction:o}))}));else{if(!this.controller){var I=new n.Vector3,P=m.getResolvedObserver(x);P&&I.copy(P.position),this.camera.setFromPose({fov:M.fov,longitude:M.longitude,latitude:M.latitude,distance:M.distance,offset:null!==(d=M.offset)&&void 0!==d?d:I}),this.needsRender=!0}S(),this.controller.once("pano.moveTo",(function(){p.needsRender=!0,p.emit("camera.update",$o("camera.update",{state:p.getCurrentState(),userAction:o})),p.loadModel(m)}))}return this.emit("works.load",$o("works.load",{input:e,state:this.getCurrentState(),userAction:o,works:m})),this.ready().then((function(){var t;p.emit("works.ready",$o("works.ready",{input:e,state:p.getCurrentState(),userAction:o,works:m})),null===(t=p.analysis)||void 0===t||t.work(m)}))},t.prototype.changeMode=function(e,r,n,i,o){var a=this;return void 0===r&&(r={}),void 0===n&&(n=this.modeChangeDuration),void 0===i&&(i=!0),void 0===o&&(o=!1),new Promise((function(s,l){var u,c,d;if(!a.renderer)throw new Error("renderer is not initialized.");var p="number"==typeof(r=ie({},r)).panoIndex?{workCode:null!==(d=null!==(u=r.workCode)&&void 0!==u?u:null===(c=a.work)||void 0===c?void 0:c.workCode)&&void 0!==d?d:"",panoIndex:r.panoIndex}:a.pano;if(!t.Mode.hasOwnProperty(e)){var h=new Error('mode "'.concat(e,'" is not existed'));return a.throwError(h),void l(h)}if((e===t.Mode.Floorplan||e===t.Mode.Topview||e===t.Mode.Mapview||e===t.Mode.Model)&&!a.models.loaded){h=new Error("model is not ready.");return a.throwError(h),void l(h)}if((e===t.Mode.Panorama||e===t.Mode.VRPanorama||e===t.Mode.XRPanorama)&&!a.works.getResolvedObserver(p)){h=new Error("PanoId ".concat(Xe(p)," not existed."));return a.throwError(h),void l(h)}var f=a.controller,v=a.currentMode,A=function(){if(a.controller&&a.controller.stopMomentumMovement(),a.controller&&!1===o&&v===e)e===t.Mode.Panorama||e===t.Mode.DepthPanorama||e===t.Mode.Model||e===t.Mode.VRPanorama||e===t.Mode.XRPanorama?Ze(a.pano,p)&&"moveToPano"in a.controller&&"function"==typeof a.controller.moveToPano?a.controller.moveToPano(p,ie({duration:n},r),i):a.controller.updateCamera(r,n,i).catch(fe):(Ze(a.pano,p)||(a.pano=p),a.controller.updateCamera(r,n,i).catch(fe));else{var l=ie(ie({},r),p),u=ie(ie({initial:{state:l,currentState:a.getCurrentState(),duration:n,userAction:i}},a.commonParams()),a.controllerInits[e]),c=Dl[e].initAnimationEndState(u),d=$o("mode.change.request",{prevMode:a.currentMode,mode:e,state:c,userAction:i});if(a.emit("mode.change.request",d),!d.defaultPrevented){f&&f.destroy(),a.controller=a.applyController(e,u);var h=$o("mode.change",{prevMode:a.currentMode,mode:e,state:c,userAction:i});a.emit("mode.change",h)}}s()};if(e===t.Mode.VRPanorama)a.requestFullscreen(),("undefined"==typeof location||"https:"!==location.protocol?Promise.reject(new Error("Request DeviceOrientation Permission denied.")):"undefined"!=typeof DeviceOrientationEvent&&"function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(e){if("granted"==e)return Promise.resolve();var t=new Error("Request DeviceOrientation Permission denied.");return Promise.reject(t)})):Promise.resolve()).then((function(){return A()})).catch((function(e){e instanceof Error&&(a.exitFullscreen(),a.throwError(e),l(e))}));else if(e===t.Mode.XRPanorama){var m=Ne.shared.getContext();m?m.end():function(){if("xr"in navigator)return navigator.xr.isSessionSupported("immersive-vr").then((function(e){return e?Promise.resolve():Promise.reject()})).then((function(){return navigator.xr.requestSession("immersive-vr",{optionalFeatures:["local-floor","bounded-floor"]}).then((function(e){return Promise.resolve(e)}))}));var e=new Error("Request XR Permission denied.");return Promise.reject(e)}().then((function(e){Ne.shared.setContext(e),A()})).catch((function(e){e instanceof Error&&(a.throwError(e),l(e))}))}else A()}))},t.prototype.getPixels=function(e,t,r,i,o){if(void 0===o&&(o=1),!this.renderer)throw new Error("renderer is not initialized.");var a=this.getPixelsRenderTarget,s=this.renderer.getSize(new n.Vector2);e=Dr(e,Math.floor(r/2),Math.floor(s.x-r)),t=Dr(t,Math.floor(i/2),Math.floor(s.y-i)),a.setSize(r*o,i*o),this.renderer.setRenderTarget(a),this.camera.setViewOffset(s.width,s.height,e,s.height-t-i,r,i),this.controller?this.controller.render():this.renderer.render(this.scene,this.camera);var l=new Uint8Array(r*o*i*o*4);return this.renderer.readRenderTargetPixels(a,0,0,r*o,i*o,l),this.renderer.setRenderTarget(null),this.camera.clearViewOffset(),l},t.prototype.getElement=function(){var e;return null===(e=this.renderer)||void 0===e?void 0:e.domElement},Object.defineProperty(t.prototype,"observers",{get:function(){return this.works.resolvedObservers},enumerable:!1,configurable:!0}),t.prototype.render=function(e,t){var r=this;if(void 0===t&&(t=!1),!this.renderer)return null;if(t){var n=this.renderer.getSize(Zl);this.scene.traverseVisible((function(e){e.setResolution&&e.setResolution(n.x,n.y)}))}if(this.controller&&this.screenBuffers&&null===this.renderer.getRenderTarget()){var i=this.getDrawingBufferSize(Zl);return this.screenBuffers.forEach((function(e){e.setSize(i.x,i.y)})),this.renderer.setRenderTarget(this.screenBuffers[0]),this.controller.render(),this.info={memory:this.controller.renderer.info.memory,render:this.controller.renderer.info.render},"VRPanorama"!==this.currentMode&&"XRPanorama"!==this.currentMode&&this.poweredByRealsee&&Xl(this.renderer),this.renderer.setRenderTarget(null),e&&Ne.shared.add(e,!0),this.screenBuffers[0]}return this.aroundScissor((function(){r.renderer&&(r.controller?(r.controller.render(),r.info={memory:r.controller.renderer.info.memory,render:r.controller.renderer.info.render}):(r.renderer.render(r.scene,r.camera),r.info={memory:r.renderer.info.memory,render:r.renderer.info.render}),r.poweredByRealsee&&"VRPanorama"!==r.currentMode&&"XRPanorama"!==r.currentMode&&Xl(r.renderer)),e&&Ne.shared.add(e,!0)})),null},t.prototype.updateTime=function(e,t){for(var r,i,o,a=this,s=[],l=2;l<arguments.length;l++)s[l-2]=arguments[l];if(!this.destroyed){if(this.works.update(),this.syncingState=this.syncState(e,t),this.controller&&(r=this.controller).updateTime.apply(r,ue([e,t],s,!1)),this.camera.updateTime(e,t),this.renderer){var u=this.models.loaded;if(this.models.update(this.renderer,this.camera,this.currentMode),!1===u&&!0===this.models.loaded&&this.emit("models.load",$o("models.load",{models:this.models})),this.models.loaded){for(var c=0,d=this.models;c<d.length;c++){(f=d[c]).parent!==this.modelGroup&&(this.modelGroup.add(f),this.needsRender=!0)}if(this.lastModels.length>0){for(var p=0,h=this.lastModels;p<h.length;p++){var f=h[p];this.modelGroup.remove(f),f.dispose(),this.needsRender=!0}this.lastModels.length=0}}this.lastModels.setMaterial(this.models.getMaterial()),this.lastModels.materialVersion=this.models.materialVersion,this.lastModels.update(this.renderer,this.camera,this.currentMode)}this.syncingState=!1;var v=new n.Vector2(512,512),A=new n.Vector2(512,512);this.renderer&&(this.renderer.getSize(v),v.x*=this.scissor.width,v.y*=this.scissor.height,this.renderer.getDrawingBufferSize(A),A.x*=this.scissor.width,A.y*=this.scissor.height);for(var m=new n.Box3,g=new n.Box3,y=new n.Vector3(4,4,4),b=0,x=this.works.resolvedObservers;b<x.length;b++){var w=x[b];g.setFromCenterAndSize(w.position,y),m.union(g)}m.union(this.models.bounding),m.getCenter(this.boundingMesh.position),m.getSize(this.boundingMesh.scale),this.boundingMesh.boundingBox.copy(m);var M=null!==(i=this.models.getMaterial())&&void 0!==i?i:{},E=1-(null!==(o=M.modelAlpha)&&void 0!==o?o:0);M.opacity=Dr(4*E-3,0,1),M.clippers=null,M.floorIndex=-2,this.boundingMesh.setMaterial(M),this.renderer&&this.boundingMesh.update(this.renderer,this.camera),this.boundingMesh.needsRender=!1;var C=$o("render.prepare",{needsRender:!0,info:null});if(this.emit("render.prepare",C),!C.defaultPrevented){var S=[];eu.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),$l.setFromProjectionMatrix(eu);for(var I=0,P=this.scene.children;I<P.length;I++){var T=P[I];T!==this.modelGroup&&(T!==this.boundingMesh&&T instanceof n.Object3D&&T.traverseVisible((function(t){if(t.setResolution&&t.setResolution(v.x,v.y),t.setTime&&t.setTime(e),t.mixer instanceof n.AnimationMixer){var r=tu.get(t.mixer);r||(r=new n.Clock,tu.set(t.mixer,r)),t.mixer.update(r.getDelta())}(t instanceof n.Mesh||t instanceof n.Line||t instanceof n.Points)&&(t instanceof n.ImmediateRenderObject||!t.frustumCulled||$l.intersectsObject(t))&&S.push(t)})))}if(A.width*A.height>8388608?this.renderSwitch01=1^this.renderSwitch01:this.renderSwitch01=0,this.renderer&&!1===this.paused&&0===this.renderSwitch01){var B=void 0;if(!0!==this.onlyRenderIfNeeds)B=this.render();else{if(this.controller&&!0===this.controller.needsRender&&(this.controller.needsRender=!1,this.needsRender=!0),!0===this.camera.needsRender&&(this.camera.needsRender=!1,this.needsRender=!0),!0===this.models.needsRender&&(this.models.needsRender=!1,this.needsRender=!0),!0!==this.needsRender)for(var R=0,O=S;R<O.length;R++){var k=O[R],D=function(e){!0===e.needsRender?(e.needsRender=!1,a.needsRender=!0):e.mixer&&e.mixer.stats.actions.inUse>0&&(a.needsRender=!0)};D(k),k.traverseAncestors(D)}!1!==this.needsRender&&(B=this.render())}if(this.needsRender=!1,this.controller&&this.screenBuffers){var F=this.controller,L=this.screenBuffers;this.aroundScissor((function(){F.postProcessing(L,a.postProcessingType)}))}this.hasListener("render")&&this.emit("render",$o("render",{needsRender:void 0!==B,info:this.info}))}this.needsRender=!1}this.fps.testTime&&e-this.fps.testTime<1e3?this.fps.testCount++:(this.emit("fps",this.fps.testCount),this.fps.testTime=e,this.fps.testCount=0)}},t.prototype.pause=function(){this.paused=!0,this.renderer&&this.renderer instanceof zt&&this.renderer.clear(!0,!0,!0)},t.prototype.play=function(){this.needsRender=!0,this.paused=!1},t.prototype.moveToPano=function(e,r,n){void 0===r&&(r={}),void 0===n&&(n=!0);var i=this.controller,o=this.renderer;if(!i)return this.throwError(new Error("controller is not initialized.")),Promise.resolve();if(!o)return this.throwError(new Error("renderer is not initialized.")),Promise.resolve();var a=this.works.getResolvedObserver(e);if(!a)return this.throwError(new Error("pano ".concat(JSON.stringify(e)," not existed."))),Promise.resolve();var s={workCode:a.work.workCode,panoIndex:a.panoIndex};return"moveToPano"in i&&"function"==typeof i.moveToPano?i.moveToPano(s,r,n):a&&(this.pano=s,this.once("initAnimation.start",(function(e){r.moveStartCallback&&r.moveStartCallback(e.state)})),this.once("initAnimation.end",(function(e){r.moveEndCallback&&r.moveEndCallback(e.state)})),this.changeMode(t.Mode.Panorama,r,void 0,n)),this.ready()},t.prototype.preloadPano=function(e,t){var r=this;void 0===t&&(t=fe);var n=this.works.getResolvedObserver(e);if(!n)return Promise.reject(new Error("Pano ".concat(JSON.stringify(e)," never found")));var i=n.work.allowHosts,o=Ae();return Promise.all(["right","left","up","down","front","back"].map((function(e){var t=ie({key:"pano.".concat(n.panoId,".").concat(e)},Zn(r.imageOptions,["size","format","quality","mappings"])),o=n.images[e];return De(r.imageOptions.transform?r.imageOptions.transform(o,t):_e(o,t),{allowHosts:i,requestProxy:r.requestProxy,networkSubscribe:r.networkSubscribe})}))).then((function(){var e=Ae()-o;return t(e),e}))},t.prototype.project2d=function(e,t){if(void 0===t&&(t=!1),!this.renderer)return null;if(this.models.length>0&&t){var r=this.camera.position,i=e.clone().sub(r),o=new n.Raycaster(r,i.clone().normalize()),a=this.models.intersectRaycaster(o)[0];if(a&&a.distance+.01<i.length())return null}var s=e.clone().project(this.camera);if(Math.abs(s.z)>1)return null;var l=this.renderer.getSize(new n.Vector2),u=l.x*this.scissor.width,c=l.y*this.scissor.height,d=l.x*this.scissor.left+(s.x+1)/2*u,p=l.y*(1-this.scissor.bottom-this.scissor.height)+(1-s.y)/2*c;return new n.Vector2(d,p)},t.prototype.getRenderObjects=function(e){eu.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),$l.setFromProjectionMatrix(eu),e||(e=this.scene);var t=[];return e.traverseVisible((function(e){(e instanceof n.Mesh||e instanceof n.Line||e instanceof n.Points)&&(e instanceof n.ImmediateRenderObject||!e.frustumCulled||$l.intersectsObject(e))&&t.push(e)})),t},t.prototype.getCurrentState=function(){return ie(ie({},this.getPose()),{mode:this.currentMode,workCode:this.pano.workCode,panoIndex:this.pano.panoIndex})},t.prototype.setState=function(e,r,i){var o,a,s,l,u,c,d,p,h,f,v;void 0===r&&(r=!1),void 0===i&&(i=!0),!(e=Object.assign({},e)).offset||e instanceof n.Vector3||(e.offset=new n.Vector3(e.offset.x,e.offset.y,e.offset.z)),"number"==typeof e.panoIndex&&(v=e.workCode?{workCode:e.workCode,panoIndex:e.panoIndex}:{workCode:null!==(a=null===(o=this.work)||void 0===o?void 0:o.workCode)&&void 0!==a?a:"",panoIndex:e.panoIndex});var A,m,g,y,b,x=null!==(s=e.mode)&&void 0!==s?s:this.state.mode;if(e.mode!==t.Mode.Floorplan&&e.mode!==t.Mode.Topview&&e.mode!==t.Mode.Mapview&&e.mode!==t.Mode.Model||this.models.loaded){if(this.controller&&this.controller.stopMomentumMovement(),this.state.mode!==x){if("VRPanorama"===x)return void this.changeMode("VRPanorama",void 0,void 0,!0);var w={workCode:null==v?void 0:v.workCode,panoIndex:null==v?void 0:v.panoIndex};"number"==typeof e.longitude&&(w.longitude=e.longitude),"number"==typeof e.latitude&&(w.latitude=e.latitude),"number"==typeof e.fov&&(w.fov=e.fov),"number"==typeof e.distance&&"Mapview"===e.mode&&(w.distance=e.distance),e.offset instanceof n.Vector3&&"Mapview"===e.mode&&(w.offset=e.offset);var M=ie(ie({initial:{state:w,currentState:this.getCurrentState(),duration:this.modeChangeDuration,userAction:!1}},this.commonParams()),this.controllerInits[x]),E=Dl[x].initAnimationEndState(M);A=E.longitude,m=E.latitude,g=E.fov,y=E.offset,b=E.distance}else A=null!==(l=e.longitude)&&void 0!==l?l:this.state.longitude,m=null!==(u=e.latitude)&&void 0!==u?u:this.state.latitude,g=null!==(c=e.fov)&&void 0!==c?c:this.state.fov,y=null!==(d=e.offset)&&void 0!==d?d:this.state.offset,b=null!==(p=e.distance)&&void 0!==p?p:this.state.distance;var C={workCode:(null!=v?v:this.pano).workCode,panoIndex:(null!=v?v:this.pano).panoIndex,mode:x,longitude:A,latitude:m,fov:g,offset:y,distance:b};this.emit("state.set",$o("state.set",{userAction:i,state:C})),ta(this.state,C)||(this.controller&&"VRPanorama"===C.mode&&C.mode!==this.state.mode?(ea(this.state,C),this.changeMode("VRPanorama")):this.controller&&"XRPanorama"===C.mode&&C.mode!==this.state.mode?(ea(this.state,C),this.changeMode("XRPanorama")):(ea(this.state,C),this.controller&&i&&(this.controller.userAction=!1),r&&this.state.mode===C.mode&&(this.syncingState=this.syncState(Ae(),0,r),this.syncingState&&(null===(h=this.controller)||void 0===h||h.updateTime(Ae(),0),this.syncingState=!1)),this.emit("state.change",$o("state.change",{userAction:i,state:this.state})),null===(f=this.analysis)||void 0===f||f.state(this.works,this.state)))}else this.throwError(new Error("model is not ready."))},t.prototype.aroundScissor=function(e){if(this.renderer)if("XRPanorama"!==this.state.mode){var t=new n.Vector2,r=0!==this.scissor.left||0!==this.scissor.bottom||1!==this.scissor.width||1!==this.scissor.height;if(r){this.renderer.getSize(t);var i=Math.floor(t.x*this.scissor.left),o=Math.floor(t.y*this.scissor.bottom),a=Math.floor(t.x*this.scissor.width),s=Math.floor(t.y*this.scissor.height);this.renderer.setViewport(i,o,a,s),this.renderer.setScissor(i,o,a,s),this.renderer.setScissorTest(!0)}e(),r&&(this.renderer.setViewport(0,0,t.x,t.y),this.renderer.setScissor(0,0,t.x,t.y),this.renderer.setScissorTest(!1))}else e()},t.prototype.syncState=function(e,r,i){void 0===i&&(i=!1);var o=this.stateSynced;if(this.stateSynced=!1,0===this.works.length)return!1;if(!this.controller)return!1;if(this.state.mode!==this.currentMode){var a={mode:this.state.mode,workCode:this.state.workCode,panoIndex:this.state.panoIndex,longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset,distance:this.state.distance};return this.changeMode(this.state.mode,a,this.modeChangeDuration,this.controller.userAction),!0}if(!this.controller.isReady())return!1;if(this.controller instanceof Dl.Model){if(!this.camera.pose.offset.equals(this.state.offset)){var s={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return this.controller.moveToPosition(this.state.offset,ie(ie({},s),{duration:i?0:void 0}),!1),!0}}else{var l={workCode:this.state.workCode,panoIndex:this.state.panoIndex};if(!Ze(l,this.pano)&&"moveToPano"in this.controller&&"function"==typeof this.controller.moveToPano){s={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset,distance:this.state.distance};return this.controller.moveToPano(l,s,!1),!0}}if(this.controller instanceof Dl.Floorplan||this.controller instanceof Dl.Topview||this.controller instanceof Dl.Mapview){var u=1,c=Math.PI/45,d=i?this.state.fov:Xo(this.camera.pose.fov,this.state.fov,u),p=i?this.state.distance:Xo(this.camera.pose.distance,this.state.distance,.2),h=i?(new n.Vector3).copy(this.state.offset):function(e,t,r){if(e.equals(t))return(new n.Vector3).copy(t);var i=(new n.Vector3).subVectors(t,e);return i.lengthSq()<r*r?i.copy(t):i.setLength(r).add(e)}(this.camera.pose.offset,this.state.offset,.2),f=i?{longitude:this.state.longitude,latitude:this.state.latitude}:Jo({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},c),v=f.longitude,A=f.latitude;if(zo(d,this.camera.pose.fov)||Ho(h,this.camera.pose.offset)||zo(p,this.camera.pose.distance)||zo(v,this.camera.pose.longitude,2*Math.PI)||zo(A,this.camera.pose.latitude)){var m={x:h.x,y:h.y,z:h.z},g={fov:d};return Object.assign(m,{distance:p}),Object.assign(g,{longitude:v,latitude:A}),this.controller.stopMomentumMovement(),this.controller.cameraMotion.set(g,0).catch(fe),this.controller.locationMotion.set(m,0).catch(fe),!0}}else{u=1,c=Math.PI/45,d=i?this.state.fov:Xo(this.camera.pose.fov,this.state.fov,u);var y=i?{longitude:this.state.longitude,latitude:this.state.latitude}:Jo({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},c);v=y.longitude,A=y.latitude;if(zo(v,this.camera.pose.longitude,2*Math.PI)||zo(A,this.camera.pose.latitude)||zo(d,this.camera.pose.fov))return this.controller.stopMomentumMovement(),this.controller.cameraMotion.set({longitude:v,latitude:A,fov:d},0).catch(fe),!0}if(this.stateSynced=!0,!1===o&&this.emit("state.synced",$o("state.synced",{userAction:!1,state:this.state})),this.readyCallbacks.length&&this.stateSynced){var b=this.currentMode;if(!(b===t.Mode.Floorplan||b===t.Mode.Topview||b===t.Mode.Mapview||b===t.Mode.Model)||this.models.loaded){var x=this.readyCallbacks.slice();this.readyCallbacks.length=0;for(var w=0,M=x;w<M.length;w++){var E=M[w];this.controller instanceof Dl.Panorama?!0!==E.tile||this.controller.isTileReady()?E():this.readyCallbacks.push(E):E()}}}return!1},t.prototype.ready=function(e){var t=this;return void 0===e&&(e={}),new Promise((function(r){var n;t.readyCallbacks.push(Object.assign(r,{tile:null!==(n=e.tile)&&void 0!==n&&n}))}))},t.prototype.requestFullscreen=function(){var e;if(Zo()){var t=null===(e=this.getElement())||void 0===e?void 0:e.parentNode;t&&"requestFullscreen"in t&&"undefined"!=typeof document&&null===document.fullscreenElement&&t.requestFullscreen()}},t.prototype.exitFullscreen=function(){"undefined"!=typeof document&&document.fullscreenElement&&"exitFullscreen"in document&&document.exitFullscreen()},t.prototype.throwError=function(e){this.hasListener("error")?this.emit("error",e):console.error(e)},t.prototype.loadModel=function(e){for(var t=this,r=[],n=function(e){var n=i.models.filter((function(t){var r;return(null===(r=t.work)||void 0===r?void 0:r.workCode)===e.workCode}))[0];if(n)n.work=e,r.push(n);else{var o=new Zi({onError:function(r){t.emit("model.error",$o("model.request",{work:e,model:o,error:r}))},onShownFloorChange:function(r){t.emit("model.changeShownFloor",$o("model.request",{work:e,model:o,error:null}))},onLoad:function(){t.emit("model.load",$o("model.request",{work:e,model:o,error:null}))}});r.push(o),i.emit("model.request",$o("model.request",{work:e,model:o,error:null})),o.load(e,{networkSubscribe:i.networkSubscribe,requestProxy:i.requestProxy,textureOptions:i.textureOptions})}},i=this,o=0,a=e;o<a.length;o++){n(a[o])}if(this.models.length>0){for(var s=0,l=this.models;s<l.length;s++){var u=l[s];-1===r.indexOf(u)&&this.lastModels.push(u)}this.models.length=0}for(var c=0,d=r;c<d.length;c++){u=d[c];this.models.push(u)}return this.renderer&&(this.models.loaded=!1),new Promise((function(e){t.on("models.load",(function(){e()}))}))},t.prototype.commonParams=function(){return{ident:this.ident,scene:this.scene,xrCustomObjectsScene:this.xrCustomObjectsScene,helper:this.helperGroup,boundingMesh:this.boundingMesh,camera:this.camera,renderer:this.renderer,scissor:this.scissor,element:this.getElement(),models:this.models,works:this.works,imageOptions:this.imageOptions,enableIOSEDR:this._enableIOSEDR,enableEDL:this.enableEDL,extraElements:this.extraElements,videoTexture:this.videoTexture,networkSubscribe:this.networkSubscribe,requestProxy:this.requestProxy}},t.prototype.applyController=function(e,r){var n=this;if(!this.renderer)throw new Error("renderer is not initialized.");e!==t.Mode.Mapview&&(this.enableEDL=!1);var i=Dl[e];if(e!==this.currentMode)for(var o=0,a=this.models;o<a.length;o++){a[o].show()}this.currentMode=e;for(var s=new i(r),l=function(e){s.on(e,(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];if(n.emit.apply(n,ue([e],t,!1)))return!1}))},u=0,c=Fl;u<c.length;u++){l(c[u])}var d=Dl[e].initAnimationEndState(r),p=r.initial.userAction;return ta(this.state,d)||(ea(this.state,d),this.emit("state.change",$o("state.change",{userAction:p,state:this.state}))),this.emit("currentState.change",$o("currentState.change",{userAction:p,state:this.getCurrentState()})),s.on("camera.update",(function(e){var t;if(n.controller){var r=n.controller.getTargetState();e.userAction&&!1===n.syncingState&&n.state.mode===r.mode&&!ta(n.state,r)&&(ea(n.state,r),n.emit("state.change",$o("state.change",{userAction:e.userAction,state:n.state})),null===(t=n.analysis)||void 0===t||t.state(n.works,n.state))}n.emit("currentState.change",$o("currentState.change",{userAction:e.userAction,state:n.getCurrentState()}))})),s.on("initAnimation.start",(function(e){var t,r=e.state,i=e.userAction;i&&n.state.mode===r.mode&&!ta(n.state,r)&&(ea(n.state,r),n.emit("state.change",$o("state.change",{userAction:i,state:n.state})),null===(t=n.analysis)||void 0===t||t.state(n.works,n.state))})),s.on("initAnimation.end",(function(e){var t,r=e.state,i=e.userAction;i&&n.state.mode===r.mode&&!ta(n.state,r)&&(ea(n.state,r),n.emit("state.change",$o("state.change",{userAction:i,state:n.state})),null===(t=n.analysis)||void 0===t||t.state(n.works,n.state))})),s.on("pano.moveTo",(function(e){var t,r=e.state,i=e.userAction;n.pano={workCode:r.workCode,panoIndex:r.panoIndex},i&&n.state.mode===r.mode&&!ta(n.state,r)&&(ea(n.state,r),n.emit("state.change",$o("state.change",{userAction:i,state:n.state})),null===(t=n.analysis)||void 0===t||t.state(n.works,n.state))})),s.on("pano.arrived",(function(e){var t,r=e.state,i=e.userAction;i&&n.state.mode===r.mode&&!ta(n.state,r)&&(ea(n.state,r),n.emit("state.change",$o("state.change",{userAction:i,state:n.state})),null===(t=n.analysis)||void 0===t||t.state(n.works,n.state))})),s.on("pano.moveTo",(function(e){var t=e.userAction;n.emit("currentState.change",$o("currentState.change",{userAction:t,state:n.getCurrentState()}))})),s.on("pano.request",(function(e){n.emit("pano.request",e),e.defaultPrevented||n.moveToPano(e.state,e.options,e.userAction)})),s.on("vr.requestExit",(function(){n.currentMode===t.Mode.VRPanorama&&(n.exitFullscreen(),n.changeMode(t.Mode.Panorama))})),s.on("error",(function(e){return n.throwError(e)})),s},t.prototype.removeEventListeners=function(){},t.Mode={Panorama:"Panorama",Model:"Model",Floorplan:"Floorplan",Topview:"Topview",Mapview:"Mapview",DepthPanorama:"DepthPanorama",VRPanorama:"VRPanorama",XRPanorama:"XRPanorama"},t.Line=null,t}(he),ou={instances:{},constructor:iu};"undefined"!=typeof window&&Object.assign(window,{__FIVE_DEBUG__:ou});var au=function(){function e(){}return e.createButton=function(e){var t=document.createElement("button");function r(){t.style.display="",t.style.cursor="auto",t.style.left="calc(50% - 75px)",t.style.width="150px",t.onmouseenter=null,t.onmouseleave=null,t.onclick=null,t.textContent="VR NOT SUPPORTED"}function n(e){e.style.position="absolute",e.style.bottom="20px",e.style.padding="12px 6px",e.style.border="1px solid #fff",e.style.borderRadius="4px",e.style.background="rgba(0,0,0,0.1)",e.style.color="#fff",e.style.font="normal 13px sans-serif",e.style.textAlign="center",e.style.opacity="0.5",e.style.outline="none",e.style.zIndex="999"}if("xr"in navigator)return t.id="VRButton",t.style.display="none",n(t),navigator.xr.isSessionSupported("immersive-vr").then((function(n){n?(t.style.display="",t.style.cursor="pointer",t.style.left="calc(50% - 50px)",t.style.width="100px",t.textContent="ENTER VR",t.onmouseenter=function(){t.style.opacity="1.0"},t.onmouseleave=function(){t.style.opacity="0.5"},t.onclick=function(){e&&e()}):r()})),t;var i=document.createElement("a");return!1===window.isSecureContext?(i.href=document.location.href.replace(/^http:/,"https:"),i.innerHTML="WEBXR NEEDS HTTPS"):(i.href="https://immersiveweb.dev/",i.innerHTML="WEBXR NOT AVAILABLE"),i.style.left="calc(50% - 90px)",i.style.width="180px",i.style.textDecoration="none",n(i),i},e}();exports.AnimationFrameLoop=Ne,exports.BVH=Lr,exports.BVHIntersect=Tr,exports.BVHNode=Pr,exports.BVHVector3=Ir,exports.Camera=Wt,exports.Clipper=We,exports.Five=iu,exports.InternalWebGLRenderer=zt,exports.IntersectMesh=Vo,exports.Model=Zi,exports.NetworkSubscribe=Re,exports.PBMContainer=st,exports.PBMGroup=et,exports.PBMMaterialReferenceCache=rt,exports.PBMMesh=tt,exports.PBMMeshMaterial=Ut,exports.PROXY_CONTROLLER_EVENT_NAMES=Fl,exports.PanoCircleMesh=Bo,exports.PanoCircleMeshCustom=Lo,exports.PanoCircleMeshSolid=ko,exports.RequestScheduler=br,exports.Scene=qt,exports.Subscribe=he,exports.TextureLoader=Ft,exports.Tile=yr,exports.Tile3DModel=Oi,exports.TileCubeTextureTarget=Dt,exports.TileNode=Yr,exports.Tileset=Sr,exports.TilesetCache=Mr,exports.TilesetTraverser=Cr,exports.Work=ho,exports.XRButton=au,exports.defaultImageURLTransform=_e,exports.defaultPbmParameters=it,exports.getViewportScale=Ql,exports.imageSupport=function(){return Ke||(Ke=Promise.all([Ge("data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A="),Ge("data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA")]).then((function(e){var t=e[0];return{webp:e[1],avif:t}})).catch((function(){return{webp:!1,avif:!1}})))},exports.isPanoId=$e,exports.panoEqual=Ze,exports.panoParse=Je,exports.panoStringify=Xe,exports.parseWork=wo;
362
+ * Licensed under the MIT license */var aa=function(e,t,r,n){var i,o=["","webkit","Moz","MS","ms","o"],a=t.createElement?t.createElement("div"):n,s="function",l=Math.round,u=Math.abs,c=Date.now;function d(e,t,r){return setTimeout(g(e,r),t)}function p(e,t,r){return!!Array.isArray(e)&&(h(e,r[t],r),!0)}function h(e,t,r){var i;if(e)if(e.forEach)e.forEach(t,r);else if(e.length!==n)for(i=0;i<e.length;)t.call(r,e[i],i,e),i++;else for(i in e)e.hasOwnProperty(i)&&t.call(r,e[i],i,e)}function f(t,r,n){var i="DEPRECATED METHOD: "+r+"\n"+n+" AT \n";return function(){var r=new Error("get-stack-trace"),n=r&&r.stack?r.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=e.console&&(e.console.warn||e.console.log);return o&&o.call(e.console,i,n),t.apply(this,arguments)}}i="function"!=typeof Object.assign?function(e){if(e===n||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),r=1;r<arguments.length;r++){var i=arguments[r];if(i!==n&&null!==i)for(var o in i)i.hasOwnProperty(o)&&(t[o]=i[o])}return t}:Object.assign;var v=f((function(e,t,r){for(var i=Object.keys(t),o=0;o<i.length;)(!r||r&&e[i[o]]===n)&&(e[i[o]]=t[i[o]]),o++;return e}),"extend","Use `assign`."),A=f((function(e,t){return v(e,t,!0)}),"merge","Use `assign`.");function m(e,t,r){var n,o=t.prototype;(n=e.prototype=Object.create(o)).constructor=e,n._super=o,r&&i(n,r)}function g(e,t){return function(){return e.apply(t,arguments)}}function y(e,t){return typeof e==s?e.apply(t&&t[0]||n,t):e}function b(e,t){return e===n?t:e}function x(e,t,r){h(C(t),(function(t){e.addEventListener(t,r,!1)}))}function w(e,t,r){h(C(t),(function(t){e.removeEventListener(t,r,!1)}))}function M(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function E(e,t){return e.indexOf(t)>-1}function C(e){return e.trim().split(/\s+/g)}function S(e,t,r){if(e.indexOf&&!r)return e.indexOf(t);for(var n=0;n<e.length;){if(r&&e[n][r]==t||!r&&e[n]===t)return n;n++}return-1}function I(e){return Array.prototype.slice.call(e,0)}function P(e,t,r){for(var n=[],i=[],o=0;o<e.length;){var a=t?e[o][t]:e[o];S(i,a)<0&&n.push(e[o]),i[o]=a,o++}return r&&(n=t?n.sort((function(e,r){return e[t]>r[t]})):n.sort()),n}function T(e,t){for(var r,i,a=t[0].toUpperCase()+t.slice(1),s=0;s<o.length;){if((i=(r=o[s])?r+a:t)in e)return i;s++}return n}var B=1;function R(t){var r=t.ownerDocument||t;return r.defaultView||r.parentWindow||e}var O="ontouchstart"in e,k=T(e,"PointerEvent")!==n,D=O&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),F="touch",L="mouse",Q=25,N=1,V=2,U=4,z=8,q=1,H=2,_=4,j=8,G=16,K=H|_,W=j|G,Y=K|W,X=["x","y"],J=["clientX","clientY"];function Z(e,t){var r=this;this.manager=e,this.callback=t,this.element=e.element,this.target=e.options.inputTarget,this.domHandler=function(t){y(e.options.enable,[e])&&r.handler(t)},this.init()}function $(e,t,r){var i=r.pointers.length,o=r.changedPointers.length,a=t&N&&i-o==0,s=t&(U|z)&&i-o==0;r.isFirst=!!a,r.isFinal=!!s,a&&(e.session={}),r.eventType=t,function(e,t){var r=e.session,i=t.pointers,o=i.length;r.firstInput||(r.firstInput=ee(t));o>1&&!r.firstMultiple?r.firstMultiple=ee(t):1===o&&(r.firstMultiple=!1);var a=r.firstInput,s=r.firstMultiple,l=s?s.center:a.center,d=t.center=te(i);t.timeStamp=c(),t.deltaTime=t.timeStamp-a.timeStamp,t.angle=oe(l,d),t.distance=ie(l,d),function(e,t){var r=t.center,n=e.offsetDelta||{},i=e.prevDelta||{},o=e.prevInput||{};t.eventType!==N&&o.eventType!==U||(i=e.prevDelta={x:o.deltaX||0,y:o.deltaY||0},n=e.offsetDelta={x:r.x,y:r.y});t.deltaX=i.x+(r.x-n.x),t.deltaY=i.y+(r.y-n.y)}(r,t),t.offsetDirection=ne(t.deltaX,t.deltaY);var p=re(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=p.x,t.overallVelocityY=p.y,t.overallVelocity=u(p.x)>u(p.y)?p.x:p.y,t.scale=s?function(e,t){return ie(t[0],t[1],J)/ie(e[0],e[1],J)}(s.pointers,i):1,t.rotation=s?function(e,t){return oe(t[1],t[0],J)+oe(e[1],e[0],J)}(s.pointers,i):0,t.maxPointers=r.prevInput?t.pointers.length>r.prevInput.maxPointers?t.pointers.length:r.prevInput.maxPointers:t.pointers.length,function(e,t){var r,i,o,a,s=e.lastInterval||t,l=t.timeStamp-s.timeStamp;if(t.eventType!=z&&(l>Q||s.velocity===n)){var c=t.deltaX-s.deltaX,d=t.deltaY-s.deltaY,p=re(l,c,d);i=p.x,o=p.y,r=u(p.x)>u(p.y)?p.x:p.y,a=ne(c,d),e.lastInterval=t}else r=s.velocity,i=s.velocityX,o=s.velocityY,a=s.direction;t.velocity=r,t.velocityX=i,t.velocityY=o,t.direction=a}(r,t);var h=e.element;M(t.srcEvent.target,h)&&(h=t.srcEvent.target);t.target=h}(e,r),e.emit("hammer.input",r),e.recognize(r),e.session.prevInput=r}function ee(e){for(var t=[],r=0;r<e.pointers.length;)t[r]={clientX:l(e.pointers[r].clientX),clientY:l(e.pointers[r].clientY)},r++;return{timeStamp:c(),pointers:t,center:te(t),deltaX:e.deltaX,deltaY:e.deltaY}}function te(e){var t=e.length;if(1===t)return{x:l(e[0].clientX),y:l(e[0].clientY)};for(var r=0,n=0,i=0;i<t;)r+=e[i].clientX,n+=e[i].clientY,i++;return{x:l(r/t),y:l(n/t)}}function re(e,t,r){return{x:t/e||0,y:r/e||0}}function ne(e,t){return e===t?q:u(e)>=u(t)?e<0?H:_:t<0?j:G}function ie(e,t,r){r||(r=X);var n=t[r[0]]-e[r[0]],i=t[r[1]]-e[r[1]];return Math.sqrt(n*n+i*i)}function oe(e,t,r){r||(r=X);var n=t[r[0]]-e[r[0]],i=t[r[1]]-e[r[1]];return 180*Math.atan2(i,n)/Math.PI}Z.prototype={handler:function(){},init:function(){this.evEl&&x(this.element,this.evEl,this.domHandler),this.evTarget&&x(this.target,this.evTarget,this.domHandler),this.evWin&&x(R(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&w(this.element,this.evEl,this.domHandler),this.evTarget&&w(this.target,this.evTarget,this.domHandler),this.evWin&&w(R(this.element),this.evWin,this.domHandler)}};var ae={mousedown:N,mousemove:V,mouseup:U},se="mousedown",le="mousemove mouseup";function ue(){this.evEl=se,this.evWin=le,this.pressed=!1,Z.apply(this,arguments)}m(ue,Z,{handler:function(e){var t=ae[e.type];t&N&&(0===e.button||2===e.button)&&(this.pressed=!0),t&V&&1!==e.which&&(t=U),this.pressed&&(t&U&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:L,srcEvent:e}))}});var ce={pointerdown:N,pointermove:V,pointerup:U,pointercancel:z,pointerout:z},de={2:F,3:"pen",4:L,5:"kinect"},pe="pointerdown",he="pointermove pointerup pointercancel";function fe(){this.evEl=pe,this.evWin=he,Z.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}e.MSPointerEvent&&!e.PointerEvent&&(pe="MSPointerDown",he="MSPointerMove MSPointerUp MSPointerCancel"),m(fe,Z,{handler:function(e){var t=this.store,r=!1,n=!1,i=e.type.toLowerCase().replace("ms",""),o=ce[i],a=de[e.pointerType]||e.pointerType,s=a==F,l=S(t,e.pointerId,"pointerId");o&N&&(0===e.button||2===e.button||s)?l<0&&(t.push(e),l=t.length-1):o&(U|z)?r=!0:s||0!==e.buttons||(r=!0,n=!0,o=ce.pointerup),l<0||(n||(t[l]=e),this.callback(this.manager,o,{pointers:t,changedPointers:[e],pointerType:a,srcEvent:t[l]}),r&&t.splice(l,1))}});var ve={touchstart:N,touchmove:V,touchend:U,touchcancel:z};function Ae(){this.evTarget="touchstart",this.evWin="touchstart touchmove touchend touchcancel",this.started=!1,Z.apply(this,arguments)}function me(e,t){var r=I(e.touches),n=I(e.changedTouches);return t&(U|z)&&(r=P(r.concat(n),"identifier",!0)),[r,n]}m(Ae,Z,{handler:function(e){var t=ve[e.type];if(t===N&&(this.started=!0),this.started){var r=me.call(this,e,t);t&(U|z)&&r[0].length-r[1].length==0&&(this.started=!1),this.callback(this.manager,t,{pointers:r[0],changedPointers:r[1],pointerType:F,srcEvent:e})}}});var ge={touchstart:N,touchmove:V,touchend:U,touchcancel:z},ye="touchstart touchmove touchend touchcancel";function be(){this.evTarget=ye,this.targetIds={},Z.apply(this,arguments)}function xe(e,t){var r=I(e.touches),n=this.targetIds;if(t&(N|V)&&1===r.length)return n[r[0].identifier]=!0,[r,r];var i,o,a=I(e.changedTouches),s=[],l=this.target;if(o=r.filter((function(e){return M(e.target,l)})),t===N)for(i=0;i<o.length;)n[o[i].identifier]=!0,i++;for(i=0;i<a.length;)n[a[i].identifier]&&s.push(a[i]),t&(U|z)&&delete n[a[i].identifier],i++;return s.length?[P(o.concat(s),"identifier",!0),s]:void 0}m(be,Z,{handler:function(e){var t=ge[e.type],r=xe.call(this,e,t);r&&this.callback(this.manager,t,{pointers:r[0],changedPointers:r[1],pointerType:F,srcEvent:e})}});var we=2500;function Me(){Z.apply(this,arguments);var e=g(this.handler,this);this.touch=new be(this.manager,e),this.mouse=new ue(this.manager,e),this.primaryTouch=null,this.lastTouches=[]}function Ee(e,t){e&N?(this.primaryTouch=t.changedPointers[0].identifier,Ce.call(this,t)):e&(U|z)&&Ce.call(this,t)}function Ce(e){var t=e.changedPointers[0];if(t.identifier===this.primaryTouch){var r={x:t.clientX,y:t.clientY};this.lastTouches.push(r);var n=this.lastTouches;setTimeout((function(){var e=n.indexOf(r);e>-1&&n.splice(e,1)}),we)}}function Se(e){for(var t=e.srcEvent.clientX,r=e.srcEvent.clientY,n=0;n<this.lastTouches.length;n++){var i=this.lastTouches[n],o=Math.abs(t-i.x),a=Math.abs(r-i.y);if(o<=25&&a<=25)return!0}return!1}m(Me,Z,{handler:function(e,t,r){var n=r.pointerType==F,i=r.pointerType==L;if(!(i&&r.sourceCapabilities&&r.sourceCapabilities.firesTouchEvents)){if(n)Ee.call(this,t,r);else if(i&&Se.call(this,r))return;this.callback(e,t,r)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Ie=a?T(a.style,"touchAction"):n,Pe=Ie!==n,Te="compute",Be="auto",Re="manipulation",Oe="none",ke="pan-x",De="pan-y",Fe=function(){if(!Pe)return!1;var t={},r=e.CSS&&e.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach((function(n){t[n]=!r||e.CSS.supports("touch-action",n)})),t}();function Le(e,t){this.manager=e,this.set(t)}Le.prototype={set:function(e){e==Te&&(e=this.compute()),Pe&&this.manager.element.style&&Fe[e]&&(this.manager.element.style[Ie]=e),this.actions=e.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var e=[];return h(this.manager.recognizers,(function(t){y(t.options.enable,[t])&&(e=e.concat(t.getTouchAction()))})),function(e){if(E(e,Oe))return Oe;var t=E(e,ke),r=E(e,De);if(t&&r)return Oe;if(t||r)return t?ke:De;if(E(e,Re))return Re;return Be}(e.join(" "))},preventDefaults:function(e){var t=e.srcEvent,r=e.offsetDirection;if(this.manager.session.prevented)t.preventDefault();else{var n=this.actions,i=E(n,Oe)&&!Fe[Oe],o=E(n,De)&&!Fe[De],a=E(n,ke)&&!Fe[ke];if(i){var s=1===e.pointers.length,l=e.distance<2,u=e.deltaTime<250;if(s&&l&&u)return}if(!a||!o)return i||o&&r&K||a&&r&W?this.preventSrc(t):void 0}},preventSrc:function(e){this.manager.session.prevented=!0,e.preventDefault()}};var Qe=1,Ne=2,Ve=4,Ue=8,ze=Ue,qe=16,He=32;function _e(e){this.options=i({},this.defaults,e||{}),this.id=B++,this.manager=null,this.options.enable=b(this.options.enable,!0),this.state=Qe,this.simultaneous={},this.requireFail=[]}function je(e){return e&qe?"cancel":e&Ue?"end":e&Ve?"move":e&Ne?"start":""}function Ge(e){return e==G?"down":e==j?"up":e==H?"left":e==_?"right":""}function Ke(e,t){var r=t.manager;return r?r.get(e):e}function We(){_e.apply(this,arguments)}function Ye(){We.apply(this,arguments),this.pX=null,this.pY=null}function Xe(){We.apply(this,arguments)}function Je(){_e.apply(this,arguments),this._timer=null,this._input=null}function Ze(){We.apply(this,arguments)}function $e(){We.apply(this,arguments)}function et(){_e.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function tt(e,t){return(t=t||{}).recognizers=b(t.recognizers,tt.defaults.preset),new rt(e,t)}_e.prototype={defaults:{},set:function(e){return i(this.options,e),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(e){if(p(e,"recognizeWith",this))return this;var t=this.simultaneous;return t[(e=Ke(e,this)).id]||(t[e.id]=e,e.recognizeWith(this)),this},dropRecognizeWith:function(e){return p(e,"dropRecognizeWith",this)||(e=Ke(e,this),delete this.simultaneous[e.id]),this},requireFailure:function(e){if(p(e,"requireFailure",this))return this;var t=this.requireFail;return-1===S(t,e=Ke(e,this))&&(t.push(e),e.requireFailure(this)),this},dropRequireFailure:function(e){if(p(e,"dropRequireFailure",this))return this;e=Ke(e,this);var t=S(this.requireFail,e);return t>-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){var t=this,r=this.state;function n(r){t.manager.emit(r,e)}r<Ue&&n(t.options.event+je(r)),n(t.options.event),e.additionalEvent&&n(e.additionalEvent),r>=Ue&&n(t.options.event+je(r))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=He},canEmit:function(){for(var e=0;e<this.requireFail.length;){if(!(this.requireFail[e].state&(He|Qe)))return!1;e++}return!0},recognize:function(e){var t=i({},e);if(!y(this.options.enable,[this,t]))return this.reset(),void(this.state=He);this.state&(ze|qe|He)&&(this.state=Qe),this.state=this.process(t),this.state&(Ne|Ve|Ue|qe)&&this.tryEmit(t)},process:function(e){},getTouchAction:function(){},reset:function(){}},m(We,_e,{defaults:{pointers:1},attrTest:function(e){var t=this.options.pointers;return 0===t||e.pointers.length===t},process:function(e){var t=this.state,r=e.eventType,n=t&(Ne|Ve),i=this.attrTest(e);return n&&(r&z||!i)?t|qe:n||i?r&U?t|Ue:t&Ne?t|Ve:Ne:He}}),m(Ye,We,{defaults:{event:"pan",threshold:10,pointers:1,direction:Y},getTouchAction:function(){var e=this.options.direction,t=[];return e&K&&t.push(De),e&W&&t.push(ke),t},directionTest:function(e){var t=this.options,r=!0,n=e.distance,i=e.direction,o=e.deltaX,a=e.deltaY;return i&t.direction||(t.direction&K?(i=0===o?q:o<0?H:_,r=o!=this.pX,n=Math.abs(e.deltaX)):(i=0===a?q:a<0?j:G,r=a!=this.pY,n=Math.abs(e.deltaY))),e.direction=i,r&&n>t.threshold&&i&t.direction},attrTest:function(e){return We.prototype.attrTest.call(this,e)&&(this.state&Ne||!(this.state&Ne)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=Ge(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),m(Xe,We,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Oe]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||this.state&Ne)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),m(Je,_e,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Be]},process:function(e){var t=this.options,r=e.pointers.length===t.pointers,n=e.distance<t.threshold,i=e.deltaTime>t.time;if(this._input=e,!n||!r||e.eventType&(U|z)&&!i)this.reset();else if(e.eventType&N)this.reset(),this._timer=d((function(){this.state=ze,this.tryEmit()}),t.time,this);else if(e.eventType&U)return ze;return He},reset:function(){clearTimeout(this._timer)},emit:function(e){this.state===ze&&(e&&e.eventType&U?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=c(),this.manager.emit(this.options.event,this._input)))}}),m(Ze,We,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Oe]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||this.state&Ne)}}),m($e,We,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:K|W,pointers:1},getTouchAction:function(){return Ye.prototype.getTouchAction.call(this)},attrTest:function(e){var t,r=this.options.direction;return r&(K|W)?t=e.overallVelocity:r&K?t=e.overallVelocityX:r&W&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&r&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&u(t)>this.options.velocity&&e.eventType&U},emit:function(e){var t=Ge(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),m(et,_e,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Re]},process:function(e){var t=this.options,r=e.pointers.length===t.pointers,n=e.distance<t.threshold,i=e.deltaTime<t.time;if(this.reset(),e.eventType&N&&0===this.count)return this.failTimeout();if(n&&i&&r){if(e.eventType!=U)return this.failTimeout();var o=!this.pTime||e.timeStamp-this.pTime<t.interval,a=!this.pCenter||ie(this.pCenter,e.center)<t.posThreshold;if(this.pTime=e.timeStamp,this.pCenter=e.center,a&&o?this.count+=1:this.count=1,this._input=e,0===this.count%t.taps)return this.hasRequireFailures()?(this._timer=d((function(){this.state=ze,this.tryEmit()}),t.interval,this),Ne):ze}return He},failTimeout:function(){return this._timer=d((function(){this.state=He}),this.options.interval,this),He},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ze&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),tt.VERSION="2.0.7",tt.defaults={domEvents:!1,touchAction:Te,enable:!0,inputTarget:null,inputClass:null,preset:[[Ze,{enable:!1}],[Xe,{enable:!1},["rotate"]],[$e,{direction:K}],[Ye,{direction:K},["swipe"]],[et],[et,{event:"doubletap",taps:2},["tap"]],[Je]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};function rt(e,t){var r;this.options=i({},tt.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=e,this.input=new((r=this).options.inputClass||(k?fe:D?be:O?Me:ue))(r,$),this.touchAction=new Le(this,this.options.touchAction),nt(this,!0),h(this.options.recognizers,(function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])}),this)}function nt(e,t){var r,n=e.element;n.style&&(h(e.options.cssProps,(function(i,o){r=T(n.style,o),t?(e.oldCssProps[r]=n.style[r],n.style[r]=i):n.style[r]=e.oldCssProps[r]||""})),t||(e.oldCssProps={}))}return rt.prototype={set:function(e){return i(this.options,e),e.touchAction&&this.touchAction.update(),e.inputTarget&&(this.input.destroy(),this.input.target=e.inputTarget,this.input.init()),this},stop:function(e){this.session.stopped=e?2:1},recognize:function(e){var t=this.session;if(!t.stopped){var r;this.touchAction.preventDefaults(e);var n=this.recognizers,i=t.curRecognizer;(!i||i&&i.state&ze)&&(i=t.curRecognizer=null);for(var o=0;o<n.length;)r=n[o],2===t.stopped||i&&r!=i&&!r.canRecognizeWith(i)?r.reset():r.recognize(e),!i&&r.state&(Ne|Ve|Ue)&&(i=t.curRecognizer=r),o++}},get:function(e){if(e instanceof _e)return e;for(var t=this.recognizers,r=0;r<t.length;r++)if(t[r].options.event==e)return t[r];return null},add:function(e){if(p(e,"add",this))return this;var t=this.get(e.options.event);return t&&this.remove(t),this.recognizers.push(e),e.manager=this,this.touchAction.update(),e},remove:function(e){if(p(e,"remove",this))return this;if(e=this.get(e)){var t=this.recognizers,r=S(t,e);-1!==r&&(t.splice(r,1),this.touchAction.update())}return this},on:function(e,t){if(e!==n&&t!==n){var r=this.handlers;return h(C(e),(function(e){r[e]=r[e]||[],r[e].push(t)})),this}},off:function(e,t){if(e!==n){var r=this.handlers;return h(C(e),(function(e){t?r[e]&&r[e].splice(S(r[e],t),1):delete r[e]})),this}},emit:function(e,r){this.options.domEvents&&function(e,r){var n=t.createEvent("Event");n.initEvent(e,!0,!0),n.gesture=r,r.target.dispatchEvent(n)}(e,r);var n=this.handlers[e]&&this.handlers[e].slice();if(n&&n.length){r.type=e,r.preventDefault=function(){r.srcEvent.preventDefault()};for(var i=0;i<n.length;)n[i](r),i++}},destroy:function(){this.element&&nt(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},i(tt,{INPUT_START:N,INPUT_MOVE:V,INPUT_END:U,INPUT_CANCEL:z,STATE_POSSIBLE:Qe,STATE_BEGAN:Ne,STATE_CHANGED:Ve,STATE_ENDED:Ue,STATE_RECOGNIZED:ze,STATE_CANCELLED:qe,STATE_FAILED:He,DIRECTION_NONE:q,DIRECTION_LEFT:H,DIRECTION_RIGHT:_,DIRECTION_UP:j,DIRECTION_DOWN:G,DIRECTION_HORIZONTAL:K,DIRECTION_VERTICAL:W,DIRECTION_ALL:Y,Manager:rt,Input:Z,TouchAction:Le,TouchInput:be,MouseInput:ue,PointerEventInput:fe,TouchMouseInput:Me,SingleTouchInput:Ae,Recognizer:_e,AttrRecognizer:We,Tap:et,Pan:Ye,Swipe:$e,Pinch:Xe,Rotate:Ze,Press:Je,on:x,off:w,each:h,merge:A,extend:v,assign:i,inherit:m,bindFn:g,prefixed:T}),tt}("undefined"!=typeof window?window:{},"undefined"!=typeof document?document:{});function sa(e,t,r){var i=t.getBoundingClientRect(),o=i.top,a=i.left,s=i.width,l=i.height;return r&&(a+=s*r.left,o+=l*(1-r.bottom-r.height),s*=r.width,l*=r.height),new n.Vector2((e.x-a)/s*2-1,-(e.y-o)/l*2+1)}var la=function(e){function t(r){var n,i,o,a,s,l=this;l=e.call(this)||this;var u=t.parseArgs(r);return l.mode="",l.pending=new Set,l.userAction=u.initial.userAction,l.destroyed=!1,l.ident=u.ident,l.scene=u.scene,l.xrCustomObjectsScene=u.xrCustomObjectsScene,l.helper=u.helper,l.boundingMesh=u.boundingMesh,l.camera=u.camera,l.renderer=u.renderer,l.scissor=u.scissor,l.element=u.element,l.models=u.models,l.enableIOSEDR=null!==(n=u.enableIOSEDR)&&void 0!==n&&n,l.enableEDL=null===(i=u.enableEDL)||void 0===i||i,l.works=u.works,l.imageOptions=u.imageOptions,l.videoTexture=u.videoTexture,l.networkSubscribe=u.networkSubscribe,l.requestProxy=u.requestProxy,l.extraElements=u.extraElements,l.initial=u.initial,l.currentPano="number"==typeof l.initial.state.panoIndex?{workCode:null!==(s=null!==(o=l.initial.state.workCode)&&void 0!==o?o:null===(a=u.works[0])||void 0===a?void 0:a.workCode)&&void 0!==s?s:"",panoIndex:l.initial.state.panoIndex}:{workCode:l.initial.currentState.workCode,panoIndex:l.initial.currentState.panoIndex},l.needsRender=!0,l.cameraMotion=new Io({longitude:{value:l.camera.pose.longitude,circle:[0,2*Math.PI]},latitude:l.camera.pose.latitude,fov:l.camera.pose.fov}),l.inMomentumMovement=null,l.eventUnbinds=[u.element].concat(u.extraElements||[]).map((function(e){return l.bindEvents(e)})),l.pending.add("init-animation"),Ne.shared.add((function(){l.initAnimation().then((function(){l.pending.delete("init-animation")}))}),!0),l}return ne(t,e),t.parseArgs=function(e){return e instanceof t?e:ie({},e)},t.initAnimationEndState=function(e){var t,r,n,i,o,a,s,l,u=this.parseArgs(e),c=u.initial,d=c.state,p=c.currentState,h="number"==typeof d.panoIndex?{workCode:null!==(n=null!==(t=d.workCode)&&void 0!==t?t:null===(r=u.works[0])||void 0===r?void 0:r.workCode)&&void 0!==n?n:"",panoIndex:d.panoIndex}:{workCode:p.workCode,panoIndex:p.panoIndex};return ie(ie({},h),{mode:"",longitude:null!==(i=d.longitude)&&void 0!==i?i:p.longitude,latitude:null!==(o=d.latitude)&&void 0!==o?o:p.latitude,fov:null!==(a=d.fov)&&void 0!==a?a:p.fov,offset:null!==(s=d.offset)&&void 0!==s?s:p.offset,distance:null!==(l=d.distance)&&void 0!==l?l:p.distance})},t.prototype.destroy=function(){var e;this.stopMomentumMovement(),this.destroyed=!0,this.off(),this.cameraMotion.dispose();for(var t=0,r=this.eventUnbinds;t<r.length;t++){(0,r[t])()}this.copyEffect&&(this.copyEffect.dispose(),delete this.copyEffect),delete this.panState,null===(e=this.pressState)||void 0===e||e.stop(),delete this.pressState},t.prototype.isReady=function(){return null===this.inMomentumMovement&&0===this.pending.size&&!0===this.cameraMotion.ended},t.prototype.bindExtraElement=function(e){for(var t=0,r=this.eventUnbinds;t<r.length;t++){if(r[t].element===e)return}this.eventUnbinds.push(this.bindEvents(e))},t.prototype.unbindExtraElement=function(e){for(var t=[],r=0,n=this.eventUnbinds;r<n.length;r++){var i=n[r];i.element===e?i():t.push(i)}this.eventUnbinds=t},t.prototype.updateRenderSize=function(){this.needsRender=!0},t.prototype.updateModel=function(e){this.needsRender=!0},t.prototype.updateWork=function(e,t,r,n){return this.works=e,this.userAction=n,!1},t.prototype.updateTime=function(e,t){if(!this.destroyed){var r={};this.cameraMotion.ended&&(this.cameraMotion.update(e),r.longitude=this.cameraMotion.value.longitude,r.latitude=this.cameraMotion.value.latitude,r.fov=this.cameraMotion.value.fov),ia(r)&&this.setCamera(r)}},t.prototype.render=function(){this.renderer.render(this.scene,this.camera)},t.prototype.postProcessing=function(e,t){this.destroyed},t.prototype.updateCamera=function(e,t,r){return this.userAction=r,this.cameraMotion.set(e,t).catch(fe)},t.prototype.updateCameraWithKeyframes=function(e,t,r){return this.userAction=r,this.cameraMotion.setKeyframes(e,t)},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(Ae())[1];return ie(ie({},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,n=t.initAnimationEndState(this);return this.userAction=r,this.emit("initAnimation.start",$o("initAnimation.start",{state:n,userAction:this.userAction})),this.emit("initAnimation.end",$o("initAnimation.end",{state:n,userAction:this.userAction})),Promise.resolve()},t.prototype.setCamera=function(e){var t,r,n,i,o;void 0===e&&(e={});var a=null!==(t=e.longitude)&&void 0!==t?t:this.camera.pose.longitude,s=null!==(r=e.latitude)&&void 0!==r?r:this.camera.pose.latitude,l=null!==(n=e.fov)&&void 0!==n?n:this.camera.pose.fov,u=null!==(i=e.distance)&&void 0!==i?i:this.camera.pose.distance,c=null!==(o=e.offset)&&void 0!==o?o:this.camera.pose.offset,d=zo(a,this.camera.pose.longitude,2*Math.PI)||zo(s,this.camera.pose.latitude),p=zo(l,this.camera.pose.fov),h=zo(u,this.camera.pose.distance),f=Ho(c,this.camera.pose.offset);(p||d||f||h)&&(this.camera.setFromPose({longitude:a,latitude:s,fov:l,distance:u,offset:c}),this.emit("camera.update",$o("camera.update",{userAction:this.userAction,state:ie(ie({},this.currentPano),{mode:this.mode,longitude:a,latitude:s,fov:l,offset:c,distance:u})})),this.needsRender=!0)},t.prototype.stopMomentumMovement=function(){if(this.inMomentumMovement&&this.inMomentumMovement.event&&!this.inMomentumMovement.event.defaultPrevented&&!this.inMomentumMovement.event.isFinal){var e=$o("gesture.momentum",ie(ie({},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.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 sa(e,this.element,this.scissor)},t.prototype.bindEvents=function(e){var t=this,r=function(e){var r=sa(e,t.element,t.scissor);return!(Math.abs(r.x)>1||Math.abs(r.y)>1)},i=new aa.Manager(e),o=function(e){return e.session.firstInput||null};i.add(new aa.Pan({threshold:10,pointers:0})),i.add(new aa.Tap({interval:410})),i.add(new aa.Pinch({threshold:0,pointers:2})),i.on("panstart pan",(function(e){var a=o(i);if(!a||r(a.center)){var s,l,u,c=$o("gesture.pan",{target:e.target,pointerType:e.pointerType,srcEvent:e.srcEvent,pointers:e.pointers.map((function(e){var r=t.relativeClientPosition(e),i=new n.Raycaster;return i.setFromCamera(r,t.camera),{x:e.x,y:e.y,delta:0,buttons:0,coords:r,raycaster:i}})),isFirst:e.isFirst,isFinal:e.isFinal,scale:e.scale,center:(s=e.center,l=t.relativeClientPosition(s),u=new n.Raycaster,u.setFromCamera(l,t.camera),{x:s.x,y:s.y,delta:0,buttons:0,coords:l,raycaster:u}),velocityX:e.velocityX,velocityY:e.velocityY,overallVelocityX:e.overallVelocityX,overallVelocityY:e.overallVelocityY,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});t.onPanGesture(c),v()}})),i.on("tap",(function(e){if("mouse"!==e.pointerType||0===e.srcEvent.button){var a=o(i);if(!a||r(a.center)){var s,l,u,c=$o("gesture.tap",{target:e.target,pointerType:e.pointerType,srcEvent:e.srcEvent,pointers:e.pointers.map((function(e){var r=t.relativeClientPosition(e),i=new n.Raycaster;return i.setFromCamera(r,t.camera),{x:e.x,y:e.y,delta:0,buttons:0,coords:r,raycaster:i}})),isFirst:!0,isFinal:!0,scale:e.scale,center:(s=e.center,l=t.relativeClientPosition(s),u=new n.Raycaster,u.setFromCamera(l,t.camera),{x:s.x,y:s.y,delta:0,buttons:0,coords:l,raycaster:u}),velocityX:e.velocityX,velocityY:e.velocityY,overallVelocityX:e.overallVelocityX,overallVelocityY:e.overallVelocityY,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});t.onTapGesture(c),v()}}})),i.on("pinchstart pinch pinchend",(function(e){var a=o(i);if(!a||r(a.center)){var s,l,u,c=$o("gesture.pinch",{target:e.target,pointerType:e.pointerType,srcEvent:e.srcEvent,pointers:e.pointers.map((function(e){var r,i=t.relativeClientPosition(e),o=new n.Raycaster;return o.setFromCamera(i,t.camera),{x:e.x,y:e.y,delta:null!==(r=e.delta)&&void 0!==r?r:0,buttons:0,coords:i,raycaster:o}})),isFirst:"pinchstart"===e.type,isFinal:"pinchend"===e.type,scale:e.scale,center:(s=e.center,l=t.relativeClientPosition(s),u=new n.Raycaster,u.setFromCamera(l,t.camera),{x:s.x,y:s.y,delta:0,buttons:0,coords:l,raycaster:u}),velocityX:e.velocityX,velocityY:e.velocityY,overallVelocityX:e.overallVelocityX,overallVelocityY:e.overallVelocityY,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});t.onPinchGesture(c),v()}}));var a=null,s=null,l=function(e,r,i){var o={x:i.clientX,y:i.clientY},a=t.relativeClientPosition(o),s=new n.Raycaster;s.setFromCamera(a,t.camera);var l=ie(ie({},o),{coords:a,raycaster:s,buttons:i.buttons,delta:0}),u="pinchend"===e?r:r-i.deltaY/280;return $o("gesture.pinch",{target:i.target,pointerType:"mouse",srcEvent:i,pointers:[ie({},l)],isFirst:"pinchstart"===e,isFinal:"pinchend"===e,scale:Dr(u,.1,10),center:ie({},l),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))})},u=function(e){var i,o={x:e.clientX,y:e.clientY};if(r(o)){if(e.preventDefault(),e.ctrlKey){var u=null!==(i=null==a?void 0:a.prevEvent.scale)&&void 0!==i?i:1,c=l(a?"pinch":"pinchstart",u,e);null===a?a={firstEvent:c,prevEvent:c}:a.prevEvent=c,t.onPinchGesture(c),null!==s&&window.clearTimeout(s),s=window.setTimeout((function(){var r;s=null;var n=null!==(r=null==a?void 0:a.prevEvent.scale)&&void 0!==r?r:1,i=l("pinchend",n,e);a=null,t.onPinchGesture(i)}),200)}else{var d=(Math.abs(e.deltaY)>Math.abs(e.deltaX)?e.deltaY:e.deltaX)/-60,p=void 0!==t.mouseWheelState,h={x:e.clientX,y:e.clientY},f=t.relativeClientPosition(h),A=new n.Raycaster;A.setFromCamera(f,t.camera);var m=ie(ie({},h),{coords:f,raycaster:A,buttons:e.buttons,delta:d});c=$o("gesture.mousewheel",{target:e.target,pointerType:"mouse",srcEvent:e,pointers:[ie({},m)],isFirst:p,isFinal:!1,scale:0,center:ie({},m),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});t.onMouseWheel(c),t.mouseWheelState&&clearTimeout(t.mouseWheelState.timer),t.mouseWheelState={timer:setTimeout((function(){delete t.mouseWheelState;var r=$o("gesture.mousewheel",{target:e.target,pointerType:"mouse",srcEvent:e,pointers:[ie(ie({},m),{delta:0})],isFirst:!1,isFinal:!0,scale:0,center:ie(ie({},m),{delta:0}),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});t.onMouseWheel(r)}),100)}}v()}},c=function(e){if(!Zo())if(r({x:e.clientX,y:e.clientY})){var i=!1;t.mouseMoveState||(i=!0);var o={x:e.clientX,y:e.clientY},a=t.relativeClientPosition(o),s=new n.Raycaster;s.setFromCamera(a,t.camera);var l=ie(ie({},o),{coords:a,raycaster:s,buttons:e.buttons,delta:0}),u=$o("gesture.mousemove",{target:e.target,pointerType:"mouse",srcEvent:e,pointers:[ie({},l)],isFirst:i,isFinal:!1,scale:0,center:ie({},l),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});t.mouseMoveState||(t.mouseMoveState={timeStamp:Ae(),event:u}),t.onMouseMove(u),t.pressState&&Math.abs(e.clientX-t.pressState.event.center.y)>10&&Math.abs(e.clientY-t.pressState.event.center.y)>10&&v()}else d()},d=function(){if(t.mouseMoveState){var e=$o(t.mouseMoveState.event.type,ie(ie({},t.mouseMoveState.event),{isFinal:!0}));t.onMouseMove(e)}v()},p=function(e){if(r(e.center)){var n=!1;t.pressState||(n=!0,t.pressState={event:e,timeStamp:Ae(),stop:fe});var i=Ae()-t.pressState.timeStamp,o=$o(t.pressState.event.type,ie(ie({},t.pressState.event),{isFirst:n,isFinal:!1,center:ie(ie({},t.pressState.event.center),{delta:i}),pointers:t.pressState.event.pointers.map((function(e){return ie(ie({},e),{delta:i})}))}));t.onPressGesture(o),t.pressState&&(t.pressState.stop=Ne.shared.add((function(t){p(e)}),!0,1))}else v()},h=function(e){if(v(),!(e.touches.length>1||e.changedTouches.length<=0)){var r={x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY},i=t.relativeClientPosition(r),o=new n.Raycaster;o.setFromCamera(i,t.camera);var a=ie(ie({},r),{coords:i,raycaster:o,buttons:0,delta:0}),s=$o("gesture.press",{target:e.target,pointerType:"touch",srcEvent:e,pointers:[ie({},a)],isFirst:!1,isFinal:!1,scale:0,center:a,velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});p(s)}},f=function(e){v();var r={x:e.clientX,y:e.clientY},i=t.relativeClientPosition(r),o=new n.Raycaster;o.setFromCamera(i,t.camera);var a=ie(ie({},r),{coords:i,raycaster:o,buttons:e.buttons,delta:0}),s=$o("gesture.press",{target:e.target,pointerType:"mouse",srcEvent:e,pointers:[ie({},a)],isFirst:!1,isFinal:!1,scale:0,center:a,velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))});p(s)},v=function(){var e;if(t.pressState){var r=Ae()-t.pressState.timeStamp,n=$o(t.pressState.event.type,ie(ie({},t.pressState.event),{center:ie(ie({},t.pressState.event.center),{delta:r}),isFirst:!1,isFinal:!0,pointers:t.pressState.event.pointers.map((function(e){return ie(ie({},e),{delta:r})}))}));t.onPressGesture(n),null===(e=t.pressState)||void 0===e||e.stop(),delete t.pressState}},A=null,m=function(e){var r,i=!1,o=!1;switch(e.type){case"gesturestart":i=!0;break;case"gestureend":o=!0}var a={x:e.clientX,y:e.clientY},s=t.relativeClientPosition(a),l=new n.Raycaster;l.setFromCamera(s,t.camera);var u=ie(ie({},a),{coords:s,raycaster:l,buttons:0,delta:0});return $o("gesture.pinch",{target:e.target,pointerType:"mouse",srcEvent:e,pointers:[ie({},u)],isFirst:i,isFinal:o,scale:null!==(r=e.scale)&&void 0!==r?r:1,center:ie({},u),velocityX:0,velocityY:0,overallVelocityX:0,overallVelocityY:0,userAction:!0,state:ie(ie({mode:t.mode},t.currentPano),oa(t.camera.pose))})},g=function(e){if(e.preventDefault(),!Zo()){var n=m(e),i=(A={firstEvent:n}).firstEvent;i&&!r(i.center)||t.onPinchGesture(n)}},y=function(e){if(e.preventDefault(),!Zo()&&A){var n=m(e),i=A.firstEvent;i&&!r(i.center)||t.onPinchGesture(n)}},b=function(e){if(e.preventDefault(),!Zo()&&A){var n=m(e),i=A.firstEvent;A=null,i&&!r(i.center)||t.onPinchGesture(n)}},x=function(t){if(t&&"function"==typeof t.preventDefault&&t.currentTarget===e&&t.preventDefault(),"function"==typeof getSelection){var r=getSelection();r&&r.focusNode&&(r.removeAllRanges&&r.removeAllRanges(),r.empty&&r.empty())}};e.addEventListener("wheel",u,{passive:!1}),e.addEventListener("mousemove",c,!1),e.addEventListener("mouseout",d,!1),e.addEventListener("touchstart",h,{passive:!0}),e.addEventListener("touchend",v,!1),e.addEventListener("touchcancel",v,!1),e.addEventListener("mousedown",f,!1),e.addEventListener("mouseup",v,!1),e.addEventListener("gesturestart",g,{passive:!1}),e.addEventListener("gesturechange",y,{passive:!1}),e.addEventListener("gestureend",b,{passive:!1}),e.addEventListener("touchstart",x,{passive:!1}),e.addEventListener("contextmenu",x,!1);return Object.assign((function(){i.destroy(),e.removeEventListener("wheel",u,!1),e.removeEventListener("mousemove",c,!1),e.removeEventListener("mouseout",d,!1),e.removeEventListener("touchstart",h,!1),e.removeEventListener("touchend",v,!1),e.removeEventListener("touchcancel",v,!1),e.removeEventListener("mousedown",f,!1),e.removeEventListener("mouseup",v,!1),e.removeEventListener("gesturestart",g,!1),e.removeEventListener("gesturechange",y,!1),e.removeEventListener("gestureend",b,!1),e.removeEventListener("touchstart",x,!1),e.removeEventListener("contextmenu",x,!1)}),{element:e})},t.prototype.preloadPano=function(e,t){var r=this;void 0===t&&(t=fe);var n=this.works.getResolvedObserver(e);if(!n)return Promise.resolve();var i=this.works[0].allowHosts;return Promise.all(["right","left","up","down","front","back"].map((function(t){var o=ie({key:"pano.".concat(Xe(e),".").concat(t)},Zn(r.imageOptions,["size","format","quality","mappings"])),a=n.images[t];return De(r.imageOptions.transform?r.imageOptions.transform(a,o):_e(a,o),{allowHosts:i,requestProxy:r.requestProxy,networkSubscribe:r.networkSubscribe})}))).then((function(){return t(e),e}))},t}(he),ua=function(e){function t(r){var n,i=this,o=t.parseArgs(r);return(i=e.call(this,o)||this).mode="Floorplan",i.defaultLatitude=o.defaultLatitude,i.defaultFov=o.defaultFov,i.maxFov=o.maxFov,i.minFov=o.minFov,i.maxLatitude=o.maxLatitude,i.minLatitude=o.minLatitude,i.locationMotion=new Io({x:i.camera.pose.offset.x,y:i.camera.pose.offset.y,z:i.camera.pose.offset.z,distance:i.camera.pose.distance,modelAlpha:null!==(n=i.models.getMaterial().modelAlpha)&&void 0!==n?n:0,perspToOrtho:i.camera.perspToOrtho.x,orthoDistance:i.camera.orthoDistance}),i.currentTapId=null,i.intersectMeshCreator=o.intersectMeshCreator,i.intersectMesh=i.intersectMeshCreator(),i.intersectMesh.name="intersect",i.intersectMesh.visible=!1,i.helper.add(i.intersectMesh),i}return ne(t,e),t.distanceFromModel=function(e,t,r){var n=e.bounding,i=Math.pow(Math.pow(n.max.x-n.min.x+1,2)+Math.pow(n.max.y-n.min.y+1,2)+Math.pow(n.max.z-n.min.z+1,2),.5),o=i/2/Math.tan(Math.PI*t/360);return r<1&&(o/=r),isNaN(o)?i:o},t.parseArgs=function(r){var n,i,o,a,s,l,u;if(r instanceof t)return r;var c=e.parseArgs.call(this,r);return ie(ie({},c),{defaultLatitude:null!==(n=r.defaultLatitude)&&void 0!==n?n:Math.PI/4,defaultFov:null!==(i=r.defaultFov)&&void 0!==i?i:80,maxFov:null!==(o=r.maxFov)&&void 0!==o?o:120,minFov:null!==(a=r.minFov)&&void 0!==a?a:20,maxLatitude:null!==(s=r.maxLatitude)&&void 0!==s?s:+Math.PI/2,minLatitude:null!==(l=r.minLatitude)&&void 0!==l?l:-Math.PI/2,intersectMeshCreator:null!==(u=r.intersectMeshCreator)&&void 0!==u?u:function(){return new Vo}})},t.initAnimationEndState=function(e){var r,i,o,a,s,l,u=this.parseArgs(e),c=e.initial,d=c.state,p=c.currentState,h="number"==typeof d.panoIndex?{workCode:null!==(o=null!==(r=d.workCode)&&void 0!==r?r:null===(i=u.works[0])||void 0===i?void 0:i.workCode)&&void 0!==o?o:"",panoIndex:d.panoIndex}:{workCode:p.workCode,panoIndex:p.panoIndex};return ie(ie({},h),{mode:"Floorplan",longitude:null!==(a=d.longitude)&&void 0!==a?a:p.longitude,latitude:Dr(null!==(s=d.latitude)&&void 0!==s?s:"Floorplan"===p.mode?p.latitude:u.defaultLatitude,u.minLatitude,u.maxLatitude),fov:null!==(l=d.fov)&&void 0!==l?l:u.defaultFov,offset:e.models.bounding.getCenter(new n.Vector3),distance:t.distanceFromModel(u.models,u.defaultFov,u.camera.aspect)})},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.panState,this.intersectMesh.dispose(),this.helper.remove(this.intersectMesh)},t.prototype.isReady=function(){return!1!==this.locationMotion.ended&&e.prototype.isReady.call(this)},t.prototype.updateWork=function(e,t,r,n){return this.works=e,this.updateCamera(t,null!=r?r:0,n),!0},t.prototype.updateModel=function(r){e.prototype.updateModel.call(this,r);var i=r.bounding.getCenter(new n.Vector3),o=t.distanceFromModel(r,this.defaultFov,this.camera.aspect);this.locationMotion.set({x:i.x,y:i.y,z:i.z,distance:o},0).catch(fe)},t.prototype.updateTime=function(e,t){if(!this.destroyed){var r={},i={};this.locationMotion.ended||(this.locationMotion.update(e),r.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Dr(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,i.distance=this.locationMotion.value.distance,i.offset=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),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),ia(r)||this.models.setMaterial(r),ia(i)||this.setCamera(i)}},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(Ae())[1],t=this.locationMotion.getKeyFrameSegment(Ae())[1];return ie(ie({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:new n.Vector3(t.value.x,t.value.y,t.value.z),distance:t.value.distance})},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise((function(r){var n=e.initial;n.state,n.currentState;var i=n.duration,o=n.userAction;e.userAction=o;var a=t.initAnimationEndState(e),s=Zn(a,["longitude","latitude","fov"]),l={x:a.offset.x,y:a.offset.y,z:a.offset.z,distance:a.distance,modelAlpha:1,perspToOrtho:0,orthoDistance:a.distance};e.emit("initAnimation.start",$o("initAnimation.start",{state:a,userAction:e.userAction})),e.cameraMotion.set(s,i).catch(fe),e.locationMotion.set(l,i).then((function(){e.emit("initAnimation.end",$o("initAnimation.end",{state:a,userAction:e.userAction}))}),(function(t){var r=ie(ie(ie({},e.currentPano),{mode:e.mode}),oa(e.camera.pose));e.emit("initAnimation.end",$o("initAnimation.end",{state:r,userAction:e.userAction}))})).then((function(){r()}))}))},t.prototype.updateRenderSize=function(){this.locationMotion.set({distance:t.distanceFromModel(this.models,this.defaultFov,this.camera.aspect)},0).catch(fe)},t.prototype.getForwardObserverOrNot=function(e){var t=this.models.intersectRaycaster(e)[0];if(!t)return null;var r=na(this.works.resolvedObservers,(function(e){return e.standingPosition.distanceTo(t.point)}),!0),n=r[0],i=r[1];return n&&i<10?n:null},t.prototype.coordinatesForOffset=function(e){var t=this.renderer.getSize(new n.Vector2);return{longitude:2*e.x/(t.x*this.scissor.width),latitude:2*e.y/(t.y*this.scissor.height)}},t.prototype.requestMomentumMovement=function(e,t,r,n){var i=this;if(null!==this.inMomentumMovement){for(var o=ie({},r),a={longitude:0,latitude:0},s=0;s<n;s++)o.longitude*=.996,o.latitude*=.994008,a.longitude+=o.longitude,a.latitude+=o.latitude;var l=Ko(this.cameraMotion.value.longitude+a.longitude),u=Dr(this.cameraMotion.value.latitude+a.latitude,this.minLatitude,this.maxLatitude),c=ie(ie({},this.currentPano),{mode:this.mode,longitude:l,latitude:u,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance}),d=!(o.longitude>1e-4||o.longitude<-1e-4||o.latitude>1e-4||o.latitude<-1e-4),p=$o("gesture.momentum",ie(ie({},e),{isFirst:t,isFinal:d,state:c}));this.inMomentumMovement.event=p,this.emit("gesture.momentum",p),e.defaultPrevented?this.inMomentumMovement=null:this.inMomentumMovement&&(this.cameraMotion.set({longitude:l,latitude:u},0).catch(fe),d?this.inMomentumMovement=null:Ne.shared.add((function(t,r){i.requestMomentumMovement(e,!1,o,0|r)}),!0,1))}},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var t=this.panState,r=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:r,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===r){var n={x:e.center.x-t.x,y:e.center.y-t.y},i=this.relativeClientPosition(e.center),o=this.camera.pose.latitude<Math.PI/6||i.y<0?-1:1;n.x*=o;var a=this.coordinatesForOffset(n),s=Ko(this.cameraMotion.value.longitude+a.longitude),l=Dr(this.cameraMotion.value.latitude+a.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&&(l=this.cameraMotion.value.latitude);var u=ie(ie({},this.currentPano),{mode:this.mode,longitude:s,latitude:l,fov:this.camera.pose.fov,offset:this.camera.pose.offset,distance:this.camera.pose.distance});if(e.state=u,this.emit("gesture.pan",e),!e.defaultPrevented&&(this.cameraMotion.set({longitude:u.longitude,latitude:u.latitude},0).catch(fe),e.isFinal)){var c=e.velocityX*o,d=e.velocityY;this.inMomentumMovement={uuid:Fi()},this.requestMomentumMovement(e,!0,this.coordinatesForOffset({x:c,y:d}),0)}}},t.prototype.onPinchGesture=function(e){var t;this.userAction=e.userAction,this.stopMomentumMovement();var r=null===(t=this.pinchState)||void 0===t?void 0:t.fov;if("pinchstart"!==e.type){if("pinchend"===e.type&&(delete this.panState,delete this.pinchState),void 0!==r){var n=Dr(r/e.scale,this.minFov,this.maxFov);e.state.fov=n,this.emit("gesture.pinch",e),e.defaultPrevented||(this.cameraMotion.set({fov:n},0).catch(fe),this.onPanGesture(e))}}else this.pinchState={x:e.center.x,y:e.center.y,fov:this.cameraMotion.value.fov}},t.prototype.onMouseMove=function(e){var t,r;if(this.intersectMesh.parent&&!this.panState)if(this.emit("gesture.mousemove",e),e.defaultPrevented)this.hideIntersectMesh();else{var i=e.center.raycaster;if(e.isFinal&&this.intersectMesh.parent&&!0===this.intersectMesh.visible)this.hideIntersectMesh();else{var o=this.models.intersectRaycaster(i)[0],a=$o("intersect.update",{raycaster:i,intersection:null!=o?o:null,object:this.intersectMesh});if(this.emit("intersect.update",a),a.defaultPrevented)this.hideIntersectMesh();else if(o){var s=null!==(r=null===(t=o.face)||void 0===t?void 0:t.normal)&&void 0!==r?r:(new n.Vector3).copy(i.ray.direction).multiplyScalar(-1),l=s.clone().multiplyScalar(.05),u=o.point.clone().add(l);this.intersectMesh.position.copy(u);var c=u.clone().add(l);if(this.intersectMesh.lookAt(c),Math.abs(s.y)>.99){var d=this.camera.position.clone().sub(u);this.intersectMesh.rotation.z=-Math.atan2(d.z,d.x)}this.intersectMesh.visible=!0,this.needsRender=!0}else this.hideIntersectMesh()}}},t.prototype.onMouseWheel=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var t=this.minFov,r=this.maxFov,n=Dr(this.camera.fov-e.center.delta,t,r);e.state.fov=n,this.emit("gesture.mousewheel",e),e.defaultPrevented||this.cameraMotion.set({fov:n},0).catch(fe)},t.prototype.onTapGesture=function(e){var t=this;this.userAction=!0,this.stopMomentumMovement();var r=e.center.raycaster,i=this.getForwardObserverOrNot(r);if(i){var o={longitude:this.camera.pose.longitude,latitude:0},a=ie(ie({},e.state),{mode:"Panorama",workCode:i.pano.workCode,panoIndex:i.pano.panoIndex,longitude:o.longitude,latitude:o.latitude,offset:i?i.position.clone():new n.Vector3,distance:0});if(e.state=a,this.emit("gesture.tap",e),!e.defaultPrevented&&(this.emit("pano.select",$o("pano.select",{prevPano:this.currentPano,state:a,userAction:e.userAction,options:o,progress:0,error:null})),i&&i.active)){var s=this.currentTapId=Fi();this.preloadPano(i.pano).then((function(e){t.currentTapId===s&&t.emit("pano.request",$o("pano.request",{userAction:!0,prevPano:t.currentPano,progress:0,state:a,options:o,error:null}))}))}}else this.emit("gesture.tap",e)},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.needsRender=!0},t}(la),ca={longitude:0,latitude:Math.PI/2},da={longitude:0,latitude:0},pa={longitude:Math.PI/2,latitude:0},ha={longitude:Math.PI,latitude:0},fa={longitude:1.5*Math.PI,latitude:0};var va,Aa=function(e){function t(r){var n=this,i=t.parseArgs(r);return(n=e.call(this,i)||this).mode="Topview",n}return ne(t,e),t.parseArgs=function(r){if(r instanceof t)return r;var n=ie(ie({},r.initial),{state:ie(ie({},r.initial.state),{longitude:0,latitude:Math.PI/2})}),i=ie(ie({},r),{initial:n,maxLatitude:Math.PI/2,minLatitude:Math.PI/2,defaultLongitude:0,defaultLatitude:Math.PI/2});return e.parseArgs.call(this,i)},t.initAnimationEndState=function(t){var r=this.parseArgs(t),n=e.initAnimationEndState.call(this,r);return ie(ie({},n),{mode:"Topview"})},t.prototype.updateModel=function(e){this.needsRender=!0;var t=this.models.bounding.getCenter(new n.Vector3);this.locationMotion.set({x:t.x,y:t.y,z:t.z,distance:ua.distanceFromModel(this.models,this.defaultFov,this.camera.aspect)},0).catch(fe)},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise((function(r){var n=e.initial;n.state,n.currentState;var i=n.duration,o=n.userAction;e.userAction=o;var a=t.initAnimationEndState(e),s={longitude:a.longitude,latitude:a.latitude,fov:a.fov},l={x:a.offset.x,y:a.offset.y,z:a.offset.z,distance:a.distance,modelAlpha:1,perspToOrtho:1,orthoDistance:a.distance};e.emit("initAnimation.start",$o("initAnimation.start",{state:a,userAction:e.userAction})),e.cameraMotion.set(s,i).catch(fe),e.locationMotion.set(l,i).then((function(){e.emit("initAnimation.end",$o("initAnimation.end",{state:a,userAction:e.userAction}))}),(function(t){var r=ie(ie(ie({},e.currentPano),{mode:e.mode}),oa(e.camera.pose));e.emit("initAnimation.end",$o("initAnimation.end",{state:r,userAction:e.userAction}))})).then((function(){r()}))}))},t.prototype.getZoomOffsetFromFov=function(e,t,r){var i=this.camera.getDirection(new n.Vector3),o=Math.tan(r/2*Math.PI/180),a=Math.tan(t.fov/2*Math.PI/180),s=(a-o)/a,l=new n.Raycaster;l.setFromCamera(e,t);var u=l.ray.direction,c=u.angleTo(i),d=ua.distanceFromModel(this.models,this.defaultFov,this.camera.aspect),p=d*Math.tan(c),h=u.clone().setLength(d*Math.cos(c)).projectOnPlane(i),f=h.length(),v=s/f*h.x*p,A=s/f*h.z*p,m=s/f*h.y*p;return new n.Vector3(v,m,A)},t.prototype.requestMomentumMovement=function(){this.inMomentumMovement=null},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var t=this.panState,r=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:r,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===r){var i=e.center.x-t.x,o=e.center.y-t.y,a=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),s=this.models.bounding,l=s.getCenter(new n.Vector3),u=(s.max.x-s.min.x)/this.defaultFov*this.cameraMotion.value.fov,c=(s.max.y-s.min.y)/this.defaultFov*this.cameraMotion.value.fov,d=(s.max.z-s.min.z)/this.defaultFov*this.cameraMotion.value.fov,p={left:new n.Vector3,up:new n.Vector3,cameraDirection:"y"};this.cameraMotion.value.longitude===ca.longitude&&this.cameraMotion.value.latitude===ca.latitude?(p.left.set(1,0,0),p.up.set(0,0,-1),p.cameraDirection="y"):this.cameraMotion.value.longitude===da.longitude&&this.cameraMotion.value.latitude===da.latitude?(p.left.set(1,0,0),p.up.set(0,1,0),p.cameraDirection="z"):this.cameraMotion.value.longitude===ha.longitude&&this.cameraMotion.value.latitude===ha.latitude?(p.left.set(1,0,0),p.up.set(0,-1,0),p.cameraDirection="z"):this.cameraMotion.value.longitude===fa.longitude&&this.cameraMotion.value.latitude===fa.latitude?(p.left.set(0,0,-1),p.up.set(0,-1,0),p.cameraDirection="x"):this.cameraMotion.value.longitude===pa.longitude&&this.cameraMotion.value.latitude===pa.latitude&&(p.left.set(0,0,-1),p.up.set(0,1,0),p.cameraDirection="x");var h=(this.camera.position[p.cameraDirection]-s.min[p.cameraDirection])*Math.tan(this.camera.fov/2*Math.PI/180),f=this.renderer.getSize(new n.Vector2);a.add(function(e,t){var r=(new n.Vector3).copy(t);return r.multiplyScalar(-e),r}(2*i*h/f.y,p.left)),a.add(function(e,t){var r=(new n.Vector3).copy(t);return r.multiplyScalar(e),r}(2*o*h/f.y,p.up)),a.x=Dr(a.x,l.x-u,l.x+u),a.y=Dr(a.y,l.y-c,l.y+c),a.z=Dr(a.z,l.z-d,l.z+d);var v=ie(ie({},this.currentPano),{mode:this.mode,longitude:0,latitude:Math.PI/2,fov:this.cameraMotion.value.fov,offset:a,distance:this.locationMotion.value.distance});e.state=v,this.emit("gesture.pan",e),e.defaultPrevented||this.locationMotion.set({x:a.x,y:a.y,z:a.z},0).catch(fe)}},t.prototype.onPinchGesture=function(e){var t;this.userAction=e.userAction,this.stopMomentumMovement();var r=null===(t=this.pinchState)||void 0===t?void 0:t.fov;if("pinchstart"!==e.type){if("pinchend"===e.type&&delete this.pinchState,void 0!==r){var n=Dr(r/e.scale,this.minFov,this.maxFov),i=this.relativeClientPosition({x:e.center.x,y:e.center.y}),o=this.getZoomOffsetFromFov(i,this.camera,n);this.cameraMotion.value.longitude===ca.longitude&&this.cameraMotion.value.latitude===ca.latitude?o.y=0:this.cameraMotion.value.longitude===da.longitude&&this.cameraMotion.value.latitude===da.latitude||this.cameraMotion.value.longitude===ha.longitude&&this.cameraMotion.value.latitude===ha.latitude?o.z=0:(this.cameraMotion.value.longitude===fa.longitude&&this.cameraMotion.value.latitude===fa.latitude||this.cameraMotion.value.longitude===pa.longitude&&this.cameraMotion.value.latitude===pa.latitude)&&(o.x=0);var a=this.camera.pose.offset.clone().add(o);e.state.offset.copy(a),e.state.fov=n,this.emit("gesture.pinch",e),e.defaultPrevented||(this.locationMotion.set({x:a.x,y:a.y,z:a.z},0).catch(fe),this.cameraMotion.set({fov:n},0).catch(fe),e.type="gesture.pan",this.onPanGesture(e))}}else this.pinchState={x:e.center.x,y:e.center.y,fov:this.cameraMotion.value.fov}},t.prototype.onMouseWheel=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var t=Dr(this.cameraMotion.value.fov-e.center.delta,this.minFov,this.maxFov),r=e.center.coords,n=this.getZoomOffsetFromFov(r,this.camera,t);this.cameraMotion.value.longitude===ca.longitude&&this.cameraMotion.value.latitude===ca.latitude?n.y=0:this.cameraMotion.value.longitude===da.longitude&&this.cameraMotion.value.latitude===da.latitude||this.cameraMotion.value.longitude===ha.longitude&&this.cameraMotion.value.latitude===ha.latitude?n.z=0:(this.cameraMotion.value.longitude===fa.longitude&&this.cameraMotion.value.latitude===fa.latitude||this.cameraMotion.value.longitude===pa.longitude&&this.cameraMotion.value.latitude===pa.latitude)&&(n.x=0);var i=this.camera.pose.offset.clone().add(n);e.state.offset.copy(i),e.state.fov=t,this.emit("gesture.mousewheel",e),e.defaultPrevented||(this.locationMotion.set({x:i.x,y:i.y,z:i.z},0).catch(fe),this.cameraMotion.set({fov:t},0).catch(fe))},t}(ua),ma=function(e){function t(r){var n=this,i=t.parseArgs(r);return(n=e.call(this,i)||this).mode="PanoramaLike",n.defaultLatitude=i.defaultLatitude,n.defaultFov=i.defaultFov,n.maxFov=i.maxFov,n.minFov=i.minFov,n.maxLatitude=i.maxLatitude,n.minLatitude=i.minLatitude,n.moveSpeed=i.moveSpeed,n.intersectMeshCreator=i.intersectMeshCreator,n.intersectMesh=n.intersectMeshCreator(),n.intersectMesh.name="intersect",n.intersectMesh.visible=!1,n.helper.add(n.intersectMesh),n}return ne(t,e),t.parseArgs=function(r){var n,i,o,a,s,l,u,c;if(r instanceof t)return r;var d=e.parseArgs.call(this,r);return ie(ie({},d),{defaultLatitude:null!==(n=r.defaultLatitude)&&void 0!==n?n:0,defaultFov:null!==(i=r.defaultFov)&&void 0!==i?i:90,maxFov:null!==(o=r.maxFov)&&void 0!==o?o:120,minFov:null!==(a=r.minFov)&&void 0!==a?a:40,maxLatitude:null!==(s=r.maxLatitude)&&void 0!==s?s:+Math.PI/2,minLatitude:null!==(l=r.minLatitude)&&void 0!==l?l:-Math.PI/2,moveSpeed:null!==(u=r.moveSpeed)&&void 0!==u?u:3.4,intersectMeshCreator:null!==(c=r.intersectMeshCreator)&&void 0!==c?c:function(){return new Vo}})},t.initAnimationEndState=function(e){var t,r,i,o,a,s,l=this.parseArgs(e),u=l.works,c=e.initial,d=c.state,p=c.currentState,h="number"==typeof d.panoIndex?{workCode:null!==(i=null!==(t=d.workCode)&&void 0!==t?t:null===(r=l.works[0])||void 0===r?void 0:r.workCode)&&void 0!==i?i:"",panoIndex:d.panoIndex}:{workCode:p.workCode,panoIndex:p.panoIndex},f=u.getResolvedObserver(h),v=null!==(o=d.longitude)&&void 0!==o?o:p.longitude,A=Dr(null!==(a=d.latitude)&&void 0!==a?a:zi(p.mode)?p.latitude:l.defaultLatitude,l.minLatitude,l.maxLatitude),m=Dr(null!==(s=d.fov)&&void 0!==s?s:zi(p.mode)?p.fov:l.defaultFov,l.minFov,l.maxFov),g=f?f.position.clone():new n.Vector3;return{workCode:h.workCode,panoIndex:h.panoIndex,mode:"PanoramaLike",longitude:v,latitude:A,fov:m,offset:g,distance:0}},t.prototype.destroy=function(){e.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&&e.prototype.isReady.call(this))},t.prototype.calculateMovingDuration=function(e,t){switch(typeof e){case"function":return e(t,this.moveSpeed);case"number":return e;case"string":return Number(e);default:return Dr(t,2,5)/this.moveSpeed*1e3}},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.needsRender=!0},t.prototype.coordinatesForOffset=function(e){var t=this.cameraMotion.value.fov,r=this.camera.aspect,i=this.renderer.getSize(new n.Vector2);return{longitude:2*e.x/(i.x*this.scissor.width)*t/95*r,latitude:-2*e.y/(i.y*this.scissor.height)*t/95}},t.prototype.cameraBounce=function(){var e=this.cameraMotion.value,t=e.longitude,r=e.latitude,n=e.fov,i=[{progress:0,value:{longitude:t,latitude:r,fov:n}},{progress:.5,value:{longitude:t,latitude:r,fov:.98*n}},{progress:1,value:{longitude:t,latitude:r,fov:n}}];this.cameraMotion.setKeyframes(i,500).catch(fe)},t.prototype.requestMomentumMovement=function(e,t,r,n){var i=this;if(null!==this.inMomentumMovement){for(var o=ie({},r),a={longitude:0,latitude:0},s=0;s<n;s++)o.longitude*=.996,o.latitude*=.98604,a.longitude+=o.longitude,a.latitude+=o.latitude;var l=Ko(this.cameraMotion.value.longitude+a.longitude),u=Dr(this.cameraMotion.value.latitude+a.latitude,this.minLatitude,this.maxLatitude),c=ie(ie({},this.currentPano),{mode:this.mode,longitude:l,latitude:u,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance}),d=!(o.longitude>1e-4||o.longitude<-1e-4||o.latitude>1e-4||o.latitude<-1e-4),p=$o("gesture.momentum",ie(ie({},e),{isFirst:t,isFinal:d,state:c}));this.inMomentumMovement.event=p,this.emit("gesture.momentum",p),e.defaultPrevented?this.inMomentumMovement=null:this.inMomentumMovement&&(this.cameraMotion.set({longitude:l,latitude:u},0).catch(fe),d?this.inMomentumMovement=null:Ne.shared.add((function(t,r){i.requestMomentumMovement(e,!1,o,0|r)}),!0,1))}},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var t=this.panState,r=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:r,x:e.center.x,y:e.center.y},void 0!==t&&t.pointerLength===r){var n={x:e.center.x-t.x,y:e.center.y-t.y},i=this.coordinatesForOffset(n),o=Ko(this.cameraMotion.value.longitude+i.longitude),a=Dr(this.cameraMotion.value.latitude+i.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&&(a=this.cameraMotion.value.latitude);var s=ie(ie({},this.currentPano),{mode:this.mode,longitude:o,latitude:a,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone(),distance:this.camera.pose.distance});if(e.state=s,this.emit("gesture.pan",e),!e.defaultPrevented){var l={longitude:s.longitude,latitude:s.latitude,fov:s.fov};if(this.cameraMotion.set(l,0).catch(fe),e.isFinal){var u=e.velocityX,c=.6*e.velocityY;Math.abs(c)>.5&&Math.abs(u)<.5&&(u=0),this.inMomentumMovement={uuid:Fi()},this.requestMomentumMovement(e,!0,this.coordinatesForOffset({x:u,y:c}),0)}}}},t.prototype.onPinchGesture=function(e){var t;this.userAction=e.userAction,this.stopMomentumMovement();var r=null===(t=this.pinchState)||void 0===t?void 0:t.fov,n=e.scale;if(e.isFirst)this.pinchState={x:e.center.x,y:e.center.y,fov:this.cameraMotion.value.fov};else if(e.isFinal&&delete this.pinchState,void 0!==r){var i=Dr(r/n,this.minFov,this.maxFov);e.state.fov=i,this.emit("gesture.pinch",e),e.defaultPrevented||(this.cameraMotion.set({fov:i},0).catch(fe),e.type="gesture.pan",this.onPanGesture(e))}},t.prototype.onMouseWheel=function(e){this.userAction=e.userAction,this.stopMomentumMovement();var t=Dr(this.cameraMotion.value.fov-e.center.delta,this.minFov,this.maxFov);e.state.fov=t,this.emit("gesture.mousewheel",e),e.defaultPrevented||this.cameraMotion.set({fov:t},0).catch(fe)},t.prototype.onMouseMove=function(e){var t,r;if(this.intersectMesh.parent&&!this.panState&&(this.emit("gesture.mousemove",e),!e.defaultPrevented)){var i=e.center.raycaster;if(e.isFinal&&this.intersectMesh.parent&&!0===this.intersectMesh.visible)this.hideIntersectMesh();else{var o=this.models.intersectRaycaster(i)[0],a=$o("intersect.update",{raycaster:i,intersection:null!=o?o:null,object:this.intersectMesh});if(this.emit("intersect.update",a),a.defaultPrevented)this.hideIntersectMesh();else if(o){var s=null!==(r=null===(t=o.face)||void 0===t?void 0:t.normal)&&void 0!==r?r:(new n.Vector3).copy(i.ray.direction).multiplyScalar(-1),l=s.clone().multiplyScalar(.05),u=o.point.clone().add(l);this.intersectMesh.position.copy(u);var c=u.clone().add(l);if(this.intersectMesh.lookAt(c),Math.abs(s.y)>.99){var d=this.camera.position.clone().sub(u);this.intersectMesh.rotation.z=-Math.atan2(d.z,d.x)}this.intersectMesh.visible=!0,this.needsRender=!0}else this.hideIntersectMesh()}}},t}(la);function ga(){return va||(va=new Promise((function(e){var t,r=document.createElement("video");r.muted=!0,r.src="data:video/mp4;base64,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",r.addEventListener("timeupdate",(function n(){r.removeEventListener("timeupdate",n,!1),clearTimeout(t);var i=document.createElement("canvas");i.width=i.height=1;var o=i.getContext("2d");o?(o.drawImage(r,0,0,1,1),o.getImageData(0,0,1,1).data[3]>10?e(!0):e(!1)):e(!1)}),!1),r.addEventListener("canplay",(function e(){r.removeEventListener("canplay",e,!1),r.play()}),!1),t=window.setTimeout((function(){return e(!1)}),1e3)})))}var ya=new n.OrthographicCamera(-1,1,1,-1,0,1),ba=new n.BufferGeometry;ba.setAttribute("position",new n.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),ba.setAttribute("uv",new n.Float32BufferAttribute([0,2,0,0,2,0],2));var xa=new n.Mesh(ba),wa=new n.Scene;wa.add(xa);var Ma,Ea=function(){function e(e,t){var r;this.renderer=e,this.material=new n.ShaderMaterial({vertexShader:null!==(r=t.vertex)&&void 0!==r?r:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:t.fragment,uniforms:Object.assign({inputBuffer:new n.Uniform(null)},t.uniforms),defines:Object.assign({},t.defines),blending:n.NoBlending,depthWrite:!1,depthTest:!1})}return e.prototype.render=function(e,t){var r=this.renderer.getRenderTarget(),n=xa.material;this.material.uniforms.inputBuffer.value=e.texture,xa.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(wa,ya),this.renderer.setRenderTarget(r),xa.material=n},e.prototype.dispose=function(){this.material.dispose()},e}(),Ca=function(){function e(e){this.renderer=e,this.material=new n.ShaderMaterial({vertexShader:"\nvoid main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform vec3 inputValue;\nvoid main() {\n gl_FragColor = vec4(inputValue, 1.0);\n}\n",uniforms:Object.assign({inputValue:new n.Uniform(new n.Vector3)}),blending:n.NoBlending,depthWrite:!1,depthTest:!1})}return e.prototype.render=function(e,t){var r=this.renderer.getRenderTarget(),n=xa.material;this.material.uniforms.inputValue.value.copy(e),xa.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(wa,ya),this.renderer.setRenderTarget(r),xa.material=n},e.prototype.dispose=function(){this.material.dispose()},e}(),Sa=function(e){function t(t,r){return void 0===r&&(r=.5),e.call(this,t,{uniforms:{inputBuffer:new n.Uniform(null),scale:new n.Uniform(r)},fragment:"\n#include <common>\nuniform sampler2D inputBuffer;\nuniform float scale;\nvarying vec2 vUv;\n\nvoid main() {\n float u = (vUv.x - 0.5) * scale + 0.5;\n float v = (vUv.y - 0.5) * scale + 0.5;\n vec3 rgb = texture2D(inputBuffer, vec2(u, v)).rgb;\n float luminance = clamp(linearToRelativeLuminance(rgb), 0.1, 0.9);\n gl_FragColor = vec4(luminance);\n}\n"})||this}return ne(t,e),t}(Ea),Ia=function(e){function t(t){return e.call(this,t,{fragment:"\nuniform sampler2D inputBuffer;\nvarying vec2 vUv;\nvoid main() {\n gl_FragColor = texture2D(inputBuffer, vUv);\n}\n"})||this}return ne(t,e),t}(Ea),Pa=function(){function e(e,t,r,n){this.enable=!0,this.renderer=e,this.scene=t,this.camera=r,this.models=n,this.copyPass=new Ia(this.renderer)}return e.prototype.render=function(e,t){},e.prototype.dispose=function(){this.copyPass.dispose()},e}(),Ta=function(e){function t(t,r){void 0===r&&(r=.002);var i=e.call(this,t,{uniforms:{targetBuffer:new n.Uniform(null),inputBuffer:new n.Uniform(null),step:new n.Uniform(r)},fragment:"\n uniform sampler2D targetBuffer;\n uniform sampler2D inputBuffer;\n uniform float step;\n varying vec2 vUv;\n void main() {\n\n #ifdef GL_EXT_shader_texture_lod\n #if __VERSION__ < 300\n float target = texture2DLodEXT(targetBuffer, vUv, 5.0).r;\n #else\n float target = textureLod(targetBuffer, vUv, 5.0).r;\n #endif\n #else\n float target = texture2D(targetBuffer, vUv).r;\n #endif\n float current = texture2D(inputBuffer, vUv).r;\n\n float result;\n if (abs(target - current) < step) {\n result = target;\n } else if (target - current > 0.0) {\n result = current + step;\n } else {\n result = current - step;\n }\n gl_FragColor = vec4(result, result, result, 1.0);\n }\n "})||this;return i.material.extensions.shaderTextureLOD=!0,i}return ne(t,e),Object.defineProperty(t.prototype,"targetBuffer",{get:function(){return this.material.uniforms.targetBuffer.value},set:function(e){this.material.uniforms.targetBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"step",{get:function(){return this.material.uniforms.step.value},set:function(e){this.material.uniforms.step.value=e},enumerable:!1,configurable:!0}),t}(Ea),Ba=function(e){function t(t){var r=e.call(this,t,{uniforms:{inputBuffer:new n.Uniform(null),luminanceAdaptiveBuffer:new n.Uniform(null),progress:new n.Uniform(0)},fragment:"\n #include <common>\n uniform sampler2D inputBuffer;\n uniform sampler2D luminanceAdaptiveBuffer;\n uniform float progress;\n varying vec2 vUv;\n\n void main() {\n float middleGrey = 1.5;\n float whitePoint = 13.0;\n float exposure = 1.4;\n vec4 inputColor = texture2D(inputBuffer, vUv);\n vec3 rgb = inputColor.rgb * exposure;\n float alpha = inputColor.a;\n float luminance = linearToRelativeLuminance(rgb);\n float lumAvg = texture2D(luminanceAdaptiveBuffer, vec2(0.5)).r;\n float lumScaled = (luminance * middleGrey) / max(lumAvg, 1e-6);\n float lumCompressed = lumScaled * (1.0 + lumScaled / (whitePoint * whitePoint));\n lumCompressed /= (1.0 + lumScaled);\n rgb = clamp(lumCompressed * rgb, 0.0, 1.0);\n gl_FragColor = mix(inputColor, vec4(rgb, alpha), progress * 0.9);\n }\n "})||this;return r.material.transparent=!0,r}return ne(t,e),Object.defineProperty(t.prototype,"luminanceAdaptiveBuffer",{get:function(){return this.material.uniforms.luminanceAdaptiveBuffer.value},set:function(e){this.material.uniforms.luminanceAdaptiveBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"progress",{get:function(){return this.material.uniforms.progress.value},set:function(e){this.material.uniforms.progress.value=e},enumerable:!1,configurable:!0}),t}(Ea),Ra=function(e){function t(t,r,n,i){var o=e.call(this,t,r,n,i)||this;return o.enableTime=Ae(),o.renderer=t,o.valuePass=new Ca(o.renderer),o.luminancePass=new Sa(o.renderer,Math.sqrt(1/3)),o.nextStepPass=new Ta(o.renderer,.01),o.luminanceAdaptivePass=new Ba(o.renderer),o}return ne(t,e),t.prototype.render=function(e){if(!this.enable)return this.enableTime=null,void this.copyPass.render(e[0],e[1]);null===this.enableTime&&(this.enableTime=Ae()),this.luminanceTargetBuffer||(this.luminanceTargetBuffer=new n.WebGLRenderTarget(128,128,{minFilter:n.LinearMipmapLinearFilter,magFilter:n.LinearFilter,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1,format:n.RGBAFormat,generateMipmaps:!0}),this.nextStepPass.targetBuffer=this.luminanceTargetBuffer.texture),this.luminancePass.render(e[0],this.luminanceTargetBuffer),this.luminancePrevBuffer||(this.luminancePrevBuffer=new n.WebGLRenderTarget(1,1,{minFilter:n.NearestFilter,magFilter:n.NearestFilter,type:n.HalfFloatType,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1}),this.valuePass.render(new n.Vector3(.5,.5,.5),this.luminancePrevBuffer)),this.luminanceNextBuffer||(this.luminanceNextBuffer=new n.WebGLRenderTarget(1,1,{minFilter:n.NearestFilter,magFilter:n.NearestFilter,type:n.HalfFloatType,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1}),this.valuePass.render(new n.Vector3(.5,.5,.5),this.luminanceNextBuffer),this.luminanceAdaptivePass.luminanceAdaptiveBuffer=this.luminanceNextBuffer.texture),this.copyPass.render(this.luminanceNextBuffer,this.luminancePrevBuffer),this.nextStepPass.render(this.luminancePrevBuffer,this.luminanceNextBuffer),this.luminanceAdaptivePass.progress=Math.min((Ae()-this.enableTime)/100,1),this.luminanceAdaptivePass.render(e[0])},t.prototype.dispose=function(){var e,t,r;null===(e=this.luminanceTargetBuffer)||void 0===e||e.dispose(),null===(t=this.luminancePrevBuffer)||void 0===t||t.dispose(),null===(r=this.luminanceNextBuffer)||void 0===r||r.dispose(),this.copyPass.dispose(),this.luminancePass.dispose(),this.nextStepPass.dispose(),this.luminanceAdaptivePass.dispose()},t}(Pa),Oa=512,ka=null!==(Ma=Math.SQRT1_2)&&void 0!==Ma?Ma:Math.sqrt(2),Da={up:new n.Quaternion(ka,0,0,ka),down:new n.Quaternion(-ka,0,0,ka),left:new n.Quaternion(0,ka,0,ka),right:new n.Quaternion(0,-ka,0,ka),front:new n.Quaternion(0,0,0,1),back:new n.Quaternion(0,1,0,0)},Fa=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),La=new Float32Array([0,0,1,0,0,1,1,1]),Qa=new Uint8Array([0,1,2,1,3,2]),Na=new n.BufferGeometry;Na.setAttribute("position",new n.BufferAttribute(Fa,3)),Na.setAttribute("uv",new n.BufferAttribute(La,2)),Na.setIndex(new n.BufferAttribute(Qa,1));var Va=function(e){function t(){var t=e.call(this,{uniforms:{map:{value:null},luminanceMap:{value:null},flipY:{value:0}},vertexShader:"\nuniform float flipY;\nvarying vec2 vUv;\nvoid main() {\n vUv = vec2(uv.x, mix(uv.y, (1.0 - uv.y), flipY));\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\n#if defined(USE_LUMINANCE)\nuniform sampler2D luminanceMap;\n#endif\nuniform sampler2D map;\nvarying vec2 vUv;\n\nvoid main() {\n gl_FragColor = texture2D(map, vUv);\n #if defined(USE_LUMINANCE)\n gl_FragColor.a = 1.0 - texture2D(luminanceMap, vUv).r;\n #endif\n}\n"})||this;return t.depthTest=!1,t.depthWrite=!1,t.blending=n.NoBlending,t.map=t.uniforms.map.value,t.luminanceMap=t.uniforms.luminanceMap.value,t.flipY=t.uniforms.flipY.value,Object.defineProperties(t,{map:{get:function(){return this.uniforms.map.value},set:function(e){this.uniforms.map.value=e}},luminanceMap:{get:function(){return this.uniforms.luminanceMap.value},set:function(e){this.uniforms.luminanceMap.value=e,this.defines.USE_LUMINANCE=null!==e,this.needsUpdate=!0}},flipY:{get:function(){return 1===this.uniforms.flipY.value},set:function(e){this.uniforms.flipY.value=e?1:0}}}),t}return ne(t,e),t}(n.ShaderMaterial),Ua=function(e){function t(t,r){var i=e.call(this,Na,new Va)||this;return t.box.getCenter(i.position),i.quaternion.multiplyQuaternions((new n.Quaternion).setFromAxisAngle(new n.Vector3(0,1,0),-Math.PI),Da[t.face]),i.scale.setScalar(t.size),i.node=t,i.name="tiling:tile",i.material.visible=!1,i.activeTime=-1,i.disposed=!1,i.needsRender=!1,i.frustumCulled=!1,r.then((function(e){var t=e[0],r=e[1];i.disposed?(t.dispose(),null==r||r.dispose()):(i.material.map=t,i.material.luminanceMap=r,i.material.flipY=!t.flipY,i.material.needsUpdate=!0,i.material.visible=!0,i.needsRender=!0)})).catch(fe),i}return ne(t,e),t.prototype.updateTime=function(e){},t.prototype.dispose=function(){var e;this.disposed=!0,this.material.map&&(this.material.map.dispose(),null===(e=this.material.luminanceMap)||void 0===e||e.dispose()),this.material.dispose()},t}(n.Mesh),za=function(e){function t(){var t=e.call(this)||this;return t.needsRender=!1,t.name="tiling",t}return ne(t,e),t}(n.Group),qa=function(){function e(e,t,r){this.disposed=!1,this.textureLoader=new Ft,this.minLevel=t,this.level=0,this.panoId="[0]",this.pedding=0,this.tileTree=dt(this.minLevel),this.tileMeshes=new Map,this.resource=[],this.luminance=null,this.imageOptions=r,this.networkOptions=e,this.object=new za,this.object.renderOrder=-3}return e.prototype.setAllowHosts=function(e){this.networkOptions.allowHosts=e},e.prototype.setRequestProxy=function(e){this.networkOptions.requestProxy=e},e.prototype.setNetworkSubscribe=function(e){this.networkOptions.networkSubscribe=e},e.prototype.cleanup=function(){var e=this;this.tileMeshes.forEach((function(t){t.dispose(),e.object.remove(t),e.object.needsRender=!0})),this.tileMeshes.clear()},e.prototype.setRotation=function(e){this.disposed||this.object.quaternion.equals(e)||(this.object.quaternion.copy(e),this.object.needsRender=!0)},e.prototype.setPosition=function(e){this.disposed||this.object.position.equals(e)||(this.object.position.copy(e),this.object.needsRender=!0)},e.prototype.setResource=function(e,t){var r,n;if(!this.disposed&&(this.resource!==e||this.luminance!==t)){this.cleanup(),this.resource=e;var i=null!==(n=null===(r=e.slice().sort((function(e,t){return t.level-e.level}))[0])||void 0===r?void 0:r.level)&&void 0!==n?n:0;this.tileTree=dt(i),this.luminance=t,this.object.needsRender=!0}},e.prototype.update=function(e,t,r){var i=this;if(!this.disposed){this.level=t;var o=e.planes[5].normal,a=[];t>=this.minLevel&&pt(this.tileTree,(function(r){if(!(r.level<i.minLevel))return!(r.level>t)&&(!!e.intersectsBox(r.box)&&void a.push(r))}));var s=new n.Vector3;a.sort((function(e,t){return e.level!==t.level?e.level-t.level:e.box.getCenter(s).angleTo(o)-t.box.getCenter(s).angleTo(o)}));for(var l=new Set,u=function(e){var t=c.resource.filter((function(t){return t.level===e.level}))[0];if(!t)return"continue";if(l.add(e),c.tileMeshes.has(e))return c.tileMeshes.get(e).activeTime=r,"continue";var n=t.size,o=c.imageOptions.transform,a=Math.pow(2,e.level)*e.position.y,s=Math.pow(2,e.level)*e.position.x,u="".concat(c.panoId,".").concat(e.face,".").concat(e.level,".").concat(a,".").concat(s),d=ie(ie({key:"pano_tile.".concat(u)},Zn(c.imageOptions,["format","size","quality","sharpen","mappings"])),{size:n*e.size===Oa?void 0:Oa,cut:[n*e.position.x,n*e.position.y,n*e.size,n*e.size]}),p=c.textureLoader.loadTexture(t[e.face],{imageURL:{transform:o,options:d},allowHosts:c.networkOptions.allowHosts,networkSubscribe:c.networkOptions.networkSubscribe,requestProxy:c.networkOptions.requestProxy,viaAjax:Pt}).then((function(e){return e.body})),h=null;if(c.luminance){var f=c.luminance[e.face],v=f.match(/\/cube_(\d+)\//),A=!!v&&Number(v[1]);if(!1!==A){var m=ie(ie({},d),{size:A*e.size==256?void 0:256,cut:[A*e.position.x,A*e.position.y,A*e.size,A*e.size],key:"pano_tile_luminance.".concat(u)});h=c.textureLoader.loadTexture(f,{imageURL:{transform:c.imageOptions.transform,options:m},allowHosts:c.networkOptions.allowHosts,networkSubscribe:c.networkOptions.networkSubscribe,requestProxy:c.networkOptions.requestProxy,viaAjax:Pt}).then((function(e){return e.body})).catch((function(){return null}))}}c.pedding++;var g=Promise.all([p,h]).then((function(e){return i.pedding--,e}),(function(e){return i.pedding--,Promise.reject(e)})),y=new Ua(e,g);y.name="tiling:tile-".concat(u),y.activeTime=r,y.renderOrder=e.level,c.tileMeshes.set(e,y),c.object.needsRender=!0,c.object.add(y)},c=this,d=0,p=a;d<p.length;d++){u(m=p[d])}var h=[];this.tileMeshes.forEach((function(e,r){l.has(r)||h.push(r),e.visible=r.level<=t}));for(var f=h.sort((function(e,t){var r,n,o,a;return(null!==(n=null===(r=i.tileMeshes.get(t))||void 0===r?void 0:r.activeTime)&&void 0!==n?n:0)-(null!==(a=null===(o=i.tileMeshes.get(e))||void 0===o?void 0:o.activeTime)&&void 0!==a?a:0)})).slice(Math.max(0,32-l.size)),v=0,A=f;v<A.length;v++){var m=A[v],g=this.tileMeshes.get(m);g&&(g.dispose(),this.object.remove(g),this.object.needsRender=!0),this.tileMeshes.delete(m)}}},e.prototype.dispose=function(){this.cleanup(),this.resource=[],this.disposed=!0},e}(),Ha=new Float32Array([-1,1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,1,-1,1,1,1,1,-1,-1,1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,-1,1,-1,-1,1,-1,1,-1,1,1,-1,-1,-1,-1,1,-1,-1]),_a=new Uint8Array([0,2,1,2,3,1,4,6,5,6,7,5,8,10,9,10,11,9,12,14,13,14,15,13,16,18,17,18,19,17,20,22,21,22,23,21]),ja=new n.BufferGeometry;ja.setAttribute("position",new n.BufferAttribute(Ha,3)),ja.setIndex(new n.BufferAttribute(_a,1));var Ga=function(){function e(){this.material=new n.ShaderMaterial({vertexShader:"\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\nvoid main() {\n vec4 transformed = vec4(position, 1.0);\n #if defined(USE_PANO_VIDEO)\n worldPosition = (modelMatrix * transformed).xyz;\n #endif\n gl_Position = projectionMatrix * modelViewMatrix * transformed;\n}\n",fragmentShader:"\nuniform vec2 size;\nuniform mat4 matrix;\nuniform float alpha;\nuniform sampler2D map;\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n#include <common>\nvoid main() {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n #if defined(USE_PANO_VIDEO)\n vec3 cameraToVertex = worldPosition - cameraPosition;\n vec4 mapCoods = vec4(cameraToVertex, 1.0) * matrix;\n vec2 uv = vec2(\n 0.5 + mapCoods.x / mapCoods.z / size.x,\n 0.5 - mapCoods.y / mapCoods.z / size.y\n );\n vec4 videoColor = texture2D(map, uv);\n float match = (1.0 - step(0.0, mapCoods.z)) * (1.0 - step(0.5, abs(uv.x - 0.5))) * (1.0 - step(0.5, abs(uv.y - 0.5)));\n float blendAlpha = clamp(0.0, 1.0, 5.0 * (1.0 - clamp(distance(uv, vec2(0.5, 0.5)) / 0.55 , 0.0, 1.0)));\n gl_FragColor = vec4(videoColor.rgb, match * blendAlpha * alpha);\n #endif\n}\n",uniforms:{size:new n.Uniform(null),matrix:new n.Uniform(null),alpha:new n.Uniform(null),map:new n.Uniform(null)},depthTest:!1,depthWrite:!1,defines:{USE_PANO_VIDEO:!1},blending:n.CustomBlending,blendSrc:n.SrcAlphaFactor,blendDst:n.OneMinusSrcAlphaFactor,blendSrcAlpha:n.OneFactor,blendDstAlpha:n.OneMinusSrcAlphaFactor}),this.object=new n.Mesh(ja,this.material),this.object.visible=!1,this.object.renderOrder=-1,this.object.frustumCulled=!1,this.object.name="pano-video",this.alphaMotion=new Io({alpha:0})}return e.prototype.setMaterial=function(e){e?(this.material.uniforms.size.value=e.size,this.material.uniforms.matrix.value=e.matrix,this.material.uniforms.map.value=e.map,this.alphaMotion.set({alpha:e.alpha},500).catch(fe),this.material.uniforms.alpha.value=e.alpha):(this.material.uniforms.size.value=null,this.material.uniforms.matrix.value=null,this.material.uniforms.map.value=null,this.alphaMotion.set({alpha:0},0).catch(fe));var t=null!==e;t!==this.material.defines.USE_PANO_VIDEO&&(this.material.defines.USE_PANO_VIDEO=t,this.material.needsUpdate=!0,this.object.visible=null!==e)},e.prototype.updateTime=function(e){this.alphaMotion.ended||(this.alphaMotion.update(e),this.material.uniforms.alpha.value=this.alphaMotion.value.alpha)},e.prototype.dispose=function(){this.material.dispose()},e}(),Ka=(new n.Matrix4).makeRotationAxis(new n.Vector3(0,1,0),Math.PI),Wa=new n.Vector3(-1,1,1),Ya=function(){function e(e){void 0===e&&(e=0),this.width=e,this.pool=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.pool.length},enumerable:!1,configurable:!0}),e.prototype.create=function(){return new n.WebGLCubeRenderTarget(this.width,{stencilBuffer:!1,depthBuffer:!1})},e.prototype.pop=function(){var e=this.pool.pop();return e||this.create()},e.prototype.push=function(e){-1===this.pool.indexOf(e)&&this.pool.push(e)},e.prototype.clear=function(){for(var e=0,t=this.pool;e<t.length;e++){t[e].dispose()}this.pool.length=0},e}(),Xa=function(e){function t(r){var n,i,o,a,s=this,l=t.parseArgs(r);(s=e.call(this,l)||this).TILED_CUBE_TEXTURE_LEVEL=2,s.mode="Panorama",s.tileLevel=0,s.initAnimationed=!1,s.maxAccessibleDistance=l.maxAccessibleDistance,s.panoTapTriggerRadius=l.panoTapTriggerRadius,s.panoCircleMeshCreator=l.panoCircleMeshCreator,s.tileLevelForFov=l.tileLevelForFov,s.luminanceAdaptiveEffectEnable=l.luminanceAdaptiveEffectEnable,s.colorCubeRenderTargetPool=new Ya,s.luminanceCubeRenderTargetPool=new Ya;var u=s.models.getMaterial()||{},c=u.pano0,d=u.pano1;c&&(null==d?void 0:d.map)!==c.map&&(s.models.setMaterial({pano0:d}),c.map.dispose(),c.map instanceof Dt&&c.map.cubeRenderTarget&&s.colorCubeRenderTargetPool.push(c.map.cubeRenderTarget),c.luminanceMap&&(c.luminanceMap.dispose(),c.luminanceMap instanceof Dt&&c.luminanceMap.cubeRenderTarget&&s.luminanceCubeRenderTargetPool.push(c.luminanceMap.cubeRenderTarget)));for(var p=s.colorCubeRenderTargetPool.size;p<2;p++){var h=Math.max(1024*s.TILED_CUBE_TEXTURE_LEVEL,512),f=s.colorCubeRenderTargetPool.create();f.setSize(h,h),gt(null,f,s.renderer),s.colorCubeRenderTargetPool.push(f)}s.panoMeshes={},s.updatePanoMeshes(),s.locationMotion=new Io({count:0,distance:s.camera.pose.distance,modelAlpha:null!==(i=null===(n=s.models.getMaterial())||void 0===n?void 0:n.modelAlpha)&&void 0!==i?i:0,perspToOrtho:s.camera.perspToOrtho.x,orthoDistance:s.camera.orthoDistance}),s.panoResources={},s.panoResources[s.locationMotion.keyframes[0].key=s.locationMotion.keyframes[1].key=Fi()]={panoId:Xe(s.currentPano),panoPicture:null!==(a=null===(o=s.models.getMaterial())||void 0===o?void 0:o.pano1)&&void 0!==a?a:null,position:s.camera.pose.offset.clone(),effect:"fly"};var v={allowHosts:s.works[0].allowHosts,requestProxy:s.requestProxy,networkSubscribe:s.networkSubscribe};return s.textureLoader=new Ft,s.tiling=new qa(v,s.TILED_CUBE_TEXTURE_LEVEL+1,s.imageOptions),s.scene.add(s.tiling.object),s.panoVideo=new Ga,s.scene.add(s.panoVideo.object),s}return ne(t,e),t.parseArgs=function(r){var n,i,o,a,s;if(r instanceof t)return r;var l=e.parseArgs.call(this,r);return ie(ie({},l),{maxAccessibleDistance:null!==(n=r.maxAccessibleDistance)&&void 0!==n?n:5,panoTapTriggerRadius:null!==(i=r.panoTapTriggerRadius)&&void 0!==i?i:.5,panoCircleMeshCreator:null!==(o=r.panoCircleMeshCreator)&&void 0!==o?o:function(e){return new Bo},tileLevelForFov:null!==(a=r.tileLevelForFov)&&void 0!==a?a:function(e,t){var r=2*Math.atan(Math.tan(e/180*Math.PI/2)*(t.width/t.height))/Math.PI*180,n=Math.max(t.width/r,t.height/e);return n>60?4:n>30?3:n>18?2:n>12?1:0},luminanceAdaptiveEffectEnable:null===(s=r.luminanceAdaptiveEffectEnable)||void 0===s||s})},t.initAnimationEndState=function(t){var r=this.parseArgs(t),n=e.initAnimationEndState.call(this,r);return ie(ie({},n),{mode:"Panorama"})},t.prototype.destroy=function(){var t,r;if(e.prototype.destroy.call(this),this.scene.remove(this.tiling.object),this.tiling.dispose(),this.locationMotion.dispose(),this.colorCubeRenderTargetPool.clear(),this.luminanceCubeRenderTargetPool.clear(),delete this.pendingTextureTask,this.panoMeshes)for(var n=0,i=Object.keys(this.panoMeshes);n<i.length;n++){var o=i[n],a=this.panoMeshes[o];this.helper.remove(a),a.dispose(),delete this.panoMeshes[o]}var s=this.videoTexture.image;s.pause(),s.oncanplay=function(){},s.ontimeupdate=function(){},this.scene.remove(this.panoVideo.object),this.panoVideo.setMaterial(null),this.panoVideo.dispose();for(var l=null!==(t=this.models.getMaterial())&&void 0!==t?t:{},u=l.pano0,c=l.pano1,d=0,p=Object.keys(this.panoResources);d<p.length;d++){var h=p[d],f=this.panoResources[h];if(f.panoPicture){var v=f.panoPicture.map;v&&v!==(null==u?void 0:u.map)&&v!==(null==c?void 0:c.map)&&(v.dispose(),null===(r=f.panoPicture.luminanceMap)||void 0===r||r.dispose(),f.panoPicture=null)}delete this.panoResources[h]}this.luminanceAdaptiveEffect&&(this.luminanceAdaptiveEffect.dispose(),delete this.luminanceAdaptiveEffect)},t.prototype.isReady=function(){return!0===this.locationMotion.ended&&e.prototype.isReady.call(this)},t.prototype.isTileReady=function(){var e,t,r,n=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),i=(null===(e=n.panoPicture)||void 0===e?void 0:e.map)instanceof Dt&&null!==(r=null===(t=n.panoPicture)||void 0===t?void 0:t.map.tilePending)&&void 0!==r?r:0,o=this.tiling.pedding;return this.initAnimationed&&i<=0&&o<=0},t.prototype.updateWork=function(e,r,n,i){var o=this;this.userAction=i,this.works=e;var a=t.initAnimationEndState(ie(ie({},this),{initial:{currentState:ie(ie({},this.currentPano),this.camera.pose),duration:n,state:r,userAction:i}})),s={workCode:a.workCode,panoIndex:a.panoIndex};return this.tiling.setAllowHosts(this.works[0].allowHosts),this.tiling.cleanup(),this.initAnimationed=!1,this.hideIntersectMesh(),this.updatePanoMeshes(),this.moveToPano(s,{effect:"fade",duration:n,longitude:r.longitude,latitude:r.latitude,fov:r.fov,moveEndCallback:function(){o.initAnimationed=!0},moveCancelCallback:function(){o.initAnimationed=!0}},i),!0},t.prototype.updateModel=function(e){this.models=e,this.updatePanoMeshes()},t.prototype.updateTime=function(e,t){var r,i,o,a,s,l,u,c,d,p,h=this;if(!this.destroyed){var f={},v={},A=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),g=!1;if(!1===this.cameraMotion.ended&&(this.cameraMotion.update(e),v.longitude=this.cameraMotion.value.longitude,v.latitude=this.cameraMotion.value.latitude,v.fov=this.cameraMotion.value.fov),!1===this.locationMotion.ended){this.locationMotion.update(e);var y=this.locationMotion.getKeyFrameSegment(e),b=y[0],x=y[1],w=this.panoResourceFromLocationMotionKeyframe(b),M=this.panoResourceFromLocationMotionKeyframe(x),E=(new n.Vector3).copy(w.position),C=(new n.Vector3).copy(M.position),S=this.locationMotion.value.count-x.value.count+1;f.progress=S,f.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Dr(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,M.panoPicture&&(S<1?w.panoPicture&&(f.pano0=w.panoPicture):f.pano0=M.panoPicture,f.pano1=M.panoPicture),g=f.useBlackTransition="instant"===M.effect||"montage"===M.effect,"fade"!==M.effect&&"montage"!==M.effect||(f.pano0&&w.panoPicture&&(f.pano0={map:f.pano0.map,luminanceMap:f.pano0.luminanceMap,matrix:w.panoPicture.matrix.clone().setPosition(M.position)}),E.copy(C)),v.distance=this.locationMotion.value.distance,v.offset=new n.Vector3(E.x+(C.x-E.x)*S,E.y+(C.y-E.y)*S,E.z+(C.z-E.z)*S);for(var I=[],P=[],T=0,B=this.locationMotion.keyframes;T<B.length;T++){var R=B[T],O=R.key,k=R.progress;void 0!==O&&(I.push(O),k>=this.locationMotion.progress&&P.push(O))}for(var D=0,F=Object.keys(this.panoResources);D<F.length;D++){var L=F[D];if(!(P.indexOf(L)>=0)){var Q=this.panoResources[L];if(Q.panoPicture){var N=Q.panoPicture.map,V=Q.panoPicture.luminanceMap;if(N){if(N===(null===(r=f.pano0)||void 0===r?void 0:r.map))continue;if(N===(null===(i=f.pano1)||void 0===i?void 0:i.map))continue;N instanceof Dt&&N.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(N.cubeRenderTarget),N.dispose(),V&&(V instanceof Dt&&V.cubeRenderTarget&&this.luminanceCubeRenderTargetPool.push(V.cubeRenderTarget),V.dispose()),Q.panoPicture=null}}I.indexOf(L)>=0||delete this.panoResources[L]}}this.currentPano=Je(M.panoId),this.emit("pano.moving",$o("pano.moving",{userAction:this.userAction,prevPano:Je(A.panoId),state:ie(ie(ie(ie({},Je(m.panoId)),{mode:this.mode}),oa(this.camera.pose)),v),options:{},progress:this.locationMotion.progress,error:null}))}!1===ia(f)&&((null===(o=f.pano0)||void 0===o?void 0:o.map)&&f.pano0.map instanceof Dt&&!f.pano0.map.cubeRenderTarget&&(f.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(a=f.pano0)||void 0===a?void 0:a.luminanceMap)&&f.pano0.luminanceMap instanceof Dt&&!f.pano0.luminanceMap.cubeRenderTarget&&(f.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),(null===(s=f.pano1)||void 0===s?void 0:s.map)&&f.pano1.map instanceof Dt&&!f.pano1.map.cubeRenderTarget&&(f.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(l=f.pano1)||void 0===l?void 0:l.luminanceMap)&&f.pano1.luminanceMap instanceof Dt&&!f.pano1.luminanceMap.cubeRenderTarget&&(f.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.models.setMaterial(f)),!1===ia(v)&&this.setCamera(v);var U=this.works.getResolvedObserver(this.currentPano),z=this.locationMotion.ended?this.getForwardObserverOrNot():null;if(this.camera.pose.distance>.1||g){if(U)for(var q=0,H=Object.keys(this.panoMeshes);q<H.length;q++){var _=H[q];(X=this.panoMeshes[_]).setOpacity(0),X.setCurrent(!1),X.updateTime&&X.updateTime(e,t)}}else if(U){var j=na(U.visibleIds,(function(e){var t=h.works.getResolvedObserver(e);return t?U.standingPosition.distanceTo(t.standingPosition):1/0}),!0)[1];j=Dr(j,2.5,1/0);for(var G=U.visibleIds.concat(Xe(this.currentPano)),K=this.camera.getDirection(new n.Vector3),W=0,Y=Object.keys(this.panoMeshes);W<Y.length;W++){_=Y[W];var X=this.panoMeshes[_],J=this.works.getResolvedObserver(_);if(-1===G.indexOf(_))X.setCurrent(!1),X.setOpacity(0);else if(J)if(J.loadable||J.active){var Z=X.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);X.setCurrent(!X.loading&&0===X.progress&&null!==z&&z.panoId===_),X.setOpacity(Z<.01?0:Dr(j/Z*1.2,.4,.85));var $=this.camera.position.clone().setY(X.position.y),ee=(new n.Vector3).copy(X.position).sub($).normalize();if(_===Xe(this.currentPano)){var te=Dr((.5-$.distanceTo(X.position))/.5,0,1);ee.multiplyScalar(1-te).add(K.clone().multiplyScalar(te))}ee.length()>0&&X.quaternion.setFromEuler(new n.Euler(0,Math.atan2(ee.x,ee.z),0))}else X.setCurrent(!1),X.setOpacity(0);else X.setCurrent(!1),X.setOpacity(0);X.updateTime&&X.updateTime(e,t)}}var re=this.tileLevel=function(){if(!1===h.tileLevelForFov)return 0;var e=h.renderer.getDrawingBufferSize(new n.Vector2);e.width*=h.scissor.width,e.height*=h.scissor.height;var t=m.panoId,r=h.works.getResolvedObserver(t),i=h.imageOptions.size;if(void 0===i&&r){var o=r.images.up.match(/\/cube_(\d+)\//);o&&(i=Number(o[1]))}void 0===i&&(i=2048);var a=0;i>=1024&&(a=1),i>=2048&&(a=2),i>=4096&&(a=3),i>=8192&&(a=4);var s=h.tileLevelForFov(h.camera.fov,e);return s>a?s:0}(),ne=function(){var e=h.camera.quaternion.clone(),t=h.works.getResolvedObserver(m.panoId),r=null!=t?t:U;r&&e.premultiply(r.quaternion.clone().inverse());var i=(new n.Matrix4).makeRotationFromQuaternion(e),o=(new n.Matrix4).getInverse(i);return(new n.Frustum).setFromProjectionMatrix((new n.Matrix4).multiplyMatrices(h.camera.projectionMatrix,o))}();m.panoId===Xe(this.currentPano)&&((null===(u=m.panoPicture)||void 0===u?void 0:u.map)instanceof Dt&&(m.panoPicture.map.update(ne,re),!0===m.panoPicture.map.needsRender&&(m.panoPicture.map.needsRender=!1,this.needsRender=!0)),(null===(c=m.panoPicture)||void 0===c?void 0:c.luminanceMap)instanceof Dt&&(m.panoPicture.luminanceMap.update(ne,re),!0===m.panoPicture.luminanceMap.needsRender&&(m.panoPicture.luminanceMap.needsRender=!1,this.needsRender=!0)));var oe=this.tiling.object.visible;if(this.initAnimationed){var ae=m.panoId,se=this.works.getResolvedObserver(ae);se&&qo(this.camera.position,se.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==ae&&this.tiling.cleanup(),this.tiling.panoId=ae,this.tiling.setResource(null!==(p=null===(d=se.images)||void 0===d?void 0:d.tiles)&&void 0!==p?p:[],this.enableIOSEDR&&se.images.luminance?se.images.luminance:null),this.tiling.setAllowHosts(se.work.allowHosts),this.tiling.setNetworkSubscribe(this.networkSubscribe),this.tiling.setRequestProxy(this.requestProxy),this.tiling.setRotation(se.quaternion),this.tiling.setPosition(se.position),re>this.TILED_CUBE_TEXTURE_LEVEL?this.tiling.update(ne,re,e):this.tiling.update(ne,0,e)):this.tiling.object.visible=!1}else this.tiling.object.visible=!1;oe!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0),this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(e)}},t.prototype.render=function(){var t=this.works.getResolvedObserver(this.currentPano);t&&t.video&&(this.needsRender=!0),e.prototype.render.call(this)},t.prototype.postProcessing=function(e,t){if(!this.destroyed)return"luminance"===t?(this.luminanceAdaptiveEffect||(this.luminanceAdaptiveEffect=new Ra(this.renderer,this.scene,this.camera,this.models),this.luminanceAdaptiveEffect.enable=this.luminanceAdaptiveEffectEnable),this.luminanceAdaptiveEffect.render(e)):void 0},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(Ae())[1],t=this.locationMotion.getKeyFrameSegment(Ae())[1],r=this.panoResourceFromLocationMotionKeyframe(t),n=this.works.getResolvedObserver(r.panoId);return{workCode:n?n.work.workCode:this.currentPano.workCode,panoIndex:n?n.panoIndex:this.currentPano.panoIndex,mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:n?n.position.clone():this.camera.position.clone(),distance:this.locationMotion.value.distance}},t.prototype.moveToPano=function(e,t,r){var i,o,a,s,l=this;this.userAction=r,this.stopMomentumMovement();var u=this.works.getResolvedObserver(e);if(!u)throw new Error("Invalid PanoId ".concat(JSON.stringify(e)));var c=this.imageOptions.size;if(void 0===c&&u){var d=u.images.up.match(/\/cube_(\d+)\//);d&&(c=Number(d[1]))}void 0===c&&(c=2048);var p=this.imageOptions.transform,h=ie({key:"pano.".concat(u.panoId)},Zn(this.imageOptions,["format","size","quality","sharpen","mappings"])),f=u.images,v=null!==(o=null===(i=u.images.tiles)||void 0===i?void 0:i.filter((function(e){return e.size>c})))&&void 0!==o?o:null,A=p,m={key:"pano_luminance.".concat(u.panoId),size:h.size?h.size/2:1024},g=this.enableIOSEDR&&u.images.luminance?u.images.luminance:null,y=function(){if(!u.images.tiles)return null;if(!g)return null;var e=g.up.match(/\/cube_(\d+)\//),t=!!e&&Number(e[1]);return!1===t?null:null==v?void 0:v.map((function(e){return{level:e.level,size:t,back:g.back,front:g.front,left:g.left,right:g.right,up:g.up,down:g.down}}))}(),b="pano:"+ei([f,h,p]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===b)return;var x=this.pendingTextureTask.panoId;null===(a=this.panoMeshes[x])||void 0===a||a.setProgress(0),this.emit("pano.texture.abort",$o("pano.texture.abort",{error:null,progress:0,meta:null,pano:u.pano})),this.pendingTextureTask.onError(new Error("texture aborted"))}var w="move-to-pano-"+u.panoId;this.pending.add(w);var M,E=this.models.getMaterial()||{},C=E.pano0,S=E.pano1;if(C&&C.map.name===b&&null!==C.luminanceMap===this.enableIOSEDR?M=C:(null==S?void 0:S.map.name)===b&&null!==S.luminanceMap===this.enableIOSEDR&&(M=S),M){var I={panoId:u.panoId,effect:null!==(s=t.effect)&&void 0!==s?s:"fly",panoPicture:{map:M.map,luminanceMap:M.luminanceMap,matrix:(new n.Matrix4).compose(u.position,u.quaternion,Wa)},position:u.position.clone()};Ne.shared.add((function(){l.pending.delete(w),l.doMoveToPano(u.pano,I,t)}),!0,1)}else{this.pendingTextureTask={panoId:u.panoId,hash:b,onLoad:function(e,r){var i,o;if(l.pending.delete(w),l.destroyed)e.body.dispose();else{e.body.name=b;var a={panoId:u.panoId,effect:null!==(i=t.effect)&&void 0!==i?i:"fly",panoPicture:{map:e.body,luminanceMap:null!==(o=null==r?void 0:r.body)&&void 0!==o?o:null,matrix:(new n.Matrix4).compose(u.position,u.quaternion,Wa)},position:u.position.clone()};l.doMoveToPano(u.pano,a,t)}},onError:function(e){l.pending.delete(w);var r=ie(ie(ie({},u.pano),{mode:l.mode}),oa(l.camera.pose));l.emit("pano.error",$o("pano.error",{error:e,userAction:l.userAction,options:t,prevPano:l.currentPano,progress:0,state:r})),l.emit("pano.cancel",$o("pano.cancel",{error:null,userAction:l.userAction,options:t,prevPano:l.currentPano,progress:0,state:r})),t.moveCancelCallback&&t.moveCancelCallback()}};var P=this.panoMeshes[u.panoId];P&&P.tap&&P.tap(),Promise.all([this.tileLevelForFov&&v&&v.length?this.textureLoader.loadTiledCubeTexture(f,v,{tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:p,options:h},format:n.RGBAFormat,viaAjax:!0},void 0,void 0,(function(e){var t,r;l.emit("pano.texture.progress",$o("pano.texture.progress",{error:null,progress:e,meta:null,pano:u.pano})),(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===b&&(null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(e))}),this.renderer):this.textureLoader.loadCubeTexture(f,{imageURL:{transform:p,options:h},format:n.RGBAFormat,viaAjax:!0},void 0,void 0,(function(e){var t,r;l.emit("pano.texture.progress",$o("pano.texture.progress",{error:null,progress:e,meta:null,pano:u.pano})),(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===b&&(null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(e))}),this.renderer),g?this.tileLevelForFov&&y&&y.length?this.textureLoader.loadTiledCubeTexture(g,y,{tileImageSize:256,tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:A,options:m}},void 0,void 0,void 0,this.renderer).catch((function(){return null})):this.textureLoader.loadCubeTexture(g,{imageURL:{transform:A,options:m}},void 0,void 0,void 0,this.renderer).catch((function(){return null})):Promise.resolve(null)]).then((function(e){var t,r,n=e[0],i=e[1];(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===b?(l.pendingTextureTask.onLoad(n,i),null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(0),delete l.pendingTextureTask,l.emit("pano.texture.success",$o("pano.texture.success",{error:null,progress:1,meta:n.meta,pano:u.pano}))):(n.body.dispose(),null==i||i.body.dispose())})).catch((function(e){var t,r;(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===b&&(l.pendingTextureTask.onError(e),null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(0),delete l.pendingTextureTask,l.emit("pano.texture.error",$o("pano.texture.error",{error:e,progress:0,meta:null,pano:u.pano})),l.emit("error",e))})),this.emit("pano.texture.load",$o("pano.texture.load",{error:null,progress:0,meta:null,pano:u.pano}))}},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise((function(r){var n=e.initial;n.state,n.currentState;var i=n.duration,o=n.userAction;e.userAction=o;var a=t.initAnimationEndState(e),s={workCode:a.workCode,panoIndex:a.panoIndex},l=!1;e.moveToPano(s,{longitude:a.longitude,latitude:a.latitude,fov:a.fov,duration:i,moveStartCallback:function(t){l=!0,e.emit("initAnimation.start",$o("initAnimation.start",{state:t,userAction:e.userAction}))},moveEndCallback:function(t){e.emit("initAnimation.end",$o("initAnimation.end",{state:t,userAction:e.userAction})),e.initAnimationed=!0,r()},moveCancelCallback:function(){var t=ie(ie(ie({},s),{mode:e.mode}),oa(e.camera.pose));!1===l&&e.emit("initAnimation.start",$o("initAnimation.start",{state:t,userAction:e.userAction})),e.emit("initAnimation.end",$o("initAnimation.end",{state:t,userAction:e.userAction})),e.initAnimationed=!0,r()}},o)}))},t.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},t.prototype.locationMotionKeyframesLength=function(e){for(var t=0,r=1;r<e.length;r++){var n=this.panoResourceFromLocationMotionKeyframe(e[r-1]).position,i=this.panoResourceFromLocationMotionKeyframe(e[r]).position;t+=n.distanceTo(i)*(e[r].value.count-e[r-1].value.count)}return t},t.prototype.updatePanoMeshes=function(){for(var e=this,t={},r=0,n=Object.keys(this.panoMeshes);r<n.length;r++){var i=n[r],o=this.panoMeshes[i];t[i]=o,delete this.panoMeshes[i]}for(var a=1,s={},l=function(t){var r=na(t.accessibleIds,(function(r){var n=e.works.getResolvedObserver(r);return n?Dr(n.standingPosition.distanceTo(t.standingPosition),1,1/0):1/0}),!0)[1];void 0===s[t.panoId]&&(s[t.panoId]=r)},u=0,c=this.works.resolvedObservers;u<c.length;u++){l(f=c[u])}var d=Object.keys(s).map((function(e){return s[e]}));d.length&&(a=Dr(.6*(d.reduce((function(e,t){return e+t}),0)/d.length),1,3));for(var p=0,h=this.works.resolvedObservers;p<h.length;p++){var f;o=void 0;t[(f=h[p]).panoId]?(!0===(o=t[f.panoId]).loading&&!1===f.loadable&&o.setLoading(!1),delete t[f.panoId]):((o=this.panoCircleMeshCreator(f.pano)).name="PanoCircleMesh_"+f.panoId,this.helper.add(o)),o.scale.set(a,1,a),o.position.copy(f.standingPosition),this.panoMeshes[f.panoId]=o}for(var v=0,A=Object.keys(t);v<A.length;v++){var m=A[v];this.helper.remove(t[m]),t[m].dispose(),delete t[m]}},t.prototype.doMoveToPano=function(e,t,r){var i,o,a,s,l=this;void 0===r&&(r={});var u=Ae(),c=Fi();this.tiling.cleanup(),this.panoResources[c]=t;var d,p,h;if(this.locationMotion.ended){var f=this.locationMotion.getKeyFrameSegment(u);f[0];var v=f[1],A=this.locationMotion.value,m=(null!==(i=this.panoResourceFromLocationMotionKeyframe(v))&&void 0!==i?i:this.camera).position,g=t.position;d=Math.max(m.distanceTo(g),1),p=[{key:v.key,progress:0,value:ie(ie({},A),{count:0})},{key:c,progress:1,value:{distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0,count:1}}],h=0}else{var y=this.locationMotion.getKeyFrameSegment(u),b=y[0],x=(v=y[1],A=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(b).position),w=(m=this.panoResourceFromLocationMotionKeyframe(v).position,g=t.position,v.value.count-A.count),M=Math.max(x.distanceTo(m),1)*w;d=M+Math.max(m.distanceTo(g),1),p=[{key:b.key,progress:0,value:ie({},A)},{key:v.key,progress:M/d,value:v.value},{key:c,progress:1,value:{count:v.value.count+1,distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0}}];var E=this.locationMotionKeyframesLength(this.locationMotion.keyframes),C=this.locationMotionKeyframesLength(p);h=0===E||0===E?0:this.locationMotion.getProgressVelocity(u)*E/C}var S=this.calculateMovingDuration(r.duration,"fade"===r.effect||"montage"===r.effect?0:d),I={longitude:r.longitude,latitude:r.latitude,fov:r.fov},P=ie(ie({},e),{mode:this.mode,longitude:null!==(o=I.longitude)&&void 0!==o?o:this.camera.pose.longitude,latitude:null!==(a=I.latitude)&&void 0!==a?a:this.camera.pose.latitude,fov:null!==(s=I.fov)&&void 0!==s?s:this.camera.pose.fov,offset:t.position.clone(),distance:this.camera.pose.distance}),T=this.currentPano;this.emit("pano.moveTo",$o("pano.moveTo",{options:r,prevPano:T,progress:0,state:P,userAction:this.userAction,error:null})),r.moveStartCallback&&r.moveStartCallback(P),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=fe,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),this.cameraMotion.set(I,S).catch(fe),this.locationMotion.setKeyframes(p,S,h).then((function(){var t,i,o=ie(ie({},e),{mode:l.mode,longitude:l.camera.pose.longitude,latitude:l.camera.pose.latitude,fov:l.camera.pose.fov,offset:l.camera.pose.offset.clone(),distance:l.camera.pose.distance});l.emit("pano.arrived",$o("pano.arrived",{options:r,prevPano:T,progress:1,state:o,userAction:l.userAction,error:null})),r.moveEndCallback&&r.moveEndCallback(o);var a=l.works.getResolvedObserver(e);if(a&&a.video&&l.videoTexture&&l.videoTexture.image instanceof HTMLVideoElement){var s=Ka.clone().multiply(null!==(i=null===(t=l.models.getMaterial().pano1)||void 0===t?void 0:t.matrix)&&void 0!==i?i:new n.Matrix4).multiply(a.video.matrix),u={map:l.videoTexture,size:a.video.size,matrix:s,alpha:1},c=Fi(),d=l.videoTexture.image;d.setAttribute("uuid",c),ga().then((function(e){e&&a.video&&d.getAttribute("uuid")===c&&(d.oncanplay=function(){d.oncanplay=fe,d.play()},d.ontimeupdate=function(){d.currentTime>.5&&(d.ontimeupdate=fe,l.panoVideo.setMaterial(u))},d.src=a.video.source)})).catch((function(){d.removeAttribute("uuid")}))}}),(function(){l.emit("pano.cancel",$o("pano.cancel",{options:r,prevPano:T,progress:0,state:P,userAction:l.userAction,error:null})),r.moveCancelCallback&&r.moveCancelCallback()}))},t.prototype.getForwardObserverOrNot=function(e){var t=this,r=this.works.getResolvedObserver(this.currentPano);if(!r)return null;var i=null!=e?e:new n.Raycaster(this.camera.position.clone(),this.camera.getDirection(new n.Vector3)),o=r.standingPosition.clone();if(r.position.distanceTo(i.ray.origin)>1){var a=this.models.intersectRaycaster(new n.Raycaster(i.ray.origin,new n.Vector3(0,-1,0)))[0];a&&a.distance<=2?o.copy(a.point):o.copy(i.ray.origin).add(new n.Vector3(0,-1.5,0))}var s=this.models.intersectRaycaster(i)[0],l=(s?s.point:i.ray.origin.clone().add(i.ray.direction.clone().normalize().multiplyScalar(3))).clone().sub(o).normalize();if(0===l.length())return null;for(var u=r.accessibleIds.filter((function(e){if(e===Xe(t.currentPano))return!1;var r=t.works.getResolvedObserver(e);if(!r)return!1;var n=r.standingPosition.clone().project(t.camera);return!(Math.abs(n.z)>1)&&(!(Math.abs(n.x)>1)&&(!(Math.abs(n.y)>1)&&(r.loadable||r.active)))})),c=u.slice().sort((function(e,r){return t.works.getResolvedObserver(e).standingPosition.clone().distanceTo(o)-t.works.getResolvedObserver(r).standingPosition.clone().distanceTo(o)})),d=0,p=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];d<p.length;d++)for(var h=p[d],f=0,v=c;f<v.length;f++){var A=v[f],m=this.works.getResolvedObserver(A);if(m){var g=m.standingPosition.clone().sub(o);if(g&&0!==g.length()&&l.angleTo(g)<h)return m}}return null},t.prototype.onTapGesture=function(e){var t,r=this;if(this.userAction=e.userAction,this.stopMomentumMovement(),this.initAnimationed){if(!this.locationMotion.ended)if(this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]).panoId!==Xe(this.currentPano))return;var i=e.center.raycaster,o=this.camera.getDirection(new n.Vector3).setY(0),a=null,s=this.works.getResolvedObserver(this.currentPano);if(s){var l=s.accessibleIds.filter((function(e){if(e===Xe(r.currentPano))return!1;var t=r.works.getResolvedObserver(e);return!!t&&(!(t.position.distanceTo(r.camera.position)>r.maxAccessibleDistance)&&(t.loadable||t.active))})),u=this.models.intersectRaycaster(i)[0];if(u){var c=na(l,(function(e){var t=r.works.getResolvedObserver(e);return t?t.standingPosition.clone().distanceTo(u.point):1/0}),!0),d=c[0],p=c[1];d&&p<this.panoTapTriggerRadius&&(a=null!==(t=this.works.getResolvedObserver(d))&&void 0!==t?t:null)}a||(a=this.getForwardObserverOrNot(i));for(var h=0,f=this.locationMotion.keyframes;h<f.length;h++){var v=f[h],A=this.panoResourceFromLocationMotionKeyframe(v);if(!(v.progress<this.locationMotion.progress)&&(a&&A.panoId===a.panoId)){a=null;break}}if(a){for(var m={},g=Math.PI/6,y=Math.PI/12,b=a.position.clone().setY(0).sub(s.position.clone().setY(0)).normalize(),x=[],w=0,M=a.accessibleIds;w<M.length;w++){var E=Je(d=M[w]);if(!Ze(E,this.currentPano)&&!Ze(E,a.pano)){var C=this.works.getResolvedObserver(d);if(C){var S=C.position.clone().sub(a.position).setY(0);b.angleTo(S)<g&&x.push(S)}}}var I=(x.length>0?x:ue(ue([],[],!0),[],!0)).slice().sort((function(e,t){return e.angleTo(b)-t.angleTo(b)}))[0];I&&I.angleTo(o)>y&&(m.longitude=Math.atan2(-I.x,-I.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(m.latitude=Dr(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(m.fov=this.defaultFov);var P=ie({},e.state);if(P.workCode=a.pano.workCode,P.panoIndex=a.pano.panoIndex,void 0!==m.longitude&&(P.longitude=m.longitude),void 0!==m.latitude&&(P.latitude=m.latitude),void 0!==m.fov&&(P.fov=m.fov),P.distance=0,P.offset=a.position.clone(),e.state=P,this.emit("gesture.tap",e),!e.defaultPrevented){if(this.emit("pano.select",$o("pano.select",{prevPano:this.currentPano,state:P,userAction:e.userAction,options:m,progress:0,error:null})),a&&!a.active){var T=a.panoId;this.panoMeshes[T]&&(this.panoMeshes[T].setDisabled(!1),this.panoMeshes[T].setLoading(!0))}a&&a.active&&this.emit("pano.request",$o("pano.request",{userAction:e.userAction,prevPano:this.currentPano,progress:0,state:P,options:m,error:null}))}}else this.emit("gesture.tap",e),e.defaultPrevented||!0===this.locationMotion.ended&&this.cameraBounce()}}},t}(ma),Ja=Math.PI/180,Za=180/Math.PI,$a=.001,es=1,ts=function(){var e="undefined"!=typeof navigator&&/iPad|iPhone|iPod/.test(navigator.platform);return function(){return e}}(),rs=function(){var e="undefined"!=typeof navigator&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent);return function(){return e}}(),ns=function(){var e="undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("Firefox")&&-1!==navigator.userAgent.indexOf("Android");return function(){return e}}(),is=function(){var e="undefined"!=typeof navigator?navigator.userAgent.match(/.*Chrome\/([0-9]+)/):null,t=e?parseInt(e[1],10):null;return function(){return t}}(),os=function(){var e=!1;if(65===is()){var t="undefined"!=typeof navigator?navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/):null;if(t){var r=t[1].split(".");r[0],r[1];var n=r[2],i=r[3];e=3325===parseInt(n,10)&&parseInt(i,10)<148}}return function(){return e}}(),as=function(){var e=ts()&&rs()&&"undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("13_4");return function(){return e}}(),ss=function(){var e="undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("R7 Build");return function(){return e}}();function ls(){var e="undefined"!=typeof window&&(90==window.orientation||-90==window.orientation);return ss()?!e:e}var us,cs=(us={},function(e,t){void 0===us[e]&&(console.warn("cardboard: "+t),us[e]=!0)});function ds(e){var t,r=e.indexOf("://");t=-1!==r?r+3:0;var n=e.indexOf("/",t);return-1===n&&(n=e.length),e.substring(0,n)}var ps,hs=function(e,t,r){var n,i,o,a,s,l,u,c,d,p,h,f,v,A,m,g,y,b,x;n=e,a=(i=t)?i[0]:0,s=i?i[1]:0,l=i?i[2]:0,u=i?i[3]:1,h=a*(c=a+a),f=a*(d=s+s),v=a*(p=l+l),A=s*d,m=s*p,g=l*p,y=u*c,b=u*d,x=u*p,n[0]=1-(A+g),n[1]=f+x,n[2]=v-b,n[3]=0,n[4]=f-x,n[5]=1-(h+g),n[6]=m+y,n[7]=0,n[8]=v+b,n[9]=m-y,n[10]=1-(h+A),n[11]=0,n[12]=o?o[0]:0,n[13]=o?o[1]:0,n[14]=o?o[2]:0,n[15]=1,r&&function(e,t,r){var n,i,o,a,s,l,u,c,d,p,h,f,v=r[0],A=r[1],m=r[2];t===e?(e[12]=t[0]*v+t[4]*A+t[8]*m+t[12],e[13]=t[1]*v+t[5]*A+t[9]*m+t[13],e[14]=t[2]*v+t[6]*A+t[10]*m+t[14],e[15]=t[3]*v+t[7]*A+t[11]*m+t[15]):(n=t[0],i=t[1],o=t[2],a=t[3],s=t[4],l=t[5],u=t[6],c=t[7],d=t[8],p=t[9],h=t[10],f=t[11],e[0]=n,e[1]=i,e[2]=o,e[3]=a,e[4]=s,e[5]=l,e[6]=u,e[7]=c,e[8]=d,e[9]=p,e[10]=h,e[11]=f,e[12]=n*v+s*A+d*m+t[12],e[13]=i*v+l*A+p*m+t[13],e[14]=o*v+u*A+h*m+t[14],e[15]=a*v+c*A+f*m+t[15])}(e,e,r),function(e,t){var r=t[0],n=t[1],i=t[2],o=t[3],a=t[4],s=t[5],l=t[6],u=t[7],c=t[8],d=t[9],p=t[10],h=t[11],f=t[12],v=t[13],A=t[14],m=t[15],g=r*s-n*a,y=r*l-i*a,b=r*u-o*a,x=n*l-i*s,w=n*u-o*s,M=i*u-o*l,E=c*v-d*f,C=c*A-p*f,S=c*m-h*f,I=d*A-p*v,P=d*m-h*v,T=p*m-h*A,B=g*T-y*P+b*I+x*S-w*C+M*E;B&&(B=1/B,e[0]=(s*T-l*P+u*I)*B,e[1]=(i*P-n*T-o*I)*B,e[2]=(v*M-A*w+m*x)*B,e[3]=(p*w-d*M-h*x)*B,e[4]=(l*S-a*T-u*C)*B,e[5]=(r*T-i*S+o*C)*B,e[6]=(A*b-f*M-m*y)*B,e[7]=(c*M-p*b+h*y)*B,e[8]=(a*P-s*S+u*E)*B,e[9]=(n*S-r*P-o*E)*B,e[10]=(f*w-v*b+m*g)*B,e[11]=(d*b-c*w-h*g)*B,e[12]=(s*C-a*I-l*E)*B,e[13]=(r*I-n*C+i*E)*B,e[14]=(v*y-f*x-A*g)*B,e[15]=(c*x-d*y+p*g)*B)}(e,e)},fs=function(){function e(e,t){void 0===e&&(e=new n.Vector3),void 0===t&&(t=0),this.sample=e,this.timestampS=t}return e.prototype.set=function(e,t){this.sample=e,this.timestampS=t},e.prototype.copy=function(e){this.set(e.sample,e.timestampS)},e}(),vs=function(){function e(e,t){this.kFilter=e,this.isDebug=t,this.currentAccelMeasurement=new fs,this.currentGyroMeasurement=new fs,this.previousGyroMeasurement=new fs,ts()?this.filterQ=new n.Quaternion(-1,0,0,1):this.filterQ=new n.Quaternion(1,0,0,1),this.previousFilterQ=new n.Quaternion,this.previousFilterQ.copy(this.filterQ),this.accelQ=new n.Quaternion,this.isOrientationInitialized=!1,this.estimatedGravity=new n.Vector3,this.measuredGravity=new n.Vector3,this.gyroIntegralQ=new n.Quaternion}return e.prototype.addAccelMeasurement=function(e,t){this.currentAccelMeasurement.set(e,t)},e.prototype.addGyroMeasurement=function(e,t){this.currentGyroMeasurement.set(e,t);var r,n=t-this.previousGyroMeasurement.timestampS;r=n,isNaN(r)||r<=$a||r>es||this.run_(),this.previousGyroMeasurement.copy(this.currentGyroMeasurement)},e.prototype.getOrientation=function(){return this.filterQ},e.prototype.run_=function(){if(!this.isOrientationInitialized)return this.accelQ=this.accelToQuaternion_(this.currentAccelMeasurement.sample),this.previousFilterQ.copy(this.accelQ),void(this.isOrientationInitialized=!0);var e=this.currentGyroMeasurement.timestampS-this.previousGyroMeasurement.timestampS,t=this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample,e);this.gyroIntegralQ.multiply(t),this.filterQ.copy(this.previousFilterQ),this.filterQ.multiply(t);var r=new n.Quaternion;r.copy(this.filterQ),r.inverse(),this.estimatedGravity.set(0,0,-1),this.estimatedGravity.applyQuaternion(r),this.estimatedGravity.normalize(),this.measuredGravity.copy(this.currentAccelMeasurement.sample),this.measuredGravity.normalize();var i,o=new n.Quaternion;o.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),o.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",Za*((i=o).w>1?0:2*Math.acos(i.w)),this.estimatedGravity.x.toFixed(1),this.estimatedGravity.y.toFixed(1),this.estimatedGravity.z.toFixed(1),this.measuredGravity.x.toFixed(1),this.measuredGravity.y.toFixed(1),this.measuredGravity.z.toFixed(1));var a=new n.Quaternion;a.copy(this.filterQ),a.multiply(o),this.filterQ.slerp(a,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},e.prototype.accelToQuaternion_=function(e){var t=new n.Vector3;t.copy(e),t.normalize();var r=new n.Quaternion;return r.setFromUnitVectors(new n.Vector3(0,0,-1),t),r.inverse(),r},e.prototype.gyroToQuaternionDelta_=function(e,t){var r=new n.Quaternion,i=new n.Vector3;return i.copy(e),i.normalize(),r.setFromAxisAngle(i,e.length()*t),r},e}(),As=function(){function e(e,t){this.predictionTimeS=e,this.isDebug=t,this.previousQ=new n.Quaternion,this.previousTimestampS=null,this.deltaQ=new n.Quaternion,this.outQ=new n.Quaternion}return e.prototype.getPrediction=function(e,t,r){if(!this.previousTimestampS)return this.previousQ.copy(e),this.previousTimestampS=r,e;var i=new n.Vector3;i.copy(t),i.normalize();var o=t.length();if(o<20*Ja)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(Za*o).toFixed(1)),this.outQ.copy(e),this.previousQ.copy(e),this.outQ;var a=o*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(i,a),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(e),this.previousTimestampS=r,this.outQ},e}(),ms=function(){function e(e){this.coefficients=e}return e.prototype.distortInverse=function(e){for(var t=0,r=1,n=e-this.distort(t);Math.abs(r-t)>1e-4;){var i=e-this.distort(r),o=r-i*((r-t)/(i-n));t=r,r=o,n=i}return r},e.prototype.distort=function(e){for(var t=e*e,r=0,n=0;n<this.coefficients.length;n++)r=t*(r+this.coefficients[n]);return(r+1)*e},e}(),gs=function(){this.angularAcceleration=null,this.angularVelocity=null,this.linearAcceleration=null,this.linearVelocity=null,this.orientation=null,this.position=null},ys=function(){this.leftDegrees=0,this.rightDegrees=0,this.upDegrees=0,this.downDegrees=0},bs=function(){function e(e,t,r,i){this.viewer={id:"CardboardV1",label:"Cardboard I/O 2014",fov:40,interLensDistance:.06,baselineLensDistance:.035,screenLensDistance:.042,distortionCoefficients:[.441,.156],inverseCoefficients:[-.4410035,.42756155,-.4804439,.5460139,-.58821183,.5733938,-.48303202,.33299083,-.17573841,.0651772,-.01488963,.001559834]},this.device={widthMeters:.11,heightMeters:.062,bevelMeters:.004},this.depthNear=.01,this.depthFar=1e4,this.yawOnly=r,this.accelerometer=new n.Vector3,this.gyroscope=new n.Vector3,this.filter=new vs(e,i),this.posePredictor=new As(t,i),this.isFirefoxAndroid=ns(),this.isIOS=ts();var o=is();this.isDeviceMotionInRadians=!this.isIOS&&null!==o&&o<66,this.isWithoutDeviceMotion=os()||as(),this.filterToWorldQ=new n.Quaternion,ts()?this.filterToWorldQ.setFromAxisAngle(new n.Vector3(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new n.Vector3(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new n.Quaternion,this.worldToScreenQ=new n.Quaternion,this.originalPoseAdjustQ=new n.Quaternion;var a="undefined"!=typeof window?-window.orientation*Math.PI/180:0;this.originalPoseAdjustQ.setFromAxisAngle(new n.Vector3(0,0,1),a),this.setScreenTransform_(),ls()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new n.Quaternion,this.orientationOut_=new Float32Array(4),this.previousTimestampS=Date.now()}return e.prototype.getPosition=function(){return null},e.prototype.getOrientation=function(){var e;if(this.isWithoutDeviceMotion&&this._deviceOrientationQ){this.deviceOrientationFixQ=this.deviceOrientationFixQ||(i=(new n.Quaternion).setFromAxisAngle(new n.Vector3(0,0,-1),0),o=new n.Quaternion,"undefined"!=typeof window&&-90===window.orientation?o.setFromAxisAngle(new n.Vector3(0,1,0),Math.PI/-2):o.setFromAxisAngle(new n.Vector3(0,1,0),Math.PI/2),i.multiply(o)),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||((r=new n.Quaternion).setFromAxisAngle(new n.Vector3(1,0,0),-Math.PI/2),r),e=this._deviceOrientationQ;var t=new n.Quaternion;return t.copy(e),t.multiply(this.deviceOrientationFilterToWorldQ),t.multiply(this.resetQ),t.multiply(this.worldToScreenQ),t.multiplyQuaternions(this.deviceOrientationFixQ,t),this.yawOnly&&(t.x=0,t.z=0,t.normalize()),this.orientationOut_[0]=t.x,this.orientationOut_[1]=t.y,this.orientationOut_[2]=t.z,this.orientationOut_[3]=t.w,this.orientationOut_}var r,i,o,a=this.filter.getOrientation();e=this.posePredictor.getPrediction(a,this.gyroscope,this.previousTimestampS);var s=new n.Quaternion;return s.copy(this.filterToWorldQ),s.multiply(this.resetQ),s.multiply(e),s.multiply(this.worldToScreenQ),this.yawOnly&&(s.x=0,s.z=0,s.normalize()),this.orientationOut_[0]=s.x,this.orientationOut_[1]=s.y,this.orientationOut_[2]=s.z,this.orientationOut_[3]=s.w,this.orientationOut_},e.prototype.getPose=function(){var e=new gs;return e.orientation=this.getOrientation(),e},e.prototype.resetPose=function(){this.resetQ.copy(this.filter.getOrientation()),this.resetQ.x=0,this.resetQ.y=0,this.resetQ.z*=-1,this.resetQ.normalize(),ls()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},e.prototype.getFrameData=function(e){var t=this.getOrientation(),r=this.getEyeOffset(),n=this.getEyeProjectionMatrix();return e.pose.angularAcceleration=null,e.pose.angularVelocity=null,e.pose.linearAcceleration=null,e.pose.linearVelocity=null,e.pose.orientation=t,e.pose.position=null,e.timestamp=this.previousTimestampS,e.leftProjectionMatrix.set(n.left),e.rightProjectionMatrix.set(n.right),hs(e.leftViewMatrix,t,r.left),hs(e.rightViewMatrix,t,r.right),e},e.prototype.start=function(){if("undefined"==typeof window)return function(){};var e=this.onDeviceMotion_.bind(this),t=this.onOrientationChange_.bind(this),r=this.onMessage_.bind(this),n=this.onDeviceOrientation_.bind(this);return ts()&&function(){if("undefined"==typeof window)return!1;if("undefined"==typeof document)return!1;var e=window.self!==window.top,t=ds(document.referrer),r=ds(window.location.href);return e&&t!==r}()&&window.addEventListener("message",r),window.addEventListener("orientationchange",t),this.isWithoutDeviceMotion?window.addEventListener("deviceorientation",n):window.addEventListener("devicemotion",e),function(){window.removeEventListener("devicemotion",e),window.removeEventListener("deviceorientation",t),window.removeEventListener("orientationchange",t),window.removeEventListener("message",r)}},e.prototype.getEyeOffset=function(){return{left:[.5*-this.viewer.interLensDistance,0,0],right:[.5*this.viewer.interLensDistance,0,0]}},e.prototype.getEyeProjectionMatrix=function(){var e=this.getEyeFieldOfView(),t=this.depthNear,r=this.depthFar,n={left:[],right:[]},i=e.left.upDegrees*Ja,o=e.left.downDegrees*Ja,a=2/((l=e.left.leftDegrees*Ja)+(u=e.left.rightDegrees*Ja)),s=2/(i+o);n.left[0]=a,n.left[1]=0,n.left[2]=0,n.left[3]=0,n.left[4]=0,n.left[5]=s,n.left[6]=0,n.left[7]=0,n.left[8]=-(l-u)*a*.5,n.left[9]=(i-o)*s*.5,n.left[10]=r/(t-r),n.left[11]=-1,n.left[12]=0,n.left[13]=0,n.left[14]=r*t/(t-r),n.left[15]=0;var l,u;i=e.right.upDegrees*Ja,o=e.right.downDegrees*Ja,a=2/((l=e.right.leftDegrees*Ja)+(u=e.right.rightDegrees*Ja)),s=2/(i+o);return n.right[0]=a,n.right[1]=0,n.right[2]=0,n.right[3]=0,n.right[4]=0,n.right[5]=s,n.right[6]=0,n.right[7]=0,n.right[8]=-(l-u)*a*.5,n.right[9]=(i-o)*s*.5,n.right[10]=r/(t-r),n.right[11]=-1,n.right[12]=0,n.right[13]=0,n.right[14]=r*t/(t-r),n.right[15]=0,n},e.prototype.getEyeFieldOfView=function(){var e=this.viewer,t=this.device,r=new ms(e.distortionCoefficients),n=e.screenLensDistance,i=(t.widthMeters-e.interLensDistance)/2,o=e.interLensDistance/2,a=e.baselineLensDistance-t.bevelMeters,s=t.heightMeters-a,l=Za*Math.atan(r.distort(i/n)),u=Za*Math.atan(r.distort(o/n)),c=Za*Math.atan(r.distort(a/n)),d=Za*Math.atan(r.distort(s/n)),p=new ys,h=new ys;return p.leftDegrees=Math.min(l,e.fov),p.rightDegrees=Math.min(u,e.fov),p.downDegrees=Math.min(c,e.fov),p.upDegrees=Math.min(d,e.fov),h.leftDegrees=p.rightDegrees,h.rightDegrees=p.leftDegrees,h.upDegrees=p.upDegrees,h.downDegrees=p.downDegrees,{left:p,right:h}},e.prototype.onDeviceOrientation_=function(e){this._deviceOrientationQ=this._deviceOrientationQ||new n.Quaternion;var t=e.alpha,r=e.beta,i=e.gamma;t=(t||0)*Math.PI/180,r=(r||0)*Math.PI/180,i=(i||0)*Math.PI/180,this._deviceOrientationQ.setFromEuler(new n.Euler(t,r,-i,"YXZ"))},e.prototype.onDeviceMotion_=function(e){this.updateDeviceMotion_(e)},e.prototype.updateDeviceMotion_=function(e){var t=e.accelerationIncludingGravity,r=e.rotationRate,n=e.timeStamp/1e3,i=n-this.previousTimestampS;return i<0?(cs("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),void(this.previousTimestampS=n)):i<=$a||i>es?(cs("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),void(this.previousTimestampS=n)):(t&&(this.accelerometer.set(-t.x,-t.y,-t.z),r&&(ss()?this.gyroscope.set(-r.beta,r.alpha,r.gamma):this.gyroscope.set(r.alpha,r.beta,r.gamma),this.isDeviceMotionInRadians||this.gyroscope.multiplyScalar(Math.PI/180),this.filter.addGyroMeasurement(this.gyroscope,n)),this.filter.addAccelMeasurement(this.accelerometer,n)),void(this.previousTimestampS=n))},e.prototype.onOrientationChange_=function(){this.setScreenTransform_()},e.prototype.onMessage_=function(e){var t=e.data;t&&t.type&&("devicemotion"===t.type.toLowerCase()&&this.updateDeviceMotion_(t.deviceMotionEvent))},e.prototype.setScreenTransform_=function(){switch(this.worldToScreenQ.set(0,0,0,1),"undefined"!=typeof window?window.orientation:0){case 0:break;case 90:this.worldToScreenQ.setFromAxisAngle(new n.Vector3(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new n.Vector3(0,0,1),Math.PI/2)}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},e}(),xs=[0,0,.5,1],ws=[.5,0,.5,1],Ms=function(){function e(e){var t=this;this.renderer=e,this.sensor=new bs(.98,.04,!1,!1),this.scale=1,this.cameraL=new n.PerspectiveCamera,this.cameraR=new n.PerspectiveCamera;var r=this.sensor.start();this.dispose=function(){var e=t.renderer.getSize(new n.Vector2);t.renderer.setScissor(0,0,e.width,e.height),t.renderer.setViewport(0,0,e.width,e.height),t.renderer.setScissorTest(!1),r()}}return e.prototype.render=function(e,t){var r=this.renderer.getSize(new n.Vector2);if(r.width>r.height){var i=e.autoUpdate;i&&(e.updateMatrixWorld(),e.autoUpdate=!1);var o={x:Math.round(r.width*xs[0]),y:Math.round(r.height*xs[1]),width:Math.round(r.width*xs[2]),height:Math.round(r.height*xs[3])},a={x:Math.round(r.width*ws[0]),y:Math.round(r.height*ws[1]),width:Math.round(r.width*ws[2]),height:Math.round(r.height*ws[3])};this.renderer.setScissorTest(!0),this.renderer.autoClear&&this.renderer.clear(),null===t.parent&&t.updateMatrixWorld(),t.matrixWorld.decompose(this.cameraL.position,this.cameraL.quaternion,this.cameraL.scale),t.matrixWorld.decompose(this.cameraR.position,this.cameraR.quaternion,this.cameraR.scale);var s=this.sensor.getEyeOffset();this.cameraL.translateOnAxis((new n.Vector3).fromArray(s.left),this.scale),this.cameraR.translateOnAxis((new n.Vector3).fromArray(s.right),this.scale);var l=this.sensor.getEyeProjectionMatrix();this.cameraL.projectionMatrix.elements=l.left.slice(),this.cameraR.projectionMatrix.elements=l.right.slice(),this.renderer.setViewport(o.x,o.y,o.width,o.height),this.renderer.setScissor(o.x,o.y,o.width,o.height),this.renderer.render(e,this.cameraL),this.renderer.setViewport(a.x,a.y,a.width,a.height),this.renderer.setScissor(a.x,a.y,a.width,a.height),this.renderer.render(e,this.cameraR),this.renderer.setViewport(0,0,r.width,r.height),this.renderer.setScissor(0,0,r.width,r.height),this.renderer.setScissorTest(!1),i&&(e.autoUpdate=!0)}else this.renderer.render(e,t)},e.prototype.dispose=function(){},e}(),Es={zh:{TITLE:"眼镜模式",HIT:"请将手机横屏放入 VR 眼镜中"},en:{TITLE:"GLASSES MODE",HIT:"Please put the mobile phone horizontally into the VR glasses."},ja:{TITLE:"メガネモード",HIT:"携帯電話をVRメガネに水平に入れてください。"}},Cs="undefined"!=typeof navigator&&null!==(ps=Es[navigator.language.split("-")[0]])&&void 0!==ps?ps:Es.zh,Ss="\n<style>\n.$id {\n all: initial;\n position: absolute;\n overflow: hidden;\n display: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.$id-modal {\n width: 100%;\n height: 332px;\n position: absolute;\n bottom: -2px;\n left: 0;\n right: 0;\n overflow: hidden;\n pointer-events: none;\n will-change: transform;\n animation: $id-modal-fade-in 0.3s ease 1;\n}\n.$id-modal-bg {\n background: rgba(0, 0, 0, 0.75);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n}\n.$id-modal-bg-line {\n height: 1px;\n background-image: linear-gradient(\n 85deg,\n rgba(162, 177, 255, 0.3) 1%,\n rgba(120, 126, 255, 0.8) 30%,\n rgba(147, 218, 255, 0.8) 66%,\n rgba(250, 255, 184, 0.3) 92%\n );\n}\n.$id-modal-bg-wave svg {\n width: 375px;\n height: 61px;\n display: block;\n}\n.$id-modal-content {\n color: #ffffff;\n padding: 0 14px;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n overflow: hidden;\n}\n.$id-modal-content-title {\n font-size: 17px;\n font-family: sans-serif;\n line-height: 18px;\n padding: 20px 0;\n font-weight: bold;\n}\n.$id-modal-content-hit {\n font-size: 14px;\n font-family: sans-serif;\n line-height: 24px;\n opacity: 0.85;\n}\n.$id-modal-content-guide {\n position: relative;\n width: 168px;\n height: 139px;\n margin: 36px auto 0;\n}\n.$id-modal-content-guide-cardboard {\n position: absolute;\n width: 100px;\n height: 82px;\n left: 68px;\n top: 57px;\n}\n.$id-modal-content-guide-cardboard-image {\n width: 100px;\n height: 82px;\n background-image: url(".concat("data:image/png;base64,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",");\n background-size: 100%;\n background-repeat: no-repeat;\n}\n.$id-modal-content-guide-phone {\n position: absolute;\n width: 58px;\n height: 56px;\n left: 0;\n top: 0;\n}\n.$id-modal-content-guide-phone-move-x {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n will-change: transform;\n animation: $id-guide-move-x 4s 0.5s infinite;\n}\n.$id-modal-content-guide-phone-move-y {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n will-change: transform;\n animation: $id-guide-move-y 4s cubic-bezier(0.42, 0, 0.23, 0.98) 0.5s infinite;\n}\n.$id-modal-content-guide-phone-blink {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n will-change: opacity;\n animation: $id-guide-blink 4s 0.5s infinite;\n}\n.$id-modal-content-guide-phone-image {\n width: 58px;\n height: 56px;\n background-image: url(").concat("data:image/png;base64,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",');\n background-size: 100%;\n background-repeat: no-repeat;\n}\n.$id-modal-close {\n position: absolute;\n top: 20px;\n right: 14px;\n width: 14px;\n height: 14px;\n}\n.$id-modal-close svg {\n width: 14px;\n height: 14px;\n display: block;\n}\n\n@keyframes $id-modal-fade-in {\n 0% { transform: translate3d(0, 100%, 0); opacity: 0.5; }\n 100% { transform: translate3d(0, 0, 0); opacity: 1; }\n}\n@keyframes $id-guide-blink {\n 0% { opacity: 0; }\n 7% { opacity: 0; }\n 12% { opacity: 1; }\n 29% { opacity: 1; }\n 34% { opacity: 0.3; }\n 39% { opacity: 1; }\n 44% { opacity: 0.3; }\n 49% { opacity: 1; }\n 80% { opacity: 1; }\n 100% { opacity: 0; }\n}\n@keyframes $id-guide-move-x {\n 0% { transform: translate3d(0, 0, 0); }\n 57% { transform: translate3d(0, 0, 0); }\n 80% { transform: translate3d(70px, 0, 0); }\n 100% { transform: translate3d(70px, 0, 0); }\n}\n@keyframes $id-guide-move-y {\n 0% { transform: translate3d(0, 0, 0); }\n 57% { transform: translate3d(0, 0, 0); }\n 80% { transform: translate3d(0, 58px, 0); }\n 100% { transform: translate3d(0, 58px, 0); }\n}\n@media screen and (orientation: portrait) {\n .$id {\n display: block;\n }\n}\n</style>\n<div class="$id-modal">\n <div class="$id-modal-bg">\n <div class="$id-modal-bg-line"></div>\n <div class="$id-modal-bg-wave">\n <svg width="375" height="61" viewBox="0 0 375 61" version="1.1" xmlns="http://www.w3.org/2000/svg">\n <defs>\n <linearGradient x1="0" y1="0%" x2="0" y2="100%" id="$id-2y6_dj_hgp">\n <stop stop-color="#8598FF" stop-opacity="0.15" offset="0%"></stop>\n <stop stop-color="#000" stop-opacity="0" offset="100%"></stop>\n </linearGradient>\n </defs>\n <path transform="translate(187.5, 30.5) scale(-1, 1) translate(-187.5, -30.5)" fill="url(#$id-2y6_dj_hgp)" d="\nM0,1\nC83.001,1.706 140.146,4.164 171.435,8.374\nC218.369,14.688 253.467,26.308 273.002,33\nC292.536,39.691323.501,51 343.709,56\nC357.182,59.333 367.612,61 375,61\nL375,0\nL0,0\nL0,1\nZ\n"></path>\n </svg>\n </div>\n </div>\n <div class="$id-modal-content">\n <div class="$id-modal-content-title">').concat(Cs.TITLE,'</div>\n <div class="$id-modal-content-hit">').concat(Cs.HIT,'</div>\n <div class="$id-modal-content-guide">\n <div class="$id-modal-content-guide-phone">\n <div class="$id-modal-content-guide-phone-move-x">\n <div class="$id-modal-content-guide-phone-move-y">\n <div class="$id-modal-content-guide-phone-blink">\n <div class="$id-modal-content-guide-phone-image"></div>\n </div>\n </div>\n </div>\n </div>\n <div class="$id-modal-content-guide-cardboard">\n <div class="$id-modal-content-guide-cardboard-image"></div>\n </div>\n </div>\n </div>\n <div class="$id-modal-close">\n <svg width="14" height="14" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg">\n <defs>\n <radialGradient cx="50%" cy="50%" fx="50%" fy="50%" r="70%" id="$id-ho0itsc4p9">\n <stop stop-color="#FFF" stop-opacity="0.75" offset="0%"></stop>\n <stop stop-color="#FFF" stop-opacity="0.22" offset="100%"></stop>\n </radialGradient>\n </defs>\n <path transform="translate(-3, -3)" fill="url(#$id-ho0itsc4p9)" fill-rule="nonzero" d="\nM16.791,3.198\nC17.044,3.438 17.067,3.814 16.860,4.080\nL16.791,4.156\nL12.144,9.331\nC11.803,9.711 11.803,10.288 12.144,10.668\nL16.791,15.843\nC17.044,16.084 17.067,16.460 16.860,16.725\nL16.791,16.801\nC16.538,17.042 16.142,17.063 15.864,16.867\nL15.784,16.801\nL10.000,11.250\nL4.215,16.801\nL4.135,16.867\nC3.857,17.063 3.461,17.042 3.208,16.801\nL3.208,16.801\nL3.139,16.725\nC2.932,16.460 2.955,16.084 3.208,15.843\nL3.208,15.843\nL7.855,10.668\nC8.196,10.288 8.196,9.711 7.855,9.331\nL7.855,9.331\nL3.208,4.156\nL3.139,4.080\nC2.932,3.814 2.955,3.438 3.208,3.198\nC3.486,2.933 3.937,2.933 4.215,3.198\nL4.215,3.198 L9.999,8.749\nL15.784,3.198\nC16.062,2.933 16.513,2.933 16.791,3.198\nZ\n"></path>\n </svg>\n </div>\n</div>\n');function Is(e){for(var t=1,r=document.getElementsByTagName("meta"),n=0;n<r.length;n++){var i=r[n];if("viewport"===i.getAttribute("name")){var o=(i.getAttribute("content")||"").match(/initial\-scale\=([\d|\.]+)/);o&&(t=Number(o[1])),isNaN(t)&&(t=1)}}return Ss.replace(/\n/g," ").replace(/\ +/g," ").replace(/\$id/g,e).replace(/(\d+)px/g,(function(e,r){return function(e){return Math.floor(e*t)+"px"}(Number(r))}))}var Ps=new n.CircleBufferGeometry(.12,16),Ts=function(e){function t(){var t=e.call(this)||this;t.progress=0,t.opacity=0,t.loading=!1,t.current=!1,t.disabled=!1,t.currentMotion=new Io({ringScale:1.1,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}),t.opacityMotion=new Io({opacity:0}),t.loadingMotion=new Io({opacity:0}),t.disableMotion=new Io({opacity:0});var r={blending:n.CustomBlending,blendSrc:n.SrcAlphaFactor,blendDst:n.OneMinusSrcAlphaFactor,blendSrcAlpha:n.OneFactor,blendDstAlpha:n.OneMinusSrcAlphaFactor,depthWrite:!1,transparent:!0};return t.hitTestMesh=new n.Mesh(Ps,new n.MeshBasicMaterial(ie(ie({},r),{color:0,opacity:0}))),t.hitTestMesh.scale.set(1.5,1.5,1.5),t.ringMesh=new n.Mesh(Ps,new n.ShaderMaterial(ie(ie({},r),{vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nvarying vec2 vUv;\nuniform float opacity;\n\nfloat smoothDist = 0.01;\nvoid main() {\n vec2 center = vec2(0.5, 0.5);\n float dist = length(center - vUv);\n float outerDist = 0.49;\n float innerDist = 0.29;\n\n float outside = 1.0 - smoothstep(outerDist - smoothDist, outerDist, dist);\n float inside = smoothstep(innerDist, innerDist + smoothDist, dist);\n\n vec4 bg = vec4(0.576, 0.635, 1.0, 0.3);\n float gradientAlpha = clamp(abs(dist - (outerDist + innerDist) / 2.0) / (outerDist - innerDist) * 1.5 + 0.1, 0.0, 1.0);\n vec4 gradient = vec4(1.0, 1.0, 1.0, gradientAlpha);\n\n gl_FragColor = mix(bg, gradient, gradient.a);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity * outside * inside);\n}\n",uniforms:{opacity:{value:0}}}))),t.panoMesh=new n.Mesh(Ps,new n.ShaderMaterial(ie(ie({},r),{vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform float circleScale;\nuniform float circleFade;\nuniform float circleOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float opacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#define PI 3.141592653589793\n#define TAU 6.283185307179586\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n float gradient = clamp(0.98 + abs(dot(normalize(vec2(1.0, -1.0)), vUv - CENTER)) * 2.0, 0.0, 1.0);\n vec3 color = mix(vec3(0.576, 0.635, 1.0), vec3(1.0, 1.0, 1.0), circleFade * 0.5);\n return vec4(color, 1.0 * gradient * circleOpacity * outside(0.3 * circleScale));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.5 * outside(0.32 * circleScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, TAU);\n float gradient = (1.0 - smoothstep(0.0, TAU, angle)) * 0.9 + 0.1;\n return vec4(1.0, 1.0, 1.0, gradient * loadingOpacity * inside(0.2 * circleScale) * outside(0.25 * circleScale));\n}\n\nvoid main() {\n gl_FragColor = vec4(1.0, 1.0, 1.0, 0);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity);\n}\n",uniforms:{circleScale:{value:1.1},circleFade:{value:0},circleOpacity:{value:.5},loadingAngle:{value:0},loadingOpacity:{value:0},opacity:{value:0},disable:{value:0}}}))),t.add(t.hitTestMesh),t.add(t.ringMesh),t.add(t.panoMesh),t.renderOrder=1e4,t.needsRender=!0,t}return ne(t,e),t.prototype.setProgress=function(e){this.progress=e,this.setLoading(e>0)},t.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e=Dr(e,0,1),this.opacityMotion.set({opacity:e},30).catch(fe))},t.prototype.setCurrent=function(e){if(this.current!==e){if(e){var t=[{progress:0,value:{ringScale:2,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.05,value:{ringScale:1,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.15,value:{ringScale:1.2,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.25,value:{ringScale:1.1,ringOpacity:1,circleFade:0,circleOpacity:.85,circleScale:1}},{progress:.8,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.85,circleScale:1}},{progress:.9,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.65,circleScale:.8}},{progress:.92,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.65,circleScale:.8}},{progress:1,value:{ringScale:1.1,ringOpacity:1,circleFade:1,circleOpacity:.85,circleScale:1.1}}];this.currentMotion.setKeyframes(t,1500).catch(fe)}else{t=[{progress:0,value:ie({},this.currentMotion.value)},{progress:1,value:{ringScale:1.1,ringOpacity:0,circleFade:0,circleOpacity:.85,circleScale:1}}];this.currentMotion.setKeyframes(t,200).catch(fe)}this.current=e}},t.prototype.setLoading=function(e){this.loading!==e&&(e?this.loadingMotion.setKeyframes([{progress:0,value:{opacity:0}},{progress:.3,value:{opacity:0}},{progress:1,value:{opacity:.8}}],500).catch(fe):this.loadingMotion.set({opacity:0},0).catch(fe),this.loading=e,!0===this.disabled&&this.setDisabled(!1),this.needsRender=!0)},t.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e,!0===this.loading&&this.setLoading(!1),this.disableMotion.set({opacity:e?1:0},300).catch(fe),this.needsRender=!0)},t.prototype.tap=function(){return Promise.resolve()},t.prototype.updateTime=function(e,t){this.opacityMotion.update(e),this.currentMotion.update(e),this.loadingMotion.update(e);var r=this.opacityMotion.value.opacity;this.visible=0!==r;var n=this.currentMotion.value,i=n.ringScale,o=n.ringOpacity,a=n.circleFade,s=n.circleOpacity,l=n.circleScale;this.ringMesh.scale.set(i,1,i),this.ringMesh.material.uniforms.opacity.value=o*r,this.panoMesh.material.uniforms.opacity.value=r,this.panoMesh.material.uniforms.circleOpacity.value=s,this.panoMesh.material.uniforms.circleScale.value=l,this.panoMesh.material.uniforms.circleFade.value=a,this.panoMesh.material.uniforms.loadingOpacity.value=this.loadingMotion.value.opacity,this.panoMesh.material.uniforms.disable.value=this.disableMotion.value.opacity,this.panoMesh.material.uniforms.loadingAngle.value=e/120%(2*Math.PI),this.needsRender=!0},t.prototype.dispose=function(){this.hitTestMesh.material.dispose(),this.ringMesh.material.dispose(),this.panoMesh.material.dispose()},t}(n.Object3D),Bs=function(e){function t(r){var n=this,i=t.parseArgs(r);(n=e.call(this,i)||this).mode="VRPanorama",n.cardboard=new Ms(n.renderer);var o,a,s,l=(o="five_vr_helper_"+Fi(),a=Is(o),(s=document.createElement("div")).className=o,s.innerHTML=a,s);n.helperElement=l;var u=new aa(l);return n.element.parentNode&&(n.element.parentNode.insertBefore(l,n.element),n.setHelperElementSize(),u.on("tap",(function(){return n.emit("vr.requestExit",$o("vr.requestExit",{}))}))),n.destroyHelper=function(){u.destroy(),l.parentNode&&l.parentNode.removeChild(l),delete n.helperElement},n}return ne(t,e),t.parseArgs=function(r){if(r instanceof t)return r;var n=ie(ie({},r),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return e.parseArgs.call(this,n)},t.initAnimationEndState=function(t){var r=this.parseArgs(t),n=e.initAnimationEndState.call(this,r);return ie(ie({},n),{mode:"VRPanorama"})},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.cardboard.dispose(),this.destroyHelper();for(var t=0,r=Object.keys(this.panoMeshes);t<r.length;t++){var n=r[t],i=this.panoMeshes[n];this.helper.remove(i),i.dispose(),delete this.panoMeshes[n]}},t.prototype.isReady=function(){return!1},t.prototype.updateRenderSize=function(){this.needsRender=!0,this.setHelperElementSize()},t.prototype.updatePanoMeshesVisible=function(){for(var e=this.works.getResolvedObserver(this.currentPano),t=(e?e.visibleIds:[]).concat(Xe(this.currentPano)),r=0,n=this.works.resolvedObservers;r<n.length;r++){var i=n[r],o=this.panoMeshes[i.panoId];o&&(t.indexOf(i.panoId)>=0?o.parent!==this.helper&&this.helper.add(o):o.parent===this.helper&&(this.helper.remove(o),o.setOpacity(0)))}},t.prototype.updatePanoMeshes=function(){for(var e=0,t=Object.keys(this.panoMeshes);e<t.length;e++){var r=t[e],n=this.panoMeshes[r];this.helper.remove(n),n.dispose(),delete this.panoMeshes[r]}for(var i=0,o=this.works.resolvedObservers;i<o.length;i++){var a=o[i],s=a.panoId,l=new Ts;l.name="panoSphere_".concat(s),l.position.copy(a.position),l.needsRender=!0,this.panoMeshes[s]=l}this.updatePanoMeshesVisible()},t.prototype.updateTime=function(e,t){var r,i,o,a,s,l;if(!this.destroyed){var u=this.currentPano;this.needsRender=!0;var c={},d={};if(!1===this.locationMotion.ended){this.locationMotion.update(e);var p=this.locationMotion.getKeyFrameSegment(e),h=p[0],f=p[1],v=this.panoResourceFromLocationMotionKeyframe(h),A=this.panoResourceFromLocationMotionKeyframe(f),m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),g=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),y=v.position,b=A.position,x=this.locationMotion.value.count-f.value.count+1;c.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Dr(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,c.useBlackTransition="instant"===A.effect,A.panoPicture&&(x<1?v.panoPicture&&(c.pano0=v.panoPicture):c.pano0=A.panoPicture,c.pano1=A.panoPicture),"fade"===A.effect&&(c.pano0&&v.panoPicture&&(c.pano0={map:c.pano0.map,luminanceMap:c.pano0.luminanceMap,matrix:v.panoPicture.matrix.clone().setPosition(A.position)}),y.copy(b)),c.progress=x,d.distance=this.locationMotion.value.distance,d.offset=new n.Vector3(y.x+(b.x-y.x)*x,y.y+(b.y-y.y)*x,y.z+(b.z-y.z)*x);for(var w=[],M=[],E=0,C=this.locationMotion.keyframes;E<C.length;E++){var S=C[E],I=S.key,P=S.progress;void 0!==I&&(w.push(I),P>=this.locationMotion.progress&&M.push(I))}for(var T=0,B=Object.keys(this.panoResources);T<B.length;T++){var R=B[T];if(!(M.indexOf(R)>=0)){var O=this.panoResources[R];if(O.panoPicture){var k=O.panoPicture.map;if(k){if(k===(null===(r=c.pano0)||void 0===r?void 0:r.map))continue;if(k===(null===(i=c.pano1)||void 0===i?void 0:i.map))continue;k.dispose(),O.panoPicture=null}}w.indexOf(R)>=0||delete this.panoResources[R]}}this.currentPano=Je(A.panoId),this.emit("pano.moving",$o("pano.moving",{userAction:this.userAction,prevPano:Je(m.panoId),state:ie(ie(ie(ie({},Je(g.panoId)),{mode:this.mode}),oa(this.camera.pose)),d),options:{},progress:this.locationMotion.progress,error:null}))}!1===ia(c)&&((null===(o=c.pano0)||void 0===o?void 0:o.map)&&c.pano0.map instanceof Dt&&!c.pano0.map.cubeRenderTarget&&(c.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(a=c.pano0)||void 0===a?void 0:a.luminanceMap)&&c.pano0.luminanceMap instanceof Dt&&!c.pano0.luminanceMap.cubeRenderTarget&&(c.pano0.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),(null===(s=c.pano1)||void 0===s?void 0:s.map)&&c.pano1.map instanceof Dt&&!c.pano1.map.cubeRenderTarget&&(c.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(l=c.pano1)||void 0===l?void 0:l.luminanceMap)&&c.pano1.luminanceMap instanceof Dt&&!c.pano1.luminanceMap.cubeRenderTarget&&(c.pano1.luminanceMap.cubeRenderTarget=this.luminanceCubeRenderTargetPool.pop()),this.models.setMaterial(c)),d.offset&&this.camera.position.copy(d.offset),Ze(this.currentPano,u)&&this.updatePanoMeshesVisible();var D=this.camera.pose.longitude,F=this.camera.pose.latitude;this.camera.quaternion.fromArray(this.cardboard.sensor.getOrientation()),this.camera.updateMatrixWorld(),this.camera.computePose();var L=this.works.getResolvedObserver(this.currentPano);if(L)for(var Q=0,N=L.visibleIds.concat(Xe(this.currentPano));Q<N.length;Q++){var V=N[Q],U=Je(V);if(G=this.works.getResolvedObserver(U)){var z=this.panoMeshes[V];if(G.loadable||G.active){var q=z.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);q<.05?z.setOpacity(0):z.setOpacity(Dr(1.5/q,0,1)),Ze(this.currentPano,U)&&z.setOpacity(0),z.lookAt(this.camera.position)}else z.setOpacity(0)}}for(var H=this.intersect(e),_=0,j=this.works.resolvedObservers;_<j.length;_++){var G=j[_];(z=this.panoMeshes[G.panoId])&&(z.setCurrent(z===H),z.updateTime&&z.updateTime(e,t))}D===this.camera.pose.longitude&&F===this.camera.pose.latitude||(this.cameraMotion.set(Zn(this.camera.pose,["longitude","latitude"]),0).catch(fe),this.emit("camera.update",$o("camera.update",{userAction:!0,state:ie(ie(ie({},this.currentPano),{mode:this.mode}),oa(this.camera.pose))})))}},t.prototype.render=function(){this.cardboard.render(this.scene,this.camera)},t.prototype.setCamera=function(e){},t.prototype.destroyHelper=function(){},t.prototype.setHelperElementSize=function(){if(this.helperElement){var e=new n.Vector2(this.element.offsetWidth,this.element.offsetHeight),t=e.x*this.scissor.left,r=e.y*(1-this.scissor.bottom-this.scissor.height),i=e.x*this.scissor.width,o=e.y*this.scissor.height;this.helperElement.style.marginLeft=t+"px",this.helperElement.style.marginTop=r+"px",this.helperElement.style.width=i+"px",this.helperElement.style.height=o+"px"}},t.prototype.intersect=function(e){var t;if(!1===this.locationMotion.ended)return this.intersectMesh.visible=!1,delete this.activePanoMesh,void delete this.activeTime;if(this.activePanoMesh&&this.activeTime&&e-this.activeTime>1500){for(var r=this.activePanoMesh,i=null,o=0,a=Object.keys(this.panoMeshes);o<a.length;o++){var s=a[o];if(this.panoMeshes[s]===r){i=s;break}}return null!==i&&this.moveToPano(Je(i),{},!0),delete this.activePanoMesh,delete this.activeTime,r}for(var l=this.camera.getDirection(new n.Vector3),u=new n.Raycaster(this.camera.position,l),c=void 0,d=[],p=this.works.getResolvedObserver(this.currentPano),h=0,f=p?p.visibleIds:[];h<f.length;h++){i=f[h];var v=this.panoMeshes[i],A=u.intersectObject(null!==(t=v.hitTestMesh)&&void 0!==t?t:v,!0)[0];A&&d.push({panoMesh:v,intersection:A})}var m=d.sort((function(e,t){return e.intersection.distance-t.intersection.distance}))[0];m?(c=m.intersection,this.activePanoMesh!==m.panoMesh&&(this.activePanoMesh=m.panoMesh,this.activeTime=e),this.intersectMesh.position.copy(m.panoMesh.position),this.intersectMesh.lookAt(this.camera.position),this.intersectMesh.visible=!1):(this.activePanoMesh=void 0,this.activeTime=void 0),c||(c=this.models.intersectRaycaster(u)[0]);var g=$o("intersect.update",{raycaster:u,intersection:null!=c?c:null,object:this.intersectMesh});if(this.emit("intersect.update",g),!g.defaultPrevented){if(c&&c.face){var y=c.face.normal,b=new n.Quaternion;b.setFromUnitVectors(new n.Vector3(0,0,1),y),this.intersectMesh.quaternion.copy(b);var x=y.clone().multiplyScalar(.05),w=c.point.clone().add(x);this.intersectMesh.position.copy(w),this.intersectMesh.visible=!0}else this.intersectMesh.visible=!1;return null==m?void 0:m.panoMesh}this.hideIntersectMesh()},t.prototype.onPanGesture=function(){},t.prototype.onTapGesture=function(){},t.prototype.onPinchGesture=function(){},t.prototype.onMouseMove=function(){},t.prototype.onMouseOut=function(){},t}(Xa),Rs=new n.Vector3(0,1.6,0),Os=function(e){function t(r){var n,i=this,o=t.parseArgs(r);return(i=e.call(this,o)||this).mode="Model",i.locationMotion=new Io({x:i.camera.pose.offset.x,y:i.camera.pose.offset.y,z:i.camera.pose.offset.z,distance:i.camera.pose.distance,modelAlpha:null!==(n=i.models.getMaterial().modelAlpha)&&void 0!==n?n:0,perspToOrtho:i.camera.perspToOrtho.x,orthoDistance:i.camera.orthoDistance}),i}return ne(t,e),t.parseArgs=function(r){return r instanceof t?r:e.parseArgs.call(this,r)},t.initAnimationEndState=function(t){var r=this.parseArgs(t),n=e.initAnimationEndState.call(this,r);return ie(ie({},n),{mode:"Model"})},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.locationMotion.dispose()},t.prototype.isReady=function(){return!1!==this.locationMotion.ended},t.prototype.updateWork=function(e,r,n,i){this.works=e;var o=t.initAnimationEndState(ie(ie({},this),{initial:{currentState:ie(ie({},this.currentPano),this.camera.pose),duration:n,state:r,userAction:i}}));this.hideIntersectMesh();var a={duration:0,longitude:o.longitude,latitude:o.latitude,fov:o.fov};return this.moveToPano(this.currentPano,a,i),!0},t.prototype.updateTime=function(e,t){if(!this.destroyed){var r={},i={};if(!this.locationMotion.ended){this.locationMotion.update(e),r.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Dr(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,i.distance=this.locationMotion.value.distance,i.offset=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z);var o=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),a=na(this.works.resolvedObservers,(function(e){return e.position.distanceTo(o)}));this.currentPano=a?{workCode:a.work.workCode,panoIndex:a.panoIndex}:{workCode:"",panoIndex:0}}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),ia(r)||this.models.setMaterial(r),ia(i)||this.setCamera(i)}},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise((function(r){var n=e.initial;n.state,n.currentState;var i=n.duration,o=n.userAction;e.userAction=o;var a=t.initAnimationEndState(e),s={workCode:a.workCode,panoIndex:a.panoIndex};e.moveToPano(s,{longitude:a.longitude,latitude:a.latitude,fov:a.fov,duration:i,moveStartCallback:function(t){e.emit("initAnimation.start",$o("initAnimation.start",{state:t,userAction:e.userAction}))},moveEndCallback:function(t){e.emit("initAnimation.end",$o("initAnimation.end",{state:t,userAction:e.userAction})),r()},moveCancelCallback:function(){var t=e.currentPano,n=ie(ie({},t),{mode:e.mode,longitude:e.camera.pose.longitude,latitude:e.camera.pose.latitude,fov:e.camera.pose.fov,offset:e.camera.pose.offset.clone(),distance:e.camera.pose.distance});e.emit("initAnimation.end",$o("initAnimation.end",{state:n,userAction:e.userAction})),r()}},o)}))},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(Ae())[1],t=this.locationMotion.getKeyFrameSegment(Ae())[1];return ie(ie({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:new n.Vector3(t.value.x,t.value.y,t.value.z),distance:t.value.distance})},t.prototype.moveToPano=function(e,t,r){void 0===t&&(t={});var n=this.works.getResolvedObserver(e);n&&this.moveToPosition(n.position,t,r)},t.prototype.moveToPosition=function(e,t,r){var i,o,a,s=this;void 0===t&&(t={}),this.userAction=r,this.stopMomentumMovement();for(var l=Ae(),u=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),c=u.distanceTo(e),d=this.locationMotion.getProgressVelocity(l),p=0,h=1;h<this.locationMotion.keyframes.length;h++){var f=this.locationMotion.keyframes[h-1].value,v=f.x,A=f.y,m=f.z,g=this.locationMotion.keyframes[h].value,y=g.x,b=g.y,x=g.z;p+=Math.sqrt(Math.pow(y-v,2)+Math.pow(b-A,2)+Math.pow(x-m,2))}var w=0===c?0:d*p/c,M=this.calculateMovingDuration(t.duration,c),E={x:e.x,y:e.y,z:e.z,distance:0,modelAlpha:1,perspToOrtho:0,orthoDistance:1},C={longitude:t.longitude,latitude:t.latitude,fov:t.fov},S=na(this.works.resolvedObservers,(function(e){return e.position.distanceTo(u)})),I=S?{workCode:S.work.workCode,panoIndex:S.panoIndex}:{workCode:"",panoIndex:0},P=ie(ie({},I),{mode:this.mode,longitude:null!==(i=C.longitude)&&void 0!==i?i:this.camera.pose.longitude,latitude:null!==(o=C.latitude)&&void 0!==o?o:this.camera.pose.latitude,fov:null!==(a=C.fov)&&void 0!==a?a:this.camera.pose.fov,offset:e.clone(),distance:0}),T=this.currentPano;this.emit("pano.moveTo",$o("pano.moveTo",{options:t,prevPano:T,progress:0,state:P,userAction:this.userAction,error:null})),t.moveStartCallback&&t.moveStartCallback(P),this.cameraMotion.set(C,M).catch(fe),this.locationMotion.set(E,M,w).then((function(){var e=ie(ie(ie({},I),{mode:s.mode}),oa(s.camera.pose));s.emit("pano.arrived",$o("pano.arrived",{options:t,prevPano:T,progress:0,state:e,userAction:s.userAction,error:null})),t.moveEndCallback&&t.moveEndCallback(e)}),(function(){t.moveCancelCallback&&t.moveCancelCallback(),s.emit("pano.cancel",$o("pano.cancel",{options:t,prevPano:T,progress:0,state:P,userAction:s.userAction,error:null}))}))},t.prototype.onTapGesture=function(e){var t=e.center.raycaster;this.stopMomentumMovement();var r=this.models.intersectRaycaster(t)[0];if(r&&r.face){var i=r.face.normal,o=r.point;if(new n.Vector3(0,1,0).angleTo(i)>Math.PI/3){var a=i.clone().setLength(.3).add(o);t.set(a,new n.Vector3(0,-1,0)),r=this.models.intersectRaycaster(t)[0]}}if(r){var s=(new n.Vector3).copy(r.point).add(Rs),l=na(this.works.resolvedObservers,(function(e){return e.position.distanceTo(s)}),!0),u=l[0],c=l[1];u&&c<5&&(s.y=u.position.y),e.state.offset.copy(s),e.state.distance=0,this.emit("gesture.tap",e),e.defaultPrevented||this.moveToPosition(s,{},!0)}else this.emit("gesture.tap",e),e.defaultPrevented||this.cameraBounce()},t}(ma),ks=function(){return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("{vs|z-rp@-}n{|]|vv|{H{vs|z-znA-}n{|ZnvH{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}H<<{vs|z-sy|n-pnyrHn\bv{t-rp@-}n{|d|yq]|vv|{H<<-n\bv{t-sy|n-vU|yrHp|{-sy|n-]V-J-@;>A>BF?CHp|{-sy|n-aNb-J-C;?E@>EB?Hp|{-sy|n-pnyr-J->@;>Hrp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5:rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-aNb9-urn-<-]V6H\f|vq-znv{56-\n--rpA-|yq]|vv|{-J-z|qryZnv-7-rpA5}|vv|{9->;=6H--}n{|d|yq]|vv|{-J-5rpA5|yq]|vv|{;\b\t9->;=6-7-}n{|Znv6;\b\tH--rp?-p||q-J-|P||q5}n{|d|yq]|vv|{6H--sy|n-qvn{pr-J-pnyrH--vs-5p||q;\b-I-=;>B6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-=;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5=;>B-:-p||q;\b66H----qvn{pr-J-pnyrH--\f-ryr-vs-5p||q;\b-KJ-=;>B-33-p||q;\b-IJ-=;EB6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-5p||q;\b-:-=;>B6-<-=;D6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----vs5-}n{|Qv}ynprzr{;-JJ-=;=6\n------qvn{pr-J-pnyrH----\fryr\n------qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----\f--\f-ryr-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9->;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5p||q;\b-:-=;EB66H----qvn{pr-J-pnyrH--\f--rpA-ry]|vv|{-J-rpA5}|vv|{-8-}n{|]|vv|{-8-{|znyv\tr5|yq]|vv|{;\b\t6-7-qvn{pr9->;=6H--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-ry]|vv|{H\f"),Ds=function(){return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("{vs|z-sy|n-|}npv\bH{vs|z-nz}yrPor-}n{|Zn}H{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}Hn\bv{t-rp@-}n{|d|yq]|vv|{H|vq-znv{56-\n--rpA-}n{|P|y|-J-rrPor5}n{|Zn}9-}n{|d|yq]|vv|{;\b\t6H--tylSntP|y|-J-rpA5}n{|P|y|;to9-|}npv\b6H\f"),Fs=Object.assign({opacity:new n.Uniform(1),scale:new n.Uniform(13.1),panoMap:new n.Uniform(null),panoDisplacementMap:new n.Uniform(null),panoPosition:new n.Uniform(new n.Vector3),panoMatrix:new n.Uniform(new n.Matrix4)},{emissive:new n.Uniform(new n.Color(0)),emissiveMap:new n.Uniform(null),specular:new n.Uniform(new n.Color(1118481)),specularMap:new n.Uniform(null),normalMap:new n.Uniform(null),bumpMap:new n.Uniform(null),shininess:new n.Uniform(30)},n.UniformsLib.common,n.UniformsLib.lights),Ls=new n.SphereBufferGeometry(.01,128,128);var Qs=function(){function e(){this.textureLoader=new Ft}return e.prototype.load=function(e,t,r,i,o,a,s){var l=[0,0],u=function(e,t){l[t]=e,a(.8*l[0]+.2*l[1])},c=[this.textureLoader.loadTexture(e,{imageURL:r.imageURL,viaAjax:!0,allowHosts:r.allowHosts,networkSubscribe:r.networkSubscribe,requestProxy:r.requestProxy},void 0,void 0,(function(e){return u(e,1)}),s),this.textureLoader.loadCubeTexture(t,{imageURL:r.imageURL,viaAjax:!0,allowHosts:r.allowHosts,networkSubscribe:r.networkSubscribe,requestProxy:r.requestProxy},void 0,void 0,(function(e){return u(e,0)}),s)];return Promise.all(c).then((function(e){var t=e[0],o=e[1],a=function(e,t,r,i){var o=new n.ShaderMaterial({side:n.BackSide,vertexShader:ks,fragmentShader:Ds,transparent:!0,uniforms:n.UniformsUtils.clone(Fs)}),a=t;return a.needsUpdate=!0,a.minFilter=n.LinearFilter,a.magFilter=n.LinearFilter,e.needsUpdate=!0,e.minFilter=n.LinearFilter,e.magFilter=n.LinearFilter,o.uniforms.opacity.value=0,o.uniforms.panoMap.value=a,o.uniforms.panoDisplacementMap.value=e,o.uniforms.panoPosition.value=r,o.uniforms.panoMatrix.value=i,Object.assign(new n.Mesh(Ls,o),{frustumCulled:!1,dispose:function(){this.material instanceof n.ShaderMaterial&&(this.material.uniforms.panoDisplacementMap.value.dispose(),this.material.uniforms.panoDisplacementMap.value=null,this.material.dispose())}})}(t.body,o.body,r.position,r.matrix),s={body:a,meta:ue([t.meta],o.meta,!0)};return i(s),s})).catch((function(e){for(var t=0,r=c;t<r.length;t++){r[t].then((function(e){return e.body.dispose()})).catch(fe)}return o(e),Promise.reject(e)}))},e}(),Ns=new n.Vector3(-1,1,1),Vs=function(e){function t(r){var i,o,a,s=this,l=t.parseArgs(r);s=e.call(this,l)||this;var u=l.initial;return u.state,u.currentState,s.maxAccessibleDistance=l.maxAccessibleDistance,s.panoTapTriggerRadius=l.panoTapTriggerRadius,s.panoCircleMeshCreator=l.panoCircleMeshCreator,s.panoModelGroup=new n.Group,s.panoModelGroup.name="panoModels",s.scene.add(s.panoModelGroup),s.panoMeshes={},s.updatePanoMeshes(),s.helper.remove(s.intersectMesh),s.locationMotion=new Io({count:0,distance:s.camera.pose.distance,modelAlpha:null!==(i=s.models.getMaterial().modelAlpha)&&void 0!==i?i:0,perspToOrtho:s.camera.perspToOrtho.x,orthoDistance:s.camera.orthoDistance}),s.panoResources={},s.panoResources[s.locationMotion.keyframes[0].key=s.locationMotion.keyframes[1].key=Fi()]={panoId:Xe(s.currentPano),matrix:null!==(a=null===(o=s.models.getMaterial().pano1)||void 0===o?void 0:o.matrix)&&void 0!==a?a:new n.Matrix4,position:s.camera.pose.offset.clone(),effect:"fly"},s.depthTextureLoader=new Qs,s}return ne(t,e),t.parseArgs=function(r){var n,i,o;if(r instanceof t)return r;var a=e.parseArgs.call(this,r);return ie(ie({},a),{maxAccessibleDistance:null!==(n=r.maxAccessibleDistance)&&void 0!==n?n:5,panoTapTriggerRadius:null!==(i=r.panoTapTriggerRadius)&&void 0!==i?i:1,panoCircleMeshCreator:null!==(o=r.panoCircleMeshCreator)&&void 0!==o?o:function(e){return new Bo}})},t.initAnimationEndState=function(t){var r=this.parseArgs(t),n=e.initAnimationEndState.call(this,r);return ie(ie({},n),{mode:"DepthPanorama"})},t.prototype.destroy=function(){var t;if(e.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.pendingTextureTask,this.panoModelGroup){for(var r=0,n=this.panoModelGroup.children;r<n.length;r++){var i=n[r];"function"==typeof i.dispose&&i.dispose()}this.scene.remove(this.panoModelGroup)}if(this.panoMeshes)for(var o=0,a=Object.keys(this.panoMeshes);o<a.length;o++){var s=a[o],l=this.panoMeshes[s];this.helper.remove(l),l.dispose(),delete this.panoMeshes[s]}for(var u=null!==(t=this.models.getMaterial())&&void 0!==t?t:{},c=u.pano0,d=u.pano1,p=0,h=Object.keys(this.panoResources);p<h.length;p++){var f=h[p],v=this.panoResources[f];v.panoModel&&v.panoModel.material.uniforms.panoMap.value!==(null==c?void 0:c.map)&&v.panoModel.material.uniforms.panoMap.value!==(null==d?void 0:d.map)&&(this.panoModelGroup.remove(v.panoModel),v.panoModel.material.uniforms.panoMap.value.dispose(),v.panoModel.dispose(),delete v.panoModel),delete this.panoResources[f]}},t.prototype.isReady=function(){return!1===this.locationMotion.ended&&e.prototype.isReady.call(this)},t.prototype.updateWork=function(e,r,n,i){this.userAction=i,this.works=e;var o=t.initAnimationEndState(ie(ie({},this),{initial:{currentState:ie(ie({},this.currentPano),this.camera.pose),duration:n,state:r,userAction:i}})),a={workCode:o.workCode,panoIndex:o.panoIndex};return this.hideIntersectMesh(),this.updatePanoMeshes(),this.moveToPano(a,{effect:"fade",duration:n,longitude:r.longitude,latitude:r.latitude,fov:r.fov},i),!0},t.prototype.updateTime=function(e,t){var r,i,o=this;if(!this.destroyed){var a={},s={},l=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),u=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),c=!1;if(!1===this.cameraMotion.ended&&(this.cameraMotion.update(e),s.longitude=this.cameraMotion.value.longitude,s.latitude=this.cameraMotion.value.latitude,s.fov=this.cameraMotion.value.fov),!1===this.locationMotion.ended){this.locationMotion.update(e);var d=this.locationMotion.getKeyFrameSegment(e),p=d[0],h=d[1],f=this.panoResourceFromLocationMotionKeyframe(p),v=this.panoResourceFromLocationMotionKeyframe(h),A=(new n.Vector3).copy(f.position),m=(new n.Vector3).copy(v.position),g=this.locationMotion.value.count-h.value.count+1;a.progress=g,a.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Dr(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance;for(var y=0,b=this.panoModelGroup.children;y<b.length;y++){var x=b[y];x.visible=x===f.panoModel||x===v.panoModel}f.panoModel&&(f.panoModel.material.uniforms.opacity.value=1-g,f.panoModel.material.depthTest=0!==g),v.panoModel&&(v.panoModel.material.uniforms.opacity.value=g,v.panoModel.material.depthTest=1!==g),v.panoModel&&(g<1?f.panoModel&&(a.pano0={map:f.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:f.matrix}):a.pano0={map:v.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:v.matrix},a.pano1={map:v.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:v.matrix}),c=a.useBlackTransition="instant"===v.effect||"montage"===v.effect,"fade"!==v.effect&&"montage"!==v.effect||(a.pano0&&(a.pano0={map:a.pano0.map,luminanceMap:null,matrix:f.matrix.clone().setPosition(v.position)}),A.copy(m)),s.distance=this.locationMotion.value.distance,s.offset=new n.Vector3(A.x+(m.x-A.x)*g,A.y+(m.y-A.y)*g,A.z+(m.z-A.z)*g);for(var w=[],M=[],E=0,C=this.locationMotion.keyframes;E<C.length;E++){var S=C[E],I=S.key,P=S.progress;void 0!==I&&(w.push(I),P>=this.locationMotion.progress&&M.push(I))}for(var T=0,B=Object.keys(this.panoResources);T<B.length;T++){var R=B[T];if(!(M.indexOf(R)>=0)){var O=this.panoResources[R];if(O.panoModel){if(O.panoModel.material.uniforms.panoMap.value===(null===(r=a.pano0)||void 0===r?void 0:r.map))continue;if(O.panoModel.material.uniforms.panoMap.value===(null===(i=a.pano1)||void 0===i?void 0:i.map))continue;this.panoModelGroup.remove(O.panoModel),O.panoModel.material.uniforms.panoMap.value.dispose(),O.panoModel.dispose(),delete O.panoModel}w.indexOf(R)>=0||delete this.panoResources[R]}}this.currentPano=Je(v.panoId),this.emit("pano.moving",$o("pano.moving",{userAction:this.userAction,prevPano:Je(l.panoId),state:ie(ie(ie(ie({},Je(u.panoId)),{mode:this.mode}),oa(this.camera.pose)),s),options:{},progress:this.locationMotion.progress,error:null}))}!1===ia(a)&&this.models.setMaterial(a),!1===ia(s)&&this.setCamera(s);var k=this.works.getResolvedObserver(this.currentPano),D=this.locationMotion.ended?this.getForwardObserverOrNot():null;if(this.camera.pose.distance>.1||c){if(k)for(var F=0,L=Object.keys(this.panoMeshes);F<L.length;F++){var Q=L[F];(_=this.panoMeshes[Q]).setOpacity(0),_.setCurrent(!1),_.updateTime&&_.updateTime(e,t)}}else if(k){var N=na(k.visibleIds,(function(e){var t=o.works.getResolvedObserver(e);return t?k.standingPosition.distanceTo(t.standingPosition):1/0}),!0),V=N[1];V=Dr(V,2.5,1/0);for(var U=k.visibleIds.concat(Xe(this.currentPano)),z=this.camera.getDirection(new n.Vector3),q=0,H=Object.keys(this.panoMeshes);q<H.length;q++){Q=H[q];var _=this.panoMeshes[Q],j=this.works.getResolvedObserver(Q);if(-1===U.indexOf(Q))_.setCurrent(!1),_.setOpacity(0);else if(j)if(j.loadable||j.active){var G=_.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);_.setCurrent(!_.loading&&0===_.progress&&null!==D&&D.panoId===Q),_.setOpacity(G<.01?0:Dr(V/G*1.2,.4,.85));var K=this.camera.position.clone().setY(_.position.y),W=(new n.Vector3).copy(_.position).sub(K).normalize();if(Q===Xe(this.currentPano)){var Y=Dr((.5-K.distanceTo(_.position))/.5,0,1);W.multiplyScalar(1-Y).add(z.clone().multiplyScalar(Y))}W.length()>0&&_.quaternion.setFromEuler(new n.Euler(0,Math.atan2(W.x,W.z),0))}else _.setCurrent(!1),_.setOpacity(0);else _.setCurrent(!1),_.setOpacity(0);_.updateTime&&_.updateTime(e,t)}}}},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(Ae())[1],t=this.locationMotion.getKeyFrameSegment(Ae())[1],r=this.panoResourceFromLocationMotionKeyframe(t),n=this.works.getResolvedObserver(r.panoId);return{mode:this.mode,workCode:n?n.work.workCode:this.currentPano.workCode,panoIndex:n?n.pano.panoIndex:this.currentPano.panoIndex,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:n?n.position.clone():this.camera.position.clone(),distance:0}},t.prototype.moveToPano=function(e,t,r){var i,o=this;void 0===t&&(t={});var a=this.works.getResolvedObserver(e);if(!a)throw new Error("panoId ".concat(JSON.stringify(e)," is not found."));this.userAction=r;var s=a.images.depth,l=ie({key:"pano.".concat(a.panoId)},Zn(this.imageOptions,["format","size","quality","sharpen","mappings"])),u=this.imageOptions.transform,c=a.images,d=a.position,p=a.quaternion,h=(new n.Matrix4).compose(d,p,new n.Vector3(-1,1,1)),f="pano:"+ei(c);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===f)return;var v=this.pendingTextureTask.panoId,A=Je(v);null===(i=this.panoMeshes[v])||void 0===i||i.setProgress(0),this.emit("pano.texture.abort",$o("pano.texture.abort",{error:null,progress:0,meta:null,pano:A})),this.pendingTextureTask.onError(new Error("pano ".concat(JSON.stringify(A)," texture aborted")))}var m="move-to-pano-"+a.panoId;this.pending.add(m),this.pendingTextureTask={panoId:a.panoId,hash:f,onLoad:function(e){o.pending.delete(m),o.destroyed?e.body.dispose():(e.body.name=f,o.doMoveToPano(a.pano,e.body,t))},onError:function(e){o.pending.delete(m);var r=ie(ie(ie({},a.pano),{mode:o.mode}),oa(o.camera.pose));o.emit("pano.error",$o("pano.error",{error:e,userAction:o.userAction,options:t,prevPano:o.currentPano,progress:0,state:r})),o.emit("pano.cancel",$o("pano.cancel",{error:null,userAction:o.userAction,options:t,prevPano:o.currentPano,progress:0,state:r})),t.moveCancelCallback&&t.moveCancelCallback()}};var g=this.panoMeshes[a.panoId];g&&g.tap&&g.tap(),this.depthTextureLoader.load(s,c,{imageURL:{transform:u,options:l},position:d,matrix:h,allowHosts:a.work.allowHosts,networkSubscribe:this.networkSubscribe,requestProxy:this.requestProxy},(function(e){var t,r;(null===(t=o.pendingTextureTask)||void 0===t?void 0:t.hash)===f?(o.pendingTextureTask.onLoad(e),null===(r=o.panoMeshes[a.panoId])||void 0===r||r.setProgress(0),delete o.pendingTextureTask,o.emit("pano.texture.success",$o("pano.texture.success",{error:null,progress:1,meta:e.meta,pano:a.pano}))):e.body.dispose()}),(function(e){var t,r;(null===(t=o.pendingTextureTask)||void 0===t?void 0:t.hash)===f&&(o.pendingTextureTask.onError(e),null===(r=o.panoMeshes[a.panoId])||void 0===r||r.setProgress(0),delete o.pendingTextureTask,o.emit("pano.texture.error",$o("pano.texture.error",{error:e,progress:0,meta:null,pano:a.pano})),o.emit("error",e))}),(function(e){var t,r;o.emit("pano.texture.progress",$o("pano.texture.progress",{error:null,progress:e,meta:null,pano:a.pano})),(null===(t=o.pendingTextureTask)||void 0===t?void 0:t.hash)===f&&(null===(r=o.panoMeshes[a.panoId])||void 0===r||r.setProgress(e))}),this.renderer),this.emit("pano.texture.load",$o("pano.texture.load",{error:null,progress:0,meta:null,pano:a.pano}))},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise((function(r){var n=e.initial;n.state,n.currentState;var i=n.duration,o=n.userAction,a=t.initAnimationEndState(e),s={workCode:a.workCode,panoIndex:a.panoIndex},l=!1;e.userAction=o,e.moveToPano(s,{longitude:a.longitude,latitude:a.latitude,fov:a.fov,duration:i,moveStartCallback:function(t){l=!0,e.emit("initAnimation.start",$o("initAnimation.start",{state:t,userAction:o}))},moveEndCallback:function(t){e.emit("initAnimation.end",$o("initAnimation.end",{state:t,userAction:e.userAction})),r()},moveCancelCallback:function(){var t=ie(ie(ie({},s),{mode:e.mode}),oa(e.camera.pose));!1===l&&e.emit("initAnimation.start",$o("initAnimation.start",{state:t,userAction:e.userAction})),e.emit("initAnimation.end",$o("initAnimation.end",{state:t,userAction:e.userAction})),r()}},o)}))},t.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},t.prototype.locationMotionKeyframesLength=function(e){for(var t=0,r=1;r<e.length;r++){var n=this.panoResourceFromLocationMotionKeyframe(e[r-1]).position,i=this.panoResourceFromLocationMotionKeyframe(e[r]).position;t+=n.distanceTo(i)*(e[r].value.count-e[r-1].value.count)}return t},t.prototype.updatePanoMeshes=function(){for(var e=this,t={},r=0,n=Object.keys(this.panoMeshes);r<n.length;r++){var i=n[r],o=this.panoMeshes[i];t[i]=o,delete this.panoMeshes[i]}for(var a=1,s={},l=function(t){var r=na(t.accessibleIds,(function(r){var n=e.works.getResolvedObserver(r);return n?Dr(n.standingPosition.distanceTo(t.standingPosition),1,1/0):1/0}),!0)[1];void 0===s[t.panoId]&&(s[t.panoId]=r)},u=0,c=this.works.resolvedObservers;u<c.length;u++){l(f=c[u])}var d=Object.keys(s).map((function(e){return s[e]}));d.length&&(a=Dr(.6*(d.reduce((function(e,t){return e+t}),0)/d.length),1,3));for(var p=0,h=this.works.resolvedObservers;p<h.length;p++){var f;o=void 0;t[(f=h[p]).panoId]?(!0===(o=t[f.panoId]).loading&&!1===f.loadable&&o.setLoading(!1),delete t[f.panoId]):((o=this.panoCircleMeshCreator(f.pano)).name="PanoCircleMesh_"+f.panoId,this.helper.remove(o)),o.scale.set(a,1,a),o.position.copy(f.standingPosition),this.panoMeshes[f.panoId]=o}for(var v=0,A=Object.keys(t);v<A.length;v++){var m=A[v];this.helper.remove(t[m]),t[m].dispose(),delete t[m]}},t.prototype.doMoveToPano=function(e,t,r){var i,o,a,s,l=this;void 0===r&&(r={});var u=Ae(),c=Fi(),d=this.works.getResolvedObserver(e);if(!d)throw new Error("panoId ".concat(JSON.stringify(e)," never found"));var p=this.panoResources[c]={panoId:d.panoId,effect:null!==(i=r.effect)&&void 0!==i?i:"fly",panoModel:t,matrix:(new n.Matrix4).compose(d.position,d.quaternion,Ns),position:d.position.clone()};t.visible=!1,t.renderOrder=-1,this.panoModelGroup.add(t);var h,f,v;if(this.locationMotion.ended){var A=this.locationMotion.getKeyFrameSegment(u);A[0];var m=A[1],g=this.locationMotion.value,y=this.panoResourceFromLocationMotionKeyframe(m).position,b=p.position;h=Math.max(y.distanceTo(b),1),f=[{key:m.key,progress:0,value:ie(ie({},g),{count:0})},{key:c,progress:1,value:{distance:0,perspToOrtho:0,modelAlpha:0,orthoDistance:1,count:1}}],v=0}else{var x=this.locationMotion.getKeyFrameSegment(u),w=x[0],M=(m=x[1],g=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(w).position),E=(y=this.panoResourceFromLocationMotionKeyframe(m).position,b=p.position,m.value.count-g.count),C=Math.max(M.distanceTo(y),1)*E;h=C+Math.max(y.distanceTo(b),1),f=[{key:w.key,progress:0,value:ie({},g)},{key:m.key,progress:C/h,value:m.value},{key:c,progress:1,value:{count:m.value.count+1,distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0}}];var S=this.locationMotionKeyframesLength(this.locationMotion.keyframes),I=this.locationMotionKeyframesLength(f);v=0===S||0===S?0:this.locationMotion.getProgressVelocity(u)*S/I}var P=this.calculateMovingDuration(r.duration,"fade"===r.effect||"montage"===r.effect?0:h),T={longitude:r.longitude,latitude:r.latitude,fov:r.fov},B=ie(ie({},e),{mode:this.mode,longitude:null!==(o=T.longitude)&&void 0!==o?o:this.camera.pose.longitude,latitude:null!==(a=T.latitude)&&void 0!==a?a:this.camera.pose.latitude,fov:null!==(s=T.fov)&&void 0!==s?s:this.camera.pose.fov,offset:d.position.clone(),distance:this.camera.pose.distance}),R=this.currentPano;this.emit("pano.moveTo",$o("pano.moveTo",{options:r,prevPano:R,progress:0,state:B,userAction:this.userAction,error:null})),r.moveStartCallback&&r.moveStartCallback(B),this.cameraMotion.set(T,P).catch(fe),this.locationMotion.setKeyframes(f,P,v).then((function(){var t=ie(ie({},e),{mode:l.mode,longitude:l.camera.pose.longitude,latitude:l.camera.pose.latitude,fov:l.camera.pose.fov,offset:l.camera.pose.offset.clone(),distance:l.camera.pose.distance});l.emit("pano.arrived",$o("pano.arrived",{options:r,prevPano:R,progress:1,state:t,userAction:l.userAction,error:null})),r.moveEndCallback&&r.moveEndCallback(t)}),(function(){l.emit("pano.cancel",$o("pano.cancel",{options:r,prevPano:R,progress:0,state:B,userAction:l.userAction,error:null})),r.moveCancelCallback&&r.moveCancelCallback()}))},t.prototype.getForwardObserverOrNot=function(e){var t=this,r=this.camera.getDirection(new n.Vector3),i=this.camera.position.clone(),o=this.works.getResolvedObserver(this.currentPano);if(!o)return null;var a=o.accessibleIds.filter((function(e){if(e===Xe(t.currentPano))return!1;var r=t.works.getResolvedObserver(e);if(!r)return!1;var o=r.standingPosition.clone().sub(i);return 0!==o.length()&&(!(o.angleTo(new n.Vector3(0,-1,0))<Math.PI/12)&&(r.loadable||r.active))})),s=(e?e.ray.direction.clone():r.clone()).setY(0);if(0===s.length())return null;for(var l=a.slice().sort((function(e,r){var n=t.works.getResolvedObserver(e).position.clone().setY(i.y),o=t.works.getResolvedObserver(r).position.clone().setY(i.y);return n.distanceTo(i)-o.distanceTo(i)})),u=0,c=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];u<c.length;u++)for(var d=c[u],p=0,h=l;p<h.length;p++){var f=h[p],v=this.works.getResolvedObserver(f);if(v){var A=v.position.clone().setY(i.y).sub(i);if(A&&0!==A.length()&&s.angleTo(A)<d)return v}}return null},t.prototype.onTapGesture=function(e){var t,r=this;this.userAction=e.userAction,this.stopMomentumMovement();var i=e.center.raycaster,o=this.camera.getDirection(new n.Vector3).setY(0),a=null,s=this.works.getResolvedObserver(this.currentPano);if(s){var l=s.accessibleIds.filter((function(e){if(e===Xe(r.currentPano))return!1;var t=r.works.getResolvedObserver(e);return!!t&&(!(t.position.distanceTo(r.camera.position)>r.maxAccessibleDistance)&&(t.loadable||t.active))})),u=i.intersectObject(this.boundingMesh,!0)[0];if(u){var c=na(l,(function(e){var t=r.works.getResolvedObserver(e).standingPosition.clone();return t.clone().sub(r.camera.position).setY(0).angleTo(o)>Math.PI/2?1/0:t.distanceTo(u.point)}),!0),d=c[0],p=c[1];d&&p<this.panoTapTriggerRadius&&(a=null!==(t=this.works.getResolvedObserver(d))&&void 0!==t?t:null)}a||(a=this.getForwardObserverOrNot(i));for(var h=0,f=this.locationMotion.keyframes;h<f.length;h++){var v=f[h],A=this.panoResourceFromLocationMotionKeyframe(v);if(!(v.progress<this.locationMotion.progress)&&(a&&A.panoId===a.panoId)){a=null;break}}if(a){for(var m={},g=Math.PI/6,y=Math.PI/12,b=new n.Vector3(0,1,0),x=a.position.clone().setY(0).sub(s.position.clone().setY(0)).normalize(),w=x.clone().applyAxisAngle(b,g),M=x.clone().applyAxisAngle(b,-g),E=[],C=[],S=[],I=0,P=a.accessibleIds;I<P.length;I++){var T=Je(d=P[I]);if(!Ze(T,this.currentPano)&&!Ze(T,a.pano)){var B=this.works.getResolvedObserver(d);if(B){var R=B.position.clone().sub(a.position).setY(0);x.angleTo(R)<g?S.push(R):w.angleTo(R)<g?E.push(R):M.angleTo(R)<g&&C.push(R)}}}var O=(S.length>0?S:ue(ue([],E,!0),C,!0)).slice().sort((function(e,t){return e.angleTo(x)-t.angleTo(x)}))[0];O&&O.angleTo(o)>y&&(m.longitude=Math.atan2(-O.x,-O.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(m.latitude=Dr(0,this.minLatitude,this.maxLatitude));var k=ie({},e.state);if(k.workCode=a.pano.workCode,k.panoIndex=a.pano.panoIndex,void 0!==m.longitude&&(k.longitude=m.longitude),void 0!==m.latitude&&(k.latitude=m.latitude),void 0!==m.fov&&(k.fov=m.fov),k.distance=0,k.offset=a?a.position.clone():new n.Vector3,e.state=k,this.emit("gesture.tap",e),!e.defaultPrevented){if(this.emit("pano.select",$o("pano.select",{prevPano:this.currentPano,state:k,userAction:e.userAction,options:m,progress:0,error:null})),a&&!a.active){var D=a.panoId;this.panoMeshes[D]&&(this.panoMeshes[D].setDisabled(!1),this.panoMeshes[D].setLoading(!0))}a&&a.active&&this.emit("pano.request",$o("pano.request",{userAction:!0,prevPano:this.currentPano,progress:0,state:k,options:m,error:null}))}}else this.emit("gesture.tap",e),e.defaultPrevented||!0===this.locationMotion.ended&&this.cameraBounce()}},t}(ma),Us=function(){return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("}rpvv|{-zrqvz}-sy|nH}rpvv|{-zrqvz}-v{Hnvor-rp@-}|vv|{Hnvor-rp?-H{vs|z-znA-}|wrpv|{ZnvH{vs|z-znA-z|qrycvrZnvHn\bv{t-rp?-bH|vq-znv{56-\nb-J-HrpA-z]|vv|{-J-z|qrycvrZnv-7-rpA5}|vv|{9>;=6Htyl]|vv|{-J-}|wrpv|{Znv-7-z]|vv|{H\f"),zs=function(){return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("0rr{v|{-TYlRealsntlqr}u-G-r{noyr<<-<<-nqn}rq-s|z-ur-RQY-unqr-p|qr-s|z-Puvvn{-O|pur{\b-v{-py|q-p|z}nrG<<-u}G<<tvuo;p|z<py|qp|z}nr<{x<rr<znr<}ytv{<\0RQY<unqr<RQY<<}rpvv|{-zrqvz}-sy|nH}rpvv|{-zrqvz}-v{H{vs|z-sy|n-prr{dvquH{vs|z-sy|n-prr{UrvtuH{vs|z-rp?-{rvtuo|h[RVTUO\\b_lP\\b[ajH{vs|z-sy|n-rqy`r{tuH{vs|z-sy|n-nqvH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-[rnH{vs|z-sy|n-SnH{vs|z-znA-]|wH{vs|z-nz}yr?Q-RQYP|y|H{vs|z-nz}yr?Q-RQYQr}uHn\bv{t-rp?-bHsy|n-r}|{r5sy|n-qr}u6\nrp?-_nqv-J-nqv-<-rp?5prr{dvqu9-prr{Urvtu6Hsy|n-z-J-=;=Hs|5v{-v-J-=H-v-I-[RVTUO\\b_lP\\b[aH-v886\nrp?-[rvtuo|-J-b-8-_nqv-7-{rvtuo|hvjHsy|n-{rvtuo|Qr}u-J-rr?Q5RQYP|y|9-[rvtuo|6;nH{rvtuo|Qr}u-J-5{rvtuo|Qr}u-JJ->;=6-L-=;=-G-{rvtuo|Qr}uHvs5{rvtuo|Qr}u-.J-=;=6\nvs5qr}u-JJ-=;=6\nz-8J->==;=H\fryr\nz-8J-zn5=;=9-qr}u-:-{rvtuo|Qr}u6H\f\f\fr{-z-<-sy|n5[RVTUO\\b_lP\\b[a6H\f|vq-znv{56\nrpA-pRQY-J-rr?Q5RQYP|y|9-b6H--sy|n-qr}u-J-pRQY;nHqr}u-J-5qr}u-JJ->;=6-L-=;=-G-qr}uHsy|n-r-J-r}|{r5qr}u6Hsy|n-unqr-J-r}5:r-7-@==;=-7-rqy`r{tu6HtylSntP|y|-J-rpA5pRQY;to-7-unqr9-|}npv\b6H\n-<<-vr-rtyn-u\b}ro|yvp-qr}u-nyr-|-qr}u-ossrsy|n-qy-J-}|5?;=9-qr}u6HrpA-q}-J-]|w-7-rpA5=;=9-=;=9-:qy9->;=6Hsy|n-}\t-J-q};\t-<-q};Hsy|n-sntQr}u-J-5}\t-8->;=6-<-?;=HtylSntQr}uRea-J-sntQr}uH\fvs5qr}u-JJ-=;=6\nqvpnqH\f\f"),qs=function(e){function t(t){var r=e.call(this)||this;return r.uniforms={screenWidth:Hs("f",0),screenHeight:Hs("f",0),edlStrength:Hs("f",1),uNear:Hs("f",1),uFar:Hs("f",1),radius:Hs("f",1),neighbours:Hs("2fv",new Float32Array),depthMap:Hs("t",new n.Texture),uEDLColor:Hs("t",new n.Texture),uEDLDepth:Hs("t",new n.Texture),opacity:Hs("f",1),uProj:Hs("Matrix4fv",new Float32Array)},r.neighbourCount=8,r.updateShaderSource(),r.transparent=!0,r}return ne(t,e),t.prototype.getUniform=function(e){return void 0===this.uniforms?void 0:this.uniforms[e].value},t.prototype.setUniform=function(e,t){void 0!==this.uniforms&&(this.uniforms[e].value=t)},t.prototype.getDefines=function(){var e="";return e+="#define NEIGHBOUR_COUNT "+this.neighbourCount+"\n"},t.prototype.updateShaderSource=function(){var e=this.getDefines()+Us,t=this.getDefines()+zs;this.setValues({vertexShader:e,fragmentShader:t}),this.needsUpdate=!0},oe([_s("screenWidth"),ae("design:type",Number)],t.prototype,"screenWidth",void 0),oe([_s("screenHeight"),ae("design:type",Number)],t.prototype,"screenHeight",void 0),oe([_s("edlStrength"),ae("design:type",Number)],t.prototype,"edlStrength",void 0),oe([_s("uNear"),ae("design:type",Number)],t.prototype,"uNear",void 0),oe([_s("uFar"),ae("design:type",Number)],t.prototype,"uFar",void 0),oe([_s("radius"),ae("design:type",Number)],t.prototype,"radius",void 0),oe([_s("neighbours",!0),ae("design:type",Float32Array)],t.prototype,"neighbours",void 0),oe([_s("depthMap"),ae("design:type",n.Texture)],t.prototype,"depthMap",void 0),oe([_s("uEDLColor"),ae("design:type",n.Texture)],t.prototype,"uEDLColor",void 0),oe([_s("uEDLDepth"),ae("design:type",n.Texture)],t.prototype,"uEDLDepth",void 0),oe([_s("uProj"),ae("design:type",Array)],t.prototype,"uProj",void 0),t}(n.RawShaderMaterial);function Hs(e,t){return{type:e,value:t}}function _s(e,t){return void 0===t&&(t=!1),function(r,n){Object.defineProperty(r,n,{get:function(){return this.getUniform(e)},set:function(r){r!==this.getUniform(e)&&(this.setUniform(e,r),t&&this.updateShaderSource())}})}}var js=new n.OrthographicCamera(-1,1,1,-1,0,1),Gs=new n.BufferGeometry;Gs.setAttribute("position",new n.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),Gs.setAttribute("uv",new n.Float32BufferAttribute([0,2,0,0,2,0],2));var Ks=new n.Mesh(Gs),Ws=new n.Scene;Ws.add(Ks);var Ys=function(e){function t(t,r,i,o){var a=e.call(this,t,r,i,o)||this;return a.sharedV2=new n.Vector2,a.renderer=t,a.material=new qs,Ks.material=a.material,a}return ne(t,e),t.prototype.render=function(e){var t=this.camera,r=this.material.uniforms,n=this.renderer.getSize(this.sharedV2);r.screenWidth.value=n.x,r.screenHeight.value=n.y;var i=t.projectionMatrix,o=new Float32Array(16);o.set(i.elements);for(var a=new Float32Array(2*this.material.neighbourCount),s=0;s<this.material.neighbourCount;s++)a[2*s+0]=Math.cos(2*s*Math.PI/this.material.neighbourCount),a[2*s+1]=Math.sin(2*s*Math.PI/this.material.neighbourCount);r.neighbours.value=a,r.uNear.value=t.near,r.uFar.value=t.far,r.uEDLColor.value=e[0].texture,r.uProj.value=o,r.edlStrength.value=1,r.radius.value=1,r.opacity.value=1,this.renderer.setRenderTarget(null),this.renderer.render(Ws,js)},t.prototype.dispose=function(){this.copyPass.dispose()},t}(Pa),Xs=function(){return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("}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-\n<<-sy|n-qr}u-J-rr?Q5Qr}uZn}9-b6;H<<-vs5qr}u-KJ->;=6\n<<-qvpnqH<<-\f<<-tylSntP|y|-J-rpA5qr}u9->;=9-=;=9->;=6HrpA-p|y|-J-rr?Q5drvtuZn}9-b6H-p|y|-J-p|y|-<-p|y|;HtylSntP|y|-J-rpA5p|y|;\b\t9->;=6H-<<-tylSntQr}uRea-J-qr}uH\f"),Js=function(){return arguments[0].split("").map((function(e){return e.charCodeAt(0)>126?e:String.fromCharCode((e.charCodeAt(0)+113)%126)})).join("")}("}rpvv|{-zrqvz}-sy|nH}rpvv|{-zrqvz}-v{Hnvor-rp@-}|vv|{Hnvor-rp?-H{vs|z-znA-}|wrpv|{ZnvH{vs|z-znA-z|qrycvrZnvHn\bv{t-rp?-bH|vq-znv{56-\nb-J-Htyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-rpA5}|vv|{9>;=6H\f"),Zs=function(e){function t(t){var r=e.call(this,{vertexShader:Js,fragmentShader:Xs})||this;return r.uniforms={uDepthMap:$s("t",null),uWeightMap:$s("t",null)},r.depthTest=!0,r.depthWrite=!0,r.opacity=1,r}return ne(t,e),t.prototype.getUniform=function(e){return void 0===this.uniforms?void 0:this.uniforms[e].value},t.prototype.setUniform=function(e,t){void 0!==this.uniforms&&(this.uniforms[e].value=t)},oe([el("uDepthMap"),ae("design:type",Number)],t.prototype,"uDepthMap",void 0),oe([el("uWeightMap"),ae("design:type",Number)],t.prototype,"uWeightMap",void 0),t}(n.RawShaderMaterial);function $s(e,t){return{type:e,value:t}}function el(e,t){return void 0===t&&(t=!1),function(r,n){Object.defineProperty(r,n,{get:function(){return this.getUniform(e)},set:function(r){r!==this.getUniform(e)&&(this.setUniform(e,r),t&&this.updateShaderSource())}})}}var tl=new n.OrthographicCamera(-1,1,1,-1,0,1),rl=new n.BufferGeometry;rl.setAttribute("position",new n.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),rl.setAttribute("uv",new n.Float32BufferAttribute([0,2,0,0,2,0],2));var nl=new n.Mesh(rl),il=new n.Scene;il.add(nl);var ol=function(e){function t(t,r,i,o){var a=e.call(this,t,r,i,o)||this;return a.sharedV2=new n.Vector2,a.renderer=t,a.material=new Zs,a.scene=r,a.camera=i,nl.material=a.material,a}return ne(t,e),t.prototype.render=function(e){var t=this.material.uniforms;this.renderer.setRenderTarget(e[1]),this.models.setMaterial({useHQWeight:!0,useHQDepth:!1}),this.models.update(this.renderer,this.camera,"Mapview"),this.renderer.render(this.scene,this.camera),t.uWeightMap.value=e[1].texture,this.renderer.setRenderTarget(null),this.renderer.render(il,tl),this.models.setMaterial({useHQWeight:!1,useHQDepth:!0}),this.models.update(this.renderer,this.camera,"Mapview")},t.prototype.dispose=function(){this.copyPass.dispose()},t}(Pa),al=Number.MAX_VALUE||1/0,sl=function(e){function t(r){var i,o=this,a=t.parseArgs(r);return(o=e.call(this,a)||this).mode="Mapview",o.defaultLatitude=a.defaultLatitude,o.defaultDistance=a.defaultDistance,o.maxLatitude=a.maxLatitude,o.minLatitude=a.minLatitude,o.locationMotion=new Io({x:o.camera.pose.offset.x,y:o.camera.pose.offset.y,z:o.camera.pose.offset.z,distance:o.camera.pose.distance,modelAlpha:null!==(i=o.models.getMaterial().modelAlpha)&&void 0!==i?i:0,perspToOrtho:o.camera.perspToOrtho.x,orthoDistance:o.camera.orthoDistance}),o.intersectMeshCreator=a.intersectMeshCreator,o.intersectMesh=o.intersectMeshCreator(),o.intersectMesh.name="intersect",o.intersectMesh.visible=!1,o.currentTapId=null,o.helper.add(o.intersectMesh),o.edlTarget=new n.WebGLRenderTarget(1024,1024,{minFilter:n.NearestFilter,magFilter:n.NearestFilter,format:n.RGBAFormat,type:n.FloatType,depthTexture:new n.DepthTexture(1024,1024,n.UnsignedIntType)}),o.edlEffect=new Ys(o.renderer,o.scene,o.camera,o.models),o.hqEffect=new ol(o.renderer,o.scene,o.camera,o.models),o}return ne(t,e),t.parseArgs=function(r){var n,i,o,a,s;if(r instanceof t)return r;var l=e.parseArgs.call(this,r);return ie(ie({},l),{defaultLatitude:null!==(n=r.defaultLatitude)&&void 0!==n?n:Math.PI/4,defaultDistance:null!==(i=r.defaultDistance)&&void 0!==i?i:50,maxLatitude:null!==(o=r.maxLatitude)&&void 0!==o?o:+Math.PI/2,minLatitude:null!==(a=r.minLatitude)&&void 0!==a?a:0,intersectMeshCreator:null!==(s=r.intersectMeshCreator)&&void 0!==s?s:function(){return new Vo}})},t.distanceFromModel=function(e,t,r){var n=e.bounding,i=Math.pow(Math.pow(n.max.x-n.min.x+1,2)+Math.pow(n.max.y-n.min.y+1,2)+Math.pow(n.max.z-n.min.z+1,2),.5),o=i/2/Math.tan(Math.PI*t/360);return r<1&&(o/=r),isNaN(o)?i:o},t.initAnimationEndState=function(e){var r,i,o,a,s,l,u,c,d,p,h,f=this.parseArgs(e),v=f.works,A=f.models,m=e.initial,g=m.state,y=m.currentState,b="number"==typeof g.panoIndex?{workCode:null!==(o=null!==(r=g.workCode)&&void 0!==r?r:null===(i=f.works[0])||void 0===i?void 0:i.workCode)&&void 0!==o?o:"",panoIndex:g.panoIndex}:{workCode:y.workCode,panoIndex:y.panoIndex},x=null!==(a=g.fov)&&void 0!==a?a:60,w=null!==(s=g.longitude)&&void 0!==s?s:y.longitude,M=Dr(null!==(l=g.latitude)&&void 0!==l?l:function(e){switch(e){case"Floorplan":case"Mapview":return!0;default:return!1}}(y.mode)?y.latitude:f.defaultLatitude,f.minLatitude,f.maxLatitude),E=Dr(null!==(u=g.distance)&&void 0!==u?u:f.defaultDistance,0,t.distanceFromModel(f.models,x,f.camera.aspect)),C=null!==(h=null!==(d=null===(c=g.offset)||void 0===c?void 0:c.clone())&&void 0!==d?d:null===(p=v.getResolvedObserver(b))||void 0===p?void 0:p.position.clone())&&void 0!==h?h:new n.Vector3;A.bounding.containsPoint(C)||A.bounding.getCenter(C);var S=A.bounding.getSize(new n.Vector3);return S.x*S.z<400&&A.bounding.getCenter(C),ie(ie({},b),{mode:"Mapview",longitude:w,latitude:M,fov:x,offset:C,distance:E})},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.panState,this.intersectMesh.dispose(),this.helper.remove(this.intersectMesh)},t.prototype.isReady=function(){return!1!==this.locationMotion.ended&&e.prototype.isReady.call(this)},t.prototype.updateWork=function(e,r,n,i){var o,a,s;this.userAction=i,this.works=e;var l=t.initAnimationEndState(ie(ie({},this),{initial:{currentState:ie(ie({},this.currentPano),this.camera.pose),duration:n,state:r,userAction:i}}));this.currentPano={workCode:l.workCode,panoIndex:l.panoIndex};var u={longitude:l.longitude,latitude:l.latitude,fov:l.fov},c={x:null===(o=l.offset)||void 0===o?void 0:o.x,y:null===(a=l.offset)||void 0===a?void 0:a.y,z:null===(s=l.offset)||void 0===s?void 0:s.z,distance:l.distance};return this.locationMotion.set(c,n).catch(fe),this.cameraMotion.set(u,n).catch(fe),!0},t.prototype.updateModel=function(t){e.prototype.updateModel.call(this,t)},t.prototype.updateTime=function(e,t){if(!this.destroyed){var r={},i={};this.locationMotion.ended||(this.locationMotion.update(e),r.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Dr(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,i.distance=this.locationMotion.value.distance,i.offset=new n.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),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),ia(r)||this.models.setMaterial(r),ia(i)||this.setCamera(i)}},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(Ae())[1],t=this.locationMotion.getKeyFrameSegment(Ae())[1];return ie(ie({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,distance:t.value.distance,offset:new n.Vector3(t.value.x,t.value.y,t.value.z)})},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise((function(r){var n=e.initial;n.state,n.currentState;var i=n.duration,o=n.userAction;e.userAction=o;var a=t.initAnimationEndState(e),s={longitude:a.longitude,latitude:a.latitude,fov:a.fov},l={x:a.offset.x,y:a.offset.y,z:a.offset.z,distance:a.distance,modelAlpha:1,perspToOrtho:0,orthoDistance:a.distance};e.emit("initAnimation.start",$o("initAnimation.start",{state:a,userAction:e.userAction})),e.cameraMotion.set(s,i).catch(fe),e.locationMotion.set(l,i).then((function(){e.emit("initAnimation.end",$o("initAnimation.end",{state:a,userAction:e.userAction}))}),(function(t){var r=ie(ie(ie({},e.currentPano),{mode:e.mode}),oa(e.camera.pose));e.emit("initAnimation.end",$o("initAnimation.end",{state:r,userAction:e.userAction}))})).then((function(){r()}))}))},t.prototype.getForwardObserverOrNot=function(e){var t=this.models.intersectRaycaster(e)[0];if(!t)return null;var r=na(this.works.resolvedObservers,(function(e){return e.standingPosition.distanceTo(t.point)}),!0),n=r[0],i=r[1];return n&&i<10?n:null},t.prototype.coordinatesForOffset=function(e){var t=this.cameraMotion.value.fov,r=this.camera.aspect,i=this.renderer.getSize(new n.Vector2);return{longitude:2*e.x/(i.x*this.scissor.width)*t/95*r,latitude:-2*e.y/(i.y*this.scissor.height)*t/95}},t.prototype.requestMomentumMovement=function(e,t,r,i){var o=this;if(null!==this.inMomentumMovement){for(var a=ie({},r),s={longitude:0,latitude:0,x:0,y:0,z:0},l=0;l<i;l++)a.longitude*=.996,a.latitude*=.994008,a.x*=.99,a.y*=.99,a.z*=.99,s.longitude+=a.longitude,s.latitude+=a.latitude,s.x+=a.x,s.y+=a.y,s.z+=a.z;var u=Ko(this.cameraMotion.value.longitude+s.longitude),c=Dr(this.cameraMotion.value.latitude+s.latitude,this.minLatitude,this.maxLatitude),d=Dr(this.locationMotion.value.x+s.x,this.models.bounding.min.x,this.models.bounding.max.x),p=Dr(this.locationMotion.value.y+s.y,this.models.bounding.min.y,this.models.bounding.max.y),h=Dr(this.locationMotion.value.z+s.z,this.models.bounding.min.z,this.models.bounding.max.z),f=ie(ie({},this.currentPano),{mode:this.mode,longitude:u,latitude:c,offset:new n.Vector3(d,p,h),fov:this.cameraMotion.value.fov,distance:this.camera.pose.distance}),v=!(Math.abs(a.longitude)>1e-4||Math.abs(a.latitude)>1e-4||Math.abs(a.x)>1e-4||Math.abs(a.y)>1e-4||Math.abs(a.z)>1e-4),A=$o("gesture.momentum",ie(ie({},e),{isFirst:t,isFinal:v,state:f}));this.inMomentumMovement.event=A,this.emit("gesture.momentum",A),e.defaultPrevented?this.inMomentumMovement=null:this.inMomentumMovement&&(this.cameraMotion.set({longitude:u,latitude:c},0).catch(fe),this.locationMotion.set({x:f.offset.x,y:f.offset.y,z:f.offset.z},0).catch(fe),v?this.inMomentumMovement=null:Ne.shared.add((function(t,r){o.requestMomentumMovement(e,!1,a,0|r)}),!0,1))}},t.prototype.fixFinalState=function(e){var t=Ht(e,new n.Vector3),r=(new n.Vector3).copy(e.offset).sub(t.clone().multiplyScalar(e.distance)),i=new n.Raycaster(r,t);i.near=.5;var o=this.models.intersectRaycaster(i)[0];o&&(e.distance=Dr(o.distance,0,al),e.offset.copy(r).add(t.clone().multiplyScalar(e.distance)))},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var t=e.pointers.length,r=this.panState,i=0;"mouse"===e.pointerType&&(i=e.srcEvent.buttons),r&&0===i&&0!==r.buttons&&(i=r.buttons);var o=null==r?void 0:r.target;if(!o){var a=this.relativeClientPosition(e.center),s=new n.Raycaster;s.setFromCamera(a,this.camera),s.near=.5,o=(new n.Vector3).copy(s.ray.direction).multiplyScalar(3).add(s.ray.origin);var l=this.models.intersectRaycaster(s)[0];if(l)o.copy(l.point);else{var u=(new n.Vector3).copy(this.camera.pose.offset).sub(this.camera.position),c=(new n.Plane).setFromNormalAndCoplanarPoint(u,this.camera.pose.offset);s.ray.intersectPlane(c,o)}}if(e.isFinal?delete this.panState:this.panState={target:o,buttons:i,pointerLength:t,x:e.center.x,y:e.center.y},void 0!==r&&r.pointerLength===t)if(t>1||2===i){var d={x:e.center.x-r.x,y:e.center.y-r.y},p=(new n.Vector3).copy(this.camera.position).sub(r.target).length();p*=Math.tan(this.camera.fov/2*Math.PI/180);var h=(new n.Vector3).copy(this.camera.pose.offset),f=2*d.x*p/this.element.clientHeight,v=2*d.y*p/this.element.clientHeight,A=new n.Vector3;A.setFromMatrixColumn(this.camera.matrix,0),A.multiplyScalar(-f),h.add(A),this.camera.pose.latitude<Math.PI/12?A.setFromMatrixColumn(this.camera.matrix,1):(A.setFromMatrixColumn(this.camera.matrix,0),A.crossVectors(this.camera.up,A)),A.multiplyScalar(v),h.add(A),h.clamp(this.models.bounding.min,this.models.bounding.max);var m=ie(ie({},this.currentPano),{mode:this.mode,longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:h,distance:this.camera.pose.distance});if(e.state=m,this.emit("gesture.pan",e),e.defaultPrevented)return;if(this.locationMotion.set({x:m.offset.x,y:m.offset.y,z:m.offset.z},0).catch(fe),e.isFinal&&(this.fixFinalState(m),this.locationMotion.set({distance:m.distance,x:m.offset.x,y:m.offset.y,z:m.offset.z},0).catch(fe)),e.isFinal){var g=2*e.velocityX*p/this.element.clientHeight,y=2*e.velocityY*p/this.element.clientHeight,b=new n.Vector3,x=new n.Vector3;b.setFromMatrixColumn(this.camera.matrix,0),b.multiplyScalar(-g),x.add(b),this.camera.pose.latitude<Math.PI/4?b.setFromMatrixColumn(this.camera.matrix,1):(b.setFromMatrixColumn(this.camera.matrix,0),b.crossVectors(this.camera.up,b)),b.multiplyScalar(y),x.add(b),this.inMomentumMovement={uuid:Fi()},this.requestMomentumMovement(e,!0,{longitude:0,latitude:0,x:x.x,y:x.y,z:x.z},0)}}else{(d={x:e.center.x-r.x,y:e.center.y-r.y}).x*=-1,d.y*=-1;var w=this.coordinatesForOffset(d),M=Ko(this.cameraMotion.value.longitude+w.longitude),E=Dr(this.cameraMotion.value.latitude+w.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&&(E=this.cameraMotion.value.latitude);m=ie(ie({},this.currentPano),{mode:this.mode,longitude:M,latitude:E,fov:this.camera.pose.fov,offset:this.camera.pose.offset,distance:this.camera.pose.distance});if(e.isFinal&&this.fixFinalState(m),e.state=m,this.emit("gesture.pan",e),e.defaultPrevented)return;if(this.cameraMotion.set({longitude:m.longitude,latitude:m.latitude},0).catch(fe),this.locationMotion.set({distance:m.distance,x:m.offset.x,y:m.offset.y,z:m.offset.z},0).catch(fe),e.isFinal){var C=-1*e.velocityX,S=-1*e.velocityY;this.inMomentumMovement={uuid:Fi()},this.requestMomentumMovement(e,!0,ie(ie({},this.coordinatesForOffset({x:C,y:S})),{x:0,y:0,z:0}),0)}}},t.prototype.onPinchGesture=function(e){var t;this.userAction=e.userAction,this.stopMomentumMovement();var r=null===(t=this.pinchState)||void 0===t?void 0:t.distance;if(e.isFirst)this.pinchState={x:e.center.x,y:e.center.y,distance:this.locationMotion.value.distance};else if(e.isFinal&&(delete this.panState,delete this.pinchState),void 0!==r){var n=Dr(r/e.scale,0,al);e.state.distance=n,this.emit("gesture.pinch",e),e.defaultPrevented||(this.locationMotion.set({distance:n},0).catch(fe),e.type="gesture.pan",this.onPanGesture(e))}},t.prototype.onMouseMove=function(e){var t,r;if(this.intersectMesh.parent&&!this.panState&&(this.emit("gesture.mousemove",e),!e.defaultPrevented)){var i=e.center.raycaster;if(i.near=.5,e.isFinal&&this.intersectMesh.parent&&!0===this.intersectMesh.visible)this.hideIntersectMesh();else{var o=this.models.intersectRaycaster(i)[0],a=$o("intersect.update",{raycaster:i,intersection:null!=o?o:null,object:this.intersectMesh});if(this.emit("intersect.update",a),a.defaultPrevented)this.hideIntersectMesh();else if(o){var s=null!==(r=null===(t=o.face)||void 0===t?void 0:t.normal)&&void 0!==r?r:(new n.Vector3).copy(i.ray.direction).multiplyScalar(-1),l=s.clone().multiplyScalar(.05),u=o.point.clone().add(l);this.intersectMesh.position.copy(u);var c=u.clone().add(l);if(this.intersectMesh.lookAt(c),Math.abs(s.y)>.99){var d=this.camera.position.clone().sub(u);this.intersectMesh.rotation.z=-Math.atan2(d.z,d.x)}this.intersectMesh.visible=!0,this.needsRender=!0}else this.hideIntersectMesh()}}},t.prototype.onMouseWheel=function(e){if(this.userAction=e.userAction,this.stopMomentumMovement(),e.isFinal){var t=e.state;if(this.fixFinalState(t),this.emit("gesture.mousewheel",e),e.defaultPrevented)return;var r={x:t.offset.x,y:t.offset.y,z:t.offset.z,distance:t.distance};this.locationMotion.set(r,0).catch(fe)}else{var n=Dr(this.locationMotion.value.distance-e.center.delta/2,0,al);if(e.state.distance=n,this.emit("gesture.mousewheel",e),e.defaultPrevented)return;this.locationMotion.set({distance:n},0).catch(fe)}},t.prototype.onTapGesture=function(e){var t=this;this.userAction=e.userAction,this.stopMomentumMovement();var r=e.center.raycaster,i=this.getForwardObserverOrNot(r);if(i){var o={longitude:this.camera.pose.longitude,latitude:0},a=ie(ie({},e.state),{mode:"Panorama",workCode:i.pano.workCode,panoIndex:i.pano.panoIndex,longitude:o.longitude,latitude:o.latitude,offset:i?i.position.clone():new n.Vector3,distance:0});if(e.state=a,this.emit("gesture.tap",e),!e.defaultPrevented&&(this.emit("pano.select",$o("pano.select",{prevPano:this.currentPano,state:a,userAction:e.userAction,options:o,progress:0,error:null})),i&&i.active)){var s=this.currentTapId=Fi();this.preloadPano(i.pano).then((function(e){t.currentTapId===s&&t.emit("pano.request",$o("pano.request",{userAction:!0,prevPano:t.currentPano,progress:0,state:a,options:o,error:null}))}))}}else this.emit("gesture.tap",e)},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.needsRender=!0},t.prototype.postProcessing=function(e,t){var r;if(!this.destroyed)return"edl"===t?this.edlEffect.render(e):"hq"===t?null===(r=this.hqEffect)||void 0===r?void 0:r.render(e):void 0},t}(la);function ll(e){return null==e}var ul={type:"move"},cl=function(){function e(){this._targetRay=null,this._grip=null,this._hand=null,this._axes=[0,0]}return e.prototype.getHandSpace=function(){return null===this._hand&&(this._hand=new n.Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand},e.prototype.getTargetRaySpace=function(){return null===this._targetRay&&(this._targetRay=new n.Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new n.Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new n.Vector3),this._targetRay},e.prototype.getGripSpace=function(){return null===this._grip&&(this._grip=new n.Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new n.Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new n.Vector3),this._grip},e.prototype.dispatchEvent=function(e){return null!==this._targetRay&&this._targetRay.dispatchEvent(e),null!==this._grip&&this._grip.dispatchEvent(e),null!==this._hand&&this._hand.dispatchEvent(e),this},e.prototype.disconnect=function(e){return this.dispatchEvent({type:"disconnected",data:e}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this},e.prototype.getAxes=function(){return this._axes},e.prototype.update=function(e,t,r){var i=null,o=null,a=null,s=this._targetRay,l=this._grip,u=this._hand;if(e&&e.gamepad&&e.gamepad.axes&&(this._axes=[e.gamepad.axes[2],e.gamepad.axes[3]]),e&&"visible-blurred"!==t.session.visibilityState)if(null!==s&&null!==(i=t.getPose(e.targetRaySpace,r))&&(s.matrix.fromArray(i.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),i.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(i.linearVelocity)):s.hasLinearVelocity=!1,i.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(i.angularVelocity)):s.hasAngularVelocity=!1,this.dispatchEvent(ul)),u&&e.hand){a=!0;for(var c=0,d=e.hand.values();c<d.length;c++){var p=d[c],h=t.getJointPose(p,r);if(void 0===u.joints[p.jointName]){var f=new n.Group;f.matrixAutoUpdate=!1,f.visible=!1,u.joints[p.jointName]=f,u.add(f)}var v=u.joints[p.jointName];null!==h&&(v.matrix.fromArray(h.transform.matrix),v.matrix.decompose(v.position,v.rotation,v.scale),v.jointRadius=h.radius),v.visible=null!==h}var A=u.joints["index-finger-tip"],m=u.joints["thumb-tip"],g=A.position.distanceTo(m.position);u.inputState.pinching&&g>.025?(u.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!u.inputState.pinching&&g<=.015&&(u.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==l&&e.gripSpace&&null!==(o=t.getPose(e.gripSpace,r))&&(l.matrix.fromArray(o.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),o.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(o.linearVelocity)):l.hasLinearVelocity=!1,o.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(o.angularVelocity)):l.hasAngularVelocity=!1);return null!==s&&(s.visible=null!==i),null!==l&&(l.visible=null!==o),null!==u&&(u.visible=null!==a),this},e}(),dl=function(){function e(e,t,r){var i,o,a,s,l;this.isPanorama=null===(i=null==r?void 0:r.isPanorama)||void 0===i||i,this.machineType=null!==(o=null==r?void 0:r.machineType)&&void 0!==o?o:"Pico",this.renderer=e,this.gl=t,this.enabled=!1,this.session=null,this.referenceSpaceType=null!==(a=null==r?void 0:r.referenceSpaceType)&&void 0!==a?a:"local-floor",this.referenceSpace=null,this.onSessionStartCallback=null!==(s=null==r?void 0:r.onSessionStart)&&void 0!==s?s:fe,this.onSessionEndCallback=null!==(l=null==r?void 0:r.onSessionEnd)&&void 0!==l?l:fe,this.controllers=[new cl,new cl],this.inputSourcesMap=new Map,this.cameraVR=new n.ArrayCamera,this.cameraL=new n.PerspectiveCamera,this.cameraR=new n.PerspectiveCamera,this.cameraL.viewport=new n.Vector4,this.cameraR.viewport=new n.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 n.Vector3,this.cameraRPos=new n.Vector3}return e.prototype.getController=function(e){var t=this.controllers[e];return t||console.warn("no controller find"),t.getTargetRaySpace()},e.prototype.getControllerGrip=function(e){var t=this.controllers[e];return t||console.warn("no controller find"),t.getGripSpace()},e.prototype.getCameras=function(){return{cameraL:this.cameraL,cameraR:this.cameraR,cameraVR:this.cameraVR}},e.prototype.updateCamera=function(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.getInverse(e.matrixWorld)},e.prototype.setProjectionFromUnion=function(e,t,r){this.cameraLPos.setFromMatrixPosition(t.matrixWorld),this.cameraRPos.setFromMatrixPosition(r.matrixWorld);var n=this.cameraLPos.distanceTo(this.cameraRPos),i=t.projectionMatrix.elements,o=r.projectionMatrix.elements,a=i[14]/(i[10]-1),s=i[14]/(i[10]+1),l=(i[9]+1)/i[5],u=(i[9]-1)/i[5],c=(i[8]-1)/i[0],d=(o[8]+1)/o[0],p=a*c,h=a*d,f=n/(-c+d),v=f*-c;t.matrixWorld.decompose(e.position,e.quaternion,e.scale),e.translateX(v),e.translateZ(f),e.matrixWorld.compose(e.position,e.quaternion,e.scale),e.matrixWorldInverse.getInverse(e.matrixWorld);var A=a+f,m=s+f,g=p-v,y=h+(n-v),b=l*s/m*A,x=u*s/m*A;e.projectionMatrix.makePerspective(g,y,b,x,A,m)},e.prototype.getCamera=function(e){this.cameraVR.near=this.cameraR.near=this.cameraL.near=e.near,this.cameraVR.far=this.cameraR.far=this.cameraL.far=e.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 t=e.parent,r=this.cameraVR.cameras;this.updateCamera(this.cameraVR,t);for(var n=0;n<r.length;n++)this.updateCamera(r[n],t);e.matrixWorld.copy(this.cameraVR.matrixWorld);for(var i=e.children,o=(n=0,i.length);n<o;n++)i[n].updateMatrixWorld(!0);return 2===r.length?this.setProjectionFromUnion(this.cameraVR,this.cameraL,this.cameraR):this.cameraVR.projectionMatrix.copy(this.cameraL.projectionMatrix),this.cameraVR},e.prototype.updateInputSources=function(e){if(this.session){for(var t=this.session.inputSources,r=0;r<this.controllers.length;r++)this.inputSourcesMap.set(t[r],this.controllers[r]);for(r=0;r<e.removed.length;r++){var n=e.removed[r];(i=this.inputSourcesMap.get(n))&&(i.dispatchEvent({type:"disconnected",data:n}),this.inputSourcesMap.delete(n))}for(r=0;r<e.added.length;r++){var i;n=e.added[r];(i=this.inputSourcesMap.get(n))&&i.dispatchEvent({type:"connected",data:n})}}else console.warn("session is lose!")},e.prototype.onSessionEvent=function(e){var t=this.inputSourcesMap.get(e.inputSource);t&&t.dispatchEvent({type:e.type})},e.prototype.onSessionEnd=function(){this.inputSourcesMap.forEach((function(e,t){e.disconnect(t)})),this.inputSourcesMap.clear(),this.renderer.setFramebuffer(null),this.renderer.setRenderTarget(this.renderer.getRenderTarget()),this.isPresenting=!1,this.session=null,Ne.shared.setContext(null),this.onSessionEndCallback()},e.prototype.onRequestReferenceSpace=function(e){this.referenceSpace=e,this.isPresenting=!0,this.session&&this.onSessionStartCallback(this.session)},e.prototype.setSession=function(e){var t=this;if(this.session=e,this.session){this.session.addEventListener("select",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("selectstart",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("selectend",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("squeeze",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("squeezestart",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("squeezeend",(function(e){t.onSessionEvent(e)})),this.session.addEventListener("end",(function(e){t.onSessionEnd()}));var r=this.gl.getContextAttributes();this.gl.makeXRCompatible().then((function(){var e={antialias:null==r?void 0:r.antialias,alpha:null==r?void 0:r.alpha,depth:null==r?void 0:r.depth,stencil:null==r?void 0:r.stencil,framebufferScaleFactor:1};if(t.session){switch(t.machineType){case"Pico":t.session.updateRenderState({baseLayer:new XRWebGLLayer(t.session,t.gl,e)});break;case"Oculus":t.session.updateRenderState({layers:[new XRWebGLLayer(t.session,t.gl,e)]});break;default:t.machineType}t.session.requestReferenceSpace(t.referenceSpaceType).then((function(e){t.onRequestReferenceSpace(e)})),t.session.addEventListener("inputsourceschange",(function(e){t.updateInputSources(e)}))}else console.error("session is lose while set session!")}))}},e}(),pl=function(e){function t(){var t=e.call(this)||this;t.type="LineSegmentsGeometry";return t.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),t.setAttribute("position",new n.Float32BufferAttribute([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),t.setAttribute("uv",new n.Float32BufferAttribute([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2)),t}return ne(t,e),t.prototype.applyMatrix4=function(e){var t=this.attributes.instanceStart,r=this.attributes.instanceEnd;return void 0!==t&&(t.applyMatrix4(e),r.applyMatrix4(e),t.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},t.prototype.setPositions=function(e){var t;t=e instanceof Float32Array?e:Array.isArray(e)?new Float32Array(e):new Float32Array;var r=new n.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceStart",new n.InterleavedBufferAttribute(r,3,0)),this.setAttribute("instanceEnd",new n.InterleavedBufferAttribute(r,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this},t.prototype.setColors=function(e){var t;t=e instanceof Float32Array?e:Array.isArray(e)?new Float32Array(e):new Float32Array;var r=new n.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceColorStart",new n.InterleavedBufferAttribute(r,3,0)),this.setAttribute("instanceColorEnd",new n.InterleavedBufferAttribute(r,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 n.WireframeGeometry(e.geometry)),this},t.prototype.fromLineSegments=function(e){var t=e.geometry;if(t instanceof n.Geometry){var r=(new n.BufferGeometry).fromGeometry(t);this.setPositions(r.attributes.position.array)}else t instanceof n.BufferGeometry&&this.setPositions(t.attributes.position.array);return this},t.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new n.Box3);var e=this.attributes.instanceStart,t=this.attributes.instanceEnd;if(void 0!==e&&void 0!==t){var r=new n.Box3;this.boundingBox.setFromBufferAttribute(e),r.setFromBufferAttribute(t),this.boundingBox.union(r)}},t.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new n.Sphere),null===this.boundingBox&&this.computeBoundingBox();var e=this.attributes.instanceStart,t=this.attributes.instanceEnd;if(void 0!==e&&void 0!==t){var r=this.boundingSphere.center;this.boundingBox.getCenter(r);for(var i=0,o=new n.Vector3,a=0,s=e.count;a<s;a++)o.fromBufferAttribute(e,a),i=Math.max(i,r.distanceToSquared(o)),o.fromBufferAttribute(t,a),i=Math.max(i,r.distanceToSquared(o));this.boundingSphere.radius=Math.sqrt(i),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}(n.InstancedBufferGeometry);Object.assign(pl.prototype,{isLineSegmentsGeometry:!0});var hl={uniforms:n.UniformsUtils.merge([n.UniformsLib.common,n.UniformsLib.fog,{linewidth:{value:1},resolution:{value:new n.Vector2(1,1)},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1},opacity:{value:1}}]),vertexShader:"\n\t\t#include <common>\n\t\t#include <color_pars_vertex>\n\t\t#include <fog_pars_vertex>\n\t\t#include <logdepthbuf_pars_vertex>\n\t\t#include <clipping_planes_pars_vertex>\n\n\t\tuniform float linewidth;\n\t\tuniform vec2 resolution;\n\n\t\tattribute vec3 instanceStart;\n\t\tattribute vec3 instanceEnd;\n\n\t\tattribute vec3 instanceColorStart;\n\t\tattribute vec3 instanceColorEnd;\n\n\t\tvarying vec2 vUv;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashScale;\n\t\t\tattribute float instanceDistanceStart;\n\t\t\tattribute float instanceDistanceEnd;\n\t\t\tvarying float vLineDistance;\n\n\t\t#endif\n\n\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t// conservative estimate of the near plane\n\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#ifdef USE_COLOR\n\n\t\t\t\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n\t\t\t#endif\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\n\t\t\t#endif\n\n\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\tvUv = uv;\n\n\t\t\t// camera space\n\t\t\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n\t\t\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\tif ( perspective ) {\n\n\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// clip space\n\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t// ndc space\n\t\t\tvec2 ndcStart = clipStart.xy / clipStart.w;\n\t\t\tvec2 ndcEnd = clipEnd.xy / clipEnd.w;\n\n\t\t\t// direction\n\t\t\tvec2 dir = ndcEnd - ndcStart;\n\n\t\t\t// account for clip-space aspect ratio\n\t\t\tdir.x *= aspect;\n\t\t\tdir = normalize( dir );\n\n\t\t\t// perpendicular to dir\n\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\n\t\t\t// undo aspect ratio adjustment\n\t\t\tdir.x /= aspect;\n\t\t\toffset.x /= aspect;\n\n\t\t\t// sign flip\n\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t// endcaps\n\t\t\tif ( position.y < 0.0 ) {\n\n\t\t\t\toffset += - dir;\n\n\t\t\t} else if ( position.y > 1.0 ) {\n\n\t\t\t\toffset += dir;\n\n\t\t\t}\n\n\t\t\t// adjust for linewidth\n\t\t\toffset *= linewidth;\n\n\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\toffset /= resolution.y;\n\n\t\t\t// select end\n\t\t\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t// back to clip space\n\t\t\toffset *= clip.w;\n\n\t\t\tclip.xy += offset;\n\n\t\t\tgl_Position = clip;\n\n\t\t\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t#include <logdepthbuf_vertex>\n\t\t\t#include <clipping_planes_vertex>\n\t\t\t#include <fog_vertex>\n\n\t\t}\n\t\t",fragmentShader:"\n\t\tuniform vec3 diffuse;\n\t\tuniform float opacity;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashSize;\n\t\t\tuniform float gapSize;\n\n\t\t#endif\n\n\t\tvarying float vLineDistance;\n\n\t\t#include <common>\n\t\t#include <color_pars_fragment>\n\t\t#include <fog_pars_fragment>\n\t\t#include <logdepthbuf_pars_fragment>\n\t\t#include <clipping_planes_pars_fragment>\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\t#include <clipping_planes_fragment>\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\tif ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t#endif\n\n\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\tfloat a = vUv.x;\n\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t}\n\n\t\t\tvec4 diffuseColor = vec4( diffuse, opacity );\n\n\t\t\t#include <logdepthbuf_fragment>\n\t\t\t#include <color_fragment>\n\n\t\t\tgl_FragColor = vec4( diffuseColor.rgb, diffuseColor.a );\n\n\t\t\t#include <tonemapping_fragment>\n\t\t\t#include <fog_fragment>\n\t\t\t#include <premultiplied_alpha_fragment>\n\n\t\t}\n\t\t"},fl=function(e){function t(t){var r=e.call(this,{uniforms:n.UniformsUtils.clone(hl.uniforms),vertexShader:hl.vertexShader,fragmentShader:hl.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(e){this.uniforms.diffuse.value=e}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(e){this.uniforms.linewidth.value=e}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(e){this.uniforms.dashScale.value=e}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(e){this.uniforms.dashSize.value=e}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(e){this.uniforms.gapSize.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}}}),r.setValues(t),r}return ne(t,e),t}(n.ShaderMaterial);Object.assign(fl.prototype,{isLineMaterial:!0});var vl=function(e){function t(t,r){var n=e.call(this)||this;return n.type="LineSegments2",n.geometry=void 0!==t?t:new pl,n.material=void 0!==r?r:new fl({color:16777215*Math.random()}),n}return ne(t,e),t.prototype.computeLineDistances=function(){for(var e=this.geometry,t=e.attributes.instanceStart,r=e.attributes.instanceEnd,i=new Float32Array(2*t.count),o=new n.Vector3,a=new n.Vector3,s=0,l=0,u=t.count;s<u;s++,l+=2)o.fromBufferAttribute(t,s),a.fromBufferAttribute(r,s),i[l]=0===l?0:i[l-1],i[l+1]=i[l]+o.distanceTo(a);var c=new n.InstancedInterleavedBuffer(i,2,1);return e.setAttribute("instanceDistanceStart",new n.InterleavedBufferAttribute(c,1,0)),e.setAttribute("instanceDistanceEnd",new n.InterleavedBufferAttribute(c,1,1)),this},t.prototype.raycast=function(e,t){null===e.camera&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2.');var r=e.ray,i=e.camera,o=i.projectionMatrix,a=this.geometry,s=this.material,l=s.resolution,u=s.linewidth,c=a.attributes.instanceStart,d=a.attributes.instanceEnd,p=new n.Vector4,h=new n.Vector4,f=new n.Vector4,v=new n.Vector3,A=new n.Matrix4,m=new n.Line3,g=new n.Vector3;r.at(1,f),f.w=1,f.applyMatrix4(i.matrixWorldInverse),f.applyMatrix4(o),f.multiplyScalar(1/f.w),f.x*=l.x/2,f.y*=l.y/2,f.z=0,v.copy(f);var y=this.matrixWorld;A.multiplyMatrices(i.matrixWorldInverse,y);for(var b=0,x=c.count;b<x;b++){p.fromBufferAttribute(c,b),h.fromBufferAttribute(d,b),p.w=1,h.w=1,p.applyMatrix4(A),h.applyMatrix4(A),p.applyMatrix4(o),h.applyMatrix4(o),p.multiplyScalar(1/p.w),h.multiplyScalar(1/h.w);var w=p.z<-1&&h.z<-1,M=p.z>1&&h.z>1;if(!w&&!M){p.x*=l.x/2,p.y*=l.y/2,h.x*=l.x/2,h.y*=l.y/2,m.start.copy(p),m.start.z=0,m.end.copy(h),m.end.z=0;var E=m.closestPointToPointParameter(v,!0);m.at(E,g);var C=n.MathUtils.lerp(p.z,h.z,E),S=C>=-1&&C<=1,I=v.distanceTo(g)<.5*u;if(S&&I){m.start.fromBufferAttribute(c,b),m.end.fromBufferAttribute(d,b),m.start.applyMatrix4(y),m.end.applyMatrix4(y);var P=new n.Vector3,T=new n.Vector3;r.distanceSqToSegment(m.start,m.end,T,P),t.push({point:T,pointOnLine:P,distance:r.origin.distanceTo(T),object:this,faceIndex:b})}}}},t}(n.Mesh);Object.assign(vl.prototype,{isLineSegments2:!0});var Al=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.type="Line2",n}return ne(t,e),t}(vl);Object.assign(Al.prototype,{isLine2:!0});var ml=function(e){function t(){var t=e.call(this)||this;return t.type="LineGeometry",t}return ne(t,e),t.prototype.setPositions=function(t){for(var r=t.length-3,n=new Float32Array(2*r),i=0;i<r;i+=3)n[2*i]=t[i],n[2*i+1]=t[i+1],n[2*i+2]=t[i+2],n[2*i+3]=t[i+3],n[2*i+4]=t[i+4],n[2*i+5]=t[i+5];return e.prototype.setPositions.call(this,n),this},t.prototype.setColors=function(t){for(var r=t.length-3,n=new Float32Array(2*r),i=0;i<r;i+=3)n[2*i]=t[i],n[2*i+1]=t[i+1],n[2*i+2]=t[i+2],n[2*i+3]=t[i+3],n[2*i+4]=t[i+4],n[2*i+5]=t[i+5];return e.prototype.setColors.call(this,n),this},t.prototype.fromLine=function(e){var t=e.geometry;if(t instanceof n.Geometry){var r=(new n.BufferGeometry).fromGeometry(t);this.setPositions(r.attributes.position.array)}else t instanceof n.BufferGeometry&&this.setPositions(t.attributes.position.array);return this},t.prototype.copy=function(){return this},t}(pl);Object.assign(ml.prototype,{isLineGeometry:!0});var gl=14467195,yl=null,bl=function(e){function t(t,r){void 0===t&&(t=new n.Vector3),void 0===r&&(r=new n.Vector3);var i=e.call(this)||this;i.type="FiveLine",i.needsRender=!0;var o=new ml,a=new fl({color:gl,linewidth:2,dashScale:20,dashed:!1});i.line=new Al(o,a);var s=new n.BufferGeometry,l=new n.PointsMaterial({color:gl,size:8,map:yl||(yl=(new n.TextureLoader).load("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==")),sizeAttenuation:!1,transparent:!0});return i.points=new n.Points(s,l),i.points.renderOrder=11,i.points.frustumCulled=!1,i.setPoints(t,r),i.add(i.line,i.points),i}return ne(t,e),Object.defineProperty(t,"version",{get:function(){return"6.0.0-alpha.13"},enumerable:!1,configurable:!0}),t.prototype.setPoints=function(e,t){var r=[].concat(e.toArray(),t.toArray());this.points.geometry.setAttribute("position",new n.BufferAttribute(new Float32Array(r),3)),this.line.geometry.setPositions(r),this.line.computeLineDistances(),this.needsRender=!0},t.prototype.getPoints=function(){var e=this.points.geometry.attributes.position.array;return[new n.Vector3(e[0],e[1],e[2]),new n.Vector3(e[3],e[4],e[5])]},t.prototype.setMaterial=function(e){var t=this.line.material;for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];"dashed"===r?(t.dashed=n,n?t.defines.USE_DASH="":delete t.defines.USE_DASH,t.needsUpdate=!0):t[r]=e[r]}this.needsRender=!0},t.prototype.setResolution=function(e,t){var r=this.line.material.resolution;r.x===e&&r.y===t||(r.set(e,t),this.needsRender=!0)},t}(n.Object3D);Object.assign(bl.prototype,{isFiveLine:!0});const xl={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"})};async function wl(e){const t=await fetch(e);if(t.ok)return t.json();throw new Error(t.statusText)}async function Ml(e,t,r=null,n=!0){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No basePath supplied");const i=await async function(e){if(!e)throw new Error("No basePath supplied");return await wl(`${e}/profilesList.json`)}(t);let o;if(e.profiles.some((e=>{const r=i[e];return r&&(o={profileId:e,profilePath:`${t}/${r.path}`,deprecated:!!r.deprecated}),!!o})),!o){if(!r)throw new Error("No matching profile name found");const e=i[r];if(!e)throw new Error(`No matching profile name found and default profile "${r}" missing.`);o={profileId:r,profilePath:`${t}/${e.path}`,deprecated:!!e.deprecated}}const a=await wl(o.profilePath);let s;if(n){let t;if(t="any"===e.handedness?a.layouts[Object.keys(a.layouts)[0]]:a.layouts[e.handedness],!t)throw new Error(`No matching handedness, ${e.handedness}, in profile ${o.profileId}`);t.assetPath&&(s=o.profilePath.replace("profile.json",t.assetPath))}return{profile:a,assetPath:s}}const El={xAxis:0,yAxis:0,button:0,state:xl.ComponentState.DEFAULT};class Cl{constructor(e){this.componentProperty=e.componentProperty,this.states=e.states,this.valueNodeName=e.valueNodeName,this.valueNodeProperty=e.valueNodeProperty,this.valueNodeProperty===xl.VisualResponseProperty.TRANSFORM&&(this.minNodeName=e.minNodeName,this.maxNodeName=e.maxNodeName),this.value=0,this.updateFromComponent(El)}updateFromComponent({xAxis:e,yAxis:t,button:r,state:n}){const{normalizedXAxis:i,normalizedYAxis:o}=function(e=0,t=0){let r=e,n=t;if(Math.sqrt(e*e+t*t)>1){const i=Math.atan2(t,e);r=Math.cos(i),n=Math.sin(i)}return{normalizedXAxis:.5*r+.5,normalizedYAxis:.5*n+.5}}(e,t);switch(this.componentProperty){case xl.ComponentProperty.X_AXIS:this.value=this.states.includes(n)?i:.5;break;case xl.ComponentProperty.Y_AXIS:this.value=this.states.includes(n)?o:.5;break;case xl.ComponentProperty.BUTTON:this.value=this.states.includes(n)?r:0;break;case xl.ComponentProperty.STATE:this.valueNodeProperty===xl.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(n):this.value=this.states.includes(n)?1:0;break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`)}}}class Sl{constructor(e,t){if(!(e&&t&&t.visualResponses&&t.gamepadIndices&&0!==Object.keys(t.gamepadIndices).length))throw new Error("Invalid arguments supplied");this.id=e,this.type=t.type,this.rootNodeName=t.rootNodeName,this.touchPointNodeName=t.touchPointNodeName,this.visualResponses={},Object.keys(t.visualResponses).forEach((e=>{const r=new Cl(t.visualResponses[e]);this.visualResponses[e]=r})),this.gamepadIndices=Object.assign({},t.gamepadIndices),this.values={state:xl.ComponentState.DEFAULT,button:void 0!==this.gamepadIndices.button?0:void 0,xAxis:void 0!==this.gamepadIndices.xAxis?0:void 0,yAxis:void 0!==this.gamepadIndices.yAxis?0:void 0}}get data(){return{id:this.id,...this.values}}updateFromGamepad(e){if(this.values.state=xl.ComponentState.DEFAULT,void 0!==this.gamepadIndices.button&&e.buttons.length>this.gamepadIndices.button){const t=e.buttons[this.gamepadIndices.button];this.values.button=t.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,t.pressed||1===this.values.button?this.values.state=xl.ComponentState.PRESSED:(t.touched||this.values.button>xl.ButtonTouchThreshold)&&(this.values.state=xl.ComponentState.TOUCHED)}void 0!==this.gamepadIndices.xAxis&&e.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=e.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===xl.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>xl.AxisTouchThreshold&&(this.values.state=xl.ComponentState.TOUCHED)),void 0!==this.gamepadIndices.yAxis&&e.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=e.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===xl.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>xl.AxisTouchThreshold&&(this.values.state=xl.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach((e=>{e.updateFromComponent(this.values)}))}}class Il{constructor(e,t,r){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No profile supplied");this.xrInputSource=e,this.assetUrl=r,this.id=t.profileId,this.layoutDescription=t.layouts[e.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach((e=>{const t=this.layoutDescription.components[e];this.components[e]=new Sl(e,t)})),this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const e=[];return Object.values(this.components).forEach((t=>{e.push(t.data)})),e}updateFromGamepad(){Object.values(this.components).forEach((e=>{e.updateFromGamepad(this.xrInputSource.gamepad)}))}}class Pl extends e.Object3D{constructor(){super(),this.motionController=null,this.envMap=null}setEnvironmentMap(e){return this.envMap==e||(this.envMap=e,this.traverse((e=>{e.isMesh&&(e.material.envMap=this.envMap,e.material.needsUpdate=!0)}))),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach((e=>{Object.values(e.visualResponses).forEach((e=>{const{valueNode:t,minNode:r,maxNode:n,value:i,valueNodeProperty:o}=e;t&&(o===xl.VisualResponseProperty.VISIBILITY?t.visible=i:o===xl.VisualResponseProperty.TRANSFORM&&(t.quaternion.copy(r.quaternion).slerp(n.quaternion,i),t.position.lerpVectors(r.position,n.position,i)))}))})))}}function Tl(t,r){!function(t,r){Object.values(t.components).forEach((t=>{const{type:n,touchPointNodeName:i,visualResponses:o}=t;if(n===xl.ComponentType.TOUCHPAD)if(t.touchPointNode=r.getObjectByName(i),t.touchPointNode){const r=new e.SphereGeometry(.001),n=new e.MeshBasicMaterial({color:255}),i=new e.Mesh(r,n);t.touchPointNode.add(i)}else console.warn(`Could not find touch dot, ${t.touchPointNodeName}, in touchpad component ${t.id}`);Object.values(o).forEach((e=>{const{valueNodeName:t,minNodeName:n,maxNodeName:i,valueNodeProperty:o}=e;if(o===xl.VisualResponseProperty.TRANSFORM){if(e.minNode=r.getObjectByName(n),e.maxNode=r.getObjectByName(i),!e.minNode)return void console.warn(`Could not find ${n} in the model`);if(!e.maxNode)return void console.warn(`Could not find ${i} in the model`)}e.valueNode=r.getObjectByName(t),e.valueNode||console.warn(`Could not find ${t} in the model`)}))}))}(t.motionController,r),t.envMap&&r.traverse((e=>{e.isMesh&&(e.material.envMap=t.envMap,e.material.needsUpdate=!0)})),t.add(r)}class Bl{constructor(e=null){this.gltfLoader=e,this.path="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",this._assetCache={},this.gltfLoader||(this.gltfLoader=new yn)}createControllerModel(e){const t=new Pl;let r=null;return e.addEventListener("connected",(e=>{const n=e.data;"tracked-pointer"===n.targetRayMode&&n.gamepad&&Ml(n,this.path,"generic-trigger").then((({profile:e,assetPath:i})=>{t.motionController=new Il(n,e,i);const o=this._assetCache[t.motionController.assetUrl];if(o)r=o.scene.clone(),Tl(t,r);else{if(!this.gltfLoader)throw new Error("GLTFLoader not set.");this.gltfLoader.setPath(""),this.gltfLoader.load(t.motionController.assetUrl,(e=>{this._assetCache[t.motionController.assetUrl]=e,r=e.scene.clone(),Tl(t,r)}),null,(()=>{throw new Error(`Asset ${t.motionController.assetUrl} missing or malformed.`)}))}})).catch((e=>{console.warn(e)}))})),e.addEventListener("disconnected",(()=>{t.motionController=null,t.remove(r),r=null})),t}}var Rl=(new n.Matrix4).makeRotationAxis(new n.Vector3(0,1,0),Math.PI),Ol=new n.Vector3(-1,1,1),kl=function(e){function t(t){var r=e.call(this,t)||this;r.xrManager=new dl(r.renderer,r.renderer.getContext(),{onSessionStart:function(e){r.emit("xr.session.start",$o("xr.session.start",{session:e,machineType:r.xrManager.machineType}))},onSessionEnd:function(){r.emit("xr.session.end",$o("xr.session.end",{session:null,machineType:r.xrManager.machineType}))}}),r.xrControllerRay=[new n.Raycaster,new n.Raycaster],r.pointerLines=[new bl,new bl],"Oculus"===r.xrManager.machineType?r.pointerLines[1].visible=!1:r.pointerLines[0].visible=!1,r.pointerLines.forEach((function(e){e.setMaterial({color:new n.Vector3(1,1,1)}),e.points.material.depthTest=!1})),r.scene.add(r.pointerLines[0],r.pointerLines[1]),r.panoResources={},r.panoResources[r.locationMotion.keyframes[0].key=r.locationMotion.keyframes[1].key=Fi()]={panoId:Xe(r.currentPano),leftPanoPicture:null,position:r.camera.pose.offset.clone(),effect:"fade"},r.parallaxCameraMatrixs=[];var i=Ne.shared.getContext();if(!i)return console.error("获取session失败,请退出重试"),r;r.xrManager.setSession(i),r.controllerWrappers=[new n.Group,new n.Group],r.scene.add(r.controllerWrappers[0],r.controllerWrappers[1]);var o=r.xrManager.getController(0);r.controllerWrappers[0].add(o);var a=r.xrManager.getController(1);r.controllerWrappers[1].add(a);var s=new Bl,l=r.xrManager.getControllerGrip(0);l.add(s.createControllerModel(l)),r.controllerWrappers[0].add(l);var u=r.xrManager.getControllerGrip(1);return u.add(s.createControllerModel(u)),r.controllerWrappers[1].add(u),r.xrControllerState={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}return ne(t,e),t.parseArgs=function(r){if(r instanceof t)return r;var n=ie(ie({},r),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return e.parseArgs.call(this,n)},t.initAnimationEndState=function(t){var r=this.parseArgs(t),n=e.initAnimationEndState.call(this,r);return ie(ie({},n),{mode:"XRPanorama"})},t.prototype.moveToPano=function(e,t,r){var i,o,a,s,l=this;this.userAction=r,this.stopMomentumMovement();var u=this.works.getResolvedObserver(e);if(!u)throw new Error("Invalid PanoIndex");var c=this.imageOptions.size;if(void 0===c&&u){var d=u.images.up.match(/\/cube_(\d+)\//);d&&(c=Number(d[1]))}void 0===c&&(c=2048);var p=this.imageOptions.transform,h=function(e,t){return function(e,t){if(!t)return e;var r=e.match(/\d+_[a-z].png/);return e.substring(0,r.index)+t+"/"+e.substring(r.index)}(je(e,p,t))},f=ie({key:"pano.".concat(u.panoId)},Zn(this.imageOptions,["format","size","quality"])),v=u.images,A=null!==(o=null===(i=u.images.tiles)||void 0===i?void 0:i.filter((function(e){return e.size>c})))&&void 0!==o?o:null,m="pano:"+ei([v,f,p]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===m)return;var g=this.pendingTextureTask.panoId;null===(a=this.panoMeshes[g])||void 0===a||a.setProgress(0),this.emit("pano.texture.abort",$o("pano.texture.abort",{error:null,progress:0,meta:null,pano:u.pano})),this.pendingTextureTask.onError(new Error("texture aborted"))}var y,b=this.models.getMaterial()||{},x=b.pano0,w=b.pano1;if((null==x?void 0:x.map.name)===m?y=x:(null==w?void 0:w.map.name)===m&&(y=w),y){var M={panoId:u.panoId,effect:null!==(s=t.effect)&&void 0!==s?s:"fade",leftPanoPicture:{map:y.map,luminanceMap:y.luminanceMap,matrix:(new n.Matrix4).compose(u.position,u.quaternion,Ol)},position:u.position.clone()};this.doMoveToPano(u.pano,M,t)}else{var E="move-to-pano-"+u.panoId;this.pending.add(E),this.pendingTextureTask={panoId:u.panoId,hash:m,onLoad:function(e){var r;if(l.pending.delete(E),l.destroyed)e.body.dispose();else{e.body.name=m;var i={panoId:u.panoId,effect:null!==(r=t.effect)&&void 0!==r?r:"fade",leftPanoPicture:{map:e.body,luminanceMap:null,matrix:(new n.Matrix4).compose(u.position,u.quaternion,Ol)},position:u.position.clone()};l.doMoveToPano(u.pano,i,t)}},onError:function(e){l.pending.delete(E);var r=ie(ie(ie({},u.pano),{mode:l.mode}),oa(l.camera.pose));l.emit("pano.error",$o("pano.error",{error:e,userAction:l.userAction,options:t,prevPano:l.currentPano,progress:0,state:r})),l.emit("pano.cancel",$o("pano.cancel",{error:null,userAction:l.userAction,options:t,prevPano:l.currentPano,progress:0,state:r})),t.moveCancelCallback&&t.moveCancelCallback()}},Promise.all([this.tileLevelForFov&&A&&A.length?this.textureLoader.loadTiledCubeTexture(v,A,{tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:h,options:f},format:n.RGBAFormat,viaAjax:!0},void 0,void 0,(function(e){var t,r;l.emit("pano.texture.progress",$o("pano.texture.progress",{error:null,progress:e,meta:null,pano:u.pano})),(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===m&&(null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(e))}),this.renderer):this.textureLoader.loadCubeTexture(v,{imageURL:{transform:h,options:f},format:n.RGBAFormat},void 0,void 0,(function(e){var t,r;(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===m&&(null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(e)),l.emit("pano.texture.progress",$o("pano.texture.progress",{error:null,progress:e,meta:null,pano:u.pano}))}),this.renderer)]).then((function(e){var t,r,n=e[0];(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===m?(l.pendingTextureTask.onLoad(n),null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(0),delete l.pendingTextureTask,l.emit("pano.texture.success",$o("pano.texture.success",{error:null,progress:1,meta:n.meta,pano:u.pano}))):n.body.dispose()})).catch((function(e){var t,r;(null===(t=l.pendingTextureTask)||void 0===t?void 0:t.hash)===m&&(l.pendingTextureTask.onError(e),null===(r=l.panoMeshes[u.panoId])||void 0===r||r.setProgress(0),delete l.pendingTextureTask,l.emit("pano.texture.error",$o("pano.texture.error",{error:e,progress:0,meta:null,pano:u.pano})),l.emit("error",e))})),this.emit("pano.texture.load",$o("pano.texture.load",{error:null,progress:0,meta:null,pano:u.pano}))}},t.prototype.doMoveToPano=function(e,t,r){var i,o,a,s=this;void 0===r&&(r={});var l=Ae(),u=Fi();this.panoResources[u]=t;var c,d,p;if(this.locationMotion.ended){var h=this.locationMotion.getKeyFrameSegment(l);h[0];var f=h[1],v=this.locationMotion.value,A=this.panoResourceFromLocationMotionKeyframe(f).position,m=t.position;c=Math.max(A.distanceTo(m),1),d=[{key:f.key,progress:0,value:ie(ie({},v),{count:0})},{key:u,progress:1,value:{distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0,count:1}}],p=0}else{var g=this.locationMotion.getKeyFrameSegment(l),y=g[0],b=(f=g[1],v=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(y).position),x=(A=this.panoResourceFromLocationMotionKeyframe(f).position,m=t.position,f.value.count-v.count),w=Math.max(b.distanceTo(A),1)*x;c=w+Math.max(A.distanceTo(m),1),d=[{key:y.key,progress:0,value:ie({},v)},{key:f.key,progress:w/c,value:f.value},{key:u,progress:1,value:{count:f.value.count+1,distance:0,perspToOrtho:0,orthoDistance:1,modelAlpha:0}}];var M=this.locationMotionKeyframesLength(this.locationMotion.keyframes),E=this.locationMotionKeyframesLength(d);p=this.locationMotion.getProgressVelocity(l)*M/E}var C=this.calculateMovingDuration(r.duration,c),S={longitude:r.longitude,latitude:r.latitude,fov:r.fov},I=ie(ie({},e),{mode:this.mode,longitude:null!==(i=S.longitude)&&void 0!==i?i:this.camera.pose.longitude,latitude:null!==(o=S.latitude)&&void 0!==o?o:this.camera.pose.latitude,fov:null!==(a=S.fov)&&void 0!==a?a:this.camera.pose.fov,offset:t.position.clone(),distance:0}),P=this.currentPano;this.emit("pano.moveTo",$o("pano.moveTo",{options:r,prevPano:P,progress:0,state:I,userAction:this.userAction,error:null})),r.moveStartCallback&&r.moveStartCallback(I),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=fe,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),this.cameraMotion.set(S,C).catch(fe),this.locationMotion.setKeyframes(d,C,p).then((function(){var t,i,o,a=ie(ie({},e),{mode:s.mode,longitude:s.camera.pose.longitude,latitude:s.camera.pose.latitude,fov:s.camera.pose.fov,offset:s.camera.pose.offset.clone(),distance:0});s.emit("pano.arrived",$o("pano.arrived",{options:r,prevPano:P,progress:1,state:a,userAction:s.userAction,error:null})),r.moveEndCallback&&r.moveEndCallback(a);var l=s.works.getResolvedObserver(s.currentPano);if(l&&l.video&&s.videoTexture&&s.videoTexture.image instanceof HTMLVideoElement){var u=Rl.clone().multiply(null!==(o=null===(i=null===(t=s.models.getMaterial())||void 0===t?void 0:t.pano1)||void 0===i?void 0:i.matrix)&&void 0!==o?o:new n.Matrix4).multiply(l.video.matrix),c={map:s.videoTexture,size:l.video.size,matrix:u,alpha:1},d=Fi(),p=s.videoTexture.image;p.setAttribute("uuid",d),ga().then((function(e){e&&l.video&&p.getAttribute("uuid")===d&&(p.oncanplay=function(){p.oncanplay=fe,p.play()},p.ontimeupdate=function(){p.currentTime>.5&&(p.ontimeupdate=fe,s.panoVideo.setMaterial(c))},p.src=l.video.source)})).catch((function(){p.removeAttribute("uuid")}))}}),(function(){s.emit("pano.cancel",$o("pano.cancel",{options:r,prevPano:P,progress:0,state:I,userAction:s.userAction,error:null})),r.moveCancelCallback&&r.moveCancelCallback()}))},t.prototype.checkSelectedPano=function(e){var t,r,i,o,a=this;this.stopMomentumMovement();var s=this.camera.getDirection(new n.Vector3).setY(0),l=null,u=this.works.getResolvedObserver(this.currentPano);if(!u)return null;var c=u.accessibleIds.filter((function(e){var t=Je(e);if(Ze(t,a.currentPano))return!1;var r=a.works.getResolvedObserver(t);return!!r&&(!(r.position.distanceTo(a.camera.position)>a.maxAccessibleDistance)&&(r.loadable||r.active))})),d=this.models.intersectRaycaster(e)[0];if(d){var p=na(c,(function(e){var t=a.works.getResolvedObserver(e);return t?t.standingPosition.clone().distanceTo(d.point):1/0}),!0),h=p[0],f=p[1];h&&f<this.panoTapTriggerRadius&&(l=null!==(t=this.works.getResolvedObserver(h))&&void 0!==t?t:null)}if(ll(l)){var v=this.getForwardObserverOrNot(e);v&&(l=v)}for(var A=0,m=this.locationMotion.keyframes;A<m.length;A++){var g=m[A],y=this.panoResourceFromLocationMotionKeyframe(g);if(!(g.progress<this.locationMotion.progress)&&(l&&y.panoId===l.panoId)){l=null;break}}if(ll(l))return!0===this.locationMotion.ended&&this.cameraBounce(),null;if(l&&!l.active){var b=l.panoId;this.panoMeshes[b]&&(this.panoMeshes[b].setDisabled(!1),this.panoMeshes[b].setLoading(!0))}var x={};if(l){x.effect="fade";for(var w=Math.PI/6,M=Math.PI/12,E=new n.Vector3(0,1,0),C=l.position.clone().setY(0).sub(u.position.clone().setY(0)).normalize(),S=C.clone().applyAxisAngle(E,w),I=C.clone().applyAxisAngle(E,-w),P=[],T=[],B=[],R=0,O=l.accessibleIds;R<O.length;R++){var k=Je(h=O[R]);if(!Ze(k,this.currentPano)&&!Ze(k,l.pano)){var D=this.works.getResolvedObserver(h);if(D){var F=D.position.clone().sub(l.position).setY(0);C.angleTo(F)<w?B.push(F):S.angleTo(F)<w?P.push(F):I.angleTo(F)<w&&T.push(F)}}}var L=(B.length>0?B:ue(ue([],P,!0),T,!0)).slice().sort((function(e,t){return e.angleTo(C)-t.angleTo(C)}))[0];L&&L.angleTo(s)>M&&(x.longitude=Math.atan2(-L.x,-L.z))}this.cameraMotion.value.latitude<-Math.PI/4&&(x.latitude=Dr(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(x.fov=this.defaultFov);var Q={workCode:l.pano.workCode,panoIndex:l.pano.panoIndex,mode:this.mode,longitude:null!==(r=x.longitude)&&void 0!==r?r:this.camera.pose.longitude,latitude:null!==(i=x.latitude)&&void 0!==i?i:this.camera.pose.latitude,fov:null!==(o=x.fov)&&void 0!==o?o:this.camera.pose.fov,distance:0,offset:l?l.position.clone():new n.Vector3};return this.emit("pano.select",$o("pano.select",{prevPano:this.currentPano,state:Q,userAction:!0,options:x,progress:0,error:null})),l&&l.active?(this.emit("pano.request",$o("pano.request",{userAction:!0,prevPano:this.currentPano,progress:0,state:Q,options:x,error:null})),l.pano):null},t.prototype.destroy=function(){e.prototype.destroy.call(this)},t.prototype.isReady=function(){return!1},t.prototype.updateTime=function(e,t){for(var r,i,o,a,s,l,u,c,d=this,p=[],h=2;h<arguments.length;h++)p[h-2]=arguments[h];var f={},v={},A=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),m=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),g=!1;if(!1===this.cameraMotion.ended&&(this.cameraMotion.update(e),v.longitude=this.cameraMotion.value.longitude,v.latitude=this.cameraMotion.value.latitude,v.fov=this.cameraMotion.value.fov),!1===this.locationMotion.ended){this.locationMotion.update(e);var y=this.locationMotion.getKeyFrameSegment(e),b=y[0],x=y[1],w=this.panoResourceFromLocationMotionKeyframe(b),M=this.panoResourceFromLocationMotionKeyframe(x),E=(new n.Vector3).copy(w.position),C=(new n.Vector3).copy(M.position),S=this.locationMotion.value.count-x.value.count+1;f.progress=S,f.modelAlpha=this.locationMotion.value.modelAlpha,this.camera.perspToOrtho.setScalar(Dr(this.locationMotion.value.perspToOrtho,0,1)),this.camera.orthoDistance=this.locationMotion.value.orthoDistance,M.leftPanoPicture&&(S<1?w.leftPanoPicture&&(f.pano0=w.leftPanoPicture):f.pano0=M.leftPanoPicture,f.pano1=M.leftPanoPicture),g=f.useBlackTransition="instant"===M.effect||"montage"===M.effect,"fade"!==M.effect&&"montage"!==M.effect||(f.pano0&&w.leftPanoPicture&&(f.pano0={map:f.pano0.map,luminanceMap:f.pano0.luminanceMap,matrix:w.leftPanoPicture.matrix.clone().setPosition(M.position)}),E.copy(C)),v.distance=this.locationMotion.value.distance,v.offset=new n.Vector3(E.x+(C.x-E.x)*S,E.y+(C.y-E.y)*S,E.z+(C.z-E.z)*S);for(var I=[],P=[],T=0,B=this.locationMotion.keyframes;T<B.length;T++){var R=B[T],O=R.key,k=R.progress;void 0!==O&&(I.push(O),k>=this.locationMotion.progress&&P.push(O))}for(var D=0,F=Object.keys(this.panoResources);D<F.length;D++){var L=F[D];if(!(P.indexOf(L)>=0)){var Q=this.panoResources[L];if(Q.leftPanoPicture){var N=Q.leftPanoPicture.map;if(N){if(N===(null===(r=f.pano0)||void 0===r?void 0:r.map))continue;if(N===(null===(i=f.pano1)||void 0===i?void 0:i.map))continue;N instanceof Dt&&N.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(N.cubeRenderTarget),N.dispose(),Q.leftPanoPicture=null}}I.indexOf(L)>=0||delete this.panoResources[L]}}this.currentPano=Je(M.panoId),this.emit("pano.moving",$o("pano.moving",{userAction:this.userAction,prevPano:Je(A.panoId),state:ie(ie(ie(ie({},Je(m.panoId)),{mode:this.mode}),oa(this.camera.pose)),v),options:{},progress:this.locationMotion.progress,error:null}))}!1===ia(f)&&((null===(o=f.pano0)||void 0===o?void 0:o.map)&&f.pano0.map instanceof Dt&&!f.pano0.map.cubeRenderTarget&&(f.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),(null===(a=f.pano1)||void 0===a?void 0:a.map)&&f.pano1.map instanceof Dt&&!f.pano1.map.cubeRenderTarget&&(f.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),this.models.setMaterial(f)),!1===ia(v)&&this.setCamera(v);var V=p[1];if(V)if(this.xrManager.session){var U=this.xrManager.referenceSpace;if(U){var z=this.xrManager.cameraVR,q=this.xrManager.cameraL,H=this.xrManager.cameraR,_=[q,H],j=V.getViewerPose(U),G=new n.Vector3(0,0,0);if(j){var K;K=this.xrManager.session.renderState.baseLayer;var W=j.views;if(K){this.renderer.setFramebuffer(K.framebuffer);var Y=!1;W.length!==z.cameras.length&&(z.cameras.length=0,Y=!0),this.parallaxCameraMatrixs=[];var X=new n.Vector3,J=new n.Vector3;(new n.Matrix4).fromArray(W[0].transform.matrix).decompose(X,new n.Quaternion,new n.Vector3),(new n.Matrix4).fromArray(W[1].transform.matrix).decompose(J,new n.Quaternion,new n.Vector3),J.clone().sub(X).normalize();var Z=new n.Vector3,$=new n.Quaternion,ee=new n.Vector3;this.camera.matrix.decompose(Z,$,ee);for(var te=0;te<W.length;te++){var re=W[te],ne=K.getViewport(re),oe=_[te];oe.matrix.fromArray(re.transform.matrix);var ae=new n.Vector3,se=new n.Quaternion,le=new n.Vector3;oe.matrix.decompose(ae,se,le),G.copy(Z),oe.position.copy(Z),oe.quaternion.copy(se),oe.scale.copy(le),oe.updateMatrix(),oe.projectionMatrix.fromArray(re.projectionMatrix),oe.viewport.set(ne.x,ne.y,ne.width,ne.height),!0===Y&&z.cameras.push(oe)}j.views[0].transform.position,j.views[1].transform.position;var ue=this.xrManager.session.inputSources;for(te=0;te<this.xrManager.controllers.length;te++){var ce=this.xrManager.controllers[te],de=ue[te];ce.update(de,V,U);var pe=this.xrManager.getController(te),he=new n.Vector3(0,1.2,0),fe=pe.position.clone().add(G).sub(he);this.controllerWrappers[te].position.copy(new n.Vector3(0,0,0).add(G).sub(he)),this.xrControllerRay[te].set(fe,new n.Vector3(0,0,-1).applyEuler(pe.rotation));var ve=this.models.intersectRaycaster(this.xrControllerRay[te]);if(0===ve.length&&(ve=this.xrControllerRay[te].intersectObject(this.boundingMesh,!0)),ve.length>=1&&ve[0].face)if("Oculus"===this.xrManager.machineType?0===te:1===te){var Ae=this.xrControllerRay[te].intersectObject(this.xrCustomObjectsScene,!0),me=ve[0].face.normal,ge=me.clone().multiplyScalar(.05),ye=ve[0].point.clone().add(ge);this.intersectMesh.position.copy(ye);var be=ye.clone().add(ge);if(this.intersectMesh.lookAt(be),Math.abs(me.y)>.99){var xe=this.camera.position.clone().sub(ye);this.intersectMesh.rotation.z=-Math.atan2(xe.z,xe.x)}this.intersectMesh.visible=!0,this.needsRender=!0,Ae.length>0?(this.pointerLines[te].setPoints(fe,Ae[0].point),this.pointerLines[te].points.visible=!0,this.intersectMesh.visible=!1):(this.pointerLines[te].points.visible=!1,this.pointerLines[te].setPoints(fe,ve[0].point));var we=ve[0],Me=$o("intersect.update",{raycaster:null!==(s=this.xrControllerRay[1])&&void 0!==s?s:null,intersection:null!=we?we:null,object:this.intersectMesh});if(this.emit("intersect.update",Me),Me.defaultPrevented)return void this.hideIntersectMesh()}else this.pointerLines[te].setPoints(fe,ve[0].point)}var Ee=this.works.getResolvedObserver(this.currentPano);if(this.camera.pose.distance>.1||g){if(Ee)for(var Ce=0,Se=Object.keys(this.panoMeshes);Ce<Se.length;Ce++){var Ie=Se[Ce];(Fe=this.panoMeshes[Ie]).setOpacity(0),Fe.setCurrent(!1),Fe.updateTime&&Fe.updateTime(e,t)}}else if(Ee){var Pe=na(Ee.visibleIds,(function(e){var t=d.works.getResolvedObserver(e);return t?Ee.standingPosition.distanceTo(t.standingPosition):1/0}),!0),Te=Pe[1];Te=Dr(Te,2.5,1/0);for(var Be=Ee.visibleIds.concat(Xe(this.currentPano)),Re=this.getForwardObserverOrNot(),Oe=this.camera.getDirection(new n.Vector3),ke=0,De=Object.keys(this.panoMeshes);ke<De.length;ke++){Ie=De[ke];var Fe=this.panoMeshes[Ie],Le=this.works.getResolvedObserver(Ie);if(-1===Be.indexOf(Ie))Fe.setCurrent(!1),Fe.setOpacity(0);else if(Le)if(Le.loadable||Le.active){var Qe=Fe.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);Fe.setCurrent(!Fe.loading&&0===Fe.progress&&null!==Re&&Re.panoId===Ie),Fe.setOpacity(Qe<.01?0:Dr(Te/Qe*1.2,.65,.98));var Ne=this.camera.position.clone().setY(Fe.position.y),Ve=(new n.Vector3).copy(Fe.position).sub(Ne).normalize();if(Ie===Xe(this.currentPano)){var Ue=Dr((.5-Ne.distanceTo(Fe.position))/.5,0,1);Ve.multiplyScalar(1-Ue).add(Oe.clone().multiplyScalar(Ue))}Ve.length()>0&&Fe.quaternion.setFromEuler(new n.Euler(0,Math.atan2(Ve.x,Ve.z),0))}else Fe.setCurrent(!1),Fe.setOpacity(0);else Fe.setCurrent(!1),Fe.setOpacity(0);Fe.updateTime&&Fe.updateTime(e,t)}}var ze=function(){if(!1===d.tileLevelForFov)return 0;var e=new n.Vector2(4e3,4e3),t=m.panoId,r=d.works.getResolvedObserver(t),i=d.imageOptions.size;if(void 0===i&&r){var o=r.images.up.match(/\/cube_(\d+)\//);o&&(i=Number(o[1]))}void 0===i&&(i=2048);var a=0;i>=1024&&(a=1),i>=2048&&(a=2),i>=4096&&(a=3),i>=8192&&(a=4);var s=d.tileLevelForFov(q.fov,e);return s>a?s:0}(),qe=function(){var e=new n.PerspectiveCamera;e.applyMatrix4(z.matrix),e.position.set(0,0,0);var t=d.works.getResolvedObserver(m.panoId),r=null!=t?t:Ee;return r&&e.quaternion.premultiply(r.quaternion.clone().inverse()),e.updateProjectionMatrix(),e.updateMatrixWorld(!0),(new n.Frustum).setFromProjectionMatrix((new n.Matrix4).multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse))}();m.panoId===Xe(this.currentPano)&&(null===(l=m.leftPanoPicture)||void 0===l?void 0:l.map)instanceof Dt&&(m.leftPanoPicture.map.update(qe,ze),!0===m.leftPanoPicture.map.needsRender&&(this.needsRender=!0));var He=this.tiling.object.visible;if(ze>this.TILED_CUBE_TEXTURE_LEVEL&&this.initAnimationed){var _e=m.panoId,je=this.works.getResolvedObserver(_e);je&&qo(this.camera.position,je.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==_e&&this.tiling.cleanup(),this.tiling.panoId=_e,this.tiling.setResource(null!==(c=null===(u=je.images)||void 0===u?void 0:u.tiles)&&void 0!==c?c:[],this.enableIOSEDR&&je.images.luminance?je.images.luminance:null),this.tiling.setAllowHosts(je.work.allowHosts),this.tiling.setNetworkSubscribe(this.networkSubscribe),this.tiling.setRequestProxy(this.requestProxy),this.tiling.setRotation(je.quaternion),this.tiling.setPosition(je.position),this.tiling.update(qe,ze,e)):this.tiling.object.visible=!1}else this.tiling.object.visible=!1;He!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0),this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(e),this.updateControllerHelper(ue,e,t)}else console.error("no layer found")}}}else console.error("session丢失,请重试");else console.error("xrFrame丢失,请重试")},t.prototype.render=function(){var e=this.xrManager.getCamera(this.camera);this.renderer.render(this.scene,e)},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,t,r){var n="Oculus"===this.xrManager.machineType?this.xrControllerRay[1]:this.xrControllerRay[0],i="Oculus"===this.xrManager.machineType?this.xrControllerRay[0]:this.xrControllerRay[1];if(e&&2===e.length&&e[0].gamepad&&e[1].gamepad){for(var o={buttons:{X:!1,Y:!1,LeftTrigger:!1,LeftPinch:!1,A:!1,B:!1,RightTrigger:!1,RightPinch:!1}},a=0;a<e.length;a++){var s=e[a].handedness,l=e[a].gamepad;switch(s){case"left":this.emitEvent(-1===l.axes[2],"LeftAxesLeft",t),this.emitEvent(1===l.axes[2],"LeftAxesRight",t),this.emitEvent(-1===l.axes[3],"LeftAxesUp",t),this.emitEvent(1===l.axes[3],"LeftAxesDown",t),this.emitEvent(null==l?void 0:l.buttons[4].pressed,"X",t),this.emitEvent(l.buttons[5].pressed,"Y",t),this.emitEvent(null==l?void 0:l.buttons[0].pressed,"LeftTrigger",t),this.emitEvent(null==l?void 0:l.buttons[1].pressed,"LeftPinch",t);var u={raycaster:n,axes:{up:l.axes[3]<0?Math.abs(l.axes[3]):0,down:l.axes[3]<0?0:Math.abs(l.axes[3]),left:l.axes[2]<0?Math.abs(l.axes[2]):0,right:l.axes[2]<0?0:Math.abs(l.axes[2])},deltaTime:r};o.buttons.X=null==l?void 0:l.buttons[4].pressed,o.buttons.Y=null==l?void 0:l.buttons[5].pressed,o.buttons.LeftTrigger=null==l?void 0:l.buttons[0].pressed,o.buttons.LeftPinch=null==l?void 0:l.buttons[1].pressed,o.left=u;break;case"right":this.emitEvent(-1===l.axes[2],"RightAxesLeft",t),this.emitEvent(1===l.axes[2],"RightAxesRight",t),this.emitEvent(-1===l.axes[3],"RightAxesUp",t),this.emitEvent(1===l.axes[3],"RightAxesDown",t),this.emitEvent(null==l?void 0:l.buttons[4].pressed,"A",t),this.emitEvent(l.buttons[5].pressed,"B",t),this.emitEvent(null==l?void 0:l.buttons[0].pressed,"RightTrigger",t),this.emitEvent(null==l?void 0:l.buttons[1].pressed,"RightPinch",t);var c={raycaster:i,axes:{up:l.axes[3]<0?Math.abs(l.axes[3]):0,down:l.axes[3]<0?0:Math.abs(l.axes[3]),left:l.axes[2]<0?Math.abs(l.axes[2]):0,right:l.axes[2]<0?0:Math.abs(l.axes[2])},deltaTime:r};o.right=c,o.buttons.A=null==l?void 0:l.buttons[4].pressed,o.buttons.B=null==l?void 0:l.buttons[5].pressed,o.buttons.RightTrigger=null==l?void 0:l.buttons[0].pressed,o.buttons.RightPinch=null==l?void 0:l.buttons[1].pressed}}this.emit("xr.controller.update",$o("xr.controller.update",o))}},t.prototype.emitEvent=function(e,t,r){var n="Oculus"===this.xrManager.machineType?this.xrControllerRay[1]:this.xrControllerRay[0],i="Oculus"===this.xrManager.machineType?this.xrControllerRay[0]:this.xrControllerRay[1];if(e)!1===this.xrControllerState[t].touchStart?(this.xrControllerState[t].touchStartTime=r,this.xrControllerState[t].touchStart=!0,this.emit("xr.gesture.buttonDown",$o("xr.gesture.buttonDown",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:t,isFinal:!1,isFirst:!0,controllers:{raycaster:{leftRay:n,rightRay:i}}}))):r-this.xrControllerState[t].touchStartTime>300&&this.emit("xr.gesture.press",$o("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:t,isFinal:!0,isFirst:!0,controllers:{raycaster:{leftRay:n,rightRay:i}}}));else if(!0===this.xrControllerState[t].touchStart){if(this.emit("xr.gesture.buttonUp",$o("xr.gesture.buttonUp",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:t,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:n,rightRay:i}}})),r-this.xrControllerState[t].touchStartTime<=300)this.emit("xr.gesture.tap",$o("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:t,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:n,rightRay:i}}}))||"RightTrigger"===t&&this.checkSelectedPano("Oculus"===this.xrManager.machineType?this.xrControllerRay[0]:this.xrControllerRay[1]);this.xrControllerState[t].touchStart=!1,this.xrControllerState[t].touchStartTime=0}},t}(Xa),Dl={Floorplan:ua,Topview:Aa,Panorama:Xa,VRPanorama:Bs,Model:Os,DepthPanorama:Vs,Mapview:sl,XRPanorama:kl},Fl=["gesture.pan","gesture.tap","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 Ll(e){for(var t,r,n={},i=0,o=e.split(/(\;|\,)/);i<o.length;i++){var a=o[i].split("="),s=null===(t=a[0])||void 0===t?void 0:t.trim(),l=null===(r=a[1])||void 0===r?void 0:r.trim();s&&l&&(n[s]=l)}return n}function Ql(){for(var e,t=document.getElementsByTagName("meta"),r=0;r<t.length;r++){var n=t[r];if("viewport"===n.getAttribute("name")){var i=Ll(null!==(e=n.getAttribute("content"))&&void 0!==e?e:""),o=Number(i["initial-scale"]);if(!isNaN(o))return o}}return 1}var Nl=[351,63],Vl=[20,20],Ul=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),zl=new Float32Array([0,0,1,0,0,1,1,1]),ql=new Uint8Array([0,1,2,1,3,2]),Hl=new n.BufferGeometry;Hl.setAttribute("position",new n.BufferAttribute(Ul,3)),Hl.setAttribute("uv",new n.BufferAttribute(zl,2)),Hl.setIndex(new n.BufferAttribute(ql,1));var _l=new n.MeshBasicMaterial({transparent:!0,depthTest:!1,depthWrite:!1,stencilWrite:!1,fog:!1}),jl=new n.Mesh(Hl,_l);jl.matrixAutoUpdate=!1;var Gl=new n.Scene;Gl.add(jl),Gl.matrixAutoUpdate=!1;var Kl=new n.OrthographicCamera(-.5,.5,.5,-.5,.1,1);Kl.position.set(0,0,.5),Kl.lookAt(0,0,0),Kl.updateMatrixWorld(!0),Kl.matrixAutoUpdate=!1;var Wl=new n.Vector4,Yl=new n.Vector4;function Xl(e){if(_l.map){var t=e.getViewport(Wl),r=e.getScissor(Yl),i=e.getScissorTest(),o=e.autoClear,a=r.x+Vl[0]/3,s=r.y+Vl[1]/3,l=Nl[0]/3,u=Nl[1]/3;e.setViewport(a,s,l,u),e.setScissor(a,s,l,u),e.setScissorTest(!0),e.autoClear=!1,e.render(Gl,Kl),e.setViewport(t),e.setScissor(r),e.setScissorTest(i),e.autoClear=o}else{var c=new n.Texture,d=new Image;d.onload=function(){c.image=d,c.wrapS=n.ClampToEdgeWrapping,c.wrapT=n.ClampToEdgeWrapping,c.minFilter=n.LinearFilter,c.needsUpdate=!0,c.generateMipmaps=!1,_l.needsUpdate=!0,d.onload=fe},d.src="data:image/png;base64,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",_l.map=c}}var Jl=function(e){return e.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/")},Zl=new n.Vector2,$l=new n.Frustum,eu=new n.Matrix4,tu=new WeakMap,ru=new WeakMap,nu=Mo([]),iu=function(e){function t(t){void 0===t&&(t={});var r,i,o,a,s,l,u,c,d,p,h,f=this;if((f=e.call(this)||this).ident=Fi(),ou.instances[f.ident]=f,f.renderSwitch01=0,f.currentMode="Panorama",f.pano={workCode:"",panoIndex:0},f.needsRender=!1,f.onlyRenderIfNeeds=null===(r=t.onlyRenderIfNeeds)||void 0===r||r,f.imageOptions=ie({},null!==(i=t.imageOptions)&&void 0!==i?i:{}),f.textureOptions=ie({},null!==(o=t.textureOptions)&&void 0!==o?o:{}),f.modelLodOptions=ie({},null!==(a=t.modelLod)&&void 0!==a?a:{}),f.poweredByRealsee=null===(s=t.poweredByRealsee)||void 0===s||s,f.extraElements=[],f.controllerInits={Panorama:Object.assign({},t.panorama),Model:Object.assign({},t.model),Floorplan:Object.assign({},t.floorplan),Topview:Object.assign({},t.topview),Mapview:Object.assign({},t.mapview),DepthPanorama:Object.assign({},t.depthPanorama),VRPanorama:Object.assign({},t.vrPanorama),XRPanorama:Object.assign({},t.xrPanorama)},f.fps={testCount:0,testTime:Ae()},f.info=null,f.modeChangeDuration=null!==(l=t.modeChangeDuration)&&void 0!==l?l:800,"undefined"!=typeof window)if(t.renderer)t.renderer instanceof zt&&f.throwError(new Error("cannot render a internal renderer")),f.renderer=t.renderer;else try{f.renderer=new zt({preserveDrawingBuffer:t.preserveDrawingBuffer,backgroundColor:t.backgroundColor,backgroundAlpha:t.backgroundAlpha,antialias:t.antialias,webgl2:null==t?void 0:t.webgl2});var v=Ql();f.renderer.setPixelRatio(1===v?window.devicePixelRatio:1),f.renderer.setSize(512,512)}catch(e){e instanceof Error&&f.throwError(e)}f.getPixelsRenderTarget=new n.WebGLRenderTarget(1,1,{encoding:null!==(c=null===(u=f.renderer)||void 0===u?void 0:u.outputEncoding)&&void 0!==c?c:n.sRGBEncoding}),f.scissor=Object.assign({left:0,bottom:0,width:1,height:1},t.scissor),f.camera=new Wt(90),f.scene=new qt,f.xrCustomObjectsScene=new n.Scene,f.scene.add(f.xrCustomObjectsScene),f.scene.matrixAutoUpdate=!1,f.lastLoadWorkTask=Promise.resolve(),f.requestProxy=null!==(d=t.requestProxy)&&void 0!==d?d:Jl,f.networkSubscribe=new Re,f.networkSubscribe.on("network",(function(e,t,r,n){var i;f.emit("network.resource",$o("network.resource",{source:e,requestType:t,requestState:r,detail:n})),null===(i=f.analysis)||void 0===i||i.network(f.works,e,t,r,n)})),f.boundingMesh=(p=new n.Box3(new n.Vector3(-.5,-.5,-.5),new n.Vector3(.5,.5,.5)),void 0===h&&(h=_o),new jo(p,h)),f.boundingMesh.name="bounding",f.scene.add(f.boundingMesh),f.models=$i(),f.models.push(new Zi),f.lastModels=$i(),f.readyCallbacks=[],f.syncingState=!1,f.modelGroup=new n.Group,f.modelGroup.visible=!1,f.modelGroup.name="model",f.modelGroup.matrixAutoUpdate=!1,f.modelGroup.renderOrder=-4,f.scene.add(f.modelGroup),f.helperGroup=new n.Group,f.helperGroup.name="helper",f.helperGroup.matrixAutoUpdate=!1,f.scene.add(f.helperGroup),f.videoTexture=new n.VideoTexture(t.videoInstance||function(){var e=document.createElement("video");e.loop=!0,e.autoplay=!0,e.playsInline=!0,e.muted=!0,e.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),e.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),e}()),function(e){(t=new n.DirectionalLight(16777215,.5)).position.copy(new n.Vector3(1,1,1)),e.add(t);var t=new n.DirectionalLight(16777215,.3);e.add(t),t=new n.AmbientLight(16777215,.3),e.add(t)}(f.scene),f.copyEffect=new Pa(f.renderer,f.scene,f.camera,f.models),f.state={mode:f.currentMode,workCode:f.pano.workCode,panoIndex:f.pano.panoIndex,longitude:f.camera.pose.longitude,latitude:f.camera.pose.latitude,fov:f.camera.pose.fov,offset:f.camera.pose.offset.clone(),distance:f.camera.pose.distance},f.stateSynced=!1,f._enableIOSEDR=!1,f.destroyed=!1,f.paused=!0,"undefined"!=typeof window&&(!1!==t.play&&f.play(),f.stopAnimationLoop=Ne.shared.add((function(e,t){for(var r=[],n=2;n<arguments.length;n++)r[n-2]=arguments[n];f.updateTime.apply(f,ue([e,t],r,!1))}),!1,0,10));var A,m=function(){"undefined"!=typeof document&&null===document.fullscreenElement&&"VRPanorama"===f.currentMode&&f.controller.emit("vr.requestExit",$o("vr.requestExit",{}))};if("undefined"!=typeof document&&document.addEventListener("fullscreenchange",m,!1),f.removeEventListeners=function(){"undefined"!=typeof document&&document.removeEventListener("fullscreenchange",m,!1)},f.plugins={},t.plugins&&t.plugins.length)for(var g=0,y=t.plugins;g<y.length;g++){var b=y[g];if("function"==typeof b)b(f);else if(Array.isArray(b)){var x=b[0],w=b[1],M=b[2];if("function"==typeof x){var E=x(f,M);"string"==typeof w&&(f.plugins[w]?f.throwError(new Error("plugin name ".concat(w," is exists."))):f.plugins[w]=E)}}}return f.gpuPickingRenderTarget=new n.WebGLRenderTarget(1,1),f.meshReplaceMaterialMap=new Map,f.meshOriginMaterialMap=new Map,(A=f).on("initAnimation.start",(function(e){A.emit("initAnimationWillStart",e.state.panoIndex,e.state,e.userAction)})),A.on("initAnimation.end",(function(e){A.emit("initAnimationEnded",e.state.panoIndex,e.state,e.userAction)})),A.on("gesture.pan",(function(e){A.emit("wantsGesture","pan",e.pointers,e.isFinal)&&e.preventDefault(),A.emit("wantsPanGesture",e.state,e.isFinal)&&e.preventDefault(),e.defaultPrevented||(A.emit("gesture","pan",e.pointers,e.isFinal),A.emit("panGesture",e.state,e.isFinal))})),A.on("gesture.tap",(function(e){A.emit("wantsGesture","tap",e.pointers,e.isFinal)&&e.preventDefault(),A.emit("wantsTapGesture",e.center.raycaster,e.center.coords,e.isFinal)&&e.preventDefault(),e.defaultPrevented||(A.emit("gesture","tap",e.pointers,e.isFinal),A.emit("tapGesture",e.center.raycaster,e.center.coords,e.isFinal))})),A.on("gesture.press",(function(e){A.emit("wantsGesture","press",e.pointers,e.isFinal)&&e.preventDefault(),A.emit("wantsPressGesture",e.center.raycaster,e.center.coords,e.center.delta,e.isFinal)&&e.preventDefault(),e.defaultPrevented||(A.emit("gesture","press",e.pointers,e.isFinal),A.emit("pressGesture",e.center.raycaster,e.center.coords,e.center.delta,e.isFinal))})),A.on("gesture.pinch",(function(e){A.emit("wantsGesture","pinch",e.pointers,e.isFinal)&&e.preventDefault(),A.emit("wantsPinchGesture",e.scale,e.state.fov,e.isFinal)&&e.preventDefault(),e.defaultPrevented||(A.emit("gesture","pinch",e.pointers,e.isFinal),A.emit("pinchGesture",e.scale,e.state.fov,e.isFinal))})),A.on("gesture.mousewheel",(function(e){A.emit("wantsGesture","mouseWheel",e.pointers,e.isFinal)&&e.preventDefault(),A.emit("wantsMouseWheel",e.center.delta,e.state.fov,e.isFinal)&&e.preventDefault(),e.defaultPrevented||(A.emit("gesture","mouseWheel",e.pointers,e.isFinal),A.emit("mouseWheel",e.center.delta,e.state.fov,e.isFinal))})),A.on("gesture.mousemove",(function(e){A.emit("wantsGesture","mouseMove",e.pointers,e.isFinal)&&e.preventDefault(),e.defaultPrevented||(A.emit("gesture","mouseMove",e.pointers,e.isFinal),A.emit("wantsChangeCameraFov",e.state.fov)&&e.preventDefault())})),A.on("gesture.momentum",(function(e){A.emit("wantsInteriaPan",e.state)&&e.preventDefault(),e.defaultPrevented||A.emit("interiaPan",e.state,e.isFinal)})),A.on("camera.update",(function(e){A.emit("cameraFovUpdate",e.state.fov,e.userAction),A.emit("cameraDirectionUpdate",e.state,e.userAction);var t=Ht(e.state);t.setLength(e.state.distance);var r=e.state.offset.clone().sub(t);A.emit("cameraPositionUpdate",r,e.userAction),A.emit("cameraUpdate",e.state,e.userAction)})),A.on("intersect.update",(function(e){e.intersection?(A.emit("wantsShowIntersectionOnModel",e.raycaster)&&e.preventDefault(),e.defaultPrevented||A.emit("intersectionOnModelUpdate",e.intersection,e.object)):A.emit("intersectionHidden")})),A.on("pano.request",(function(e){var t=A.emit("wantsMoveToPano",e.state.panoIndex,e.options,e.userAction);t||(t=A.emit("wantsToMoveToPano",e.state.panoIndex,e.options,e.userAction)),t&&e.preventDefault(),e.defaultPrevented||A.emit("panoWillLoad",e.state.panoIndex)})),A.on("pano.select",(function(e){A.emit("panoSelected",e.state.panoIndex)})),A.on("pano.moveTo",(function(e){A.emit("panoLoaded",e.state.panoIndex),A.emit("moveToPano",e.state.panoIndex,e.userAction),A.emit("panoWillArrive",e.state.panoIndex,e.state,e.userAction)})),A.on("pano.moving",(function(e){A.emit("movingToPano",e.state.panoIndex,e.prevPano.panoIndex,e.progress)})),A.on("pano.arrived",(function(e){A.emit("panoArrived",e.state.panoIndex,e.state,e.userAction)})),A.on("pano.cancel",(function(e){A.emit("moveToPanoCanceled",e.state.panoIndex)})),A.on("pano.error",(function(e){A.emit("panoLoadError",e.error,e.state.panoIndex)})),A.on("pano.texture.load",(function(e){A.emit("textureStartLoad",e.pano.panoIndex)})),A.on("pano.texture.success",(function(e){A.emit("textureLoaded",e.pano.panoIndex,e.meta)})),A.on("pano.texture.error",(function(e){A.emit("textureError",e.error,e.pano.panoIndex)})),A.on("pano.texture.abort",(function(e){A.emit("textureAbort",e.pano.panoIndex)})),A.on("pano.texture.progress",(function(e){A.emit("textureLoading",e.progress,e.pano.panoIndex)})),A.on("xr.session.start",(function(e){A.emit("webXRSessionStart")})),A.on("xr.session.end",(function(e){A.emit("webXRSessionEnd")})),A.on("xr.gesture.tap",(function(e){A.emit("webXRControllerEvent","tap",e.buttons,{raycaster:e.controllers.raycaster})})),A.on("xr.gesture.press",(function(e){A.emit("webXRControllerEvent","press",e.buttons,{raycaster:e.controllers.raycaster})})),A.on("xr.gesture.buttonUp",(function(e){A.emit("webXRControllerEvent","buttonUp",e.buttons,{raycaster:e.controllers.raycaster})})),A.on("xr.gesture.buttonDown",(function(e){A.emit("webXRControllerEvent","buttonDown",e.buttons,{raycaster:e.controllers.raycaster})})),A.on("xr.controller.update",(function(e){A.emit("webXRControllerRayUpdate",{leftRay:e.left.raycaster,rightRay:e.right.raycaster}),A.emit("webXRAxesUpdate","left",{raycaster:{leftRay:e.left.raycaster,rightRay:e.right.raycaster},axesState:{up:e.left.axes.up,down:e.left.axes.down,left:e.left.axes.left,right:e.left.axes.right},deltaTime:e.left.deltaTime}),A.emit("webXRAxesUpdate","right",{raycaster:{leftRay:e.left.raycaster,rightRay:e.right.raycaster},axesState:{up:e.right.axes.up,down:e.right.axes.down,left:e.right.axes.left,right:e.right.axes.right},deltaTime:e.right.deltaTime})})),A.on("works.request",(function(e){A.emit("willLoad",e.input,e.works[0],e.state)})),A.on("works.load",(function(e){A.emit("load",e.input,e.works[0],e.state)})),A.on("works.ready",(function(e){A.emit("loaded",e.input,e.works[0])})),A.on("state.change",(function(e){A.emit("stateChange",e.state,e.userAction)})),A.on("currentState.change",(function(e){A.emit("currentStateChange",e.state,e.userAction)})),A.on("state.set",(function(e){A.emit("setState",e.state)})),A.on("state.synced",(function(e){A.emit("stateSynced",e.state)})),A.on("model.request",(function(e){A.emit("modelWillLoad",e.work.model)})),A.on("model.error",(function(e){A.emit("modelLoadError",e.error,e.model)})),A.on("model.load",(function(e){A.emit("modelLoaded",e.model)})),A.on("model.changeShownFloor",(function(e){A.emit("modelShownFloorChange",e.model.shownFloor,e.model.floorLength)})),A.on("render",(function(e){A.emit("renderFrame",e.needsRender)})),A.on("mode.change.request",(function(e){A.emit("wantsChangeMode",e.mode,e.prevMode)})),A.on("mode.change",(function(e){A.emit("modeChange",e.mode,e.prevMode,e.state.panoIndex,e.state,e.userAction)})),A.on("helpers.visible",(function(e){A.emit("helpersVisibleChange",e.object.visible)})),A.on("network.resource",(function(e){A.emit("network",e.source,e.requestType,e.requestState,e.detail)})),f}return ne(t,e),Object.defineProperty(t,"version",{get:function(){return"6.0.0-alpha.13"},enumerable:!1,configurable:!0}),Object.defineProperty(t,"dracoPath",{get:function(){return gn.decoderPath},set:function(e){gn.setDecoderPath(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,t,r,i,o){var a=this;if(void 0===i&&(i=1),void 0===o&&(o=new n.Vector3(0,0,0)),!this.renderer)throw new Error("renderer is not initialized.");this.models.setMaterial({constantColor:o}),this.scene.traverse((function(e){if(e instanceof n.Mesh&&!(e instanceof tt)){var t=Object.keys(r).filter((function(t){return t===e.uuid}))[0];if(t)if(a.meshOriginMaterialMap.set(t,e.material),a.meshReplaceMaterialMap.get(t))e.material=a.meshReplaceMaterialMap.get(t);else{var i=new n.ShaderMaterial({uniforms:{color:{value:r[t]}},vertexShader:"\n void main() {\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n }\n ",fragmentShader:"\n uniform vec3 color;\n void main() {\n gl_FragColor = vec4( color, 1.0 );\n }\n "});i.depthTest=e.material.depthTest,i.side=e.material.side,a.meshReplaceMaterialMap.set(t,i),e.material=i}}}));var s=this.renderer.getSize(new n.Vector2);this.camera.setViewOffset(s.width,s.height,e*i,t*i,1,1),this.renderer.setRenderTarget(this.gpuPickingRenderTarget),this.render();var l=new Uint8Array(4);this.renderer.readRenderTargetPixels(this.gpuPickingRenderTarget,0,0,1,1,l),this.renderer.setRenderTarget(null),this.camera.clearViewOffset(),this.scene.traverse((function(e){e instanceof n.Mesh&&!(e instanceof tt)&&a.meshOriginMaterialMap.get(e.uuid)&&(e.material=a.meshOriginMaterialMap.get(e.uuid))})),this.models.setMaterial({constantColor:null});var u=Object.keys(r).filter((function(e){return r[e].equals((new n.Color).setRGB(l[0]/255,l[1]/255,l[2]/255))}))[0];return u||!1},t.prototype.dispose=function(){var e,t;if(!0!==this.destroyed){delete ou.instances[this.ident],this.emit("dispose"),this.destroyed=!0,this.pause(),this.stopAnimationLoop&&(this.stopAnimationLoop(),delete this.stopAnimationLoop),null===(e=this.renderer)||void 0===e||e.setAnimationLoop(null),this.off(),this.networkSubscribe.off(),this.controller&&(this.controller.destroy(),this.controller=void 0);var r=this.getElement();r&&r.parentNode&&r.parentNode.removeChild(r);var n=this.models.getMaterial();n&&(n.pano0&&n.pano0.map.dispose(),n.pano1&&n.pano1.map!==(null===(t=n.pano0)||void 0===t?void 0:t.map)&&n.pano1.map.dispose());for(var i=0,o=this.models;i<o.length;i++){o[i].dispose()}this.models.length=0,this.models.setMaterial({pano0:null,pano1:null}),this.meshReplaceMaterialMap.forEach((function(e){e.dispose()})),this.meshOriginMaterialMap.forEach((function(e){e.dispose()})),this.renderer instanceof zt&&this.renderer.forceContextLoss&&this.renderer.forceContextLoss()}},t.prototype.setScissor=function(e){Object.assign(this.scissor,e),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize()},Object.defineProperty(t.prototype,"helperVisible",{get:function(){return this.helperGroup.visible},set:function(e){this.helperGroup.visible!==e&&(this.helperGroup.visible=e,this.emit("helpers.visible",$o("helpers.visible",{object:this.helperGroup})),this.needsRender=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enableIOSEDR",{get:function(){return this._enableIOSEDR},set:function(e){this._enableIOSEDR!==e&&(this._enableIOSEDR=e,this.currentMode&&"Panorama"===this.currentMode&&this.changeMode(this.currentMode,this.getCurrentState(),0,!1,!0))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"postProcessingType",{get:function(){return"Panorama"===this.currentMode&&this.enableIOSEDR?"luminance":"Mapview"===this.currentMode&&this.enableEDL?"edl":"Mapview"===this.currentMode&&this.enableHQ?"hq":null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enableEDL",{get:function(){return this.models.getMaterial().useEDL},set:function(e){var r,i,o,a;if(!0===e&&this.currentMode!==t.Mode.Mapview)throw new Error("只支持Mapview下开启EDL");if(this.models.setMaterial({useEDL:e}),this.boundingMesh.visible=!e,e){if(!this.screenBuffers){var s=this.getDrawingBufferSize(Zl);this.screenBuffers=[new n.WebGLRenderTarget(s.x,s.y,{encoding:null!==(i=null===(r=this.renderer)||void 0===r?void 0:r.outputEncoding)&&void 0!==i?i:n.sRGBEncoding,minFilter:n.NearestFilter,magFilter:n.NearestFilter,format:n.RGBAFormat,type:n.FloatType}),new n.WebGLRenderTarget(s.x,s.y,{encoding:null!==(a=null===(o=this.renderer)||void 0===o?void 0:o.outputEncoding)&&void 0!==a?a:n.sRGBEncoding,minFilter:n.LinearMipMapLinearFilter,magFilter:n.LinearMipMapLinearFilter})]}}else this.screenBuffers&&(this.screenBuffers.forEach((function(e){e.dispose()})),delete this.screenBuffers);this.needsRender=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enableHQ",{get:function(){return this.models.getMaterial().useHQWeight||this.models.getMaterial().useHQDepth||!1},set:function(e){var r,i;if(!0===e&&this.currentMode!==t.Mode.Mapview)throw new Error("只支持Mapview下开启HQ");if(!0===e?this.models.setMaterial({useHQDepth:!0,useHQWeight:!1}):this.models.setMaterial({useHQDepth:!1,useHQWeight:!1}),this.boundingMesh.visible=!e,e){if(!this.screenBuffers){var o=this.getDrawingBufferSize(Zl),a=new n.WebGLRenderTarget(o.x,o.y,{minFilter:n.NearestFilter,magFilter:n.NearestFilter,format:n.RGBAFormat,type:n.FloatType,depthTexture:new n.DepthTexture(o.x,o.y,n.UnsignedIntType)}),s=new n.WebGLRenderTarget(o.x,o.y,{encoding:null!==(i=null===(r=this.renderer)||void 0===r?void 0:r.outputEncoding)&&void 0!==i?i:n.sRGBEncoding,minFilter:n.NearestFilter,magFilter:n.NearestFilter,format:n.RGBAFormat,type:n.FloatType,depthTexture:a.depthTexture});this.screenBuffers=[a,s]}}else this.screenBuffers&&(this.screenBuffers.forEach((function(e){e.dispose()})),delete this.screenBuffers);this.needsRender=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enablePostProcessing",{get:function(){return void 0!==this.screenBuffers},set:function(e){var t,r,i,o;if(e){if(!this.screenBuffers){var a=this.getDrawingBufferSize(Zl);this.screenBuffers=[new n.WebGLRenderTarget(a.x,a.y,{encoding:null!==(r=null===(t=this.renderer)||void 0===t?void 0:t.outputEncoding)&&void 0!==r?r:n.sRGBEncoding}),new n.WebGLRenderTarget(a.x,a.y,{encoding:null!==(o=null===(i=this.renderer)||void 0===i?void 0:i.outputEncoding)&&void 0!==o?o:n.sRGBEncoding})]}}else this.screenBuffers&&(this.screenBuffers.forEach((function(e){e.dispose()})),delete this.screenBuffers);this.needsRender=!0},enumerable:!1,configurable:!0}),t.prototype.updateConfiguration=function(e){var t=!1;e.panorama&&(Object.assign(this.controllerInits.Panorama,e.panorama),"Panorama"===this.currentMode&&(t=!0)),e.model&&(Object.assign(this.controllerInits.Model,e.model),"Model"===this.currentMode&&(t=!0)),e.floorplan&&(Object.assign(this.controllerInits.Floorplan,e.floorplan),"Floorplan"===this.currentMode&&(t=!0)),e.topview&&(Object.assign(this.controllerInits.Topview,e.topview),"Topview"===this.currentMode&&(t=!0)),e.mapview&&(Object.assign(this.controllerInits.Mapview,e.topview),"Mapview"===this.currentMode&&(t=!0)),e.depthPanorama&&(Object.assign(this.controllerInits.DepthPanorama,e.depthPanorama),"DepthPanorama"===this.currentMode&&(t=!0)),e.vrPanorama&&(Object.assign(this.controllerInits.VRPanorama,e.vrPanorama),"VRPanorama"===this.currentMode&&(t=!0)),e.imageOptions&&(Object.assign(this.imageOptions,e.imageOptions),"Panorama"!==this.currentMode&&"DepthPanorama"!==this.currentMode&&"VRPanorama"!==this.currentMode||(t=!0)),t&&this.controller&&this.currentMode&&this.changeMode(this.currentMode,this.getCurrentState(),0,!1,!0),e.textureOptions&&Object.assign(this.textureOptions,e.textureOptions)},t.prototype.appendTo=function(e,t){if(void 0===t&&(t={}),this.renderer)if(this.renderer instanceof zt){var r=this.getElement();if(r){e.appendChild(r),this.refresh(t);var n=window.getComputedStyle(e).position;"relative"!==n&&"absolute"!==n&&"fixed"!==n&&"sticky"!==n&&(e.style.position="relative")}}else this.throwError(new Error("cannot call appendTo method when render a external renderer"))},t.prototype.refresh=function(e,t){if(void 0===e&&(e={}),this.renderer){var r=this.getElement();if(r){var i=r.parentNode;if(i&&i.nodeName){var o=e.width,a=void 0===o?i.offsetWidth:o,s=e.height,l=void 0===s?i.offsetHeight:s;this.renderer instanceof zt&&(t&&this.renderer.setPixelRatio(t),this.renderer.setSize(a,l))}var u=this.renderer.getSize(new n.Vector2);this.camera.aspect=u.x*this.scissor.width/(u.y*this.scissor.height),this.camera.updateProjectionMatrix(),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize(),this.needsRender=!0}}},t.prototype.addExtraElement=function(e){var t=this;return-1===this.extraElements.indexOf(e)&&(this.extraElements.push(e),this.controller&&this.controller.bindExtraElement(e)),function(){return t.removeExtraElement(e)}},t.prototype.removeExtraElement=function(e){var t=this.extraElements.indexOf(e);-1!==t&&(this.extraElements.splice(t,1),this.controller&&this.controller.unbindExtraElement(e))},t.prototype.getPose=function(){var e=this.camera.copyPose(),t=e.longitude,r=e.latitude,n=e.fov,i=e.offset,o=e.distance;return{longitude:t,latitude:r,fov:n,offset:i.clone(),distance:o}},t.prototype.getSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},t.prototype.getDrawingBufferSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getDrawingBufferSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},t.prototype.updateCamera=function(e,t,r){return void 0===r&&(r=!0),this.controller?(this.controller.stopMomentumMovement(),this.controller.updateCamera(e,t,r)):Promise.reject(new Error("controller is not initialized."))},t.prototype.updateCameraWithKeyframes=function(e,t,r){return void 0===r&&(r=!0),this.controller?(this.controller.stopMomentumMovement(),this.controller.updateCameraWithKeyframes(e,t,r)):Promise.reject(new Error("controller is not initialized."))},t.prototype.getLongitudeAndLatitude=function(){var e=this.getPose();return{longitude:e.longitude,latitude:e.latitude}},t.prototype.getOffset=function(){return this.getPose().offset},t.prototype.getCameraLocal=function(){if(this.pano.workCode&&this.controller&&this.works){var e=this.works.getResolvedObserver(this.pano);if(e){var t=new n.Object3D;return t.position.copy(e.position),t.quaternion.copy(e.quaternion),t.scale.set(1,1,1),t.matrix.compose(t.position,t.quaternion,t.scale),t.matrixAutoUpdate=!1,function(e,t){var r=new n.Vector3(0,0,-1);r.applyQuaternion(e.quaternion);var i=t.quaternion.clone().inverse();return r.applyQuaternion(i),{theta:Math.atan2(r.x,-r.z),phi:-Math.asin(r.y),lookAtVector:r}}(this.camera,t)}}return null},Object.defineProperty(t.prototype,"works",{get:function(){var e=ru.get(this);if(!e)return nu;for(var t=0,r=e;t<r.length;t++){var n=r[t];if(!po.has(n))return nu}return e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"work",{get:function(){return this.works[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"model",{get:function(){return this.models[0]},enumerable:!1,configurable:!0}),t.prototype.load=function(e,t,r,n){var i=this;if(void 0===n&&(n=!0),!this.renderer)throw new Error("renderer is not initialized");var o=this.lastLoadWorkTask.then((function(){return!(o=e)||"object"!=typeof o&&"function"!=typeof o||"function"!=typeof o.then?i.load_(e,t,r,n):e.then((function(e){return i.load_(e,t,r,n)}));var o}));return this.lastLoadWorkTask=o.catch((function(e){i.throwError(e)})),o},t.prototype.load_=function(e,r,i,o){var a,s,l,u,c,d,p=this;void 0===o&&(o=!0);var h=[];if(Array.isArray(e))for(var f=0,v=e;f<v.length;f++){var A=v[f];"string"!=typeof A&&"work"in A?h.push(wo(A.work,A)):h.push(wo(A))}else h.push(wo(e));var m=Mo(h),g=this.works;void 0===r&&(r=0!==g.length?"inherit":"initial");var y=m.initial,b=y.work.observers[0],x=b?{workCode:b.work.workCode,panoIndex:b.panoIndex}:{workCode:y.work.workCode,panoIndex:0},w=null!==(a=y.mode)&&void 0!==a?a:b?"Panorama":"Mapview",M={};if("inherit"===r)w=this.currentMode,(E=m.resolvedObservers[this.panoIndex])?x={workCode:E.work.workCode,panoIndex:E.panoIndex}:"number"==typeof m.initial.panoIndex?x={workCode:m.initial.work.workCode,panoIndex:m.initial.panoIndex}:"Panorama"!==w&&"DepthPanorama"!==w&&"VRPanorama"!==w&&"XRPanorama"!==w||(w="Mapview"),M={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,distance:this.camera.pose.distance,offset:this.camera.pose.offset.clone()};else if("initial"===r)"number"==typeof y.panoIndex&&(x={workCode:y.work.workCode,panoIndex:y.panoIndex}),y.mode&&(w=y.mode),M={longitude:y.longitude,latitude:y.latitude,fov:y.fov,distance:y.distance,offset:null===(s=y.offset)||void 0===s?void 0:s.clone()};else{var E;if(w=null!==(l=r.mode)&&void 0!==l?l:this.currentMode,"number"==typeof r.panoIndex)(E=m.getResolvedObserver({workCode:null!==(c=null!==(u=r.workCode)&&void 0!==u?u:y.work.workCode)&&void 0!==c?c:"",panoIndex:r.panoIndex}))&&(x={workCode:E.work.workCode,panoIndex:E.panoIndex});M={longitude:r.longitude,latitude:r.latitude,fov:r.fov,distance:r.distance,offset:r.offset}}var C=ie(ie(ie({},x),{mode:w}),M);this.emit("works.request",$o("works.request",{input:e,works:m,state:C,userAction:o}));var S=function(){p.modelGroup.visible=!0,p.pano=x;var e=p.controller?null!=i?i:p.modeChangeDuration:0,t=ie(ie({initial:{state:C,currentState:p.getCurrentState(),duration:e,userAction:o}},p.commonParams()),p.controllerInits[w]);if(p.controller&&p.currentMode===w)!1===p.controller.updateWork(m,C,e,o)&&(p.controller.destroy(),p.controller=p.applyController(w,t));else{var r=p.currentMode,n=Dl[w].initAnimationEndState(t);p.controller=p.applyController(w,t);var a=$o("mode.change",{prevMode:r,mode:w,state:n,userAction:o});p.emit("mode.change",a)}};if(ru.set(this,m),w===t.Mode.Floorplan||w===t.Mode.Topview||w===t.Mode.Mapview||w===t.Mode.Model)this.loadModel(m).then((function(){if(p.needsRender=!0,S(),p.controller&&0===p.controller.initial.duration){var e=Dl[w].initAnimationEndState(p.controller);p.camera.setFromPose(e)}p.emit("camera.update",$o("camera.update",{state:p.getCurrentState(),userAction:o}))}));else{if(!this.controller){var I=new n.Vector3,P=m.getResolvedObserver(x);P&&I.copy(P.position),this.camera.setFromPose({fov:M.fov,longitude:M.longitude,latitude:M.latitude,distance:M.distance,offset:null!==(d=M.offset)&&void 0!==d?d:I}),this.needsRender=!0}S(),this.controller.once("pano.moveTo",(function(){p.needsRender=!0,p.emit("camera.update",$o("camera.update",{state:p.getCurrentState(),userAction:o})),p.loadModel(m)}))}return this.emit("works.load",$o("works.load",{input:e,state:this.getCurrentState(),userAction:o,works:m})),this.ready().then((function(){var t;p.emit("works.ready",$o("works.ready",{input:e,state:p.getCurrentState(),userAction:o,works:m})),null===(t=p.analysis)||void 0===t||t.work(m)}))},t.prototype.changeMode=function(e,r,n,i,o){var a=this;return void 0===r&&(r={}),void 0===n&&(n=this.modeChangeDuration),void 0===i&&(i=!0),void 0===o&&(o=!1),new Promise((function(s,l){var u,c,d;if(!a.renderer)throw new Error("renderer is not initialized.");var p="number"==typeof(r=ie({},r)).panoIndex?{workCode:null!==(d=null!==(u=r.workCode)&&void 0!==u?u:null===(c=a.work)||void 0===c?void 0:c.workCode)&&void 0!==d?d:"",panoIndex:r.panoIndex}:a.pano;if(!t.Mode.hasOwnProperty(e)){var h=new Error('mode "'.concat(e,'" is not existed'));return a.throwError(h),void l(h)}if((e===t.Mode.Floorplan||e===t.Mode.Topview||e===t.Mode.Mapview||e===t.Mode.Model)&&!a.models.loaded){h=new Error("model is not ready.");return a.throwError(h),void l(h)}if((e===t.Mode.Panorama||e===t.Mode.VRPanorama||e===t.Mode.XRPanorama)&&!a.works.getResolvedObserver(p)){h=new Error("PanoId ".concat(Xe(p)," not existed."));return a.throwError(h),void l(h)}var f=a.controller,v=a.currentMode,A=function(){if(a.controller&&a.controller.stopMomentumMovement(),a.controller&&!1===o&&v===e)e===t.Mode.Panorama||e===t.Mode.DepthPanorama||e===t.Mode.Model||e===t.Mode.VRPanorama||e===t.Mode.XRPanorama?Ze(a.pano,p)&&"moveToPano"in a.controller&&"function"==typeof a.controller.moveToPano?a.controller.moveToPano(p,ie({duration:n},r),i):a.controller.updateCamera(r,n,i).catch(fe):(Ze(a.pano,p)||(a.pano=p),a.controller.updateCamera(r,n,i).catch(fe));else{var l=ie(ie({},r),p),u=ie(ie({initial:{state:l,currentState:a.getCurrentState(),duration:n,userAction:i}},a.commonParams()),a.controllerInits[e]),c=Dl[e].initAnimationEndState(u),d=$o("mode.change.request",{prevMode:a.currentMode,mode:e,state:c,userAction:i});if(a.emit("mode.change.request",d),!d.defaultPrevented){f&&f.destroy(),a.controller=a.applyController(e,u);var h=$o("mode.change",{prevMode:a.currentMode,mode:e,state:c,userAction:i});a.emit("mode.change",h)}}s()};if(e===t.Mode.VRPanorama)a.requestFullscreen(),("undefined"==typeof location||"https:"!==location.protocol?Promise.reject(new Error("Request DeviceOrientation Permission denied.")):"undefined"!=typeof DeviceOrientationEvent&&"function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(e){if("granted"==e)return Promise.resolve();var t=new Error("Request DeviceOrientation Permission denied.");return Promise.reject(t)})):Promise.resolve()).then((function(){return A()})).catch((function(e){e instanceof Error&&(a.exitFullscreen(),a.throwError(e),l(e))}));else if(e===t.Mode.XRPanorama){var m=Ne.shared.getContext();m?m.end():function(){if("xr"in navigator)return navigator.xr.isSessionSupported("immersive-vr").then((function(e){return e?Promise.resolve():Promise.reject()})).then((function(){return navigator.xr.requestSession("immersive-vr",{optionalFeatures:["local-floor","bounded-floor"]}).then((function(e){return Promise.resolve(e)}))}));var e=new Error("Request XR Permission denied.");return Promise.reject(e)}().then((function(e){Ne.shared.setContext(e),A()})).catch((function(e){e instanceof Error&&(a.throwError(e),l(e))}))}else A()}))},t.prototype.getPixels=function(e,t,r,i,o){if(void 0===o&&(o=1),!this.renderer)throw new Error("renderer is not initialized.");var a=this.getPixelsRenderTarget,s=this.renderer.getSize(new n.Vector2);e=Dr(e,Math.floor(r/2),Math.floor(s.x-r)),t=Dr(t,Math.floor(i/2),Math.floor(s.y-i)),a.setSize(r*o,i*o),this.renderer.setRenderTarget(a),this.camera.setViewOffset(s.width,s.height,e,s.height-t-i,r,i),this.controller?this.controller.render():this.renderer.render(this.scene,this.camera);var l=new Uint8Array(r*o*i*o*4);return this.renderer.readRenderTargetPixels(a,0,0,r*o,i*o,l),this.renderer.setRenderTarget(null),this.camera.clearViewOffset(),l},t.prototype.getElement=function(){var e;return null===(e=this.renderer)||void 0===e?void 0:e.domElement},Object.defineProperty(t.prototype,"observers",{get:function(){return this.works.resolvedObservers},enumerable:!1,configurable:!0}),t.prototype.render=function(e,t){var r=this;if(void 0===t&&(t=!1),!this.renderer)return null;if(t){var n=this.renderer.getSize(Zl);this.scene.traverseVisible((function(e){e.setResolution&&e.setResolution(n.x,n.y)}))}if(this.controller&&this.screenBuffers&&null===this.renderer.getRenderTarget()){var i=this.getDrawingBufferSize(Zl);return this.screenBuffers.forEach((function(e){e.setSize(i.x,i.y)})),this.renderer.setRenderTarget(this.screenBuffers[0]),this.controller.render(),this.info={memory:this.controller.renderer.info.memory,render:this.controller.renderer.info.render},"VRPanorama"!==this.currentMode&&"XRPanorama"!==this.currentMode&&this.poweredByRealsee&&Xl(this.renderer),this.renderer.setRenderTarget(null),e&&Ne.shared.add(e,!0),this.screenBuffers[0]}return this.aroundScissor((function(){r.renderer&&(r.controller?(r.controller.render(),r.info={memory:r.controller.renderer.info.memory,render:r.controller.renderer.info.render}):(r.renderer.render(r.scene,r.camera),r.info={memory:r.renderer.info.memory,render:r.renderer.info.render}),r.poweredByRealsee&&"VRPanorama"!==r.currentMode&&"XRPanorama"!==r.currentMode&&Xl(r.renderer)),e&&Ne.shared.add(e,!0)})),null},t.prototype.updateTime=function(e,t){for(var r,i,o,a=this,s=[],l=2;l<arguments.length;l++)s[l-2]=arguments[l];if(!this.destroyed){if(this.works.update(),this.syncingState=this.syncState(e,t),this.controller&&(r=this.controller).updateTime.apply(r,ue([e,t],s,!1)),this.camera.updateTime(e,t),this.renderer){var u=this.models.loaded;if(this.models.update(this.renderer,this.camera,this.currentMode),!1===u&&!0===this.models.loaded&&this.emit("models.load",$o("models.load",{models:this.models})),this.models.loaded){for(var c=0,d=this.models;c<d.length;c++){(f=d[c]).parent!==this.modelGroup&&(this.modelGroup.add(f),this.needsRender=!0)}if(this.lastModels.length>0){for(var p=0,h=this.lastModels;p<h.length;p++){var f=h[p];this.modelGroup.remove(f),f.dispose(),this.needsRender=!0}this.lastModels.length=0}}this.lastModels.setMaterial(this.models.getMaterial()),this.lastModels.materialVersion=this.models.materialVersion,this.lastModels.update(this.renderer,this.camera,this.currentMode)}this.syncingState=!1;var v=new n.Vector2(512,512),A=new n.Vector2(512,512);this.renderer&&(this.renderer.getSize(v),v.x*=this.scissor.width,v.y*=this.scissor.height,this.renderer.getDrawingBufferSize(A),A.x*=this.scissor.width,A.y*=this.scissor.height);for(var m=new n.Box3,g=new n.Box3,y=new n.Vector3(4,4,4),b=0,x=this.works.resolvedObservers;b<x.length;b++){var w=x[b];g.setFromCenterAndSize(w.position,y),m.union(g)}m.union(this.models.bounding),m.getCenter(this.boundingMesh.position),m.getSize(this.boundingMesh.scale),this.boundingMesh.boundingBox.copy(m);var M=null!==(i=this.models.getMaterial())&&void 0!==i?i:{},E=1-(null!==(o=M.modelAlpha)&&void 0!==o?o:0);M.opacity=Dr(4*E-3,0,1),M.clippers=null,M.floorIndex=-2,this.boundingMesh.setMaterial(M),this.renderer&&this.boundingMesh.update(this.renderer,this.camera),this.boundingMesh.needsRender=!1;var C=$o("render.prepare",{needsRender:!0,info:null});if(this.emit("render.prepare",C),!C.defaultPrevented){var S=[];eu.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),$l.setFromProjectionMatrix(eu);for(var I=0,P=this.scene.children;I<P.length;I++){var T=P[I];T!==this.modelGroup&&(T!==this.boundingMesh&&T instanceof n.Object3D&&T.traverseVisible((function(t){if(t.setResolution&&t.setResolution(v.x,v.y),t.setTime&&t.setTime(e),t.mixer instanceof n.AnimationMixer){var r=tu.get(t.mixer);r||(r=new n.Clock,tu.set(t.mixer,r)),t.mixer.update(r.getDelta())}(t instanceof n.Mesh||t instanceof n.Line||t instanceof n.Points)&&(t instanceof n.ImmediateRenderObject||!t.frustumCulled||$l.intersectsObject(t))&&S.push(t)})))}if(A.width*A.height>8388608?this.renderSwitch01=1^this.renderSwitch01:this.renderSwitch01=0,this.renderer&&!1===this.paused&&0===this.renderSwitch01){var B=void 0;if(!0!==this.onlyRenderIfNeeds)B=this.render();else{if(this.controller&&!0===this.controller.needsRender&&(this.controller.needsRender=!1,this.needsRender=!0),!0===this.camera.needsRender&&(this.camera.needsRender=!1,this.needsRender=!0),!0===this.models.needsRender&&(this.models.needsRender=!1,this.needsRender=!0),!0!==this.needsRender)for(var R=0,O=S;R<O.length;R++){var k=O[R],D=function(e){!0===e.needsRender?(e.needsRender=!1,a.needsRender=!0):e.mixer&&e.mixer.stats.actions.inUse>0&&(a.needsRender=!0)};D(k),k.traverseAncestors(D)}!1!==this.needsRender&&(B=this.render())}if(this.needsRender=!1,this.controller&&this.screenBuffers){var F=this.controller,L=this.screenBuffers;this.aroundScissor((function(){F.postProcessing(L,a.postProcessingType)}))}this.hasListener("render")&&this.emit("render",$o("render",{needsRender:void 0!==B,info:this.info}))}this.needsRender=!1}this.fps.testTime&&e-this.fps.testTime<1e3?this.fps.testCount++:(this.emit("fps",this.fps.testCount),this.fps.testTime=e,this.fps.testCount=0)}},t.prototype.pause=function(){this.paused=!0,this.renderer&&this.renderer instanceof zt&&this.renderer.clear(!0,!0,!0)},t.prototype.play=function(){this.needsRender=!0,this.paused=!1},t.prototype.moveToPano=function(e,r,n){void 0===r&&(r={}),void 0===n&&(n=!0);var i=this.controller,o=this.renderer;if(!i)return this.throwError(new Error("controller is not initialized.")),Promise.resolve();if(!o)return this.throwError(new Error("renderer is not initialized.")),Promise.resolve();var a=this.works.getResolvedObserver(e);if(!a)return this.throwError(new Error("pano ".concat(JSON.stringify(e)," not existed."))),Promise.resolve();var s={workCode:a.work.workCode,panoIndex:a.panoIndex};return"moveToPano"in i&&"function"==typeof i.moveToPano?i.moveToPano(s,r,n):a&&(this.pano=s,this.once("initAnimation.start",(function(e){r.moveStartCallback&&r.moveStartCallback(e.state)})),this.once("initAnimation.end",(function(e){r.moveEndCallback&&r.moveEndCallback(e.state)})),this.changeMode(t.Mode.Panorama,r,void 0,n)),this.ready()},t.prototype.preloadPano=function(e,t){var r=this;void 0===t&&(t=fe);var n=this.works.getResolvedObserver(e);if(!n)return Promise.reject(new Error("Pano ".concat(JSON.stringify(e)," never found")));var i=n.work.allowHosts,o=Ae();return Promise.all(["right","left","up","down","front","back"].map((function(e){var t=ie({key:"pano.".concat(n.panoId,".").concat(e)},Zn(r.imageOptions,["size","format","quality","mappings"])),o=n.images[e];return De(r.imageOptions.transform?r.imageOptions.transform(o,t):_e(o,t),{allowHosts:i,requestProxy:r.requestProxy,networkSubscribe:r.networkSubscribe})}))).then((function(){var e=Ae()-o;return t(e),e}))},t.prototype.project2d=function(e,t){if(void 0===t&&(t=!1),!this.renderer)return null;if(this.models.length>0&&t){var r=this.camera.position,i=e.clone().sub(r),o=new n.Raycaster(r,i.clone().normalize()),a=this.models.intersectRaycaster(o)[0];if(a&&a.distance+.01<i.length())return null}var s=e.clone().project(this.camera);if(Math.abs(s.z)>1)return null;var l=this.renderer.getSize(new n.Vector2),u=l.x*this.scissor.width,c=l.y*this.scissor.height,d=l.x*this.scissor.left+(s.x+1)/2*u,p=l.y*(1-this.scissor.bottom-this.scissor.height)+(1-s.y)/2*c;return new n.Vector2(d,p)},t.prototype.getRenderObjects=function(e){eu.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),$l.setFromProjectionMatrix(eu),e||(e=this.scene);var t=[];return e.traverseVisible((function(e){(e instanceof n.Mesh||e instanceof n.Line||e instanceof n.Points)&&(e instanceof n.ImmediateRenderObject||!e.frustumCulled||$l.intersectsObject(e))&&t.push(e)})),t},t.prototype.getCurrentState=function(){return ie(ie({},this.getPose()),{mode:this.currentMode,workCode:this.pano.workCode,panoIndex:this.pano.panoIndex})},t.prototype.setState=function(e,r,i){var o,a,s,l,u,c,d,p,h,f,v;void 0===r&&(r=!1),void 0===i&&(i=!0),!(e=Object.assign({},e)).offset||e instanceof n.Vector3||(e.offset=new n.Vector3(e.offset.x,e.offset.y,e.offset.z)),"number"==typeof e.panoIndex&&(v=e.workCode?{workCode:e.workCode,panoIndex:e.panoIndex}:{workCode:null!==(a=null===(o=this.work)||void 0===o?void 0:o.workCode)&&void 0!==a?a:"",panoIndex:e.panoIndex});var A,m,g,y,b,x=null!==(s=e.mode)&&void 0!==s?s:this.state.mode;if(e.mode!==t.Mode.Floorplan&&e.mode!==t.Mode.Topview&&e.mode!==t.Mode.Mapview&&e.mode!==t.Mode.Model||this.models.loaded){if(this.controller&&this.controller.stopMomentumMovement(),this.state.mode!==x){if("VRPanorama"===x)return void this.changeMode("VRPanorama",void 0,void 0,!0);var w={workCode:null==v?void 0:v.workCode,panoIndex:null==v?void 0:v.panoIndex};"number"==typeof e.longitude&&(w.longitude=e.longitude),"number"==typeof e.latitude&&(w.latitude=e.latitude),"number"==typeof e.fov&&(w.fov=e.fov),"number"==typeof e.distance&&"Mapview"===e.mode&&(w.distance=e.distance),e.offset instanceof n.Vector3&&"Mapview"===e.mode&&(w.offset=e.offset);var M=ie(ie({initial:{state:w,currentState:this.getCurrentState(),duration:this.modeChangeDuration,userAction:!1}},this.commonParams()),this.controllerInits[x]),E=Dl[x].initAnimationEndState(M);A=E.longitude,m=E.latitude,g=E.fov,y=E.offset,b=E.distance}else A=null!==(l=e.longitude)&&void 0!==l?l:this.state.longitude,m=null!==(u=e.latitude)&&void 0!==u?u:this.state.latitude,g=null!==(c=e.fov)&&void 0!==c?c:this.state.fov,y=null!==(d=e.offset)&&void 0!==d?d:this.state.offset,b=null!==(p=e.distance)&&void 0!==p?p:this.state.distance;var C={workCode:(null!=v?v:this.pano).workCode,panoIndex:(null!=v?v:this.pano).panoIndex,mode:x,longitude:A,latitude:m,fov:g,offset:y,distance:b};this.emit("state.set",$o("state.set",{userAction:i,state:C})),ta(this.state,C)||(this.controller&&"VRPanorama"===C.mode&&C.mode!==this.state.mode?(ea(this.state,C),this.changeMode("VRPanorama")):this.controller&&"XRPanorama"===C.mode&&C.mode!==this.state.mode?(ea(this.state,C),this.changeMode("XRPanorama")):(ea(this.state,C),this.controller&&i&&(this.controller.userAction=!1),r&&this.state.mode===C.mode&&(this.syncingState=this.syncState(Ae(),0,r),this.syncingState&&(null===(h=this.controller)||void 0===h||h.updateTime(Ae(),0),this.syncingState=!1)),this.emit("state.change",$o("state.change",{userAction:i,state:this.state})),null===(f=this.analysis)||void 0===f||f.state(this.works,this.state)))}else this.throwError(new Error("model is not ready."))},t.prototype.aroundScissor=function(e){if(this.renderer)if("XRPanorama"!==this.state.mode){var t=new n.Vector2,r=0!==this.scissor.left||0!==this.scissor.bottom||1!==this.scissor.width||1!==this.scissor.height;if(r){this.renderer.getSize(t);var i=Math.floor(t.x*this.scissor.left),o=Math.floor(t.y*this.scissor.bottom),a=Math.floor(t.x*this.scissor.width),s=Math.floor(t.y*this.scissor.height);this.renderer.setViewport(i,o,a,s),this.renderer.setScissor(i,o,a,s),this.renderer.setScissorTest(!0)}e(),r&&(this.renderer.setViewport(0,0,t.x,t.y),this.renderer.setScissor(0,0,t.x,t.y),this.renderer.setScissorTest(!1))}else e()},t.prototype.syncState=function(e,r,i){void 0===i&&(i=!1);var o=this.stateSynced;if(this.stateSynced=!1,0===this.works.length)return!1;if(!this.controller)return!1;if(this.state.mode!==this.currentMode){var a={mode:this.state.mode,workCode:this.state.workCode,panoIndex:this.state.panoIndex,longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset,distance:this.state.distance};return this.changeMode(this.state.mode,a,this.modeChangeDuration,this.controller.userAction),!0}if(!this.controller.isReady())return!1;if(this.controller instanceof Dl.Model){if(!this.camera.pose.offset.equals(this.state.offset)){var s={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return this.controller.moveToPosition(this.state.offset,ie(ie({},s),{duration:i?0:void 0}),!1),!0}}else{var l={workCode:this.state.workCode,panoIndex:this.state.panoIndex};if(!Ze(l,this.pano)&&"moveToPano"in this.controller&&"function"==typeof this.controller.moveToPano){s={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset,distance:this.state.distance};return this.controller.moveToPano(l,s,!1),!0}}if(this.controller instanceof Dl.Floorplan||this.controller instanceof Dl.Topview||this.controller instanceof Dl.Mapview){var u=1,c=Math.PI/45,d=i?this.state.fov:Xo(this.camera.pose.fov,this.state.fov,u),p=i?this.state.distance:Xo(this.camera.pose.distance,this.state.distance,.2),h=i?(new n.Vector3).copy(this.state.offset):function(e,t,r){if(e.equals(t))return(new n.Vector3).copy(t);var i=(new n.Vector3).subVectors(t,e);return i.lengthSq()<r*r?i.copy(t):i.setLength(r).add(e)}(this.camera.pose.offset,this.state.offset,.2),f=i?{longitude:this.state.longitude,latitude:this.state.latitude}:Jo({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},c),v=f.longitude,A=f.latitude;if(zo(d,this.camera.pose.fov)||Ho(h,this.camera.pose.offset)||zo(p,this.camera.pose.distance)||zo(v,this.camera.pose.longitude,2*Math.PI)||zo(A,this.camera.pose.latitude)){var m={x:h.x,y:h.y,z:h.z},g={fov:d};return Object.assign(m,{distance:p}),Object.assign(g,{longitude:v,latitude:A}),this.controller.stopMomentumMovement(),this.controller.cameraMotion.set(g,0).catch(fe),this.controller.locationMotion.set(m,0).catch(fe),!0}}else{u=1,c=Math.PI/45,d=i?this.state.fov:Xo(this.camera.pose.fov,this.state.fov,u);var y=i?{longitude:this.state.longitude,latitude:this.state.latitude}:Jo({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},c);v=y.longitude,A=y.latitude;if(zo(v,this.camera.pose.longitude,2*Math.PI)||zo(A,this.camera.pose.latitude)||zo(d,this.camera.pose.fov))return this.controller.stopMomentumMovement(),this.controller.cameraMotion.set({longitude:v,latitude:A,fov:d},0).catch(fe),!0}if(this.stateSynced=!0,!1===o&&this.emit("state.synced",$o("state.synced",{userAction:!1,state:this.state})),this.readyCallbacks.length&&this.stateSynced){var b=this.currentMode;if(!(b===t.Mode.Floorplan||b===t.Mode.Topview||b===t.Mode.Mapview||b===t.Mode.Model)||this.models.loaded){var x=this.readyCallbacks.slice();this.readyCallbacks.length=0;for(var w=0,M=x;w<M.length;w++){var E=M[w];this.controller instanceof Dl.Panorama?!0!==E.tile||this.controller.isTileReady()?E():this.readyCallbacks.push(E):E()}}}return!1},t.prototype.ready=function(e){var t=this;return void 0===e&&(e={}),new Promise((function(r){var n;t.readyCallbacks.push(Object.assign(r,{tile:null!==(n=e.tile)&&void 0!==n&&n}))}))},t.prototype.requestFullscreen=function(){var e;if(Zo()){var t=null===(e=this.getElement())||void 0===e?void 0:e.parentNode;t&&"requestFullscreen"in t&&"undefined"!=typeof document&&null===document.fullscreenElement&&t.requestFullscreen()}},t.prototype.exitFullscreen=function(){"undefined"!=typeof document&&document.fullscreenElement&&"exitFullscreen"in document&&document.exitFullscreen()},t.prototype.throwError=function(e){this.hasListener("error")?this.emit("error",e):console.error(e)},t.prototype.loadModel=function(e){for(var t=this,r=[],n=function(e){var n=i.models.filter((function(t){var r;return(null===(r=t.work)||void 0===r?void 0:r.workCode)===e.workCode}))[0];if(n)n.work=e,r.push(n);else{var o=new Zi({onError:function(r){t.emit("model.error",$o("model.request",{work:e,model:o,error:r}))},onShownFloorChange:function(r){t.emit("model.changeShownFloor",$o("model.request",{work:e,model:o,error:null}))},onLoad:function(){t.emit("model.load",$o("model.request",{work:e,model:o,error:null}))}});r.push(o),i.emit("model.request",$o("model.request",{work:e,model:o,error:null})),o.load(e,{networkSubscribe:i.networkSubscribe,requestProxy:i.requestProxy,textureOptions:i.textureOptions})}},i=this,o=0,a=e;o<a.length;o++){n(a[o])}if(this.models.length>0){for(var s=0,l=this.models;s<l.length;s++){var u=l[s];-1===r.indexOf(u)&&this.lastModels.push(u)}this.models.length=0}for(var c=0,d=r;c<d.length;c++){u=d[c];this.models.push(u)}return this.renderer&&(this.models.loaded=!1),new Promise((function(e){t.on("models.load",(function(){e()}))}))},t.prototype.commonParams=function(){return{ident:this.ident,scene:this.scene,xrCustomObjectsScene:this.xrCustomObjectsScene,helper:this.helperGroup,boundingMesh:this.boundingMesh,camera:this.camera,renderer:this.renderer,scissor:this.scissor,element:this.getElement(),models:this.models,works:this.works,imageOptions:this.imageOptions,enableIOSEDR:this._enableIOSEDR,enableEDL:this.enableEDL,extraElements:this.extraElements,videoTexture:this.videoTexture,networkSubscribe:this.networkSubscribe,requestProxy:this.requestProxy}},t.prototype.applyController=function(e,r){var n=this;if(!this.renderer)throw new Error("renderer is not initialized.");e!==t.Mode.Mapview&&(this.enableEDL=!1);var i=Dl[e];if(e!==this.currentMode)for(var o=0,a=this.models;o<a.length;o++){a[o].show()}this.currentMode=e;for(var s=new i(r),l=function(e){s.on(e,(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];if(n.emit.apply(n,ue([e],t,!1)))return!1}))},u=0,c=Fl;u<c.length;u++){l(c[u])}var d=Dl[e].initAnimationEndState(r),p=r.initial.userAction;return ta(this.state,d)||(ea(this.state,d),this.emit("state.change",$o("state.change",{userAction:p,state:this.state}))),this.emit("currentState.change",$o("currentState.change",{userAction:p,state:this.getCurrentState()})),s.on("camera.update",(function(e){var t;if(n.controller){var r=n.controller.getTargetState();e.userAction&&!1===n.syncingState&&n.state.mode===r.mode&&!ta(n.state,r)&&(ea(n.state,r),n.emit("state.change",$o("state.change",{userAction:e.userAction,state:n.state})),null===(t=n.analysis)||void 0===t||t.state(n.works,n.state))}n.emit("currentState.change",$o("currentState.change",{userAction:e.userAction,state:n.getCurrentState()}))})),s.on("initAnimation.start",(function(e){var t,r=e.state,i=e.userAction;i&&n.state.mode===r.mode&&!ta(n.state,r)&&(ea(n.state,r),n.emit("state.change",$o("state.change",{userAction:i,state:n.state})),null===(t=n.analysis)||void 0===t||t.state(n.works,n.state))})),s.on("initAnimation.end",(function(e){var t,r=e.state,i=e.userAction;i&&n.state.mode===r.mode&&!ta(n.state,r)&&(ea(n.state,r),n.emit("state.change",$o("state.change",{userAction:i,state:n.state})),null===(t=n.analysis)||void 0===t||t.state(n.works,n.state))})),s.on("pano.moveTo",(function(e){var t,r=e.state,i=e.userAction;n.pano={workCode:r.workCode,panoIndex:r.panoIndex},i&&n.state.mode===r.mode&&!ta(n.state,r)&&(ea(n.state,r),n.emit("state.change",$o("state.change",{userAction:i,state:n.state})),null===(t=n.analysis)||void 0===t||t.state(n.works,n.state))})),s.on("pano.arrived",(function(e){var t,r=e.state,i=e.userAction;i&&n.state.mode===r.mode&&!ta(n.state,r)&&(ea(n.state,r),n.emit("state.change",$o("state.change",{userAction:i,state:n.state})),null===(t=n.analysis)||void 0===t||t.state(n.works,n.state))})),s.on("pano.moveTo",(function(e){var t=e.userAction;n.emit("currentState.change",$o("currentState.change",{userAction:t,state:n.getCurrentState()}))})),s.on("pano.request",(function(e){n.emit("pano.request",e),e.defaultPrevented||n.moveToPano(e.state,e.options,e.userAction)})),s.on("vr.requestExit",(function(){n.currentMode===t.Mode.VRPanorama&&(n.exitFullscreen(),n.changeMode(t.Mode.Panorama))})),s.on("error",(function(e){return n.throwError(e)})),s},t.prototype.removeEventListeners=function(){},t.Mode={Panorama:"Panorama",Model:"Model",Floorplan:"Floorplan",Topview:"Topview",Mapview:"Mapview",DepthPanorama:"DepthPanorama",VRPanorama:"VRPanorama",XRPanorama:"XRPanorama"},t.Line=null,t}(he),ou={instances:{},constructor:iu};"undefined"!=typeof window&&Object.assign(window,{__FIVE_DEBUG__:ou});var au=function(){function e(){}return e.createButton=function(e){var t=document.createElement("button");function r(){t.style.display="",t.style.cursor="auto",t.style.left="calc(50% - 75px)",t.style.width="150px",t.onmouseenter=null,t.onmouseleave=null,t.onclick=null,t.textContent="VR NOT SUPPORTED"}function n(e){e.style.position="absolute",e.style.bottom="20px",e.style.padding="12px 6px",e.style.border="1px solid #fff",e.style.borderRadius="4px",e.style.background="rgba(0,0,0,0.1)",e.style.color="#fff",e.style.font="normal 13px sans-serif",e.style.textAlign="center",e.style.opacity="0.5",e.style.outline="none",e.style.zIndex="999"}if("xr"in navigator)return t.id="VRButton",t.style.display="none",n(t),navigator.xr.isSessionSupported("immersive-vr").then((function(n){n?(t.style.display="",t.style.cursor="pointer",t.style.left="calc(50% - 50px)",t.style.width="100px",t.textContent="ENTER VR",t.onmouseenter=function(){t.style.opacity="1.0"},t.onmouseleave=function(){t.style.opacity="0.5"},t.onclick=function(){e&&e()}):r()})),t;var i=document.createElement("a");return!1===window.isSecureContext?(i.href=document.location.href.replace(/^http:/,"https:"),i.innerHTML="WEBXR NEEDS HTTPS"):(i.href="https://immersiveweb.dev/",i.innerHTML="WEBXR NOT AVAILABLE"),i.style.left="calc(50% - 90px)",i.style.width="180px",i.style.textDecoration="none",n(i),i},e}();exports.AnimationFrameLoop=Ne,exports.BVH=Lr,exports.BVHIntersect=Tr,exports.BVHNode=Pr,exports.BVHVector3=Ir,exports.Camera=Wt,exports.Clipper=We,exports.Five=iu,exports.InternalWebGLRenderer=zt,exports.IntersectMesh=Vo,exports.Model=Zi,exports.NetworkSubscribe=Re,exports.PBMContainer=st,exports.PBMGroup=et,exports.PBMMaterialReferenceCache=rt,exports.PBMMesh=tt,exports.PBMMeshMaterial=Ut,exports.PROXY_CONTROLLER_EVENT_NAMES=Fl,exports.PanoCircleMesh=Bo,exports.PanoCircleMeshCustom=Lo,exports.PanoCircleMeshSolid=ko,exports.RequestScheduler=br,exports.Scene=qt,exports.Subscribe=he,exports.TextureLoader=Ft,exports.Tile=yr,exports.Tile3DModel=Oi,exports.TileCubeTextureTarget=Dt,exports.TileNode=Yr,exports.Tileset=Sr,exports.TilesetCache=Mr,exports.TilesetTraverser=Cr,exports.Work=ho,exports.XRButton=au,exports.defaultImageURLTransform=_e,exports.defaultPbmParameters=it,exports.getViewportScale=Ql,exports.imageSupport=function(){return Ke||(Ke=Promise.all([Ge("data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A="),Ge("data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA")]).then((function(e){var t=e[0];return{webp:e[1],avif:t}})).catch((function(){return{webp:!1,avif:!1}})))},exports.isPanoId=$e,exports.panoEqual=Ze,exports.panoParse=Je,exports.panoStringify=Xe,exports.parseWork=wo;