@realsee/five 6.8.0-alpha.3 → 6.8.0-alpha.31

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 (764) hide show
  1. package/AGENTS_READ_ME.md +6 -1
  2. package/AI_CONTEXT.md +6 -1
  3. package/README.md +10 -6
  4. package/ai_guides/README.md +40 -2
  5. package/ai_guides/ai-doc-guidelines.md +31 -1
  6. package/ai_guides/api.md +107 -13
  7. package/ai_guides/features/3dtile.md +49 -141
  8. package/ai_guides/features/camera-animation.md +42 -4
  9. package/ai_guides/features/clipper.md +4 -2
  10. package/ai_guides/features/{coordnate-system.md → coordinate-system.md} +22 -2
  11. package/ai_guides/features/event.md +108 -10
  12. package/ai_guides/features/five.md +20 -16
  13. package/ai_guides/features/flowing-light-2d-pass.md +442 -0
  14. package/ai_guides/features/flowing-light-3d-pass.md +425 -0
  15. package/ai_guides/features/gaussian-blur-pass.md +202 -0
  16. package/ai_guides/features/gesture.md +4 -1
  17. package/ai_guides/features/get-screen-pixels.md +4 -2
  18. package/ai_guides/features/image-options.md +5 -2
  19. package/ai_guides/features/load-external-model.md +27 -2
  20. package/ai_guides/features/load-progress.md +140 -0
  21. package/ai_guides/features/material.md +159 -0
  22. package/ai_guides/features/mode.md +5 -1
  23. package/ai_guides/features/model.md +5 -2
  24. package/ai_guides/features/move-pano-effect.md +3 -1
  25. package/ai_guides/features/multi-work.md +3 -1
  26. package/ai_guides/features/pano-filter.md +149 -0
  27. package/ai_guides/features/pano-tile.md +8 -15
  28. package/ai_guides/features/pano-uv.md +131 -0
  29. package/ai_guides/features/parameter.md +117 -118
  30. package/ai_guides/features/plugin.md +210 -0
  31. package/ai_guides/features/postprocessing.md +40 -5
  32. package/ai_guides/features/raycast.md +16 -2
  33. package/ai_guides/features/request-proxy.md +3 -1
  34. package/ai_guides/features/screen-project.md +4 -1
  35. package/ai_guides/features/state.md +25 -3
  36. package/ai_guides/features/view-layer.md +187 -0
  37. package/ai_guides/features/work.md +64 -3
  38. package/ai_guides/glossary.md +28 -7
  39. package/ai_guides/intro.md +1 -1
  40. package/ai_guides/quick-start.md +1 -0
  41. package/ai_guides/release_notes/6.8.md +222 -0
  42. package/ai_guides/template.md +28 -3
  43. package/docs/00_FOR_AI_AGENTS.md +3 -2
  44. package/docs/README.md +3 -2
  45. package/docs/assets/hierarchy.js +1 -1
  46. package/docs/assets/main.js +1 -1
  47. package/docs/assets/navigation.js +1 -1
  48. package/docs/assets/search.js +1 -1
  49. package/docs/classes/five.AdaptiveLuminancePass.html +7 -6
  50. package/docs/classes/five.AnimationFrameLoop.html +1 -1
  51. package/docs/classes/five.BoundingMesh.html +2 -2
  52. package/docs/classes/five.Camera.html +3 -3
  53. package/docs/classes/five.EyeDomeLightingPass.html +1 -1
  54. package/docs/classes/five.Five.html +77 -76
  55. package/docs/classes/five.FivePass.html +1 -1
  56. package/docs/classes/five.Histogram.html +19 -0
  57. package/docs/classes/five.InternalWebGLRenderer.html +1 -1
  58. package/docs/classes/five.Model.html +32 -32
  59. package/docs/classes/five.ModelScene.html +1 -1
  60. package/docs/classes/five.NetworkSubscribe.html +5 -5
  61. package/docs/classes/five.PBMContainer.html +1 -1
  62. package/docs/classes/five.PBMCustomShader.html +42 -3
  63. package/docs/classes/five.PBMGSObject.html +5 -3
  64. package/docs/classes/five.PBMGroup.html +1 -1
  65. package/docs/classes/five.PBMMesh.html +1 -1
  66. package/docs/classes/five.PBMMeshMaterial.html +16 -7
  67. package/docs/classes/five.PBMPanoFilter.html +61 -0
  68. package/docs/classes/five.PBMPointCloud.html +1 -1
  69. package/docs/classes/five.PBMPointCloudMaterial.html +5 -6
  70. package/docs/classes/five.PBMSkinnedMesh.html +1 -1
  71. package/docs/classes/five.PBMUpdateable.html +41 -0
  72. package/docs/classes/five.PanoCircleMesh.html +1 -1
  73. package/docs/classes/five.PanoCircleMeshCustom.html +1 -1
  74. package/docs/classes/five.PanoCircleMeshSolid.html +1 -1
  75. package/docs/classes/five.Parameter.html +59 -55
  76. package/docs/classes/five.Scene.html +1 -1
  77. package/docs/classes/five.Subscribe.html +5 -5
  78. package/docs/classes/five.Tile.html +1 -1
  79. package/docs/classes/five.Tile3D.html +30 -26
  80. package/docs/classes/five.TileNode.html +1 -1
  81. package/docs/classes/five.Tileset.html +3 -2
  82. package/docs/classes/five.Trajectory.html +1 -1
  83. package/docs/classes/five.TrajectoryNode.html +1 -1
  84. package/docs/classes/five.Work.html +16 -16
  85. package/docs/classes/five.WorkResolvedObserver.html +41 -16
  86. package/docs/classes/gltf-loader.DDSLoader.html +1 -1
  87. package/docs/classes/gltf-loader.DRACOLoader.html +1 -1
  88. package/docs/classes/gltf-loader.GLTFLoader.html +2 -2
  89. package/docs/classes/gltf-loader.GLTFObject.html +1 -1
  90. package/docs/classes/gltf-loader.GLTFParser.html +1 -1
  91. package/docs/classes/gltf-loader.THREEGLTFLoader.html +2 -2
  92. package/docs/classes/line.Line.html +1 -1
  93. package/docs/classes/line.LineGeometry.html +1 -1
  94. package/docs/classes/line.LineMaterial.html +1 -1
  95. package/docs/classes/line.LineSegmentsGeometry.html +1 -1
  96. package/docs/classes/line.THREE_Line2.html +1 -1
  97. package/docs/classes/line.THREE_LineSegments2.html +1 -1
  98. package/docs/classes/plugins.BasePlugin.Controller.html +1 -1
  99. package/docs/classes/plugins.CSS3DObject.html +9 -0
  100. package/docs/classes/plugins.CSS3DRenderer.html +4 -2
  101. package/docs/classes/plugins.CSS3DSprite.html +11 -0
  102. package/docs/classes/plugins.RoundedBoxGeometry.html +1 -1
  103. package/docs/classes/sticker.Sticker.html +1 -1
  104. package/docs/classes/vfx.Airflow.html +1 -1
  105. package/docs/classes/vfx.Flame.html +1 -1
  106. package/docs/classes/vfx.Particle.html +6 -6
  107. package/docs/classes/vfx.ParticleGPU.html +3 -3
  108. package/docs/classes/vfx.SpotLight.html +1 -1
  109. package/docs/documents/README.html +132 -3
  110. package/docs/documents/ai-doc-guidelines.html +48 -3
  111. package/docs/documents/api.html +179 -26
  112. package/docs/documents/features_3dtile.html +143 -46
  113. package/docs/documents/features_camera-animation.html +79 -6
  114. package/docs/documents/features_clipper.html +5 -2
  115. package/docs/documents/{features_coordnate-system.html → features_coordinate-system.html} +56 -4
  116. package/docs/documents/features_event.html +47 -8
  117. package/docs/documents/features_five.html +20 -16
  118. package/docs/documents/features_flowing-light-2d-pass.html +259 -0
  119. package/docs/documents/features_flowing-light-3d-pass.html +249 -0
  120. package/docs/documents/features_gaussian-blur-pass.html +182 -0
  121. package/docs/documents/features_gesture.html +5 -1
  122. package/docs/documents/features_get-screen-pixels.html +5 -2
  123. package/docs/documents/features_image-options.html +5 -2
  124. package/docs/documents/features_load-external-model.html +31 -4
  125. package/docs/documents/features_load-progress.html +110 -0
  126. package/docs/documents/features_material.html +341 -0
  127. package/docs/documents/features_mode.html +6 -1
  128. package/docs/documents/features_model.html +6 -2
  129. package/docs/documents/features_move-pano-effect.html +4 -1
  130. package/docs/documents/features_multi-work.html +4 -1
  131. package/docs/documents/features_pano-filter.html +123 -0
  132. package/docs/documents/features_pano-tile.html +35 -20
  133. package/docs/documents/features_pano-uv.html +82 -0
  134. package/docs/documents/features_parameter.html +84 -56
  135. package/docs/documents/features_plugin.html +105 -0
  136. package/docs/documents/features_postprocessing.html +23 -6
  137. package/docs/documents/features_raycast.html +9 -3
  138. package/docs/documents/features_request-proxy.html +4 -1
  139. package/docs/documents/features_screen-project.html +5 -1
  140. package/docs/documents/features_state.html +12 -2
  141. package/docs/documents/features_view-layer.html +158 -0
  142. package/docs/documents/features_work.html +64 -3
  143. package/docs/documents/glossary.html +33 -8
  144. package/docs/documents/intro.html +1 -1
  145. package/docs/documents/quick-start.html +1 -0
  146. package/docs/documents/release_notes_6.8.html +203 -0
  147. package/docs/documents/template.html +54 -4
  148. package/docs/functions/five.createDebugBoundingMesh.html +1 -1
  149. package/docs/functions/five.loadAt3d.html +1 -1
  150. package/docs/functions/five.loadB3dm.html +1 -1
  151. package/docs/functions/five.loadDome.html +1 -1
  152. package/docs/functions/five.loadDomez.html +1 -1
  153. package/docs/functions/five.loadFbx.html +1 -1
  154. package/docs/functions/five.loadGltf.html +1 -1
  155. package/docs/functions/five.loadPbm.html +1 -1
  156. package/docs/functions/five.loadPly.html +1 -1
  157. package/docs/functions/five.loadPnts.html +1 -1
  158. package/docs/functions/five.loadSplat.html +1 -1
  159. package/docs/functions/five.loadSpz.html +1 -1
  160. package/docs/functions/five.loadX3p.html +1 -1
  161. package/docs/functions/five.parseWork.html +1 -1
  162. package/docs/functions/plugins.CSS3DPlugin.html +1 -0
  163. package/docs/functions/plugins.GaussianSplattingEntranceAnimationPlugin.html +1 -0
  164. package/docs/functions/react.useFiveCurrentObserver.html +2 -2
  165. package/docs/functions/react.useFiveFloor.html +2 -2
  166. package/docs/functions/react.useFiveProject2d.html +2 -2
  167. package/docs/functions/vue.useFiveCurrentObserver.html +2 -2
  168. package/docs/functions/vue.useFiveFloor.html +2 -2
  169. package/docs/functions/vue.useFiveWorks.html +2 -2
  170. package/docs/hierarchy.html +1 -1
  171. package/docs/index.html +132 -3
  172. package/docs/interfaces/five.AddableObject.html +1 -1
  173. package/docs/interfaces/five.AjaxOptions.html +1 -1
  174. package/docs/interfaces/five.BaseEvent.html +7 -2
  175. package/docs/interfaces/five.BaseExtendableEvent.html +11 -0
  176. package/docs/interfaces/five.EventCallback.html +60 -52
  177. package/docs/interfaces/five.FiveInitArgs.html +2 -2
  178. package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +9 -9
  179. package/docs/interfaces/five.GestureEvent.html +21 -2
  180. package/docs/interfaces/five.GesturePointer.html +20 -0
  181. package/docs/interfaces/five.ImageOptions.html +1 -1
  182. package/docs/interfaces/five.IntersectEvent.html +10 -2
  183. package/docs/interfaces/five.IntersectMesh.html +1 -1
  184. package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
  185. package/docs/interfaces/five.Intersection.html +4 -3
  186. package/docs/interfaces/five.LooseWorkObserver.html +2 -2
  187. package/docs/interfaces/five.LooseWorkPanorama.html +2 -2
  188. package/docs/interfaces/five.LooseWorkWithExtrinsics.html +6 -6
  189. package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +10 -10
  190. package/docs/interfaces/five.ModeChangeEvent.html +9 -2
  191. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
  192. package/docs/interfaces/five.ModelEvent.html +7 -2
  193. package/docs/interfaces/five.ModelSceneEvent.html +7 -2
  194. package/docs/interfaces/five.ModelTileEvent.html +13 -0
  195. package/docs/interfaces/five.MovePanoOptions.html +8 -8
  196. package/docs/interfaces/five.NetworkAbortError.html +1 -1
  197. package/docs/interfaces/five.NetworkFirbiddenError.html +1 -1
  198. package/docs/interfaces/five.NetworkOptions.html +1 -1
  199. package/docs/interfaces/five.NetworkProxyError.html +1 -1
  200. package/docs/interfaces/five.NetworkResourceEvent.html +7 -2
  201. package/docs/interfaces/five.NetworkResponseError.html +1 -1
  202. package/docs/interfaces/five.NetworkTimeoutError.html +1 -1
  203. package/docs/interfaces/five.ObjectEvent.html +7 -2
  204. package/docs/interfaces/five.PBMClipperParameter.html +2 -2
  205. package/docs/interfaces/five.PBMCustomShaderInitArgs.html +2 -2
  206. package/docs/interfaces/five.PBMCustomShaderSlots.html +2 -2
  207. package/docs/interfaces/five.PBMMaterial.html +1 -1
  208. package/docs/interfaces/five.PBMMeshMaterialParameters.html +5 -3
  209. package/docs/interfaces/five.PBMPanoDepth.html +5 -5
  210. package/docs/interfaces/five.PBMPanoFilterValue.html +6 -0
  211. package/docs/interfaces/five.PBMPanoPicture.html +8 -6
  212. package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +2 -3
  213. package/docs/interfaces/five.PBMRefinedScreen.html +2 -2
  214. package/docs/interfaces/five.PanoCircleMeshInterface.html +2 -2
  215. package/docs/interfaces/five.PanoEvent.html +15 -2
  216. package/docs/interfaces/five.PanoPrepareEvent.html +15 -0
  217. package/docs/interfaces/five.PanoTextureEvent.html +11 -2
  218. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +1 -1
  219. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
  220. package/docs/interfaces/five.ParameterMaterialValue.html +42 -38
  221. package/docs/interfaces/five.ParameterTilesetValue.html +15 -15
  222. package/docs/interfaces/five.ParameterValue.html +56 -52
  223. package/docs/interfaces/five.Pose.html +1 -1
  224. package/docs/interfaces/five.RenderEvent.html +7 -2
  225. package/docs/interfaces/five.ResolvedParameterValue.html +57 -54
  226. package/docs/interfaces/five.RgbaData.html +7 -0
  227. package/docs/interfaces/five.SplatData.html +2 -2
  228. package/docs/interfaces/five.State.html +1 -1
  229. package/docs/interfaces/five.StateEvent.html +9 -2
  230. package/docs/interfaces/five.TextureOptions.html +1 -1
  231. package/docs/interfaces/five.Tile3DOptions.html +2 -2
  232. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +7 -7
  233. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +1 -1
  234. package/docs/interfaces/five.ViewLayer.html +30 -26
  235. package/docs/interfaces/five.WorkCubeImage.html +3 -2
  236. package/docs/interfaces/five.WorkImage.html +6 -5
  237. package/docs/interfaces/five.WorkInitial.html +8 -8
  238. package/docs/interfaces/five.WorkModel.html +8 -8
  239. package/docs/interfaces/five.WorkModelLayer.html +6 -6
  240. package/docs/interfaces/five.WorkObserver.html +42 -17
  241. package/docs/interfaces/five.WorkObserverJson.html +2 -2
  242. package/docs/interfaces/five.WorkObserverProto.html +26 -0
  243. package/docs/interfaces/five.WorkPanoramaJson.html +2 -2
  244. package/docs/interfaces/five.WorkTile.html +6 -5
  245. package/docs/interfaces/five.WorkVideo.html +4 -4
  246. package/docs/interfaces/five.WorksEvent.html +7 -2
  247. package/docs/interfaces/five.XRControllerEvent.html +10 -2
  248. package/docs/interfaces/five.XRControllerState.html +8 -0
  249. package/docs/interfaces/five.XRGestureEvent.html +13 -2
  250. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +1 -1
  251. package/docs/interfaces/five.XRSessionEvent.html +9 -2
  252. package/docs/interfaces/plugins.BackgroundPluginController.html +1 -1
  253. package/docs/interfaces/plugins.BackgroundPluginType.EventMap.html +1 -1
  254. package/docs/interfaces/plugins.BasePlugin.State.html +1 -1
  255. package/docs/interfaces/plugins.CSS3DPluginController.html +52 -0
  256. package/docs/interfaces/plugins.CSS3DPluginType.Config.html +2 -0
  257. package/docs/interfaces/plugins.CSS3DPluginType.CreateCSS3DObjectType.html +10 -0
  258. package/docs/interfaces/plugins.CSS3DPluginType.EventMap.html +10 -0
  259. package/docs/interfaces/plugins.CSS3DPluginType.Params.html +4 -0
  260. package/docs/interfaces/plugins.CSS3DPluginType.State.html +8 -0
  261. package/docs/interfaces/plugins.CSS3DRendererParameters.html +2 -0
  262. package/docs/interfaces/plugins.DynamicPathLinePluginController.html +3 -3
  263. package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +1 -1
  264. package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +1 -1
  265. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationController.html +44 -0
  266. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.BoundingAABB2D.html +3 -0
  267. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.Config.html +8 -0
  268. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.EventMap.html +10 -0
  269. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.Keyframe.html +3 -0
  270. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.State.html +8 -0
  271. package/docs/interfaces/plugins.ItemMaskController.html +1 -1
  272. package/docs/interfaces/plugins.ItemMaskPluginType.EventMap.html +1 -1
  273. package/docs/interfaces/plugins.ItemMaskPluginType.State.html +2 -2
  274. package/docs/interfaces/plugins.OrientationPluginController.html +6 -6
  275. package/docs/interfaces/plugins.OrientationPluginType.EventMap.html +1 -1
  276. package/docs/interfaces/plugins.OrientationPluginType.State.html +1 -1
  277. package/docs/interfaces/plugins.PanoAnimeController.html +1 -1
  278. package/docs/interfaces/plugins.PanoAnimePluginType.EventMap.html +1 -1
  279. package/docs/interfaces/plugins.PanoAnimePluginType.State.html +1 -1
  280. package/docs/interfaces/plugins.PlayingState.html +2 -2
  281. package/docs/interfaces/plugins.PluginTemplateType.EventMap.html +1 -1
  282. package/docs/interfaces/plugins.PluginTemplateType.State.html +1 -1
  283. package/docs/interfaces/plugins.TrajectoryController.html +8 -8
  284. package/docs/interfaces/react.FiveInjectionTypes.html +21 -21
  285. package/docs/interfaces/sticker.IntersectionLike.html +2 -2
  286. package/docs/interfaces/vfx.ParticleArgs.html +4 -4
  287. package/docs/interfaces/vue.FiveActionVueCallbacks.html +3 -3
  288. package/docs/modules/five.html +1 -1
  289. package/docs/modules/plugins.CSS3DPluginType.html +1 -0
  290. package/docs/modules/plugins.GaussianSplattingEntranceAnimationPluginType.html +1 -0
  291. package/docs/modules/plugins.html +1 -1
  292. package/docs/modules.html +1 -1
  293. package/docs/types/five.ControllerEventTypes.html +30 -26
  294. package/docs/types/five.EasingFunction.html +1 -0
  295. package/docs/types/five.EventTypes.html +27 -25
  296. package/docs/types/five.LegacyEventType.html +7 -7
  297. package/docs/types/five.NetworkProgressCallback.html +1 -1
  298. package/docs/types/five.PBMAlphaMode.html +1 -1
  299. package/docs/types/five.PBMColorStyle.html +1 -1
  300. package/docs/types/five.PBMFloorStyle.html +1 -1
  301. package/docs/types/five.PBMMeshShaderType.html +1 -1
  302. package/docs/types/five.PBMPointBack.html +1 -1
  303. package/docs/types/five.PBMPointCloudShaderType.html +1 -1
  304. package/docs/types/five.PBMPointShape.html +1 -1
  305. package/docs/types/five.PBMPointSize.html +1 -1
  306. package/docs/types/five.PBMTransition.html +1 -1
  307. package/docs/types/five.ParseOptions.html +6 -6
  308. package/docs/types/five.Works.html +1 -1
  309. package/docs/types/plugins.BasePlugin.EventMap.html +1 -1
  310. package/docs/types/plugins.CSS3DPluginType.PluginData.html +1 -0
  311. package/docs/types/plugins.CSS3DPluginType.ServerData.html +1 -0
  312. package/docs/variables/five.PROXY_CONTROLLER_EVENT_NAMES.html +1 -1
  313. package/five/application/analysis.d.ts +40 -0
  314. package/five/application/controllers.d.ts +41 -0
  315. package/five/application/events-legacy.d.ts +454 -0
  316. package/five/application/events.d.ts +69 -0
  317. package/five/application/five.d.ts +519 -0
  318. package/five/application/fiveInitArgs.d.ts +176 -0
  319. package/five/application/fiveLoadOptions.d.ts +21 -0
  320. package/five/application/generateDefaultVideoElement.d.ts +2 -0
  321. package/five/application/getViewportScale.d.ts +2 -0
  322. package/five/application/initLights.d.ts +3 -0
  323. package/five/application/mode.d.ts +28 -0
  324. package/five/application/renderPoweredByRealsee.d.ts +3 -0
  325. package/five/assets/cardboard-png-data-url.d.ts +2 -0
  326. package/five/assets/gradient-png-data-url.d.ts +2 -0
  327. package/five/assets/loading-png-data-url.d.ts +2 -0
  328. package/five/assets/phone-png-data-url.d.ts +2 -0
  329. package/five/assets/realsee-png-data-url.d.ts +2 -0
  330. package/five/bvh/bvhMath.d.ts +33 -0
  331. package/five/bvh/bvhMesh.d.ts +7 -0
  332. package/five/bvh/bvhNode.d.ts +29 -0
  333. package/five/bvh/bvhObject.d.ts +18 -0
  334. package/five/bvh/bvhPoints.d.ts +6 -0
  335. package/five/bvh/index.d.ts +10 -0
  336. package/five/bvh/worker.d.ts +35 -0
  337. package/five/cardboard/helper.d.ts +2 -0
  338. package/five/cardboard/index.d.ts +13 -0
  339. package/five/cardboard/sensor.d.ts +158 -0
  340. package/five/certificates/hardware.d.ts +1 -0
  341. package/five/controllers/base.d.ts +167 -0
  342. package/five/controllers/events.d.ts +73 -0
  343. package/five/controllers/floorplan.d.ts +119 -0
  344. package/five/controllers/mapview.d.ts +139 -0
  345. package/five/controllers/model.d.ts +57 -0
  346. package/five/controllers/panorama.d.ts +144 -0
  347. package/five/controllers/panoramaLike.d.ts +87 -0
  348. package/five/controllers/topview.d.ts +42 -0
  349. package/five/controllers/vrPanorama.d.ts +56 -0
  350. package/five/controllers/xrPanorama.d.ts +81 -0
  351. package/five/core/camera.d.ts +65 -0
  352. package/five/core/internalWebGLRenderer.d.ts +14 -0
  353. package/five/core/panoVideo.d.ts +18 -0
  354. package/five/core/scene.d.ts +10 -0
  355. package/five/core/tiling.d.ts +43 -0
  356. package/five/declare.d.ts +2 -1
  357. package/five/gaussian-splatting/util/renderData.d.ts +66 -0
  358. package/five/gaussian-splatting/wasm/data.d.ts +20 -0
  359. package/five/gaussian-splatting/wasm/sort.d.ts +18 -0
  360. package/five/gaussian-splatting/worker/dataWorker.d.ts +1 -0
  361. package/five/gaussian-splatting/worker/sortWorker.d.ts +1 -0
  362. package/five/index.d.ts +60 -4636
  363. package/five/index.js +272 -392
  364. package/five/index.mjs +26894 -31013
  365. package/five/meshes/boundingMesh.d.ts +13 -0
  366. package/five/meshes/intersectMesh.d.ts +8 -0
  367. package/five/meshes/panoCircleMesh.d.ts +35 -0
  368. package/five/meshes/panoCircleMeshCustom.d.ts +40 -0
  369. package/five/meshes/panoCircleMeshSolid.d.ts +34 -0
  370. package/five/meshes/panoSphereMesh.d.ts +27 -0
  371. package/five/model/helpers/coordinate-transform.d.ts +3 -0
  372. package/five/model/helpers/ellipsoid-coordinates.d.ts +14 -0
  373. package/five/model/helpers/get-edges-by-sphere.d.ts +8 -0
  374. package/five/model/helpers/get-recommend-tile3d-parameters.d.ts +8 -0
  375. package/five/model/index.d.ts +70 -0
  376. package/five/model/intersection.d.ts +18 -0
  377. package/five/model/loaders/at3d.d.ts +12 -0
  378. package/five/model/loaders/b3dm.d.ts +9 -0
  379. package/five/model/loaders/dome.d.ts +22 -0
  380. package/five/model/loaders/domez.d.ts +11 -0
  381. package/five/model/loaders/fbx.d.ts +8 -0
  382. package/five/model/loaders/glTF-helpers/extensions/CESIUM_RTC.d.ts +9 -0
  383. package/five/model/loaders/glTF-helpers/extensions/EXT_meshopt_compression.d.ts +8 -0
  384. package/five/model/loaders/glTF-helpers/extensions/EXT_texture_webp.d.ts +11 -0
  385. package/five/model/loaders/glTF-helpers/extensions/KHR_animation_pointer.d.ts +6 -0
  386. package/five/model/loaders/glTF-helpers/extensions/KHR_binary_glTF.d.ts +25 -0
  387. package/five/model/loaders/glTF-helpers/extensions/KHR_draco_mesh_compression.d.ts +11 -0
  388. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting.d.ts +26 -0
  389. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz.d.ts +11 -0
  390. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz_2.d.ts +13 -0
  391. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_clearcoat.d.ts +10 -0
  392. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_emissive_strength.d.ts +10 -0
  393. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_sheen.d.ts +10 -0
  394. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_transmission.d.ts +10 -0
  395. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_unlit.d.ts +10 -0
  396. package/five/model/loaders/glTF-helpers/extensions/KHR_mesh_quantization.d.ts +6 -0
  397. package/five/model/loaders/glTF-helpers/extensions/KHR_node_visibility.d.ts +10 -0
  398. package/five/model/loaders/glTF-helpers/extensions/KHR_texture_basisu.d.ts +9 -0
  399. package/five/model/loaders/glTF-helpers/extensions/KHR_texture_transform.d.ts +10 -0
  400. package/five/model/loaders/glTF-helpers/extensions/REALSEE_materials_lightmap.d.ts +7 -0
  401. package/five/model/loaders/glTF-helpers/extensions/base.d.ts +25 -0
  402. package/five/model/loaders/glTF-helpers/glTF.d.ts +713 -0
  403. package/five/model/loaders/glTF-helpers/index.d.ts +51 -0
  404. package/five/model/loaders/glTF-helpers/parser.d.ts +115 -0
  405. package/five/model/loaders/glTF-helpers/type.d.ts +14 -0
  406. package/five/model/loaders/gltf.d.ts +10 -0
  407. package/five/model/loaders/obj.d.ts +9 -0
  408. package/five/model/loaders/pbm.d.ts +26 -0
  409. package/five/model/loaders/ply.d.ts +24 -0
  410. package/five/model/loaders/pnts.d.ts +8 -0
  411. package/five/model/loaders/protobuf/dome.d.ts +540 -0
  412. package/five/model/loaders/protobuf/pbm.d.ts +203 -0
  413. package/five/model/loaders/shared.d.ts +16 -0
  414. package/five/model/loaders/splat.d.ts +8 -0
  415. package/five/model/loaders/spz.d.ts +14 -0
  416. package/five/model/loaders/tile3d-helpers/feature-table.d.ts +15 -0
  417. package/five/model/loaders/tile3d-helpers/gl-type.d.ts +20 -0
  418. package/five/model/loaders/tile3d-helpers/parse-gltf-array-buffer.d.ts +2 -0
  419. package/five/model/loaders/tile3d-helpers/parse-header.d.ts +2 -0
  420. package/five/model/loaders/tile3d-helpers/parse-point-cloud-attributes.d.ts +2 -0
  421. package/five/model/loaders/tile3d-helpers/parse-point-cloud-attributes.worker.d.ts +6 -0
  422. package/five/model/loaders/tile3d-helpers/parse-table.d.ts +3 -0
  423. package/five/model/loaders/tile3d-helpers/tile3d-type.d.ts +35 -0
  424. package/five/model/loaders/x3p.d.ts +22 -0
  425. package/five/model/materials/pbmMaterial.d.ts +137 -0
  426. package/five/model/materials/pbmMeshMaterial.d.ts +126 -0
  427. package/five/model/materials/pbmPointCloudMaterial.d.ts +70 -0
  428. package/five/model/model-scene.d.ts +172 -0
  429. package/five/model/model.d.ts +209 -0
  430. package/five/model/objects/pbmContainer.d.ts +28 -0
  431. package/five/model/objects/pbmGaussianSplattingObject.d.ts +43 -0
  432. package/five/model/objects/pbmGaussianSplattingRenderMesh.d.ts +59 -0
  433. package/five/model/objects/pbmGaussianSplattingTestMesh.d.ts +7 -0
  434. package/five/model/objects/pbmGroup.d.ts +8 -0
  435. package/five/model/objects/pbmMesh.d.ts +10 -0
  436. package/five/model/objects/pbmPointCloud.d.ts +7 -0
  437. package/five/model/parameter.d.ts +141 -0
  438. package/five/model/shaders/pbm_gaussian_splatting/fragment.d.ts +2 -0
  439. package/five/model/shaders/pbm_gaussian_splatting/vertex.d.ts +2 -0
  440. package/five/model/shaders/pbm_mesh_basic/fragment.d.ts +2 -0
  441. package/five/model/shaders/pbm_mesh_basic/vertex.d.ts +2 -0
  442. package/five/model/shaders/pbm_mesh_none/fragment.d.ts +2 -0
  443. package/five/model/shaders/pbm_mesh_none/vertex.d.ts +2 -0
  444. package/five/model/shaders/pbm_mesh_phong/fragment.d.ts +2 -0
  445. package/five/model/shaders/pbm_mesh_phong/vertex.d.ts +2 -0
  446. package/five/model/shaders/pbm_mesh_standard/fragment.d.ts +2 -0
  447. package/five/model/shaders/pbm_mesh_standard/vertex.d.ts +2 -0
  448. package/five/model/shaders/pbm_pointcloud/fragment.d.ts +2 -0
  449. package/five/model/shaders/pbm_pointcloud/vertex.d.ts +2 -0
  450. package/five/model/tile3d/header.d.ts +88 -0
  451. package/five/model/tile3d/index.d.ts +216 -0
  452. package/five/model/tile3d/tile-cache.d.ts +18 -0
  453. package/five/model/tile3d/tile-content.d.ts +10 -0
  454. package/five/model/tile3d/tile-node.d.ts +24 -0
  455. package/five/model/tile3d/tile-request-scheduler.d.ts +17 -0
  456. package/five/model/tile3d/tile.d.ts +79 -0
  457. package/five/model/tile3d/tileset-base-traverser.d.ts +59 -0
  458. package/five/model/tile3d/tileset-most-detail-traverser.d.ts +14 -0
  459. package/five/model/tile3d/tileset-normal-traverser.d.ts +15 -0
  460. package/five/model/tile3d/tileset-skip-traverser.d.ts +60 -0
  461. package/five/model/tile3d/tileset.d.ts +70 -0
  462. package/five/model/tile3d/trajectory-content.d.ts +9 -0
  463. package/five/model/tile3d/trajectory-node.d.ts +15 -0
  464. package/five/model/tile3d/trajectory.d.ts +30 -0
  465. package/five/model/tile3d/types.d.ts +33 -0
  466. package/five/model/view-layer.d.ts +20 -0
  467. package/five/renderer/five-renderer.d.ts +17 -0
  468. package/five/renderer/index.d.ts +3 -0
  469. package/five/renderer/postprocessing/composer.d.ts +37 -0
  470. package/five/renderer/postprocessing/index.d.ts +7 -0
  471. package/five/renderer/postprocessing/passes/adaptive-luminance-pass.d.ts +17 -0
  472. package/five/renderer/postprocessing/passes/eye-dome-lighting-pass.d.ts +14 -0
  473. package/five/renderer/postprocessing/passes/flowing-light-2d-pass.d.ts +36 -0
  474. package/five/renderer/postprocessing/passes/flowing-light-3d-pass.d.ts +36 -0
  475. package/five/renderer/postprocessing/passes/gaussian-blur-pass.d.ts +12 -0
  476. package/five/renderer/postprocessing/passes/pass.d.ts +38 -0
  477. package/five/renderer/scene-renderers/point-cloud-high-quality-scene-renderer.d.ts +11 -0
  478. package/five/renderer/scene-renderers/scene-renderer.d.ts +9 -0
  479. package/five/renderer/scene-renderers/ssaa-scene-renderer.d.ts +15 -0
  480. package/five/renderer/tools/full-screen-quad.d.ts +15 -0
  481. package/five/renderer/tools/render-cube-to-equirectangular.d.ts +7 -0
  482. package/five/renderer/tools/render-full-screen-depth.d.ts +2 -0
  483. package/five/renderer/tools/render-full-screen.d.ts +2 -0
  484. package/five/texture/histogram.d.ts +54 -0
  485. package/five/texture/imageBitmap.d.ts +13 -0
  486. package/five/texture/initTexture.d.ts +3 -0
  487. package/five/texture/loader.d.ts +39 -0
  488. package/five/texture/textureData.d.ts +11 -0
  489. package/five/thirdparty/fflate.d.ts +1407 -0
  490. package/five/thirdparty/hammer.d.ts +375 -0
  491. package/five/thirdparty/jsrsasign.d.ts +753 -0
  492. package/five/thirdparty/meshopt_decoder.d.ts +15 -0
  493. package/five/three-version-check.d.ts +1 -0
  494. package/five/types/addableObject.d.ts +12 -0
  495. package/five/types/cube.d.ts +1 -0
  496. package/five/types/gestureInput.d.ts +24 -0
  497. package/five/types/imageOptions.d.ts +20 -0
  498. package/five/types/intersectMeshInterface.d.ts +8 -0
  499. package/five/types/movePanoEffect.d.ts +13 -0
  500. package/five/types/movePanoOptions.d.ts +36 -0
  501. package/five/types/panoCircleMeshInterface.d.ts +34 -0
  502. package/five/types/plugin.d.ts +25 -0
  503. package/five/types/pose.d.ts +17 -0
  504. package/five/types/state.d.ts +20 -0
  505. package/five/types/viewport.d.ts +22 -0
  506. package/five/utils/ajax.d.ts +66 -0
  507. package/five/utils/animationFrameLoop.d.ts +45 -0
  508. package/five/utils/array.d.ts +31 -0
  509. package/five/utils/asyncTaskQueue.d.ts +8 -0
  510. package/five/utils/bufferGeometry.d.ts +33 -0
  511. package/five/utils/calculateProgress.d.ts +39 -0
  512. package/five/utils/calculateThreeMouse.d.ts +13 -0
  513. package/five/utils/canplayVideo.d.ts +2 -0
  514. package/five/utils/clamp.d.ts +2 -0
  515. package/five/utils/clock.d.ts +17 -0
  516. package/five/utils/createSymbol.d.ts +5 -0
  517. package/five/utils/decodeText.d.ts +2 -0
  518. package/five/utils/deepEqual.d.ts +2 -0
  519. package/five/utils/deepFreeze.d.ts +2 -0
  520. package/five/utils/defineProperty.d.ts +9 -0
  521. package/five/utils/detector.d.ts +14 -0
  522. package/five/utils/distance.d.ts +10 -0
  523. package/five/utils/draco.d.ts +26 -0
  524. package/five/utils/easing.d.ts +63 -0
  525. package/five/utils/error.d.ts +1 -0
  526. package/five/utils/event.d.ts +210 -0
  527. package/five/utils/formatRad.d.ts +7 -0
  528. package/five/utils/imageSupport.d.ts +6 -0
  529. package/five/utils/imageURL.d.ts +42 -0
  530. package/five/utils/isEmptyObject.d.ts +2 -0
  531. package/five/utils/isNil.d.ts +6 -0
  532. package/five/utils/isNumber.d.ts +2 -0
  533. package/five/utils/isPowerOfTwo.d.ts +2 -0
  534. package/five/utils/isPromise.d.ts +2 -0
  535. package/five/utils/isSimilar.d.ts +6 -0
  536. package/five/utils/json.d.ts +7 -0
  537. package/five/utils/ktx2.d.ts +30 -0
  538. package/five/utils/lzma/index.d.ts +2 -0
  539. package/five/utils/lzma/lzma.d.ts +3 -0
  540. package/five/utils/lzma/lzmaWASM.d.ts +2 -0
  541. package/five/utils/lzma/lzmaWorker.d.ts +14 -0
  542. package/five/utils/memoryUsage.d.ts +29 -0
  543. package/five/utils/motion.d.ts +38 -0
  544. package/five/utils/noop.d.ts +6 -0
  545. package/five/utils/now.d.ts +7 -0
  546. package/five/utils/pano.d.ts +9 -0
  547. package/five/utils/pick.d.ts +3 -0
  548. package/five/utils/poseUtils.d.ts +5 -0
  549. package/five/utils/renderCubeTextureToCubeRenderTarget.d.ts +3 -0
  550. package/five/utils/renderDepth.d.ts +2 -0
  551. package/five/utils/renderTexturesToCubeRenderTarget.d.ts +10 -0
  552. package/five/utils/requestPermission.d.ts +3 -0
  553. package/five/utils/shaderContentFix.d.ts +7 -0
  554. package/five/utils/shaderMaterial.d.ts +20 -0
  555. package/five/utils/stateUtils.d.ts +5 -0
  556. package/five/utils/string-pattern.d.ts +8 -0
  557. package/five/utils/subscribe.d.ts +67 -0
  558. package/five/utils/tileCube.d.ts +19 -0
  559. package/five/utils/toFastProperties.d.ts +1 -0
  560. package/five/utils/typedCache.d.ts +10 -0
  561. package/five/utils/uniform.d.ts +15 -0
  562. package/five/utils/url.d.ts +35 -0
  563. package/five/utils/uuid.d.ts +5 -0
  564. package/five/utils/values.d.ts +2 -0
  565. package/five/utils/vectorCoordinates.d.ts +29 -0
  566. package/five/utils/volume.d.ts +111 -0
  567. package/five/utils/webglError.d.ts +7 -0
  568. package/five/utils/worker.d.ts +26 -0
  569. package/five/webxr/XRControllerModelFactory.d.ts +28 -0
  570. package/five/webxr/motionHelper.d.ts +68 -0
  571. package/five/webxr/xrButton.d.ts +4 -0
  572. package/five/webxr/xrController.d.ts +24 -0
  573. package/five/webxr/xrManager.d.ts +84 -0
  574. package/five/work/_ALLOW_HOST.d.ts +2 -0
  575. package/five/work/index.d.ts +7 -0
  576. package/five/work/keychain.d.ts +5 -0
  577. package/five/work/looseWorkType.d.ts +121 -0
  578. package/five/work/verify.d.ts +7 -0
  579. package/five/work/work.d.ts +206 -0
  580. package/five/work/workFetcher.d.ts +4 -0
  581. package/five/work/workJson.d.ts +3 -0
  582. package/five/work/workJsonType.d.ts +73 -0
  583. package/five/work/workObserverProto.d.ts +39 -0
  584. package/five/work/workParser.d.ts +6 -0
  585. package/five/work/workResolvedObserver.d.ts +12 -0
  586. package/five/work/workVerify.d.ts +2 -0
  587. package/five/work/works.d.ts +10 -0
  588. package/gltf-loader/gltf-object.d.ts +17 -0
  589. package/gltf-loader/index.d.ts +60 -160
  590. package/gltf-loader/index.js +9 -9
  591. package/gltf-loader/index.mjs +1351 -1451
  592. package/gltf-loader/thirdparty/DDSLoader.d.ts +23 -0
  593. package/gltf-loader/thirdparty/DRACOLoader.d.ts +18 -0
  594. package/gltf-loader/thirdparty/GLTFLoader.d.ts +59 -0
  595. package/line/circle_png.d.ts +1 -0
  596. package/line/index.d.ts +19 -69
  597. package/line/index.js +4 -4
  598. package/line/index.mjs +334 -513
  599. package/line/utils/Line2.d.ts +7 -0
  600. package/line/utils/LineGeometry.d.ts +10 -0
  601. package/line/utils/LineMaterial.d.ts +20 -0
  602. package/line/utils/LineSegments2.d.ts +11 -0
  603. package/line/utils/LineSegmentsGeometry.d.ts +15 -0
  604. package/llms.txt +48 -3
  605. package/package.json +4 -4
  606. package/plugins/BackgroundPlugin/Controller.d.ts +20 -0
  607. package/plugins/BackgroundPlugin/index.d.ts +5 -0
  608. package/plugins/BackgroundPlugin/typings.d.ts +44 -0
  609. package/plugins/BasePlugin/index.d.ts +119 -0
  610. package/plugins/CSS3DPlugin/Controller.d.ts +64 -0
  611. package/plugins/CSS3DPlugin/index.d.ts +5 -0
  612. package/plugins/CSS3DPlugin/typing.d.ts +32 -0
  613. package/plugins/DynamicPathLinePlugin/Controller.d.ts +167 -0
  614. package/plugins/DynamicPathLinePlugin/index.d.ts +5 -0
  615. package/plugins/DynamicPathLinePlugin/line2/Line2.d.ts +7 -0
  616. package/plugins/DynamicPathLinePlugin/line2/LineGeometry.d.ts +10 -0
  617. package/plugins/DynamicPathLinePlugin/line2/LineMaterial.d.ts +17 -0
  618. package/plugins/DynamicPathLinePlugin/line2/LineSegments2.d.ts +11 -0
  619. package/plugins/DynamicPathLinePlugin/line2/LineSegmentsGeometry.d.ts +15 -0
  620. package/plugins/DynamicPathLinePlugin/typing.d.ts +129 -0
  621. package/plugins/DynamicPathLinePlugin/typings.d.ts +72 -0
  622. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.d.ts +30 -0
  623. package/plugins/GaussianSplattingEntranceAnimationPlugin/index.d.ts +5 -0
  624. package/plugins/GaussianSplattingEntranceAnimationPlugin/typing.d.ts +28 -0
  625. package/plugins/ItemMaskPlugin/Controller.d.ts +48 -0
  626. package/plugins/ItemMaskPlugin/index.d.ts +5 -0
  627. package/plugins/ItemMaskPlugin/typing.d.ts +58 -0
  628. package/plugins/OrientationPlugin/Controller.d.ts +82 -0
  629. package/plugins/OrientationPlugin/RoundedBoxGeometry.d.ts +11 -0
  630. package/plugins/OrientationPlugin/index.d.ts +6 -0
  631. package/plugins/OrientationPlugin/typing.d.ts +25 -0
  632. package/plugins/PanoAnimePlugin/Controller.d.ts +46 -0
  633. package/plugins/PanoAnimePlugin/index.d.ts +5 -0
  634. package/plugins/PanoAnimePlugin/typing.d.ts +37 -0
  635. package/plugins/PluginTemplate/Controller.d.ts +27 -0
  636. package/plugins/PluginTemplate/index.d.ts +5 -0
  637. package/plugins/PluginTemplate/typing.d.ts +21 -0
  638. package/plugins/TrajectoryPlugin/Controller.d.ts +85 -0
  639. package/plugins/TrajectoryPlugin/index.d.ts +6 -0
  640. package/plugins/TrajectoryPlugin/typing.d.ts +25 -0
  641. package/plugins/index.d.ts +11 -1102
  642. package/plugins/index.js +35 -21
  643. package/plugins/index.mjs +3668 -4247
  644. package/plugins/thirdParty/CSS3DRenderer.d.ts +45 -0
  645. package/plugins/thirdParty/OrbitControls.d.ts +78 -0
  646. package/plugins/utils/absoluteUrl.d.ts +5 -0
  647. package/plugins/utils/clamp.d.ts +2 -0
  648. package/plugins/utils/loadImage.d.ts +1 -0
  649. package/plugins/utils/motion.d.ts +38 -0
  650. package/plugins/utils/now.d.ts +6 -0
  651. package/plugins/utils/uuid.d.ts +2 -0
  652. package/react/canvas.d.ts +19 -0
  653. package/react/context.d.ts +12 -0
  654. package/react/createProvider.d.ts +95 -0
  655. package/react/createStore.d.ts +144 -0
  656. package/react/hooks/unsafe__useFiveInstance.d.ts +9 -0
  657. package/react/hooks/useFiveAction.d.ts +147 -0
  658. package/react/hooks/useFiveCameraDirection.d.ts +7 -0
  659. package/react/hooks/useFiveCameraRaycaster.d.ts +7 -0
  660. package/react/hooks/useFiveCurrentObserver.d.ts +11 -0
  661. package/react/hooks/useFiveCurrentState.d.ts +15 -0
  662. package/react/hooks/useFiveEventCallback.d.ts +12 -0
  663. package/react/hooks/useFiveFloor.d.ts +15 -0
  664. package/react/hooks/useFiveHelper.d.ts +14 -0
  665. package/react/hooks/useFiveModelBounding.d.ts +5 -0
  666. package/react/hooks/useFiveModelEffect.d.ts +14 -0
  667. package/react/hooks/useFiveModelIntersectRaycaster.d.ts +22 -0
  668. package/react/hooks/useFiveModelReadyState.d.ts +8 -0
  669. package/react/hooks/useFiveProject2d.d.ts +20 -0
  670. package/react/hooks/useFiveSceneEffect.d.ts +21 -0
  671. package/react/hooks/useFiveState.d.ts +6 -0
  672. package/react/hooks/useFiveWork.d.ts +29 -0
  673. package/react/index.d.ts +24 -830
  674. package/react/index.js +3 -3
  675. package/react/index.mjs +572 -783
  676. package/react/rendererPool.d.ts +7 -0
  677. package/react/withFive.d.ts +213 -0
  678. package/shader-lib/EvenessPlane/index.d.ts +10 -0
  679. package/shader-lib/PointCloudExpand/index.d.ts +59 -0
  680. package/shader-lib/PolygonCuter/index.d.ts +52 -0
  681. package/shader-lib/PolygonCuter/worker.d.ts +14 -0
  682. package/shader-lib/ShineModel/index.d.ts +7 -0
  683. package/shader-lib/SweepModel/index.d.ts +7 -0
  684. package/shader-lib/index.d.ts +5 -86
  685. package/shader-lib/index.js +13 -14
  686. package/shader-lib/index.mjs +424 -824
  687. package/sticker/geometry.d.ts +3 -0
  688. package/sticker/index.d.ts +68 -71
  689. package/sticker/index.js +3 -3
  690. package/sticker/index.mjs +102 -142
  691. package/umd/five-gltf-loader.js +9 -9
  692. package/umd/five-line.js +4 -4
  693. package/umd/five-plugins.js +35 -21
  694. package/umd/five-react.js +3 -3
  695. package/umd/five-shader-lib.js +13 -14
  696. package/umd/five-sticker.js +3 -3
  697. package/umd/five-vfx.js +21 -21
  698. package/umd/five-vue.js +3 -3
  699. package/umd/five.js +267 -387
  700. package/vfx/airflow/airflow.d.ts +18 -0
  701. package/vfx/airflow/fragment-shader.d.ts +2 -0
  702. package/vfx/airflow/vertex-shader.d.ts +2 -0
  703. package/vfx/common/scale-shader.d.ts +2 -0
  704. package/vfx/common/simplex-noise-shader.d.ts +2 -0
  705. package/vfx/frame/fragment-shader.d.ts +2 -0
  706. package/vfx/frame/frame.d.ts +22 -0
  707. package/vfx/frame/vertex-shader.d.ts +2 -0
  708. package/vfx/index.d.ts +7 -363
  709. package/vfx/index.js +21 -21
  710. package/vfx/index.mjs +454 -910
  711. package/vfx/particle/fragment-shader.d.ts +2 -0
  712. package/vfx/particle/instance.d.ts +36 -0
  713. package/vfx/particle/particle.d.ts +205 -0
  714. package/vfx/particle/utils.d.ts +11 -0
  715. package/vfx/particle/vertex-shader.d.ts +2 -0
  716. package/vfx/particle-gpu/fragment-shader.d.ts +2 -0
  717. package/vfx/particle-gpu/instance.d.ts +36 -0
  718. package/vfx/particle-gpu/particle.d.ts +95 -0
  719. package/vfx/particle-gpu/utils.d.ts +11 -0
  720. package/vfx/particle-gpu/vertex-shader.d.ts +2 -0
  721. package/vfx/spotLight/fragment-shader.d.ts +2 -0
  722. package/vfx/spotLight/spotLight.d.ts +15 -0
  723. package/vfx/spotLight/vertex-shader.d.ts +2 -0
  724. package/vue/context.d.ts +7 -0
  725. package/vue/hooks/FiveCanvas.d.ts +36 -0
  726. package/vue/hooks/FiveProvider.d.ts +35 -0
  727. package/vue/hooks/unsafe__useFiveInject.d.ts +9 -0
  728. package/vue/hooks/useFiveAction.d.ts +178 -0
  729. package/vue/hooks/useFiveCameraDirection.d.ts +8 -0
  730. package/vue/hooks/useFiveCameraRaycaster.d.ts +8 -0
  731. package/vue/hooks/useFiveCurrentObserver.d.ts +12 -0
  732. package/vue/hooks/useFiveCurrentState.d.ts +16 -0
  733. package/vue/hooks/useFiveEventCallback.d.ts +11 -0
  734. package/vue/hooks/useFiveFloor.d.ts +16 -0
  735. package/vue/hooks/useFiveHelper.d.ts +15 -0
  736. package/vue/hooks/useFiveModel.d.ts +7 -0
  737. package/vue/hooks/useFiveModelBounding.d.ts +7 -0
  738. package/vue/hooks/useFiveModelIntersectRaycaster.d.ts +23 -0
  739. package/vue/hooks/useFiveModelReadyState.d.ts +9 -0
  740. package/vue/hooks/useFiveProject2d.d.ts +26 -0
  741. package/vue/hooks/useFiveScene.d.ts +6 -0
  742. package/vue/hooks/useFiveState.d.ts +16 -0
  743. package/vue/hooks/useFiveWork.d.ts +30 -0
  744. package/vue/index.d.ts +23 -467
  745. package/vue/index.js +3 -3
  746. package/vue/index.mjs +309 -301
  747. package/vue/rendererPool.d.ts +10 -0
  748. package/work-downloader/components/model-3d-tile.d.ts +2 -0
  749. package/work-downloader/components/model.d.ts +3 -0
  750. package/work-downloader/components/observer.d.ts +7 -0
  751. package/work-downloader/download.d.ts +16 -0
  752. package/work-downloader/index.d.ts +2 -33
  753. package/work-downloader/index.js +3 -3
  754. package/work-downloader/index.mjs +339 -556
  755. package/work-downloader/type.d.ts +28 -0
  756. package/work-downloader/utils/download-to-file.d.ts +1 -0
  757. package/work-downloader/utils/image-processing.d.ts +7 -0
  758. package/work-downloader/utils/join-url.d.ts +2 -0
  759. package/work-downloader/utils/log.d.ts +1 -0
  760. package/work-downloader/utils/relative-url.d.ts +1 -0
  761. package/ai_guides/plugin.md +0 -206
  762. package/docs/documents/plugin.html +0 -60
  763. package/docs/media/five.ts +0 -2881
  764. package/docs/media/pass.ts +0 -64
