@realsee/five-webgpu 1.0.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 (674) hide show
  1. package/AGENTS_READ_ME.md +9 -0
  2. package/AI_CONTEXT.md +9 -0
  3. package/README.md +80 -0
  4. package/TERMS.txt +54 -0
  5. package/ai_guides/README.md +118 -0
  6. package/ai_guides/ai-doc-guidelines.md +102 -0
  7. package/ai_guides/api.md +274 -0
  8. package/ai_guides/features/3dtile.md +172 -0
  9. package/ai_guides/features/camera-animation.md +205 -0
  10. package/ai_guides/features/clipper.md +135 -0
  11. package/ai_guides/features/coordinate-system.md +128 -0
  12. package/ai_guides/features/event.md +154 -0
  13. package/ai_guides/features/five.md +184 -0
  14. package/ai_guides/features/gesture.md +181 -0
  15. package/ai_guides/features/get-screen-pixels.md +182 -0
  16. package/ai_guides/features/image-options.md +164 -0
  17. package/ai_guides/features/load-external-model.md +350 -0
  18. package/ai_guides/features/load-progress.md +140 -0
  19. package/ai_guides/features/material.md +153 -0
  20. package/ai_guides/features/mode.md +269 -0
  21. package/ai_guides/features/model.md +186 -0
  22. package/ai_guides/features/move-pano-effect.md +145 -0
  23. package/ai_guides/features/multi-work.md +146 -0
  24. package/ai_guides/features/pano-filter.md +144 -0
  25. package/ai_guides/features/pano-tile.md +132 -0
  26. package/ai_guides/features/pano-uv.md +131 -0
  27. package/ai_guides/features/parameter.md +153 -0
  28. package/ai_guides/features/raycast.md +175 -0
  29. package/ai_guides/features/request-proxy.md +112 -0
  30. package/ai_guides/features/screen-project.md +165 -0
  31. package/ai_guides/features/state.md +101 -0
  32. package/ai_guides/features/ultra-hdr.md +204 -0
  33. package/ai_guides/features/view-layer.md +187 -0
  34. package/ai_guides/features/work.md +303 -0
  35. package/ai_guides/glossary.md +93 -0
  36. package/ai_guides/intro.md +23 -0
  37. package/ai_guides/quick-start.md +69 -0
  38. package/ai_guides/release_notes/6.6.md +86 -0
  39. package/ai_guides/release_notes/6.7.md +401 -0
  40. package/ai_guides/release_notes/6.8.md +208 -0
  41. package/ai_guides/support.md +23 -0
  42. package/ai_guides/template.md +70 -0
  43. package/docs/.nojekyll +1 -0
  44. package/docs/00_FOR_AI_AGENTS.md +12 -0
  45. package/docs/README.md +12 -0
  46. package/docs/assets/hierarchy.js +1 -0
  47. package/docs/assets/highlight.css +134 -0
  48. package/docs/assets/icons.js +18 -0
  49. package/docs/assets/icons.svg +1 -0
  50. package/docs/assets/main.js +60 -0
  51. package/docs/assets/navigation.js +1 -0
  52. package/docs/assets/search.js +1 -0
  53. package/docs/assets/style.css +1633 -0
  54. package/docs/classes/index.AdaptiveLuminancePass.html +23 -0
  55. package/docs/classes/index.AnimationFrameLoop.html +18 -0
  56. package/docs/classes/index.BoundingMesh.html +4 -0
  57. package/docs/classes/index.Camera.html +42 -0
  58. package/docs/classes/index.EffectComposer.html +25 -0
  59. package/docs/classes/index.EyeDomeLightingPass.html +20 -0
  60. package/docs/classes/index.Fetcher.html +5 -0
  61. package/docs/classes/index.Five.html +311 -0
  62. package/docs/classes/index.FivePass.html +17 -0
  63. package/docs/classes/index.FiveRenderer.html +8 -0
  64. package/docs/classes/index.FlowingFireworks3DPass.html +22 -0
  65. package/docs/classes/index.FlowingLight2DPass.html +21 -0
  66. package/docs/classes/index.FlowingLight3DPass.html +23 -0
  67. package/docs/classes/index.FullScreenQuad.html +7 -0
  68. package/docs/classes/index.GaussianBlurPass.html +19 -0
  69. package/docs/classes/index.Histogram.html +19 -0
  70. package/docs/classes/index.InternalWebGPURenderer.html +4 -0
  71. package/docs/classes/index.Model.html +93 -0
  72. package/docs/classes/index.ModelScene.html +40 -0
  73. package/docs/classes/index.Motion.html +17 -0
  74. package/docs/classes/index.NetworkSubscribe.html +41 -0
  75. package/docs/classes/index.PBMGaussianSplattingNodeMaterial.html +37 -0
  76. package/docs/classes/index.PBMGaussianSplattingObject.html +32 -0
  77. package/docs/classes/index.PBMGaussianSplattingRenderMesh.html +19 -0
  78. package/docs/classes/index.PBMGroup.html +5 -0
  79. package/docs/classes/index.PBMMesh.html +2 -0
  80. package/docs/classes/index.PBMMeshBasicMaterial.html +70 -0
  81. package/docs/classes/index.PBMMeshBasicNodeMaterial.html +74 -0
  82. package/docs/classes/index.PBMMeshPanoOnlyMaterial.html +70 -0
  83. package/docs/classes/index.PBMMeshPanoOnlyNodeMaterial.html +74 -0
  84. package/docs/classes/index.PBMMeshPhongMaterial.html +69 -0
  85. package/docs/classes/index.PBMMeshPhongNodeMaterial.html +73 -0
  86. package/docs/classes/index.PBMMeshPhysicalMaterial.html +69 -0
  87. package/docs/classes/index.PBMMeshPhysicalNodeMaterial.html +73 -0
  88. package/docs/classes/index.PBMPanoFilter.html +61 -0
  89. package/docs/classes/index.PBMPointCloud.html +50 -0
  90. package/docs/classes/index.PBMSkinnedMesh.html +8 -0
  91. package/docs/classes/index.PBMUpdateable.html +41 -0
  92. package/docs/classes/index.PanoCircleMesh.html +30 -0
  93. package/docs/classes/index.PanoCircleMeshCustom.html +30 -0
  94. package/docs/classes/index.PanoCircleMeshSolid.html +30 -0
  95. package/docs/classes/index.Parameter.html +114 -0
  96. package/docs/classes/index.Scene.html +18 -0
  97. package/docs/classes/index.Subscribe.html +43 -0
  98. package/docs/classes/index.TextureLoader.html +4 -0
  99. package/docs/classes/index.Tile.html +34 -0
  100. package/docs/classes/index.Tile3D.html +98 -0
  101. package/docs/classes/index.TileCache.html +8 -0
  102. package/docs/classes/index.TileNode.html +14 -0
  103. package/docs/classes/index.TileRequestScheduler.html +4 -0
  104. package/docs/classes/index.Tileset.html +38 -0
  105. package/docs/classes/index.Trajectory.html +8 -0
  106. package/docs/classes/index.TrajectoryNode.html +8 -0
  107. package/docs/classes/index.Work.html +52 -0
  108. package/docs/classes/index.WorkResolvedObserver.html +68 -0
  109. package/docs/documents/README.html +134 -0
  110. package/docs/documents/ai-doc-guidelines.html +117 -0
  111. package/docs/documents/api.html +337 -0
  112. package/docs/documents/features_3dtile.html +216 -0
  113. package/docs/documents/features_camera-animation.html +157 -0
  114. package/docs/documents/features_clipper.html +80 -0
  115. package/docs/documents/features_coordinate-system.html +127 -0
  116. package/docs/documents/features_event.html +104 -0
  117. package/docs/documents/features_five.html +147 -0
  118. package/docs/documents/features_gesture.html +121 -0
  119. package/docs/documents/features_get-screen-pixels.html +88 -0
  120. package/docs/documents/features_image-options.html +108 -0
  121. package/docs/documents/features_load-external-model.html +600 -0
  122. package/docs/documents/features_load-progress.html +110 -0
  123. package/docs/documents/features_material.html +341 -0
  124. package/docs/documents/features_mode.html +114 -0
  125. package/docs/documents/features_model.html +141 -0
  126. package/docs/documents/features_move-pano-effect.html +110 -0
  127. package/docs/documents/features_multi-work.html +97 -0
  128. package/docs/documents/features_pano-filter.html +119 -0
  129. package/docs/documents/features_pano-tile.html +100 -0
  130. package/docs/documents/features_pano-uv.html +82 -0
  131. package/docs/documents/features_parameter.html +101 -0
  132. package/docs/documents/features_raycast.html +98 -0
  133. package/docs/documents/features_request-proxy.html +78 -0
  134. package/docs/documents/features_screen-project.html +112 -0
  135. package/docs/documents/features_state.html +71 -0
  136. package/docs/documents/features_ultra-hdr.html +188 -0
  137. package/docs/documents/features_view-layer.html +158 -0
  138. package/docs/documents/features_work.html +129 -0
  139. package/docs/documents/glossary.html +94 -0
  140. package/docs/documents/intro.html +24 -0
  141. package/docs/documents/quick-start.html +32 -0
  142. package/docs/documents/release_notes_6.6.html +79 -0
  143. package/docs/documents/release_notes_6.7.html +209 -0
  144. package/docs/documents/release_notes_6.8.html +189 -0
  145. package/docs/documents/support.html +49 -0
  146. package/docs/documents/template.html +80 -0
  147. package/docs/enums/index.VolumePlaneIntersect.html +4 -0
  148. package/docs/functions/index.coordinatesToVector.html +2 -0
  149. package/docs/functions/index.createDebugBoundingMesh.html +1 -0
  150. package/docs/functions/index.createWorks.html +1 -0
  151. package/docs/functions/index.defaultImageURLTransform.html +5 -0
  152. package/docs/functions/index.getViewportScale.html +1 -0
  153. package/docs/functions/index.headingToLongitude.html +4 -0
  154. package/docs/functions/index.imageSupport.html +1 -0
  155. package/docs/functions/index.isBoundingVolume.html +1 -0
  156. package/docs/functions/index.isPanoId.html +1 -0
  157. package/docs/functions/index.loadAt3d.html +1 -0
  158. package/docs/functions/index.loadDome.html +1 -0
  159. package/docs/functions/index.loadDomez.html +1 -0
  160. package/docs/functions/index.loadGltf.html +1 -0
  161. package/docs/functions/index.loadPbm.html +1 -0
  162. package/docs/functions/index.loadPly.html +1 -0
  163. package/docs/functions/index.longitudeToHeading.html +4 -0
  164. package/docs/functions/index.makeBoundingVolume.html +1 -0
  165. package/docs/functions/index.panoEqual.html +1 -0
  166. package/docs/functions/index.panoParse.html +1 -0
  167. package/docs/functions/index.panoStringify.html +1 -0
  168. package/docs/functions/index.parseWork.html +7 -0
  169. package/docs/functions/index.registerPBMMaterials.html +3 -0
  170. package/docs/functions/index.vectorToCoordinates.html +2 -0
  171. package/docs/functions/index.workToJson.html +1 -0
  172. package/docs/hierarchy.html +1 -0
  173. package/docs/index.html +134 -0
  174. package/docs/interfaces/index.AddableObject.html +9 -0
  175. package/docs/interfaces/index.AjaxOptions.html +9 -0
  176. package/docs/interfaces/index.AnimationFrame.html +6 -0
  177. package/docs/interfaces/index.AnimationFrameContext.html +3 -0
  178. package/docs/interfaces/index.BaseEvent.html +5 -0
  179. package/docs/interfaces/index.BoundingVolume.html +15 -0
  180. package/docs/interfaces/index.BoxBoundingVolume.html +18 -0
  181. package/docs/interfaces/index.CameraPose.html +6 -0
  182. package/docs/interfaces/index.CullingVolume.html +9 -0
  183. package/docs/interfaces/index.Draco.html +12 -0
  184. package/docs/interfaces/index.EventCallback.html +394 -0
  185. package/docs/interfaces/index.FiveInitArgs.html +104 -0
  186. package/docs/interfaces/index.FiveLoadOptions.html +12 -0
  187. package/docs/interfaces/index.FloorplanControllerCustomInitArgs.html +17 -0
  188. package/docs/interfaces/index.GestureEvent.html +19 -0
  189. package/docs/interfaces/index.IPBMMaterial.html +64 -0
  190. package/docs/interfaces/index.ImageOptions.html +21 -0
  191. package/docs/interfaces/index.ImageURLMappings.html +1 -0
  192. package/docs/interfaces/index.ImageURLOptions.html +17 -0
  193. package/docs/interfaces/index.IntersectEvent.html +8 -0
  194. package/docs/interfaces/index.IntersectMesh.html +2 -0
  195. package/docs/interfaces/index.IntersectMeshInterface.html +3 -0
  196. package/docs/interfaces/index.Intersection.html +9 -0
  197. package/docs/interfaces/index.LoosePanoWork.html +10 -0
  198. package/docs/interfaces/index.LooseWork.html +15 -0
  199. package/docs/interfaces/index.LooseWorkInitial.html +11 -0
  200. package/docs/interfaces/index.LooseWorkModel.html +8 -0
  201. package/docs/interfaces/index.LooseWorkObserver.html +17 -0
  202. package/docs/interfaces/index.LooseWorkPanorama.html +22 -0
  203. package/docs/interfaces/index.LooseWorkVideo.html +4 -0
  204. package/docs/interfaces/index.LooseWorkWithExtrinsics.html +15 -0
  205. package/docs/interfaces/index.MapviewControllerCustomInitArgs.html +20 -0
  206. package/docs/interfaces/index.ModeChangeEvent.html +9 -0
  207. package/docs/interfaces/index.ModelControllerCustomInitArgs.html +20 -0
  208. package/docs/interfaces/index.ModelEvent.html +8 -0
  209. package/docs/interfaces/index.ModelOptions.html +11 -0
  210. package/docs/interfaces/index.ModelSceneEvent.html +6 -0
  211. package/docs/interfaces/index.ModelTileEvent.html +8 -0
  212. package/docs/interfaces/index.MotionKeyframe.html +4 -0
  213. package/docs/interfaces/index.MovePanoOptions.html +35 -0
  214. package/docs/interfaces/index.NetworkAbortError.html +1 -0
  215. package/docs/interfaces/index.NetworkFirbiddenError.html +1 -0
  216. package/docs/interfaces/index.NetworkOptions.html +7 -0
  217. package/docs/interfaces/index.NetworkProxyError.html +1 -0
  218. package/docs/interfaces/index.NetworkResourceEvent.html +9 -0
  219. package/docs/interfaces/index.NetworkResponseError.html +2 -0
  220. package/docs/interfaces/index.NetworkTimeoutError.html +1 -0
  221. package/docs/interfaces/index.ObjectEvent.html +6 -0
  222. package/docs/interfaces/index.PBMClipperParameter.html +3 -0
  223. package/docs/interfaces/index.PBMHDRConfig.html +12 -0
  224. package/docs/interfaces/index.PBMPanoDepth.html +9 -0
  225. package/docs/interfaces/index.PBMPanoFilterValue.html +6 -0
  226. package/docs/interfaces/index.PBMPanoPicture.html +14 -0
  227. package/docs/interfaces/index.PBMRefinedScreen.html +6 -0
  228. package/docs/interfaces/index.PanoCircleMeshCustomOptions.html +9 -0
  229. package/docs/interfaces/index.PanoCircleMeshInterface.html +30 -0
  230. package/docs/interfaces/index.PanoCircleMeshOptions.html +3 -0
  231. package/docs/interfaces/index.PanoCircleMeshSolidOptions.html +3 -0
  232. package/docs/interfaces/index.PanoEvent.html +11 -0
  233. package/docs/interfaces/index.PanoTextureEvent.html +9 -0
  234. package/docs/interfaces/index.PanoramaControllerCustomInitArgs.html +41 -0
  235. package/docs/interfaces/index.PanoramaLikeControllerCustomInitArgs.html +20 -0
  236. package/docs/interfaces/index.ParameterMaterialValue.html +74 -0
  237. package/docs/interfaces/index.ParameterTilesetValue.html +30 -0
  238. package/docs/interfaces/index.ParameterValue.html +103 -0
  239. package/docs/interfaces/index.Pass.html +9 -0
  240. package/docs/interfaces/index.PointCloudData.html +6 -0
  241. package/docs/interfaces/index.Pose.html +12 -0
  242. package/docs/interfaces/index.RegionBoundingVolume.html +21 -0
  243. package/docs/interfaces/index.RenderEvent.html +6 -0
  244. package/docs/interfaces/index.ResolvedParameterValue.html +104 -0
  245. package/docs/interfaces/index.RgbaData.html +7 -0
  246. package/docs/interfaces/index.SphereBoundingVolume.html +17 -0
  247. package/docs/interfaces/index.SplatData.html +10 -0
  248. package/docs/interfaces/index.State.html +23 -0
  249. package/docs/interfaces/index.StateEvent.html +7 -0
  250. package/docs/interfaces/index.TextureOptions.html +23 -0
  251. package/docs/interfaces/index.Tile3DOptions.html +11 -0
  252. package/docs/interfaces/index.TileCoordinateSystem.html +3 -0
  253. package/docs/interfaces/index.TileHeader.html +9 -0
  254. package/docs/interfaces/index.TilesetHeader.html +20 -0
  255. package/docs/interfaces/index.TilesetOptions.html +7 -0
  256. package/docs/interfaces/index.TopviewControllerCustomInitArgs.html +13 -0
  257. package/docs/interfaces/index.TrajectoryHeader.html +5 -0
  258. package/docs/interfaces/index.ViewLayer.html +97 -0
  259. package/docs/interfaces/index.Viewport.html +13 -0
  260. package/docs/interfaces/index.WebXRAxesParams.html +4 -0
  261. package/docs/interfaces/index.WebXRControllerParams.html +2 -0
  262. package/docs/interfaces/index.WorkCubeImage.html +15 -0
  263. package/docs/interfaces/index.WorkImage.html +22 -0
  264. package/docs/interfaces/index.WorkInitial.html +17 -0
  265. package/docs/interfaces/index.WorkInitialJson.html +8 -0
  266. package/docs/interfaces/index.WorkJson.html +11 -0
  267. package/docs/interfaces/index.WorkModel.html +16 -0
  268. package/docs/interfaces/index.WorkModelJson.html +6 -0
  269. package/docs/interfaces/index.WorkModelLayer.html +11 -0
  270. package/docs/interfaces/index.WorkModelLayerJson.html +5 -0
  271. package/docs/interfaces/index.WorkObserver.html +63 -0
  272. package/docs/interfaces/index.WorkObserverJson.html +10 -0
  273. package/docs/interfaces/index.WorkPanoramaJson.html +14 -0
  274. package/docs/interfaces/index.WorkPanoramasJson.html +3 -0
  275. package/docs/interfaces/index.WorkTile.html +21 -0
  276. package/docs/interfaces/index.WorkVideo.html +9 -0
  277. package/docs/interfaces/index.WorksEvent.html +8 -0
  278. package/docs/interfaces/index.XRControllerEvent.html +8 -0
  279. package/docs/interfaces/index.XRGestureEvent.html +11 -0
  280. package/docs/interfaces/index.XRSessionEvent.html +7 -0
  281. package/docs/modules/index.html +1 -0
  282. package/docs/modules.html +1 -0
  283. package/docs/types/index.AjaxResponseType.html +1 -0
  284. package/docs/types/index.AjaxResponseTypeMapping.html +1 -0
  285. package/docs/types/index.AnimationFrameLoopType.html +1 -0
  286. package/docs/types/index.BoundingVolumeJson.html +1 -0
  287. package/docs/types/index.BoxBoundingVolumeJson.html +2 -0
  288. package/docs/types/index.ControllerCustomInitTypes.html +6 -0
  289. package/docs/types/index.ControllerEventTypes.html +68 -0
  290. package/docs/types/index.CubeFace.html +1 -0
  291. package/docs/types/index.EasingFunction.html +1 -0
  292. package/docs/types/index.EventTypes.html +28 -0
  293. package/docs/types/index.FivePlugin.html +4 -0
  294. package/docs/types/index.FivePluginInit.html +3 -0
  295. package/docs/types/index.FivePluginInstance.html +3 -0
  296. package/docs/types/index.FlowingFireworks3DPassLine.html +16 -0
  297. package/docs/types/index.FlowingLight2DPassLine.html +10 -0
  298. package/docs/types/index.FlowingLight3DPassLine.html +10 -0
  299. package/docs/types/index.GestureTypes.html +1 -0
  300. package/docs/types/index.LegacyEventType.html +282 -0
  301. package/docs/types/index.LoadResultType.html +12 -0
  302. package/docs/types/index.Mode.html +15 -0
  303. package/docs/types/index.Models.html +11 -0
  304. package/docs/types/index.MotionCircle.html +2 -0
  305. package/docs/types/index.MotionConfig.html +1 -0
  306. package/docs/types/index.MotionInitalValue.html +1 -0
  307. package/docs/types/index.MotionValue.html +1 -0
  308. package/docs/types/index.MovePanoEffect.html +12 -0
  309. package/docs/types/index.NetWorkMeta.html +8 -0
  310. package/docs/types/index.NetworkError.html +1 -0
  311. package/docs/types/index.NetworkErrorCallback.html +1 -0
  312. package/docs/types/index.NetworkProgressCallback.html +1 -0
  313. package/docs/types/index.NetworkResponse.html +3 -0
  314. package/docs/types/index.NetworkState.html +1 -0
  315. package/docs/types/index.NetworkSuccessCallback.html +1 -0
  316. package/docs/types/index.NetworkType.html +1 -0
  317. package/docs/types/index.OutputTextureDataType.html +1 -0
  318. package/docs/types/index.PBMAlphaMode.html +1 -0
  319. package/docs/types/index.PBMColorStyle.html +1 -0
  320. package/docs/types/index.PBMFloorStyle.html +1 -0
  321. package/docs/types/index.PBMMeshMaterial.html +1 -0
  322. package/docs/types/index.PBMPointBack.html +1 -0
  323. package/docs/types/index.PBMPointCloudShaderType.html +1 -0
  324. package/docs/types/index.PBMPointShape.html +1 -0
  325. package/docs/types/index.PBMPointSize.html +1 -0
  326. package/docs/types/index.PBMTransition.html +1 -0
  327. package/docs/types/index.Pano.html +3 -0
  328. package/docs/types/index.PanoId.html +1 -0
  329. package/docs/types/index.ParseOptions.html +13 -0
  330. package/docs/types/index.PostProcessingType.html +1 -0
  331. package/docs/types/index.RegionBoundingVolumeJson.html +2 -0
  332. package/docs/types/index.RequestAnimationFrameArgs.html +1 -0
  333. package/docs/types/index.Scissor.html +2 -0
  334. package/docs/types/index.SphereBoundingVolumeJson.html +2 -0
  335. package/docs/types/index.SubscribeEventMap.html +1 -0
  336. package/docs/types/index.TileCacheOptions.html +3 -0
  337. package/docs/types/index.TileContentData.html +6 -0
  338. package/docs/types/index.TileRequestOrder.html +1 -0
  339. package/docs/types/index.TileRequestSchedulerOptions.html +4 -0
  340. package/docs/types/index.TilesetFrameState.html +21 -0
  341. package/docs/types/index.TrajectoryContentData.html +7 -0
  342. package/docs/types/index.WebXRControllerKey.html +1 -0
  343. package/docs/types/index.WebXRControllerType.html +1 -0
  344. package/docs/types/index.Works.html +1 -0
  345. package/docs/variables/index.PROXY_CONTROLLER_EVENT_NAMES.html +1 -0
  346. package/docs/variables/index.controllersDefaultInitArgs.html +1 -0
  347. package/docs/variables/index.draco.html +1 -0
  348. package/five/application/analysis.d.ts +40 -0
  349. package/five/application/controllers.d.ts +33 -0
  350. package/five/application/events-legacy.d.ts +454 -0
  351. package/five/application/events.d.ts +69 -0
  352. package/five/application/five.d.ts +498 -0
  353. package/five/application/fiveInitArgs.d.ts +173 -0
  354. package/five/application/fiveLoadOptions.d.ts +21 -0
  355. package/five/application/generateDefaultVideoElement.d.ts +2 -0
  356. package/five/application/getViewportScale.d.ts +2 -0
  357. package/five/application/initLights.d.ts +3 -0
  358. package/five/application/mode.d.ts +24 -0
  359. package/five/application/renderPoweredByRealsee.d.ts +3 -0
  360. package/five/assets/cardboard-png-data-url.d.ts +2 -0
  361. package/five/assets/gradient-png-data-url.d.ts +2 -0
  362. package/five/assets/loading-png-data-url.d.ts +2 -0
  363. package/five/assets/phone-png-data-url.d.ts +2 -0
  364. package/five/assets/realsee-pmg-data-url.d.ts +2 -0
  365. package/five/bvh/bvhMath.d.ts +33 -0
  366. package/five/bvh/bvhMesh.d.ts +7 -0
  367. package/five/bvh/bvhNode.d.ts +29 -0
  368. package/five/bvh/bvhObject.d.ts +19 -0
  369. package/five/bvh/bvhPoints.d.ts +6 -0
  370. package/five/bvh/index.d.ts +14 -0
  371. package/five/bvh/type.d.ts +1 -0
  372. package/five/bvh/worker.d.ts +36 -0
  373. package/five/certificates/hardware.d.ts +1 -0
  374. package/five/controllers/base.d.ts +166 -0
  375. package/five/controllers/events.d.ts +71 -0
  376. package/five/controllers/floorplan.d.ts +119 -0
  377. package/five/controllers/mapview.d.ts +138 -0
  378. package/five/controllers/model.d.ts +57 -0
  379. package/five/controllers/panorama.d.ts +143 -0
  380. package/five/controllers/panoramaLike.d.ts +87 -0
  381. package/five/controllers/topview.d.ts +42 -0
  382. package/five/core/camera.d.ts +65 -0
  383. package/five/core/internalWebGPURenderer.d.ts +13 -0
  384. package/five/core/panoVideo.d.ts +18 -0
  385. package/five/core/scene.d.ts +10 -0
  386. package/five/core/tiling.d.ts +56 -0
  387. package/five/declare.d.ts +35 -0
  388. package/five/gaussian-splatting/util/renderData.d.ts +66 -0
  389. package/five/gaussian-splatting/wasm/data.d.ts +20 -0
  390. package/five/gaussian-splatting/wasm/sort.d.ts +18 -0
  391. package/five/gaussian-splatting/worker/dataWorker.d.ts +1 -0
  392. package/five/gaussian-splatting/worker/sortWorker.d.ts +1 -0
  393. package/five/index.d.ts +58 -0
  394. package/five/index.js +1179 -0
  395. package/five/index.mjs +25111 -0
  396. package/five/meshes/boundingMesh.d.ts +12 -0
  397. package/five/meshes/intersectMesh.d.ts +8 -0
  398. package/five/meshes/panoCircleMesh.d.ts +36 -0
  399. package/five/meshes/panoCircleMeshCustom.d.ts +40 -0
  400. package/five/meshes/panoCircleMeshSolid.d.ts +35 -0
  401. package/five/meshes/panoSphereMesh.d.ts +29 -0
  402. package/five/model/helpers/coordinate-transform.d.ts +3 -0
  403. package/five/model/helpers/ellipsoid-coordinates.d.ts +14 -0
  404. package/five/model/helpers/get-edges-by-sphere.d.ts +8 -0
  405. package/five/model/helpers/get-recommend-tile3d-parameters.d.ts +8 -0
  406. package/five/model/index.d.ts +55 -0
  407. package/five/model/intersection.d.ts +18 -0
  408. package/five/model/loaders/at3d.d.ts +12 -0
  409. package/five/model/loaders/b3dm.d.ts +10 -0
  410. package/five/model/loaders/dome.d.ts +22 -0
  411. package/five/model/loaders/domez.d.ts +11 -0
  412. package/five/model/loaders/fbx.d.ts +8 -0
  413. package/five/model/loaders/glTF-helpers/extensions/CESIUM_RTC.d.ts +9 -0
  414. package/five/model/loaders/glTF-helpers/extensions/EXT_meshopt_compression.d.ts +8 -0
  415. package/five/model/loaders/glTF-helpers/extensions/EXT_texture_webp.d.ts +11 -0
  416. package/five/model/loaders/glTF-helpers/extensions/KHR_animation_pointer.d.ts +6 -0
  417. package/five/model/loaders/glTF-helpers/extensions/KHR_binary_glTF.d.ts +25 -0
  418. package/five/model/loaders/glTF-helpers/extensions/KHR_draco_mesh_compression.d.ts +11 -0
  419. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting.d.ts +26 -0
  420. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz.d.ts +11 -0
  421. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz_2.d.ts +13 -0
  422. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_clearcoat.d.ts +10 -0
  423. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_emissive_strength.d.ts +10 -0
  424. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_sheen.d.ts +10 -0
  425. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_transmission.d.ts +10 -0
  426. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_unlit.d.ts +12 -0
  427. package/five/model/loaders/glTF-helpers/extensions/KHR_mesh_quantization.d.ts +6 -0
  428. package/five/model/loaders/glTF-helpers/extensions/KHR_node_visibility.d.ts +10 -0
  429. package/five/model/loaders/glTF-helpers/extensions/KHR_texture_basisu.d.ts +9 -0
  430. package/five/model/loaders/glTF-helpers/extensions/KHR_texture_transform.d.ts +10 -0
  431. package/five/model/loaders/glTF-helpers/extensions/REALSEE_materials_lightmap.d.ts +7 -0
  432. package/five/model/loaders/glTF-helpers/extensions/base.d.ts +25 -0
  433. package/five/model/loaders/glTF-helpers/glTF.d.ts +713 -0
  434. package/five/model/loaders/glTF-helpers/index.d.ts +51 -0
  435. package/five/model/loaders/glTF-helpers/parser.d.ts +115 -0
  436. package/five/model/loaders/glTF-helpers/type.d.ts +14 -0
  437. package/five/model/loaders/gltf.d.ts +10 -0
  438. package/five/model/loaders/obj.d.ts +9 -0
  439. package/five/model/loaders/pbm.d.ts +26 -0
  440. package/five/model/loaders/ply.d.ts +24 -0
  441. package/five/model/loaders/pnts.d.ts +8 -0
  442. package/five/model/loaders/protobuf/dome.d.ts +540 -0
  443. package/five/model/loaders/protobuf/pbm.d.ts +203 -0
  444. package/five/model/loaders/shared.d.ts +16 -0
  445. package/five/model/loaders/splat.d.ts +8 -0
  446. package/five/model/loaders/spz.d.ts +14 -0
  447. package/five/model/loaders/tile3d-helpers/feature-table.d.ts +15 -0
  448. package/five/model/loaders/tile3d-helpers/gl-type.d.ts +20 -0
  449. package/five/model/loaders/tile3d-helpers/parse-gltf-array-buffer.d.ts +2 -0
  450. package/five/model/loaders/tile3d-helpers/parse-header.d.ts +2 -0
  451. package/five/model/loaders/tile3d-helpers/parse-point-cloud-attributes.d.ts +2 -0
  452. package/five/model/loaders/tile3d-helpers/parse-point-cloud-attributes.worker.d.ts +6 -0
  453. package/five/model/loaders/tile3d-helpers/parse-table.d.ts +3 -0
  454. package/five/model/loaders/tile3d-helpers/tile3d-type.d.ts +36 -0
  455. package/five/model/loaders/x3p.d.ts +22 -0
  456. package/five/model/materials/nodes/pbmMeshBasicNodeMaterial.d.ts +14 -0
  457. package/five/model/materials/nodes/pbmMeshPanoOnlyNodeMaterial.d.ts +14 -0
  458. package/five/model/materials/nodes/pbmMeshPhongNodeMaterial.d.ts +14 -0
  459. package/five/model/materials/nodes/pbmMeshPhysicalNodeMaterial.d.ts +14 -0
  460. package/five/model/materials/nodes/pbmPointCloudNodeMaterial.d.ts +22 -0
  461. package/five/model/materials/pbmGaussianSplattingNodeMaterial.d.ts +78 -0
  462. package/five/model/materials/pbmMaterial.d.ts +171 -0
  463. package/five/model/materials/pbmMaterialRegister.d.ts +6 -0
  464. package/five/model/materials/pbmMeshMaterial.d.ts +57 -0
  465. package/five/model/materials/pbmPointCloudMaterial.d.ts +20 -0
  466. package/five/model/materials/pbmPointCloudNodeMaterial.d.ts +46 -0
  467. package/five/model/materials/tsl/colorFilter.d.ts +9 -0
  468. package/five/model/materials/tsl/defines.d.ts +68 -0
  469. package/five/model/materials/tsl/nodeTypes.d.ts +12 -0
  470. package/five/model/materials/tsl/outputBuilder.d.ts +26 -0
  471. package/five/model/materials/tsl/panoColor.d.ts +17 -0
  472. package/five/model/materials/tsl/panoTransition.d.ts +8 -0
  473. package/five/model/materials/tsl/utils.d.ts +11 -0
  474. package/five/model/model-scene.d.ts +172 -0
  475. package/five/model/model.d.ts +203 -0
  476. package/five/model/objects/pbmGaussianSplattingObject.d.ts +47 -0
  477. package/five/model/objects/pbmGaussianSplattingRenderMesh.d.ts +73 -0
  478. package/five/model/objects/pbmGroup.d.ts +8 -0
  479. package/five/model/objects/pbmMesh.d.ts +10 -0
  480. package/five/model/objects/pbmPointCloud.d.ts +89 -0
  481. package/five/model/objects/pbmPointCloudObject.d.ts +81 -0
  482. package/five/model/parameter.d.ts +138 -0
  483. package/five/model/tile3d/header.d.ts +88 -0
  484. package/five/model/tile3d/index.d.ts +213 -0
  485. package/five/model/tile3d/tile-cache.d.ts +18 -0
  486. package/five/model/tile3d/tile-content.d.ts +10 -0
  487. package/five/model/tile3d/tile-node.d.ts +26 -0
  488. package/five/model/tile3d/tile-request-scheduler.d.ts +17 -0
  489. package/five/model/tile3d/tile.d.ts +79 -0
  490. package/five/model/tile3d/tileset-base-traverser.d.ts +59 -0
  491. package/five/model/tile3d/tileset-most-detail-traverser.d.ts +14 -0
  492. package/five/model/tile3d/tileset-normal-traverser.d.ts +15 -0
  493. package/five/model/tile3d/tileset-skip-traverser.d.ts +60 -0
  494. package/five/model/tile3d/tileset.d.ts +65 -0
  495. package/five/model/tile3d/trajectory-content.d.ts +0 -0
  496. package/five/model/tile3d/trajectory-node.d.ts +15 -0
  497. package/five/model/tile3d/trajectory.d.ts +30 -0
  498. package/five/model/tile3d/types.d.ts +33 -0
  499. package/five/model/view-layer.d.ts +20 -0
  500. package/five/renderer/compute-renderers/pointcloud-compute-renderer.d.ts +154 -0
  501. package/five/renderer/compute-renderers/rgb565.d.ts +45 -0
  502. package/five/renderer/compute-renderers/shaders/clear.d.ts +2 -0
  503. package/five/renderer/compute-renderers/shaders/fullscreenQuad.d.ts +2 -0
  504. package/five/renderer/compute-renderers/shaders/rasterize.d.ts +2 -0
  505. package/five/renderer/five-renderer.d.ts +33 -0
  506. package/five/renderer/index.d.ts +3 -0
  507. package/five/renderer/postprocessing/composer.d.ts +45 -0
  508. package/five/renderer/postprocessing/index.d.ts +8 -0
  509. package/five/renderer/postprocessing/passes/adaptive-luminance-pass.d.ts +27 -0
  510. package/five/renderer/postprocessing/passes/eye-dome-lighting-pass.d.ts +31 -0
  511. package/five/renderer/postprocessing/passes/flowing-fireworks-3d-pass.d.ts +71 -0
  512. package/five/renderer/postprocessing/passes/flowing-light-2d-pass.d.ts +26 -0
  513. package/five/renderer/postprocessing/passes/flowing-light-3d-pass.d.ts +75 -0
  514. package/five/renderer/postprocessing/passes/gaussian-blur-pass.d.ts +22 -0
  515. package/five/renderer/postprocessing/passes/pass.d.ts +38 -0
  516. package/five/renderer/scene-renderers/scene-renderer.d.ts +9 -0
  517. package/five/renderer/tools/full-screen-quad.d.ts +17 -0
  518. package/five/renderer/tools/postprocess-uv.d.ts +11 -0
  519. package/five/renderer/tools/render-cube-to-equirectangular.d.ts +7 -0
  520. package/five/renderer/tools/render-full-screen-depth.d.ts +2 -0
  521. package/five/renderer/tools/render-full-screen.d.ts +2 -0
  522. package/five/texture/histogram.d.ts +54 -0
  523. package/five/texture/imageBitmap.d.ts +13 -0
  524. package/five/texture/initTexture.d.ts +3 -0
  525. package/five/texture/loader.d.ts +39 -0
  526. package/five/texture/textureData.d.ts +11 -0
  527. package/five/thirdparty/fflate.d.ts +1407 -0
  528. package/five/thirdparty/hammer.d.ts +375 -0
  529. package/five/thirdparty/jsrsasign.d.ts +753 -0
  530. package/five/thirdparty/meshopt_decoder.d.ts +15 -0
  531. package/five/three-version-check.d.ts +1 -0
  532. package/five/types/addableObject.d.ts +12 -0
  533. package/five/types/cube.d.ts +2 -0
  534. package/five/types/gestureInput.d.ts +24 -0
  535. package/five/types/imageOptions.d.ts +20 -0
  536. package/five/types/intersectMeshInterface.d.ts +8 -0
  537. package/five/types/movePanoEffect.d.ts +13 -0
  538. package/five/types/movePanoOptions.d.ts +36 -0
  539. package/five/types/panoCircleMeshInterface.d.ts +34 -0
  540. package/five/types/plugin.d.ts +25 -0
  541. package/five/types/pose.d.ts +17 -0
  542. package/five/types/state.d.ts +20 -0
  543. package/five/types/viewport.d.ts +22 -0
  544. package/five/utils/ajax.d.ts +66 -0
  545. package/five/utils/animationFrameLoop.d.ts +45 -0
  546. package/five/utils/array.d.ts +31 -0
  547. package/five/utils/asyncTaskQueue.d.ts +8 -0
  548. package/five/utils/bufferGeometry.d.ts +33 -0
  549. package/five/utils/calculateProgress.d.ts +39 -0
  550. package/five/utils/calculateThreeMouse.d.ts +13 -0
  551. package/five/utils/canplayVideo.d.ts +2 -0
  552. package/five/utils/clamp.d.ts +2 -0
  553. package/five/utils/clock.d.ts +30 -0
  554. package/five/utils/createSymbol.d.ts +5 -0
  555. package/five/utils/decodeText.d.ts +2 -0
  556. package/five/utils/deepEqual.d.ts +2 -0
  557. package/five/utils/deepFreeze.d.ts +2 -0
  558. package/five/utils/defineProperty.d.ts +9 -0
  559. package/five/utils/detector.d.ts +14 -0
  560. package/five/utils/distance.d.ts +10 -0
  561. package/five/utils/draco.d.ts +26 -0
  562. package/five/utils/easing.d.ts +63 -0
  563. package/five/utils/event.d.ts +159 -0
  564. package/five/utils/face3.d.ts +12 -0
  565. package/five/utils/formatRad.d.ts +7 -0
  566. package/five/utils/hdr-data.d.ts +13 -0
  567. package/five/utils/imageSupport.d.ts +6 -0
  568. package/five/utils/imageURL.d.ts +42 -0
  569. package/five/utils/isEmptyObject.d.ts +2 -0
  570. package/five/utils/isNil.d.ts +6 -0
  571. package/five/utils/isNumber.d.ts +2 -0
  572. package/five/utils/isPowerOfTwo.d.ts +2 -0
  573. package/five/utils/isPromise.d.ts +2 -0
  574. package/five/utils/isSimilar.d.ts +6 -0
  575. package/five/utils/json.d.ts +7 -0
  576. package/five/utils/ktx2.d.ts +30 -0
  577. package/five/utils/lzma/index.d.ts +2 -0
  578. package/five/utils/lzma/lzma.d.ts +3 -0
  579. package/five/utils/lzma/lzmaWASM.d.ts +2 -0
  580. package/five/utils/lzma/lzmaWorker.d.ts +14 -0
  581. package/five/utils/memoryUsage.d.ts +37 -0
  582. package/five/utils/motion.d.ts +38 -0
  583. package/five/utils/noop.d.ts +6 -0
  584. package/five/utils/now.d.ts +7 -0
  585. package/five/utils/pano.d.ts +9 -0
  586. package/five/utils/pick.d.ts +3 -0
  587. package/five/utils/poseUtils.d.ts +5 -0
  588. package/five/utils/renderCubeTextureToCubeRenderTarget.d.ts +3 -0
  589. package/five/utils/renderDepth.d.ts +2 -0
  590. package/five/utils/renderTexturesToCubeRenderTarget.d.ts +10 -0
  591. package/five/utils/requestPermission.d.ts +3 -0
  592. package/five/utils/shaderContentFix.d.ts +7 -0
  593. package/five/utils/shaderMaterial.d.ts +20 -0
  594. package/five/utils/stateUtils.d.ts +5 -0
  595. package/five/utils/string-pattern.d.ts +8 -0
  596. package/five/utils/subscribe.d.ts +67 -0
  597. package/five/utils/tileCube.d.ts +19 -0
  598. package/five/utils/toFastProperties.d.ts +1 -0
  599. package/five/utils/typedCache.d.ts +10 -0
  600. package/five/utils/uniform.d.ts +15 -0
  601. package/five/utils/url.d.ts +35 -0
  602. package/five/utils/uuid.d.ts +5 -0
  603. package/five/utils/values.d.ts +2 -0
  604. package/five/utils/vectorCoordinates.d.ts +29 -0
  605. package/five/utils/volume.d.ts +111 -0
  606. package/five/utils/worker.d.ts +26 -0
  607. package/five/work/_ALLOW_HOST.d.ts +2 -0
  608. package/five/work/index.d.ts +6 -0
  609. package/five/work/keychain.d.ts +5 -0
  610. package/five/work/looseWorkType.d.ts +128 -0
  611. package/five/work/verify.d.ts +7 -0
  612. package/five/work/work.d.ts +246 -0
  613. package/five/work/workFetcher.d.ts +4 -0
  614. package/five/work/workJson.d.ts +3 -0
  615. package/five/work/workJsonType.d.ts +73 -0
  616. package/five/work/workObserverUtils.d.ts +36 -0
  617. package/five/work/workParser.d.ts +6 -0
  618. package/five/work/workResolvedObserver.d.ts +12 -0
  619. package/five/work/workVerify.d.ts +2 -0
  620. package/five/work/works.d.ts +10 -0
  621. package/llms.txt +66 -0
  622. package/package.json +56 -0
  623. package/plugins/BasePlugin/index.d.ts +96 -0
  624. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.d.ts +66 -0
  625. package/plugins/GaussianSplattingEntranceAnimationPlugin/index.d.ts +5 -0
  626. package/plugins/GaussianSplattingEntranceAnimationPlugin/typing.d.ts +32 -0
  627. package/plugins/index.d.ts +2 -0
  628. package/plugins/index.js +255 -0
  629. package/plugins/index.mjs +539 -0
  630. package/plugins/utils/absoluteUrl.d.ts +5 -0
  631. package/react/autoCanvas.d.ts +9 -0
  632. package/react/canvas.d.ts +19 -0
  633. package/react/context.d.ts +12 -0
  634. package/react/createProvider.d.ts +98 -0
  635. package/react/createStore.d.ts +144 -0
  636. package/react/fiveApp.d.ts +22 -0
  637. package/react/hooks/unsafe__useFiveInstance.d.ts +9 -0
  638. package/react/hooks/useFiveAction.d.ts +147 -0
  639. package/react/hooks/useFiveCameraDirection.d.ts +7 -0
  640. package/react/hooks/useFiveCameraRaycaster.d.ts +7 -0
  641. package/react/hooks/useFiveCurrentObserver.d.ts +11 -0
  642. package/react/hooks/useFiveCurrentState.d.ts +15 -0
  643. package/react/hooks/useFiveEventCallback.d.ts +12 -0
  644. package/react/hooks/useFiveFloor.d.ts +15 -0
  645. package/react/hooks/useFiveHelper.d.ts +14 -0
  646. package/react/hooks/useFiveModelBounding.d.ts +5 -0
  647. package/react/hooks/useFiveModelEffect.d.ts +14 -0
  648. package/react/hooks/useFiveModelIntersectRaycaster.d.ts +22 -0
  649. package/react/hooks/useFiveModelReadyState.d.ts +8 -0
  650. package/react/hooks/useFivePlugin.d.ts +22 -0
  651. package/react/hooks/useFiveProject2d.d.ts +21 -0
  652. package/react/hooks/useFiveSceneEffect.d.ts +21 -0
  653. package/react/hooks/useFiveState.d.ts +6 -0
  654. package/react/hooks/useFiveWork.d.ts +29 -0
  655. package/react/index.d.ts +28 -0
  656. package/react/index.js +255 -0
  657. package/react/index.mjs +896 -0
  658. package/react/withFive.d.ts +213 -0
  659. package/resource/basis/1.16/basis_transcoder.js +22 -0
  660. package/resource/basis/1.16/basis_transcoder.wasm +0 -0
  661. package/resource/basis/README.md +5 -0
  662. package/resource/draco/1.5.6/draco_decoder.js +34 -0
  663. package/resource/draco/1.5.6/draco_decoder.wasm +0 -0
  664. package/resource/draco/1.5.6/draco_decoder_gltf.js +33 -0
  665. package/resource/draco/1.5.6/draco_decoder_gltf.wasm +0 -0
  666. package/resource/draco/1.5.6/draco_encoder.js +35 -0
  667. package/resource/draco/1.5.6/draco_encoder.wasm +0 -0
  668. package/resource/draco/1.5.6/draco_encoder_wrapper.js +97 -0
  669. package/resource/draco/1.5.6/draco_wasm_wrapper.js +117 -0
  670. package/resource/draco/1.5.6/draco_wasm_wrapper_gltf.js +116 -0
  671. package/resource/draco/README.md +5 -0
  672. package/umd/five-plugins.js +255 -0
  673. package/umd/five-react.js +255 -0
  674. package/umd/five.js +1579 -0
