@realsee/five 6.8.9 → 6.9.0-alpha.1

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 (281) hide show
  1. package/ai_guides/3dgs-current-branch-changes.md +237 -0
  2. package/docs/assets/hierarchy.js +1 -1
  3. package/docs/assets/highlight.css +18 -18
  4. package/docs/assets/navigation.js +1 -1
  5. package/docs/assets/search.js +1 -1
  6. package/docs/classes/five.AdaptiveLuminancePass.html +1 -1
  7. package/docs/classes/five.BoundingMesh.html +1 -1
  8. package/docs/classes/five.Camera.html +1 -1
  9. package/docs/classes/five.EyeDomeLightingPass.html +1 -1
  10. package/docs/classes/five.Five.html +4 -4
  11. package/docs/classes/five.FivePass.html +1 -1
  12. package/docs/classes/five.FlowingFireworks3DPass.html +30 -0
  13. package/docs/classes/five.FlowingLight2DPass.html +1 -1
  14. package/docs/classes/five.FlowingLight3DPass.html +1 -1
  15. package/docs/classes/five.GaussianBlurPass.html +1 -1
  16. package/docs/classes/five.InternalWebGLRenderer.html +1 -1
  17. package/docs/classes/five.Model.html +2 -2
  18. package/docs/classes/five.ModelScene.html +1 -1
  19. package/docs/classes/five.NetworkSubscribe.html +2 -2
  20. package/docs/classes/five.PBMContainer.html +1 -1
  21. package/docs/classes/five.PBMCustomShader.html +2 -2
  22. package/docs/classes/five.PBMGSObject.html +10 -13
  23. package/docs/classes/five.PBMGroup.html +1 -1
  24. package/docs/classes/five.PBMMesh.html +1 -1
  25. package/docs/classes/five.PBMMeshMaterial.html +1 -1
  26. package/docs/classes/five.PBMPanoFilter.html +2 -2
  27. package/docs/classes/five.PBMPointCloud.html +1 -1
  28. package/docs/classes/five.PBMPointCloudMaterial.html +1 -1
  29. package/docs/classes/five.PBMSkinnedMesh.html +1 -1
  30. package/docs/classes/five.PBMUpdateable.html +2 -2
  31. package/docs/classes/five.PanoCircleMesh.html +1 -1
  32. package/docs/classes/five.PanoCircleMeshCustom.html +1 -1
  33. package/docs/classes/five.PanoCircleMeshSolid.html +1 -1
  34. package/docs/classes/five.Parameter.html +1 -1
  35. package/docs/classes/five.Scene.html +1 -1
  36. package/docs/classes/five.Subscribe.html +2 -2
  37. package/docs/classes/five.Tile3D.html +1 -1
  38. package/docs/classes/five.TileNode.html +1 -1
  39. package/docs/classes/five.TrajectoryNode.html +1 -1
  40. package/docs/classes/five.WorkResolvedObserver.html +2 -2
  41. package/docs/classes/gltf-loader.DDSLoader.html +1 -1
  42. package/docs/classes/gltf-loader.DRACOLoader.html +1 -1
  43. package/docs/classes/gltf-loader.GLTFLoader.html +2 -2
  44. package/docs/classes/gltf-loader.GLTFObject.html +1 -1
  45. package/docs/classes/gltf-loader.THREEGLTFLoader.html +1 -1
  46. package/docs/classes/line.Line.html +1 -1
  47. package/docs/classes/line.LineGeometry.html +1 -1
  48. package/docs/classes/line.LineMaterial.html +1 -1
  49. package/docs/classes/line.LineSegmentsGeometry.html +1 -1
  50. package/docs/classes/line.THREE_Line2.html +1 -1
  51. package/docs/classes/line.THREE_LineSegments2.html +1 -1
  52. package/docs/classes/plugins.BasePlugin.Controller.html +1 -1
  53. package/docs/classes/plugins.CSS2DObject.html +1 -1
  54. package/docs/classes/plugins.CSS3DObject.html +1 -1
  55. package/docs/classes/plugins.CSS3DSprite.html +1 -1
  56. package/docs/classes/plugins.InstancedPrefabBufferGeometry.html +1 -1
  57. package/docs/classes/plugins.Object3DHelperController.html +1 -1
  58. package/docs/classes/plugins.PointBufferGeometry.html +1 -1
  59. package/docs/classes/plugins.PrefabBufferGeometry.html +1 -1
  60. package/docs/classes/plugins.RoundedBoxGeometry.html +1 -1
  61. package/docs/classes/react.Store.html +1 -1
  62. package/docs/classes/sticker.Sticker.html +2 -2
  63. package/docs/classes/vfx.Airflow.html +1 -1
  64. package/docs/classes/vfx.Flame.html +1 -1
  65. package/docs/classes/vfx.Particle.html +1 -1
  66. package/docs/classes/vfx.ParticleGPU.html +1 -1
  67. package/docs/classes/vfx.SpotLight.html +1 -1
  68. package/docs/documents/3dgs-current-branch-changes.html +205 -0
  69. package/docs/documents/api.html +6 -6
  70. package/docs/documents/features_3dtile.html +4 -4
  71. package/docs/documents/features_camera-animation.html +10 -10
  72. package/docs/documents/features_clipper.html +3 -3
  73. package/docs/documents/features_coordinate-system.html +3 -3
  74. package/docs/documents/features_event.html +10 -10
  75. package/docs/documents/features_five.html +4 -4
  76. package/docs/documents/features_flowing-fireworks-3d-pass.html +7 -7
  77. package/docs/documents/features_flowing-light-2d-pass.html +11 -11
  78. package/docs/documents/features_flowing-light-3d-pass.html +11 -11
  79. package/docs/documents/features_gaussian-blur-pass.html +6 -6
  80. package/docs/documents/features_gesture.html +6 -6
  81. package/docs/documents/features_get-screen-pixels.html +4 -4
  82. package/docs/documents/features_image-options.html +5 -5
  83. package/docs/documents/features_load-external-model.html +8 -8
  84. package/docs/documents/features_load-progress.html +7 -7
  85. package/docs/documents/features_material.html +3 -3
  86. package/docs/documents/features_mode.html +11 -11
  87. package/docs/documents/features_model.html +4 -4
  88. package/docs/documents/features_move-pano-effect.html +5 -5
  89. package/docs/documents/features_multi-work.html +5 -5
  90. package/docs/documents/features_pano-filter.html +3 -3
  91. package/docs/documents/features_pano-tile.html +4 -4
  92. package/docs/documents/features_pano-uv.html +4 -4
  93. package/docs/documents/features_parameter.html +7 -7
  94. package/docs/documents/features_plugin.html +4 -4
  95. package/docs/documents/features_postprocessing.html +5 -5
  96. package/docs/documents/features_raycast.html +4 -4
  97. package/docs/documents/features_request-proxy.html +4 -4
  98. package/docs/documents/features_screen-project.html +3 -3
  99. package/docs/documents/features_state.html +4 -4
  100. package/docs/documents/features_view-layer.html +4 -4
  101. package/docs/documents/features_work.html +5 -5
  102. package/docs/documents/quick-start.html +2 -2
  103. package/docs/documents/release_notes_6.6.html +4 -4
  104. package/docs/documents/release_notes_6.7.html +14 -14
  105. package/docs/documents/release_notes_6.8.html +4 -4
  106. package/docs/functions/five.loadSpz.html +1 -1
  107. package/docs/functions/react.useFiveAction.html +6 -6
  108. package/docs/functions/react.useFiveCurrentObserver.html +1 -1
  109. package/docs/functions/react.useFiveCurrentState.html +1 -1
  110. package/docs/functions/react.useFiveEventCallback.html +1 -1
  111. package/docs/functions/react.useFiveFloor.html +1 -1
  112. package/docs/functions/react.useFiveHelper.html +1 -1
  113. package/docs/functions/react.useFiveModelIntersectRaycaster.html +2 -2
  114. package/docs/functions/react.useFiveProject2d.html +2 -2
  115. package/docs/functions/react.useFiveSceneEffect.html +1 -1
  116. package/docs/functions/react.useFiveWork.html +2 -2
  117. package/docs/functions/vue.useFiveAction.html +8 -8
  118. package/docs/functions/vue.useFiveCurrentObserver.html +1 -1
  119. package/docs/functions/vue.useFiveCurrentState.html +1 -1
  120. package/docs/functions/vue.useFiveEventCallback.html +1 -1
  121. package/docs/functions/vue.useFiveFloor.html +1 -1
  122. package/docs/functions/vue.useFiveHelper.html +1 -1
  123. package/docs/functions/vue.useFiveModelIntersectRaycaster.html +2 -2
  124. package/docs/functions/vue.useFiveProject2d.html +2 -2
  125. package/docs/functions/vue.useFiveState.html +1 -1
  126. package/docs/functions/vue.useFiveWorks.html +2 -2
  127. package/docs/hierarchy.html +1 -1
  128. package/docs/interfaces/five.AddableObject.html +1 -1
  129. package/docs/interfaces/five.AjaxOptions.html +1 -1
  130. package/docs/interfaces/five.BaseEvent.html +1 -1
  131. package/docs/interfaces/five.BaseExtendableEvent.html +1 -1
  132. package/docs/interfaces/five.EventCallback.html +1 -1
  133. package/docs/interfaces/five.FiveInitArgs.html +2 -2
  134. package/docs/interfaces/five.GestureEvent.html +1 -1
  135. package/docs/interfaces/five.ImageOptions.html +1 -1
  136. package/docs/interfaces/five.IntersectEvent.html +1 -1
  137. package/docs/interfaces/five.IntersectMesh.html +1 -1
  138. package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
  139. package/docs/interfaces/five.Intersection.html +1 -1
  140. package/docs/interfaces/five.LooseWorkWithExtrinsics.html +1 -1
  141. package/docs/interfaces/five.ModeChangeEvent.html +1 -1
  142. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
  143. package/docs/interfaces/five.ModelEvent.html +1 -1
  144. package/docs/interfaces/five.ModelSceneEvent.html +1 -1
  145. package/docs/interfaces/five.ModelTileEvent.html +1 -1
  146. package/docs/interfaces/five.MovePanoOptions.html +1 -1
  147. package/docs/interfaces/five.NetworkAbortError.html +1 -1
  148. package/docs/interfaces/five.NetworkFirbiddenError.html +1 -1
  149. package/docs/interfaces/five.NetworkOptions.html +1 -1
  150. package/docs/interfaces/five.NetworkProxyError.html +1 -1
  151. package/docs/interfaces/five.NetworkResourceEvent.html +1 -1
  152. package/docs/interfaces/five.NetworkResponseError.html +1 -1
  153. package/docs/interfaces/five.NetworkTimeoutError.html +1 -1
  154. package/docs/interfaces/five.ObjectEvent.html +1 -1
  155. package/docs/interfaces/five.PBMMaterial.html +1 -1
  156. package/docs/interfaces/five.PBMMeshMaterialParameters.html +1 -1
  157. package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +1 -1
  158. package/docs/interfaces/five.PanoCircleMeshInterface.html +1 -1
  159. package/docs/interfaces/five.PanoEvent.html +1 -1
  160. package/docs/interfaces/five.PanoPrepareEvent.html +1 -1
  161. package/docs/interfaces/five.PanoTextureEvent.html +1 -1
  162. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +1 -1
  163. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
  164. package/docs/interfaces/five.ParameterMaterialValue.html +1 -1
  165. package/docs/interfaces/five.ParameterTilesetValue.html +1 -1
  166. package/docs/interfaces/five.ParameterValue.html +1 -1
  167. package/docs/interfaces/five.Pose.html +1 -1
  168. package/docs/interfaces/five.RenderEvent.html +1 -1
  169. package/docs/interfaces/five.ResolvedParameterValue.html +1 -1
  170. package/docs/interfaces/five.SplatData.html +3 -6
  171. package/docs/interfaces/five.State.html +1 -1
  172. package/docs/interfaces/five.StateEvent.html +1 -1
  173. package/docs/interfaces/five.TextureOptions.html +1 -1
  174. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +1 -1
  175. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +1 -1
  176. package/docs/interfaces/five.ViewLayer.html +1 -1
  177. package/docs/interfaces/five.WorkCubeImage.html +1 -1
  178. package/docs/interfaces/five.WorkImage.html +1 -1
  179. package/docs/interfaces/five.WorkObserver.html +2 -2
  180. package/docs/interfaces/five.WorkObserverProto.html +1 -1
  181. package/docs/interfaces/five.WorkTile.html +1 -1
  182. package/docs/interfaces/five.WorksEvent.html +1 -1
  183. package/docs/interfaces/five.XRControllerEvent.html +1 -1
  184. package/docs/interfaces/five.XRGestureEvent.html +1 -1
  185. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +1 -1
  186. package/docs/interfaces/five.XRSessionEvent.html +1 -1
  187. package/docs/interfaces/plugins.BackgroundPluginController.html +1 -1
  188. package/docs/interfaces/plugins.BackgroundPluginType.EventMap.html +1 -1
  189. package/docs/interfaces/plugins.BasePlugin.State.html +1 -1
  190. package/docs/interfaces/plugins.CSS2DPluginController.html +1 -1
  191. package/docs/interfaces/plugins.CSS2DPluginType.EventMap.html +1 -1
  192. package/docs/interfaces/plugins.CSS2DPluginType.State.html +1 -1
  193. package/docs/interfaces/plugins.CSS3DPluginController.html +1 -1
  194. package/docs/interfaces/plugins.CSS3DPluginType.EventMap.html +1 -1
  195. package/docs/interfaces/plugins.CSS3DPluginType.State.html +1 -1
  196. package/docs/interfaces/plugins.DynamicPathLinePluginController.html +1 -1
  197. package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +1 -1
  198. package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +1 -1
  199. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationController.html +1 -1
  200. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.EventMap.html +1 -1
  201. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.State.html +1 -1
  202. package/docs/interfaces/plugins.ItemMaskController.html +1 -1
  203. package/docs/interfaces/plugins.ItemMaskPluginType.EventMap.html +1 -1
  204. package/docs/interfaces/plugins.ItemMaskPluginType.State.html +1 -1
  205. package/docs/interfaces/plugins.Object3DHelperPluginType.BaseController.html +1 -1
  206. package/docs/interfaces/plugins.Object3DHelperPluginType.BaseHelper.html +1 -1
  207. package/docs/interfaces/plugins.Object3DHelperPluginType.BoundingBoxController.html +1 -1
  208. package/docs/interfaces/plugins.Object3DHelperPluginType.MoveController.html +1 -1
  209. package/docs/interfaces/plugins.Object3DHelperPluginType.MoveHelperAbstract.html +1 -1
  210. package/docs/interfaces/plugins.Object3DHelperPluginType.RotateController.html +1 -1
  211. package/docs/interfaces/plugins.Object3DHelperPluginType.RotateHelperAbstract.html +1 -1
  212. package/docs/interfaces/plugins.OrientationPluginController.html +1 -1
  213. package/docs/interfaces/plugins.OrientationPluginType.EventMap.html +1 -1
  214. package/docs/interfaces/plugins.OrientationPluginType.State.html +1 -1
  215. package/docs/interfaces/plugins.PanoAnimeController.html +1 -1
  216. package/docs/interfaces/plugins.PanoAnimePluginType.EventMap.html +1 -1
  217. package/docs/interfaces/plugins.PanoAnimePluginType.State.html +1 -1
  218. package/docs/interfaces/plugins.PluginTemplateType.EventMap.html +1 -1
  219. package/docs/interfaces/plugins.PluginTemplateType.State.html +1 -1
  220. package/docs/interfaces/plugins.TrajectoryController.html +1 -1
  221. package/docs/interfaces/react.FiveInjectionTypes.html +2 -2
  222. package/docs/interfaces/react.UseFivePluginOptions.html +1 -1
  223. package/docs/interfaces/react.UseFivePluginOptionsWithCreate.html +1 -1
  224. package/docs/modules/five.html +1 -1
  225. package/docs/modules.html +1 -1
  226. package/docs/types/five.FlowingFireworks3DPassLine.html +16 -0
  227. package/docs/types/five.ParseOptions.html +1 -1
  228. package/docs/types/plugins.BasePlugin.EventMap.html +1 -1
  229. package/docs/variables/react.FiveCanvas.html +1 -1
  230. package/docs/variables/react.useFiveScene.html +1 -1
  231. package/docs/variables/vue.FiveCanvas.html +1 -1
  232. package/docs/variables/vue.FiveProvider.html +1 -1
  233. package/five/gaussian-splatting/layerRegistry.d.ts +10 -0
  234. package/five/gaussian-splatting/orderTexture.d.ts +18 -0
  235. package/five/gaussian-splatting/reorderPass.d.ts +34 -0
  236. package/five/gaussian-splatting/shStore.d.ts +16 -0
  237. package/five/gaussian-splatting/splatAssembler.d.ts +60 -0
  238. package/five/gaussian-splatting/tileTexture.d.ts +10 -0
  239. package/five/gaussian-splatting/transformStore.d.ts +20 -0
  240. package/five/index.js +305 -169
  241. package/five/index.mjs +6684 -6508
  242. package/five/model/index.d.ts +0 -1
  243. package/five/model/loaders/spz.d.ts +19 -3
  244. package/five/model/objects/pbmGaussianSplattingObject.d.ts +10 -14
  245. package/five/model/objects/pbmGaussianSplattingRenderMesh.d.ts +48 -42
  246. package/five/renderer/index.d.ts +1 -1
  247. package/five/renderer/postprocessing/index.d.ts +1 -1
  248. package/five/renderer/postprocessing/passes/flowing-fireworks-3d-pass.d.ts +4 -5
  249. package/gltf-loader/index.js +3 -3
  250. package/gltf-loader/index.mjs +3 -3
  251. package/line/index.js +3 -3
  252. package/line/index.mjs +3 -3
  253. package/package.json +2 -2
  254. package/pbmGaussianSplattingObject-C6i7CUTu.cjs +255 -0
  255. package/pbmGaussianSplattingObject-CaE6q4r-.js +324 -0
  256. package/plugins/index.js +2 -2
  257. package/plugins/index.mjs +2 -2
  258. package/react/index.js +2 -2
  259. package/react/index.mjs +2 -2
  260. package/shader-lib/index.js +2 -2
  261. package/shader-lib/index.mjs +2 -2
  262. package/sticker/index.js +3 -3
  263. package/sticker/index.mjs +3 -3
  264. package/umd/five-gltf-loader.js +3 -3
  265. package/umd/five-line.js +3 -3
  266. package/umd/five-plugins.js +2 -2
  267. package/umd/five-react.js +2 -2
  268. package/umd/five-shader-lib.js +2 -2
  269. package/umd/five-sticker.js +3 -3
  270. package/umd/five-vfx.js +2 -2
  271. package/umd/five-vue.js +2 -2
  272. package/umd/five.js +218 -82
  273. package/vfx/index.js +2 -2
  274. package/vfx/index.mjs +2 -2
  275. package/vue/index.js +2 -2
  276. package/vue/index.mjs +2 -2
  277. package/work-downloader/index.js +2 -2
  278. package/work-downloader/index.mjs +2 -2
  279. package/docs/functions/five.loadSplat.html +0 -1
  280. package/five/gaussian-splatting/util/renderData.d.ts +0 -68
  281. package/five/model/loaders/splat.d.ts +0 -8
