@realsee/five 6.7.0-alpha.11 → 6.7.0-alpha.12

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 (164) hide show
  1. package/docs/assets/hierarchy.js +1 -1
  2. package/docs/assets/navigation.js +1 -1
  3. package/docs/assets/search.js +1 -1
  4. package/docs/classes/five.Camera.html +5 -5
  5. package/docs/classes/five.Five.html +1 -1
  6. package/docs/classes/five.InternalWebGLRenderer.html +1 -1
  7. package/docs/classes/five.Model.html +1 -1
  8. package/docs/classes/five.ModelScene.html +1 -1
  9. package/docs/classes/five.NetworkSubscribe.html +1 -1
  10. package/docs/classes/five.PBMContainer.html +1 -1
  11. package/docs/classes/five.PBMGroup.html +1 -1
  12. package/docs/classes/five.PBMMesh.html +1 -1
  13. package/docs/classes/five.PBMMeshMaterial.html +1 -1
  14. package/docs/classes/five.PBMPointCloud.html +1 -1
  15. package/docs/classes/five.PBMPointCloudMaterial.html +1 -1
  16. package/docs/classes/five.PBMSkinnedMesh.html +1 -1
  17. package/docs/classes/five.PanoCircleMesh.html +1 -1
  18. package/docs/classes/five.PanoCircleMeshCustom.html +1 -1
  19. package/docs/classes/five.PanoCircleMeshSolid.html +1 -1
  20. package/docs/classes/five.Parameter.html +1 -1
  21. package/docs/classes/five.Scene.html +1 -1
  22. package/docs/classes/five.Subscribe.html +1 -1
  23. package/docs/classes/five.Tile3D.html +1 -1
  24. package/docs/classes/five.TileNode.html +1 -1
  25. package/docs/classes/five.TrajectoryNode.html +1 -1
  26. package/docs/classes/five.WorkResolvedObserver.html +1 -1
  27. package/docs/classes/gltf-loader.DDSLoader.html +1 -1
  28. package/docs/classes/gltf-loader.DRACOLoader.html +1 -1
  29. package/docs/classes/gltf-loader.GLTFLoader.html +1 -1
  30. package/docs/classes/gltf-loader.GLTFObject.html +1 -1
  31. package/docs/classes/gltf-loader.THREEGLTFLoader.html +1 -1
  32. package/docs/classes/line.Line.html +1 -1
  33. package/docs/classes/line.LineGeometry.html +1 -1
  34. package/docs/classes/line.LineMaterial.html +1 -1
  35. package/docs/classes/line.LineSegmentsGeometry.html +1 -1
  36. package/docs/classes/line.THREE_Line2.html +1 -1
  37. package/docs/classes/line.THREE_LineSegments2.html +1 -1
  38. package/docs/classes/plugins.BasePlugin.Controller.html +1 -1
  39. package/docs/classes/plugins.RoundedBoxGeometry.html +1 -1
  40. package/docs/classes/sticker.Sticker.html +1 -1
  41. package/docs/classes/vfx.Airflow.html +1 -1
  42. package/docs/classes/vfx.Flame.html +1 -1
  43. package/docs/classes/vfx.Particle.html +1 -1
  44. package/docs/classes/vfx.ParticleGPU.html +1 -1
  45. package/docs/classes/vfx.SpotLight.html +1 -1
  46. package/docs/functions/plugins.DynamicPathLinePlugin.html +1 -0
  47. package/docs/hierarchy.html +1 -1
  48. package/docs/interfaces/five.AddableObject.html +1 -1
  49. package/docs/interfaces/five.AjaxOptions.html +1 -1
  50. package/docs/interfaces/five.BaseEvent.html +1 -1
  51. package/docs/interfaces/five.EventCallback.html +1 -1
  52. package/docs/interfaces/five.GestureEvent.html +1 -1
  53. package/docs/interfaces/five.ImageOptions.html +1 -1
  54. package/docs/interfaces/five.IntersectEvent.html +1 -1
  55. package/docs/interfaces/five.IntersectMesh.html +1 -1
  56. package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
  57. package/docs/interfaces/five.Intersection.html +1 -1
  58. package/docs/interfaces/five.LooseWorkPanorama.html +1 -1
  59. package/docs/interfaces/five.LooseWorkWithExtrinsics.html +1 -1
  60. package/docs/interfaces/five.ModeChangeEvent.html +1 -1
  61. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
  62. package/docs/interfaces/five.ModelEvent.html +1 -1
  63. package/docs/interfaces/five.ModelLike.html +1 -1
  64. package/docs/interfaces/five.ModelSceneEvent.html +1 -1
  65. package/docs/interfaces/five.MovePanoOptions.html +1 -1
  66. package/docs/interfaces/five.NetworkAbortError.html +1 -1
  67. package/docs/interfaces/five.NetworkFirbiddenError.html +1 -1
  68. package/docs/interfaces/five.NetworkOptions.html +1 -1
  69. package/docs/interfaces/five.NetworkProxyError.html +1 -1
  70. package/docs/interfaces/five.NetworkResourceEvent.html +1 -1
  71. package/docs/interfaces/five.NetworkResponseError.html +1 -1
  72. package/docs/interfaces/five.NetworkTimeoutError.html +1 -1
  73. package/docs/interfaces/five.ObjectEvent.html +1 -1
  74. package/docs/interfaces/five.PBMMaterial.html +1 -1
  75. package/docs/interfaces/five.PBMMeshMaterialParameters.html +1 -1
  76. package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +1 -1
  77. package/docs/interfaces/five.PanoCircleMeshInterface.html +1 -1
  78. package/docs/interfaces/five.PanoEvent.html +1 -1
  79. package/docs/interfaces/five.PanoTextureEvent.html +1 -1
  80. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +1 -1
  81. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
  82. package/docs/interfaces/five.ParameterMaterialValue.html +1 -1
  83. package/docs/interfaces/five.ParameterTilesetValue.html +1 -1
  84. package/docs/interfaces/five.ParameterValue.html +1 -1
  85. package/docs/interfaces/five.Pose.html +1 -1
  86. package/docs/interfaces/five.RenderEvent.html +1 -1
  87. package/docs/interfaces/five.ResolvedParameterValue.html +1 -1
  88. package/docs/interfaces/five.State.html +1 -1
  89. package/docs/interfaces/five.StateEvent.html +1 -1
  90. package/docs/interfaces/five.TextureOptions.html +1 -1
  91. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +1 -1
  92. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +1 -1
  93. package/docs/interfaces/five.ViewLayer.html +1 -1
  94. package/docs/interfaces/five.WorkCubeImage.html +1 -1
  95. package/docs/interfaces/five.WorkImage.html +1 -1
  96. package/docs/interfaces/five.WorkObserver.html +1 -1
  97. package/docs/interfaces/five.WorkTile.html +1 -1
  98. package/docs/interfaces/five.WorksEvent.html +1 -1
  99. package/docs/interfaces/five.XRControllerEvent.html +1 -1
  100. package/docs/interfaces/five.XRGestureEvent.html +1 -1
  101. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +1 -1
  102. package/docs/interfaces/five.XRSessionEvent.html +1 -1
  103. package/docs/interfaces/plugins.BackgroundPluginController.html +1 -1
  104. package/docs/interfaces/plugins.BackgroundPluginType.EventMap.html +1 -1
  105. package/docs/interfaces/plugins.BasePlugin.State.html +1 -1
  106. package/docs/interfaces/plugins.DynamicPathLinePluginController.html +67 -0
  107. package/docs/interfaces/plugins.DynamicPathLinePluginType.Config.html +22 -0
  108. package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +26 -0
  109. package/docs/interfaces/plugins.DynamicPathLinePluginType.Params.html +6 -0
  110. package/docs/interfaces/plugins.DynamicPathLinePluginType.PathConfig.html +14 -0
  111. package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +10 -0
  112. package/docs/interfaces/plugins.ItemMaskController.html +1 -1
  113. package/docs/interfaces/plugins.ItemMaskPluginType.EventMap.html +1 -1
  114. package/docs/interfaces/plugins.ItemMaskPluginType.State.html +1 -1
  115. package/docs/interfaces/plugins.OrientationPluginController.html +1 -1
  116. package/docs/interfaces/plugins.OrientationPluginType.EventMap.html +1 -1
  117. package/docs/interfaces/plugins.OrientationPluginType.State.html +1 -1
  118. package/docs/interfaces/plugins.PanoAnimeController.html +1 -1
  119. package/docs/interfaces/plugins.PanoAnimePluginType.EventMap.html +1 -1
  120. package/docs/interfaces/plugins.PanoAnimePluginType.State.html +1 -1
  121. package/docs/interfaces/plugins.PluginTemplateType.EventMap.html +1 -1
  122. package/docs/interfaces/plugins.PluginTemplateType.State.html +1 -1
  123. package/docs/interfaces/plugins.TrajectoryController.html +1 -1
  124. package/docs/interfaces/react.FiveInjectionTypes.html +1 -1
  125. package/docs/modules/plugins.DynamicPathLinePluginType.html +1 -0
  126. package/docs/modules/plugins.html +1 -1
  127. package/docs/types/five.ParseOptions.html +1 -1
  128. package/docs/types/plugins.BasePlugin.EventMap.html +1 -1
  129. package/docs/types/plugins.DynamicPathLinePluginType.PluginData.html +3 -0
  130. package/docs/types/plugins.DynamicPathLinePluginType.ServerData.html +3 -0
  131. package/docs/types/vue.FiveProviderComponent.html +1 -1
  132. package/five/index.js +53 -53
  133. package/five/index.mjs +2720 -2705
  134. package/gltf-loader/index.js +3 -3
  135. package/gltf-loader/index.mjs +3 -3
  136. package/line/index.js +3 -3
  137. package/line/index.mjs +3 -3
  138. package/package.json +1 -1
  139. package/plugins/index.d.ts +235 -0
  140. package/plugins/index.js +213 -15
  141. package/plugins/index.mjs +2211 -1396
  142. package/react/index.js +2 -2
  143. package/react/index.mjs +2 -2
  144. package/shader-lib/index.d.ts +24 -1
  145. package/shader-lib/index.js +14 -13
  146. package/shader-lib/index.mjs +397 -169
  147. package/sticker/index.js +3 -3
  148. package/sticker/index.mjs +3 -3
  149. package/umd/five-gltf-loader.js +3 -3
  150. package/umd/five-line.js +3 -3
  151. package/umd/five-plugins.js +213 -15
  152. package/umd/five-react.js +2 -2
  153. package/umd/five-shader-lib.js +14 -13
  154. package/umd/five-sticker.js +3 -3
  155. package/umd/five-vfx.js +2 -2
  156. package/umd/five-vue.js +2 -2
  157. package/umd/five.js +53 -53
  158. package/vfx/index.js +2 -2
  159. package/vfx/index.mjs +2 -2
  160. package/vue/index.d.ts +1 -1
  161. package/vue/index.js +2 -2
  162. package/vue/index.mjs +2 -2
  163. package/work-downloader/index.js +2 -2
  164. package/work-downloader/index.mjs +2 -2
package/plugins/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five
4
- * Generated: 2025/10/29
5
- * Version: 6.7.0-alpha.11
4
+ * Generated: 2025/11/4
5
+ * Version: 6.7.0-alpha.12
6
6
  * Terms:
7
7
  * Realsee SDK License Agreement
8
8
  * Update: July 28, 2021
@@ -252,13 +252,13 @@
252
252
  * No amendment to or modification of this Agreement will be binding unless in
253
253
  * writing and signed by Realsee. You and Realsee hereto confirm that this
254
254
  * Agreement and all related documents shall be drafted in English.
255
- */"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ne=require("@realsee/five"),_=require("three"),Ht=require("@realsee/five/plugins");function fn(f){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(f){for(const e in f)if(e!=="default"){const a=Object.getOwnPropertyDescriptor(f,e);Object.defineProperty(o,e,a.get?a:{enumerable:!0,get:()=>f[e]})}}return o.default=f,Object.freeze(o)}const w=fn(_);function pn(f){return/^https?:\/\/|^\/\//.test(f)||/^data:/.test(f)}function dn(f,o){return pn(o)?o:"".concat(f).concat(o)}exports.BasePlugin=void 0;(function(f){var o=(function(){function e(a,t){this.hooks=new Ne.Subscribe,this.staticPrefix="//vr-image-4.realsee-cdn.cn",this.five=a,t!=null&&t.staticPrefix&&(this.staticPrefix=t.staticPrefix)}return e.prototype.getCurrentState=function(){return this.state},e.prototype.absoluteUrl=function(a){return dn(this.staticPrefix,a)},e})();f.Controller=o})(exports.BasePlugin||(exports.BasePlugin={}));var Et=function(f,o){return Et=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,a){e.__proto__=a}||function(e,a){for(var t in a)Object.prototype.hasOwnProperty.call(a,t)&&(e[t]=a[t])},Et(f,o)};function Re(f,o){if(typeof o!="function"&&o!==null)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");Et(f,o);function e(){this.constructor=f}f.prototype=o===null?Object.create(o):(e.prototype=o.prototype,new e)}var j=function(){return j=Object.assign||function(o){for(var e,a=1,t=arguments.length;a<t;a++){e=arguments[a];for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&(o[s]=e[s])}return o},j.apply(this,arguments)};function ke(f,o,e,a){function t(s){return s instanceof e?s:new e(function(c){c(s)})}return new(e||(e=Promise))(function(s,c){function l(v){try{d(a.next(v))}catch(T){c(T)}}function g(v){try{d(a.throw(v))}catch(T){c(T)}}function d(v){v.done?s(v.value):t(v.value).then(l,g)}d((a=a.apply(f,o||[])).next())})}function Le(f,o){var e={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},a,t,s,c=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return c.next=l(0),c.throw=l(1),c.return=l(2),typeof Symbol=="function"&&(c[Symbol.iterator]=function(){return this}),c;function l(d){return function(v){return g([d,v])}}function g(d){if(a)throw new TypeError("Generator is already executing.");for(;c&&(c=0,d[0]&&(e=0)),e;)try{if(a=1,t&&(s=d[0]&2?t.return:d[0]?t.throw||((s=t.return)&&s.call(t),0):t.next)&&!(s=s.call(t,d[1])).done)return s;switch(t=0,s&&(d=[d[0]&2,s.value]),d[0]){case 0:case 1:s=d;break;case 4:return e.label++,{value:d[1],done:!1};case 5:e.label++,t=d[1],d=[0];continue;case 7:d=e.ops.pop(),e.trys.pop();continue;default:if(s=e.trys,!(s=s.length>0&&s[s.length-1])&&(d[0]===6||d[0]===2)){e=0;continue}if(d[0]===3&&(!s||d[1]>s[0]&&d[1]<s[3])){e.label=d[1];break}if(d[0]===6&&e.label<s[1]){e.label=s[1],s=d;break}if(s&&e.label<s[2]){e.label=s[2],e.ops.push(d);break}s[2]&&e.ops.pop(),e.trys.pop();continue}d=o.call(f,e)}catch(v){d=[6,v],t=0}finally{a=s=0}if(d[0]&5)throw d[1];return{value:d[0]?d[1]:void 0,done:!0}}}function Ft(f,o,e){if(e||arguments.length===2)for(var a=0,t=o.length,s;a<t;a++)(s||!(a in o))&&(s||(s=Array.prototype.slice.call(o,0,a)),s[a]=o[a]);return f.concat(s||Array.prototype.slice.call(o))}function vn(f){return new Promise(function(o,e){var a=new Image;a.onload=function(){a.onload=a.onerror=function(){},o(a)},a.onerror=function(t){a.onload=a.onerror=function(){},e(t)},a.crossOrigin="",a.src=f})}var mn=typeof performance!="undefined"&&typeof performance.timing!="undefined"?performance.timing.navigationStart:Date.now(),gt=typeof performance!="undefined"?(function(){return mn+performance.now()}):(function(){return Date.now()});function at(f,o,e){return f+(o-f)*e}function gn(f,o,e,a){var t=(o*e+2*f)/Math.pow(e,3),s=-(2*o*e+3*f)/Math.pow(e,2),c=o,l=f;return t*Math.pow(a,3)+s*Math.pow(a,2)+c*a+l}function yn(f,o,e,a){var t=(o*e+2*f)/Math.pow(e,3),s=-(2*o*e+3*f)/Math.pow(e,2),c=o;return 3*t*Math.pow(a,2)+2*s*a+c}function bn(f,o,e,a){var t=a[1]-a[0];return f=it(f,a),o=it(o,a),o-f>t/2?at(f+t,o,e):f-o>t/2?at(f-t,o,e):at(f,o,e)}function it(f,o){var e=o[1]-o[0];return f<o[0]?it(f+e,o):f>=o[1]?it(f-e,o):f}function Tn(f,o,e,a){return a?bn(f,o,e,a):at(f,o,e)}var Vt=(function(){function f(o){this.config={},this.progress=1,this.ended=!0,this.value={},this.startTime=gt(),this.startVelocity=0,this.duration=0,this.keyframes=[];for(var e in o){var a=o[e];typeof a=="number"?(this.value[e]=a,this.config[e]={circle:!1}):(this.value[e]=a.value,this.config[e]={circle:a.circle})}this.keyframes=[{progress:0,value:j({},this.value)},{progress:1,value:j({},this.value)}]}return f.prototype.getProgress=function(o){var e=o-this.startTime;return e<0?0:e>=this.duration?1:1-gn(1,this.startVelocity,this.duration,e)},f.prototype.getValue=function(o){for(var e=1;e<this.keyframes.length;e++)if(this.keyframes[e].progress>o){var a=this.keyframes[e-1],t=this.keyframes[e],s={};for(var c in this.config){var l=(o-a.progress)/(t.progress-a.progress);s[c]=Tn(a.value[c],t.value[c],l,this.config[c].circle)}return s}return j({},this.keyframes[this.keyframes.length-1].value)},f.prototype.getProgressVelocity=function(o){var e=o-this.startTime;return e>=this.duration?0:yn(1,this.startVelocity,this.duration,e)},f.prototype.update=function(o){return this.ended?!0:(this.progress=Math.min(1,Math.max(0,this.progress,this.getProgress(o))),this.value=this.getValue(this.progress),this.ended=this.progress>=1,this.ended&&this.callbacks&&(this.callbacks[0](),this.callbacks=void 0),this.ended)},f.prototype.getKeyFrameSegment=function(o){for(var e=this.getProgress(o),a=1;a<this.keyframes.length;a++)if(this.keyframes[a].progress>e)return[this.keyframes[a-1],this.keyframes[a]];return[this.keyframes[this.keyframes.length-2],this.keyframes[this.keyframes.length-1]]},f.prototype.getTargetKeyframe=function(){return this.keyframes[this.keyframes.length-1]},f.prototype.set=function(o,e,a,t){var s;a===void 0&&(a=0),isNaN(e)&&(e=0),isNaN(a)&&(a=0),t=t!=null?t:gt();var c=this.getProgress(t),l=this.getValue(c),g={};for(var d in this.config)g[d]=(s=o[d])!==null&&s!==void 0?s:l[d];var v=[{progress:0,value:l},{progress:1,value:g}];return this.setKeyframes(v,e,a,t)},f.prototype.setKeyframes=function(o,e,a,t){var s=this;if(a===void 0&&(a=0),o.length<2)throw new Error("keyframes invalid.");return isNaN(e)&&(e=0),isNaN(a)&&(a=0),this.callbacks&&(this.callbacks[1](new Error("motion aborted.")),this.callbacks=void 0),new Promise(function(c,l){t=t!=null?t:gt(),s.progress=0,s.ended=!1,s.startTime=t,s.startVelocity=a,s.keyframes=o,s.duration=e,e===0?(s.progress=1,s.value=j({},o[o.length-1].value)):s.value=j({},o[0].value),s.callbacks=[c,l]})},f.prototype.dispose=function(){this.callbacks&&(this.callbacks[1](new Error("motion dispose.")),this.callbacks=void 0)},f})(),wn=[{progress:0,value:{scale:0,opacity:0,shadow:2}},{progress:.2,value:{scale:.5,opacity:1,shadow:1}},{progress:.8,value:{scale:2,opacity:0,shadow:.5}},{progress:1,value:{scale:2,opacity:0,shadow:.5}}],En=[{progress:0,value:{scale:0,opacity:0,shadow:2}},{progress:.2,value:{scale:.4,opacity:1,shadow:2}},{progress:.8,value:{scale:1.6,opacity:.4,shadow:.5}},{progress:1,value:{scale:2,opacity:0,shadow:.5}}],Pn=`
255
+ */"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ie=require("@realsee/five"),I=require("three"),At=require("@realsee/five/plugins");function yn(c){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(c){for(const e in c)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(c,e);Object.defineProperty(a,e,n.get?n:{enumerable:!0,get:()=>c[e]})}}return a.default=c,Object.freeze(a)}const v=yn(I);function bn(c){return/^https?:\/\/|^\/\//.test(c)||/^data:/.test(c)}function wn(c,a){return bn(a)?a:"".concat(c).concat(a)}exports.BasePlugin=void 0;(function(c){var a=(function(){function e(n,t){this.hooks=new Ie.Subscribe,this.staticPrefix="//vr-image-4.realsee-cdn.cn",this.five=n,t!=null&&t.staticPrefix&&(this.staticPrefix=t.staticPrefix)}return e.prototype.getCurrentState=function(){return this.state},e.prototype.absoluteUrl=function(n){return wn(this.staticPrefix,n)},e})();c.Controller=a})(exports.BasePlugin||(exports.BasePlugin={}));var Pt=function(c,a){return Pt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])},Pt(c,a)};function de(c,a){if(typeof a!="function"&&a!==null)throw new TypeError("Class extends value "+String(a)+" is not a constructor or null");Pt(c,a);function e(){this.constructor=c}c.prototype=a===null?Object.create(a):(e.prototype=a.prototype,new e)}var z=function(){return z=Object.assign||function(a){for(var e,n=1,t=arguments.length;n<t;n++){e=arguments[n];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(a[o]=e[o])}return a},z.apply(this,arguments)};function Ne(c,a,e,n){function t(o){return o instanceof e?o:new e(function(s){s(o)})}return new(e||(e=Promise))(function(o,s){function l(g){try{f(n.next(g))}catch(y){s(y)}}function h(g){try{f(n.throw(g))}catch(y){s(y)}}function f(g){g.done?o(g.value):t(g.value).then(l,h)}f((n=n.apply(c,a||[])).next())})}function ke(c,a){var e={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,t,o,s=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return s.next=l(0),s.throw=l(1),s.return=l(2),typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function l(f){return function(g){return h([f,g])}}function h(f){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,f[0]&&(e=0)),e;)try{if(n=1,t&&(o=f[0]&2?t.return:f[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,f[1])).done)return o;switch(t=0,o&&(f=[f[0]&2,o.value]),f[0]){case 0:case 1:o=f;break;case 4:return e.label++,{value:f[1],done:!1};case 5:e.label++,t=f[1],f=[0];continue;case 7:f=e.ops.pop(),e.trys.pop();continue;default:if(o=e.trys,!(o=o.length>0&&o[o.length-1])&&(f[0]===6||f[0]===2)){e=0;continue}if(f[0]===3&&(!o||f[1]>o[0]&&f[1]<o[3])){e.label=f[1];break}if(f[0]===6&&e.label<o[1]){e.label=o[1],o=f;break}if(o&&e.label<o[2]){e.label=o[2],e.ops.push(f);break}o[2]&&e.ops.pop(),e.trys.pop();continue}f=a.call(c,e)}catch(g){f=[6,g],t=0}finally{n=o=0}if(f[0]&5)throw f[1];return{value:f[0]?f[1]:void 0,done:!0}}}function jt(c,a,e){if(e||arguments.length===2)for(var n=0,t=a.length,o;n<t;n++)(o||!(n in a))&&(o||(o=Array.prototype.slice.call(a,0,n)),o[n]=a[n]);return c.concat(o||Array.prototype.slice.call(a))}function En(c){return new Promise(function(a,e){var n=new Image;n.onload=function(){n.onload=n.onerror=function(){},a(n)},n.onerror=function(t){n.onload=n.onerror=function(){},e(t)},n.crossOrigin="",n.src=c})}var Tn=typeof performance!="undefined"&&typeof performance.timing!="undefined"?performance.timing.navigationStart:Date.now(),gt=typeof performance!="undefined"?(function(){return Tn+performance.now()}):(function(){return Date.now()});function it(c,a,e){return c+(a-c)*e}function Pn(c,a,e,n){var t=(a*e+2*c)/Math.pow(e,3),o=-(2*a*e+3*c)/Math.pow(e,2),s=a,l=c;return t*Math.pow(n,3)+o*Math.pow(n,2)+s*n+l}function xn(c,a,e,n){var t=(a*e+2*c)/Math.pow(e,3),o=-(2*a*e+3*c)/Math.pow(e,2),s=a;return 3*t*Math.pow(n,2)+2*o*n+s}function An(c,a,e,n){var t=n[1]-n[0];return c=at(c,n),a=at(a,n),a-c>t/2?it(c+t,a,e):c-a>t/2?it(c-t,a,e):it(c,a,e)}function at(c,a){var e=a[1]-a[0];return c<a[0]?at(c+e,a):c>=a[1]?at(c-e,a):c}function Sn(c,a,e,n){return n?An(c,a,e,n):it(c,a,e)}var Gt=(function(){function c(a){this.config={},this.progress=1,this.ended=!0,this.value={},this.startTime=gt(),this.startVelocity=0,this.duration=0,this.keyframes=[];for(var e in a){var n=a[e];typeof n=="number"?(this.value[e]=n,this.config[e]={circle:!1}):(this.value[e]=n.value,this.config[e]={circle:n.circle})}this.keyframes=[{progress:0,value:z({},this.value)},{progress:1,value:z({},this.value)}]}return c.prototype.getProgress=function(a){var e=a-this.startTime;return e<0?0:e>=this.duration?1:1-Pn(1,this.startVelocity,this.duration,e)},c.prototype.getValue=function(a){for(var e=1;e<this.keyframes.length;e++)if(this.keyframes[e].progress>a){var n=this.keyframes[e-1],t=this.keyframes[e],o={};for(var s in this.config){var l=(a-n.progress)/(t.progress-n.progress);o[s]=Sn(n.value[s],t.value[s],l,this.config[s].circle)}return o}return z({},this.keyframes[this.keyframes.length-1].value)},c.prototype.getProgressVelocity=function(a){var e=a-this.startTime;return e>=this.duration?0:xn(1,this.startVelocity,this.duration,e)},c.prototype.update=function(a){return this.ended?!0:(this.progress=Math.min(1,Math.max(0,this.progress,this.getProgress(a))),this.value=this.getValue(this.progress),this.ended=this.progress>=1,this.ended&&this.callbacks&&(this.callbacks[0](),this.callbacks=void 0),this.ended)},c.prototype.getKeyFrameSegment=function(a){for(var e=this.getProgress(a),n=1;n<this.keyframes.length;n++)if(this.keyframes[n].progress>e)return[this.keyframes[n-1],this.keyframes[n]];return[this.keyframes[this.keyframes.length-2],this.keyframes[this.keyframes.length-1]]},c.prototype.getTargetKeyframe=function(){return this.keyframes[this.keyframes.length-1]},c.prototype.set=function(a,e,n,t){var o;n===void 0&&(n=0),isNaN(e)&&(e=0),isNaN(n)&&(n=0),t=t!=null?t:gt();var s=this.getProgress(t),l=this.getValue(s),h={};for(var f in this.config)h[f]=(o=a[f])!==null&&o!==void 0?o:l[f];var g=[{progress:0,value:l},{progress:1,value:h}];return this.setKeyframes(g,e,n,t)},c.prototype.setKeyframes=function(a,e,n,t){var o=this;if(n===void 0&&(n=0),a.length<2)throw new Error("keyframes invalid.");return isNaN(e)&&(e=0),isNaN(n)&&(n=0),this.callbacks&&(this.callbacks[1](new Error("motion aborted.")),this.callbacks=void 0),new Promise(function(s,l){t=t!=null?t:gt(),o.progress=0,o.ended=!1,o.startTime=t,o.startVelocity=n,o.keyframes=a,o.duration=e,e===0?(o.progress=1,o.value=z({},a[a.length-1].value)):o.value=z({},a[0].value),o.callbacks=[s,l]})},c.prototype.dispose=function(){this.callbacks&&(this.callbacks[1](new Error("motion dispose.")),this.callbacks=void 0)},c})(),Mn=[{progress:0,value:{scale:0,opacity:0,shadow:2}},{progress:.2,value:{scale:.5,opacity:1,shadow:1}},{progress:.8,value:{scale:2,opacity:0,shadow:.5}},{progress:1,value:{scale:2,opacity:0,shadow:.5}}],_n=[{progress:0,value:{scale:0,opacity:0,shadow:2}},{progress:.2,value:{scale:.4,opacity:1,shadow:2}},{progress:.8,value:{scale:1.6,opacity:.4,shadow:.5}},{progress:1,value:{scale:2,opacity:0,shadow:.5}}],On=`
256
256
  varying vec2 vUv;
257
257
  void main() {
258
258
  vUv = uv;
259
259
  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
260
260
  }
261
- `,xn=`
261
+ `,Cn=`
262
262
  varying vec2 vUv;
263
263
  uniform sampler2D map;
264
264
  uniform vec4 color;
@@ -304,7 +304,7 @@ void main() {
304
304
  }
305
305
  }
306
306
  }