@@ -0,0 +1,131 @@
1
+ # 全景图 UV 与方向转换 (Panorama UV Conversion)
2
+
3
+ - **Summary**: 提供了一组工具方法,用于在**全景图 UV 坐标** (Equirectangular UV / Cubemap UV) 与**三维空间方向向量** (Vector3) 之间进行转换。
4
+ - **Schema**: 依赖 `WorkObserver` 实例,提供四个核心转换方法。
5
+ - **Concepts**: Equirectangular Projection, Cubemap Projection, UV Origin, Coordinate Systems.
6
+ - **Configuration**: `uvOrigin` (UV 原点设置).
7
+ - **Examples**: 向量转全景 UV、UV 转向量、Cubemap 转换。
8
+
9
+ ## Schema
10
+
11
+ > **Definition**: [WorkObserver](../../five/work/work.d.ts)
12
+
13
+ 这些方法挂载在 `WorkObserver` 实例上,依赖当前观察点 (Observer) 的位姿信息 (Position & Quaternion) 以及 `work.transform` 进行计算。
14
+
15
+ ```typescript
16
+ interface WorkObserver {
17
+ /**
18
+ * 将方向向量转化为全景图 uv
19
+ * @param vector - 全局方向向量 (World Space)
20
+ * @param uvOrigin - UV 原点位置,默认为 'top-left'
21
+ */
22
+ vectorToEquirectangularUv(vector: THREE.Vector3, uvOrigin?: 'top-left' | 'bottom-left'): THREE.Vector2;
23
+
24
+ /**
25
+ * 将全景图 uv 转化为方向向量
26
+ * @param uv - 全景图 UV 坐标 [0, 1]
27
+ * @param uvOrigin - UV 原点位置,默认为 'top-left'
28
+ */
29
+ equirectangularUvToVector(uv: THREE.Vector2, uvOrigin?: 'top-left' | 'bottom-left'): THREE.Vector3;
30
+
31
+ /**
32
+ * 将方向向量转化为六视图 uv
33
+ * @param vector - 全局方向向量 (World Space)
34
+ * @param uvOrigin - UV 原点位置,默认为 'top-left'
35
+ */
36
+ vectorToCubemapUv(vector: THREE.Vector3, uvOrigin?: 'top-left' | 'bottom-left'): [cubeFace: CubeFace, cubemapUv: THREE.Vector2];
37
+
38
+ /**
39
+ * 将六视图 uv 转化为方向向量
40
+ * @param cubeFace - 立方体面 ('up' | 'down' | 'left' | 'right' | 'front' | 'back')
41
+ * @param uv - 该面上的 UV 坐标 [0, 1]
42
+ * @param uvOrigin - UV 原点位置,默认为 'top-left'
43
+ */
44
+ cubemapUvToVector(cubeFace: CubeFace, uv: THREE.Vector2, uvOrigin?: 'top-left' | 'bottom-left'): THREE.Vector3;
45
+ }
46
+
47
+ type CubeFace = 'up' | 'down' | 'left' | 'right' | 'front' | 'back';
48
+ ```
49
+
50
+ ## Concepts
51
+
52
+ ### 1. 坐标系转换 (Coordinate Transformation)
53
+ 转换过程会自动处理以下坐标空间的变换:
54
+ 1. **World Space (世界坐标系)**: `vector` 参数所处的坐标系。
55
+ 2. **Work Space (Work 坐标系)**: 考虑 `work.transform` 带来的整体旋转。
56
+ 3. **Observer Space (观察者坐标系)**: 考虑 `observer.quaternion` 带来的观察点旋转。
57
+ 4. **Panorama Space (全景图空间)**: 最终映射到 2D 图片上的 UV 坐标。
58
+
59
+ ### 2. 投影方式 (Projection Types)
60
+ * **Equirectangular (等距柱状投影)**: 将球体展开为 2:1 的矩形图片。常用于全景图预览。
61
+ * **Cubemap (立方体贴图)**: 将球体投影到立方体的六个面上。常用于高清全景浏览。
62
+
63
+ ### 3. UV 原点 (UV Origin)
64
+ * **top-left (默认)**: 原点 `(0, 0)` 在图片**左上角**。U 轴向右,V 轴向下。符合大多数 Web 图片处理习惯 (Canvas, DOM)。
65
+ * **bottom-left**: 原点 `(0, 0)` 在图片**左下角**。U 轴向右,V 轴向上。符合 WebGL / OpenGL 纹理坐标习惯。
66
+
67
+ ## Configuration
68
+
69
+ 所有方法均包含可选参数 `uvOrigin`。
70
+
71
+ ### Common Configuration
72
+
73
+ | Parameter | Type | Default | Description |
74
+ | :--- | :--- | :--- | :--- |
75
+ | `uvOrigin` | `'top-left' \| 'bottom-left'` | `'top-left'` | 指定 UV 坐标系的原点位置。 |
76
+
77
+ ## Examples
78
+
79
+ ### 1. 点击全景图获取空间方向 (Click to Vector)
80
+ 假设你有一个全景图的点击事件,获取到了点击位置的 UV:
81
+
82
+ ```typescript
83
+ const observer = five.work.observers[0];
84
+ // 假设这是用户点击全景图后归一化得到的 UV (0~1)
85
+ const clickUv = new THREE.Vector2(0.5, 0.5);
86
+
87
+ // 转换为世界空间的方向向量
88
+ const direction = observer.equirectangularUvToVector(clickUv);
89
+
90
+ console.log('点击方向:', direction);
91
+ ```
92
+
93
+ ### 2. 将空间点映射到全景图上 (World Point to UV)
94
+ 假设场景中有一个 3D 物体,你想知道它在当前全景图上的位置(例如打标签):
95
+
96
+ ```typescript
97
+ const observer = five.work.observers[0];
98
+ const objectPosition = new THREE.Vector3(10, 2, 5);
99
+
100
+ // 计算物体相对于观察点的方向向量
101
+ const direction = objectPosition.clone().sub(observer.position).normalize();
102
+
103
+ // 获取全景图 UV
104
+ const uv = observer.vectorToEquirectangularUv(direction);
105
+
106
+ console.log(`物体在全景图上的位置: u=${uv.x}, v=${uv.y}`);
107
+ ```
108
+
109
+ ### 3. 处理 Cubemap 坐标 (Cubemap Conversion)
110
+ 如果你使用的是六面体全景图资源:
111
+
112
+ ```typescript
113
+ const observer = five.work.observers[0];
114
+ const direction = new THREE.Vector3(0, 0, -1); // 正前方
115
+
116
+ // 获取对应的面和 UV
117
+ const [face, uv] = observer.vectorToCubemapUv(direction);
118
+
119
+ console.log(`正前方对应 Cubemap 的 ${face} 面,UV 为`, uv);
120
+ ```
121
+
122
+ ## Related
123
+
124
+ * [Work](./work.md): 了解 WorkObserver 的数据结构。
125
+ * [Coordinate System](./coordinate-system.md): 了解 Five 的坐标系定义。
126
+
127
+ ---
128
+
129
+ ```yaml
130
+ tags: [全景UV, 方向转换, 全景坐标, 像素映射, 全景标注, work, observer, uv, projection, math, equirectangular, cubemap]
131
+ ```
@@ -1,102 +1,109 @@
1
- # Parameter (配置)
1
+ # Parameter (配置系统)
2
2
 