@@ -12,7 +12,7 @@
12
12
  <p>Five 实例提供了以下方法来管理事件监听:</p>
13
13
  <h3 id="on" class="tsd-anchor-link">on<a href="#on" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
14
14
  <p>注册持久化事件监听器。</p>
15
- <pre><code class="typescript"><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">on</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-6">name</span><span class="hl-1">: </span><span class="hl-6">string</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">callback</span><span class="hl-1">: (...</span><span class="hl-6">args</span><span class="hl-1">: </span><span class="hl-7">any</span><span class="hl-1">[]) </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-3">void</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">once</span><span class="hl-1">?: </span><span class="hl-6">boolean</span><br/><span class="hl-1">): () </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-3">void</span>
15
+ <pre><code class="typescript"><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">on</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-5">name</span><span class="hl-1">: </span><span class="hl-5">string</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">callback</span><span class="hl-1">: (...</span><span class="hl-5">args</span><span class="hl-1">: </span><span class="hl-9">any</span><span class="hl-1">[]) </span><span class="hl-8">=&gt;</span><span class="hl-1"> </span><span class="hl-8">void</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">once</span><span class="hl-1">?: </span><span class="hl-5">boolean</span><br/><span class="hl-1">): () </span><span class="hl-8">=&gt;</span><span class="hl-1"> </span><span class="hl-8">void</span>
16
16
  </code><button type="button">Copy</button></pre>