@@ -0,0 +1,274 @@
1
+ # Five SDK API Reference
2
+
3
+ This document provides a summary of the core API for the Five SDK, designed to be easily understood by AI assistants.
4
+
5
+ ## Core Class: `Five`
6
+
7
+ The `Five` class is the main entry point for the SDK. It manages the rendering, state, and interaction of the 3D scene.
8
+
9
+ ### Constructor
10
+
11
+ ```typescript
12
+ const five = new Five(initArgs?: FiveInitArgs);
13
+ ```
14
+
15
+ ### Properties
16
+
17
+ | Property | Type | Description |
18
+ | :--- | :--- | :--- |
19
+ | `five.state` | `State` | The current state (mode, position, etc.) of the instance. |
20
+ | `five.currentMode` | `Mode` | Shortcut to get the current display mode. |
21
+ | `five.panoIndex` | `number` | Shortcut to get the current panorama index. |
22
+ | `five.work` | `Work` | The currently loaded work data. |
23
+ | `five.model` | `Model` | The 3D model object. |
24
+ | `five.scene` | `THREE.Scene` | The Three.js scene used for non-model elements. |
25
+ | `five.modelScene` | `ModelScene` | The Three.js scene used for the model. |
26
+ | `five.camera` | `Camera` | The internal camera. |
27
+ | `five.renderer` | `THREE.WebGLRenderer` | The WebGL renderer. |
28
+ | `five.needsRender` | `boolean` | Set to `true` to request a render frame in the next loop. |
29
+ | `five.plugins` | `Object` | Access to registered plugins. |
30
+
31
+ ### Static Properties
32
+
33
+ | Property | Type | Description |
34
+ | :--- | :--- | :--- |
35
+ | `Five.Mode` | `Enum` | Available modes: `Panorama`, `Model`, `Floorplan`, `Topview`, `Mapview`, `VRPanorama`, `XRPanorama`. |
36
+
37
+ ## Initialization Configuration (`FiveInitArgs`)
38
+
39
+ Configuration object passed to the `Five` constructor.
40
+
41
+ ```typescript
42
+ interface FiveInitArgs {
43
+ /** External WebGLRenderer. If provided, internal renderer creation is skipped. */
44
+ renderer?: THREE.WebGLRenderer;
45
+
46
+ /** Width/Height of the viewport relative to container (0-1). */
47
+ viewport?: { left: number; bottom: number; width: number; height: number };
48
+
49
+ /** Canvas background color. Default: 0x181A1C */
50
+ backgroundColor?: number | THREE.Color;
51
+
52
+ /** Canvas background alpha (0-1). Default: 1 */
53
+ backgroundAlpha?: number;
54
+
55
+ /** Enable antialiasing. Default: false */
56
+ antialias?: boolean;
57
+
58
+ /** Auto-play rendering loop. Default: true */
59
+ play?: boolean;
60
+
61
+ /** Enable on-demand rendering to save battery. Default: true */
62
+ onlyRenderIfNeeds?: boolean;
63
+
64
+ /** Max FPS limit. false = unlimited. Default: false */
65
+ maxFps?: number | false;
66
+
67
+ /** Mode transition duration in ms. Default: 800 */
68
+ modeChangeDuration?: number;
69
+
70
+ /** Initial plugins to load. */
71
+ plugins?: FivePlugin[];
72
+
73
+ /** Dynamic image configuration for optimization. */
74
+ imageOptions?: ImageOptions;
75
+
76
+ /** Dynamic texture configuration for optimization. */
77
+ textureOptions?: TextureOptions;
78
+ }
79
+ ```
80
+
81
+ ## Core Methods
82
+
83
+ ### `load(work, state?, options?)`
84
+ Loads a "Work" (dataset) into the Five instance.
85
+
86
+ - **work**: The data object (`LooseWork` or `Work`) containing scene information.
87
+ - **state**: Initial state overrides. `"inherit"`, `"initial"`, or a `State` object.
88
+ - **options**: Loading options (e.g., transition duration).
89
+
90
+ ### `appendTo(element, size?)`
91
+ Mounts the Five canvas to a DOM element.
92
+
93
+ - **element**: HTMLElement to append to.
94
+ - **size**: Optional `{ width, height }`. Defaults to element size.
95
+
96
+ ### `setState(state, immediately?, userAction?)`
97
+ Updates the current state (position, mode, etc.).
98
+
99
+ - **state**: Partial `State` object to merge.
100
+ - **immediately**: If `true`, skips animation.
101
+ - **userAction**: Marks the change as triggered by user interaction.
102
+
103
+ ### `changeMode(mode, state?, options?)`
104
+ Switches the viewing mode (e.g., from `Panorama` to `Model`).
105
+
106
+ - **mode**: Target `Five.Mode`.
107
+ - **state**: Target state after mode change.
108
+ - **options**: Animation duration and effect.
109
+
110
+ ### `moveToPano(panoIndex, options?)`
111
+ Moves to a specific panorama spot.
112
+
113
+ - **panoIndex**: Index of the panorama.
114
+ - **options**: `{ effect?: MovePanoEffect, duration?: number }`.
115
+
116
+ ### `refresh(size?)`
117
+ Resizes the renderer to fit the container or specified size.
118
+
119
+ ### `getElement()`
120
+ Returns the `<canvas>` element used by Five.
121
+
122
+ ### `project2d(vector, testModel?)`
123
+ Projects a 3D point to 2D screen coordinates.
124
+
125
+ - **vector**: `THREE.Vector3` (World Space).
126
+ - **testModel**: `boolean` (default `false`). If `true`, checks for occlusion.
127
+ - **returns**: `THREE.Vector2` (Screen Space, px) or `null`.
128
+
129
+ ### `getPixels(x, y, width, height)`
130
+ Get pixel data from the renderer (e.g. for color picking or magnifier).
131
+
132
+ - **x, y**: Coordinate of the lower-left corner (Screen Space).
133
+ - **width, height**: Size of the rectangle.
134
+ - **returns**: `Uint8Array` (RGBA data).
135
+
136
+ ### `intersectRaycaster(raycaster)`
137
+ (On `five.model`) Performs raycasting against the scene models.
138
+
139
+ - **raycaster**: `THREE.Raycaster`.
140
+ - **returns**: `THREE.Intersection[]`.
141
+
142
+ ### `addPass(pass)`
143
+ Add a post-processing pass to the rendering chain.
144
+
145
+ - **pass**: `FivePass` instance (e.g. `Gaussian Blur Pass`).
146
+
147
+ ### `removePass(pass)`
148
+ Remove a post-processing pass from the rendering chain.
149
+
150
+ - **pass**: `FivePass` instance to remove.
151
+
152
+ ### `dispose()`
153
+ Destroys the Five instance and releases resources.
154
+
155
+ ## State Management
156
+
157
+ The `State` interface defines the complete status of the Five instance at any moment.
158
+
159
+ ```typescript
160
+ interface State {
161
+ mode: Mode; // Current view mode
162
+ panoIndex: number; // Current panorama index
163
+ workCode: string; // ID of the current work
164
+ latitude: number; // Camera latitude (radians)
165
+ longitude: number; // Camera longitude (radians)
166
+ distance: number; // Camera distance from target
167
+ fov: number; // Field of view
168
+ offset: THREE.Vector3; // Camera target offset
169
+ }
170
+ ```
171
+
172
+ ## Data Structures
173
+
174
+ ### `Work`
175
+ The main data object containing the scene description.
176
+
177
+ ```typescript
178
+ interface Work {
179
+ workCode: string; // Unique identifier
180
+ name: string; // Project name
181
+ observers: WorkObserver[]; // List of panorama points
182
+ model: WorkModel; // 3D model data
183
+ initial: WorkInitial; // Initial view state
184
+ transform: THREE.Matrix4; // World transform matrix
185
+ }
186
+ ```
187
+
188
+ ### `WorkObserver` (Panorama Point)
189
+ Represents a single panorama spot.
190
+
191
+ ```typescript
192
+ interface WorkObserver {
193
+ index: number; // Index in the list
194
+ floorIndex: number; // Floor number
195
+ position: THREE.Vector3; // Position in 3D space
196
+ quaternion: THREE.Quaternion; // Rotation relative to model
197
+ accessibleNodes: number[]; // Indices of reachable points
198
+ images: WorkImage; // Panorama image URLs
199
+ active: boolean; // Whether the point is enabled
200
+
201
+ // Coordinate Methods
202
+ getWorldPosition(): THREE.Vector3;
203
+ getWorldStandingPosition(): THREE.Vector3;
204
+
205
+ // UV Conversion Methods
206
+ vectorToEquirectangularUv(vector: THREE.Vector3, uvOrigin?: 'top-left' | 'bottom-left'): THREE.Vector2;
207
+ equirectangularUvToVector(uv: THREE.Vector2, uvOrigin?: 'top-left' | 'bottom-left'): THREE.Vector3;
208
+ vectorToCubemapUv(vector: THREE.Vector3, uvOrigin?: 'top-left' | 'bottom-left'): [CubeFace, THREE.Vector2];
209
+ cubemapUvToVector(cubeFace: CubeFace, uv: THREE.Vector2, uvOrigin?: 'top-left' | 'bottom-left'): THREE.Vector3;
210
+ }
211
+ ```
212
+
213
+ ## Events
214
+
215
+ `Five` extends `Subscribe`, allowing event listening via `.on()`, `.once()`, and `.off()`.
216
+
217
+ The SDK provides a modern event system (dot-notation, e.g., `gesture.tap`) which is recommended over the legacy system (camelCase, e.g., `wantsTapGesture`).
218
+
219
+ ### Recommended Events (Modern)
220
+
221
+ These events follow a standard naming convention and provide typed event objects.
222
+
223
+ #### Interaction & Gestures
224
+
225
+ | Event Name | Description | Payload |
226
+ | :--- | :--- | :--- |
227
+ | `gesture.tap` | Triggered on tap/click. Replaces `wantsTapGesture`. | `{ pointers, event, ... }` |
228
+ | `gesture.pan` | Triggered on pan/drag. | `{ pointers, ... }` |
229
+ | `gesture.pinch` | Triggered on pinch/zoom. | `{ scale, ... }` |
230
+ | `gesture.press` | Triggered on long press. | `{ pointers, ... }` |
231
+
232
+ #### State & Mode
233
+
234
+ | Event Name | Description | Payload |
235
+ | :--- | :--- | :--- |
236
+ | `mode.change` | Triggered when mode changes. | `ModeChangeEvent` |
237
+ | `state.change` | Triggered when state changes (frequent). | `StateEvent` |
238
+ | `camera.update` | Triggered when camera pose updates. | `CameraEvent` |
239
+
240
+ #### Lifecycle & Resources
241
+
242
+ | Event Name | Description | Payload |
243
+ | :--- | :--- | :--- |
244
+ | `works.load` | Triggered when work data starts loading. | `WorksEvent` |
245
+ | `models.load` | Triggered when models are loaded. | `ModelSceneEvent` |
246
+ | `model.tileLoad` | Triggered when a 3D tile is loaded. | `Tile` |
247
+ | `model.tileUnload` | Triggered when a 3D tile is unloaded. | `Tile` |
248
+ | `pano.arrived` | Triggered when arrival at a panorama node. | `PanoEvent` |
249
+ | `pano.texture.progress` | Triggered when panorama texture loading progresses. | `{ progress, panoIndex }` |
250
+ | `render` | Triggered after each render frame. | `RenderEvent` |
251
+ | `error` | Triggered on internal errors. | `Error` |
252
+
253
+ ### Legacy Events (Deprecated)
254
+
255
+ Older events are still supported for compatibility but should be avoided in new code.
256
+
257
+ | Legacy Event | Recommended Replacement | Notes |
258
+ | :--- | :--- | :--- |
259
+ | `wantsTapGesture` | `gesture.tap` | |
260
+ | `wantsPanGesture` | `gesture.pan` | |
261
+ | `modelLoaded` | `models.load` | |
262
+ | `initAnimationEnded` | `mode.change` | Check payload for details |
263
+
264
+ ### Usage Example
265
+
266
+ ```typescript
267
+ // Recommended: Use the new event system
268
+ five.on('gesture.tap', (event) => {
269
+ console.log('User tapped at:', event);
270
+ });
271
+
272
+ // Legacy (Avoid):
273
+ // five.on('wantsTapGesture', (raycaster) => { ... });
274
+ ```
@@ -0,0 +1,172 @@
1
+ # 3DTile (3D 瓦片)
2
+
3
+ - **Summary**: Five 用于加载和渲染大规模三维场景的核心模块,支持动态 LOD 调度与流式加载。
4
+ - **Schema**: 对应 `ParameterTilesetValue` 接口,通过 Parameter 配置 LOD、显存与并发控制。
5
+ - **Concepts**: LOD (细节层级), SSE (屏幕空间误差), Cache Management (显存管理), ViewLayer (视图层)。
6
+ - **Configuration**: 包含画质精度、显存配额、几何误差、并发请求等详细参数。
7
+ - **Examples**: 画质平衡与多图层优化。
8
+
9
+ ## Schema
10
+
11
+ > **Definition**: [ParameterTilesetValue](../../five/model/parameter.d.ts)
12
+
13
+ 以下是 `ParameterTilesetValue` 的 TypeScript 定义摘要:
14
+
15
+ ```typescript
16
+ export interface ParameterTilesetValue {
17
+ /** 屏幕空间误差阈值 (像素) */
18
+ maxScreenSpaceError: number;
19
+ /** 最大显存占用 (MB) */
20
+ maxMemoryUsage: number;
21
+ /** 最小几何误差 (精度上限锁) */
22
+ minGeometricError: number;
23
+ // ... 更多字段见下方配置表
24
+ }
25
+ ```
26
+
27
+ ## Concepts
28
+
29
+ ### 1. LOD & Screen Space Error (SSE)
30
+
31
+ LOD (Level of Detail) 是 3DTile 的核心机制。引擎不会一次性加载整个从宏观到微观的所有模型数据,而是根据相机位置动态计算每个瓦片的 **屏幕空间误差 (SSE)**。
32
+
33
+ * **Geometric Error (几何误差)**: 3D Tiles 数据源中定义的指标(单位:米),表示当前瓦片与真实物体之间的最大形状差异。
34
+ * **根节点**: 误差巨大(如 100米),仅有模糊轮廓。
35
+ * **叶子节点**: 误差极小(如 0.01米),细节丰富。
36
+ * **SSE 计算逻辑**: `SSE = (GeometricError / DistanceToCamera) * ScreenHeight`。
37
+ * **判定标准**: 如果 `SSE > maxScreenSpaceError`,说明当前瓦片在屏幕上看起来太粗糙(误差像素太大),需要分裂并加载下一级子瓦片;反之则停止细分。
38
+ * **调整影响**: 调低 `maxScreenSpaceError` 会迫使引擎加载更深层级的瓦片,从而获得更清晰的细节,但也会急剧增加渲染三角形数量和显存占用。
39
+
40
+ ### 2. 显存管理 (Cache Management)
41
+
42
+ 为了在浏览器有限的资源下渲染海量数据(如城市级倾斜摄影),3DTile 实现了基于 LRU (Least Recently Used) 的缓存淘汰机制和动态画质调整策略。
43
+
44
+ * **LRU 淘汰**: 当 `maxMemoryUsage` 超限时,引擎会优先保留当前视锥体内的瓦片。视锥体外的、或者距离相机较远的瓦片会被优先释放。
45
+ * **动态画质调整 (Dynamic Scaling)**: 如果开启了 `memoryAdjustedScreenSpaceError`,引擎会以 `maxMemoryUsage` 为目标,实时调整 SSE。
46
+ * **目标**: 尽量跑满 `maxMemoryUsage` 设定的显存额度,不浪费资源。
47
+ * **范围**: 实际 SSE 会在 `1.0` (极高画质) 到 `maxScreenSpaceError` (设定底线) 之间波动。
48
+ * **场景**: 适合显存充足但希望自动平衡画质的场景。
49
+
50
+ ### 3. ViewLayer 与 3DTile
51
+
52
+ 目前所有的 `ViewLayer` 在底层都是一个 `Tile3D` 实例。它们各自拥有独立的:
53
+ * **配置**: `maxScreenSpaceError`, `maxMemoryUsage` 等参数互不干扰。
54
+ * **缓存**: 显存配额各自独立计算。
55
+
56
+ > **注意**: 即使是通过 `file_url` 加载的单体模型(如 `.obj`, `.at3d`),在 Five 内部也会被封装为 `Tile3D` 实例进行统一管理。
57
+
58
+ ## Configuration
59
+
60
+ 以下表格列出了控制 3DTile 加载与性能调度的所有可用参数。
61
+
62
+ ### Core Quality & Performance (核心画质与性能)
63
+
64
+ | Parameter | Type | Default | Description |
65
+ | :--- | :--- | :--- | :--- |
66
+ | `maxScreenSpaceError` | `number` | `16` | **核心参数**。屏幕空间误差阈值 (像素)。<br>值越小画质越高,性能开销越大。建议范围 8-32。 |
67
+ | `maxMemoryUsage` | `number` | `512` | 最大显存占用 (MB)。超限后自动触发 LRU 淘汰机制。 |
68
+ | `memoryAdjustedScreenSpaceError` | `boolean` | `false` | 是否开启基于内存的动态 SSE 调整。<br>开启后引擎会自动调整 SSE 以尽量占满显存配额。 |
69
+ | `cameraCulling` | `boolean` | `true` | 是否开启视锥体剔除 (不加载视野外的瓦片)。**建议始终开启**。 |
70
+
71
+ ### Geometric Error Control (几何误差控制)
72
+
73
+ | Parameter | Type | Default | Description |
74
+ | :--- | :--- | :--- | :--- |
75
+ | `minGeometricError` | `number` | `0` | 最小几何误差 (精度上限锁)。<br>当瓦片误差小于此值时停止细分。可用于限制过高精度的加载。 |
76
+ | `maxGeometricError` | `number` | `10000` | 最大几何误差 (最低精度保证)。<br>强制细分直到误差小于此值。可用于避免模型过于模糊。 |
77
+
78
+ ### Network & Loading (网络与加载)
79
+
80
+ | Parameter | Type | Default | Description |
81
+ | :--- | :--- | :--- | :--- |
82
+ | `maxRequests` | `number` | `4` | 最大并发请求数。建议保持默认,避免网络拥堵。 |
83
+ | `requestOrder` | `string` | `'SCREEN_SPACE_ERROR'` | 请求优先级策略。<br>`'SCREEN_SPACE_ERROR'`: 优先加载 SSE 大的瓦片;<br>`'SCREEN_LEVEL_VERTICAL'`: 优先加载垂直层级高的。 |
84
+ | `loadSiblings` | `boolean` | `true` | 是否预加载兄弟节点。 |
85
+ | `skipLevelOfDetail` | `boolean` | `false` | 是否允许跳级加载 (跳过中间层级直接加载高精瓦片)。 |
86
+
87
+ ### Legacy LOD Control (不推荐)
88
+
89
+ | Parameter | Type | Default | Description |
90
+ | :--- | :--- | :--- | :--- |
91
+ | `minLevelOfDetail` | `number` | `0` | 最小 LOD 层级 (Tree Depth)。建议使用 `maxGeometricError` 替代。 |
92
+ | `maxLevelOfDetail` | `number` | `20` | 最大 LOD 层级 (Tree Depth)。建议使用 `minGeometricError` 替代。 |
93
+
94
+ ## Examples
95
+
96
+ ### 1. Adjusting Quality & Memory (调整画质与内存平衡)
97
+
98
+ 在移动端或性能受限设备上,建议适当降低画质以保证流畅度。
99
+
100
+ ```typescript
101
+ const parameter = five.modelScene.parameter;
102
+
103
+ // 1. 性能优先模式 (适用于低端设备)
104
+ // 增大 SSE 阈值,降低画质
105
+ parameter.set('maxScreenSpaceError', 16);
106
+ // 限制显存,防止 Crash
107
+ parameter.set('maxMemoryUsage', 256);
108
+
109
+ // 2. 画质优先模式 (适用于桌面端/截图)
110
+ // 减小 SSE 阈值,提升细节
111
+ parameter.set('maxScreenSpaceError', 4);
112
+ // 允许更多显存占用
113
+ parameter.set('maxMemoryUsage', 1024);
114
+
115
+ // 3. 重置为默认
116
+ parameter.reset('maxScreenSpaceError', 'maxMemoryUsage');
117
+ ```
118
+
119
+ ### 2. Multi-ViewLayer Optimization (多 ViewLayer 优化)
120
+
121
+ 在对比查看或多楼层场景中,通常存在多个 `ViewLayer`。为了避免资源竞争,建议对非焦点的 ViewLayer 进行降级处理。
122
+
123
+ ```typescript
124
+ // 假设 viewLayerA 是当前主要查看的模型,viewLayerB 是背景参考
125
+
126
+ // 聚焦 ViewLayerA: 正常画质
127
+ viewLayerA.parameter.reset('maxScreenSpaceError');
128
+
129
+ // 降级 ViewLayerB: 仅显示轮廓,节省资源
130
+ viewLayerB.parameter.set('maxScreenSpaceError', 48); // 极低画质
131
+ viewLayerB.parameter.set('maxMemoryUsage', 128); // 极低显存配额
132
+ ```
133
+
134
+ ## Debugging
135
+
136
+ 在开发过程中,可以通过访问 `ViewLayer` 内部的 `tileset` 对象来实时监控渲染状态。
137
+
138
+ ```typescript
139
+ // 假设已获取 viewLayer 实例
140
+ const tileset = viewLayer.tileset;
141
+
142
+ // 1. 查看当前加载的瓦片数量
143
+ console.log(tileset.loadedTiles.size);
144
+
145
+ // 2. 查看当前实际生效的 SSE (如果开启了动态调整,此值会波动)
146
+ console.log(tileset.currentMaxScreenSpaceError);
147
+
148
+ // 3. 查看显存占用 (近似值,单位字节)
149
+ // 注意: 这是内部私有属性,仅供调试参考
150
+ console.log((tileset as any).cacheMemoryUsageInBytes / 1024 / 1024 + ' MB');
151
+ ```
152
+
153
+ ## Common Pitfalls
154
+
155
+ 1. **误解 GeometricError 作用域**: `minGeometricError` 和 `maxGeometricError` 是**全局硬约束**,不随相机距离变化。
156
+ * 错误设置(例如将 `maxGeometricError` 设得极小)会强制全场景所有瓦片(哪怕是远处的背景)都加载到极高精度。
157
+ * 这会导致三角形数量和显存占用**指数级爆炸**,瞬间卡死浏览器。
158
+ 2. **过度降低 `maxScreenSpaceError`**: 设置过小(如 < 4)可能导致每帧需要加载和渲染的三角形数量指数级上升,瞬间撑爆显存或导致掉帧。
159
+ 3. **忽略 `cameraCulling`**: 默认应该开启。如果手动关闭视锥体剔除,引擎将尝试加载全场景数据,极易导致崩溃。
160
+ 4. **频繁切换配置**: `maxMemoryUsage` 等参数的修改会触发缓存整理,高频修改可能导致卡顿。
161
+
162
+ ## Related
163
+
164
+ * [Parameter](./parameter.md): 了解参数的继承关系及材质、点云相关配置。
165
+ * [Model](./model.md): 了解 Model 和 ViewLayer 的关系。
166
+ * [Work](./work.md): 了解 Work 数据结构。
167
+
168
+ ---
169
+
170
+ ```yaml
171
+ tags: [3dtile, viewLayer, performance, lod, optimization]
172
+ ```
@@ -0,0 +1,205 @@
1
+ # 相机动画 (Camera Animation)
2
+
3
+ - **Summary**: 介绍如何在 Five 中通过编程方式控制相机运动,包括旋转、位移、全景切换以及模态转换时的动画效果。
4
+ - **Schema**: `State` (状态), `MovePanoOptions` (移动参数)。
5
+ - **Concepts**: Pose (位姿), Animation Loop, Easing (缓动), Fly/Fade Effect。
6
+ - **Configuration**: `modeChangeDuration`, `movePanoOptions`。
7
+ - **Examples**: 旋转视角、切换全景点、模态切换动画。
8
+
9
+ ## Schema
10
+
11
+ ### MovePanoOptions
12
+
13
+ > **Definition**: [MovePanoOptions](../../five/types/movePanoOptions.d.ts)
14
+
15
+ 点位移动参数配置。
16
+
17
+ ```typescript
18
+ interface MovePanoOptions extends Partial<Omit<State, "offset" | 'distance' | 'mode'>> {
19
+ /** 动画效果: 'fly' | 'fade' | 'instant' ... */
20
+ effect?: MovePanoEffect;
21
+ /** 走点图片过度策略 */
22
+ effectEasing?: (progress: number) => number;
23
+ /**
24
+ * 运动耗时 (ms)
25
+ * - number: 固定时长
26
+ * - function: (distance, speed) => number 根据距离动态计算
27
+ */
28
+ duration?: number | ((distance: number, speed: number) => number) | string | null;
29
+ /** 运动开始回调 */
30
+ moveStartCallback?: (toState: State) => void;
31
+ /** 运动结束回调 */
32
+ moveEndCallback?: (state: State) => void;
33
+ /** 运动被取消回调 */
34
+ moveCancelCallback?: () => void;
35
+ }
36
+ ```
37
+
38
+ ### MovePanoEffect
39
+
40
+ ```typescript
41
+ type MovePanoEffect =
42
+ | "fly" // 通过相机移动方式变化 (默认)
43
+ | "instant" // 直接变化 (无动画)
44
+ | "fade" // 通过渐变方式变化
45
+ | "model"; // 通过过度到模型
46
+ ```
47
+
48
+ ## Core Methods (核心方法)
49
+
50
+ Five 提供了多种层级的 API 来控制相机动画。
51
+
52
+ ### 1. setState
53
+
54
+ 最通用的状态更新方法。可以通过修改 `longitude` / `latitude` (旋转) 或 `fov` (缩放) 来产生动画。
55
+
56
+ ```typescript
57
+ five.setState(state: Partial<State>, immediately?: boolean): void
58
+ ```
59
+
60
+ * `state`: 目标状态 (包含 mode, panoIndex, longitude, latitude, fov 等)。
61
+ * `immediately`: 是否立即跳转 (无动画)。默认为 `false` (有动画)。
62
+
63
+ ### 2. moveToPano
64
+
65
+ 专用于全景点位之间的切换。支持 "飞行" (Fly) 和 "渐变" (Fade) 两种效果。
66
+
67
+ ```typescript
68
+ five.moveToPano(panoIndex: number, options?: MovePanoOptions): Promise<void>
69
+ ```
70
+
71
+ * `options.effect`: 切换效果。`'fly'` (空间飞行) 或 `'fade'` (淡入淡出)。
72
+ * `options.duration`: 动画时长 (ms)。
73
+ * `options.moveEndCallback`: 动画结束回调。
74
+
75
+ ### 3. changeMode
76
+
77
+ 切换交互模式 (如从全景切换到模型鸟瞰)。
78
+
79
+ ```typescript
80
+ five.changeMode(mode: Mode, options?, animationOptions?): Promise<void>
81
+ ```
82
+
83
+ ## Concepts
84
+
85
+ ### Pose (位姿)
86
+
87
+ 相机的状态主要由位姿描述:
88
+
89
+ * **Longitude (经度)**: 水平旋转角度 (0 - 2π)。
90
+ * **Latitude (纬度)**: 垂直旋转角度 (-π/2 - π/2)。
91
+ * **FOV (视场角)**: 相机可视范围角度。
92
+
93
+ ### Animation Effects (动画效果)
94
+
95
+ * **Linear / Easing**: 大多数 `setState` 产生的旋转和缩放动画使用平滑的缓动函数 (Ease-in-out)。
96
+ * **Fly (飞行)**: 模拟真实空间中的移动,相机位置会发生物理位移。适用于 `Panorama` 模式下的点位切换。
97
+ * **Fade (渐变)**: 保持相机位置不变,通过透明度渐变切换场景。适用于距离较远或不通视的点位切换。
98
+
99
+ ## Configuration
100
+
101
+ ### Global Configuration (全局配置)
102
+
103
+ 在 `new Five(config)` 初始化时可以设置全局动画参数:
104
+
105
+ | Parameter | Type | Default | Description |
106
+ | :--- | :--- | :--- | :--- |
107
+ | `modeChangeDuration` | `number` | `1000` | 模态切换 (如 Panorama -> Mapview) 的默认时长 (ms)。 |
108
+
109
+ ### MovePanoOptions Configuration (移动参数)
110
+
111
+ 调用 `five.moveToPano(index, options)` 时使用的配置参数:
112
+
113
+ | Parameter | Type | Default | Description |
114
+ | :--- | :--- | :--- | :--- |
115
+ | `effect` | `MovePanoEffect` | `'fly'` | 动画效果。<br>`'fly'`: 空间移动(模拟行走);<br>`'fade'`: 淡入淡出(保持位置不变);<br>`'instant'`: 瞬间跳转。 |
116
+ | `duration` | `number` \| `Function` | - | 动画时长 (ms)。若不传,则根据距离和速度自动计算。 |
117
+ | `effectEasing` | `Function` | - | 自定义过渡效果的缓动函数。 |
118
+ | `moveEndCallback` | `Function` | - | 动画结束后的回调函数。 |
119
+
120
+ ## Examples
121
+
122
+ ### 1. 旋转视角 (Rotate Camera)
123
+
124
+ 平滑旋转到指定角度。
125
+
126
+ ```typescript
127
+ // 旋转到水平 0 度,垂直 0 度
128
+ five.setState({
129
+ longitude: 0,
130
+ latitude: 0
131
+ });
132
+
133
+ // 立即跳转 (无动画)
134
+ five.setState({ longitude: Math.PI }, true);
135
+ ```
136
+
137
+ ### 2. 切换全景点 (Change Pano)
138
+
139
+ 模拟行走效果切换到下一个房间。
140
+
141
+ ```typescript
142
+ // 飞向索引为 2 的全景点
143
+ five.moveToPano(2, {
144
+ effect: 'fly', // 飞行效果
145
+ duration: 1500, // 1.5秒
146
+ moveEndCallback: () => {
147
+ console.log("到达目的地");
148
+ }
149
+ });
150
+ ```
151
+
152
+ ### 3. 模态切换 (Change Mode)
153
+
154
+ 从全景模式切换到户型图模式。
155
+
156
+ ```typescript
157
+ // 切换到 Floorplan 模式
158
+ five.changeMode('Floorplan');
159
+
160
+ // 切换回 Panorama 模式,并指定进入时的视角
161
+ five.setState({
162
+ mode: 'Panorama',
163
+ panoIndex: 0,
164
+ longitude: Math.PI / 2
165
+ });
166
+ ```
167
+
168
+ ### 4. 自动巡更 (Auto Tour)
169
+
170
+ 通过连续调用 `setState` 或 `moveToPano` 实现简单的自动导览。
171
+
172
+ ```typescript
173
+ async function startTour() {
174
+ // 1. 先看天花板
175
+ five.setState({ latitude: Math.PI / 3 });
176
+ await wait(2000); // 等待动画完成
177
+
178
+ // 2. 移动到下一个点
179
+ await five.moveToPano(1, { effect: 'fly' });
180
+
181
+ // 3. 切换到模型鸟瞰
182
+ await five.changeMode('Mapview');
183
+ }
184
+
185
+ function wait(ms: number) {
186
+ return new Promise(resolve => setTimeout(resolve, ms));
187
+ }
188
+ ```
189
+
190
+ ## Common Pitfalls
191
+
192
+ 1. **并发调用**: 尽量避免在动画过程中再次调用 `setState`,这可能会打断当前动画或导致状态突变。建议使用 `Promise` 或回调等待动画结束。
193
+ 3. **相机位姿**: 确保传入的 `longitude` / `latitude` 符合 Five 的坐标系定义 (Y-up, 右手系)。
194
+
195
+ ## Related
196
+
197
+ * [Five](./five.md): Five 核心类及 `setState` 方法。
198
+ * [Mode](./mode.md): 各种交互模式说明。
199
+ * [State](./state.md): 状态对象的完整定义。
200
+
201
+ ---
202
+
203
+ ```yaml
204
+ tags: [camera-animation, pose, state]
205
+ ```