3
3
  - **Summary**: Five 用于控制三维模型渲染表现的核心配置系统,采用树形继承设计。
4
- - **Schema**: 包含材质、楼层、阴影、LOD 等配置项。
5
- - **Concepts**: Hierarchy (树形继承), Material, LOD, Point Cloud
6
- - **Examples**: 全局设置与局部差异化配置。
4
+ - **Schema**: 是所有配置项的容器,通过继承机制管理 Material 和 3DTile 等子配置。
5
+ - **Concepts**: Hierarchy (树形继承), Override (覆盖), Resolution (解析)
6
+ - **Examples**: 全局配置、局部覆盖、参数重置。
7
7
 
8
8
  ## Schema
9
9
 
10
- ### Parameter Class
10
+ > **Definition**: [Parameter](../../five/model/parameter.d.ts)
11
11
 
12
- `Parameter` 是一个配置容器,提供了读写配置项的方法。
12
+ `Parameter` 类是配置的入口。它并不直接包含所有配置字段的定义,而是将它们组织在不同的接口中。
13
+
14
+ ### Parameter Categories (参数分类)
15
+
16
+ 为了便于理解,我们将参数分为两大类:
17
+
18
+ | Category | Description | Link |
19
+ | :--- | :--- | :--- |
20
+ | **Material & Appearance** | 控制“长什么样”。包括材质、颜色、楼层显示、阴影、点云样式等。 | [Material Params](./material.md) |
21
+ | **3DTile & Performance** | 控制“怎么加载”。包括 LOD (细节层级)、显存配额、网络并发、SSE 阈值等。 | [3DTile Params](./3dtile.md) |
22
+
23
+ ### Parameter Class API
24
+
25
+ #### 1. Getting Values (获取值)
26
+
27
+ 获取参数值**不使用** `get()` 方法,而是直接访问属性。
28
+
29
+ * **Direct Access (直接访问)**: 获取当前 `Parameter` 实例上设置的值。如果未设置,返回 `undefined`。
30
+ * **Resolve Value (计算最终值)**: 获取经过树形继承计算后的最终生效值。
31
+ * 如果不传参,则基于默认值计算 (Default -> Current)。
32
+ * 如果传入上游 Parameter,则基于默认值 + 上游 Parameter 计算 (Default -> Upstream -> Current)。
13
33
 