17
17
 
18
18
  <ul>
@@ -23,12 +23,12 @@
23
23
  </ul>
24
24
  <h3 id="once" class="tsd-anchor-link">once<a href="#once" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
25
25
  <p>注册一次性事件监听器(触发一次后自动销毁)。</p>
26
- <pre><code class="typescript"><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">once</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-6">name</span><span class="hl-1">: </span><span class="hl-6">string</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">callback</span><span class="hl-1">: (...</span><span class="hl-6">args</span><span class="hl-1">: </span><span class="hl-7">any</span><span class="hl-1">[]) </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-3">void</span><br/><span class="hl-1">): () </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-3">void</span>
26
+ <pre><code class="typescript"><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">once</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-5">name</span><span class="hl-1">: </span><span class="hl-5">string</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">callback</span><span class="hl-1">: (...</span><span class="hl-5">args</span><span class="hl-1">: </span><span class="hl-9">any</span><span class="hl-1">[]) </span><span class="hl-8">=&gt;</span><span class="hl-1"> </span><span class="hl-8">void</span><br/><span class="hl-1">): () </span><span class="hl-8">=&gt;</span><span class="hl-1"> </span><span class="hl-8">void</span>
27
27
  </code><button type="button">Copy</button></pre>
28
28
 
29
29
  <h3 id="off" class="tsd-anchor-link">off<a href="#off" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
30
30
  <p>取消事件监听。</p>
31
- <pre><code class="typescript"><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">off</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-6">name</span><span class="hl-1">?: </span><span class="hl-6">string</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">callback</span><span class="hl-1">?: (...</span><span class="hl-6">args</span><span class="hl-1">: </span><span class="hl-7">any</span><span class="hl-1">[]) </span><span class="hl-3">=&gt;</span><span class="hl-1"> </span><span class="hl-3">void</span><br/><span class="hl-1">): </span><span class="hl-3">void</span>
31
+ <pre><code class="typescript"><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">off</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-5">name</span><span class="hl-1">?: </span><span class="hl-5">string</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">callback</span><span class="hl-1">?: (...</span><span class="hl-5">args</span><span class="hl-1">: </span><span class="hl-9">any</span><span class="hl-1">[]) </span><span class="hl-8">=&gt;</span><span class="hl-1"> </span><span class="hl-8">void</span><br/><span class="hl-1">): </span><span class="hl-8">void</span>
32
32
  </code><button type="button">Copy</button></pre>
33
33
 
34
34
  <ul>
@@ -42,12 +42,12 @@
42
42
  <p>Five 中所有事件回调的参数都是一个 Event 对象,分为两种基础类型:</p>
43
43
  <h3 id="baseevent" class="tsd-anchor-link">BaseEvent<a href="#baseevent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
44
44
  <p>所有事件的基础接口,包含以下属性和方法:</p>
45
- <pre><code class="typescript"><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">BaseEvent</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** 事件类型名称 */</span><br/><span class="hl-1"> </span><span class="hl-6">type</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 事件触发时的时间戳 */</span><br/><span class="hl-1"> </span><span class="hl-6">timeStamp</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 阻止事件的默认行为 */</span><br/><span class="hl-1"> </span><span class="hl-5">preventDefault</span><span class="hl-1">(): </span><span class="hl-7">void</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 是否已调用过 preventDefault */</span><br/><span class="hl-1"> </span><span class="hl-3">readonly</span><span class="hl-1"> </span><span class="hl-6">defaultPrevented</span><span class="hl-1">: </span><span class="hl-7">boolean</span><span class="hl-1">;</span><br/><span class="hl-1">}</span>
45
+ <pre><code class="typescript"><span class="hl-8">interface</span><span class="hl-1"> </span><span class="hl-9">BaseEvent</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-7">/** 事件类型名称 */</span><br/><span class="hl-1"> </span><span class="hl-5">type</span><span class="hl-1">: </span><span class="hl-9">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-7">/** 事件触发时的时间戳 */</span><br/><span class="hl-1"> </span><span class="hl-5">timeStamp</span><span class="hl-1">: </span><span class="hl-9">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-7">/** 阻止事件的默认行为 */</span><br/><span class="hl-1"> </span><span class="hl-4">preventDefault</span><span class="hl-1">(): </span><span class="hl-9">void</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-7">/** 是否已调用过 preventDefault */</span><br/><span class="hl-1"> </span><span class="hl-8">readonly</span><span class="hl-1"> </span><span class="hl-5">defaultPrevented</span><span class="hl-1">: </span><span class="hl-9">boolean</span><span class="hl-1">;</span><br/><span class="hl-1">}</span>
46
46
  </code><button type="button">Copy</button></pre>
47
47
 
48
48
  <h3 id="baseextendableevent" class="tsd-anchor-link">BaseExtendableEvent<a href="#baseextendableevent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
49
49
  <p>继承自 <code>BaseEvent</code>,额外提供 <code>waitUntil</code> 方法,用于在事件处理中插入异步等待逻辑:</p>
50
- <pre><code class="typescript"><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">BaseExtendableEvent</span><span class="hl-1"> </span><span class="hl-3">extends</span><span class="hl-1"> </span><span class="hl-7">BaseEvent</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">waitUntil</span><span class="hl-1">(</span><span class="hl-6">f</span><span class="hl-1">: </span><span class="hl-7">Promise</span><span class="hl-1">&lt;</span><span class="hl-7">any</span><span class="hl-1">&gt;): </span><span class="hl-7">void</span><span class="hl-1">;</span><br/><span class="hl-1">}</span>
50
+ <pre><code class="typescript"><span class="hl-8">interface</span><span class="hl-1"> </span><span class="hl-9">BaseExtendableEvent</span><span class="hl-1"> </span><span class="hl-8">extends</span><span class="hl-1"> </span><span class="hl-9">BaseEvent</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">waitUntil</span><span class="hl-1">(</span><span class="hl-5">f</span><span class="hl-1">: </span><span class="hl-9">Promise</span><span class="hl-1">&lt;</span><span class="hl-9">any</span><span class="hl-1">&gt;): </span><span class="hl-9">void</span><span class="hl-1">;</span><br/><span class="hl-1">}</span>
51
51
  </code><button type="button">Copy</button></pre>