307
- `,An=(function(f){Re(o,f);function o(e,a){var t=f.call(this,e)||this;t.canvas=document.createElement("canvas"),t.group=new w.Group,t.wrapper=document.createElement("div"),t.style=document.createElement("style"),t.itemMaskMesh=(function(){var l=new w.Mesh(new w.SphereBufferGeometry(1,60,40),new w.ShaderMaterial({vertexShader:Pn,fragmentShader:xn,uniforms:{map:{value:new w.Texture},color:{value:new w.Vector4}},depthWrite:!1,depthTest:!1,transparent:!0}));return l.renderOrder=-3,l.geometry.rotateY(-Math.PI/2),l.geometry.scale(-1,1,1),l})(),t.onFivePanoArrived=function(l){t.state.mode==="mask"&&t.loadPanoMask(l)},t.onFiveWantsMoveToPano=function(l){t.state.mode==="box"&&t.select()},t.loadPanoMask=function(l){return ke(t,void 0,void 0,function(){var g,d,v,T,A,P,O,C,D,b;return Le(this,function(y){switch(y.label){case 0:return g=this,d=g.five,v=g.canvas,T=g.itemMaskMesh,A=g.data,P=v.getContext("2d"),O=d.observers[l],C=(b=A==null?void 0:A.object_mask_list.find(function(x){return x.derived_id===String(O.derivedId)}))===null||b===void 0?void 0:b.object_mask_url,C?[4,vn(C)]:[2];case 1:return D=y.sent(),v.width=D.width,v.height=D.height,P==null||P.drawImage(D,0,0,D.width,D.height),T.material.uniforms.map.value.image=D,T.material.uniforms.map.value.minFilter=w.LinearFilter,T.material.uniforms.map.value.needsUpdate=!0,T.position.copy(O.position),T.quaternion.copy(O.quaternion),d.scene.add(T),d.needsRender=!0,[2]}})})},t.onFiveMouseMove=function(l){var g;if(t.state.mode==="mask"&&t.five.state.mode==="Panorama"){var d=t,v=d.five,T=d.itemMaskMesh,A=v.observers[v.state.panoIndex],P=(g=l.pointers[0])===null||g===void 0?void 0:g.raycaster;if(P){var O=P.intersectObjects(t.group.children.filter(function(C){return C.userData.visible_viewpoint.includes(String(A.derivedId))}),!0)[0];O?T.material.uniforms.color.value=O.object.userData.color:T.material.uniforms.color.value=new w.Vector4(0,0,0,1)}}},t.onFiveTapGesture=function(l){var g=t.five,d=g.observers[g.state.panoIndex];if(l){var v=l.intersectObjects(t.group.children.filter(function(P){return P.userData.visible_viewpoint.includes(String(d.derivedId))}),!0)[0];if(v){t.select(v.object.name),t.stopAnimation&&t.stopAnimation(),t.tapPosition=v.point,t.changeTapScreenPosition();var T=new Vt({opacity:0,scale:0,shadow:2}),A=new Vt({opacity:0,scale:0,shadow:2});return T.setKeyframes(wn,1e3),A.setKeyframes(En,1e3),t.stopAnimation=Ne.AnimationFrameLoop.shared.add(function(P,O){var C,D=T.update(P),b=A.update(P);t.wrapper.firstChild.style.opacity="".concat(T.value.opacity),t.wrapper.firstChild.style.transform="scale(".concat(T.value.scale,")"),t.wrapper.firstChild.style.boxShadow="0 0 0 ".concat(T.value.shadow,"px #fff"),t.wrapper.lastChild.style.opacity="".concat(A.value.opacity),t.wrapper.lastChild.style.transform="scale(".concat(A.value.scale,")"),t.wrapper.lastChild.style.boxShadow="0 0 0 ".concat(A.value.shadow,"px #fff"),D&&b&&((C=t.stopAnimation)===null||C===void 0||C.call(t),t.stopAnimation=void 0,g.getElement().parentElement.removeChild(t.wrapper))},!1,0,10),g.getElement().parentElement.appendChild(t.wrapper),!1}}},t.changeTapScreenPosition=function(){if(t.tapPosition){var l=t.tapPosition.clone().project(t.five.camera),g=(l.x+1)/2,d=-(l.y-1)/2;t.wrapper.style.opacity=l.z>0&&l.z<1?"1":"0",t.wrapper.style.transform="translate(".concat(g*100,"%, ").concat(d*100,"%)")}},t.onFiveCameraUpdate=function(l){t.changeTapScreenPosition()},t.dispose=function(){t.disable()},t.five=e;var s={enabled:!0,visible:!0,mode:"box",selectedId:null,selectAll:!1};t.state=Object.assign(s,a==null?void 0:a.initialState);var c=j({},a==null?void 0:a.config);return t._config=c,t.group.rotateX(Math.PI),t.wrapper.className="ItemMaskPlugin",t.wrapper.innerHTML='<span class="ItemMaskPluginCircle"></span><span class="ItemMaskPluginCircle"></span>',t.style.innerHTML=`
307
+ `,In=(function(c){de(a,c);function a(e,n){var t=c.call(this,e)||this;t.canvas=document.createElement("canvas"),t.group=new v.Group,t.wrapper=document.createElement("div"),t.style=document.createElement("style"),t.itemMaskMesh=(function(){var l=new v.Mesh(new v.SphereBufferGeometry(1,60,40),new v.ShaderMaterial({vertexShader:On,fragmentShader:Cn,uniforms:{map:{value:new v.Texture},color:{value:new v.Vector4}},depthWrite:!1,depthTest:!1,transparent:!0}));return l.renderOrder=-3,l.geometry.rotateY(-Math.PI/2),l.geometry.scale(-1,1,1),l})(),t.onFivePanoArrived=function(l){t.state.mode==="mask"&&t.loadPanoMask(l)},t.onFiveWantsMoveToPano=function(l){t.state.mode==="box"&&t.select()},t.loadPanoMask=function(l){return Ne(t,void 0,void 0,function(){var h,f,g,y,w,P,A,S,C,T;return ke(this,function(b){switch(b.label){case 0:return h=this,f=h.five,g=h.canvas,y=h.itemMaskMesh,w=h.data,P=g.getContext("2d"),A=f.observers[l],S=(T=w==null?void 0:w.object_mask_list.find(function(x){return x.derived_id===String(A.derivedId)}))===null||T===void 0?void 0:T.object_mask_url,S?[4,En(S)]:[2];case 1:return C=b.sent(),g.width=C.width,g.height=C.height,P==null||P.drawImage(C,0,0,C.width,C.height),y.material.uniforms.map.value.image=C,y.material.uniforms.map.value.minFilter=v.LinearFilter,y.material.uniforms.map.value.needsUpdate=!0,y.position.copy(A.position),y.quaternion.copy(A.quaternion),f.scene.add(y),f.needsRender=!0,[2]}})})},t.onFiveMouseMove=function(l){var h;if(t.state.mode==="mask"&&t.five.state.mode==="Panorama"){var f=t,g=f.five,y=f.itemMaskMesh,w=g.observers[g.state.panoIndex],P=(h=l.pointers[0])===null||h===void 0?void 0:h.raycaster;if(P){var A=P.intersectObjects(t.group.children.filter(function(S){return S.userData.visible_viewpoint.includes(String(w.derivedId))}),!0)[0];A?y.material.uniforms.color.value=A.object.userData.color:y.material.uniforms.color.value=new v.Vector4(0,0,0,1)}}},t.onFiveTapGesture=function(l){var h=t.five,f=h.observers[h.state.panoIndex];if(l){var g=l.intersectObjects(t.group.children.filter(function(P){return P.userData.visible_viewpoint.includes(String(f.derivedId))}),!0)[0];if(g){t.select(g.object.name),t.stopAnimation&&t.stopAnimation(),t.tapPosition=g.point,t.changeTapScreenPosition();var y=new Gt({opacity:0,scale:0,shadow:2}),w=new Gt({opacity:0,scale:0,shadow:2});return y.setKeyframes(Mn,1e3),w.setKeyframes(_n,1e3),t.stopAnimation=Ie.AnimationFrameLoop.shared.add(function(P,A){var S,C=y.update(P),T=w.update(P);t.wrapper.firstChild.style.opacity="".concat(y.value.opacity),t.wrapper.firstChild.style.transform="scale(".concat(y.value.scale,")"),t.wrapper.firstChild.style.boxShadow="0 0 0 ".concat(y.value.shadow,"px #fff"),t.wrapper.lastChild.style.opacity="".concat(w.value.opacity),t.wrapper.lastChild.style.transform="scale(".concat(w.value.scale,")"),t.wrapper.lastChild.style.boxShadow="0 0 0 ".concat(w.value.shadow,"px #fff"),C&&T&&((S=t.stopAnimation)===null||S===void 0||S.call(t),t.stopAnimation=void 0,h.getElement().parentElement.removeChild(t.wrapper))},!1,0,10),h.getElement().parentElement.appendChild(t.wrapper),!1}}},t.changeTapScreenPosition=function(){if(t.tapPosition){var l=t.tapPosition.clone().project(t.five.camera),h=(l.x+1)/2,f=-(l.y-1)/2;t.wrapper.style.opacity=l.z>0&&l.z<1?"1":"0",t.wrapper.style.transform="translate(".concat(h*100,"%, ").concat(f*100,"%)")}},t.onFiveCameraUpdate=function(l){t.changeTapScreenPosition()},t.dispose=function(){t.disable()},t.five=e;var o={enabled:!0,visible:!0,mode:"box",selectedId:null,selectAll:!1};t.state=Object.assign(o,n==null?void 0:n.initialState);var s=z({},n==null?void 0:n.config);return t._config=s,t.group.rotateX(Math.PI),t.wrapper.className="ItemMaskPlugin",t.wrapper.innerHTML='<span class="ItemMaskPluginCircle"></span><span class="ItemMaskPluginCircle"></span>',t.style.innerHTML=`
308
308
  .ItemMaskPlugin {
309
309
  position: absolute;
310
310
  top: 0;
@@ -322,7 +322,7 @@ void main() {
322
322
  border-radius: 50%;
323
323
  box-shadow: 0px 0px 0px 2px #fff;
324
324
  }
325
- `,t.state.enabled&&t._enable({userAction:!1}),t}return Object.defineProperty(o.prototype,"config",{get:function(){return j({},this._config)},enumerable:!1,configurable:!0}),o.prototype.updateState=function(e,a){var t=this.state;this.state=j(j({},this.state),e),this.hooks.emit("stateChange",{state:this.state,prevState:t,userAction:a})},o.prototype.load=function(e){return ke(this,void 0,void 0,function(){var a,t,s=this;return Le(this,function(c){return this.data=e,a=e.data_list.map(function(l){var g,d=l.position.end.map(function(I){return Number(I)}),v=l.position.start.map(function(I){return Number(I)}),T=Math.abs(d[0]-v[0]),A=Math.abs(d[1]-v[1]),P=Math.abs(d[2]-v[2]),O=d[0]/2+v[0]/2,C=d[1]/2+v[1]/2,D=d[2]/2+v[2]/2,b=new w.Vector3(O,C,D),y=new w.BoxBufferGeometry(T,A,P),x=new w.ShaderMaterial({vertexShader:`
325
+ `,t.state.enabled&&t._enable({userAction:!1}),t}return Object.defineProperty(a.prototype,"config",{get:function(){return z({},this._config)},enumerable:!1,configurable:!0}),a.prototype.updateState=function(e,n){var t=this.state;this.state=z(z({},this.state),e),this.hooks.emit("stateChange",{state:this.state,prevState:t,userAction:n})},a.prototype.load=function(e){return Ne(this,void 0,void 0,function(){var n,t,o=this;return ke(this,function(s){return this.data=e,n=e.data_list.map(function(l){var h,f=l.position.end.map(function(O){return Number(O)}),g=l.position.start.map(function(O){return Number(O)}),y=Math.abs(f[0]-g[0]),w=Math.abs(f[1]-g[1]),P=Math.abs(f[2]-g[2]),A=f[0]/2+g[0]/2,S=f[1]/2+g[1]/2,C=f[2]/2+g[2]/2,T=new v.Vector3(A,S,C),b=new v.BoxBufferGeometry(y,w,P),x=new v.ShaderMaterial({vertexShader:`
326
326
  varying vec2 vUv;
327
327
  void main() {
328
328
  vUv = uv;
@@ -347,13 +347,13 @@ void main() {
347
347
  gl_FragColor = vec4(1.0, 1.0, 1.0, alpha / 4.0 * opacity);
348
348
  }
349
349
  }
350
- `,side:w.DoubleSide,visible:s.state.selectedId==="".concat(l.category_name).concat(l.index),uniforms:{opacity:{value:s.state.mode==="box"?1:0}},depthWrite:!1,depthTest:!1,transparent:!0}),p=new w.Mesh(y,x);return p.position.copy(b),p.name="".concat(l.category_name).concat(l.index),p.userData.color=new((g=w.Vector4).bind.apply(g,Ft(Ft([void 0],l.mask_color.map(function(I){return I/255}).reverse(),!1),[1],!1))),p.userData.visible_viewpoint=Object.keys(l.visible_viewpoint),p}),(t=this.group).add.apply(t,a),[2]})})},o.prototype.setState=function(e,a){a===void 0&&(a={});var t=this.state,s=a.userAction!==void 0?a.userAction:!0;if(this.updateState(e,s),e.enabled!==void 0&&t.enabled!==e.enabled){var c={userAction:s};e.enabled?this._enable(c):this._disable(c)}},o.prototype.setMode=function(e){this.updateState({mode:e},!1),e==="mask"?(this.group.children.forEach(function(a){a.material.uniforms.opacity.value=0}),this.loadPanoMask(this.five.state.panoIndex)):e==="box"&&(this.itemMaskMesh.material.uniforms.color.value=new w.Vector4(0,0,0,1),this.group.children.forEach(function(a){a.material.uniforms.opacity.value=1}),this.five.needsRender=!0)},o.prototype.select=function(e,a){var t=this,s;this.updateState({selectedId:e!=null?e:null},(s=a==null?void 0:a.userAction)!==null&&s!==void 0?s:!1),this.group.children.forEach(function(c){c.material.visible=t.state.selectAll||c.name===e}),this.five.needsRender=!0},o.prototype.selectAll=function(e){e===void 0&&(e=!0),this.updateState({selectAll:!!e},!1),this.select()},o.prototype._enable=function(e){this.five.on("panoArrived",this.onFivePanoArrived),this.five.on("wantsMoveToPano",this.onFiveWantsMoveToPano),this.five.on("gesture.mousemove",this.onFiveMouseMove),this.five.on("wantsTapGesture",this.onFiveTapGesture),this.five.on("cameraUpdate",this.onFiveCameraUpdate),this.five.scene.add(this.group),document.head.appendChild(this.style)},o.prototype._disable=function(e){this.five.off("panoArrived",this.onFivePanoArrived),this.five.off("wantsMoveToPano",this.onFiveWantsMoveToPano),this.five.off("gesture.mousemove",this.onFiveMouseMove),this.five.off("wantsTapGesture",this.onFiveTapGesture),this.five.off("cameraUpdate",this.onFiveCameraUpdate),this.five.scene.remove(this.group),document.head.removeChild(this.style)},o.prototype.enable=function(e){var a;if(!this.state.enabled){var t=(a=e==null?void 0:e.userAction)!==null&&a!==void 0?a:!0;this.updateState({enabled:!0},t),this._enable({userAction:t})}},o.prototype.disable=function(e){var a;if(this.state.enabled!==!1){var t=(a=e==null?void 0:e.userAction)!==null&&a!==void 0?a:!0;this.updateState({enabled:!1},t),this._disable({userAction:t})}},o})(exports.BasePlugin.Controller),Mn=function(f,o){return new An(f,o)};/*! Hammer.JS - v2.0.7 - 2016-04-22
350
+ `,side:v.DoubleSide,visible:o.state.selectedId==="".concat(l.category_name).concat(l.index),uniforms:{opacity:{value:o.state.mode==="box"?1:0}},depthWrite:!1,depthTest:!1,transparent:!0}),m=new v.Mesh(b,x);return m.position.copy(T),m.name="".concat(l.category_name).concat(l.index),m.userData.color=new((h=v.Vector4).bind.apply(h,jt(jt([void 0],l.mask_color.map(function(O){return O/255}).reverse(),!1),[1],!1))),m.userData.visible_viewpoint=Object.keys(l.visible_viewpoint),m}),(t=this.group).add.apply(t,n),[2]})})},a.prototype.setState=function(e,n){n===void 0&&(n={});var t=this.state,o=n.userAction!==void 0?n.userAction:!0;if(this.updateState(e,o),e.enabled!==void 0&&t.enabled!==e.enabled){var s={userAction:o};e.enabled?this._enable(s):this._disable(s)}},a.prototype.setMode=function(e){this.updateState({mode:e},!1),e==="mask"?(this.group.children.forEach(function(n){n.material.uniforms.opacity.value=0}),this.loadPanoMask(this.five.state.panoIndex)):e==="box"&&(this.itemMaskMesh.material.uniforms.color.value=new v.Vector4(0,0,0,1),this.group.children.forEach(function(n){n.material.uniforms.opacity.value=1}),this.five.needsRender=!0)},a.prototype.select=function(e,n){var t=this,o;this.updateState({selectedId:e!=null?e:null},(o=n==null?void 0:n.userAction)!==null&&o!==void 0?o:!1),this.group.children.forEach(function(s){s.material.visible=t.state.selectAll||s.name===e}),this.five.needsRender=!0},a.prototype.selectAll=function(e){e===void 0&&(e=!0),this.updateState({selectAll:!!e},!1),this.select()},a.prototype._enable=function(e){this.five.on("panoArrived",this.onFivePanoArrived),this.five.on("wantsMoveToPano",this.onFiveWantsMoveToPano),this.five.on("gesture.mousemove",this.onFiveMouseMove),this.five.on("wantsTapGesture",this.onFiveTapGesture),this.five.on("cameraUpdate",this.onFiveCameraUpdate),this.five.scene.add(this.group),document.head.appendChild(this.style)},a.prototype._disable=function(e){this.five.off("panoArrived",this.onFivePanoArrived),this.five.off("wantsMoveToPano",this.onFiveWantsMoveToPano),this.five.off("gesture.mousemove",this.onFiveMouseMove),this.five.off("wantsTapGesture",this.onFiveTapGesture),this.five.off("cameraUpdate",this.onFiveCameraUpdate),this.five.scene.remove(this.group),document.head.removeChild(this.style)},a.prototype.enable=function(e){var n;if(!this.state.enabled){var t=(n=e==null?void 0:e.userAction)!==null&&n!==void 0?n:!0;this.updateState({enabled:!0},t),this._enable({userAction:t})}},a.prototype.disable=function(e){var n;if(this.state.enabled!==!1){var t=(n=e==null?void 0:e.userAction)!==null&&n!==void 0?n:!0;this.updateState({enabled:!1},t),this._disable({userAction:t})}},a})(exports.BasePlugin.Controller),Nn=function(c,a){return new In(c,a)};/*! Hammer.JS - v2.0.7 - 2016-04-22
351
351
  * http://hammerjs.github.io/
352
352
  *
353
353
  * Copyright (c) 2016 Jorik Tangelder;
354
- * Licensed under the MIT license */var yt=(function(f,o,e,a){var t=["","webkit","Moz","MS","ms","o"],s=o.createElement?o.createElement("div"):a,c="function",l=Math.round,g=Math.abs,d=Date.now;function v(n,r,i){return setTimeout(y(n,i),r)}function T(n,r,i){return Array.isArray(n)?(A(n,i[r],i),!0):!1}function A(n,r,i){var h;if(n)if(n.forEach)n.forEach(r,i);else if(n.length!==a)for(h=0;h<n.length;)r.call(i,n[h],h,n),h++;else for(h in n)n.hasOwnProperty(h)&&r.call(i,n[h],h,n)}function P(n,r,i){var h="DEPRECATED METHOD: "+r+`
355
- `+i+` AT
356
- `;return function(){var m=new Error("get-stack-trace"),E=m&&m.stack?m.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",k=f.console&&(f.console.warn||f.console.log);return k&&k.call(f.console,h,E),n.apply(this,arguments)}}var O;typeof Object.assign!="function"?O=function(r){if(r===a||r===null)throw new TypeError("Cannot convert undefined or null to object");for(var i=Object(r),h=1;h<arguments.length;h++){var m=arguments[h];if(m!==a&&m!==null)for(var E in m)m.hasOwnProperty(E)&&(i[E]=m[E])}return i}:O=Object.assign;var C=P(function(r,i,h){for(var m=Object.keys(i),E=0;E<m.length;)(!h||h&&r[m[E]]===a)&&(r[m[E]]=i[m[E]]),E++;return r},"extend","Use `assign`."),D=P(function(r,i){return C(r,i,!0)},"merge","Use `assign`.");function b(n,r,i){var h=r.prototype,m;m=n.prototype=Object.create(h),m.constructor=n,m._super=h,i&&O(m,i)}function y(n,r){return function(){return n.apply(r,arguments)}}function x(n,r){return typeof n==c?n.apply(r&&r[0]||a,r):n}function p(n,r){return n===a?r:n}function I(n,r,i){A(ne(r),function(h){n.addEventListener(h,i,!1)})}function M(n,r,i){A(ne(r),function(h){n.removeEventListener(h,i,!1)})}function te(n,r){for(;n;){if(n==r)return!0;n=n.parentNode}return!1}function Q(n,r){return n.indexOf(r)>-1}function ne(n){return n.trim().split(/\s+/g)}function ce(n,r,i){if(n.indexOf&&!i)return n.indexOf(r);for(var h=0;h<n.length;){if(i&&n[h][i]==r||!i&&n[h]===r)return h;h++}return-1}function me(n){return Array.prototype.slice.call(n,0)}function xe(n,r,i){for(var h=[],m=[],E=0;E<n.length;){var k=n[E][r];ce(m,k)<0&&h.push(n[E]),m[E]=k,E++}return h=h.sort(function(le,q){return le[r]>q[r]}),h}function ae(n,r){for(var i,h,m=r[0].toUpperCase()+r.slice(1),E=0;E<t.length;){if(i=t[E],h=i?i+m:r,h in n)return h;E++}return a}var oe=1;function U(){return oe++}function N(n){var r=n.ownerDocument||n;return r.defaultView||r.parentWindow||f}var S=/mobile|tablet|ip(ad|hone|od)|android/i,F="ontouchstart"in f,H=ae(f,"PointerEvent")!==a,re=F&&S.test(navigator.userAgent),G="touch",V="pen",K="mouse",Y="kinect",B=25,L=1,ee=2,z=4,X=8,Ae=1,we=2,Me=4,Ce=8,Ee=16,se=we|Me,he=Ce|Ee,Ue=se|he,Fe=["x","y"],Oe=["clientX","clientY"];function ie(n,r){var i=this;this.manager=n,this.callback=r,this.element=n.element,this.target=n.options.inputTarget,this.domHandler=function(h){x(n.options.enable,[n])&&i.handler(h)},this.init()}ie.prototype={handler:function(){},init:function(){this.evEl&&I(this.element,this.evEl,this.domHandler),this.evTarget&&I(this.target,this.evTarget,this.domHandler),this.evWin&&I(N(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&M(this.element,this.evEl,this.domHandler),this.evTarget&&M(this.target,this.evTarget,this.domHandler),this.evWin&&M(N(this.element),this.evWin,this.domHandler)}};function Xe(n){var r,i=n.options.inputClass;return i?r=i:H?r=lt:re?r=Ze:F?r=ct:r=Ke,new r(n,We)}function We(n,r,i){var h=i.pointers.length,m=i.changedPointers.length,E=r&L&&h-m===0,k=r&(z|X)&&h-m===0;i.isFirst=!!E,i.isFinal=!!k,E&&(n.session={}),i.eventType=r,u(n,i),n.emit("hammer.input",i),n.recognize(i),n.session.prevInput=i}function u(n,r){var i=n.session,h=r.pointers,m=h.length;i.firstInput||(i.firstInput=Z(r)),m>1&&!i.firstMultiple?i.firstMultiple=Z(r):m===1&&(i.firstMultiple=!1);var E=i.firstInput,k=i.firstMultiple,J=k?k.center:E.center,le=r.center=pe(h);r.timeStamp=d(),r.deltaTime=r.timeStamp-E.timeStamp,r.angle=st(J,le),r.distance=qe(J,le),R(i,r),r.offsetDirection=ge(r.deltaX,r.deltaY);var q=Ve(r.deltaTime,r.deltaX,r.deltaY);r.overallVelocityX=q.x,r.overallVelocityY=q.y,r.overallVelocity=g(q.x)>g(q.y)?q.x:q.y,r.scale=k?Xt(k.pointers,h):1,r.rotation=k?Gt(k.pointers,h):0,r.maxPointers=i.prevInput?r.pointers.length>i.prevInput.maxPointers?r.pointers.length:i.prevInput.maxPointers:r.pointers.length,W(i,r);var ve=n.element;te(r.srcEvent.target,ve)&&(ve=r.srcEvent.target),r.target=ve}function R(n,r){var i=r.center,h=n.offsetDelta||{},m=n.prevDelta||{},E=n.prevInput||{};(r.eventType===L||E.eventType===z)&&(m=n.prevDelta={x:E.deltaX||0,y:E.deltaY||0},h=n.offsetDelta={x:i.x,y:i.y}),r.deltaX=m.x+(i.x-h.x),r.deltaY=m.y+(i.y-h.y)}function W(n,r){var i=n.lastInterval||r,h=r.timeStamp-i.timeStamp,m,E,k,J;if(r.eventType!=X&&(h>B||i.velocity===a)){var le=r.deltaX-i.deltaX,q=r.deltaY-i.deltaY,ve=Ve(h,le,q);E=ve.x,k=ve.y,m=g(ve.x)>g(ve.y)?ve.x:ve.y,J=ge(le,q),n.lastInterval=r}else m=i.velocity,E=i.velocityX,k=i.velocityY,J=i.direction;r.velocity=m,r.velocityX=E,r.velocityY=k,r.direction=J}function Z(n){for(var r=[],i=0;i<n.pointers.length;)r[i]={clientX:l(n.pointers[i].clientX),clientY:l(n.pointers[i].clientY)},i++;return{timeStamp:d(),pointers:r,center:pe(r),deltaX:n.deltaX,deltaY:n.deltaY}}function pe(n){var r=n.length;if(r===1)return{x:l(n[0].clientX),y:l(n[0].clientY)};for(var i=0,h=0,m=0;m<r;)i+=n[m].clientX,h+=n[m].clientY,m++;return{x:l(i/r),y:l(h/r)}}function Ve(n,r,i){return{x:r/n||0,y:i/n||0}}function ge(n,r){return n===r?Ae:g(n)>=g(r)?n<0?we:Me:r<0?Ce:Ee}function qe(n,r,i){i||(i=Fe);var h=r[i[0]]-n[i[0]],m=r[i[1]]-n[i[1]];return Math.sqrt(h*h+m*m)}function st(n,r,i){i||(i=Fe);var h=r[i[0]]-n[i[0]],m=r[i[1]]-n[i[1]];return Math.atan2(m,h)*180/Math.PI}function Gt(n,r){return st(r[1],r[0],Oe)+st(n[1],n[0],Oe)}function Xt(n,r){return qe(r[0],r[1],Oe)/qe(n[0],n[1],Oe)}var Wt={mousedown:L,mousemove:ee,mouseup:z},qt="mousedown",Kt="mousemove mouseup";function Ke(){this.evEl=qt,this.evWin=Kt,this.pressed=!1,ie.apply(this,arguments)}b(Ke,ie,{handler:function(r){var i=Wt[r.type];i&L&&(r.button===0||r.button===2)&&(this.pressed=!0),i&ee&&r.which!==1&&(i=z),this.pressed&&(i&z&&(this.pressed=!1),this.callback(this.manager,i,{pointers:[r],changedPointers:[r],pointerType:K,srcEvent:r}))}});var xt={pointerdown:L,pointermove:ee,pointerup:z,pointercancel:X,pointerout:X},Zt={2:G,3:V,4:K,5:Y},At="pointerdown",Mt="pointermove pointerup pointercancel";f.MSPointerEvent&&!f.PointerEvent&&(At="MSPointerDown",Mt="MSPointerMove MSPointerUp MSPointerCancel");function lt(){this.evEl=At,this.evWin=Mt,ie.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}b(lt,ie,{handler:function(r){var i=this.store,h=!1,m=!1,E=r.type.toLowerCase().replace("ms",""),k=xt[E],J=Zt[r.pointerType]||r.pointerType,le=J==G,q=ce(i,r.pointerId,"pointerId");k&L&&(r.button===0||r.button===2||le)?q<0&&(i.push(r),q=i.length-1):k&(z|X)?h=!0:!le&&r.buttons===0&&(h=!0,m=!0,k=xt.pointerup),!(q<0)&&(m||(i[q]=r),this.callback(this.manager,k,{pointers:i,changedPointers:[r],pointerType:J,srcEvent:i[q]}),h&&i.splice(q,1))}});var Qt={touchstart:L,touchmove:ee,touchend:z,touchcancel:X},Jt="touchstart",$t="touchstart touchmove touchend touchcancel";function Ct(){this.evTarget=Jt,this.evWin=$t,this.started=!1,ie.apply(this,arguments)}b(Ct,ie,{handler:function(r){var i=Qt[r.type];if(i===L&&(this.started=!0),!!this.started){var h=en.call(this,r,i);i&(z|X)&&h[0].length-h[1].length===0&&(this.started=!1),this.callback(this.manager,i,{pointers:h[0],changedPointers:h[1],pointerType:G,srcEvent:r})}}});function en(n,r){var i=me(n.touches),h=me(n.changedTouches);return r&(z|X)&&(i=xe(i.concat(h),"identifier")),[i,h]}var tn={touchstart:L,touchmove:ee,touchend:z,touchcancel:X},nn="touchstart touchmove touchend touchcancel";function Ze(){this.evTarget=nn,this.targetIds={},ie.apply(this,arguments)}b(Ze,ie,{handler:function(r){var i=tn[r.type],h=rn.call(this,r,i);h&&this.callback(this.manager,i,{pointers:h[0],changedPointers:h[1],pointerType:G,srcEvent:r})}});function rn(n,r){var i=me(n.touches),h=this.targetIds;if(r&(L|ee)&&i.length===1)return h[i[0].identifier]=!0,[i,i];var m,E,k=me(n.changedTouches),J=[],le=this.target;if(E=i.filter(function(q){return te(q.target,le)}),r===L)for(m=0;m<E.length;)h[E[m].identifier]=!0,m++;for(m=0;m<k.length;)h[k[m].identifier]&&J.push(k[m]),r&(z|X)&&delete h[k[m].identifier],m++;if(J.length)return[xe(E.concat(J),"identifier"),J]}var an=2500,Ot=25;function ct(){ie.apply(this,arguments);var n=y(this.handler,this);this.touch=new Ze(this.manager,n),this.mouse=new Ke(this.manager,n),this.primaryTouch=null,this.lastTouches=[]}b(ct,ie,{handler:function(r,i,h){var m=h.pointerType==G,E=h.pointerType==K;if(!(E&&h.sourceCapabilities&&h.sourceCapabilities.firesTouchEvents)){if(m)on.call(this,i,h);else if(E&&sn.call(this,h))return;this.callback(r,i,h)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});function on(n,r){n&L?(this.primaryTouch=r.changedPointers[0].identifier,_t.call(this,r)):n&(z|X)&&_t.call(this,r)}function _t(n){var r=n.changedPointers[0];if(r.identifier===this.primaryTouch){var i={x:r.clientX,y:r.clientY};this.lastTouches.push(i);var h=this.lastTouches,m=function(){var E=h.indexOf(i);E>-1&&h.splice(E,1)};setTimeout(m,an)}}function sn(n){for(var r=n.srcEvent.clientX,i=n.srcEvent.clientY,h=0;h<this.lastTouches.length;h++){var m=this.lastTouches[h],E=Math.abs(r-m.x),k=Math.abs(i-m.y);if(E<=Ot&&k<=Ot)return!0}return!1}var St=s?ae(s.style,"touchAction"):a,It=St!==a,Nt="compute",kt="auto",ut="manipulation",_e="none",Be="pan-x",Ye="pan-y",Qe=cn();function ht(n,r){this.manager=n,this.set(r)}ht.prototype={set:function(n){n==Nt&&(n=this.compute()),It&&this.manager.element.style&&Qe[n]&&(this.manager.element.style[St]=n),this.actions=n.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var n=[];return A(this.manager.recognizers,function(r){x(r.options.enable,[r])&&(n=n.concat(r.getTouchAction()))}),ln(n.join(" "))},preventDefaults:function(n){var r=n.srcEvent,i=n.offsetDirection;if(this.manager.session.prevented){r.preventDefault();return}var h=this.actions,m=Q(h,_e)&&!Qe[_e],E=Q(h,Ye)&&!Qe[Ye],k=Q(h,Be)&&!Qe[Be];if(m){var J=n.pointers.length===1,le=n.distance<2,q=n.deltaTime<250;if(J&&le&&q)return}if(!(k&&E)&&(m||E&&i&se||k&&i&he))return this.preventSrc(r)},preventSrc:function(n){this.manager.session.prevented=!0,n.preventDefault()}};function ln(n){if(Q(n,_e))return _e;var r=Q(n,Be),i=Q(n,Ye);return r&&i?_e:r||i?r?Be:Ye:Q(n,ut)?ut:kt}function cn(){if(!It)return!1;var n={},r=f.CSS&&f.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(i){n[i]=r?f.CSS.supports("touch-action",i):!0}),n}var Je=1,ue=2,Se=4,Pe=8,ye=Pe,He=16,de=32;function be(n){this.options=O({},this.defaults,n||{}),this.id=U(),this.manager=null,this.options.enable=p(this.options.enable,!0),this.state=Je,this.simultaneous={},this.requireFail=[]}be.prototype={defaults:{},set:function(n){return O(this.options,n),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(n){if(T(n,"recognizeWith",this))return this;var r=this.simultaneous;return n=$e(n,this),r[n.id]||(r[n.id]=n,n.recognizeWith(this)),this},dropRecognizeWith:function(n){return T(n,"dropRecognizeWith",this)?this:(n=$e(n,this),delete this.simultaneous[n.id],this)},requireFailure:function(n){if(T(n,"requireFailure",this))return this;var r=this.requireFail;return n=$e(n,this),ce(r,n)===-1&&(r.push(n),n.requireFailure(this)),this},dropRequireFailure:function(n){if(T(n,"dropRequireFailure",this))return this;n=$e(n,this);var r=ce(this.requireFail,n);return r>-1&&this.requireFail.splice(r,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(n){return!!this.simultaneous[n.id]},emit:function(n){var r=this,i=this.state;function h(m){r.manager.emit(m,n)}i<Pe&&h(r.options.event+Lt(i)),h(r.options.event),n.additionalEvent&&h(n.additionalEvent),i>=Pe&&h(r.options.event+Lt(i))},tryEmit:function(n){if(this.canEmit())return this.emit(n);this.state=de},canEmit:function(){for(var n=0;n<this.requireFail.length;){if(!(this.requireFail[n].state&(de|Je)))return!1;n++}return!0},recognize:function(n){var r=O({},n);if(!x(this.options.enable,[this,r])){this.reset(),this.state=de;return}this.state&(ye|He|de)&&(this.state=Je),this.state=this.process(r),this.state&(ue|Se|Pe|He)&&this.tryEmit(r)},process:function(n){},getTouchAction:function(){},reset:function(){}};function Lt(n){return n&He?"cancel":n&Pe?"end":n&Se?"move":n&ue?"start":""}function Dt(n){return n==Ee?"down":n==Ce?"up":n==we?"left":n==Me?"right":""}function $e(n,r){var i=r.manager;return i?i.get(n):n}function fe(){be.apply(this,arguments)}b(fe,be,{defaults:{pointers:1},attrTest:function(n){var r=this.options.pointers;return r===0||n.pointers.length===r},process:function(n){var r=this.state,i=n.eventType,h=r&(ue|Se),m=this.attrTest(n);return h&&(i&X||!m)?r|He:h||m?i&z?r|Pe:r&ue?r|Se:ue:de}});function et(){fe.apply(this,arguments),this.pX=null,this.pY=null}b(et,fe,{defaults:{event:"pan",threshold:10,pointers:1,direction:Ue},getTouchAction:function(){var n=this.options.direction,r=[];return n&se&&r.push(Ye),n&he&&r.push(Be),r},directionTest:function(n){var r=this.options,i=!0,h=n.distance,m=n.direction,E=n.deltaX,k=n.deltaY;return m&r.direction||(r.direction&se?(m=E===0?Ae:E<0?we:Me,i=E!=this.pX,h=Math.abs(n.deltaX)):(m=k===0?Ae:k<0?Ce:Ee,i=k!=this.pY,h=Math.abs(n.deltaY))),n.direction=m,i&&h>r.threshold&&m&r.direction},attrTest:function(n){return fe.prototype.attrTest.call(this,n)&&(this.state&ue||!(this.state&ue)&&this.directionTest(n))},emit:function(n){this.pX=n.deltaX,this.pY=n.deltaY;var r=Dt(n.direction);r&&(n.additionalEvent=this.options.event+r),this._super.emit.call(this,n)}});function ft(){fe.apply(this,arguments)}b(ft,fe,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[_e]},attrTest:function(n){return this._super.attrTest.call(this,n)&&(Math.abs(n.scale-1)>this.options.threshold||this.state&ue)},emit:function(n){if(n.scale!==1){var r=n.scale<1?"in":"out";n.additionalEvent=this.options.event+r}this._super.emit.call(this,n)}});function pt(){be.apply(this,arguments),this._timer=null,this._input=null}b(pt,be,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[kt]},process:function(n){var r=this.options,i=n.pointers.length===r.pointers,h=n.distance<r.threshold,m=n.deltaTime>r.time;if(this._input=n,!h||!i||n.eventType&(z|X)&&!m)this.reset();else if(n.eventType&L)this.reset(),this._timer=v(function(){this.state=ye,this.tryEmit()},r.time,this);else if(n.eventType&z)return ye;return de},reset:function(){clearTimeout(this._timer)},emit:function(n){this.state===ye&&(n&&n.eventType&z?this.manager.emit(this.options.event+"up",n):(this._input.timeStamp=d(),this.manager.emit(this.options.event,this._input)))}});function dt(){fe.apply(this,arguments)}b(dt,fe,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[_e]},attrTest:function(n){return this._super.attrTest.call(this,n)&&(Math.abs(n.rotation)>this.options.threshold||this.state&ue)}});function vt(){fe.apply(this,arguments)}b(vt,fe,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:se|he,pointers:1},getTouchAction:function(){return et.prototype.getTouchAction.call(this)},attrTest:function(n){var r=this.options.direction,i;return r&(se|he)?i=n.overallVelocity:r&se?i=n.overallVelocityX:r&he&&(i=n.overallVelocityY),this._super.attrTest.call(this,n)&&r&n.offsetDirection&&n.distance>this.options.threshold&&n.maxPointers==this.options.pointers&&g(i)>this.options.velocity&&n.eventType&z},emit:function(n){var r=Dt(n.offsetDirection);r&&this.manager.emit(this.options.event+r,n),this.manager.emit(this.options.event,n)}});function tt(){be.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}b(tt,be,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ut]},process:function(n){var r=this.options,i=n.pointers.length===r.pointers,h=n.distance<r.threshold,m=n.deltaTime<r.time;if(this.reset(),n.eventType&L&&this.count===0)return this.failTimeout();if(h&&m&&i){if(n.eventType!=z)return this.failTimeout();var E=this.pTime?n.timeStamp-this.pTime<r.interval:!0,k=!this.pCenter||qe(this.pCenter,n.center)<r.posThreshold;this.pTime=n.timeStamp,this.pCenter=n.center,!k||!E?this.count=1:this.count+=1,this._input=n;var J=this.count%r.taps;if(J===0)return this.hasRequireFailures()?(this._timer=v(function(){this.state=ye,this.tryEmit()},r.interval,this),ue):ye}return de},failTimeout:function(){return this._timer=v(function(){this.state=de},this.options.interval,this),de},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ye&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}});function Ie(n,r){return r=r||{},r.recognizers=p(r.recognizers,Ie.defaults.preset),new mt(n,r)}Ie.VERSION="2.0.7",Ie.defaults={domEvents:!1,touchAction:Nt,enable:!0,inputTarget:null,inputClass:null,preset:[[dt,{enable:!1}],[ft,{enable:!1},["rotate"]],[vt,{direction:se}],[et,{direction:se},["swipe"]],[tt],[tt,{event:"doubletap",taps:2},["tap"]],[pt]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var un=1,Rt=2;function mt(n,r){this.options=O({},Ie.defaults,r||{}),this.options.inputTarget=this.options.inputTarget||n,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=n,this.input=Xe(this),this.touchAction=new ht(this,this.options.touchAction),Ut(this,!0),A(this.options.recognizers,function(i){var h=this.add(new i[0](i[1]));i[2]&&h.recognizeWith(i[2]),i[3]&&h.requireFailure(i[3])},this)}mt.prototype={set:function(n){return O(this.options,n),n.touchAction&&this.touchAction.update(),n.inputTarget&&(this.input.destroy(),this.input.target=n.inputTarget,this.input.init()),this},stop:function(n){this.session.stopped=n?Rt:un},recognize:function(n){var r=this.session;if(!r.stopped){this.touchAction.preventDefaults(n);var i,h=this.recognizers,m=r.curRecognizer;(!m||m&&m.state&ye)&&(m=r.curRecognizer=null);for(var E=0;E<h.length;)i=h[E],r.stopped!==Rt&&(!m||i==m||i.canRecognizeWith(m))?i.recognize(n):i.reset(),!m&&i.state&(ue|Se|Pe)&&(m=r.curRecognizer=i),E++}},get:function(n){if(n instanceof be)return n;for(var r=this.recognizers,i=0;i<r.length;i++)if(r[i].options.event==n)return r[i];return null},add:function(n){if(T(n,"add",this))return this;var r=this.get(n.options.event);return r&&this.remove(r),this.recognizers.push(n),n.manager=this,this.touchAction.update(),n},remove:function(n){if(T(n,"remove",this))return this;if(n=this.get(n),n){var r=this.recognizers,i=ce(r,n);i!==-1&&(r.splice(i,1),this.touchAction.update())}return this},on:function(n,r){if(n!==a&&r!==a){var i=this.handlers;return A(ne(n),function(h){i[h]=i[h]||[],i[h].push(r)}),this}},off:function(n,r){if(n!==a){var i=this.handlers;return A(ne(n),function(h){r?i[h]&&i[h].splice(ce(i[h],r),1):delete i[h]}),this}},emit:function(n,r){this.options.domEvents&&hn(n,r);var i=this.handlers[n]&&this.handlers[n].slice();if(!(!i||!i.length)){r.type=n,r.preventDefault=function(){r.srcEvent.preventDefault()};for(var h=0;h<i.length;)i[h](r),h++}},destroy:function(){this.element&&Ut(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}};function Ut(n,r){var i=n.element;if(i.style){var h;A(n.options.cssProps,function(m,E){h=ae(i.style,E),r?(n.oldCssProps[h]=i.style[h],i.style[h]=m):i.style[h]=n.oldCssProps[h]||""}),r||(n.oldCssProps={})}}function hn(n,r){var i=o.createEvent("Event");i.initEvent(n,!0,!0),i.gesture=r,r.target.dispatchEvent(i)}return O(Ie,{INPUT_START:L,INPUT_MOVE:ee,INPUT_END:z,INPUT_CANCEL:X,STATE_POSSIBLE:Je,STATE_BEGAN:ue,STATE_CHANGED:Se,STATE_ENDED:Pe,STATE_RECOGNIZED:ye,STATE_CANCELLED:He,STATE_FAILED:de,DIRECTION_NONE:Ae,DIRECTION_LEFT:we,DIRECTION_RIGHT:Me,DIRECTION_UP:Ce,DIRECTION_DOWN:Ee,DIRECTION_HORIZONTAL:se,DIRECTION_VERTICAL:he,DIRECTION_ALL:Ue,Manager:mt,Input:ie,TouchAction:ht,TouchInput:Ze,MouseInput:Ke,PointerEventInput:lt,TouchMouseInput:ct,SingleTouchInput:Ct,Recognizer:be,AttrRecognizer:fe,Tap:tt,Pan:et,Swipe:vt,Pinch:ft,Rotate:dt,Press:pt,on:I,off:M,each:A,merge:D,extend:C,assign:O,inherit:b,bindFn:y,prefixed:ae}),Ie})(typeof window!="undefined"?window:{},typeof document!="undefined"?document:{}),De=function(f,o){o===void 0&&console.warn('THREE.OrbitControls: The second parameter "domElement" is now mandatory.'),o===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.object=f,this.domElement=o,this.enabled=!0,this.target=new _.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!1,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.enableKeys=!0,this.keys={LEFT:37,UP:38,RIGHT:39,BOTTOM:40},this.mouseButtons={LEFT:_.MOUSE.ROTATE,MIDDLE:_.MOUSE.DOLLY,RIGHT:_.MOUSE.PAN},this.touches={ONE:_.TOUCH.ROTATE,TWO:_.TOUCH.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=function(){return d.phi},this.getAzimuthalAngle=function(){return d.theta},this.saveState=function(){e.target0.copy(e.target),e.position0.copy(e.object.position),e.zoom0=e.object.zoom},this.reset=function(){e.target.copy(e.target0),e.object.position.copy(e.position0),e.object.zoom=e.zoom0,e.object.updateProjectionMatrix(),e.dispatchEvent(a),e.update(),l=c.NONE},this.update=(function(){var u=new _.Vector3,R=new _.Quaternion().setFromUnitVectors(f.up,new _.Vector3(0,1,0)),W=R.clone().inverse(),Z=new _.Vector3,pe=new _.Quaternion;return function(){var ge=e.object.position;return u.copy(ge).sub(e.target),u.applyQuaternion(R),d.setFromVector3(u),e.autoRotate&&l===c.NONE&&ne(te()),e.enableDamping?(d.theta+=v.theta*e.dampingFactor,d.phi+=v.phi*e.dampingFactor):(d.theta+=v.theta,d.phi+=v.phi),d.theta=Math.max(e.minAzimuthAngle,Math.min(e.maxAzimuthAngle,d.theta)),d.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,d.phi)),d.makeSafe(),d.radius*=T,d.radius=Math.max(e.minDistance,Math.min(e.maxDistance,d.radius)),e.enableDamping===!0?e.target.addScaledVector(A,e.dampingFactor):e.target.add(A),u.setFromSpherical(d),u.applyQuaternion(W),ge.copy(e.target).add(u),e.object.lookAt(e.target),e.enableDamping===!0?(v.theta*=1-e.dampingFactor,v.phi*=1-e.dampingFactor,A.multiplyScalar(1-e.dampingFactor)):(v.set(0,0,0),A.set(0,0,0)),T=1,P||Z.distanceToSquared(e.object.position)>g||8*(1-pe.dot(e.object.quaternion))>g?(e.dispatchEvent(a),Z.copy(e.object.position),pe.copy(e.object.quaternion),P=!1,!0):!1}})(),this.dispose=function(){e.domElement.removeEventListener("contextmenu",We,!1),e.domElement.removeEventListener("mousedown",Ee,!1),e.domElement.removeEventListener("wheel",Ue,!1),e.domElement.removeEventListener("touchstart",Oe,!1),e.domElement.removeEventListener("touchend",Xe,!1),e.domElement.removeEventListener("touchmove",ie,!1),document.removeEventListener("mousemove",se,!1),document.removeEventListener("mouseup",he,!1),e.domElement.removeEventListener("keydown",Fe,!1)};var e=this,a={type:"change"},t={type:"start"},s={type:"end"},c={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},l=c.NONE,g=1e-6,d=new _.Spherical,v=new _.Spherical,T=1,A=new _.Vector3,P=!1,O=new _.Vector2,C=new _.Vector2,D=new _.Vector2,b=new _.Vector2,y=new _.Vector2,x=new _.Vector2,p=new _.Vector2,I=new _.Vector2,M=new _.Vector2;function te(){return 2*Math.PI/60/60*e.autoRotateSpeed}function Q(){return Math.pow(.95,e.zoomSpeed)}function ne(u){v.theta-=u}function ce(u){v.phi-=u}var me=(function(){var u=new _.Vector3;return function(W,Z){u.setFromMatrixColumn(Z,0),u.multiplyScalar(-W),A.add(u)}})(),xe=(function(){var u=new _.Vector3;return function(W,Z){e.screenSpacePanning===!0?u.setFromMatrixColumn(Z,1):(u.setFromMatrixColumn(Z,0),u.crossVectors(e.object.up,u)),u.multiplyScalar(W),A.add(u)}})(),ae=(function(){var u=new _.Vector3;return function(W,Z){var pe=e.domElement;if(e.object.isPerspectiveCamera){var Ve=e.object.position;u.copy(Ve).sub(e.target);var ge=u.length();ge*=Math.tan(e.object.fov/2*Math.PI/180),me(2*W*ge/pe.clientHeight,e.object.matrix),xe(2*Z*ge/pe.clientHeight,e.object.matrix)}else e.object.isOrthographicCamera?(me(W*(e.object.right-e.object.left)/e.object.zoom/pe.clientWidth,e.object.matrix),xe(Z*(e.object.top-e.object.bottom)/e.object.zoom/pe.clientHeight,e.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),e.enablePan=!1)}})();function oe(u){e.object.isPerspectiveCamera?T/=u:e.object.isOrthographicCamera?(e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom*u)),e.object.updateProjectionMatrix(),P=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function U(u){e.object.isPerspectiveCamera?T*=u:e.object.isOrthographicCamera?(e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/u)),e.object.updateProjectionMatrix(),P=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function N(u){O.set(u.clientX,u.clientY)}function S(u){p.set(u.clientX,u.clientY)}function F(u){b.set(u.clientX,u.clientY)}function H(u){C.set(u.clientX,u.clientY),D.subVectors(C,O).multiplyScalar(e.rotateSpeed);var R=e.domElement;ne(2*Math.PI*D.x/R.clientHeight),ce(2*Math.PI*D.y/R.clientHeight),O.copy(C),e.update()}function re(u){I.set(u.clientX,u.clientY),M.subVectors(I,p),M.y>0?oe(Q()):M.y<0&&U(Q()),p.copy(I),e.update()}function G(u){y.set(u.clientX,u.clientY),x.subVectors(y,b).multiplyScalar(e.panSpeed),ae(x.x,x.y),b.copy(y),e.update()}function V(u){u.deltaY<0?U(Q()):u.deltaY>0&&oe(Q()),e.update()}function K(u){var R=!1;switch(u.keyCode){case e.keys.UP:ae(0,e.keyPanSpeed),R=!0;break;case e.keys.BOTTOM:ae(0,-e.keyPanSpeed),R=!0;break;case e.keys.LEFT:ae(e.keyPanSpeed,0),R=!0;break;case e.keys.RIGHT:ae(-e.keyPanSpeed,0),R=!0;break}R&&(u.preventDefault(),e.update())}function Y(u){if(u.touches.length==1)O.set(u.touches[0].pageX,u.touches[0].pageY);else{var R=.5*(u.touches[0].pageX+u.touches[1].pageX),W=.5*(u.touches[0].pageY+u.touches[1].pageY);O.set(R,W)}}function B(u){if(u.touches.length==1)b.set(u.touches[0].pageX,u.touches[0].pageY);else{var R=.5*(u.touches[0].pageX+u.touches[1].pageX),W=.5*(u.touches[0].pageY+u.touches[1].pageY);b.set(R,W)}}function L(u){var R=u.touches[0].pageX-u.touches[1].pageX,W=u.touches[0].pageY-u.touches[1].pageY,Z=Math.sqrt(R*R+W*W);p.set(0,Z)}function ee(u){e.enableZoom&&L(u),e.enablePan&&B(u)}function z(u){e.enableZoom&&L(u),e.enableRotate&&Y(u)}function X(u){if(u.touches.length==1)C.set(u.touches[0].pageX,u.touches[0].pageY);else{var R=.5*(u.touches[0].pageX+u.touches[1].pageX),W=.5*(u.touches[0].pageY+u.touches[1].pageY);C.set(R,W)}D.subVectors(C,O).multiplyScalar(e.rotateSpeed);var Z=e.domElement;ne(2*Math.PI*D.x/Z.clientHeight),ce(2*Math.PI*D.y/Z.clientHeight),O.copy(C)}function Ae(u){if(u.touches.length==1)y.set(u.touches[0].pageX,u.touches[0].pageY);else{var R=.5*(u.touches[0].pageX+u.touches[1].pageX),W=.5*(u.touches[0].pageY+u.touches[1].pageY);y.set(R,W)}x.subVectors(y,b).multiplyScalar(e.panSpeed),ae(x.x,x.y),b.copy(y)}function we(u){var R=u.touches[0].pageX-u.touches[1].pageX,W=u.touches[0].pageY-u.touches[1].pageY,Z=Math.sqrt(R*R+W*W);I.set(0,Z),M.set(0,Math.pow(I.y/p.y,e.zoomSpeed)),oe(M.y),p.copy(I)}function Me(u){e.enableZoom&&we(u),e.enablePan&&Ae(u)}function Ce(u){e.enableZoom&&we(u),e.enableRotate&&X(u)}function Ee(u){if(e.enabled!==!1){u.preventDefault(),e.domElement.focus?e.domElement.focus():window.focus();var R;switch(u.button){case 0:R=e.mouseButtons.LEFT;break;case 1:R=e.mouseButtons.MIDDLE;break;case 2:R=e.mouseButtons.RIGHT;break;default:R=-1}switch(R){case _.MOUSE.DOLLY:if(e.enableZoom===!1)return;S(u),l=c.DOLLY;break;case _.MOUSE.ROTATE:if(u.ctrlKey||u.metaKey||u.shiftKey){if(e.enablePan===!1)return;F(u),l=c.PAN}else{if(e.enableRotate===!1)return;N(u),l=c.ROTATE}break;case _.MOUSE.PAN:if(u.ctrlKey||u.metaKey||u.shiftKey){if(e.enableRotate===!1)return;N(u),l=c.ROTATE}else{if(e.enablePan===!1)return;F(u),l=c.PAN}break;default:l=c.NONE}l!==c.NONE&&(document.addEventListener("mousemove",se,!1),document.addEventListener("mouseup",he,!1),e.dispatchEvent(t))}}function se(u){if(e.enabled!==!1)switch(u.preventDefault(),l){case c.ROTATE:if(e.enableRotate===!1)return;H(u);break;case c.DOLLY:if(e.enableZoom===!1)return;re(u);break;case c.PAN:if(e.enablePan===!1)return;G(u);break}}function he(u){e.enabled!==!1&&(document.removeEventListener("mousemove",se,!1),document.removeEventListener("mouseup",he,!1),e.dispatchEvent(s),l=c.NONE)}function Ue(u){e.enabled===!1||e.enableZoom===!1||l!==c.NONE&&l!==c.ROTATE||(u.preventDefault(),u.stopPropagation(),e.dispatchEvent(t),V(u),e.dispatchEvent(s))}function Fe(u){e.enabled===!1||e.enableKeys===!1||e.enablePan===!1||K(u)}function Oe(u){if(e.enabled!==!1){switch(u.preventDefault(),u.touches.length){case 1:switch(e.touches.ONE){case _.TOUCH.ROTATE:if(e.enableRotate===!1)return;Y(u),l=c.TOUCH_ROTATE;break;case _.TOUCH.PAN:if(e.enablePan===!1)return;B(u),l=c.TOUCH_PAN;break;default:l=c.NONE}break;case 2:switch(e.touches.TWO){case _.TOUCH.DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;ee(u),l=c.TOUCH_DOLLY_PAN;break;case _.TOUCH.DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;z(u),l=c.TOUCH_DOLLY_ROTATE;break;default:l=c.NONE}break;default:l=c.NONE}l!==c.NONE&&e.dispatchEvent(t)}}function ie(u){if(e.enabled!==!1)switch(u.preventDefault(),u.stopPropagation(),l){case c.TOUCH_ROTATE:if(e.enableRotate===!1)return;X(u),e.update();break;case c.TOUCH_PAN:if(e.enablePan===!1)return;Ae(u),e.update();break;case c.TOUCH_DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;Me(u),e.update();break;case c.TOUCH_DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;Ce(u),e.update();break;default:l=c.NONE}}function Xe(u){e.enabled!==!1&&(e.dispatchEvent(s),l=c.NONE)}function We(u){e.enabled!==!1&&u.preventDefault()}e.domElement.addEventListener("contextmenu",We,!1),e.domElement.addEventListener("mousedown",Ee,!1),e.domElement.addEventListener("wheel",Ue,!1),e.domElement.addEventListener("touchstart",Oe,!1),e.domElement.addEventListener("touchend",Xe,!1),e.domElement.addEventListener("touchmove",ie,!1),e.domElement.addEventListener("keydown",Fe,!1),e.domElement.tabIndex===-1&&(e.domElement.tabIndex=0),this.update()};De.prototype=Object.create(_.EventDispatcher.prototype);De.prototype.constructor=De;var Pt=function(f,o){De.call(this,f,o),this.mouseButtons.LEFT=_.MOUSE.PAN,this.mouseButtons.RIGHT=_.MOUSE.ROTATE,this.touches.ONE=_.TOUCH.PAN,this.touches.TWO=_.TOUCH.DOLLY_ROTATE};Pt.prototype=Object.create(_.EventDispatcher.prototype);Pt.prototype.constructor=Pt;var Te=function(f){_.Object3D.call(this),this.element=f,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.addEventListener("removed",function(){this.traverse(function(o){o.element instanceof Element&&o.element.parentNode!==null&&o.element.parentNode.removeChild(o.element)})})};Te.prototype=Object.create(_.Object3D.prototype);Te.prototype.constructor=Te;var ot=function(f){Te.call(this,f)};ot.prototype=Object.create(Te.prototype);ot.prototype.constructor=ot;var jt=function(){var f=this,o,e,a,t,s=new _.Matrix4,c={camera:{fov:0,style:""},objects:new WeakMap},l=document.createElement("div");l.style.overflow="hidden",this.domElement=l;var g=document.createElement("div");g.style.WebkitTransformStyle="preserve-3d",g.style.transformStyle="preserve-3d",g.style.pointerEvents="none",l.appendChild(g);var d=/Trident/i.test(navigator.userAgent);this.getSize=function(){return{width:o,height:e}},this.setSize=function(b,y){o=b,e=y,a=o/2,t=e/2,l.style.width=b+"px",l.style.height=y+"px",g.style.width=b+"px",g.style.height=y+"px"};function v(b){return Math.abs(b)<1e-10?0:b}function T(b){var y=b.elements;return"matrix3d("+v(y[0])+","+v(-y[1])+","+v(y[2])+","+v(y[3])+","+v(y[4])+","+v(-y[5])+","+v(y[6])+","+v(y[7])+","+v(y[8])+","+v(-y[9])+","+v(y[10])+","+v(y[11])+","+v(y[12])+","+v(-y[13])+","+v(y[14])+","+v(y[15])+")"}function A(b,y){var x=b.elements,p="matrix3d("+v(x[0])+","+v(x[1])+","+v(x[2])+","+v(x[3])+","+v(-x[4])+","+v(-x[5])+","+v(-x[6])+","+v(-x[7])+","+v(x[8])+","+v(x[9])+","+v(x[10])+","+v(x[11])+","+v(x[12])+","+v(x[13])+","+v(x[14])+","+v(x[15])+")";return d?"translate(-50%,-50%)translate("+a+"px,"+t+"px)"+y+p:"translate(-50%,-50%)"+p}function P(b,y,x,p){if(b instanceof Te){b.onBeforeRender(f,y,x);var I;b instanceof ot?(s.copy(x.matrixWorldInverse),s.transpose(),s.copyPosition(b.matrixWorld),s.scale(b.scale),s.elements[3]=0,s.elements[7]=0,s.elements[11]=0,s.elements[15]=1,I=A(s,p)):I=A(b.matrixWorld,p);var M=b.element,te=c.objects.get(b);if(te===void 0||te.style!==I){M.style.WebkitTransform=I,M.style.transform=I;var Q={style:I};d&&(Q.distanceToCameraSquared=O(x,b)),c.objects.set(b,Q)}M.style.display=b.visible?"":"none",M.parentNode!==g&&g.appendChild(M),b.onAfterRender(f,y,x)}for(var ne=0,ce=b.children.length;ne<ce;ne++)P(b.children[ne],y,x,p)}var O=(function(){var b=new _.Vector3,y=new _.Vector3;return function(x,p){return b.setFromMatrixPosition(x.matrixWorld),y.setFromMatrixPosition(p.matrixWorld),b.distanceToSquared(y)}})();function C(b){var y=[];return b.traverse(function(x){x instanceof Te&&y.push(x)}),y}function D(b){for(var y=C(b).sort(function(M,te){var Q=c.objects.get(M).distanceToCameraSquared,ne=c.objects.get(te).distanceToCameraSquared;return Q-ne}),x=y.length,p=0,I=y.length;p<I;p++)y[p].element.style.zIndex=x-p}this.render=function(b,y){var x=y.projectionMatrix.elements[5]*t;if(c.camera.fov!==x&&(y.isPerspectiveCamera?(l.style.WebkitPerspective=x+"px",l.style.perspective=x+"px"):(l.style.WebkitPerspective="",l.style.perspective=""),c.camera.fov=x),b.autoUpdate===!0&&b.updateMatrixWorld(),y.parent===null&&y.updateMatrixWorld(),y.isOrthographicCamera)var p=-(y.right+y.left)/2,I=(y.top+y.bottom)/2;var M=y.isOrthographicCamera?"scale("+x+")translate("+v(p)+"px,"+v(I)+"px)"+T(y.matrixWorldInverse):"translateZ("+x+"px)"+T(y.matrixWorldInverse),te=M+"translate("+a+"px,"+t+"px)";c.camera.style!==te&&!d&&(g.style.WebkitTransform=te,g.style.transform=te,c.camera.style=te),P(b,b,y,M),d&&D(b)}};function Bt(f,o,e){var a=o.getBoundingClientRect(),t=a.top,s=a.left,c=a.width,l=a.height;return new w.Vector2((f.x-s)/c*2-1,-(f.y-t)/l*2+1)}var zt=(function(f){Re(o,f);function o(e,a,t,s,c){var l=f.call(this)||this;l.type="RoundedBoxGeometry",c=isNaN(c)?1:Math.max(1,Math.floor(c)),e=isNaN(e)?1:e,a=isNaN(a)?1:a,t=isNaN(t)?1:t,s=isNaN(s)?.15:s,s=Math.min(s,Math.min(e,Math.min(a,Math.min(t)))/2);var g=e/2-s,d=a/2-s,v=t/2-s;l.parameters={width:e,height:a,depth:t,radius:s,radiusSegments:c};var T=c+1,A=T*c+1<<3,P=new w.BufferAttribute(new Float32Array(A*3),3),O=new w.BufferAttribute(new Float32Array(A*3),3),C=[],D=[];new w.Vector3;var b=new w.Vector3,y=[],x=[],p=[],I=T*c,M=T*c+1;te(),ne(),Q(),ce(),xe(),me();function te(){for(var U=[new w.Vector3(1,1,1),new w.Vector3(1,1,-1),new w.Vector3(-1,1,-1),new w.Vector3(-1,1,1),new w.Vector3(1,-1,1),new w.Vector3(1,-1,-1),new w.Vector3(-1,-1,-1),new w.Vector3(-1,-1,1)],N=0;N<8;N++)C.push([]),D.push([]);for(var S=Math.PI/2,F=new w.Vector3(g,d,v),H=0;H<=c;H++){var re=H/c,G=re*S,V=Math.cos(G),K=Math.sin(G);if(H==c){b.set(0,1,0);var Y=b.clone().multiplyScalar(s).add(F);C[0].push(Y),y.push(Y);var B=b.clone();D[0].push(B),x.push(B);continue}for(var L=0;L<=c;L++){var ee=L/c,z=ee*S;b.x=V*Math.cos(z),b.y=K,b.z=V*Math.sin(z);var Y=b.clone().multiplyScalar(s).add(F);C[0].push(Y),y.push(Y);var B=b.clone().normalize();D[0].push(B),x.push(B)}}for(var X=1;X<8;X++)for(var N=0;N<C[0].length;N++){var Y=C[0][N].clone().multiply(U[X]);C[X].push(Y),y.push(Y);var B=D[0][N].clone().multiply(U[X]);D[X].push(B),x.push(B)}}function Q(){for(var U=[!0,!1,!0,!1,!1,!0,!1,!0],N=T*(c-1),S=0;S<8;S++){for(var F=M*S,H=0;H<c-1;H++)for(var re=H*T,G=(H+1)*T,V=0;V<c;V++){var K=V+1,Y=F+re+V,B=F+re+K,L=F+G+V,ee=F+G+K;U[S]?(p.push(Y),p.push(L),p.push(B),p.push(B),p.push(L),p.push(ee)):(p.push(Y),p.push(B),p.push(L),p.push(B),p.push(ee),p.push(L))}for(var V=0;V<c;V++){var Y=F+N+V,B=F+N+V+1,L=F+I;U[S]?(p.push(Y),p.push(L),p.push(B)):(p.push(Y),p.push(B),p.push(L))}}}function ne(){var U=I,N=I+M,S=I+M*2,F=I+M*3;p.push(U),p.push(N),p.push(S),p.push(U),p.push(S),p.push(F),U=I+M*4,N=I+M*5,S=I+M*6,F=I+M*7,p.push(U),p.push(S),p.push(N),p.push(U),p.push(F),p.push(S),U=0,N=M,S=M*4,F=M*5,p.push(U),p.push(S),p.push(N),p.push(N),p.push(S),p.push(F),U=M*2,N=M*3,S=M*6,F=M*7,p.push(U),p.push(S),p.push(N),p.push(N),p.push(S),p.push(F),U=c,N=c+M*3,S=c+M*4,F=c+M*7,p.push(U),p.push(N),p.push(S),p.push(N),p.push(F),p.push(S),U=c+M,N=c+M*2,S=c+M*5,F=c+M*6,p.push(U),p.push(S),p.push(N),p.push(N),p.push(S),p.push(F)}function ce(){for(var U=0;U<4;U++)for(var N=U*M,S=4*M+N,F=(U&1)===1,H=0;H<c;H++){var re=H+1,G=N+H,V=N+re,K=S+H,Y=S+re;F?(p.push(G),p.push(K),p.push(V),p.push(V),p.push(K),p.push(Y)):(p.push(G),p.push(V),p.push(K),p.push(V),p.push(Y),p.push(K))}}function me(){for(var U=[0,2,4,6],N=[1,3,5,7],S=0;S<4;S++)for(var F=M*U[S],H=M*N[S],re=1>=S,G=0;G<c;G++){var V=G*T,K=(G+1)*T,Y=F+V,B=F+K,L=H+V,ee=H+K;re?(p.push(Y),p.push(L),p.push(B),p.push(B),p.push(L),p.push(ee)):(p.push(Y),p.push(B),p.push(L),p.push(B),p.push(ee),p.push(L))}}function xe(){for(var U=c-1,N=[0,1,4,5],S=[3,2,7,6],F=[0,1,1,0],H=0;H<4;H++)for(var re=N[H]*M,G=S[H]*M,V=0;V<=U;V++){var K=re+c+V*T,Y=re+(V!=U?c+(V+1)*T:M-1),B=G+c+V*T,L=G+(V!=U?c+(V+1)*T:M-1);F[H]?(p.push(K),p.push(B),p.push(Y),p.push(Y),p.push(B),p.push(L)):(p.push(K),p.push(Y),p.push(B),p.push(Y),p.push(L),p.push(B))}}for(var ae=0,oe=0;oe<y.length;oe++)P.setXYZ(ae,y[oe].x,y[oe].y,y[oe].z),O.setXYZ(ae,x[oe].x,x[oe].y,x[oe].z),ae++;return l.setIndex(new w.BufferAttribute(new Uint16Array(p),1)),l.setAttribute("position",P),l.setAttribute("normal",O),l}return o})(w.BufferGeometry);function je(f,o){return typeof f!="number"||typeof o!="number"?!1:Math.abs(f-o)<.001}function ze(f,o,e,a){a===void 0&&(a=function(s){return s});var t=a(e);return f*(1-t)+o*t}var $=Number((Math.PI/2).toFixed(5));function Cn(f,o,e){var a=new w.Shape;return a.moveTo(e,0),a.lineTo(f-e,0),a.absarc(f-e,e,e,-$,0,!1),a.lineTo(f,o-e),a.absarc(f-e,o-e,e,0,$,!1),a.lineTo(e,o),a.absarc(e,o-e,e,$,Math.PI,!1),a.lineTo(0,e),a.absarc(e,e,e,Math.PI,Math.PI*1.5,!1),a}var Ge=function(f){var o=document.createElement("div");o.innerText=f;var e=new Te(o);return e.name=f,e.scale.set(.3,.3,.3),o.style.pointerEvents="none",o.style.backfaceVisibility="hidden",e},nt=function(f){var o=new w.PlaneGeometry(5,5),e=new w.MeshBasicMaterial({transparent:!0,opacity:0}),a=new w.Mesh(o,e),t=document.createElement("div");t.innerText=f;var s=new Te(t);return s.name=f,s.scale.set(.3,.3,.3),t.style.color="#ffffff",t.style.opacity="0.5",t.style.pointerEvents="none",t.style.backfaceVisibility="hidden",a.rotateX(-$),a.add(s),a},On=(function(f){Re(o,f);function o(e,a){var t=f.call(this,e)||this;t.camera=new Ne.Camera(90),t.scene=new w.Scene,t.renderer=new w.WebGLRenderer({antialias:!0,alpha:!0}),t.css3drenderer=new jt,t.ambientLight=new w.AmbientLight(16777215,.7),t.wrapper=document.createElement("div"),t.arrows=document.createElement("div"),t.arrowLeft=document.createElement("div"),t.arrowRight=document.createElement("div"),t.arrowFront=document.createElement("div"),t.arrowBack=document.createElement("div"),t.arrowTop=document.createElement("div"),t.arrowBottom=document.createElement("div"),t.spherical=null,t.dragging=!1,t.style=document.createElement("style"),t.directionalLight=new w.DirectionalLight(16777215,.2),t.box=new w.Mesh(new zt(8,8,8,.5,20),new w.MeshPhongMaterial({color:16777215})),t.faces=new w.Group,t.orient=function(l){var g=l.longitude,d=l.latitude;t.dragging=!1,t.spherical=null,t.controls.enableDamping=!1,t.five.setState(Object.assign({latitude:d},g!==void 0?{longitude:g+t.config.fixedLongitude}:{})),t.five.ready().then(function(){t.controls.enableDamping=!0,t.setState({arrowsVisible:!0})})},t.onRenderFrame=function(){var l,g,d,v,T;if(t.renderer.render(t.scene,t.camera),t.css3drenderer.render(t.scene,t.camera),t.directionalLight.position.copy(t.camera.position),(l=t.controls)===null||l===void 0||l.update(),t.dragging){t.camera.computePose(),t.updateByCamera();var A=t.camera.pose,P=A.longitude,O=A.latitude;t.five.setState({longitude:P,latitude:O},!0),t.updateArrows({longitude:P,latitude:O})}else if(t.spherical&&(!je(t.spherical.pi,(g=t.controls)===null||g===void 0?void 0:g.getPolarAngle())||!je(t.spherical.theta,(d=t.controls)===null||d===void 0?void 0:d.getAzimuthalAngle()))){t.spherical={pi:(v=t.controls)===null||v===void 0?void 0:v.getPolarAngle(),theta:(T=t.controls)===null||T===void 0?void 0:T.getAzimuthalAngle()},t.camera.computePose(),t.updateByCamera();var C=t.camera.pose,P=C.longitude,O=C.latitude;t.five.setState({longitude:P,latitude:O},!0),t.updateArrows({longitude:P,latitude:O})}else t.spherical=null},t.onTapGesture=function(l){var g=l.pointers[0].clientX,d=l.pointers[0].clientY,v=Bt({x:g,y:d},t.wrapper),T=new w.Raycaster;T.setFromCamera(v,t.camera);var A=T.intersectObjects(t.faces.children,!1)[0];if(A){var P=A.object.userData,O=P.longitude,C=P.latitude;t.orient({longitude:O,latitude:C})}},t.onFiveWantsGesture=function(){if(t.spherical)return!1},t.onFiveModeChange=function(l){t.controls&&(t.controls.maxPolarAngle=l==="Topview"?0:$)},t.onCameraUpdate=function(l){var g=l.state;if(!t.dragging&&!t.spherical){var d=g.longitude,v=g.latitude;t.camera.pose.longitude===d&&t.camera.pose.latitude===v||(t.camera.setFromPose({longitude:d,latitude:v,distance:20,offset:new w.Vector3(0,0,0)}),t.updateByCamera(),t.updateArrows({longitude:d,latitude:v}))}},t.onPanStart=function(l){t.dragging=!0,t.spherical={}},t.onMouseMove=function(l){if(!t.dragging){var g=Bt({x:l.clientX,y:l.clientY},t.wrapper),d=new w.Raycaster;d.setFromCamera(g,t.camera);var v=d.intersectObjects(t.faces.children,!1)[0];t.faces.children.forEach(function(T){T.material.opacity=0,T.children[0].element.style.color=""}),v&&(v.object.material.opacity=.3,v.object.children[0].element.style.color="#336dff")}},t.onPanEnd=function(l){t.dragging=!1,t.spherical={pi:t.controls.getPolarAngle(),theta:t.controls.getAzimuthalAngle()}},t.dispose=function(){t.disable()},t.five=e;var s={enabled:!1,visible:!0,arrowsVisible:!1};t.state=Object.assign(s,a==null?void 0:a.initialState);var c=j({fixedLongitude:0,orthoView:!0},a==null?void 0:a.config);return t._config=c,t.state.enabled&&t._enable({userAction:!1}),t.mc=new yt.Manager(t.wrapper),t.mc.add(new yt.Tap({interval:410})),t.mc.add(new yt.Pan({threshold:10,pointers:0})),t.camera.setFromPose({distance:20,offset:new w.Vector3(0,0,0),longitude:e.camera.pose.latitude,latitude:e.camera.pose.latitude}),t.cylinder=new w.Mesh(new w.CylinderGeometry(13.2,14,.01,50,1,!0),new w.ShaderMaterial({uniforms:{radiusTop:{value:13.2},radiusBottom:{value:14},opacity:{value:1}},vertexShader:`
354
+ * Licensed under the MIT license */var yt=(function(c,a,e,n){var t=["","webkit","Moz","MS","ms","o"],o=a.createElement?a.createElement("div"):n,s="function",l=Math.round,h=Math.abs,f=Date.now;function g(r,i,u){return setTimeout(b(r,u),i)}function y(r,i,u){return Array.isArray(r)?(w(r,u[i],u),!0):!1}function w(r,i,u){var p;if(r)if(r.forEach)r.forEach(i,u);else if(r.length!==n)for(p=0;p<r.length;)i.call(u,r[p],p,r),p++;else for(p in r)r.hasOwnProperty(p)&&i.call(u,r[p],p,r)}function P(r,i,u){var p="DEPRECATED METHOD: "+i+`
355
+ `+u+` AT
356
+ `;return function(){var E=new Error("get-stack-trace"),M=E&&E.stack?E.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",L=c.console&&(c.console.warn||c.console.log);return L&&L.call(c.console,p,M),r.apply(this,arguments)}}var A;typeof Object.assign!="function"?A=function(i){if(i===n||i===null)throw new TypeError("Cannot convert undefined or null to object");for(var u=Object(i),p=1;p<arguments.length;p++){var E=arguments[p];if(E!==n&&E!==null)for(var M in E)E.hasOwnProperty(M)&&(u[M]=E[M])}return u}:A=Object.assign;var S=P(function(i,u,p){for(var E=Object.keys(u),M=0;M<E.length;)(!p||p&&i[E[M]]===n)&&(i[E[M]]=u[E[M]]),M++;return i},"extend","Use `assign`."),C=P(function(i,u){return S(i,u,!0)},"merge","Use `assign`.");function T(r,i,u){var p=i.prototype,E;E=r.prototype=Object.create(p),E.constructor=r,E._super=p,u&&A(E,u)}function b(r,i){return function(){return r.apply(i,arguments)}}function x(r,i){return typeof r==s?r.apply(i&&i[0]||n,i):r}function m(r,i){return r===n?i:r}function O(r,i,u){w(R(i),function(p){r.addEventListener(p,u,!1)})}function _(r,i,u){w(R(i),function(p){r.removeEventListener(p,u,!1)})}function W(r,i){for(;r;){if(r==i)return!0;r=r.parentNode}return!1}function H(r,i){return r.indexOf(i)>-1}function R(r){return r.trim().split(/\s+/g)}function J(r,i,u){if(r.indexOf&&!u)return r.indexOf(i);for(var p=0;p<r.length;){if(u&&r[p][u]==i||!u&&r[p]===i)return p;p++}return-1}function se(r){return Array.prototype.slice.call(r,0)}function ue(r,i,u){for(var p=[],E=[],M=0;M<r.length;){var L=r[M][i];J(E,L)<0&&p.push(r[M]),E[M]=L,M++}return p=p.sort(function(fe,ee){return fe[i]>ee[i]}),p}function $(r,i){for(var u,p,E=i[0].toUpperCase()+i.slice(1),M=0;M<t.length;){if(u=t[M],p=u?u+E:i,p in r)return p;M++}return n}var Q=1;function F(){return Q++}function N(r){var i=r.ownerDocument||r;return i.defaultView||i.parentWindow||c}var k=/mobile|tablet|ip(ad|hone|od)|android/i,U="ontouchstart"in c,Y=$(c,"PointerEvent")!==n,oe=U&&k.test(navigator.userAgent),q="touch",V="pen",te="mouse",G="kinect",j=25,D=1,ae=2,X=4,K=8,Se=1,Pe=2,Me=4,_e=8,xe=16,ce=Pe|Me,pe=_e|xe,Be=ce|pe,Ue=["x","y"],Oe=["clientX","clientY"];function le(r,i){var u=this;this.manager=r,this.callback=i,this.element=r.element,this.target=r.options.inputTarget,this.domHandler=function(p){x(r.options.enable,[r])&&u.handler(p)},this.init()}le.prototype={handler:function(){},init:function(){this.evEl&&O(this.element,this.evEl,this.domHandler),this.evTarget&&O(this.target,this.evTarget,this.domHandler),this.evWin&&O(N(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&_(this.element,this.evEl,this.domHandler),this.evTarget&&_(this.target,this.evTarget,this.domHandler),this.evWin&&_(N(this.element),this.evWin,this.domHandler)}};function We(r){var i,u=r.options.inputClass;return u?i=u:Y?i=lt:oe?i=Ze:U?i=ut:i=Ke,new i(r,Xe)}function Xe(r,i,u){var p=u.pointers.length,E=u.changedPointers.length,M=i&D&&p-E===0,L=i&(X|K)&&p-E===0;u.isFirst=!!M,u.isFinal=!!L,M&&(r.session={}),u.eventType=i,d(r,u),r.emit("hammer.input",u),r.recognize(u),r.session.prevInput=u}function d(r,i){var u=r.session,p=i.pointers,E=p.length;u.firstInput||(u.firstInput=ne(i)),E>1&&!u.firstMultiple?u.firstMultiple=ne(i):E===1&&(u.firstMultiple=!1);var M=u.firstInput,L=u.firstMultiple,re=L?L.center:M.center,fe=i.center=me(p);i.timeStamp=f(),i.deltaTime=i.timeStamp-M.timeStamp,i.angle=st(re,fe),i.distance=qe(re,fe),B(u,i),i.offsetDirection=be(i.deltaX,i.deltaY);var ee=Re(i.deltaTime,i.deltaX,i.deltaY);i.overallVelocityX=ee.x,i.overallVelocityY=ee.y,i.overallVelocity=h(ee.x)>h(ee.y)?ee.x:ee.y,i.scale=L?Jt(L.pointers,p):1,i.rotation=L?Qt(L.pointers,p):0,i.maxPointers=u.prevInput?i.pointers.length>u.prevInput.maxPointers?i.pointers.length:u.prevInput.maxPointers:i.pointers.length,Z(u,i);var ye=r.element;W(i.srcEvent.target,ye)&&(ye=i.srcEvent.target),i.target=ye}function B(r,i){var u=i.center,p=r.offsetDelta||{},E=r.prevDelta||{},M=r.prevInput||{};(i.eventType===D||M.eventType===X)&&(E=r.prevDelta={x:M.deltaX||0,y:M.deltaY||0},p=r.offsetDelta={x:u.x,y:u.y}),i.deltaX=E.x+(u.x-p.x),i.deltaY=E.y+(u.y-p.y)}function Z(r,i){var u=r.lastInterval||i,p=i.timeStamp-u.timeStamp,E,M,L,re;if(i.eventType!=K&&(p>j||u.velocity===n)){var fe=i.deltaX-u.deltaX,ee=i.deltaY-u.deltaY,ye=Re(p,fe,ee);M=ye.x,L=ye.y,E=h(ye.x)>h(ye.y)?ye.x:ye.y,re=be(fe,ee),r.lastInterval=i}else E=u.velocity,M=u.velocityX,L=u.velocityY,re=u.direction;i.velocity=E,i.velocityX=M,i.velocityY=L,i.direction=re}function ne(r){for(var i=[],u=0;u<r.pointers.length;)i[u]={clientX:l(r.pointers[u].clientX),clientY:l(r.pointers[u].clientY)},u++;return{timeStamp:f(),pointers:i,center:me(i),deltaX:r.deltaX,deltaY:r.deltaY}}function me(r){var i=r.length;if(i===1)return{x:l(r[0].clientX),y:l(r[0].clientY)};for(var u=0,p=0,E=0;E<i;)u+=r[E].clientX,p+=r[E].clientY,E++;return{x:l(u/i),y:l(p/i)}}function Re(r,i,u){return{x:i/r||0,y:u/r||0}}function be(r,i){return r===i?Se:h(r)>=h(i)?r<0?Pe:Me:i<0?_e:xe}function qe(r,i,u){u||(u=Ue);var p=i[u[0]]-r[u[0]],E=i[u[1]]-r[u[1]];return Math.sqrt(p*p+E*E)}function st(r,i,u){u||(u=Ue);var p=i[u[0]]-r[u[0]],E=i[u[1]]-r[u[1]];return Math.atan2(E,p)*180/Math.PI}function Qt(r,i){return st(i[1],i[0],Oe)+st(r[1],r[0],Oe)}function Jt(r,i){return qe(i[0],i[1],Oe)/qe(r[0],r[1],Oe)}var $t={mousedown:D,mousemove:ae,mouseup:X},en="mousedown",tn="mousemove mouseup";function Ke(){this.evEl=en,this.evWin=tn,this.pressed=!1,le.apply(this,arguments)}T(Ke,le,{handler:function(i){var u=$t[i.type];u&D&&(i.button===0||i.button===2)&&(this.pressed=!0),u&ae&&i.which!==1&&(u=X),this.pressed&&(u&X&&(this.pressed=!1),this.callback(this.manager,u,{pointers:[i],changedPointers:[i],pointerType:te,srcEvent:i}))}});var _t={pointerdown:D,pointermove:ae,pointerup:X,pointercancel:K,pointerout:K},nn={2:q,3:V,4:te,5:G},Ot="pointerdown",Ct="pointermove pointerup pointercancel";c.MSPointerEvent&&!c.PointerEvent&&(Ot="MSPointerDown",Ct="MSPointerMove MSPointerUp MSPointerCancel");function lt(){this.evEl=Ot,this.evWin=Ct,le.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}T(lt,le,{handler:function(i){var u=this.store,p=!1,E=!1,M=i.type.toLowerCase().replace("ms",""),L=_t[M],re=nn[i.pointerType]||i.pointerType,fe=re==q,ee=J(u,i.pointerId,"pointerId");L&D&&(i.button===0||i.button===2||fe)?ee<0&&(u.push(i),ee=u.length-1):L&(X|K)?p=!0:!fe&&i.buttons===0&&(p=!0,E=!0,L=_t.pointerup),!(ee<0)&&(E||(u[ee]=i),this.callback(this.manager,L,{pointers:u,changedPointers:[i],pointerType:re,srcEvent:u[ee]}),p&&u.splice(ee,1))}});var rn={touchstart:D,touchmove:ae,touchend:X,touchcancel:K},an="touchstart",on="touchstart touchmove touchend touchcancel";function It(){this.evTarget=an,this.evWin=on,this.started=!1,le.apply(this,arguments)}T(It,le,{handler:function(i){var u=rn[i.type];if(u===D&&(this.started=!0),!!this.started){var p=sn.call(this,i,u);u&(X|K)&&p[0].length-p[1].length===0&&(this.started=!1),this.callback(this.manager,u,{pointers:p[0],changedPointers:p[1],pointerType:q,srcEvent:i})}}});function sn(r,i){var u=se(r.touches),p=se(r.changedTouches);return i&(X|K)&&(u=ue(u.concat(p),"identifier")),[u,p]}var ln={touchstart:D,touchmove:ae,touchend:X,touchcancel:K},un="touchstart touchmove touchend touchcancel";function Ze(){this.evTarget=un,this.targetIds={},le.apply(this,arguments)}T(Ze,le,{handler:function(i){var u=ln[i.type],p=cn.call(this,i,u);p&&this.callback(this.manager,u,{pointers:p[0],changedPointers:p[1],pointerType:q,srcEvent:i})}});function cn(r,i){var u=se(r.touches),p=this.targetIds;if(i&(D|ae)&&u.length===1)return p[u[0].identifier]=!0,[u,u];var E,M,L=se(r.changedTouches),re=[],fe=this.target;if(M=u.filter(function(ee){return W(ee.target,fe)}),i===D)for(E=0;E<M.length;)p[M[E].identifier]=!0,E++;for(E=0;E<L.length;)p[L[E].identifier]&&re.push(L[E]),i&(X|K)&&delete p[L[E].identifier],E++;if(re.length)return[ue(M.concat(re),"identifier"),re]}var fn=2500,Nt=25;function ut(){le.apply(this,arguments);var r=b(this.handler,this);this.touch=new Ze(this.manager,r),this.mouse=new Ke(this.manager,r),this.primaryTouch=null,this.lastTouches=[]}T(ut,le,{handler:function(i,u,p){var E=p.pointerType==q,M=p.pointerType==te;if(!(M&&p.sourceCapabilities&&p.sourceCapabilities.firesTouchEvents)){if(E)hn.call(this,u,p);else if(M&&dn.call(this,p))return;this.callback(i,u,p)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});function hn(r,i){r&D?(this.primaryTouch=i.changedPointers[0].identifier,kt.call(this,i)):r&(X|K)&&kt.call(this,i)}function kt(r){var i=r.changedPointers[0];if(i.identifier===this.primaryTouch){var u={x:i.clientX,y:i.clientY};this.lastTouches.push(u);var p=this.lastTouches,E=function(){var M=p.indexOf(u);M>-1&&p.splice(M,1)};setTimeout(E,fn)}}function dn(r){for(var i=r.srcEvent.clientX,u=r.srcEvent.clientY,p=0;p<this.lastTouches.length;p++){var E=this.lastTouches[p],M=Math.abs(i-E.x),L=Math.abs(u-E.y);if(M<=Nt&&L<=Nt)return!0}return!1}var Lt=o?$(o.style,"touchAction"):n,Dt=Lt!==n,Ft="compute",Bt="auto",ct="manipulation",Ce="none",Ve="pan-x",ze="pan-y",Qe=vn();function ft(r,i){this.manager=r,this.set(i)}ft.prototype={set:function(r){r==Ft&&(r=this.compute()),Dt&&this.manager.element.style&&Qe[r]&&(this.manager.element.style[Lt]=r),this.actions=r.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var r=[];return w(this.manager.recognizers,function(i){x(i.options.enable,[i])&&(r=r.concat(i.getTouchAction()))}),pn(r.join(" "))},preventDefaults:function(r){var i=r.srcEvent,u=r.offsetDirection;if(this.manager.session.prevented){i.preventDefault();return}var p=this.actions,E=H(p,Ce)&&!Qe[Ce],M=H(p,ze)&&!Qe[ze],L=H(p,Ve)&&!Qe[Ve];if(E){var re=r.pointers.length===1,fe=r.distance<2,ee=r.deltaTime<250;if(re&&fe&&ee)return}if(!(L&&M)&&(E||M&&u&ce||L&&u&pe))return this.preventSrc(i)},preventSrc:function(r){this.manager.session.prevented=!0,r.preventDefault()}};function pn(r){if(H(r,Ce))return Ce;var i=H(r,Ve),u=H(r,ze);return i&&u?Ce:i||u?i?Ve:ze:H(r,ct)?ct:Bt}function vn(){if(!Dt)return!1;var r={},i=c.CSS&&c.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(u){r[u]=i?c.CSS.supports("touch-action",u):!0}),r}var Je=1,he=2,Le=4,Ae=8,we=Ae,je=16,ge=32;function Ee(r){this.options=A({},this.defaults,r||{}),this.id=F(),this.manager=null,this.options.enable=m(this.options.enable,!0),this.state=Je,this.simultaneous={},this.requireFail=[]}Ee.prototype={defaults:{},set:function(r){return A(this.options,r),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(r){if(y(r,"recognizeWith",this))return this;var i=this.simultaneous;return r=$e(r,this),i[r.id]||(i[r.id]=r,r.recognizeWith(this)),this},dropRecognizeWith:function(r){return y(r,"dropRecognizeWith",this)?this:(r=$e(r,this),delete this.simultaneous[r.id],this)},requireFailure:function(r){if(y(r,"requireFailure",this))return this;var i=this.requireFail;return r=$e(r,this),J(i,r)===-1&&(i.push(r),r.requireFailure(this)),this},dropRequireFailure:function(r){if(y(r,"dropRequireFailure",this))return this;r=$e(r,this);var i=J(this.requireFail,r);return i>-1&&this.requireFail.splice(i,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(r){return!!this.simultaneous[r.id]},emit:function(r){var i=this,u=this.state;function p(E){i.manager.emit(E,r)}u<Ae&&p(i.options.event+Ut(u)),p(i.options.event),r.additionalEvent&&p(r.additionalEvent),u>=Ae&&p(i.options.event+Ut(u))},tryEmit:function(r){if(this.canEmit())return this.emit(r);this.state=ge},canEmit:function(){for(var r=0;r<this.requireFail.length;){if(!(this.requireFail[r].state&(ge|Je)))return!1;r++}return!0},recognize:function(r){var i=A({},r);if(!x(this.options.enable,[this,i])){this.reset(),this.state=ge;return}this.state&(we|je|ge)&&(this.state=Je),this.state=this.process(i),this.state&(he|Le|Ae|je)&&this.tryEmit(i)},process:function(r){},getTouchAction:function(){},reset:function(){}};function Ut(r){return r&je?"cancel":r&Ae?"end":r&Le?"move":r&he?"start":""}function Rt(r){return r==xe?"down":r==_e?"up":r==Pe?"left":r==Me?"right":""}function $e(r,i){var u=i.manager;return u?u.get(r):r}function ve(){Ee.apply(this,arguments)}T(ve,Ee,{defaults:{pointers:1},attrTest:function(r){var i=this.options.pointers;return i===0||r.pointers.length===i},process:function(r){var i=this.state,u=r.eventType,p=i&(he|Le),E=this.attrTest(r);return p&&(u&K||!E)?i|je:p||E?u&X?i|Ae:i&he?i|Le:he:ge}});function et(){ve.apply(this,arguments),this.pX=null,this.pY=null}T(et,ve,{defaults:{event:"pan",threshold:10,pointers:1,direction:Be},getTouchAction:function(){var r=this.options.direction,i=[];return r&ce&&i.push(ze),r&pe&&i.push(Ve),i},directionTest:function(r){var i=this.options,u=!0,p=r.distance,E=r.direction,M=r.deltaX,L=r.deltaY;return E&i.direction||(i.direction&ce?(E=M===0?Se:M<0?Pe:Me,u=M!=this.pX,p=Math.abs(r.deltaX)):(E=L===0?Se:L<0?_e:xe,u=L!=this.pY,p=Math.abs(r.deltaY))),r.direction=E,u&&p>i.threshold&&E&i.direction},attrTest:function(r){return ve.prototype.attrTest.call(this,r)&&(this.state&he||!(this.state&he)&&this.directionTest(r))},emit:function(r){this.pX=r.deltaX,this.pY=r.deltaY;var i=Rt(r.direction);i&&(r.additionalEvent=this.options.event+i),this._super.emit.call(this,r)}});function ht(){ve.apply(this,arguments)}T(ht,ve,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Ce]},attrTest:function(r){return this._super.attrTest.call(this,r)&&(Math.abs(r.scale-1)>this.options.threshold||this.state&he)},emit:function(r){if(r.scale!==1){var i=r.scale<1?"in":"out";r.additionalEvent=this.options.event+i}this._super.emit.call(this,r)}});function dt(){Ee.apply(this,arguments),this._timer=null,this._input=null}T(dt,Ee,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Bt]},process:function(r){var i=this.options,u=r.pointers.length===i.pointers,p=r.distance<i.threshold,E=r.deltaTime>i.time;if(this._input=r,!p||!u||r.eventType&(X|K)&&!E)this.reset();else if(r.eventType&D)this.reset(),this._timer=g(function(){this.state=we,this.tryEmit()},i.time,this);else if(r.eventType&X)return we;return ge},reset:function(){clearTimeout(this._timer)},emit:function(r){this.state===we&&(r&&r.eventType&X?this.manager.emit(this.options.event+"up",r):(this._input.timeStamp=f(),this.manager.emit(this.options.event,this._input)))}});function pt(){ve.apply(this,arguments)}T(pt,ve,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Ce]},attrTest:function(r){return this._super.attrTest.call(this,r)&&(Math.abs(r.rotation)>this.options.threshold||this.state&he)}});function vt(){ve.apply(this,arguments)}T(vt,ve,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:ce|pe,pointers:1},getTouchAction:function(){return et.prototype.getTouchAction.call(this)},attrTest:function(r){var i=this.options.direction,u;return i&(ce|pe)?u=r.overallVelocity:i&ce?u=r.overallVelocityX:i&pe&&(u=r.overallVelocityY),this._super.attrTest.call(this,r)&&i&r.offsetDirection&&r.distance>this.options.threshold&&r.maxPointers==this.options.pointers&&h(u)>this.options.velocity&&r.eventType&X},emit:function(r){var i=Rt(r.offsetDirection);i&&this.manager.emit(this.options.event+i,r),this.manager.emit(this.options.event,r)}});function tt(){Ee.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}T(tt,Ee,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ct]},process:function(r){var i=this.options,u=r.pointers.length===i.pointers,p=r.distance<i.threshold,E=r.deltaTime<i.time;if(this.reset(),r.eventType&D&&this.count===0)return this.failTimeout();if(p&&E&&u){if(r.eventType!=X)return this.failTimeout();var M=this.pTime?r.timeStamp-this.pTime<i.interval:!0,L=!this.pCenter||qe(this.pCenter,r.center)<i.posThreshold;this.pTime=r.timeStamp,this.pCenter=r.center,!L||!M?this.count=1:this.count+=1,this._input=r;var re=this.count%i.taps;if(re===0)return this.hasRequireFailures()?(this._timer=g(function(){this.state=we,this.tryEmit()},i.interval,this),he):we}return ge},failTimeout:function(){return this._timer=g(function(){this.state=ge},this.options.interval,this),ge},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==we&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}});function De(r,i){return i=i||{},i.recognizers=m(i.recognizers,De.defaults.preset),new mt(r,i)}De.VERSION="2.0.7",De.defaults={domEvents:!1,touchAction:Ft,enable:!0,inputTarget:null,inputClass:null,preset:[[pt,{enable:!1}],[ht,{enable:!1},["rotate"]],[vt,{direction:ce}],[et,{direction:ce},["swipe"]],[tt],[tt,{event:"doubletap",taps:2},["tap"]],[dt]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var mn=1,Vt=2;function mt(r,i){this.options=A({},De.defaults,i||{}),this.options.inputTarget=this.options.inputTarget||r,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=r,this.input=We(this),this.touchAction=new ft(this,this.options.touchAction),zt(this,!0),w(this.options.recognizers,function(u){var p=this.add(new u[0](u[1]));u[2]&&p.recognizeWith(u[2]),u[3]&&p.requireFailure(u[3])},this)}mt.prototype={set:function(r){return A(this.options,r),r.touchAction&&this.touchAction.update(),r.inputTarget&&(this.input.destroy(),this.input.target=r.inputTarget,this.input.init()),this},stop:function(r){this.session.stopped=r?Vt:mn},recognize:function(r){var i=this.session;if(!i.stopped){this.touchAction.preventDefaults(r);var u,p=this.recognizers,E=i.curRecognizer;(!E||E&&E.state&we)&&(E=i.curRecognizer=null);for(var M=0;M<p.length;)u=p[M],i.stopped!==Vt&&(!E||u==E||u.canRecognizeWith(E))?u.recognize(r):u.reset(),!E&&u.state&(he|Le|Ae)&&(E=i.curRecognizer=u),M++}},get:function(r){if(r instanceof Ee)return r;for(var i=this.recognizers,u=0;u<i.length;u++)if(i[u].options.event==r)return i[u];return null},add:function(r){if(y(r,"add",this))return this;var i=this.get(r.options.event);return i&&this.remove(i),this.recognizers.push(r),r.manager=this,this.touchAction.update(),r},remove:function(r){if(y(r,"remove",this))return this;if(r=this.get(r),r){var i=this.recognizers,u=J(i,r);u!==-1&&(i.splice(u,1),this.touchAction.update())}return this},on:function(r,i){if(r!==n&&i!==n){var u=this.handlers;return w(R(r),function(p){u[p]=u[p]||[],u[p].push(i)}),this}},off:function(r,i){if(r!==n){var u=this.handlers;return w(R(r),function(p){i?u[p]&&u[p].splice(J(u[p],i),1):delete u[p]}),this}},emit:function(r,i){this.options.domEvents&&gn(r,i);var u=this.handlers[r]&&this.handlers[r].slice();if(!(!u||!u.length)){i.type=r,i.preventDefault=function(){i.srcEvent.preventDefault()};for(var p=0;p<u.length;)u[p](i),p++}},destroy:function(){this.element&&zt(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}};function zt(r,i){var u=r.element;if(u.style){var p;w(r.options.cssProps,function(E,M){p=$(u.style,M),i?(r.oldCssProps[p]=u.style[p],u.style[p]=E):u.style[p]=r.oldCssProps[p]||""}),i||(r.oldCssProps={})}}function gn(r,i){var u=a.createEvent("Event");u.initEvent(r,!0,!0),u.gesture=i,i.target.dispatchEvent(u)}return A(De,{INPUT_START:D,INPUT_MOVE:ae,INPUT_END:X,INPUT_CANCEL:K,STATE_POSSIBLE:Je,STATE_BEGAN:he,STATE_CHANGED:Le,STATE_ENDED:Ae,STATE_RECOGNIZED:we,STATE_CANCELLED:je,STATE_FAILED:ge,DIRECTION_NONE:Se,DIRECTION_LEFT:Pe,DIRECTION_RIGHT:Me,DIRECTION_UP:_e,DIRECTION_DOWN:xe,DIRECTION_HORIZONTAL:ce,DIRECTION_VERTICAL:pe,DIRECTION_ALL:Be,Manager:mt,Input:le,TouchAction:ft,TouchInput:Ze,MouseInput:Ke,PointerEventInput:lt,TouchMouseInput:ut,SingleTouchInput:It,Recognizer:Ee,AttrRecognizer:ve,Tap:tt,Pan:et,Swipe:vt,Pinch:ht,Rotate:pt,Press:dt,on:O,off:_,each:w,merge:C,extend:S,assign:A,inherit:T,bindFn:b,prefixed:$}),De})(typeof window!="undefined"?window:{},typeof document!="undefined"?document:{}),Fe=function(c,a){a===void 0&&console.warn('THREE.OrbitControls: The second parameter "domElement" is now mandatory.'),a===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.object=c,this.domElement=a,this.enabled=!0,this.target=new I.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!1,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.enableKeys=!0,this.keys={LEFT:37,UP:38,RIGHT:39,BOTTOM:40},this.mouseButtons={LEFT:I.MOUSE.ROTATE,MIDDLE:I.MOUSE.DOLLY,RIGHT:I.MOUSE.PAN},this.touches={ONE:I.TOUCH.ROTATE,TWO:I.TOUCH.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=function(){return f.phi},this.getAzimuthalAngle=function(){return f.theta},this.saveState=function(){e.target0.copy(e.target),e.position0.copy(e.object.position),e.zoom0=e.object.zoom},this.reset=function(){e.target.copy(e.target0),e.object.position.copy(e.position0),e.object.zoom=e.zoom0,e.object.updateProjectionMatrix(),e.dispatchEvent(n),e.update(),l=s.NONE},this.update=(function(){var d=new I.Vector3,B=new I.Quaternion().setFromUnitVectors(c.up,new I.Vector3(0,1,0)),Z=B.clone().inverse(),ne=new I.Vector3,me=new I.Quaternion;return function(){var be=e.object.position;return d.copy(be).sub(e.target),d.applyQuaternion(B),f.setFromVector3(d),e.autoRotate&&l===s.NONE&&R(W()),e.enableDamping?(f.theta+=g.theta*e.dampingFactor,f.phi+=g.phi*e.dampingFactor):(f.theta+=g.theta,f.phi+=g.phi),f.theta=Math.max(e.minAzimuthAngle,Math.min(e.maxAzimuthAngle,f.theta)),f.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,f.phi)),f.makeSafe(),f.radius*=y,f.radius=Math.max(e.minDistance,Math.min(e.maxDistance,f.radius)),e.enableDamping===!0?e.target.addScaledVector(w,e.dampingFactor):e.target.add(w),d.setFromSpherical(f),d.applyQuaternion(Z),be.copy(e.target).add(d),e.object.lookAt(e.target),e.enableDamping===!0?(g.theta*=1-e.dampingFactor,g.phi*=1-e.dampingFactor,w.multiplyScalar(1-e.dampingFactor)):(g.set(0,0,0),w.set(0,0,0)),y=1,P||ne.distanceToSquared(e.object.position)>h||8*(1-me.dot(e.object.quaternion))>h?(e.dispatchEvent(n),ne.copy(e.object.position),me.copy(e.object.quaternion),P=!1,!0):!1}})(),this.dispose=function(){e.domElement.removeEventListener("contextmenu",Xe,!1),e.domElement.removeEventListener("mousedown",xe,!1),e.domElement.removeEventListener("wheel",Be,!1),e.domElement.removeEventListener("touchstart",Oe,!1),e.domElement.removeEventListener("touchend",We,!1),e.domElement.removeEventListener("touchmove",le,!1),document.removeEventListener("mousemove",ce,!1),document.removeEventListener("mouseup",pe,!1),e.domElement.removeEventListener("keydown",Ue,!1)};var e=this,n={type:"change"},t={type:"start"},o={type:"end"},s={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},l=s.NONE,h=1e-6,f=new I.Spherical,g=new I.Spherical,y=1,w=new I.Vector3,P=!1,A=new I.Vector2,S=new I.Vector2,C=new I.Vector2,T=new I.Vector2,b=new I.Vector2,x=new I.Vector2,m=new I.Vector2,O=new I.Vector2,_=new I.Vector2;function W(){return 2*Math.PI/60/60*e.autoRotateSpeed}function H(){return Math.pow(.95,e.zoomSpeed)}function R(d){g.theta-=d}function J(d){g.phi-=d}var se=(function(){var d=new I.Vector3;return function(Z,ne){d.setFromMatrixColumn(ne,0),d.multiplyScalar(-Z),w.add(d)}})(),ue=(function(){var d=new I.Vector3;return function(Z,ne){e.screenSpacePanning===!0?d.setFromMatrixColumn(ne,1):(d.setFromMatrixColumn(ne,0),d.crossVectors(e.object.up,d)),d.multiplyScalar(Z),w.add(d)}})(),$=(function(){var d=new I.Vector3;return function(Z,ne){var me=e.domElement;if(e.object.isPerspectiveCamera){var Re=e.object.position;d.copy(Re).sub(e.target);var be=d.length();be*=Math.tan(e.object.fov/2*Math.PI/180),se(2*Z*be/me.clientHeight,e.object.matrix),ue(2*ne*be/me.clientHeight,e.object.matrix)}else e.object.isOrthographicCamera?(se(Z*(e.object.right-e.object.left)/e.object.zoom/me.clientWidth,e.object.matrix),ue(ne*(e.object.top-e.object.bottom)/e.object.zoom/me.clientHeight,e.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),e.enablePan=!1)}})();function Q(d){e.object.isPerspectiveCamera?y/=d:e.object.isOrthographicCamera?(e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom*d)),e.object.updateProjectionMatrix(),P=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function F(d){e.object.isPerspectiveCamera?y*=d:e.object.isOrthographicCamera?(e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/d)),e.object.updateProjectionMatrix(),P=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function N(d){A.set(d.clientX,d.clientY)}function k(d){m.set(d.clientX,d.clientY)}function U(d){T.set(d.clientX,d.clientY)}function Y(d){S.set(d.clientX,d.clientY),C.subVectors(S,A).multiplyScalar(e.rotateSpeed);var B=e.domElement;R(2*Math.PI*C.x/B.clientHeight),J(2*Math.PI*C.y/B.clientHeight),A.copy(S),e.update()}function oe(d){O.set(d.clientX,d.clientY),_.subVectors(O,m),_.y>0?Q(H()):_.y<0&&F(H()),m.copy(O),e.update()}function q(d){b.set(d.clientX,d.clientY),x.subVectors(b,T).multiplyScalar(e.panSpeed),$(x.x,x.y),T.copy(b),e.update()}function V(d){d.deltaY<0?F(H()):d.deltaY>0&&Q(H()),e.update()}function te(d){var B=!1;switch(d.keyCode){case e.keys.UP:$(0,e.keyPanSpeed),B=!0;break;case e.keys.BOTTOM:$(0,-e.keyPanSpeed),B=!0;break;case e.keys.LEFT:$(e.keyPanSpeed,0),B=!0;break;case e.keys.RIGHT:$(-e.keyPanSpeed,0),B=!0;break}B&&(d.preventDefault(),e.update())}function G(d){if(d.touches.length==1)A.set(d.touches[0].pageX,d.touches[0].pageY);else{var B=.5*(d.touches[0].pageX+d.touches[1].pageX),Z=.5*(d.touches[0].pageY+d.touches[1].pageY);A.set(B,Z)}}function j(d){if(d.touches.length==1)T.set(d.touches[0].pageX,d.touches[0].pageY);else{var B=.5*(d.touches[0].pageX+d.touches[1].pageX),Z=.5*(d.touches[0].pageY+d.touches[1].pageY);T.set(B,Z)}}function D(d){var B=d.touches[0].pageX-d.touches[1].pageX,Z=d.touches[0].pageY-d.touches[1].pageY,ne=Math.sqrt(B*B+Z*Z);m.set(0,ne)}function ae(d){e.enableZoom&&D(d),e.enablePan&&j(d)}function X(d){e.enableZoom&&D(d),e.enableRotate&&G(d)}function K(d){if(d.touches.length==1)S.set(d.touches[0].pageX,d.touches[0].pageY);else{var B=.5*(d.touches[0].pageX+d.touches[1].pageX),Z=.5*(d.touches[0].pageY+d.touches[1].pageY);S.set(B,Z)}C.subVectors(S,A).multiplyScalar(e.rotateSpeed);var ne=e.domElement;R(2*Math.PI*C.x/ne.clientHeight),J(2*Math.PI*C.y/ne.clientHeight),A.copy(S)}function Se(d){if(d.touches.length==1)b.set(d.touches[0].pageX,d.touches[0].pageY);else{var B=.5*(d.touches[0].pageX+d.touches[1].pageX),Z=.5*(d.touches[0].pageY+d.touches[1].pageY);b.set(B,Z)}x.subVectors(b,T).multiplyScalar(e.panSpeed),$(x.x,x.y),T.copy(b)}function Pe(d){var B=d.touches[0].pageX-d.touches[1].pageX,Z=d.touches[0].pageY-d.touches[1].pageY,ne=Math.sqrt(B*B+Z*Z);O.set(0,ne),_.set(0,Math.pow(O.y/m.y,e.zoomSpeed)),Q(_.y),m.copy(O)}function Me(d){e.enableZoom&&Pe(d),e.enablePan&&Se(d)}function _e(d){e.enableZoom&&Pe(d),e.enableRotate&&K(d)}function xe(d){if(e.enabled!==!1){d.preventDefault(),e.domElement.focus?e.domElement.focus():window.focus();var B;switch(d.button){case 0:B=e.mouseButtons.LEFT;break;case 1:B=e.mouseButtons.MIDDLE;break;case 2:B=e.mouseButtons.RIGHT;break;default:B=-1}switch(B){case I.MOUSE.DOLLY:if(e.enableZoom===!1)return;k(d),l=s.DOLLY;break;case I.MOUSE.ROTATE:if(d.ctrlKey||d.metaKey||d.shiftKey){if(e.enablePan===!1)return;U(d),l=s.PAN}else{if(e.enableRotate===!1)return;N(d),l=s.ROTATE}break;case I.MOUSE.PAN:if(d.ctrlKey||d.metaKey||d.shiftKey){if(e.enableRotate===!1)return;N(d),l=s.ROTATE}else{if(e.enablePan===!1)return;U(d),l=s.PAN}break;default:l=s.NONE}l!==s.NONE&&(document.addEventListener("mousemove",ce,!1),document.addEventListener("mouseup",pe,!1),e.dispatchEvent(t))}}function ce(d){if(e.enabled!==!1)switch(d.preventDefault(),l){case s.ROTATE:if(e.enableRotate===!1)return;Y(d);break;case s.DOLLY:if(e.enableZoom===!1)return;oe(d);break;case s.PAN:if(e.enablePan===!1)return;q(d);break}}function pe(d){e.enabled!==!1&&(document.removeEventListener("mousemove",ce,!1),document.removeEventListener("mouseup",pe,!1),e.dispatchEvent(o),l=s.NONE)}function Be(d){e.enabled===!1||e.enableZoom===!1||l!==s.NONE&&l!==s.ROTATE||(d.preventDefault(),d.stopPropagation(),e.dispatchEvent(t),V(d),e.dispatchEvent(o))}function Ue(d){e.enabled===!1||e.enableKeys===!1||e.enablePan===!1||te(d)}function Oe(d){if(e.enabled!==!1){switch(d.preventDefault(),d.touches.length){case 1:switch(e.touches.ONE){case I.TOUCH.ROTATE:if(e.enableRotate===!1)return;G(d),l=s.TOUCH_ROTATE;break;case I.TOUCH.PAN:if(e.enablePan===!1)return;j(d),l=s.TOUCH_PAN;break;default:l=s.NONE}break;case 2:switch(e.touches.TWO){case I.TOUCH.DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;ae(d),l=s.TOUCH_DOLLY_PAN;break;case I.TOUCH.DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;X(d),l=s.TOUCH_DOLLY_ROTATE;break;default:l=s.NONE}break;default:l=s.NONE}l!==s.NONE&&e.dispatchEvent(t)}}function le(d){if(e.enabled!==!1)switch(d.preventDefault(),d.stopPropagation(),l){case s.TOUCH_ROTATE:if(e.enableRotate===!1)return;K(d),e.update();break;case s.TOUCH_PAN:if(e.enablePan===!1)return;Se(d),e.update();break;case s.TOUCH_DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;Me(d),e.update();break;case s.TOUCH_DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;_e(d),e.update();break;default:l=s.NONE}}function We(d){e.enabled!==!1&&(e.dispatchEvent(o),l=s.NONE)}function Xe(d){e.enabled!==!1&&d.preventDefault()}e.domElement.addEventListener("contextmenu",Xe,!1),e.domElement.addEventListener("mousedown",xe,!1),e.domElement.addEventListener("wheel",Be,!1),e.domElement.addEventListener("touchstart",Oe,!1),e.domElement.addEventListener("touchend",We,!1),e.domElement.addEventListener("touchmove",le,!1),e.domElement.addEventListener("keydown",Ue,!1),e.domElement.tabIndex===-1&&(e.domElement.tabIndex=0),this.update()};Fe.prototype=Object.create(I.EventDispatcher.prototype);Fe.prototype.constructor=Fe;var xt=function(c,a){Fe.call(this,c,a),this.mouseButtons.LEFT=I.MOUSE.PAN,this.mouseButtons.RIGHT=I.MOUSE.ROTATE,this.touches.ONE=I.TOUCH.PAN,this.touches.TWO=I.TOUCH.DOLLY_ROTATE};xt.prototype=Object.create(I.EventDispatcher.prototype);xt.prototype.constructor=xt;var Te=function(c){I.Object3D.call(this),this.element=c,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.addEventListener("removed",function(){this.traverse(function(a){a.element instanceof Element&&a.element.parentNode!==null&&a.element.parentNode.removeChild(a.element)})})};Te.prototype=Object.create(I.Object3D.prototype);Te.prototype.constructor=Te;var ot=function(c){Te.call(this,c)};ot.prototype=Object.create(Te.prototype);ot.prototype.constructor=ot;var Wt=function(){var c=this,a,e,n,t,o=new I.Matrix4,s={camera:{fov:0,style:""},objects:new WeakMap},l=document.createElement("div");l.style.overflow="hidden",this.domElement=l;var h=document.createElement("div");h.style.WebkitTransformStyle="preserve-3d",h.style.transformStyle="preserve-3d",h.style.pointerEvents="none",l.appendChild(h);var f=/Trident/i.test(navigator.userAgent);this.getSize=function(){return{width:a,height:e}},this.setSize=function(T,b){a=T,e=b,n=a/2,t=e/2,l.style.width=T+"px",l.style.height=b+"px",h.style.width=T+"px",h.style.height=b+"px"};function g(T){return Math.abs(T)<1e-10?0:T}function y(T){var b=T.elements;return"matrix3d("+g(b[0])+","+g(-b[1])+","+g(b[2])+","+g(b[3])+","+g(b[4])+","+g(-b[5])+","+g(b[6])+","+g(b[7])+","+g(b[8])+","+g(-b[9])+","+g(b[10])+","+g(b[11])+","+g(b[12])+","+g(-b[13])+","+g(b[14])+","+g(b[15])+")"}function w(T,b){var x=T.elements,m="matrix3d("+g(x[0])+","+g(x[1])+","+g(x[2])+","+g(x[3])+","+g(-x[4])+","+g(-x[5])+","+g(-x[6])+","+g(-x[7])+","+g(x[8])+","+g(x[9])+","+g(x[10])+","+g(x[11])+","+g(x[12])+","+g(x[13])+","+g(x[14])+","+g(x[15])+")";return f?"translate(-50%,-50%)translate("+n+"px,"+t+"px)"+b+m:"translate(-50%,-50%)"+m}function P(T,b,x,m){if(T instanceof Te){T.onBeforeRender(c,b,x);var O;T instanceof ot?(o.copy(x.matrixWorldInverse),o.transpose(),o.copyPosition(T.matrixWorld),o.scale(T.scale),o.elements[3]=0,o.elements[7]=0,o.elements[11]=0,o.elements[15]=1,O=w(o,m)):O=w(T.matrixWorld,m);var _=T.element,W=s.objects.get(T);if(W===void 0||W.style!==O){_.style.WebkitTransform=O,_.style.transform=O;var H={style:O};f&&(H.distanceToCameraSquared=A(x,T)),s.objects.set(T,H)}_.style.display=T.visible?"":"none",_.parentNode!==h&&h.appendChild(_),T.onAfterRender(c,b,x)}for(var R=0,J=T.children.length;R<J;R++)P(T.children[R],b,x,m)}var A=(function(){var T=new I.Vector3,b=new I.Vector3;return function(x,m){return T.setFromMatrixPosition(x.matrixWorld),b.setFromMatrixPosition(m.matrixWorld),T.distanceToSquared(b)}})();function S(T){var b=[];return T.traverse(function(x){x instanceof Te&&b.push(x)}),b}function C(T){for(var b=S(T).sort(function(_,W){var H=s.objects.get(_).distanceToCameraSquared,R=s.objects.get(W).distanceToCameraSquared;return H-R}),x=b.length,m=0,O=b.length;m<O;m++)b[m].element.style.zIndex=x-m}this.render=function(T,b){var x=b.projectionMatrix.elements[5]*t;if(s.camera.fov!==x&&(b.isPerspectiveCamera?(l.style.WebkitPerspective=x+"px",l.style.perspective=x+"px"):(l.style.WebkitPerspective="",l.style.perspective=""),s.camera.fov=x),T.autoUpdate===!0&&T.updateMatrixWorld(),b.parent===null&&b.updateMatrixWorld(),b.isOrthographicCamera)var m=-(b.right+b.left)/2,O=(b.top+b.bottom)/2;var _=b.isOrthographicCamera?"scale("+x+")translate("+g(m)+"px,"+g(O)+"px)"+y(b.matrixWorldInverse):"translateZ("+x+"px)"+y(b.matrixWorldInverse),W=_+"translate("+n+"px,"+t+"px)";s.camera.style!==W&&!f&&(h.style.WebkitTransform=W,h.style.transform=W,s.camera.style=W),P(T,T,b,_),f&&C(T)}};function Ht(c,a,e){var n=a.getBoundingClientRect(),t=n.top,o=n.left,s=n.width,l=n.height;return new v.Vector2((c.x-o)/s*2-1,-(c.y-t)/l*2+1)}var Xt=(function(c){de(a,c);function a(e,n,t,o,s){var l=c.call(this)||this;l.type="RoundedBoxGeometry",s=isNaN(s)?1:Math.max(1,Math.floor(s)),e=isNaN(e)?1:e,n=isNaN(n)?1:n,t=isNaN(t)?1:t,o=isNaN(o)?.15:o,o=Math.min(o,Math.min(e,Math.min(n,Math.min(t)))/2);var h=e/2-o,f=n/2-o,g=t/2-o;l.parameters={width:e,height:n,depth:t,radius:o,radiusSegments:s};var y=s+1,w=y*s+1<<3,P=new v.BufferAttribute(new Float32Array(w*3),3),A=new v.BufferAttribute(new Float32Array(w*3),3),S=[],C=[];new v.Vector3;var T=new v.Vector3,b=[],x=[],m=[],O=y*s,_=y*s+1;W(),R(),H(),J(),ue(),se();function W(){for(var F=[new v.Vector3(1,1,1),new v.Vector3(1,1,-1),new v.Vector3(-1,1,-1),new v.Vector3(-1,1,1),new v.Vector3(1,-1,1),new v.Vector3(1,-1,-1),new v.Vector3(-1,-1,-1),new v.Vector3(-1,-1,1)],N=0;N<8;N++)S.push([]),C.push([]);for(var k=Math.PI/2,U=new v.Vector3(h,f,g),Y=0;Y<=s;Y++){var oe=Y/s,q=oe*k,V=Math.cos(q),te=Math.sin(q);if(Y==s){T.set(0,1,0);var G=T.clone().multiplyScalar(o).add(U);S[0].push(G),b.push(G);var j=T.clone();C[0].push(j),x.push(j);continue}for(var D=0;D<=s;D++){var ae=D/s,X=ae*k;T.x=V*Math.cos(X),T.y=te,T.z=V*Math.sin(X);var G=T.clone().multiplyScalar(o).add(U);S[0].push(G),b.push(G);var j=T.clone().normalize();C[0].push(j),x.push(j)}}for(var K=1;K<8;K++)for(var N=0;N<S[0].length;N++){var G=S[0][N].clone().multiply(F[K]);S[K].push(G),b.push(G);var j=C[0][N].clone().multiply(F[K]);C[K].push(j),x.push(j)}}function H(){for(var F=[!0,!1,!0,!1,!1,!0,!1,!0],N=y*(s-1),k=0;k<8;k++){for(var U=_*k,Y=0;Y<s-1;Y++)for(var oe=Y*y,q=(Y+1)*y,V=0;V<s;V++){var te=V+1,G=U+oe+V,j=U+oe+te,D=U+q+V,ae=U+q+te;F[k]?(m.push(G),m.push(D),m.push(j),m.push(j),m.push(D),m.push(ae)):(m.push(G),m.push(j),m.push(D),m.push(j),m.push(ae),m.push(D))}for(var V=0;V<s;V++){var G=U+N+V,j=U+N+V+1,D=U+O;F[k]?(m.push(G),m.push(D),m.push(j)):(m.push(G),m.push(j),m.push(D))}}}function R(){var F=O,N=O+_,k=O+_*2,U=O+_*3;m.push(F),m.push(N),m.push(k),m.push(F),m.push(k),m.push(U),F=O+_*4,N=O+_*5,k=O+_*6,U=O+_*7,m.push(F),m.push(k),m.push(N),m.push(F),m.push(U),m.push(k),F=0,N=_,k=_*4,U=_*5,m.push(F),m.push(k),m.push(N),m.push(N),m.push(k),m.push(U),F=_*2,N=_*3,k=_*6,U=_*7,m.push(F),m.push(k),m.push(N),m.push(N),m.push(k),m.push(U),F=s,N=s+_*3,k=s+_*4,U=s+_*7,m.push(F),m.push(N),m.push(k),m.push(N),m.push(U),m.push(k),F=s+_,N=s+_*2,k=s+_*5,U=s+_*6,m.push(F),m.push(k),m.push(N),m.push(N),m.push(k),m.push(U)}function J(){for(var F=0;F<4;F++)for(var N=F*_,k=4*_+N,U=(F&1)===1,Y=0;Y<s;Y++){var oe=Y+1,q=N+Y,V=N+oe,te=k+Y,G=k+oe;U?(m.push(q),m.push(te),m.push(V),m.push(V),m.push(te),m.push(G)):(m.push(q),m.push(V),m.push(te),m.push(V),m.push(G),m.push(te))}}function se(){for(var F=[0,2,4,6],N=[1,3,5,7],k=0;k<4;k++)for(var U=_*F[k],Y=_*N[k],oe=1>=k,q=0;q<s;q++){var V=q*y,te=(q+1)*y,G=U+V,j=U+te,D=Y+V,ae=Y+te;oe?(m.push(G),m.push(D),m.push(j),m.push(j),m.push(D),m.push(ae)):(m.push(G),m.push(j),m.push(D),m.push(j),m.push(ae),m.push(D))}}function ue(){for(var F=s-1,N=[0,1,4,5],k=[3,2,7,6],U=[0,1,1,0],Y=0;Y<4;Y++)for(var oe=N[Y]*_,q=k[Y]*_,V=0;V<=F;V++){var te=oe+s+V*y,G=oe+(V!=F?s+(V+1)*y:_-1),j=q+s+V*y,D=q+(V!=F?s+(V+1)*y:_-1);U[Y]?(m.push(te),m.push(j),m.push(G),m.push(G),m.push(j),m.push(D)):(m.push(te),m.push(G),m.push(j),m.push(G),m.push(D),m.push(j))}}for(var $=0,Q=0;Q<b.length;Q++)P.setXYZ($,b[Q].x,b[Q].y,b[Q].z),A.setXYZ($,x[Q].x,x[Q].y,x[Q].z),$++;return l.setIndex(new v.BufferAttribute(new Uint16Array(m),1)),l.setAttribute("position",P),l.setAttribute("normal",A),l}return a})(v.BufferGeometry);function Ge(c,a){return typeof c!="number"||typeof a!="number"?!1:Math.abs(c-a)<.001}function He(c,a,e,n){n===void 0&&(n=function(o){return o});var t=n(e);return c*(1-t)+a*t}var ie=Number((Math.PI/2).toFixed(5));function kn(c,a,e){var n=new v.Shape;return n.moveTo(e,0),n.lineTo(c-e,0),n.absarc(c-e,e,e,-ie,0,!1),n.lineTo(c,a-e),n.absarc(c-e,a-e,e,0,ie,!1),n.lineTo(e,a),n.absarc(e,a-e,e,ie,Math.PI,!1),n.lineTo(0,e),n.absarc(e,e,e,Math.PI,Math.PI*1.5,!1),n}var Ye=function(c){var a=document.createElement("div");a.innerText=c;var e=new Te(a);return e.name=c,e.scale.set(.3,.3,.3),a.style.pointerEvents="none",a.style.backfaceVisibility="hidden",e},nt=function(c){var a=new v.PlaneGeometry(5,5),e=new v.MeshBasicMaterial({transparent:!0,opacity:0}),n=new v.Mesh(a,e),t=document.createElement("div");t.innerText=c;var o=new Te(t);return o.name=c,o.scale.set(.3,.3,.3),t.style.color="#ffffff",t.style.opacity="0.5",t.style.pointerEvents="none",t.style.backfaceVisibility="hidden",n.rotateX(-ie),n.add(o),n},Ln=(function(c){de(a,c);function a(e,n){var t=c.call(this,e)||this;t.camera=new Ie.Camera(90),t.scene=new v.Scene,t.renderer=new v.WebGLRenderer({antialias:!0,alpha:!0}),t.css3drenderer=new Wt,t.ambientLight=new v.AmbientLight(16777215,.7),t.wrapper=document.createElement("div"),t.arrows=document.createElement("div"),t.arrowLeft=document.createElement("div"),t.arrowRight=document.createElement("div"),t.arrowFront=document.createElement("div"),t.arrowBack=document.createElement("div"),t.arrowTop=document.createElement("div"),t.arrowBottom=document.createElement("div"),t.spherical=null,t.dragging=!1,t.style=document.createElement("style"),t.directionalLight=new v.DirectionalLight(16777215,.2),t.box=new v.Mesh(new Xt(8,8,8,.5,20),new v.MeshPhongMaterial({color:16777215})),t.faces=new v.Group,t.orient=function(l){var h=l.longitude,f=l.latitude;t.dragging=!1,t.spherical=null,t.controls.enableDamping=!1,t.five.setState(Object.assign({latitude:f},h!==void 0?{longitude:h+t.config.fixedLongitude}:{})),t.five.ready().then(function(){t.controls.enableDamping=!0,t.setState({arrowsVisible:!0})})},t.onRenderFrame=function(){var l,h,f,g,y;if(t.renderer.render(t.scene,t.camera),t.css3drenderer.render(t.scene,t.camera),t.directionalLight.position.copy(t.camera.position),(l=t.controls)===null||l===void 0||l.update(),t.dragging){t.camera.computePose(),t.updateByCamera();var w=t.camera.pose,P=w.longitude,A=w.latitude;t.five.setState({longitude:P,latitude:A},!0),t.updateArrows({longitude:P,latitude:A})}else if(t.spherical&&(!Ge(t.spherical.pi,(h=t.controls)===null||h===void 0?void 0:h.getPolarAngle())||!Ge(t.spherical.theta,(f=t.controls)===null||f===void 0?void 0:f.getAzimuthalAngle()))){t.spherical={pi:(g=t.controls)===null||g===void 0?void 0:g.getPolarAngle(),theta:(y=t.controls)===null||y===void 0?void 0:y.getAzimuthalAngle()},t.camera.computePose(),t.updateByCamera();var S=t.camera.pose,P=S.longitude,A=S.latitude;t.five.setState({longitude:P,latitude:A},!0),t.updateArrows({longitude:P,latitude:A})}else t.spherical=null},t.onTapGesture=function(l){var h=l.pointers[0].clientX,f=l.pointers[0].clientY,g=Ht({x:h,y:f},t.wrapper),y=new v.Raycaster;y.setFromCamera(g,t.camera);var w=y.intersectObjects(t.faces.children,!1)[0];if(w){var P=w.object.userData,A=P.longitude,S=P.latitude;t.orient({longitude:A,latitude:S})}},t.onFiveWantsGesture=function(){if(t.spherical)return!1},t.onFiveModeChange=function(l){t.controls&&(t.controls.maxPolarAngle=l==="Topview"?0:ie)},t.onCameraUpdate=function(l){var h=l.state;if(!t.dragging&&!t.spherical){var f=h.longitude,g=h.latitude;t.camera.pose.longitude===f&&t.camera.pose.latitude===g||(t.camera.setFromPose({longitude:f,latitude:g,distance:20,offset:new v.Vector3(0,0,0)}),t.updateByCamera(),t.updateArrows({longitude:f,latitude:g}))}},t.onPanStart=function(l){t.dragging=!0,t.spherical={}},t.onMouseMove=function(l){if(!t.dragging){var h=Ht({x:l.clientX,y:l.clientY},t.wrapper),f=new v.Raycaster;f.setFromCamera(h,t.camera);var g=f.intersectObjects(t.faces.children,!1)[0];t.faces.children.forEach(function(y){y.material.opacity=0,y.children[0].element.style.color=""}),g&&(g.object.material.opacity=.3,g.object.children[0].element.style.color="#336dff")}},t.onPanEnd=function(l){t.dragging=!1,t.spherical={pi:t.controls.getPolarAngle(),theta:t.controls.getAzimuthalAngle()}},t.dispose=function(){t.disable()},t.five=e;var o={enabled:!1,visible:!0,arrowsVisible:!1};t.state=Object.assign(o,n==null?void 0:n.initialState);var s=z({fixedLongitude:0,orthoView:!0},n==null?void 0:n.config);return t._config=s,t.state.enabled&&t._enable({userAction:!1}),t.mc=new yt.Manager(t.wrapper),t.mc.add(new yt.Tap({interval:410})),t.mc.add(new yt.Pan({threshold:10,pointers:0})),t.camera.setFromPose({distance:20,offset:new v.Vector3(0,0,0),longitude:e.camera.pose.latitude,latitude:e.camera.pose.latitude}),t.cylinder=new v.Mesh(new v.CylinderGeometry(13.2,14,.01,50,1,!0),new v.ShaderMaterial({uniforms:{radiusTop:{value:13.2},radiusBottom:{value:14},opacity:{value:1}},vertexShader:`
357
357
  varying vec3 pos;
358
358
  varying mat4 vViewMatrix;
359
359
  void main() {
@@ -383,7 +383,7 @@ void main() {
383
383
  vec4 color = mix(color1, color2, z);
384
384
  gl_FragColor = color;
385
385
  }
386
- `,transparent:!0})),t.init(),t}return Object.defineProperty(o.prototype,"config",{get:function(){return j({},this._config)},enumerable:!1,configurable:!0}),o.prototype.updateState=function(e,a){var t=this.state;this.state=j(j({},this.state),e),typeof e.arrowsVisible=="boolean"&&this.handleArrowsVisible(e.arrowsVisible),this.hooks.emit("stateChange",{state:this.state,prevState:t,userAction:a})},o.prototype.appendTo=function(e){if(e){e.appendChild(this.wrapper);var a=this.wrapper.getBoundingClientRect(),t=a.width,s=a.height;this.renderer.setSize(t,s),this.css3drenderer.setSize(t,s)}},o.prototype.init=function(){this.renderer.setClearAlpha(0),this.renderer.domElement.style.outline="none",this.initDom(),this.initFaces(),this.initControls(),this.initLights();var e=this.cylinder;e.position.y=-3;var a=nt("西");a.position.set(-19,0,0),e.add(a);var t=nt("东");t.position.set(19,0,0),e.add(t);var s=nt("北");s.position.set(0,0,-19),e.add(s);var c=nt("南");c.position.set(0,0,19),e.add(c),this.updateByCamera(),this.scene.add(e,this.box,this.faces),this.scene.rotation.y=this.config.fixedLongitude},o.prototype.initDom=function(){this.style.innerHTML=`
386
+ `,transparent:!0})),t.init(),t}return Object.defineProperty(a.prototype,"config",{get:function(){return z({},this._config)},enumerable:!1,configurable:!0}),a.prototype.updateState=function(e,n){var t=this.state;this.state=z(z({},this.state),e),typeof e.arrowsVisible=="boolean"&&this.handleArrowsVisible(e.arrowsVisible),this.hooks.emit("stateChange",{state:this.state,prevState:t,userAction:n})},a.prototype.appendTo=function(e){if(e){e.appendChild(this.wrapper);var n=this.wrapper.getBoundingClientRect(),t=n.width,o=n.height;this.renderer.setSize(t,o),this.css3drenderer.setSize(t,o)}},a.prototype.init=function(){this.renderer.setClearAlpha(0),this.renderer.domElement.style.outline="none",this.initDom(),this.initFaces(),this.initControls(),this.initLights();var e=this.cylinder;e.position.y=-3;var n=nt("西");n.position.set(-19,0,0),e.add(n);var t=nt("东");t.position.set(19,0,0),e.add(t);var o=nt("北");o.position.set(0,0,-19),e.add(o);var s=nt("南");s.position.set(0,0,19),e.add(s),this.updateByCamera(),this.scene.add(e,this.box,this.faces),this.scene.rotation.y=this.config.fixedLongitude},a.prototype.initDom=function(){this.style.innerHTML=`
387
387
  .OrientationPlugin .OrientationArrows {
388
388
  position: absolute;
389
389
  top: 0;
@@ -483,7 +483,7 @@ void main() {
483
483
  border-color: transparent transparent var(--color) transparent;
484
484
  transform: translate(0, -15px);
485
485
  }
486
- `,this.wrapper.className="OrientationPlugin",this.arrows.className="OrientationArrows",this.wrapper.style.cssText="position: relative; width: 100%; height: 100%",this.wrapper.appendChild(this.arrows),this.arrowLeft.className=this.arrowRight.className=this.arrowTop.className=this.arrowBack.className=this.arrowFront.className="OrientationArrow",this.arrowBottom.className="OrientationArrow disabled",this.arrowBack.innerText="后",this.arrowFront.innerText="前",this.arrowLeft.innerText="左",this.arrowRight.innerText="右",this.arrowTop.innerText="上",this.arrowBottom.innerText="下",this.css3drenderer.domElement.style.cssText="position: absolute; top: 0; right: 0; bottom: 0; left: 0; pointer-events: none; color: #00000090;"},o.prototype.bindEvents=function(){var e=this;this.five.on("renderFrame",this.onRenderFrame),this.five.on("camera.update",this.onCameraUpdate),this.five.on("wantsGesture",this.onFiveWantsGesture),this.five.on("modeChange",this.onFiveModeChange),this.mc.on("tap",this.onTapGesture),this.mc.on("panstart",this.onPanStart),this.mc.on("panend",this.onPanEnd),this.wrapper.addEventListener("mousemove",this.onMouseMove),this.arrowTop.onclick=function(){return e.orient({longitude:0,latitude:$})},this.arrowLeft.onclick=function(){return e.orient({longitude:-$,latitude:0})},this.arrowRight.onclick=function(){return e.orient({longitude:$,latitude:0})},this.arrowFront.onclick=function(){return e.orient({longitude:0,latitude:0})},this.arrowBack.onclick=function(){return e.orient({longitude:Math.PI,latitude:0})}},o.prototype.unbindEvents=function(){this.five.off("renderFrame",this.onRenderFrame),this.five.off("camera.update",this.onCameraUpdate),this.five.off("wantsGesture",this.onFiveWantsGesture),this.five.off("modeChange",this.onFiveModeChange),this.mc.off("tap",this.onTapGesture),this.mc.off("panstart",this.onPanStart),this.mc.off("panend",this.onPanEnd),this.wrapper.removeEventListener("mousemove",this.onMouseMove),this.arrowTop.onclick=null,this.arrowLeft.onclick=null,this.arrowRight.onclick=null,this.arrowFront.onclick=null,this.arrowBack.onclick=null},o.prototype.updateByCamera=function(){var e=ze(.2,1,this.camera.pose.latitude/Math.PI*2,function(l){return l*l}),a=ze(11,13,this.camera.pose.latitude/Math.PI*2,function(l){return l*l}),t=ze(12,15,this.camera.pose.latitude/Math.PI*2,function(l){return l*l}),s=ze(13,19,this.camera.pose.latitude/Math.PI*2,function(l){return l*l}),c=ze(-.2,.5,this.camera.pose.latitude/Math.PI*2,function(l){return l*l});this.cylinder.geometry=new w.CylinderGeometry(a,t,.01,50,1,!0),this.cylinder.material.uniforms.radiusTop.value=a,this.cylinder.material.uniforms.radiusBottom.value=t,this.cylinder.material.needsUpdate=!0,this.cylinder.children.forEach(function(l){l.position.normalize().multiplyScalar(s),l.scale.set(e,e,e);var g=l.children[0];g&&(g.element.style.opacity=c.toString())})},o.prototype.updateArrows=function(e){e.longitude;var a=e.latitude,t=$-a<.02;this.setState({arrowsVisible:t})},o.prototype.handleArrowsVisible=function(e){var a=this;if(this.state.enabled)if(this.cylinder.material.uniforms.opacity.value=e?.4:1,this.cylinder.material.needsUpdate=!0,e){var t=this.five.getCurrentState(),s=t.longitude,c=t.latitude;if($-c<.03)this.five.state.mode==="Topview"||this.five.state.mode==="Mapview"?(this.faces.getObjectByName("上").element.className="active",this.arrows.innerHTML="",this.arrows.appendChild(this.arrowBack),this.arrows.appendChild(this.arrowLeft),this.arrows.appendChild(this.arrowRight),this.arrows.appendChild(this.arrowFront),this.arrows.style.transform="rotate(".concat((s-this.config.fixedLongitude)/Math.PI*180,"deg)")):(this.arrows.innerHTML="",this.faces.getObjectByName("上").element.className="");else{switch(this.arrows.innerHTML="",this.arrows.appendChild(this.arrowTop),this.config.orthoView&&this.five.ready().then(function(){a.five.controller.cameraType="orthographic",a.five.ready().then(function(){return a.five.controller.cameraMotion.ended=!1})}),!0){case je(0,s-this.config.fixedLongitude):this.arrows.appendChild(this.arrowLeft),this.arrows.appendChild(this.arrowRight),this.arrows.appendChild(this.arrowBottom),this.faces.getObjectByName("前").element.className="active";break;case je($,s-this.config.fixedLongitude):this.arrows.appendChild(this.arrowFront),this.arrows.appendChild(this.arrowBack),this.arrows.appendChild(this.arrowBottom),this.faces.getObjectByName("右").element.className="active";break;case je(Math.PI,s-this.config.fixedLongitude):this.arrows.appendChild(this.arrowRight),this.arrows.appendChild(this.arrowLeft),this.arrows.appendChild(this.arrowBottom),this.faces.getObjectByName("后").element.className="active";break;default:this.arrows.appendChild(this.arrowBack),this.arrows.appendChild(this.arrowFront),this.arrows.appendChild(this.arrowBottom),this.faces.getObjectByName("左").element.className="active";break}this.arrows.style.transform=""}this.arrows.style.display="block"}else this.config.orthoView&&(this.five.controller.cameraType="auto",this.five.ready().then(function(){return a.five.controller.cameraMotion.ended=!1})),this.arrows.style.display="none",this.faces.children.forEach(function(l){l.children[0].element.className=""})},o.prototype.setState=function(e,a){a===void 0&&(a={});var t=this.state,s=a.userAction!==void 0?a.userAction:!0;if(this.updateState(e,s),e.enabled!==void 0&&t.enabled!==e.enabled){var c={userAction:s};e.enabled?this._enable(c):this._disable(c)}},o.prototype.initLights=function(){this.directionalLight.target=this.box,this.scene.add(this.ambientLight,this.directionalLight)},o.prototype.initFaces=function(){var e=Cn(7,7,.5),a=new w.ShapeGeometry(e);a.translate(-3.5,-3.5,0);var t=new w.Mesh(a,new w.MeshBasicMaterial({transparent:!0,color:3370495,opacity:0}));t.userData={longitude:0,latitude:0},t.position.z=4.1,t.add(Ge("前"));var s=new w.Mesh(a,new w.MeshBasicMaterial({transparent:!0,color:3370495,opacity:0}));s.rotateY(Math.PI),s.position.z=-4.1,s.add(Ge("后")),s.userData={longitude:Math.PI,latitude:0};var c=new w.Mesh(a,new w.MeshBasicMaterial({transparent:!0,color:3370495,opacity:0}));c.rotateY($),c.position.x=4.1,c.add(Ge("右")),c.userData={longitude:$,latitude:0};var l=new w.Mesh(a,new w.MeshBasicMaterial({transparent:!0,color:3370495,opacity:0}));l.rotateY(-$),l.position.x=-4.1,l.add(Ge("左")),l.userData={longitude:-$,latitude:0};var g=new w.Mesh(a,new w.MeshBasicMaterial({transparent:!0,color:3370495,opacity:0}));g.rotateX(-$),g.position.y=4.1,g.add(Ge("上")),g.userData={longitude:0,latitude:$},this.faces.add(t,s,l,c,g)},o.prototype.initControls=function(){var e=this.controls=new De(this.camera,this.renderer.domElement);e.enableZoom=!1,e.enableDamping=!0,e.enablePan=!1,e.maxPolarAngle=$,e.dampingFactor=.15,e.rotateSpeed=.25},o.prototype.load=function(e){return ke(this,void 0,void 0,function(){return Le(this,function(a){return[2]})})},o.prototype._enable=function(e){var a=this.five.getCurrentState(),t=a.longitude,s=a.latitude;this.camera.setFromPose({longitude:t,latitude:s,distance:20,offset:new w.Vector3(0,0,0)}),this.updateByCamera(),this.wrapper.appendChild(this.renderer.domElement),this.wrapper.appendChild(this.css3drenderer.domElement),this.bindEvents()},o.prototype._disable=function(e){this.wrapper.removeChild(this.renderer.domElement),this.wrapper.removeChild(this.css3drenderer.domElement),this.unbindEvents()},o.prototype.enable=function(e){var a;if(!this.state.enabled){var t=(a=e==null?void 0:e.userAction)!==null&&a!==void 0?a:!0;this.updateState({enabled:!0},t),this._enable({userAction:t}),document.head.appendChild(this.style)}},o.prototype.disable=function(e){var a;if(this.state.enabled!==!1){var t=(a=e==null?void 0:e.userAction)!==null&&a!==void 0?a:!0;this.updateState({enabled:!1},t),this._disable({userAction:t}),document.head.removeChild(this.style)}},o})(exports.BasePlugin.Controller),_n=function(f,o){return new On(f,o)},Sn=(function(f){Re(o,f);function o(e,a){var t=f.call(this,e)||this;return t.data={},t.pluginName="BackgroundPlugin",t._onFiveCameraUpdate=function(s){var c=(Math.PI/2-Math.max(s.latitude,0))/(Math.PI/2),l=Math.max(.2-c,0)*10;t.gradientBg&&(t.gradientBg.style.transform="translateY(-".concat((1-c)*50,"%)")),t.groundBg&&(t.groundBg.style.backgroundImage="radial-gradient(circle, #2E303350 ".concat(l*100,"%, transparent ").concat(l*120,"%)"))},t._addEventListener=function(){t.five.on("cameraUpdate",t._onFiveCameraUpdate)},t._removeEventListener=function(){t.five.off("cameraUpdate",t._onFiveCameraUpdate)},t.load=function(){return ke(t,void 0,void 0,function(){return Le(this,function(s){return[2]})})},t.setState=function(s,c){},t.enable=function(){var s,c=(s=t.five.getElement())===null||s===void 0?void 0:s.parentNode;if(!c){t.five.ready().then(function(){return t.enable()});return}t.state.enabled||(t._onFiveCameraUpdate(t.five.getPose(),!1),t.gradientBg&&c.appendChild(t.gradientBg),t.groundBg&&c.appendChild(t.groundBg),t.style&&document.head.appendChild(t.style),t._addEventListener(),t.hooks.emit("enable",{userAction:!0}),t.state.enabled=!0)},t.disable=function(s){var c,l,g,d;t.state.enabled&&((l=(c=t.gradientBg)===null||c===void 0?void 0:c.parentNode)===null||l===void 0||l.removeChild(t.gradientBg),(d=(g=t.groundBg)===null||g===void 0?void 0:g.parentNode)===null||d===void 0||d.removeChild(t.groundBg),t.style&&document.head.removeChild(t.style),t._removeEventListener(),t.hooks.emit("disable",{userAction:!0}),t.state.enabled=!1)},t.dispose=function(){t._removeEventListener(),t.hooks.emit("disable",{userAction:!0}),t.state.enabled=!1},t.state={enabled:!1},typeof document=="undefined"||(t.gradientBg=document.createElement("div"),t.groundBg=document.createElement("div"),t.style=document.createElement("style"),t.gradientBg.className="BackgroundPluginBg",t.groundBg.className="BackgroundPluginGroundBg",t.style.innerHTML=`
486
+ `,this.wrapper.className="OrientationPlugin",this.arrows.className="OrientationArrows",this.wrapper.style.cssText="position: relative; width: 100%; height: 100%",this.wrapper.appendChild(this.arrows),this.arrowLeft.className=this.arrowRight.className=this.arrowTop.className=this.arrowBack.className=this.arrowFront.className="OrientationArrow",this.arrowBottom.className="OrientationArrow disabled",this.arrowBack.innerText="后",this.arrowFront.innerText="前",this.arrowLeft.innerText="左",this.arrowRight.innerText="右",this.arrowTop.innerText="上",this.arrowBottom.innerText="下",this.css3drenderer.domElement.style.cssText="position: absolute; top: 0; right: 0; bottom: 0; left: 0; pointer-events: none; color: #00000090;"},a.prototype.bindEvents=function(){var e=this;this.five.on("renderFrame",this.onRenderFrame),this.five.on("camera.update",this.onCameraUpdate),this.five.on("wantsGesture",this.onFiveWantsGesture),this.five.on("modeChange",this.onFiveModeChange),this.mc.on("tap",this.onTapGesture),this.mc.on("panstart",this.onPanStart),this.mc.on("panend",this.onPanEnd),this.wrapper.addEventListener("mousemove",this.onMouseMove),this.arrowTop.onclick=function(){return e.orient({longitude:0,latitude:ie})},this.arrowLeft.onclick=function(){return e.orient({longitude:-ie,latitude:0})},this.arrowRight.onclick=function(){return e.orient({longitude:ie,latitude:0})},this.arrowFront.onclick=function(){return e.orient({longitude:0,latitude:0})},this.arrowBack.onclick=function(){return e.orient({longitude:Math.PI,latitude:0})}},a.prototype.unbindEvents=function(){this.five.off("renderFrame",this.onRenderFrame),this.five.off("camera.update",this.onCameraUpdate),this.five.off("wantsGesture",this.onFiveWantsGesture),this.five.off("modeChange",this.onFiveModeChange),this.mc.off("tap",this.onTapGesture),this.mc.off("panstart",this.onPanStart),this.mc.off("panend",this.onPanEnd),this.wrapper.removeEventListener("mousemove",this.onMouseMove),this.arrowTop.onclick=null,this.arrowLeft.onclick=null,this.arrowRight.onclick=null,this.arrowFront.onclick=null,this.arrowBack.onclick=null},a.prototype.updateByCamera=function(){var e=He(.2,1,this.camera.pose.latitude/Math.PI*2,function(l){return l*l}),n=He(11,13,this.camera.pose.latitude/Math.PI*2,function(l){return l*l}),t=He(12,15,this.camera.pose.latitude/Math.PI*2,function(l){return l*l}),o=He(13,19,this.camera.pose.latitude/Math.PI*2,function(l){return l*l}),s=He(-.2,.5,this.camera.pose.latitude/Math.PI*2,function(l){return l*l});this.cylinder.geometry=new v.CylinderGeometry(n,t,.01,50,1,!0),this.cylinder.material.uniforms.radiusTop.value=n,this.cylinder.material.uniforms.radiusBottom.value=t,this.cylinder.material.needsUpdate=!0,this.cylinder.children.forEach(function(l){l.position.normalize().multiplyScalar(o),l.scale.set(e,e,e);var h=l.children[0];h&&(h.element.style.opacity=s.toString())})},a.prototype.updateArrows=function(e){e.longitude;var n=e.latitude,t=ie-n<.02;this.setState({arrowsVisible:t})},a.prototype.handleArrowsVisible=function(e){var n=this;if(this.state.enabled)if(this.cylinder.material.uniforms.opacity.value=e?.4:1,this.cylinder.material.needsUpdate=!0,e){var t=this.five.getCurrentState(),o=t.longitude,s=t.latitude;if(ie-s<.03)this.five.state.mode==="Topview"||this.five.state.mode==="Mapview"?(this.faces.getObjectByName("上").element.className="active",this.arrows.innerHTML="",this.arrows.appendChild(this.arrowBack),this.arrows.appendChild(this.arrowLeft),this.arrows.appendChild(this.arrowRight),this.arrows.appendChild(this.arrowFront),this.arrows.style.transform="rotate(".concat((o-this.config.fixedLongitude)/Math.PI*180,"deg)")):(this.arrows.innerHTML="",this.faces.getObjectByName("上").element.className="");else{switch(this.arrows.innerHTML="",this.arrows.appendChild(this.arrowTop),this.config.orthoView&&this.five.ready().then(function(){n.five.controller.cameraType="orthographic",n.five.ready().then(function(){return n.five.controller.cameraMotion.ended=!1})}),!0){case Ge(0,o-this.config.fixedLongitude):this.arrows.appendChild(this.arrowLeft),this.arrows.appendChild(this.arrowRight),this.arrows.appendChild(this.arrowBottom),this.faces.getObjectByName("前").element.className="active";break;case Ge(ie,o-this.config.fixedLongitude):this.arrows.appendChild(this.arrowFront),this.arrows.appendChild(this.arrowBack),this.arrows.appendChild(this.arrowBottom),this.faces.getObjectByName("右").element.className="active";break;case Ge(Math.PI,o-this.config.fixedLongitude):this.arrows.appendChild(this.arrowRight),this.arrows.appendChild(this.arrowLeft),this.arrows.appendChild(this.arrowBottom),this.faces.getObjectByName("后").element.className="active";break;default:this.arrows.appendChild(this.arrowBack),this.arrows.appendChild(this.arrowFront),this.arrows.appendChild(this.arrowBottom),this.faces.getObjectByName("左").element.className="active";break}this.arrows.style.transform=""}this.arrows.style.display="block"}else this.config.orthoView&&(this.five.controller.cameraType="auto",this.five.ready().then(function(){return n.five.controller.cameraMotion.ended=!1})),this.arrows.style.display="none",this.faces.children.forEach(function(l){l.children[0].element.className=""})},a.prototype.setState=function(e,n){n===void 0&&(n={});var t=this.state,o=n.userAction!==void 0?n.userAction:!0;if(this.updateState(e,o),e.enabled!==void 0&&t.enabled!==e.enabled){var s={userAction:o};e.enabled?this._enable(s):this._disable(s)}},a.prototype.initLights=function(){this.directionalLight.target=this.box,this.scene.add(this.ambientLight,this.directionalLight)},a.prototype.initFaces=function(){var e=kn(7,7,.5),n=new v.ShapeGeometry(e);n.translate(-3.5,-3.5,0);var t=new v.Mesh(n,new v.MeshBasicMaterial({transparent:!0,color:3370495,opacity:0}));t.userData={longitude:0,latitude:0},t.position.z=4.1,t.add(Ye("前"));var o=new v.Mesh(n,new v.MeshBasicMaterial({transparent:!0,color:3370495,opacity:0}));o.rotateY(Math.PI),o.position.z=-4.1,o.add(Ye("后")),o.userData={longitude:Math.PI,latitude:0};var s=new v.Mesh(n,new v.MeshBasicMaterial({transparent:!0,color:3370495,opacity:0}));s.rotateY(ie),s.position.x=4.1,s.add(Ye("右")),s.userData={longitude:ie,latitude:0};var l=new v.Mesh(n,new v.MeshBasicMaterial({transparent:!0,color:3370495,opacity:0}));l.rotateY(-ie),l.position.x=-4.1,l.add(Ye("左")),l.userData={longitude:-ie,latitude:0};var h=new v.Mesh(n,new v.MeshBasicMaterial({transparent:!0,color:3370495,opacity:0}));h.rotateX(-ie),h.position.y=4.1,h.add(Ye("上")),h.userData={longitude:0,latitude:ie},this.faces.add(t,o,l,s,h)},a.prototype.initControls=function(){var e=this.controls=new Fe(this.camera,this.renderer.domElement);e.enableZoom=!1,e.enableDamping=!0,e.enablePan=!1,e.maxPolarAngle=ie,e.dampingFactor=.15,e.rotateSpeed=.25},a.prototype.load=function(e){return Ne(this,void 0,void 0,function(){return ke(this,function(n){return[2]})})},a.prototype._enable=function(e){var n=this.five.getCurrentState(),t=n.longitude,o=n.latitude;this.camera.setFromPose({longitude:t,latitude:o,distance:20,offset:new v.Vector3(0,0,0)}),this.updateByCamera(),this.wrapper.appendChild(this.renderer.domElement),this.wrapper.appendChild(this.css3drenderer.domElement),this.bindEvents()},a.prototype._disable=function(e){this.wrapper.removeChild(this.renderer.domElement),this.wrapper.removeChild(this.css3drenderer.domElement),this.unbindEvents()},a.prototype.enable=function(e){var n;if(!this.state.enabled){var t=(n=e==null?void 0:e.userAction)!==null&&n!==void 0?n:!0;this.updateState({enabled:!0},t),this._enable({userAction:t}),document.head.appendChild(this.style)}},a.prototype.disable=function(e){var n;if(this.state.enabled!==!1){var t=(n=e==null?void 0:e.userAction)!==null&&n!==void 0?n:!0;this.updateState({enabled:!1},t),this._disable({userAction:t}),document.head.removeChild(this.style)}},a})(exports.BasePlugin.Controller),Dn=function(c,a){return new Ln(c,a)},Fn=(function(c){de(a,c);function a(e,n){var t=c.call(this,e)||this;return t.data={},t.pluginName="BackgroundPlugin",t._onFiveCameraUpdate=function(o){var s=(Math.PI/2-Math.max(o.latitude,0))/(Math.PI/2),l=Math.max(.2-s,0)*10;t.gradientBg&&(t.gradientBg.style.transform="translateY(-".concat((1-s)*50,"%)")),t.groundBg&&(t.groundBg.style.backgroundImage="radial-gradient(circle, #2E303350 ".concat(l*100,"%, transparent ").concat(l*120,"%)"))},t._addEventListener=function(){t.five.on("cameraUpdate",t._onFiveCameraUpdate)},t._removeEventListener=function(){t.five.off("cameraUpdate",t._onFiveCameraUpdate)},t.load=function(){return Ne(t,void 0,void 0,function(){return ke(this,function(o){return[2]})})},t.setState=function(o,s){},t.enable=function(){var o,s=(o=t.five.getElement())===null||o===void 0?void 0:o.parentNode;if(!s){t.five.ready().then(function(){return t.enable()});return}t.state.enabled||(t._onFiveCameraUpdate(t.five.getPose(),!1),t.gradientBg&&s.appendChild(t.gradientBg),t.groundBg&&s.appendChild(t.groundBg),t.style&&document.head.appendChild(t.style),t._addEventListener(),t.hooks.emit("enable",{userAction:!0}),t.state.enabled=!0)},t.disable=function(o){var s,l,h,f;t.state.enabled&&((l=(s=t.gradientBg)===null||s===void 0?void 0:s.parentNode)===null||l===void 0||l.removeChild(t.gradientBg),(f=(h=t.groundBg)===null||h===void 0?void 0:h.parentNode)===null||f===void 0||f.removeChild(t.groundBg),t.style&&document.head.removeChild(t.style),t._removeEventListener(),t.hooks.emit("disable",{userAction:!0}),t.state.enabled=!1)},t.dispose=function(){t._removeEventListener(),t.hooks.emit("disable",{userAction:!0}),t.state.enabled=!1},t.state={enabled:!1},typeof document=="undefined"||(t.gradientBg=document.createElement("div"),t.groundBg=document.createElement("div"),t.style=document.createElement("style"),t.gradientBg.className="BackgroundPluginBg",t.groundBg.className="BackgroundPluginGroundBg",t.style.innerHTML=`
487
487
  .BackgroundPluginBg {
488
488
  position: absolute;
489
489
  top: 0;
@@ -504,7 +504,7 @@ void main() {
504
504
  z-index: -1;
505
505
  pointerEvents: none;
506
506
  }
507
- `,t.enable()),t}return o})(Ht.BasePlugin.Controller),In=function(f,o){return new Sn(f,o)};new w.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);var bt=(function(){function f(o,e,a,t,s){this.R=o,this.Q=e,this.A=a,this.B=t,this.C=s,this.cov=NaN,this.x=NaN}return f.prototype.filter=function(o,e){if(e===void 0&&(e=0),isNaN(this.x))this.x=1/this.C*o,this.cov=1/this.C*this.Q*(1/this.C);else{var a=this.A*this.x+this.B*e,t=this.A*this.cov*this.A+this.R,s=t*this.C*(1/(this.C*t*this.C+this.Q));this.x=a+s*(o-this.C*a),this.cov=t-s*this.C*t}return this.x},f})(),Nn=(function(f){Re(o,f);function o(e,a){var t=f.call(this,e)||this;t.dispose=function(){t.disable()},t.five=e;var s={enabled:!0,visible:!0};t.state=Object.assign(s,a==null?void 0:a.initialState);var c=j({},a==null?void 0:a.config);return t._config=c,t.state.enabled&&t._enable({userAction:!1}),t.cancelAnimation=null,t.skipStart=0,t.skipEnd=0,t.location=0,t.totalDistance=0,t.trajectory=null,t.currentKeyFrame=null,t.nextKeyframe=null,t.nextButOneKeyframe=null,t.keyframes=[],t.rate=t.config.rate||1,t.virualCamera=t.five.camera.clone(),t.playingState={keyframeIndex:null,progress:null},Object.defineProperties(t,{currentDistance:{get:function(){return this._currentDistance},set:function(l){this._currentDistance=l}}}),t}return Object.defineProperty(o.prototype,"config",{get:function(){return j({},this._config)},enumerable:!1,configurable:!0}),o.prototype.updateState=function(e,a){var t=this.state;this.state=j(j({},this.state),e),this.hooks.emit("stateChange",{state:this.state,prevState:t,userAction:a})},o.prototype.load=function(e){return ke(this,void 0,void 0,function(){return Le(this,function(a){return[2]})})},o.prototype.loadTrajectory=function(e){this.trajectory=e,this.cancelAnimation&&this.cancelAnimation(),this.playingState.keyframeIndex=null,this.playingState.progress=null;var a=.01,t=.1,s=1,c=0,l=1,g=new bt(a,t,s,c,l),d=new bt(a,t,s,c,l),v=new bt(a,t,s,c,l);if(this.trajectory&&this.trajectory.content.loadState==="READY"){for(var T=this.trajectory.content.data.positionArray,A=new Float32Array(T.length/3),P=0;P<A.length;P++)if(P===0)A[P]=0;else{var O=new w.Vector3(T[P-3],T[P-2],T[P-1]),C=new w.Vector3(T[P],T[P+1],T[P+2]);A[P]=C.distanceTo(O)+A[P-1]}this.totalDistance=A[A.length-1];for(var P=0;P<A.length;P++){for(var D=new w.Vector3(0,0,0),b=0,y=P-5;y<P+6;y++)y>=0&&y<A.length&&(D.add(new w.Vector3(T[y*3],T[y*3+1],T[y*3+2])),b++);D.divideScalar(b).applyMatrix4(e.transform);var x=g.filter(D.x),p=d.filter(D.y),I=v.filter(D.z),M={position:new w.Vector3(x,p,I),location:A[P]};this.keyframes.push(M)}}else throw new Error("trajectory content is not ready")},o.prototype.setPlayingState=function(e){(e.keyframeIndex!==null||e.progress!==null)&&(this.cancelAnimation&&this.cancelAnimation(),this.playingState.keyframeIndex=e.keyframeIndex?e.keyframeIndex:this.playingState.keyframeIndex,this.playingState.progress=e.progress?e.progress:this.playingState.progress,this.play())},o.prototype._enable=function(e){},o.prototype.play=function(){var e=this,a=this.keyframes.length;if(a<2)throw new Error("keyframes length must be greater than 2");var t={keyframeIndex:null,progress:null};this.playingState.keyframeIndex!==null&&this.playingState.progress!==null?(t.keyframeIndex=this.playingState.keyframeIndex,t.progress=this.playingState.progress):this.playingState.keyframeIndex===null&&this.playingState.progress===null&&(this.playingState.keyframeIndex=this.skipStart,this.playingState.progress=0,this.virualCamera.position.copy(this.keyframes[this.playingState.keyframeIndex].position.clone()),this.virualCamera.lookAt(this.keyframes[1].position.clone()),this.virualCamera.computePose(),this.five.setState(j({},this.virualCamera.pose)));var s=this.playingState.keyframeIndex,c=0;this.cancelAnimation=Ne.AnimationFrameLoop.shared.add(function(l,g){if(s===a-1-e.skipEnd&&e.cancelAnimation){e.cancelAnimation();return}e.currentKeyFrame=e.keyframes[s],e.nextKeyframe=e.keyframes[s+1],s+2<=a-1?e.nextButOneKeyframe=e.keyframes[s+2]:e.nextButOneKeyframe=null;var d=e.currentKeyFrame.position.clone(),v=e.nextKeyframe.position.clone(),T=e.nextKeyframe.position.clone().sub(e.currentKeyFrame.position.clone()).normalize(),A=d.clone().add(T.clone().multiplyScalar(.01)),P=new w.Vector3;e.nextButOneKeyframe!==null?P=e.nextButOneKeyframe.position.clone().sub(e.nextKeyframe.position.clone()).normalize():P.copy(T);var O=v.clone().add(P.clone().multiplyScalar(.01));c+=g/1e3*e.rate;var C=c/d.distanceTo(v);C=C>=1?1:C,t.keyframeIndex!==null&&t.progress!==null&&(C=t.progress,t.keyframeIndex=null,t.progress=null);var D=d.clone().lerp(v,C),b=A.clone().lerp(O,C);e.virualCamera.position.copy(D),e.virualCamera.lookAt(b),e.virualCamera.updateMatrixWorld(),e.virualCamera.updateMatrix(),e.virualCamera.computePose(),e.five.setState(j({},e.virualCamera.pose)),e.location=e.keyframes[s].location+d.clone().distanceTo(D),C===1?(c=0,s++,e.playingState.keyframeIndex=s,e.playingState.progress=0):(e.playingState.keyframeIndex=s,e.playingState.progress=C)})},o.prototype.pause=function(){this.cancelAnimation&&this.cancelAnimation()},o.prototype.findKeyFrameByLocation=function(e){if(this.keyframes.length!==0){for(var a=0,t=this.keyframes.length-1;a<=t;){var s=Math.floor((a+t)/2);if(this.keyframes[s].location===e)return s;this.keyframes[s].location<e?a=s+1:t=s-1}return{keyframeIndex:a-1,progress:0}}},o.prototype.resetPlayingState=function(){this.playingState.keyframeIndex=null,this.playingState.progress=null},o.prototype._disable=function(e){},o.prototype.enable=function(e){var a;if(!this.state.enabled){var t=(a=e==null?void 0:e.userAction)!==null&&a!==void 0?a:!0;this.updateState({enabled:!0},t),this._enable({userAction:t})}},o.prototype.disable=function(e){var a;if(this.state.enabled!==!1){var t=(a=e==null?void 0:e.userAction)!==null&&a!==void 0?a:!0;this.updateState({enabled:!1},t),this._disable({userAction:t})}},o})(exports.BasePlugin.Controller),kn=function(f,o){return new Nn(f,o)};function Yt(f,o,e){return f<o?o:f>e?e:f}var Ln=`
507
+ `,t.enable()),t}return a})(At.BasePlugin.Controller),Bn=function(c,a){return new Fn(c,a)};new v.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);var bt=(function(){function c(a,e,n,t,o){this.R=a,this.Q=e,this.A=n,this.B=t,this.C=o,this.cov=NaN,this.x=NaN}return c.prototype.filter=function(a,e){if(e===void 0&&(e=0),isNaN(this.x))this.x=1/this.C*a,this.cov=1/this.C*this.Q*(1/this.C);else{var n=this.A*this.x+this.B*e,t=this.A*this.cov*this.A+this.R,o=t*this.C*(1/(this.C*t*this.C+this.Q));this.x=n+o*(a-this.C*n),this.cov=t-o*this.C*t}return this.x},c})(),Un=(function(c){de(a,c);function a(e,n){var t=c.call(this,e)||this;t.dispose=function(){t.disable()},t.five=e;var o={enabled:!0,visible:!0};t.state=Object.assign(o,n==null?void 0:n.initialState);var s=z({},n==null?void 0:n.config);return t._config=s,t.state.enabled&&t._enable({userAction:!1}),t.cancelAnimation=null,t.skipStart=0,t.skipEnd=0,t.location=0,t.totalDistance=0,t.trajectory=null,t.currentKeyFrame=null,t.nextKeyframe=null,t.nextButOneKeyframe=null,t.keyframes=[],t.rate=t.config.rate||1,t.virualCamera=t.five.camera.clone(),t.playingState={keyframeIndex:null,progress:null},Object.defineProperties(t,{currentDistance:{get:function(){return this._currentDistance},set:function(l){this._currentDistance=l}}}),t}return Object.defineProperty(a.prototype,"config",{get:function(){return z({},this._config)},enumerable:!1,configurable:!0}),a.prototype.updateState=function(e,n){var t=this.state;this.state=z(z({},this.state),e),this.hooks.emit("stateChange",{state:this.state,prevState:t,userAction:n})},a.prototype.load=function(e){return Ne(this,void 0,void 0,function(){return ke(this,function(n){return[2]})})},a.prototype.loadTrajectory=function(e){this.trajectory=e,this.cancelAnimation&&this.cancelAnimation(),this.playingState.keyframeIndex=null,this.playingState.progress=null;var n=.01,t=.1,o=1,s=0,l=1,h=new bt(n,t,o,s,l),f=new bt(n,t,o,s,l),g=new bt(n,t,o,s,l);if(this.trajectory&&this.trajectory.content.loadState==="READY"){for(var y=this.trajectory.content.data.positionArray,w=new Float32Array(y.length/3),P=0;P<w.length;P++)if(P===0)w[P]=0;else{var A=new v.Vector3(y[P-3],y[P-2],y[P-1]),S=new v.Vector3(y[P],y[P+1],y[P+2]);w[P]=S.distanceTo(A)+w[P-1]}this.totalDistance=w[w.length-1];for(var P=0;P<w.length;P++){for(var C=new v.Vector3(0,0,0),T=0,b=P-5;b<P+6;b++)b>=0&&b<w.length&&(C.add(new v.Vector3(y[b*3],y[b*3+1],y[b*3+2])),T++);C.divideScalar(T).applyMatrix4(e.transform);var x=h.filter(C.x),m=f.filter(C.y),O=g.filter(C.z),_={position:new v.Vector3(x,m,O),location:w[P]};this.keyframes.push(_)}}else throw new Error("trajectory content is not ready")},a.prototype.setPlayingState=function(e){(e.keyframeIndex!==null||e.progress!==null)&&(this.cancelAnimation&&this.cancelAnimation(),this.playingState.keyframeIndex=e.keyframeIndex?e.keyframeIndex:this.playingState.keyframeIndex,this.playingState.progress=e.progress?e.progress:this.playingState.progress,this.play())},a.prototype._enable=function(e){},a.prototype.play=function(){var e=this,n=this.keyframes.length;if(n<2)throw new Error("keyframes length must be greater than 2");var t={keyframeIndex:null,progress:null};this.playingState.keyframeIndex!==null&&this.playingState.progress!==null?(t.keyframeIndex=this.playingState.keyframeIndex,t.progress=this.playingState.progress):this.playingState.keyframeIndex===null&&this.playingState.progress===null&&(this.playingState.keyframeIndex=this.skipStart,this.playingState.progress=0,this.virualCamera.position.copy(this.keyframes[this.playingState.keyframeIndex].position.clone()),this.virualCamera.lookAt(this.keyframes[1].position.clone()),this.virualCamera.computePose(),this.five.setState(z({},this.virualCamera.pose)));var o=this.playingState.keyframeIndex,s=0;this.cancelAnimation=Ie.AnimationFrameLoop.shared.add(function(l,h){if(o===n-1-e.skipEnd&&e.cancelAnimation){e.cancelAnimation();return}e.currentKeyFrame=e.keyframes[o],e.nextKeyframe=e.keyframes[o+1],o+2<=n-1?e.nextButOneKeyframe=e.keyframes[o+2]:e.nextButOneKeyframe=null;var f=e.currentKeyFrame.position.clone(),g=e.nextKeyframe.position.clone(),y=e.nextKeyframe.position.clone().sub(e.currentKeyFrame.position.clone()).normalize(),w=f.clone().add(y.clone().multiplyScalar(.01)),P=new v.Vector3;e.nextButOneKeyframe!==null?P=e.nextButOneKeyframe.position.clone().sub(e.nextKeyframe.position.clone()).normalize():P.copy(y);var A=g.clone().add(P.clone().multiplyScalar(.01));s+=h/1e3*e.rate;var S=s/f.distanceTo(g);S=S>=1?1:S,t.keyframeIndex!==null&&t.progress!==null&&(S=t.progress,t.keyframeIndex=null,t.progress=null);var C=f.clone().lerp(g,S),T=w.clone().lerp(A,S);e.virualCamera.position.copy(C),e.virualCamera.lookAt(T),e.virualCamera.updateMatrixWorld(),e.virualCamera.updateMatrix(),e.virualCamera.computePose(),e.five.setState(z({},e.virualCamera.pose)),e.location=e.keyframes[o].location+f.clone().distanceTo(C),S===1?(s=0,o++,e.playingState.keyframeIndex=o,e.playingState.progress=0):(e.playingState.keyframeIndex=o,e.playingState.progress=S)})},a.prototype.pause=function(){this.cancelAnimation&&this.cancelAnimation()},a.prototype.findKeyFrameByLocation=function(e){if(this.keyframes.length!==0){for(var n=0,t=this.keyframes.length-1;n<=t;){var o=Math.floor((n+t)/2);if(this.keyframes[o].location===e)return o;this.keyframes[o].location<e?n=o+1:t=o-1}return{keyframeIndex:n-1,progress:0}}},a.prototype.resetPlayingState=function(){this.playingState.keyframeIndex=null,this.playingState.progress=null},a.prototype._disable=function(e){},a.prototype.enable=function(e){var n;if(!this.state.enabled){var t=(n=e==null?void 0:e.userAction)!==null&&n!==void 0?n:!0;this.updateState({enabled:!0},t),this._enable({userAction:t})}},a.prototype.disable=function(e){var n;if(this.state.enabled!==!1){var t=(n=e==null?void 0:e.userAction)!==null&&n!==void 0?n:!0;this.updateState({enabled:!1},t),this._disable({userAction:t})}},a})(exports.BasePlugin.Controller),Rn=function(c,a){return new Un(c,a)};function Yt(c,a,e){return c<a?a:c>e?e:c}var Vn=`
508
508
  varying vec2 vUv;
509
509
  varying vec3 vPosition;
510
510
  void main() {
@@ -512,7 +512,7 @@ void main() {
512
512
  vPosition = position;
513
513
  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
514
514
  }
515
- `,Dn=`
515
+ `,zn=`
516
516
  varying vec2 vUv;
517
517
  uniform sampler2D map;
518
518
  uniform float progress;
@@ -531,4 +531,202 @@ void main() {
531
531
  }
532
532
  gl_FragColor.a = gl_FragColor.a * opacity;
533
533
  }
534
- `,Rn=[1,5,2,6,3,7,4,8,9,13,10,14,11,15,12,16],Tt=512,wt=512,rt=128,Un=(function(f){Re(o,f);function o(e,a){var t=f.call(this,e)||this;t.group=new w.Group,t.mesh=(function(){var l=new w.CylinderGeometry(.12,.12,1,32,1,!0);l.translate(0,.5,0);var g=new w.ShaderMaterial({vertexShader:Ln,fragmentShader:Dn,uniforms:{map:{value:new w.Texture},progress:{value:0},opacity:{value:0}},transparent:!0,depthTest:!1}),d=new w.Mesh(l,g);return d})(),t.panoMesh=new Ne.PanoCircleMesh({scale:1.5}),t.stop=function(){},t.drawLine=function(l,g){if(t.ctx){var d=(function(){var A,P=Tt/16|0;return P*((A=Rn[l])!==null&&A!==void 0?A:0)})(),v=(1-(g+l*150)%1200/1200)*(wt+rt),T=t.ctx.createLinearGradient(0,v-rt,0,v);T.addColorStop(0,"rgba(255,255,255,0)"),T.addColorStop(.5,"rgba(255,255,255,1)"),T.addColorStop(1,"rgba(255,255,255,0)"),t.ctx.fillStyle=T,t.ctx.fillRect(d,v-rt,3,rt)}},t.anime=function(l){if(t.ctx&&t.startTime){t.ctx.clearRect(0,0,Tt,wt);for(var g=0;g<16;g++)t.drawLine(g,l-t.startTime);var d=Yt((l-t.startTime)/1e3,0,1),v=Yt((l-t.startTime)/300,0,t.config.maxOpacity);t.panoMesh.setOpacity(v),t.mesh.material.uniforms.progress.value=d,t.mesh.material.uniforms.opacity.value=v,t.mesh.material.uniforms.map.value.needsUpdate=!0,t.five.needsRender=!0}},t.dispose=function(){t.disable()},t.five=e;var s={enabled:!1,visible:!0};t.state=Object.assign(s,a==null?void 0:a.initialState);var c=j(j({},a==null?void 0:a.config),{maxOpacity:1});return t._config=c,typeof document=="undefined"||(t.canvas=document.createElement("canvas"),t.ctx=t.canvas.getContext("2d"),t.canvas.width=Tt,t.canvas.height=wt,t.ctx.shadowColor="rgba(255,255,255,0.5)",t.ctx.shadowBlur=6,t.ctx.shadowOffsetX=0,t.ctx.shadowOffsetY=0,t.mesh.material.uniforms.map.value=new w.CanvasTexture(t.canvas),t.group.add(t.mesh),t.panoMesh.setProgress(1),t.panoMesh.setOpacity(0),t.group.add(t.panoMesh),t.state.enabled&&t._enable({userAction:!1})),t}return Object.defineProperty(o.prototype,"config",{get:function(){return j({},this._config)},enumerable:!1,configurable:!0}),o.prototype.updateState=function(e,a){var t=this.state;this.state=j(j({},this.state),e),this.hooks.emit("stateChange",{state:this.state,prevState:t,userAction:a})},o.prototype.updateConfig=function(e,a){var t;a===void 0&&(a={});var s=this.config,c=j(j({},s),e);this._config=c,this.hooks.emit("configChange",{prevConfig:s,config:c,userAction:(t=a.userAction)!==null&&t!==void 0?t:!0})},o.prototype.load=function(e){return ke(this,void 0,void 0,function(){return Le(this,function(a){return[2]})})},o.prototype._enable=function(e){var a=this;this.mesh.position.copy(this.five.observers[this.five.state.panoIndex].standingPosition),this.panoMesh.position.copy(this.five.observers[this.five.state.panoIndex].standingPosition),this.five.ready().then(function(){a.five.scene.add(a.group),a.stop=Ne.AnimationFrameLoop.shared.add(function(t,s){a.startTime||(a.startTime=t),a.panoMesh.updateTime(t,s),a.anime(t)})})},o.prototype._disable=function(e){this.five.scene.remove(this.group),this.panoMesh.setOpacity(0),this.startTime=void 0,this.stop(),this.five.needsRender=!0},o.prototype.enable=function(e){var a;if(this.ctx&&!this.state.enabled&&this.five.observers[this.five.state.panoIndex]){var t=(a=e==null?void 0:e.userAction)!==null&&a!==void 0?a:!0;this.updateState({enabled:!0},t),this._enable({userAction:t})}},o.prototype.disable=function(e){var a;if(this.state.enabled!==!1){var t=(a=e==null?void 0:e.userAction)!==null&&a!==void 0?a:!0;this.updateState({enabled:!1},t),this._disable({userAction:t})}},o.prototype.setState=function(e,a){a===void 0&&(a={});var t=this.state,s=a.userAction!==void 0?a.userAction:!0;if(this.updateState(e,s),e.enabled!==void 0&&t.enabled!==e.enabled){var c={userAction:s};e.enabled?this._enable(c):this._disable(c)}},o})(Ht.BasePlugin.Controller),Fn=function(f,o){return new Un(f,o)};exports.BackgroundPlugin=In;exports.CSS3DRenderer=jt;exports.ItemMaskPlugin=Mn;exports.OrbitControls=De;exports.OrientationPlugin=_n;exports.PanoAnimePlugin=Fn;exports.RoundedBoxGeometry=zt;exports.TrajectoryPlugin=kn;
534
+ `,jn=[1,5,2,6,3,7,4,8,9,13,10,14,11,15,12,16],wt=512,Et=512,rt=128,Gn=(function(c){de(a,c);function a(e,n){var t=c.call(this,e)||this;t.group=new v.Group,t.mesh=(function(){var l=new v.CylinderGeometry(.12,.12,1,32,1,!0);l.translate(0,.5,0);var h=new v.ShaderMaterial({vertexShader:Vn,fragmentShader:zn,uniforms:{map:{value:new v.Texture},progress:{value:0},opacity:{value:0}},transparent:!0,depthTest:!1}),f=new v.Mesh(l,h);return f})(),t.panoMesh=new Ie.PanoCircleMesh({scale:1.5}),t.stop=function(){},t.drawLine=function(l,h){if(t.ctx){var f=(function(){var w,P=wt/16|0;return P*((w=jn[l])!==null&&w!==void 0?w:0)})(),g=(1-(h+l*150)%1200/1200)*(Et+rt),y=t.ctx.createLinearGradient(0,g-rt,0,g);y.addColorStop(0,"rgba(255,255,255,0)"),y.addColorStop(.5,"rgba(255,255,255,1)"),y.addColorStop(1,"rgba(255,255,255,0)"),t.ctx.fillStyle=y,t.ctx.fillRect(f,g-rt,3,rt)}},t.anime=function(l){if(t.ctx&&t.startTime){t.ctx.clearRect(0,0,wt,Et);for(var h=0;h<16;h++)t.drawLine(h,l-t.startTime);var f=Yt((l-t.startTime)/1e3,0,1),g=Yt((l-t.startTime)/300,0,t.config.maxOpacity);t.panoMesh.setOpacity(g),t.mesh.material.uniforms.progress.value=f,t.mesh.material.uniforms.opacity.value=g,t.mesh.material.uniforms.map.value.needsUpdate=!0,t.five.needsRender=!0}},t.dispose=function(){t.disable()},t.five=e;var o={enabled:!1,visible:!0};t.state=Object.assign(o,n==null?void 0:n.initialState);var s=z(z({},n==null?void 0:n.config),{maxOpacity:1});return t._config=s,typeof document=="undefined"||(t.canvas=document.createElement("canvas"),t.ctx=t.canvas.getContext("2d"),t.canvas.width=wt,t.canvas.height=Et,t.ctx.shadowColor="rgba(255,255,255,0.5)",t.ctx.shadowBlur=6,t.ctx.shadowOffsetX=0,t.ctx.shadowOffsetY=0,t.mesh.material.uniforms.map.value=new v.CanvasTexture(t.canvas),t.group.add(t.mesh),t.panoMesh.setProgress(1),t.panoMesh.setOpacity(0),t.group.add(t.panoMesh),t.state.enabled&&t._enable({userAction:!1})),t}return Object.defineProperty(a.prototype,"config",{get:function(){return z({},this._config)},enumerable:!1,configurable:!0}),a.prototype.updateState=function(e,n){var t=this.state;this.state=z(z({},this.state),e),this.hooks.emit("stateChange",{state:this.state,prevState:t,userAction:n})},a.prototype.updateConfig=function(e,n){var t;n===void 0&&(n={});var o=this.config,s=z(z({},o),e);this._config=s,this.hooks.emit("configChange",{prevConfig:o,config:s,userAction:(t=n.userAction)!==null&&t!==void 0?t:!0})},a.prototype.load=function(e){return Ne(this,void 0,void 0,function(){return ke(this,function(n){return[2]})})},a.prototype._enable=function(e){var n=this;this.mesh.position.copy(this.five.observers[this.five.state.panoIndex].standingPosition),this.panoMesh.position.copy(this.five.observers[this.five.state.panoIndex].standingPosition),this.five.ready().then(function(){n.five.scene.add(n.group),n.stop=Ie.AnimationFrameLoop.shared.add(function(t,o){n.startTime||(n.startTime=t),n.panoMesh.updateTime(t,o),n.anime(t)})})},a.prototype._disable=function(e){this.five.scene.remove(this.group),this.panoMesh.setOpacity(0),this.startTime=void 0,this.stop(),this.five.needsRender=!0},a.prototype.enable=function(e){var n;if(this.ctx&&!this.state.enabled&&this.five.observers[this.five.state.panoIndex]){var t=(n=e==null?void 0:e.userAction)!==null&&n!==void 0?n:!0;this.updateState({enabled:!0},t),this._enable({userAction:t})}},a.prototype.disable=function(e){var n;if(this.state.enabled!==!1){var t=(n=e==null?void 0:e.userAction)!==null&&n!==void 0?n:!0;this.updateState({enabled:!1},t),this._disable({userAction:t})}},a.prototype.setState=function(e,n){n===void 0&&(n={});var t=this.state,o=n.userAction!==void 0?n.userAction:!0;if(this.updateState(e,o),e.enabled!==void 0&&t.enabled!==e.enabled){var s={userAction:o};e.enabled?this._enable(s):this._disable(s)}},a})(At.BasePlugin.Controller),Hn=function(c,a){return new Gn(c,a)},St=(function(c){de(a,c);function a(){var e=c.call(this)||this;e.type="LineSegmentsGeometry";var n=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],t=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],o=[0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5];return e.setIndex(o),e.setAttribute("position",new v.Float32BufferAttribute(n,3)),e.setAttribute("uv",new v.Float32BufferAttribute(t,2)),e}return a.prototype.applyMatrix4=function(e){var n=this.attributes.instanceStart,t=this.attributes.instanceEnd;return n!==void 0&&(n.applyMatrix4(e),t.applyMatrix4(e),n.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this},a.prototype.setPositions=function(e){var n;e instanceof Float32Array?n=e:Array.isArray(e)?n=new Float32Array(e):n=new Float32Array;var t=new v.InstancedInterleavedBuffer(n,6,1);return this.setAttribute("instanceStart",new v.InterleavedBufferAttribute(t,3,0)),this.setAttribute("instanceEnd",new v.InterleavedBufferAttribute(t,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this},a.prototype.setColors=function(e){var n;e instanceof Float32Array?n=e:Array.isArray(e)?n=new Float32Array(e):n=new Float32Array;var t=new v.InstancedInterleavedBuffer(n,6,1);return this.setAttribute("instanceColorStart",new v.InterleavedBufferAttribute(t,3,0)),this.setAttribute("instanceColorEnd",new v.InterleavedBufferAttribute(t,3,3)),this},a.prototype.fromWireframeGeometry=function(e){return this.setPositions(e.attributes.position.array),this},a.prototype.fromEdgesGeometry=function(e){return this.setPositions(e.attributes.position.array),this},a.prototype.fromMesh=function(e){return this.fromWireframeGeometry(new v.WireframeGeometry(e.geometry)),this},a.prototype.fromLineSegments=function(e){var n=e.geometry;if(n instanceof v.Geometry){var t=new v.BufferGeometry().fromGeometry(n);this.setPositions(t.attributes.position.array)}else n instanceof v.BufferGeometry&&this.setPositions(n.attributes.position.array);return this},a.prototype.computeBoundingBox=function(){this.boundingBox===null&&(this.boundingBox=new v.Box3);var e=this.attributes.instanceStart,n=this.attributes.instanceEnd;if(e!==void 0&&n!==void 0){var t=new v.Box3;this.boundingBox.setFromBufferAttribute(e),t.setFromBufferAttribute(n),this.boundingBox.union(t)}},a.prototype.computeBoundingSphere=function(){this.boundingSphere===null&&(this.boundingSphere=new v.Sphere),this.boundingBox===null&&this.computeBoundingBox();var e=this.attributes.instanceStart,n=this.attributes.instanceEnd;if(e!==void 0&&n!==void 0){var t=this.boundingSphere.center;this.boundingBox.getCenter(t);for(var o=0,s=new v.Vector3,l=0,h=e.count;l<h;l++)s.fromBufferAttribute(e,l),o=Math.max(o,t.distanceToSquared(s)),s.fromBufferAttribute(n,l),o=Math.max(o,t.distanceToSquared(s));this.boundingSphere.radius=Math.sqrt(o),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}},a.prototype.toJSON=function(){},a})(v.InstancedBufferGeometry);Object.assign(St.prototype,{isLineSegmentsGeometry:!0});var Tt={uniforms:v.UniformsUtils.merge([v.UniformsLib.common,v.UniformsLib.fog,{linewidth:{value:1},resolution:{value:new v.Vector2(1,1)},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1},opacity:{value:1},totalLength:{value:1},animationProgress:{value:0},time:{value:0},waveAmp:{value:.15},waveFreq:{value:5},waveDir:{value:2},startOffset:{value:0}}]),vertexShader:`
535
+ #include <common>
536
+ #include <color_pars_vertex>
537
+ #include <fog_pars_vertex>
538
+ #include <logdepthbuf_pars_vertex>
539
+ #include <clipping_planes_pars_vertex>
540
+
541
+ uniform float linewidth;
542
+ uniform vec2 resolution;
543
+ uniform float totalLength;
544
+ uniform float time;
545
+ uniform float waveAmp;
546
+ uniform float waveFreq;
547
+ uniform float waveDir;
548
+ uniform float startOffset;
549
+
550
+ attribute vec3 instanceStart;
551
+ attribute vec3 instanceEnd;
552
+ attribute float distanceProgress;
553
+ attribute vec3 instanceColorStart;
554
+ attribute vec3 instanceColorEnd;
555
+ attribute float instanceDistanceStart;
556
+ attribute float instanceDistanceEnd;
557
+
558
+ varying vec2 vUv;
559
+ varying float vDistanceProgress;
560
+
561
+ #ifdef USE_DASH
562
+ uniform float dashScale;
563
+ varying float vLineDistance;
564
+ #endif
565
+
566
+ void trimSegment(const in vec4 start, inout vec4 end) {
567
+ float a = projectionMatrix[2][2];
568
+ float b = projectionMatrix[3][2];
569
+ float nearEstimate = -0.5 * b / a;
570
+ float alpha = (nearEstimate - start.z) / (end.z - start.z);
571
+ end.xyz = mix(start.xyz, end.xyz, alpha);
572
+ }
573
+
574
+ void main() {
575
+ #ifdef USE_COLOR
576
+ vColor.xyz = (position.y < 0.5) ? instanceColorStart : instanceColorEnd;
577
+ #endif
578
+
579
+ #ifdef USE_DASH
580
+ vLineDistance = (position.y < 0.5) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;
581
+ #endif
582
+
583
+ float aspect = resolution.x / resolution.y;
584
+ vUv = uv;
585
+
586
+ // camera space
587
+ vec4 start = modelViewMatrix * vec4(instanceStart, 1.0);
588
+ vec4 end = modelViewMatrix * vec4(instanceEnd, 1.0);
589
+
590
+ // ===== 波浪偏移逻辑 =====
591
+ if (waveDir > 0.5) { // 0 表示不波动
592
+ float adjustedDistanceStart = max(0.0, instanceDistanceStart - startOffset);
593
+ float adjustedDistanceEnd = max(0.0, instanceDistanceEnd - startOffset);
594
+ float adjustedTotalLength = max(0.01, totalLength - startOffset);
595
+ float phaseStart = adjustedDistanceStart / adjustedTotalLength;
596
+ float phaseEnd = adjustedDistanceEnd / adjustedTotalLength;
597
+ float waveStart = sin(phaseStart * waveFreq - time * 2.0) * waveAmp;
598
+ float waveEnd = sin(phaseEnd * waveFreq - time * 2.0) * waveAmp;
599
+
600
+ if (abs(waveDir - 1.0) < 0.1) { // X 方向
601
+ start.x += waveStart;
602
+ end.x += waveEnd;
603
+ } else if (abs(waveDir - 2.0) < 0.1) { // Y 方向
604
+ start.y += waveStart;
605
+ end.y += waveEnd;
606
+ } else if (abs(waveDir - 3.0) < 0.1) { // Z 方向
607
+ start.z += waveStart;
608
+ end.z += waveEnd;
609
+ }
610
+ }
611
+ // ======================
612
+
613
+ bool perspective = (projectionMatrix[2][3] == -1.0);
614
+ if (perspective) {
615
+ if (start.z < 0.0 && end.z >= 0.0) {
616
+ trimSegment(start, end);
617
+ } else if (end.z < 0.0 && start.z >= 0.0) {
618
+ trimSegment(end, start);
619
+ }
620
+ }
621
+
622
+ vec4 clipStart = projectionMatrix * start;
623
+ vec4 clipEnd = projectionMatrix * end;
624
+
625
+ vec2 ndcStart = clipStart.xy / clipStart.w;
626
+ vec2 ndcEnd = clipEnd.xy / clipEnd.w;
627
+
628
+ vec2 dir = ndcEnd - ndcStart;
629
+ dir.x *= aspect;
630
+ dir = normalize(dir);
631
+
632
+ vec2 offset = vec2(dir.y, -dir.x);
633
+ dir.x /= aspect;
634
+ offset.x /= aspect;
635
+
636
+ if (position.x < 0.0) offset *= -1.0;
637
+ if (position.y < 0.0) {
638
+ offset += -dir;
639
+ } else if (position.y > 1.0) {
640
+ offset += dir;
641
+ }
642
+
643
+ offset *= linewidth;
644
+ offset /= resolution.y;
645
+
646
+ vec4 clip = (position.y < 0.5) ? clipStart : clipEnd;
647
+ offset *= clip.w;
648
+ clip.xy += offset;
649
+
650
+ gl_Position = clip;
651
+
652
+ float adjustedDistanceEnd = max(0.0, instanceDistanceEnd - startOffset);
653
+ float adjustedTotalLength = max(0.01, totalLength - startOffset);
654
+ vDistanceProgress = adjustedDistanceEnd / adjustedTotalLength;
655
+
656
+ #include <logdepthbuf_vertex>
657
+ #include <clipping_planes_vertex>
658
+ #include <fog_vertex>
659
+ }
660
+ `,fragmentShader:`
661
+ uniform vec3 diffuse;
662
+ uniform float opacity;
663
+ uniform float animationProgress;
664
+ varying float vDistanceProgress;
665
+
666
+ #ifdef USE_DASH
667
+ uniform float dashSize;
668
+ uniform float gapSize;
669
+ #endif
670
+
671
+ varying float vLineDistance;
672
+ #include <common>
673
+ #include <color_pars_fragment>
674
+ #include <fog_pars_fragment>
675
+ #include <logdepthbuf_pars_fragment>
676
+ #include <clipping_planes_pars_fragment>
677
+ varying vec2 vUv;
678
+
679
+ void main() {
680
+ #include <clipping_planes_fragment>
681
+
682
+ #ifdef USE_DASH
683
+ if (vUv.y < -1.0 || vUv.y > 1.0) discard;
684
+ if (mod(vLineDistance, dashSize + gapSize) > dashSize) discard;
685
+ #endif
686
+
687
+ if (abs(vUv.y) > 1.0) {
688
+ float a = vUv.x;
689
+ float b = (vUv.y > 0.0) ? vUv.y - 1.0 : vUv.y + 1.0;
690
+ float len2 = a * a + b * b;
691
+ if (len2 > 1.0) discard;
692
+ }
693
+
694
+ vec4 diffuseColor = vec4(diffuse, opacity);
695
+ #include <logdepthbuf_fragment>
696
+ #include <color_fragment>
697
+
698
+ gl_FragColor = vec4(diffuseColor.rgb, diffuseColor.a);
699
+
700
+ float range = 0.3;
701
+ float alpha = 0.0;
702
+ float diff = abs(vDistanceProgress - animationProgress);
703
+ diff = min(diff, 1.0 - diff);
704
+ if (diff < range) {
705
+ alpha = 1.0 - diff / range;
706
+ }
707
+ if (vDistanceProgress > 0.9) {
708
+ alpha = min(alpha, (1.0 - vDistanceProgress) / 0.1);
709
+ }
710
+ alpha = clamp(alpha, 0.0, 1.0);
711
+ gl_FragColor.a = alpha;
712
+
713
+ #include <tonemapping_fragment>
714
+ #include <fog_fragment>
715
+ #include <premultiplied_alpha_fragment>
716
+ }
717
+ `},Mt=(function(c){de(a,c);function a(e){var n=c.call(this,{uniforms:v.UniformsUtils.clone(Tt.uniforms),vertexShader:Tt.vertexShader,fragmentShader:Tt.fragmentShader,clipping:!0})||this;return n.type="LineMaterial",n.dashed=!1,Object.defineProperties(n,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(t){this.uniforms.diffuse.value=t}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(t){this.uniforms.linewidth.value=t}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(t){this.uniforms.dashScale.value=t}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(t){this.uniforms.dashSize.value=t}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(t){this.uniforms.gapSize.value=t}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(t){this.uniforms.opacity.value=t}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(t){this.uniforms.resolution.value.copy(t)}},time:{enumerable:!0,get:function(){return this.uniforms.time.value},set:function(t){this.uniforms.time.value=t}},waveAmp:{enumerable:!0,get:function(){return this.uniforms.waveAmp.value},set:function(t){this.uniforms.waveAmp.value=t}},waveFreq:{enumerable:!0,get:function(){return this.uniforms.waveFreq.value},set:function(t){this.uniforms.waveFreq.value=t}},waveDir:{enumerable:!0,get:function(){return this.uniforms.waveDir.value},set:function(t){this.uniforms.waveDir.value=t}},startOffset:{enumerable:!0,get:function(){return this.uniforms.startOffset.value},set:function(t){this.uniforms.startOffset.value=t}}}),n.setValues(e),n}return a})(v.ShaderMaterial);Object.assign(Mt.prototype,{isLineMaterial:!0});var qt=(function(c){de(a,c);function a(e,n){var t=c.call(this)||this;return t.type="LineSegments2",t.geometry=e!==void 0?e:new St,t.material=n!==void 0?n:new Mt({color:Math.random()*16777215}),t}return a.prototype.computeLineDistances=function(){for(var e=this.geometry,n=e.attributes.instanceStart,t=e.attributes.instanceEnd,o=new Float32Array(2*n.count),s=new v.Vector3,l=new v.Vector3,h=0,f=0,g=n.count;f<g;f++)s.fromBufferAttribute(n,f),l.fromBufferAttribute(t,f),h+=s.distanceTo(l);this.material.uniforms.totalLength.value=h;for(var f=0,y=0,g=n.count;f<g;f++,y+=2){s.fromBufferAttribute(n,f),l.fromBufferAttribute(t,f);var w=s.distanceTo(l);o[y]=y===0?0:o[y-1],o[y+1]=o[y]+w}var P=new v.InstancedInterleavedBuffer(o,2,1);return e.setAttribute("instanceDistanceStart",new v.InterleavedBufferAttribute(P,1,0)),e.setAttribute("instanceDistanceEnd",new v.InterleavedBufferAttribute(P,1,1)),this},a.prototype.raycast=function(e,n){e.camera===null&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2.');var t=e.ray,o=e.camera,s=o.projectionMatrix,l=this.geometry,h=this.material,f=h.resolution,g=h.linewidth,y=l.attributes.instanceStart,w=l.attributes.instanceEnd,P=new v.Vector4,A=new v.Vector4,S=new v.Vector4,C=new v.Vector3,T=new v.Matrix4,b=new v.Line3,x=new v.Vector3;t.at(1,S),S.w=1,S.applyMatrix4(o.matrixWorldInverse),S.applyMatrix4(s),S.multiplyScalar(1/S.w),S.x*=f.x/2,S.y*=f.y/2,S.z=0,C.copy(S);var m=this.matrixWorld;T.multiplyMatrices(o.matrixWorldInverse,m);for(var O=0,_=y.count;O<_;O++){P.fromBufferAttribute(y,O),A.fromBufferAttribute(w,O),P.w=1,A.w=1,P.applyMatrix4(T),A.applyMatrix4(T),P.applyMatrix4(s),A.applyMatrix4(s),P.multiplyScalar(1/P.w),A.multiplyScalar(1/A.w);var W=P.z<-1&&A.z<-1,H=P.z>1&&A.z>1;if(!(W||H)){P.x*=f.x/2,P.y*=f.y/2,A.x*=f.x/2,A.y*=f.y/2,b.start.copy(P),b.start.z=0,b.end.copy(A),b.end.z=0;var R=b.closestPointToPointParameter(C,!0);b.at(R,x);var J=v.MathUtils.lerp(P.z,A.z,R),se=J>=-1&&J<=1,ue=C.distanceTo(x)<g*.5;if(se&&ue){b.start.fromBufferAttribute(y,O),b.end.fromBufferAttribute(w,O),b.start.applyMatrix4(m),b.end.applyMatrix4(m);var $=new v.Vector3,Q=new v.Vector3;t.distanceSqToSegment(b.start,b.end,Q,$),n.push({point:Q,pointOnLine:$,distance:t.origin.distanceTo(Q),object:this,faceIndex:O})}}}},a})(v.Mesh);Object.assign(qt.prototype,{isLineSegments2:!0});var Kt=(function(c){de(a,c);function a(e,n){var t=c.call(this,e,n)||this;return t.type="Line2",t}return a})(qt);Object.assign(Kt.prototype,{isLine2:!0});var Zt=(function(c){de(a,c);function a(){var e=c.call(this)||this;return e.type="LineGeometry",e}return a.prototype.setPositions=function(e){for(var n=e.length-3,t=new Float32Array(2*n),o=0;o<n;o+=3)t[2*o]=e[o],t[2*o+1]=e[o+1],t[2*o+2]=e[o+2],t[2*o+3]=e[o+3],t[2*o+4]=e[o+4],t[2*o+5]=e[o+5];return c.prototype.setPositions.call(this,t),this},a.prototype.setColors=function(e){for(var n=e.length-3,t=new Float32Array(2*n),o=0;o<n;o+=3)t[2*o]=e[o],t[2*o+1]=e[o+1],t[2*o+2]=e[o+2],t[2*o+3]=e[o+3],t[2*o+4]=e[o+4],t[2*o+5]=e[o+5];return c.prototype.setColors.call(this,t),this},a.prototype.fromLine=function(e){var n=e.geometry;if(n instanceof v.Geometry){var t=new v.BufferGeometry().fromGeometry(n);this.setPositions(t.attributes.position.array)}else n instanceof v.BufferGeometry&&this.setPositions(n.attributes.position.array);return this},a.prototype.copy=function(){return this},a})(St);Object.assign(Zt.prototype,{isLineGeometry:!0});var Yn=(function(c){de(a,c);function a(e,n){var t=c.call(this,e)||this;t.paths=new Map,t.animationId=null,t.up=new v.Vector3(0,1,0);var o={enabled:!0,visible:!0,playing:!1};t.state=Object.assign(o,n==null?void 0:n.initialState);var s={lineCount:6,spacing:.02,divisions:100,lineWidth:2,color:16777215,duration:3,waveAmp:.05,waveFreq:20,particleCount:50,maxDistance:.1};return t._config=z(z({},s),n==null?void 0:n.config),n!=null&&n.paths&&n.paths.length>0&&n.paths.forEach(function(l){t.addPath(l)}),t.state.enabled&&t._enable({userAction:!1}),t}return Object.defineProperty(a.prototype,"config",{get:function(){return z({},this._config)},enumerable:!1,configurable:!0}),a.prototype.updateState=function(e,n){var t=this.state;this.state=z(z({},this.state),e),this.hooks.emit("stateChange",{state:this.state,prevState:t,userAction:n})},a.prototype.load=function(e,n){return Ne(this,void 0,void 0,function(){var t,o=this;return ke(this,function(s){return this.clearAllPaths(),e.paths.forEach(function(l){var h,f,g=l.points.map(function(y){return new v.Vector3(y.x,y.y,y.z)});o.addPath({id:l.id,points:g,enabled:(h=l.enabled)!==null&&h!==void 0?h:!0,visible:(f=l.visible)!==null&&f!==void 0?f:!0,color:l.color,lineWidth:l.lineWidth})}),t=new Map,this.paths.forEach(function(l,h){t.set(h,l.config)}),this.data={paths:t},this.hooks.emit("dataLoaded",this.data),n&&this.setState(n),[2]})})},a.prototype.addPath=function(e){var n,t;if(e.points.length<2)return console.warn("DynamicPathLinePlugin: 路径 ".concat(e.id," 至少需要2个点")),!1;if(this.paths.has(e.id))return console.warn("DynamicPathLinePlugin: 路径 ".concat(e.id," 已存在")),!1;var o=new v.CatmullRomCurve3(e.points),s=this.createLines(e,o),l=this.createParticles(),h=l.particles,f=l.particleGeometry,g=l.particleMaterial,y=l.particleInfos,w=l.particlePositions,P={id:e.id,config:e,curve:o,lines:s,particles:h,particleGeometry:f,particleMaterial:g,particleInfos:y,particlePositions:w,enabled:(n=e.enabled)!==null&&n!==void 0?n:!0,visible:(t=e.visible)!==null&&t!==void 0?t:!0,startOffset:0};this.paths.set(e.id,P);var A=this.data,S=new Map;return this.paths.forEach(function(C,T){S.set(T,C.config)}),this.data={paths:S},this.hooks.emit("dataChange",this.data,A),this.hooks.emit("pathAdd",e.id,e),this.state.playing&&this.animationId===null&&this.startAnimation(),!0},a.prototype.removePath=function(e){var n=this.paths.get(e);if(!n)return console.warn("DynamicPathLinePlugin: 路径 ".concat(e," 不存在")),!1;this.disposePathResources(n),this.paths.delete(e);var t=this.data,o=new Map;return this.paths.forEach(function(s,l){o.set(l,s.config)}),this.data={paths:o},this.hooks.emit("dataChange",this.data,t),this.hooks.emit("pathRemove",e),!0},a.prototype.enablePath=function(e){var n=this.paths.get(e);return n?(n.enabled=!0,this.hooks.emit("pathEnable",e),!0):(console.warn("DynamicPathLinePlugin: 路径 ".concat(e," 不存在")),!1)},a.prototype.disablePath=function(e){var n=this.paths.get(e);return n?(n.enabled=!1,this.hooks.emit("pathDisable",e),!0):(console.warn("DynamicPathLinePlugin: 路径 ".concat(e," 不存在")),!1)},a.prototype.showPath=function(e){var n=this.paths.get(e);return n?(n.visible=!0,n.lines.forEach(function(t){return t.visible=!0}),n.particles.visible=!0,this.hooks.emit("pathShow",e),!0):(console.warn("DynamicPathLinePlugin: 路径 ".concat(e," 不存在")),!1)},a.prototype.hidePath=function(e){var n=this.paths.get(e);return n?(n.visible=!1,n.lines.forEach(function(t){return t.visible=!1}),n.particles.visible=!1,this.hooks.emit("pathHide",e),!0):(console.warn("DynamicPathLinePlugin: 路径 ".concat(e," 不存在")),!1)},a.prototype.getPathIds=function(){return Array.from(this.paths.keys())},a.prototype.getPathConfig=function(e){var n=this.paths.get(e);return n?z({},n.config):void 0},a.prototype.clearAllPaths=function(){var e=this;this.paths.forEach(function(o){e.disposePathResources(o)}),this.paths.clear();var n=this.data,t=new Map;this.paths.forEach(function(o,s){t.set(s,o.config)}),this.data={paths:t},this.hooks.emit("dataChange",this.data,n)},a.prototype.getPositions=function(e,n){for(var t=[],o=[],s=0,l=[],h=0;h<=n;h++){var f=h/n,g=e.getPoint(f);l.push(g.clone()),h>0&&(s+=g.distanceTo(l[h-1]))}for(var y=0,h=0;h<n;h++){h>0&&(y+=l[h].distanceTo(l[h-1]));var w=y/s;t.push(l[h].x,l[h].y,l[h].z),o.push(w)}return{positions:t,distanceProgress:o}},a.prototype.createLines=function(e,n){for(var t=this,o,s,l=[],h=this._config,f=h.lineCount,g=h.spacing,y=h.divisions,w=h.waveAmp,P=h.waveFreq,A=(o=e.lineWidth)!==null&&o!==void 0?o:this._config.lineWidth,S=(s=e.color)!==null&&s!==void 0?s:this._config.color,C=function(x){var m=(x-(f-1)/2)*g,O=e.points.map(function(se,ue){var $=ue/(e.points.length-1),Q=n.getTangent($).normalize(),F=new v.Vector3().crossVectors(t.up,Q).normalize(),N=m*Math.abs((ue-e.points.length/2)/e.points.length-.5)*-1;return se.clone().addScaledVector(F,m+N).add(new v.Vector3(0,.02*(x%2===0?1:0),0))}),_=new v.CatmullRomCurve3(O),W=T.getPositions(_,y).positions,H=new Zt;H.setPositions(W);var R=new Mt({color:S,linewidth:A*(x%2===0?1:.5),transparent:!0,opacity:1});R.resolution.set(T.five.camera.resolution.x,T.five.camera.resolution.y),x===0?R.waveDir=1:x===1?R.waveDir=2:x===2?R.waveDir=0:x===3?R.waveDir=3:x===4&&(R.waveDir=1),R.waveAmp=w,R.waveFreq=P,Object.assign(R.uniforms,{time:{value:0},startOffset:{value:0}});var J=new Kt(H,R);J.computeLineDistances(),l.push(J),T.five.scene.add(J)},T=this,b=0;b<f;b++)C(b);return l},a.prototype.createParticleMaterial=function(){return new v.ShaderMaterial({transparent:!0,blending:v.AdditiveBlending,depthWrite:!1,uniforms:{pointTexture:{value:new v.TextureLoader().load("https://threejs.org/examples/textures/sprites/circle.png")}},vertexShader:`
718
+ attribute float size;
719
+ varying vec2 vUv;
720
+ void main() {
721
+ vUv = uv;
722
+ vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);
723
+ gl_PointSize = size * (1.0 / -mvPosition.z);
724
+ gl_Position = projectionMatrix * mvPosition;
725
+ }
726
+ `,fragmentShader:`
727
+ uniform sampler2D pointTexture;
728
+ void main() {
729
+ gl_FragColor = texture2D(pointTexture, gl_PointCoord);
730
+ gl_FragColor.a *= 0.15;
731
+ }
732
+ `})},a.prototype.createParticles=function(){for(var e=this._config.particleCount,n=new Float32Array(e*3),t=new v.BufferGeometry,o=this.createParticleMaterial(),s=new v.Points(t,o),l=new Float32Array(e),h=[],f=0;f<e;f++)n[f*3]=9999,n[f*3+1]=9999,n[f*3+2]=9999,l[f]=v.MathUtils.randFloat(3,9),h.push({velocity:new v.Vector3,life:3+Math.random()*2,age:0,active:!1,alpha:0,startPos:new v.Vector3});return t.setAttribute("position",new v.BufferAttribute(n,3)),t.setAttribute("size",new v.BufferAttribute(l,1)),s.frustumCulled=!1,this.five.scene.add(s),{particles:s,particleGeometry:t,particleMaterial:o,particleInfos:h,particlePositions:n}},a.prototype.projectPointsToScreen=function(e,n){for(var t=[],o=0,s=0;s<e.length;s++){var l=e[s];s>0&&(o+=l.distanceTo(e[s-1]));var h=l.clone().project(n),f=h.x<-1||h.x>1||h.y<-1||h.y>1||h.z<0||h.z>1;t.push({point:l.clone(),screenPos:new v.Vector2(h.x,h.y),distanceFromStart:o,isOffscreen:f})}return t},a.prototype.findNearestOffscreenPoint=function(e){for(var n=-1,t=0,o=-1,s=0;s<e.length;s++)if(!e[s].isOffscreen){o=s;break}if(o===-1)return null;for(var s=o-1;s>=0;s--)if(e[s].isOffscreen){n=s,t=e[s].distanceFromStart;break}return n===-1?{index:0,distance:0}:{index:n,distance:t}},a.prototype.updateAnimation=function(){var e=performance.now()/1e3,n=this._config,t=n.duration,o=n.particleCount,s=n.maxDistance,l=e%t/t;this.paths.forEach(function(h){if(h.enabled){h.lines.forEach(function(b){b.material.uniforms.time.value=e,b.material.uniforms.animationProgress.value=l});var f=null,g=1/0;if(h.lines.forEach(function(b){for(var x=b.geometry,m=x.attributes.instanceDistanceStart,O=x.attributes.instanceDistanceEnd,_=m.count,W=0;W<_;W++){var H=m.getX(W)/b.material.uniforms.totalLength.value,R=O.getX(W)/b.material.uniforms.totalLength.value;if(l>=H&&l<=R){var J=(l-H)/(R-H),se=new v.Vector3().fromBufferAttribute(x.attributes.instanceStart,W),ue=new v.Vector3().fromBufferAttribute(x.attributes.instanceEnd,W),$=new v.Vector3().lerpVectors(se,ue,J),Q=Math.abs(l-(H+R)/2);Q<g&&(g=Q,f=$)}}}),f)for(var y=0;y<o;y++){var w=h.particleInfos[y];!w.active&&Math.random()<.05&&(w.active=!0,w.age=0,w.life=3+Math.random()*2,w.velocity.set((Math.random()-.5)*1e-4,(Math.random()-.5)*1e-4,(Math.random()-.5)*1e-4),h.particlePositions[y*3]=f.x,h.particlePositions[y*3+1]=f.y,h.particlePositions[y*3+2]=f.z,w.startPos.copy(f),w.alpha=0)}for(var y=0;y<o;y++){var w=h.particleInfos[y];if(w.active){w.age+=.016;var P=h.particlePositions[y*3]-w.startPos.x,A=h.particlePositions[y*3+1]-w.startPos.y,S=h.particlePositions[y*3+2]-w.startPos.z,C=Math.sqrt(P*P+A*A+S*S);(C>=s||w.age>=w.life)&&(w.active=!1,h.particlePositions[y*3]=9999,h.particlePositions[y*3+1]=9999,h.particlePositions[y*3+2]=9999,w.alpha=0),w.velocity.x+=(Math.random()-.5)*1e-4,w.velocity.z+=(Math.random()-.5)*1e-4,w.velocity.y+=1e-4,w.velocity.multiplyScalar(.99),h.particlePositions[y*3]+=w.velocity.x,h.particlePositions[y*3+1]+=w.velocity.y,h.particlePositions[y*3+2]+=w.velocity.z;var T=w.age/w.life;T<.2?w.alpha=T/.2:T>.8?w.alpha=(1-T)/.2:w.alpha=1}}h.particleGeometry.attributes.position.needsUpdate=!0,h.particleMaterial.opacity=.6}}),this.five.needsRender=!0},a.prototype.startAnimation=function(){var e=this;this.animationId===null&&this.paths.size!==0&&(this.animationId=Ie.AnimationFrameLoop.shared.add(function(){e.updateAnimation()}),this.updateState({playing:!0},!1),this.hooks.emit("animationStart"))},a.prototype.stopAnimation=function(){this.animationId!==null&&(this.animationId(),this.animationId=null),this.updateState({playing:!1},!1),this.hooks.emit("animationStop")},a.prototype._enable=function(e){this.paths.size>0&&this.startAnimation()},a.prototype._disable=function(e){this.stopAnimation()},a.prototype.enable=function(e){var n;if(!this.state.enabled){var t=(n=e==null?void 0:e.userAction)!==null&&n!==void 0?n:!0;this.updateState({enabled:!0},t),this._enable({userAction:t})}},a.prototype.disable=function(e){var n;if(this.state.enabled!==!1){var t=(n=e==null?void 0:e.userAction)!==null&&n!==void 0?n:!0;this.updateState({enabled:!1},t),this._disable({userAction:t})}},a.prototype.show=function(e){var n,t=(n=e==null?void 0:e.userAction)!==null&&n!==void 0?n:!0;this.paths.forEach(function(o){o.lines.forEach(function(s){return s.visible=!0}),o.particles.visible=!0}),this.updateState({visible:!0},t)},a.prototype.hide=function(e){var n,t=(n=e==null?void 0:e.userAction)!==null&&n!==void 0?n:!0;this.paths.forEach(function(o){o.lines.forEach(function(s){return s.visible=!1}),o.particles.visible=!1}),this.updateState({visible:!1},t)},a.prototype.setState=function(e,n){var t;t=n==null?void 0:n.userAction,e.enabled!==void 0&&e.enabled!==this.state.enabled&&(e.enabled?this.enable(n):this.disable(n)),e.visible!==void 0&&e.visible!==this.state.visible&&(e.visible?this.show(n):this.hide(n)),e.playing!==void 0&&e.playing!==this.state.playing&&(e.playing?this.startAnimation():this.stopAnimation())},a.prototype.play=function(){this.startAnimation()},a.prototype.pause=function(){this.stopAnimation()},a.prototype.updateScreenProjection=function(e){var n=this,t=function(s){var l=n.projectPointsToScreen(s.config.points,n.five.camera),h=n.findNearestOffscreenPoint(l);h&&(s.startOffset=h.distance,s.lines.forEach(function(f){f.material.uniforms.startOffset.value=s.startOffset}))};if(e){var o=this.paths.get(e);o&&t(o)}else this.paths.forEach(function(s){s.enabled&&t(s)})},a.prototype.disposePathResources=function(e){var n=this;e.lines.forEach(function(t){n.five.scene.remove(t),t.geometry.dispose(),t.material.dispose()}),this.five.scene.remove(e.particles),e.particleGeometry.dispose(),e.particleMaterial.dispose()},a.prototype.dispose=function(){this.stopAnimation(),this.clearAllPaths(),this.hooks.emit("dispose")},a})(At.BasePlugin.Controller),Wn=function(c,a){return new Yn(c,a)};exports.BackgroundPlugin=Bn;exports.CSS3DRenderer=Wt;exports.DynamicPathLinePlugin=Wn;exports.ItemMaskPlugin=Nn;exports.OrbitControls=Fe;exports.OrientationPlugin=Dn;exports.PanoAnimePlugin=Hn;exports.RoundedBoxGeometry=Xt;exports.TrajectoryPlugin=Rn;