14
34
  ```typescript
15
- // 简化定义
16
- class Parameter implements Readonly<Partial<ParameterValue>> {
17
- // 可以直接通过属性访问配置项,例如 parameter.opacity
18
- readonly [key in keyof ParameterValue]?: ParameterValue[key];
35
+ // 方式 A: 直接访问 (获取当前层级配置)
36
+ const currentVal = parameter.maxMemoryUsage;
37
+
38
+ // 方式 B: 计算最终值 (包含继承逻辑)
39
+
40
+ // 1. 基础用法:仅继承默认值
41
+ const finalVal = parameter.resolveValue().maxMemoryUsage;
19
42
 
20
- /** 设置配置项 */
21
- set<K extends keyof ParameterValue>(key: K, value: ParameterValue[K]): void;
22
- set(values: Partial<ParameterValue>): void;
43
+ // 2. 进阶用法:指定继承源 (例如 ViewLayer 继承自 Model)
44
+ const inheritedVal = viewLayerParam.resolveValue(parentParameter).maxMemoryUsage;
45
+ ```
46
+
47
+ #### 2. Methods (方法)
48
+
49
+ `Parameter` 实例提供了以下核心方法来管理配置:
23
50
 
24
- /** 重置当前层级的配置项 (恢复继承) */
25
- reset(...keys: (keyof ParameterValue)[]): void;
51
+ ```typescript
52
+ class Parameter {
53
+ /**
54
+ * 设置配置项
55
+ * @param key 参数名 (如 'opacity', 'maxMemoryUsage')
56
+ * @param value 参数值
57
+ */
58
+ set(key: string, value: any): void;
59
+
60
+ /**
61
+ * 重置配置项(移除当前层级的设置,恢复继承上游的值)
62
+ * @param keys 要重置的参数名列表
63
+ */
64
+ reset(...keys: string[]): void;
26
65
 
27
66
  /**
28
- * 获取最终计算值 (包含继承逻辑)
29
- * @param upstream - 上游 Parameter 对象列表
67
+ * 获取经过继承计算后的最终值(每次调用创建新对象)
68
+ * @param upstream 上游 Parameter 对象列表(通常由引擎自动传入)
30
69
  */
31
70
  resolveValue(...upstream: Parameter[]): ResolvedParameterValue;
71
+
72
+ /**
73
+ * 获取经过继承计算后的最终值(复用 target 对象,避免重复创建)
74
+ * 适用于高频调用场景(如逐帧更新),可显著减少 GC 压力。
75
+ * @param target 用于写入结果的已有对象,其属性会被重置为默认值后重新赋值
76
+ * @param upstream 上游 Parameter 对象列表
77
+ */
78
+ static resolveValueTo(
79
+ target: Partial<ResolvedParameterValue>,
80
+ ...upstream: Partial<ParameterValue>[]
81
+ ): ResolvedParameterValue;
32
82
  }
33
83
  ```