52
52
 
53
53
  <p>目前 <code>pano.prepare</code> 事件使用 <code>BaseExtendableEvent</code>(对应 <code>PanoPrepareEvent</code>),其余事件均基于 <code>BaseEvent</code>。</p>
@@ -90,13 +90,13 @@
90
90
  <li><code>gesture.tap</code>:阻止默认的点位跳转或相机弹跳动画。</li>
91
91
  <li><code>intersect.update</code>:阻止默认的交互高亮行为。</li>
92
92
  </ul>
93
- <pre><code class="typescript"><span class="hl-8">// 示例:阻止点击时的默认点位跳转</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">on</span><span class="hl-1">(</span><span class="hl-9">&quot;gesture.tap&quot;</span><span class="hl-1">, (</span><span class="hl-6">event</span><span class="hl-1">) </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-10">if</span><span class="hl-1"> (</span><span class="hl-5">shouldBlockNavigation</span><span class="hl-1">()) {</span><br/><span class="hl-1"> </span><span class="hl-6">event</span><span class="hl-1">.</span><span class="hl-5">preventDefault</span><span class="hl-1">();</span><br/><span class="hl-1"> </span><span class="hl-8">// 执行自定义逻辑</span><br/><span class="hl-1"> </span><span class="hl-5">showCustomMenu</span><span class="hl-1">(</span><span class="hl-6">event</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-8">// 示例:阻止拖拽时的默认相机旋转</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">on</span><span class="hl-1">(</span><span class="hl-9">&quot;gesture.pan&quot;</span><span class="hl-1">, (</span><span class="hl-6">event</span><span class="hl-1">) </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">event</span><span class="hl-1">.</span><span class="hl-5">preventDefault</span><span class="hl-1">();</span><br/><span class="hl-1"> </span><span class="hl-8">// 用拖拽手势实现自定义交互(如绘制标注)</span><br/><span class="hl-1"> </span><span class="hl-5">drawAnnotation</span><span class="hl-1">(</span><span class="hl-6">event</span><span class="hl-1">);</span><br/><span class="hl-1">});</span>
93
+ <pre><code class="typescript"><span class="hl-7">// 示例:阻止点击时的默认点位跳转</span><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">on</span><span class="hl-1">(</span><span class="hl-10">&quot;gesture.tap&quot;</span><span class="hl-1">, (</span><span class="hl-5">event</span><span class="hl-1">) </span><span class="hl-8">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-11">if</span><span class="hl-1"> (</span><span class="hl-4">shouldBlockNavigation</span><span class="hl-1">()) {</span><br/><span class="hl-1"> </span><span class="hl-5">event</span><span class="hl-1">.</span><span class="hl-4">preventDefault</span><span class="hl-1">();</span><br/><span class="hl-1"> </span><span class="hl-7">// 执行自定义逻辑</span><br/><span class="hl-1"> </span><span class="hl-4">showCustomMenu</span><span class="hl-1">(</span><span class="hl-5">event</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-7">// 示例:阻止拖拽时的默认相机旋转</span><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">on</span><span class="hl-1">(</span><span class="hl-10">&quot;gesture.pan&quot;</span><span class="hl-1">, (</span><span class="hl-5">event</span><span class="hl-1">) </span><span class="hl-8">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">event</span><span class="hl-1">.</span><span class="hl-4">preventDefault</span><span class="hl-1">();</span><br/><span class="hl-1"> </span><span class="hl-7">// 用拖拽手势实现自定义交互(如绘制标注)</span><br/><span class="hl-1"> </span><span class="hl-4">drawAnnotation</span><span class="hl-1">(</span><span class="hl-5">event</span><span class="hl-1">);</span><br/><span class="hl-1">});</span>
94
94
  </code><button type="button">Copy</button></pre>
95
95
 
96
96
  <h3 id="waituntil" class="tsd-anchor-link">waitUntil<a href="#waituntil" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
97
97
  <p><code>waitUntil(promise)</code> 仅在 <code>ExtendableEvent</code> 上可用。调用后,Five 会等待传入的 Promise 完成后再继续后续流程。可多次调用,所有 Promise 会被并行等待。</p>
98
98
  <p>目前仅 <code>pano.prepare</code> 事件支持 <code>waitUntil</code>。</p>
99
- <pre><code class="typescript"><span class="hl-8">// 示例:在切换点位前预加载资源</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">on</span><span class="hl-1">(</span><span class="hl-9">&quot;pano.prepare&quot;</span><span class="hl-1">, (</span><span class="hl-6">event</span><span class="hl-1">) </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">// event.pano 目标点位</span><br/><span class="hl-1"> </span><span class="hl-8">// event.prevPano 切换前点位</span><br/><span class="hl-1"> </span><span class="hl-8">// event.prevMode 切换前模式</span><br/><span class="hl-1"> </span><span class="hl-8">// 等待自定义资源加载完成后再继续点位切换</span><br/><span class="hl-1"> </span><span class="hl-6">event</span><span class="hl-1">.</span><span class="hl-5">waitUntil</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-5">loadCustomResources</span><span class="hl-1">(</span><span class="hl-6">event</span><span class="hl-1">.</span><span class="hl-6">pano</span><span class="hl-1">)</span><br/><span class="hl-1"> );</span><br/><br/><span class="hl-1"> </span><span class="hl-8">// 可以多次调用,所有 Promise 会被并行等待</span><br/><span class="hl-1"> </span><span class="hl-6">event</span><span class="hl-1">.</span><span class="hl-5">waitUntil</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-5">preloadTextures</span><span class="hl-1">(</span><span class="hl-6">event</span><span class="hl-1">.</span><span class="hl-6">pano</span><span class="hl-1">)</span><br/><span class="hl-1"> );</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-8">// 示例:通过 waitUntil reject 来取消走点</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">on</span><span class="hl-1">(</span><span class="hl-9">&quot;pano.prepare&quot;</span><span class="hl-1">, (</span><span class="hl-6">event</span><span class="hl-1">) </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">event</span><span class="hl-1">.</span><span class="hl-5">waitUntil</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-5">showConfirmDialog</span><span class="hl-1">(</span><span class="hl-9">&quot;是否前往该点位?&quot;</span><span class="hl-1">).</span><span class="hl-5">then</span><span class="hl-1">((</span><span class="hl-6">confirmed</span><span class="hl-1">) </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-10">if</span><span class="hl-1"> (!</span><span class="hl-6">confirmed</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-10">throw</span><span class="hl-1"> </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">Error</span><span class="hl-1">(</span><span class="hl-9">&quot;用户取消走点&quot;</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> })</span><br/><span class="hl-1"> );</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-8">// 示例:修改 event.options 影响切换行为</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">on</span><span class="hl-1">(</span><span class="hl-9">&quot;pano.prepare&quot;</span><span class="hl-1">, (</span><span class="hl-6">event</span><span class="hl-1">) </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">// 修改切换动画效果为无动画</span><br/><span class="hl-1"> </span><span class="hl-6">event</span><span class="hl-1">.</span><span class="hl-6">options</span><span class="hl-1">.</span><span class="hl-6">effect</span><span class="hl-1"> = </span><span class="hl-9">&quot;instant&quot;</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">// 或修改切换后的相机朝向</span><br/><span class="hl-1"> </span><span class="hl-6">event</span><span class="hl-1">.</span><span class="hl-6">options</span><span class="hl-1">.</span><span class="hl-6">longitude</span><span class="hl-1"> = </span><span class="hl-6">Math</span><span class="hl-1">.</span><span class="hl-4">PI</span><span class="hl-1"> / </span><span class="hl-11">4</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-6">event</span><span class="hl-1">.</span><span class="hl-6">options</span><span class="hl-1">.</span><span class="hl-6">latitude</span><span class="hl-1"> = </span><span class="hl-11">0</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-6">event</span><span class="hl-1">.</span><span class="hl-6">options</span><span class="hl-1">.</span><span class="hl-6">fov</span><span class="hl-1"> = </span><span class="hl-11">90</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">// 注意:直接修改 event.options 属性即可,不需要重新赋值 event.options</span><br/><span class="hl-1">});</span>
99
+ <pre><code class="typescript"><span class="hl-7">// 示例:在切换点位前预加载资源</span><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">on</span><span class="hl-1">(</span><span class="hl-10">&quot;pano.prepare&quot;</span><span class="hl-1">, (</span><span class="hl-5">event</span><span class="hl-1">) </span><span class="hl-8">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-7">// event.pano 目标点位</span><br/><span class="hl-1"> </span><span class="hl-7">// event.prevPano 切换前点位</span><br/><span class="hl-1"> </span><span class="hl-7">// event.prevMode 切换前模式</span><br/><span class="hl-1"> </span><span class="hl-7">// 等待自定义资源加载完成后再继续点位切换</span><br/><span class="hl-1"> </span><span class="hl-5">event</span><span class="hl-1">.</span><span class="hl-4">waitUntil</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-4">loadCustomResources</span><span class="hl-1">(</span><span class="hl-5">event</span><span class="hl-1">.</span><span class="hl-5">pano</span><span class="hl-1">)</span><br/><span class="hl-1"> );</span><br/><br/><span class="hl-1"> </span><span class="hl-7">// 可以多次调用,所有 Promise 会被并行等待</span><br/><span class="hl-1"> </span><span class="hl-5">event</span><span class="hl-1">.</span><span class="hl-4">waitUntil</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-4">preloadTextures</span><span class="hl-1">(</span><span class="hl-5">event</span><span class="hl-1">.</span><span class="hl-5">pano</span><span class="hl-1">)</span><br/><span class="hl-1"> );</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-7">// 示例:通过 waitUntil reject 来取消走点</span><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">on</span><span class="hl-1">(</span><span class="hl-10">&quot;pano.prepare&quot;</span><span class="hl-1">, (</span><span class="hl-5">event</span><span class="hl-1">) </span><span class="hl-8">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">event</span><span class="hl-1">.</span><span class="hl-4">waitUntil</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-4">showConfirmDialog</span><span class="hl-1">(</span><span class="hl-10">&quot;是否前往该点位?&quot;</span><span class="hl-1">).</span><span class="hl-4">then</span><span class="hl-1">((</span><span class="hl-5">confirmed</span><span class="hl-1">) </span><span class="hl-8">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-11">if</span><span class="hl-1"> (!</span><span class="hl-5">confirmed</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-11">throw</span><span class="hl-1"> </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-4">Error</span><span class="hl-1">(</span><span class="hl-10">&quot;用户取消走点&quot;</span><span class="hl-1">);</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> })</span><br/><span class="hl-1"> );</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-7">// 示例:修改 event.options 影响切换行为</span><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">on</span><span class="hl-1">(</span><span class="hl-10">&quot;pano.prepare&quot;</span><span class="hl-1">, (</span><span class="hl-5">event</span><span class="hl-1">) </span><span class="hl-8">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-7">// 修改切换动画效果为无动画</span><br/><span class="hl-1"> </span><span class="hl-5">event</span><span class="hl-1">.</span><span class="hl-5">options</span><span class="hl-1">.</span><span class="hl-5">effect</span><span class="hl-1"> = </span><span class="hl-10">&quot;instant&quot;</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-7">// 或修改切换后的相机朝向</span><br/><span class="hl-1"> </span><span class="hl-5">event</span><span class="hl-1">.</span><span class="hl-5">options</span><span class="hl-1">.</span><span class="hl-5">longitude</span><span class="hl-1"> = </span><span class="hl-5">Math</span><span class="hl-1">.</span><span class="hl-6">PI</span><span class="hl-1"> / </span><span class="hl-3">4</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-5">event</span><span class="hl-1">.</span><span class="hl-5">options</span><span class="hl-1">.</span><span class="hl-5">latitude</span><span class="hl-1"> = </span><span class="hl-3">0</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-5">event</span><span class="hl-1">.</span><span class="hl-5">options</span><span class="hl-1">.</span><span class="hl-5">fov</span><span class="hl-1"> = </span><span class="hl-3">90</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-7">// 注意:直接修改 event.options 属性即可,不需要重新赋值 event.options</span><br/><span class="hl-1">});</span>
100
100
  </code><button type="button">Copy</button></pre>
101
101
 
102
102
  <blockquote>
@@ -148,12 +148,12 @@
148
148
  <h2 id="examples" class="tsd-anchor-link">Examples<a href="#examples" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
149
149
  <h3 id="快速上手-quick-example" class="tsd-anchor-link">快速上手 (Quick Example)<a href="#快速上手-quick-example" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
150
150
  <p>监听点击事件并打印日志。</p>
151
- <pre><code class="typescript"><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">Five</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;@realsee/five&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">five</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">Five</span><span class="hl-1">();</span><br/><br/><span class="hl-8">// 监听点击事件</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">on</span><span class="hl-1">(</span><span class="hl-9">&quot;gesture.tap&quot;</span><span class="hl-1">, (</span><span class="hl-6">event</span><span class="hl-1">) </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-5">log</span><span class="hl-1">(</span><span class="hl-9">&quot;User tapped at:&quot;</span><span class="hl-1">, </span><span class="hl-6">event</span><span class="hl-1">);</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-8">// 监听点位变更完成</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">on</span><span class="hl-1">(</span><span class="hl-9">&quot;pano.arrived&quot;</span><span class="hl-1">, (</span><span class="hl-6">event</span><span class="hl-1">) </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-5">log</span><span class="hl-1">(</span><span class="hl-9">&quot;Arrived at pano:&quot;</span><span class="hl-1">, </span><span class="hl-6">event</span><span class="hl-1">.</span><span class="hl-6">pano</span><span class="hl-1">);</span><br/><span class="hl-1">});</span>
151
+ <pre><code class="typescript"><span class="hl-11">import</span><span class="hl-1"> { </span><span class="hl-5">Five</span><span class="hl-1"> } </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-10">&quot;@realsee/five&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-8">const</span><span class="hl-1"> </span><span class="hl-6">five</span><span class="hl-1"> = </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-4">Five</span><span class="hl-1">();</span><br/><br/><span class="hl-7">// 监听点击事件</span><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">on</span><span class="hl-1">(</span><span class="hl-10">&quot;gesture.tap&quot;</span><span class="hl-1">, (</span><span class="hl-5">event</span><span class="hl-1">) </span><span class="hl-8">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">console</span><span class="hl-1">.</span><span class="hl-4">log</span><span class="hl-1">(</span><span class="hl-10">&quot;User tapped at:&quot;</span><span class="hl-1">, </span><span class="hl-5">event</span><span class="hl-1">);</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-7">// 监听点位变更完成</span><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">on</span><span class="hl-1">(</span><span class="hl-10">&quot;pano.arrived&quot;</span><span class="hl-1">, (</span><span class="hl-5">event</span><span class="hl-1">) </span><span class="hl-8">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">console</span><span class="hl-1">.</span><span class="hl-4">log</span><span class="hl-1">(</span><span class="hl-10">&quot;Arrived at pano:&quot;</span><span class="hl-1">, </span><span class="hl-5">event</span><span class="hl-1">.</span><span class="hl-5">pano</span><span class="hl-1">);</span><br/><span class="hl-1">});</span>
152
152
  </code><button type="button">Copy</button></pre>
153
153
 
154
154
  <h3 id="进阶用法-advanced-usage" class="tsd-anchor-link">进阶用法 (Advanced Usage)<a href="#进阶用法-advanced-usage" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
155
155
  <p>使用 <code>once</code> 监听一次性初始化事件,使用返回值取消监听。</p>
156
- <pre><code class="typescript"><span class="hl-8">// 1. 等待首次数据加载完成</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">once</span><span class="hl-1">(</span><span class="hl-9">&quot;works.ready&quot;</span><span class="hl-1">, () </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-5">log</span><span class="hl-1">(</span><span class="hl-9">&quot;Five is ready!&quot;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-8">// 执行初始化逻辑,如自动巡游</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-8">// 2. 动态绑定与解绑</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-5">onRender</span><span class="hl-1"> = () </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">// 每一帧执行的逻辑</span><br/><span class="hl-1"> </span><span class="hl-5">updateUI</span><span class="hl-1">();</span><br/><span class="hl-1">};</span><br/><br/><span class="hl-8">// 开始监听</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">on</span><span class="hl-1">(</span><span class="hl-9">&quot;render&quot;</span><span class="hl-1">, </span><span class="hl-6">onRender</span><span class="hl-1">);</span><br/><br/><span class="hl-8">// 在某个时刻取消监听(例如组件销毁时)</span><br/><span class="hl-8">// five.off(&quot;render&quot;, onRender);</span>
156
+ <pre><code class="typescript"><span class="hl-7">// 1. 等待首次数据加载完成</span><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">once</span><span class="hl-1">(</span><span class="hl-10">&quot;works.ready&quot;</span><span class="hl-1">, () </span><span class="hl-8">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">console</span><span class="hl-1">.</span><span class="hl-4">log</span><span class="hl-1">(</span><span class="hl-10">&quot;Five is ready!&quot;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-7">// 执行初始化逻辑,如自动巡游</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-7">// 2. 动态绑定与解绑</span><br/><span class="hl-8">const</span><span class="hl-1"> </span><span class="hl-4">onRender</span><span class="hl-1"> = () </span><span class="hl-8">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-7">// 每一帧执行的逻辑</span><br/><span class="hl-1"> </span><span class="hl-4">updateUI</span><span class="hl-1">();</span><br/><span class="hl-1">};</span><br/><br/><span class="hl-7">// 开始监听</span><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">on</span><span class="hl-1">(</span><span class="hl-10">&quot;render&quot;</span><span class="hl-1">, </span><span class="hl-5">onRender</span><span class="hl-1">);</span><br/><br/><span class="hl-7">// 在某个时刻取消监听(例如组件销毁时)</span><br/><span class="hl-7">// five.off(&quot;render&quot;, onRender);</span>
157
157
  </code><button type="button">Copy</button></pre>
158
158
 
159
159
  <h2 id="debugging" class="tsd-anchor-link">Debugging<a href="#debugging" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
@@ -166,7 +166,7 @@
166
166
  <li><a href="features_five.html">Five</a>: Five 核心类说明。</li>
167
167
  </ul>
168
168
  <hr>
169
- <pre><code class="yaml"><span class="hl-0">tags</span><span class="hl-1">: [</span><span class="hl-2">事件监听</span><span class="hl-1">, </span><span class="hl-2">点击</span><span class="hl-1">, </span><span class="hl-2">拖拽</span><span class="hl-1">, </span><span class="hl-2">加载完成</span><span class="hl-1">, </span><span class="hl-2">渲染回调</span><span class="hl-1">, </span><span class="hl-2">生命周期</span><span class="hl-1">, </span><span class="hl-2">回调</span><span class="hl-1">, </span><span class="hl-2">events</span><span class="hl-1">, </span><span class="hl-2">interaction</span><span class="hl-1">, </span><span class="hl-2">lifecycle</span><span class="hl-1">, </span><span class="hl-2">gesture</span><span class="hl-1">, </span><span class="hl-2">state</span><span class="hl-1">, </span><span class="hl-2">preventDefault</span><span class="hl-1">, </span><span class="hl-2">waitUntil</span><span class="hl-1">, </span><span class="hl-3">on</span><span class="hl-1">, </span><span class="hl-3">off</span><span class="hl-1">, </span><span class="hl-2">subscribe</span><span class="hl-1">]</span>
169
+ <pre><code class="yaml"><span class="hl-0">tags</span><span class="hl-1">: [</span><span class="hl-2">事件监听</span><span class="hl-1">, </span><span class="hl-2">点击</span><span class="hl-1">, </span><span class="hl-2">拖拽</span><span class="hl-1">, </span><span class="hl-2">加载完成</span><span class="hl-1">, </span><span class="hl-2">渲染回调</span><span class="hl-1">, </span><span class="hl-2">生命周期</span><span class="hl-1">, </span><span class="hl-2">回调</span><span class="hl-1">, </span><span class="hl-2">events</span><span class="hl-1">, </span><span class="hl-2">interaction</span><span class="hl-1">, </span><span class="hl-2">lifecycle</span><span class="hl-1">, </span><span class="hl-2">gesture</span><span class="hl-1">, </span><span class="hl-2">state</span><span class="hl-1">, </span><span class="hl-2">preventDefault</span><span class="hl-1">, </span><span class="hl-2">waitUntil</span><span class="hl-1">, </span><span class="hl-8">on</span><span class="hl-1">, </span><span class="hl-8">off</span><span class="hl-1">, </span><span class="hl-2">subscribe</span><span class="hl-1">]</span>
170
170
  </code><button type="button">Copy</button></pre>
171
171
 
172
172
  </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#events-事件系统"><span>Events (事件系统)</span></a><ul><li><a href="#schema"><span>Schema</span></a></li><li><ul><li><a href="#on"><span>on</span></a></li><li><a href="#once"><span>once</span></a></li><li><a href="#off"><span>off</span></a></li></ul></li><li><a href="#event-对象"><span>Event 对象</span></a></li><li><ul><li><a href="#baseevent"><span>Base<wbr/>Event</span></a></li><li><a href="#baseextendableevent"><span>Base<wbr/>Extendable<wbr/>Event</span></a></li><li><a href="#preventdefault"><span>prevent<wbr/>Default</span></a></li><li><a href="#waituntil"><span>wait<wbr/>Until</span></a></li></ul></li><li><a href="#concepts"><span>Concepts</span></a></li><li><ul><li><a href="#gesture-events-交互手势"><span>Gesture <wbr/>Events (交互手势)</span></a></li><li><a href="#pano-events-全景导航"><span>Pano <wbr/>Events (全景导航)</span></a></li><li><a href="#state-events-状态变更"><span>State <wbr/>Events (状态变更)</span></a></li><li><a href="#model-work-events-数据加载"><span>Model &amp; <wbr/>Work <wbr/>Events (数据加载)</span></a></li><li><a href="#render-events-渲染循环"><span>Render <wbr/>Events (渲染循环)</span></a></li></ul></li><li><a href="#examples"><span>Examples</span></a></li><li><ul><li><a href="#快速上手-quick-example"><span>快速上手 (<wbr/>Quick <wbr/>Example)</span></a></li><li><a href="#进阶用法-advanced-usage"><span>进阶用法 (<wbr/>Advanced <wbr/>Usage)</span></a></li></ul></li><li><a href="#debugging"><span>Debugging</span></a></li><li><a href="#related"><span>Related</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">如视 Five SDK</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -12,7 +12,7 @@
12
12
  <p><strong>Definition</strong>: <a href="../../five/application/fiveInitArgs.d.ts">FiveInitArgs</a></p>
13
13
  </blockquote>
14
14
  <p><code>new Five(args)</code> 的初始化参数对象。</p>
15
- <pre><code class="typescript"><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">FiveInitArgs</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** 外部传入的渲染器 (如果传入,部分渲染配置将失效) */</span><br/><span class="hl-1"> </span><span class="hl-6">renderer</span><span class="hl-1">?: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">WebGLRenderer</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/**</span><br/><span class="hl-8"> * 屏幕渲染区域 { left, bottom, width, height }</span><br/><span class="hl-8"> * 必须配合外部 renderer 使用</span><br/><span class="hl-8"> */</span><br/><span class="hl-1"> </span><span class="hl-6">viewport</span><span class="hl-1">?: </span><span class="hl-7">Viewport</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 背景颜色 (默认 0x181A1C) */</span><br/><span class="hl-1"> </span><span class="hl-6">backgroundColor</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1"> | </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Color</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 背景透明度 (0-1, 默认 1) */</span><br/><span class="hl-1"> </span><span class="hl-6">backgroundAlpha</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 是否开启抗锯齿 (默认 false) */</span><br/><span class="hl-1"> </span><span class="hl-6">antialias</span><span class="hl-1">?: </span><span class="hl-7">boolean</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 全景图配置 (见 image-options.md) */</span><br/><span class="hl-1"> </span><span class="hl-6">imageOptions</span><span class="hl-1">?: </span><span class="hl-7">ImageOptions</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 贴图配置 (见 image-options.md) */</span><br/><span class="hl-1"> </span><span class="hl-6">textureOptions</span><span class="hl-1">?: </span><span class="hl-7">TextureOptions</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 是否按需渲染 (默认 true, 推荐开启以节省性能) */</span><br/><span class="hl-1"> </span><span class="hl-6">onlyRenderIfNeeds</span><span class="hl-1">?: </span><span class="hl-7">boolean</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 模式切换动画时长 (ms, 默认 1000) */</span><br/><span class="hl-1"> </span><span class="hl-6">modeChangeDuration</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 是否支持滚轮缩放 (默认 true) */</span><br/><span class="hl-1"> </span><span class="hl-6">enableWheel</span><span class="hl-1">?: </span><span class="hl-7">boolean</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 插件列表 */</span><br/><span class="hl-1"> </span><span class="hl-6">plugins</span><span class="hl-1">?: </span><span class="hl-7">FivePlugin</span><span class="hl-1">[];</span><br/><span class="hl-1"> </span><span class="hl-8">/** 是否显示 Powered by Realsee */</span><br/><span class="hl-1"> </span><span class="hl-6">poweredByRealsee</span><span class="hl-1">?: </span><span class="hl-7">boolean</span><span class="hl-1">;</span><br/><span class="hl-1">}</span>
15
+ <pre><code class="typescript"><span class="hl-8">interface</span><span class="hl-1"> </span><span class="hl-9">FiveInitArgs</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-7">/** 外部传入的渲染器 (如果传入,部分渲染配置将失效) */</span><br/><span class="hl-1"> </span><span class="hl-5">renderer</span><span class="hl-1">?: </span><span class="hl-9">THREE</span><span class="hl-1">.</span><span class="hl-9">WebGLRenderer</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-7">/**</span><br/><span class="hl-7"> * 屏幕渲染区域 { left, bottom, width, height }</span><br/><span class="hl-7"> * 必须配合外部 renderer 使用</span><br/><span class="hl-7"> */</span><br/><span class="hl-1"> </span><span class="hl-5">viewport</span><span class="hl-1">?: </span><span class="hl-9">Viewport</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-7">/** 背景颜色 (默认 0x181A1C) */</span><br/><span class="hl-1"> </span><span class="hl-5">backgroundColor</span><span class="hl-1">?: </span><span class="hl-9">number</span><span class="hl-1"> | </span><span class="hl-9">THREE</span><span class="hl-1">.</span><span class="hl-9">Color</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-7">/** 背景透明度 (0-1, 默认 1) */</span><br/><span class="hl-1"> </span><span class="hl-5">backgroundAlpha</span><span class="hl-1">?: </span><span class="hl-9">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-7">/** 是否开启抗锯齿 (默认 false) */</span><br/><span class="hl-1"> </span><span class="hl-5">antialias</span><span class="hl-1">?: </span><span class="hl-9">boolean</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-7">/** 全景图配置 (见 image-options.md) */</span><br/><span class="hl-1"> </span><span class="hl-5">imageOptions</span><span class="hl-1">?: </span><span class="hl-9">ImageOptions</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-7">/** 贴图配置 (见 image-options.md) */</span><br/><span class="hl-1"> </span><span class="hl-5">textureOptions</span><span class="hl-1">?: </span><span class="hl-9">TextureOptions</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-7">/** 是否按需渲染 (默认 true, 推荐开启以节省性能) */</span><br/><span class="hl-1"> </span><span class="hl-5">onlyRenderIfNeeds</span><span class="hl-1">?: </span><span class="hl-9">boolean</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-7">/** 模式切换动画时长 (ms, 默认 1000) */</span><br/><span class="hl-1"> </span><span class="hl-5">modeChangeDuration</span><span class="hl-1">?: </span><span class="hl-9">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-7">/** 是否支持滚轮缩放 (默认 true) */</span><br/><span class="hl-1"> </span><span class="hl-5">enableWheel</span><span class="hl-1">?: </span><span class="hl-9">boolean</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-7">/** 插件列表 */</span><br/><span class="hl-1"> </span><span class="hl-5">plugins</span><span class="hl-1">?: </span><span class="hl-9">FivePlugin</span><span class="hl-1">[];</span><br/><span class="hl-1"> </span><span class="hl-7">/** 是否显示 Powered by Realsee */</span><br/><span class="hl-1"> </span><span class="hl-5">poweredByRealsee</span><span class="hl-1">?: </span><span class="hl-9">boolean</span><span class="hl-1">;</span><br/><span class="hl-1">}</span>
16
16
  </code><button type="button">Copy</button></pre>
17
17
 
18
18
  <h2 id="concepts" class="tsd-anchor-link">Concepts<a href="#concepts" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
@@ -86,17 +86,17 @@
86
86
  <h2 id="examples" class="tsd-anchor-link">Examples<a href="#examples" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
87
87
  <h3 id="快速上手-quick-example" class="tsd-anchor-link">快速上手 (Quick Example)<a href="#快速上手-quick-example" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
88
88
  <p>创建一个全屏的 Five 实例并加载数据。</p>
89
- <pre><code class="typescript"><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">Five</span><span class="hl-1">, </span><span class="hl-6">parseWork</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;@realsee/five&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-8">// 1. 初始化实例</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">five</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">Five</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-6">imageOptions:</span><span class="hl-1"> { </span><span class="hl-6">size:</span><span class="hl-1"> </span><span class="hl-11">512</span><span class="hl-1"> }, </span><span class="hl-8">// 初始加载小图</span><br/><span class="hl-1"> </span><span class="hl-6">onlyRenderIfNeeds:</span><span class="hl-1"> </span><span class="hl-3">true</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-8">// 2. 挂载到 DOM</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">appendTo</span><span class="hl-1">(</span><span class="hl-6">document</span><span class="hl-1">.</span><span class="hl-5">getElementById</span><span class="hl-1">(</span><span class="hl-9">&quot;app&quot;</span><span class="hl-1">));</span><br/><br/><span class="hl-8">// 3. 加载数据</span><br/><span class="hl-8">// workData 通常来自服务端 API</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">load</span><span class="hl-1">(</span><span class="hl-6">workData</span><span class="hl-1">);</span>
89
+ <pre><code class="typescript"><span class="hl-11">import</span><span class="hl-1"> { </span><span class="hl-5">Five</span><span class="hl-1">, </span><span class="hl-5">parseWork</span><span class="hl-1"> } </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-10">&quot;@realsee/five&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-7">// 1. 初始化实例</span><br/><span class="hl-8">const</span><span class="hl-1"> </span><span class="hl-6">five</span><span class="hl-1"> = </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-4">Five</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-5">imageOptions:</span><span class="hl-1"> { </span><span class="hl-5">size:</span><span class="hl-1"> </span><span class="hl-3">512</span><span class="hl-1"> }, </span><span class="hl-7">// 初始加载小图</span><br/><span class="hl-1"> </span><span class="hl-5">onlyRenderIfNeeds:</span><span class="hl-1"> </span><span class="hl-8">true</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-7">// 2. 挂载到 DOM</span><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">appendTo</span><span class="hl-1">(</span><span class="hl-5">document</span><span class="hl-1">.</span><span class="hl-4">getElementById</span><span class="hl-1">(</span><span class="hl-10">&quot;app&quot;</span><span class="hl-1">));</span><br/><br/><span class="hl-7">// 3. 加载数据</span><br/><span class="hl-7">// workData 通常来自服务端 API</span><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">load</span><span class="hl-1">(</span><span class="hl-5">workData</span><span class="hl-1">);</span>
90
90
  </code><button type="button">Copy</button></pre>
91
91
 
92
92
  <h3 id="进阶用法:自定义渲染器与视口" class="tsd-anchor-link">进阶用法:自定义渲染器与视口<a href="#进阶用法:自定义渲染器与视口" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
93
93
  <p>使用外部渲染器并指定视口区域(例如用于分屏渲染)。</p>
94
- <pre><code class="typescript"><span class="hl-10">import</span><span class="hl-1"> </span><span class="hl-3">*</span><span class="hl-1"> </span><span class="hl-10">as</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1"> </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;three&quot;</span><span class="hl-1">;</span><br/><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">Five</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&quot;@realsee/five&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">renderer</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">WebGLRenderer</span><span class="hl-1">();</span><br/><span class="hl-6">renderer</span><span class="hl-1">.</span><span class="hl-5">setSize</span><span class="hl-1">(</span><span class="hl-6">window</span><span class="hl-1">.</span><span class="hl-6">innerWidth</span><span class="hl-1">, </span><span class="hl-6">window</span><span class="hl-1">.</span><span class="hl-6">innerHeight</span><span class="hl-1">);</span><br/><span class="hl-6">document</span><span class="hl-1">.</span><span class="hl-6">body</span><span class="hl-1">.</span><span class="hl-5">appendChild</span><span class="hl-1">(</span><span class="hl-6">renderer</span><span class="hl-1">.</span><span class="hl-6">domElement</span><span class="hl-1">);</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">five</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">Five</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-6">renderer:</span><span class="hl-1"> </span><span class="hl-6">renderer</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">viewport:</span><span class="hl-1"> { </span><span class="hl-6">left:</span><span class="hl-1"> </span><span class="hl-11">0</span><span class="hl-1">, </span><span class="hl-6">bottom:</span><span class="hl-1"> </span><span class="hl-11">0</span><span class="hl-1">, </span><span class="hl-6">width:</span><span class="hl-1"> </span><span class="hl-11">0.5</span><span class="hl-1">, </span><span class="hl-6">height:</span><span class="hl-1"> </span><span class="hl-11">1</span><span class="hl-1"> } </span><span class="hl-8">// 仅占用左半屏</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">load</span><span class="hl-1">(</span><span class="hl-6">workData</span><span class="hl-1">);</span>
94
+ <pre><code class="typescript"><span class="hl-11">import</span><span class="hl-1"> </span><span class="hl-8">*</span><span class="hl-1"> </span><span class="hl-11">as</span><span class="hl-1"> </span><span class="hl-5">THREE</span><span class="hl-1"> </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-10">&quot;three&quot;</span><span class="hl-1">;</span><br/><span class="hl-11">import</span><span class="hl-1"> { </span><span class="hl-5">Five</span><span class="hl-1"> } </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-10">&quot;@realsee/five&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-8">const</span><span class="hl-1"> </span><span class="hl-6">renderer</span><span class="hl-1"> = </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">WebGLRenderer</span><span class="hl-1">();</span><br/><span class="hl-5">renderer</span><span class="hl-1">.</span><span class="hl-4">setSize</span><span class="hl-1">(</span><span class="hl-5">window</span><span class="hl-1">.</span><span class="hl-5">innerWidth</span><span class="hl-1">, </span><span class="hl-5">window</span><span class="hl-1">.</span><span class="hl-5">innerHeight</span><span class="hl-1">);</span><br/><span class="hl-5">document</span><span class="hl-1">.</span><span class="hl-5">body</span><span class="hl-1">.</span><span class="hl-4">appendChild</span><span class="hl-1">(</span><span class="hl-5">renderer</span><span class="hl-1">.</span><span class="hl-5">domElement</span><span class="hl-1">);</span><br/><br/><span class="hl-8">const</span><span class="hl-1"> </span><span class="hl-6">five</span><span class="hl-1"> = </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-4">Five</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-5">renderer:</span><span class="hl-1"> </span><span class="hl-5">renderer</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">viewport:</span><span class="hl-1"> { </span><span class="hl-5">left:</span><span class="hl-1"> </span><span class="hl-3">0</span><span class="hl-1">, </span><span class="hl-5">bottom:</span><span class="hl-1"> </span><span class="hl-3">0</span><span class="hl-1">, </span><span class="hl-5">width:</span><span class="hl-1"> </span><span class="hl-3">0.5</span><span class="hl-1">, </span><span class="hl-5">height:</span><span class="hl-1"> </span><span class="hl-3">1</span><span class="hl-1"> } </span><span class="hl-7">// 仅占用左半屏</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">load</span><span class="hl-1">(</span><span class="hl-5">workData</span><span class="hl-1">);</span>
95
95
  </code><button type="button">Copy</button></pre>
96
96
 
97
97
  <h3 id="进阶用法:自定义相机动画" class="tsd-anchor-link">进阶用法:自定义相机动画<a href="#进阶用法:自定义相机动画" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
98
98
  <p>使用 <code>updateCamera</code> 或 <code>updateCameraWithKeyframes</code> 实现平滑的视角漫游。</p>
99
- <pre><code class="typescript"><span class="hl-8">// 简单移动到指定视角</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">updateCamera</span><span class="hl-1">(</span><br/><span class="hl-1"> { </span><span class="hl-6">longitude:</span><span class="hl-1"> </span><span class="hl-6">Math</span><span class="hl-1">.</span><span class="hl-4">PI</span><span class="hl-1"> / </span><span class="hl-11">2</span><span class="hl-1">, </span><span class="hl-6">latitude:</span><span class="hl-1"> </span><span class="hl-11">0</span><span class="hl-1"> }, </span><span class="hl-8">// 目标姿态</span><br/><span class="hl-1"> </span><span class="hl-11">1000</span><span class="hl-1"> </span><span class="hl-8">// 动画时长 1秒</span><br/><span class="hl-1">).</span><span class="hl-5">then</span><span class="hl-1">(() </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-5">log</span><span class="hl-1">(</span><span class="hl-9">&quot;移动完成&quot;</span><span class="hl-1">);</span><br/><span class="hl-1">}).</span><span class="hl-5">catch</span><span class="hl-1">(() </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-5">log</span><span class="hl-1">(</span><span class="hl-9">&quot;移动被打断&quot;</span><span class="hl-1">);</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-8">// 复杂关键帧动画</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">keyframes</span><span class="hl-1"> = [</span><br/><span class="hl-1"> { </span><span class="hl-6">progress:</span><span class="hl-1"> </span><span class="hl-11">0</span><span class="hl-1">, </span><span class="hl-6">value:</span><span class="hl-1"> { </span><span class="hl-6">longitude:</span><span class="hl-1"> </span><span class="hl-11">0</span><span class="hl-1">, </span><span class="hl-6">latitude:</span><span class="hl-1"> </span><span class="hl-11">0</span><span class="hl-1"> } },</span><br/><span class="hl-1"> { </span><span class="hl-6">progress:</span><span class="hl-1"> </span><span class="hl-11">0.5</span><span class="hl-1">, </span><span class="hl-6">value:</span><span class="hl-1"> { </span><span class="hl-6">longitude:</span><span class="hl-1"> </span><span class="hl-6">Math</span><span class="hl-1">.</span><span class="hl-4">PI</span><span class="hl-1"> / </span><span class="hl-11">4</span><span class="hl-1">, </span><span class="hl-6">latitude:</span><span class="hl-1"> </span><span class="hl-11">0.2</span><span class="hl-1"> } },</span><br/><span class="hl-1"> { </span><span class="hl-6">progress:</span><span class="hl-1"> </span><span class="hl-11">1</span><span class="hl-1">, </span><span class="hl-6">value:</span><span class="hl-1"> { </span><span class="hl-6">longitude:</span><span class="hl-1"> </span><span class="hl-6">Math</span><span class="hl-1">.</span><span class="hl-4">PI</span><span class="hl-1"> / </span><span class="hl-11">2</span><span class="hl-1">, </span><span class="hl-6">latitude:</span><span class="hl-1"> </span><span class="hl-11">0</span><span class="hl-1"> } }</span><br/><span class="hl-1">];</span><br/><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">updateCameraWithKeyframes</span><span class="hl-1">(</span><span class="hl-6">keyframes</span><span class="hl-1">, </span><span class="hl-11">2000</span><span class="hl-1">).</span><span class="hl-5">then</span><span class="hl-1">(() </span><span class="hl-3">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-5">log</span><span class="hl-1">(</span><span class="hl-9">&quot;关键帧动画完成&quot;</span><span class="hl-1">);</span><br/><span class="hl-1">});</span>
99
+ <pre><code class="typescript"><span class="hl-7">// 简单移动到指定视角</span><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">updateCamera</span><span class="hl-1">(</span><br/><span class="hl-1"> { </span><span class="hl-5">longitude:</span><span class="hl-1"> </span><span class="hl-5">Math</span><span class="hl-1">.</span><span class="hl-6">PI</span><span class="hl-1"> / </span><span class="hl-3">2</span><span class="hl-1">, </span><span class="hl-5">latitude:</span><span class="hl-1"> </span><span class="hl-3">0</span><span class="hl-1"> }, </span><span class="hl-7">// 目标姿态</span><br/><span class="hl-1"> </span><span class="hl-3">1000</span><span class="hl-1"> </span><span class="hl-7">// 动画时长 1秒</span><br/><span class="hl-1">).</span><span class="hl-4">then</span><span class="hl-1">(() </span><span class="hl-8">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">console</span><span class="hl-1">.</span><span class="hl-4">log</span><span class="hl-1">(</span><span class="hl-10">&quot;移动完成&quot;</span><span class="hl-1">);</span><br/><span class="hl-1">}).</span><span class="hl-4">catch</span><span class="hl-1">(() </span><span class="hl-8">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">console</span><span class="hl-1">.</span><span class="hl-4">log</span><span class="hl-1">(</span><span class="hl-10">&quot;移动被打断&quot;</span><span class="hl-1">);</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-7">// 复杂关键帧动画</span><br/><span class="hl-8">const</span><span class="hl-1"> </span><span class="hl-6">keyframes</span><span class="hl-1"> = [</span><br/><span class="hl-1"> { </span><span class="hl-5">progress:</span><span class="hl-1"> </span><span class="hl-3">0</span><span class="hl-1">, </span><span class="hl-5">value:</span><span class="hl-1"> { </span><span class="hl-5">longitude:</span><span class="hl-1"> </span><span class="hl-3">0</span><span class="hl-1">, </span><span class="hl-5">latitude:</span><span class="hl-1"> </span><span class="hl-3">0</span><span class="hl-1"> } },</span><br/><span class="hl-1"> { </span><span class="hl-5">progress:</span><span class="hl-1"> </span><span class="hl-3">0.5</span><span class="hl-1">, </span><span class="hl-5">value:</span><span class="hl-1"> { </span><span class="hl-5">longitude:</span><span class="hl-1"> </span><span class="hl-5">Math</span><span class="hl-1">.</span><span class="hl-6">PI</span><span class="hl-1"> / </span><span class="hl-3">4</span><span class="hl-1">, </span><span class="hl-5">latitude:</span><span class="hl-1"> </span><span class="hl-3">0.2</span><span class="hl-1"> } },</span><br/><span class="hl-1"> { </span><span class="hl-5">progress:</span><span class="hl-1"> </span><span class="hl-3">1</span><span class="hl-1">, </span><span class="hl-5">value:</span><span class="hl-1"> { </span><span class="hl-5">longitude:</span><span class="hl-1"> </span><span class="hl-5">Math</span><span class="hl-1">.</span><span class="hl-6">PI</span><span class="hl-1"> / </span><span class="hl-3">2</span><span class="hl-1">, </span><span class="hl-5">latitude:</span><span class="hl-1"> </span><span class="hl-3">0</span><span class="hl-1"> } }</span><br/><span class="hl-1">];</span><br/><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">updateCameraWithKeyframes</span><span class="hl-1">(</span><span class="hl-5">keyframes</span><span class="hl-1">, </span><span class="hl-3">2000</span><span class="hl-1">).</span><span class="hl-4">then</span><span class="hl-1">(() </span><span class="hl-8">=&gt;</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">console</span><span class="hl-1">.</span><span class="hl-4">log</span><span class="hl-1">(</span><span class="hl-10">&quot;关键帧动画完成&quot;</span><span class="hl-1">);</span><br/><span class="hl-1">});</span>
100
100
  </code><button type="button">Copy</button></pre>
101
101
 
102
102
  <h3 id="实例属性-instance-properties" class="tsd-anchor-link">实例属性 (Instance Properties)<a href="#实例属性-instance-properties" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>