34
84
 
35
- ### ParameterValue Interface
85
+ > `resolveValue()` 内部已委托给 `resolveValueTo({}, ...)`,两者计算逻辑一致,区别仅在于是否复用对象。
36
86
 
37
- 所有的配置项定义在 `ParameterValue` 接口中。
87
+ #### 3. Version (版本标识)
88
+
89
+ `ResolvedParameterValue` 通过 `versionNumber: number` 标识当前配置的版本。引擎内部使用整数哈希(而非字符串拼接)计算版本号,用于高效的脏检查。
38
90
 
39
91
  ```typescript
40
- import * as THREE from 'three';
41
-
42
- export interface ParameterValue {
43
- // --- 基础材质表现 ---
44
- /** 模型透明度 [0-1] */
45
- opacity: number;
46
- /** 模型整体亮度 */
47
- brightness: number;
48
- /** 颜色饱和度调整 */
49
- colorSaturation: number;
50
- /** 颜色亮度调整 */
51
- colorBrightness: number;
52
-
53
- // --- 全景混动与过渡 ---
54
- /** 模型贴图和全景图的混合程度 [0-1] (0:纯模型纹理, 1:纯全景纹理) */
55
- modelAlpha: number;
56
-
57
- // --- 楼层控制 ---
58
- /** 当前显示的楼层索引 (null 为显示所有) */
59
- shownFloorIndex: number | null;
60
- /** 楼层隐藏样式 ('OPACITY': 透明, 'VISIBILITY': 隐藏) */
61
- floorStyle: 'OPACITY' | 'VISIBILITY';
62
-
63
- // --- 阴影 ---
64
- /** 是否产生阴影 */
65
- castShadow: boolean;
66
- /** 是否接受阴影 */
67
- receiveShadow: boolean;
68
-
69
- // --- 点云特有 ---
70
- /** 点云大小 */
71
- pointSize: number;
72
- /** 点云基础缩放 */
73
- pointScale: number;
74
-
75
- // --- 3DTile / LOD 控制 ---
76
- /** 最小细节层级 */
77
- minLevelOfDetail: number;
78
- /** 最大细节层级 */
79
- maxLevelOfDetail: number;
80
- /** 几何误差阈值 (越小越精细) */
81
- minGeometricError: number;
82
- /** 最大网络并发请求数 */
83
- maxRequests: number;
84
- /** 最大内存使用量 (MB) */
85
- maxMemoryUsage: number;
86
-
87
- // ... 更多高级参数请参考 five/index.d.ts
92
+ interface ResolvedParameterValue extends ParameterValue {
93
+ /** 整数哈希,输入参数变化时值会改变,用于脏检查 */
94
+ versionNumber: number;
88
95
  }
89
96
  ```
90
97
 
91
98
  ## Concepts
92
99
 
93
- ### 1. 树形继承关系 (Hierarchy)
100
+ ### 树形继承关系 (Hierarchy)
94
101
 
95
- Parameter 遵循 **“就近原则” (Override)** 的继承逻辑。当渲染引擎需要获取某个属性值时,会按照以下顺序查找:
102
+ Parameter 遵循 **“就近原则” (Override)** 的继承逻辑。
96
103
 
97
- 1. **ViewLayer Parameter**: 最具体,优先级最高。
98
- 2. **Model Parameter**: 覆盖该 Model 下的所有 ViewLayer。
99
- 3. **ModelScene Parameter**: 全局默认值,优先级最低。
104
+ 1. **ViewLayer Parameter**: 最具体,优先级最高。通常对应一个具体的 `.gltf` 文件或数据块。
105
+ 2. **Model Parameter**: 覆盖该 Model 下的所有 ViewLayer。一个 Model 可能包含多个 ViewLayer (如 Mesh 层和 PointCloud 层)
106
+ 3. **ModelScene Parameter**: 全局默认值,优先级最低。影响整个场景。
100
107
 
101
108
  ```mermaid
102
109
  graph TD
@@ -105,74 +112,66 @@ graph TD
105
112
  Model -->|Inherit| Layer2[ViewLayer.parameter]
106
113
  ```
107
114
 
108
- **示例逻辑**:
109
- * 如果 `ModelScene` 设置 `opacity = 0.5`,所有模型都会变半透明。
110
- * 如果此时 `Model A` 设置 `opacity = 1.0`,那么 `Model A` 及其下的 ViewLayer 会变为不透明,而其他 Model 保持半透明。
111
-
112
- ### 2. 参数分类
115
+ > **Global Configuration (全局设置)**:
116
+ > 若需修改所有模型的默认表现(如统一调暗亮度、统一设置显存上限),**请直接配置 `five.modelScene.parameter`**。它是继承链的根节点,其设置会向下传递给所有 Model ViewLayer。
117
+ >
118
+ > **Why modelScene? (生命周期优势)**:
119
+ > `Model` 实例是跟随 Work 加载生命周期的(需 `five.load(work)` 后才能访问,且切换 Work 会销毁重建)。
120
+ > 相比之下,`ModelScene` 是常驻对象。因此,**使用 `modelScene` 进行配置更安全且持久**,既无需等待 Work 加载完成,也无需担心切换 Work 导致配置丢失。
113
121
 
114
- #### 材质与外观 (Material & Appearance)
115
- 控制模型“长什么样”。比如:
116
- * **`modelAlpha`**: 核心参数。Five 的模型纹理通常来自全景图投影。该值控制是显示原始模型 UV 贴图,还是显示全景投影贴图。
117
- * **`shownFloorIndex`**: 实现“分层拆解”效果。
118
- * **`floorStyle`**: 控制楼层隐藏的表现形式。
122
+ ## Examples
119
123
 
120
- #### 3DTile & 性能 (LOD)
121
- 控制模型“怎么加载”。比如:
122
- * **`maxMemoryUsage`**: 显存控制。当加载的模型块超过此限制时,会自动卸载不可见的块。
123
- * **`maxScreenSpaceError`**: 画质控制。值越小,加载的模型精度越高(允许的屏幕空间误差越小),但网络和渲染开销越大。
124
- * **`minGeometricError`**: 几何误差阈值。值越小,加载的模型精度越高(允许的几何误差越小),但网络和渲染开销越大。
125
- * **`maxRequests`**: 最大并发请求数。控制同时加载的模型块数量,避免对服务器压力过大。
124
+ ### 1. 基础配置 (Basic Usage)
126
125
 
127
- #### 点云 (Point Cloud)
128
- 专用于 `type: point_cloud` 的 ViewLayer。比如:
129
- * **`pointSize`**: 控制点的像素大小。
130
- * **`pointScale`**: 点云整体缩放。
126
+ ```typescript
127
+ // 1. 设置全局最大显存 (影响所有模型)
128
+ five.modelScene.parameter.set('maxMemoryUsage', 512);
131
129
 
132
- ## Examples
130
+ // 2. 设置全局半透明
131
+ five.modelScene.parameter.set('opacity', 0.5);
132
+ ```
133
133
 
134
- ### 基础用法:设置全局透明度
134
+ ### 2. 局部覆盖 (Override)
135
135
 
136
136
  ```typescript
137
- // 将整个场景的模型设为半透明
138
- five.modelScene.parameter.set('opacity', 0.5);
137
+ // 场景中大部分模型不产生阴影
138
+ five.modelScene.parameter.set('castShadow', false);
139
139
 
140
- // 恢复默认
141
- five.modelScene.parameter.remove('opacity');
140
+ // 但让特定的“主角”模型产生阴影
141
+ const heroModel = five.models[0];
142
+ heroModel.parameter.set('castShadow', true);
142
143
  ```
143
144
 
144
- ### 进阶用法:差异化配置
145
+ ### 3. 重置配置 (Reset)
145
146
 
146
147
  ```typescript
147
- // 1. 全局开启阴影
148
- five.modelScene.parameter.set('castShadow', true);
148
+ // 假设之前设置了 opacity
149
+ five.modelScene.parameter.set('opacity', 0.5);
149
150
 
150
- // 2. 但让第一个模型不产生阴影
151
- const mainModel = five.models[0];
152
- if (mainModel) {
153
- mainModel.parameter.set('castShadow', false);
154
- }
151
+ // ... 一段时间后 ...
155
152
 
156
- // 3. 让特定的点云图层点变大
157
- const pointCloudLayer = mainModel.viewLayers.find(l => l.type === 'point_cloud');
158
- if (pointCloudLayer) {
159
- pointCloudLayer.parameter.set('pointSize', 2.0);
160
- }
153
+ // 移除该设置,恢复默认值 (或继承值)
154
+ five.modelScene.parameter.reset('opacity');
161
155
  ```
162
156
 
163
- ## Common Pitfalls
157
+ ### 4. 获取配置 (Get Value)
158
+
159
+ ```typescript
160
+ // 获取当前对象上的配置(如果未设置,则为 undefined)
161
+ const ownOpacity = five.modelScene.parameter.opacity;
164
162
 
165
- 1. **拼写错误**: `parameter.set()` 的 key 是字符串,拼写错误不会报错(除非使用 TypeScript),但配置不会生效。
166
- 2. **层级混淆**: `ModelScene` 上设置了 `shownFloorIndex`,却期望只影响某个 Model。请务必确认操作的 `parameter` 对象所属的层级。
167
- 3. **类型错误**: 某些数值参数(如 `opacity`)需要 `number` 类型,传入字符串可能导致渲染计算 NaN 错误。
163
+ // 获取最终生效的配置(计算继承链后的值)
164
+ const finalOpacity = five.modelScene.parameter.resolveValue().opacity;
165
+ ```
168
166
 
169
167
  ## Related
170
168
 
171
- * [Model](./model.md): Parameter 的宿主之一。
172
- * [3DTile](./3dtile.md): 受 Parameter 控制的底层技术。
169
+ * [Material Parameters](./material.md): 材质与外观参数详情。
170
+ * [3DTile Parameters](./3dtile.md): 性能与加载参数详情。
171
+ * [Model](./model.md): Parameter 的宿主。
173
172
 
174
173
  ---
175
174
 
176
175
  ```yaml
177
- tags: [parameter, config, appearance, 3dtile]
176
+ tags: [配置, 参数, 继承, 覆盖, 全局配置, 局部配置, parameter, config, hierarchy, api, set, reset, modelScene]
178
177
  ```
@@ -0,0 +1,210 @@
1
+ # 插件系统 (Plugin System)
2
+
3
+ - **Summary**: Five 插件系统基于 `BasePlugin` 命名空间构建,提供了一套标准化的状态管理、生命周期控制和事件通信机制。
4
+ - **Schema**: 核心类型定义位于 `BasePlugin` 命名空间。
5
+ - **Concepts**: BasePlugin, State, Lifecycle, Controller.
6
+ - **Configuration**: 插件特定的参数配置。
7
+ - **Examples**: 标准插件开发示例。
8
+
9
+ ## Schema
10
+
11
+ > **Definition**: [BasePlugin](../../plugins/BasePlugin/index.d.ts)
12
+
13
+ `BasePlugin` 是一个命名空间,包含 `Controller` (抽象基类), `State` (状态接口), `EventMap` (事件映射) 等核心定义。
14
+
15
+ ```typescript
16
+ export namespace BasePlugin {
17
+ export interface State {
18
+ enabled: boolean
19
+ visible?: boolean
20
+ config?: unknown
21
+ }
22
+ export abstract class Controller<PluginState, PluginEventMap, PluginServerData, PluginData> {
23
+ public five: Five
24
+ public abstract state: PluginState
25
+ public hooks: Subscribe<PluginEventMap>
26
+ // ...
27
+ }
28
+ }
29
+ ```
30
+
31
+ ## Concepts
32
+
33
+ ### Directory Structure (目录结构)
34
+
35
+ 一个标准的插件通常包含以下文件:
36
+
37
+ ```text
38
+ PluginName/
39
+ ├── index.ts # 插件入口,导出工厂函数和类型
40
+ ├── Controller.ts # 插件控制器,核心逻辑实现
41
+ └── typing.ts # 类型定义
42
+ ```
43
+
44
+ ### BasePlugin
45
+
46
+ 所有插件推荐继承 `BasePlugin.Controller`。它定义了规范的泛型接口:
47
+
48
+ - `PluginState`: 插件状态类型,继承自 `BasePlugin.State`。
49
+ - `PluginEventMap`: 插件事件类型,继承自 `BasePlugin.EventMap`。
50
+ - `PluginServerData`: 服务端原始数据类型。
51
+ - `PluginData`: 解析后的插件数据类型。
52
+
53
+ ### State (状态)
54
+
55
+ 插件的状态驱动其行为。`BasePlugin.State` 定义了最基本的状态:
56
+
57
+ - `enabled`: 是否启用。
58
+ - `visible`: UI 是否可见。
59
+ - `config`: 配置项。
60
+
61
+ ### Lifecycle (生命周期)
62
+
63
+ 插件的主要生命周期方法:
64
+
65
+ - **constructor**: 初始化配置和初始状态。
66
+ - **load**: 加载和解析数据。
67
+ - **enable**: 启用插件,注册事件监听,添加副作用。
68
+ - **disable**: 禁用插件,移除事件监听,清理副作用。
69
+ - **dispose**: 销毁插件,彻底清理资源。
70
+
71
+ ## Configuration
72
+
73
+ ### BasePlugin Configuration
74
+
75
+ `BasePlugin` 控制器构造函数接受可选的配置对象:
76
+
77
+ | Parameter | Type | Default | Description |
78
+ | :--- | :--- | :--- | :--- |
79
+ | `staticPrefix` | `string` | `'//vr-image-4.realsee-cdn.cn'` | 静态资源前缀。 |
80
+ | `i18n` | `(key: string) => string` | `undefined` | 国际化转换函数。 |
81
+
82
+ ## Examples
83
+
84
+ ### Plugin Development Walkthrough (插件开发指南)
85
+
86
+ 以创建一个 `MyPlugin` 为例。
87
+
88
+ #### 1. 定义类型 (typing.ts)
89
+
90
+ 定义插件所需的参数、状态、数据和事件类型。
91
+
92
+ ```typescript
93
+ import { BasePlugin } from '../BasePlugin'
94
+
95
+ // 1. 定义参数
96
+ export interface Params extends BasePlugin.Config {
97
+ initialState?: Partial<State>
98
+ config?: Config
99
+ }
100
+
101
+ // 2. 定义配置
102
+ export interface Config {
103
+ color?: string
104
+ }
105
+
106
+ // 3. 定义状态 (继承 BasePlugin.State)
107
+ export interface State extends BasePlugin.State {
108
+ activeId?: string
109
+ }
110
+
111
+ // 4. 定义数据类型
112
+ export interface ServerData { /* 服务端数据结构 */ }
113
+ export interface PluginData { /* 解析后的数据结构 */ }
114
+
115
+ // 5. 定义事件 (继承 BasePlugin.EventMap)
116
+ export interface EventMap extends BasePlugin.EventMap<State, PluginData> {
117
+ click: (id: string) => void
118
+ }
119
+ ```
120
+
121
+ #### 2. 实现控制器 (Controller.ts)
122
+
123
+ 继承 `BasePlugin.Controller` 并实现核心逻辑。
124
+
125
+ ```typescript
126
+ import { Five } from '@realsee/five'
127
+ import { BasePlugin } from '../BasePlugin'
128
+ import * as MyPluginType from './typing'
129
+
130
+ export class Controller extends BasePlugin.Controller<
131
+ MyPluginType.State,
132
+ MyPluginType.EventMap,
133
+ MyPluginType.ServerData,
134
+ MyPluginType.PluginData
135
+ > {
136
+ public state: MyPluginType.State
137
+
138
+ constructor(five: Five, params?: MyPluginType.Params) {
139
+ super(five)
140
+ this.state = {
141
+ enabled: true,
142
+ visible: true,
143
+ ...params?.initialState
144
+ }
145
+ if (this.state.enabled) {
146
+ this._enable()
147
+ }
148
+ }
149
+
150
+ public async load(serverData: MyPluginType.ServerData) {
151
+ // 解析数据
152
+ }
153
+
154
+ public enable() {
155
+ if (this.state.enabled) return
156
+ this.state.enabled = true
157
+ this._enable()
158
+ this.hooks.emit('stateChange', { state: this.state, userAction: true })
159
+ }
160
+
161
+ public disable() {
162
+ if (!this.state.enabled) return
163
+ this.state.enabled = false
164
+ this._disable()
165
+ this.hooks.emit('stateChange', { state: this.state, userAction: true })
166
+ }
167
+
168
+ public dispose = () => {
169
+ this.disable()
170
+ this.hooks.emit('dispose')
171
+ }
172
+
173
+ private _enable() {
174
+ // five.scene.add(...)
175
+ // five.on('tap', this.onTap)
176
+ }
177
+
178
+ private _disable() {
179
+ // five.scene.remove(...)
180
+ // five.off('tap', this.onTap)
181
+ }
182
+ }
183
+ ```
184
+
185
+ #### 3. 导出插件 (index.ts)
186
+
187
+ 提供一个工厂函数。
188
+
189
+ ```typescript
190
+ import { Five } from '@realsee/five'
191
+ import { Controller } from './Controller'
192
+ import * as MyPluginType from './typing'
193
+
194
+ export const MyPlugin = (five: Five, params?: MyPluginType.Params) =>
195
+ new Controller(five, params)
196
+
197
+ export type { MyPluginType, Controller as MyPluginController }
198
+ ```
199
+
200
+ ## Common Pitfalls (最佳实践)
201
+
202
+ 1. **状态驱动**: 始终通过修改 `state` 来驱动插件行为,而不是直接操作 DOM 或 3D 对象。
203
+ 2. **清理资源**: 在 `disable` 和 `dispose` 中务必清理所有事件监听和副作用,防止内存泄漏。
204
+ 3. **类型安全**: 充分利用 TypeScript 泛型,确保事件和状态的类型安全。
205
+
206
+ ---
207
+
208
+ ```yaml
209
+ tags: [插件, 插件开发, 扩展, 自定义功能, 状态管理, plugin, baseplugin, development, guide, extension, lifecycle]
210
+ ```