@realsee/five 6.8.0-alpha.0 → 6.8.0-alpha.10

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 (775) hide show
  1. package/AGENTS_READ_ME.md +4 -0
  2. package/AI_CONTEXT.md +4 -0
  3. package/README.md +50 -389
  4. package/ai_guides/README.md +122 -0
  5. package/ai_guides/ai-doc-guidelines.md +102 -0
  6. package/ai_guides/api.md +274 -0
  7. package/ai_guides/features/3dtile.md +172 -0
  8. package/ai_guides/features/camera-animation.md +205 -0
  9. package/ai_guides/features/clipper.md +135 -0
  10. package/ai_guides/features/coordinate-system.md +128 -0
  11. package/ai_guides/features/event.md +154 -0
  12. package/ai_guides/features/five.md +184 -0
  13. package/ai_guides/features/flowing-light-2d-pass.md +438 -0
  14. package/ai_guides/features/flowing-light-3d-pass.md +420 -0
  15. package/ai_guides/features/gaussian-blur-pass.md +202 -0
  16. package/ai_guides/features/gesture.md +180 -0
  17. package/ai_guides/features/get-screen-pixels.md +182 -0
  18. package/ai_guides/features/image-options.md +164 -0
  19. package/ai_guides/features/load-external-model.md +350 -0
  20. package/ai_guides/features/load-progress.md +140 -0
  21. package/ai_guides/features/material.md +151 -0
  22. package/ai_guides/features/mode.md +269 -0
  23. package/ai_guides/features/model.md +186 -0
  24. package/ai_guides/features/move-pano-effect.md +145 -0
  25. package/ai_guides/features/multi-work.md +146 -0
  26. package/ai_guides/features/pano-tile.md +132 -0
  27. package/ai_guides/features/pano-uv.md +131 -0
  28. package/ai_guides/features/parameter.md +153 -0
  29. package/ai_guides/features/plugin.md +210 -0
  30. package/ai_guides/features/postprocessing.md +259 -0
  31. package/ai_guides/features/raycast.md +175 -0
  32. package/ai_guides/features/request-proxy.md +112 -0
  33. package/ai_guides/features/screen-project.md +165 -0
  34. package/ai_guides/features/state.md +101 -0
  35. package/ai_guides/features/view-layer.md +187 -0
  36. package/ai_guides/features/work.md +303 -0
  37. package/ai_guides/glossary.md +93 -0
  38. package/ai_guides/intro.md +23 -0
  39. package/ai_guides/quick-start.md +69 -0
  40. package/ai_guides/release_notes/6.6.md +86 -0
  41. package/ai_guides/release_notes/6.7.md +401 -0
  42. package/ai_guides/release_notes/6.8.md +90 -0
  43. package/ai_guides/support.md +23 -0
  44. package/ai_guides/template.md +70 -0
  45. package/docs/00_FOR_AI_AGENTS.md +11 -0
  46. package/docs/README.md +11 -0
  47. package/docs/assets/hierarchy.js +1 -1
  48. package/docs/assets/highlight.css +29 -29
  49. package/docs/assets/icons.js +1 -1
  50. package/docs/assets/icons.svg +1 -1
  51. package/docs/assets/main.js +2 -2
  52. package/docs/assets/navigation.js +1 -1
  53. package/docs/assets/search.js +1 -1
  54. package/docs/assets/style.css +3 -3
  55. package/docs/classes/five.AdaptiveLuminancePass.html +2 -2
  56. package/docs/classes/five.AnimationFrameLoop.html +5 -5
  57. package/docs/classes/five.BoundingMesh.html +1 -1
  58. package/docs/classes/five.Camera.html +5 -5
  59. package/docs/classes/five.EffectComposer.html +1 -1
  60. package/docs/classes/five.EyeDomeLightingPass.html +2 -2
  61. package/docs/classes/five.Five.html +134 -134
  62. package/docs/classes/five.FivePass.html +2 -2
  63. package/docs/classes/five.FullScreenQuad.html +2 -2
  64. package/docs/classes/five.InternalWebGLRenderer.html +1 -1
  65. package/docs/classes/five.Model.html +36 -36
  66. package/docs/classes/five.ModelScene.html +12 -12
  67. package/docs/classes/five.Motion.html +1 -1
  68. package/docs/classes/five.NetworkSubscribe.html +23 -23
  69. package/docs/classes/five.PBMContainer.html +3 -3
  70. package/docs/classes/five.PBMGSObject.html +24 -0
  71. package/docs/classes/five.PBMGroup.html +1 -1
  72. package/docs/classes/five.PBMMesh.html +1 -1
  73. package/docs/classes/five.PBMMeshMaterial.html +15 -6
  74. package/docs/classes/five.PBMPointCloud.html +1 -1
  75. package/docs/classes/five.PBMPointCloudMaterial.html +3 -3
  76. package/docs/classes/five.PBMSkinnedMesh.html +1 -1
  77. package/docs/classes/five.PanoCircleMesh.html +4 -4
  78. package/docs/classes/five.PanoCircleMeshCustom.html +4 -4
  79. package/docs/classes/five.PanoCircleMeshSolid.html +4 -4
  80. package/docs/classes/five.Parameter.html +55 -51
  81. package/docs/classes/five.Scene.html +3 -3
  82. package/docs/classes/five.Subscribe.html +26 -25
  83. package/docs/classes/five.Tile.html +1 -1
  84. package/docs/classes/five.Tile3D.html +30 -26
  85. package/docs/classes/five.TileNode.html +2 -2
  86. package/docs/classes/five.Tileset.html +11 -11
  87. package/docs/classes/five.Trajectory.html +1 -1
  88. package/docs/classes/five.TrajectoryNode.html +1 -1
  89. package/docs/classes/five.Work.html +19 -19
  90. package/docs/classes/five.WorkResolvedObserver.html +41 -16
  91. package/docs/classes/gltf-loader.DDSLoader.html +1 -1
  92. package/docs/classes/gltf-loader.DRACOLoader.html +1 -1
  93. package/docs/classes/gltf-loader.GLTFLoader.html +6 -6
  94. package/docs/classes/gltf-loader.GLTFObject.html +1 -1
  95. package/docs/classes/gltf-loader.THREEGLTFLoader.html +1 -1
  96. package/docs/classes/line.Line.html +1 -1
  97. package/docs/classes/line.LineGeometry.html +4 -4
  98. package/docs/classes/line.LineMaterial.html +1 -1
  99. package/docs/classes/line.LineSegmentsGeometry.html +4 -4
  100. package/docs/classes/line.THREE_Line2.html +1 -1
  101. package/docs/classes/line.THREE_LineSegments2.html +1 -1
  102. package/docs/classes/plugins.BasePlugin.Controller.html +16 -16
  103. package/docs/classes/plugins.RoundedBoxGeometry.html +1 -1
  104. package/docs/classes/react.Store.html +12 -11
  105. package/docs/classes/sticker.Sticker.html +11 -11
  106. package/docs/classes/vfx.Airflow.html +1 -1
  107. package/docs/classes/vfx.Flame.html +1 -1
  108. package/docs/classes/vfx.Particle.html +31 -31
  109. package/docs/classes/vfx.ParticleGPU.html +7 -7
  110. package/docs/classes/vfx.SpotLight.html +1 -1
  111. package/docs/documents/README.html +138 -0
  112. package/docs/documents/ai-doc-guidelines.html +117 -0
  113. package/docs/documents/api.html +337 -0
  114. package/docs/documents/features_3dtile.html +216 -0
  115. package/docs/documents/features_camera-animation.html +157 -0
  116. package/docs/documents/features_clipper.html +80 -0
  117. package/docs/documents/features_coordinate-system.html +127 -0
  118. package/docs/documents/features_event.html +104 -0
  119. package/docs/documents/features_five.html +147 -0
  120. package/docs/documents/features_flowing-light-2d-pass.html +356 -0
  121. package/docs/documents/features_flowing-light-3d-pass.html +351 -0
  122. package/docs/documents/features_gaussian-blur-pass.html +182 -0
  123. package/docs/documents/features_gesture.html +120 -0
  124. package/docs/documents/features_get-screen-pixels.html +88 -0
  125. package/docs/documents/features_image-options.html +108 -0
  126. package/docs/documents/features_load-external-model.html +600 -0
  127. package/docs/documents/features_load-progress.html +110 -0
  128. package/docs/documents/features_material.html +334 -0
  129. package/docs/documents/features_mode.html +114 -0
  130. package/docs/documents/features_model.html +141 -0
  131. package/docs/documents/features_move-pano-effect.html +110 -0
  132. package/docs/documents/features_multi-work.html +97 -0
  133. package/docs/documents/features_pano-tile.html +100 -0
  134. package/docs/documents/features_pano-uv.html +82 -0
  135. package/docs/documents/features_parameter.html +101 -0
  136. package/docs/documents/features_plugin.html +105 -0
  137. package/docs/documents/features_postprocessing.html +109 -0
  138. package/docs/documents/features_raycast.html +98 -0
  139. package/docs/documents/features_request-proxy.html +78 -0
  140. package/docs/documents/features_screen-project.html +112 -0
  141. package/docs/documents/features_state.html +71 -0
  142. package/docs/documents/features_view-layer.html +158 -0
  143. package/docs/documents/features_work.html +129 -0
  144. package/docs/documents/glossary.html +94 -0
  145. package/docs/documents/intro.html +24 -0
  146. package/docs/documents/quick-start.html +32 -0
  147. package/docs/documents/release_notes_6.6.html +79 -0
  148. package/docs/documents/release_notes_6.7.html +209 -0
  149. package/docs/documents/release_notes_6.8.html +103 -0
  150. package/docs/documents/support.html +49 -0
  151. package/docs/documents/template.html +80 -0
  152. package/docs/functions/five.coordinatesToVector.html +1 -1
  153. package/docs/functions/five.defaultImageURLTransform.html +3 -3
  154. package/docs/functions/five.headingToLongitude.html +1 -1
  155. package/docs/functions/five.loadAt3d.html +1 -1
  156. package/docs/functions/five.loadB3dm.html +1 -1
  157. package/docs/functions/five.loadDome.html +1 -1
  158. package/docs/functions/five.loadDomez.html +1 -1
  159. package/docs/functions/five.loadFbx.html +1 -1
  160. package/docs/functions/five.loadGltf.html +1 -1
  161. package/docs/functions/five.loadPbm.html +1 -1
  162. package/docs/functions/five.loadPly.html +1 -1
  163. package/docs/functions/five.loadPnts.html +1 -1
  164. package/docs/functions/five.loadSplat.html +1 -0
  165. package/docs/functions/five.loadSpz.html +1 -0
  166. package/docs/functions/five.loadX3p.html +1 -1
  167. package/docs/functions/five.longitudeToHeading.html +1 -1
  168. package/docs/functions/five.parseWork.html +3 -3
  169. package/docs/functions/five.vectorToCoordinates.html +1 -1
  170. package/docs/functions/react.createFiveProvider.html +2 -2
  171. package/docs/functions/react.createStore.html +8 -8
  172. package/docs/functions/react.useFiveAction.html +6 -6
  173. package/docs/functions/react.useFiveCameraDirection.html +1 -1
  174. package/docs/functions/react.useFiveCameraRaycaster.html +1 -1
  175. package/docs/functions/react.useFiveCurrentObserver.html +1 -1
  176. package/docs/functions/react.useFiveCurrentState.html +1 -1
  177. package/docs/functions/react.useFiveEventCallback.html +1 -1
  178. package/docs/functions/react.useFiveFloor.html +1 -1
  179. package/docs/functions/react.useFiveHelper.html +1 -1
  180. package/docs/functions/react.useFiveModelIntersectRaycaster.html +2 -2
  181. package/docs/functions/react.useFiveModelReadyState.html +1 -1
  182. package/docs/functions/react.useFiveProject2d.html +2 -2
  183. package/docs/functions/react.useFiveSceneEffect.html +1 -1
  184. package/docs/functions/react.useFiveWork.html +2 -2
  185. package/docs/functions/vue.useFiveAction.html +8 -8
  186. package/docs/functions/vue.useFiveCameraDirection.html +1 -1
  187. package/docs/functions/vue.useFiveCameraRaycaster.html +1 -1
  188. package/docs/functions/vue.useFiveCurrentObserver.html +1 -1
  189. package/docs/functions/vue.useFiveCurrentState.html +1 -1
  190. package/docs/functions/vue.useFiveEventCallback.html +1 -1
  191. package/docs/functions/vue.useFiveFloor.html +1 -1
  192. package/docs/functions/vue.useFiveHelper.html +1 -1
  193. package/docs/functions/vue.useFiveModel.html +1 -1
  194. package/docs/functions/vue.useFiveModelBounding.html +1 -1
  195. package/docs/functions/vue.useFiveModelIntersectRaycaster.html +2 -2
  196. package/docs/functions/vue.useFiveModelReadyState.html +1 -1
  197. package/docs/functions/vue.useFiveProject2d.html +2 -2
  198. package/docs/functions/vue.useFiveScene.html +1 -1
  199. package/docs/functions/vue.useFiveState.html +1 -1
  200. package/docs/functions/vue.useFiveWorks.html +4 -4
  201. package/docs/hierarchy.html +1 -1
  202. package/docs/index.html +115 -187
  203. package/docs/interfaces/five.AddableObject.html +5 -5
  204. package/docs/interfaces/five.AjaxOptions.html +5 -5
  205. package/docs/interfaces/five.BaseEvent.html +2 -2
  206. package/docs/interfaces/five.EventCallback.html +198 -194
  207. package/docs/interfaces/five.FiveInitArgs.html +18 -18
  208. package/docs/interfaces/five.FiveLoadOptions.html +3 -3
  209. package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +8 -8
  210. package/docs/interfaces/five.GestureEvent.html +2 -2
  211. package/docs/interfaces/five.ImageOptions.html +11 -11
  212. package/docs/interfaces/five.ImageURLOptions.html +8 -8
  213. package/docs/interfaces/five.IntersectEvent.html +2 -2
  214. package/docs/interfaces/five.IntersectMesh.html +1 -1
  215. package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
  216. package/docs/interfaces/five.Intersection.html +4 -3
  217. package/docs/interfaces/five.LooseWorkWithExtrinsics.html +7 -7
  218. package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +8 -8
  219. package/docs/interfaces/five.ModeChangeEvent.html +2 -2
  220. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +9 -9
  221. package/docs/interfaces/five.ModelEvent.html +2 -2
  222. package/docs/interfaces/five.ModelOptions.html +3 -3
  223. package/docs/interfaces/five.ModelSceneEvent.html +2 -2
  224. package/docs/interfaces/five.ModelTileEvent.html +8 -0
  225. package/docs/interfaces/five.MovePanoOptions.html +10 -10
  226. package/docs/interfaces/five.NetworkAbortError.html +1 -1
  227. package/docs/interfaces/five.NetworkFirbiddenError.html +1 -1
  228. package/docs/interfaces/five.NetworkOptions.html +4 -4
  229. package/docs/interfaces/five.NetworkProxyError.html +1 -1
  230. package/docs/interfaces/five.NetworkResourceEvent.html +2 -2
  231. package/docs/interfaces/five.NetworkResponseError.html +1 -1
  232. package/docs/interfaces/five.NetworkTimeoutError.html +1 -1
  233. package/docs/interfaces/five.ObjectEvent.html +2 -2
  234. package/docs/interfaces/five.PBMMaterial.html +1 -1
  235. package/docs/interfaces/five.PBMMeshMaterialParameters.html +1 -1
  236. package/docs/interfaces/five.PBMPanoDepth.html +4 -4
  237. package/docs/interfaces/five.PBMPanoPicture.html +5 -5
  238. package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +1 -1
  239. package/docs/interfaces/five.PanoCircleMeshInterface.html +4 -4
  240. package/docs/interfaces/five.PanoEvent.html +2 -2
  241. package/docs/interfaces/five.PanoTextureEvent.html +2 -2
  242. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +15 -15
  243. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +9 -9
  244. package/docs/interfaces/five.ParameterMaterialValue.html +40 -36
  245. package/docs/interfaces/five.ParameterTilesetValue.html +15 -15
  246. package/docs/interfaces/five.ParameterValue.html +54 -50
  247. package/docs/interfaces/five.Pass.html +1 -1
  248. package/docs/interfaces/five.Pose.html +6 -7
  249. package/docs/interfaces/five.RenderEvent.html +2 -2
  250. package/docs/interfaces/five.ResolvedParameterValue.html +54 -50
  251. package/docs/interfaces/five.SplatData.html +10 -0
  252. package/docs/interfaces/five.State.html +9 -9
  253. package/docs/interfaces/five.StateEvent.html +2 -2
  254. package/docs/interfaces/five.TextureOptions.html +12 -12
  255. package/docs/interfaces/five.Tile3DOptions.html +2 -2
  256. package/docs/interfaces/five.TileCoordinateSystem.html +2 -2
  257. package/docs/interfaces/five.TilesetHeader.html +12 -12
  258. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +7 -7
  259. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +13 -13
  260. package/docs/interfaces/five.ViewLayer.html +30 -26
  261. package/docs/interfaces/five.Viewport.html +4 -4
  262. package/docs/interfaces/five.WorkCubeImage.html +1 -1
  263. package/docs/interfaces/five.WorkImage.html +4 -4
  264. package/docs/interfaces/five.WorkInitial.html +8 -8
  265. package/docs/interfaces/five.WorkModel.html +8 -8
  266. package/docs/interfaces/five.WorkModelLayer.html +6 -6
  267. package/docs/interfaces/five.WorkObserver.html +41 -16
  268. package/docs/interfaces/five.WorkTile.html +4 -4
  269. package/docs/interfaces/five.WorkVideo.html +4 -4
  270. package/docs/interfaces/five.WorksEvent.html +2 -2
  271. package/docs/interfaces/five.XRControllerEvent.html +2 -2
  272. package/docs/interfaces/five.XRGestureEvent.html +2 -2
  273. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +13 -13
  274. package/docs/interfaces/five.XRSessionEvent.html +2 -2
  275. package/docs/interfaces/plugins.BackgroundPluginController.html +11 -11
  276. package/docs/interfaces/plugins.BackgroundPluginType.EventMap.html +8 -8
  277. package/docs/interfaces/plugins.BasePlugin.BaseOptions.html +1 -1
  278. package/docs/interfaces/plugins.BasePlugin.Config.html +2 -2
  279. package/docs/interfaces/plugins.BasePlugin.State.html +4 -4
  280. package/docs/interfaces/plugins.BasePlugin.StateChangeParams.html +3 -3
  281. package/docs/interfaces/plugins.DynamicPathLinePluginController.html +45 -45
  282. package/docs/interfaces/plugins.DynamicPathLinePluginType.Config.html +18 -18
  283. package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +13 -13
  284. package/docs/interfaces/plugins.DynamicPathLinePluginType.Params.html +2 -2
  285. package/docs/interfaces/plugins.DynamicPathLinePluginType.PathConfig.html +14 -14
  286. package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +5 -5
  287. package/docs/interfaces/plugins.ItemMaskController.html +12 -12
  288. package/docs/interfaces/plugins.ItemMaskPluginType.Config.html +1 -1
  289. package/docs/interfaces/plugins.ItemMaskPluginType.EventMap.html +5 -5
  290. package/docs/interfaces/plugins.ItemMaskPluginType.Params.html +1 -1
  291. package/docs/interfaces/plugins.ItemMaskPluginType.State.html +7 -7
  292. package/docs/interfaces/plugins.OrientationPluginController.html +12 -12
  293. package/docs/interfaces/plugins.OrientationPluginType.Config.html +1 -1
  294. package/docs/interfaces/plugins.OrientationPluginType.EventMap.html +5 -5
  295. package/docs/interfaces/plugins.OrientationPluginType.Params.html +1 -1
  296. package/docs/interfaces/plugins.OrientationPluginType.State.html +5 -5
  297. package/docs/interfaces/plugins.PanoAnimeController.html +14 -14
  298. package/docs/interfaces/plugins.PanoAnimePluginType.Config.html +1 -1
  299. package/docs/interfaces/plugins.PanoAnimePluginType.ConfigChangeEvent.html +3 -3
  300. package/docs/interfaces/plugins.PanoAnimePluginType.EventMap.html +6 -6
  301. package/docs/interfaces/plugins.PanoAnimePluginType.Params.html +1 -1
  302. package/docs/interfaces/plugins.PanoAnimePluginType.State.html +4 -4
  303. package/docs/interfaces/plugins.PluginTemplateType.Config.html +1 -1
  304. package/docs/interfaces/plugins.PluginTemplateType.EventMap.html +5 -5
  305. package/docs/interfaces/plugins.PluginTemplateType.Params.html +1 -1
  306. package/docs/interfaces/plugins.PluginTemplateType.State.html +4 -4
  307. package/docs/interfaces/plugins.TrajectoryController.html +30 -15
  308. package/docs/interfaces/react.FiveActionReactCallbacks.html +23 -23
  309. package/docs/interfaces/react.FiveCanvasProps.html +2 -2
  310. package/docs/interfaces/react.FiveInjectionTypes.html +76 -76
  311. package/docs/interfaces/sticker.IntersectionLike.html +2 -2
  312. package/docs/interfaces/vfx.ParticleArgs.html +26 -26
  313. package/docs/interfaces/vfx.ParticleGPUArgs.html +30 -30
  314. package/docs/interfaces/vue.FiveActionVueCallbacks.html +23 -23
  315. package/docs/modules/five.html +1 -1
  316. package/docs/modules.html +1 -1
  317. package/docs/types/five.ControllerEventTypes.html +32 -32
  318. package/docs/types/five.EventTypes.html +26 -24
  319. package/docs/types/five.FivePlugin.html +2 -2
  320. package/docs/types/five.FivePluginInit.html +1 -1
  321. package/docs/types/five.FivePluginInstance.html +1 -1
  322. package/docs/types/five.LegacyEventType.html +142 -142
  323. package/docs/types/five.LoadResultType.html +2 -2
  324. package/docs/types/five.Mode.html +1 -1
  325. package/docs/types/five.MotionCircle.html +1 -1
  326. package/docs/types/five.NetworkProgressCallback.html +1 -1
  327. package/docs/types/five.ParseOptions.html +6 -6
  328. package/docs/types/plugins.BasePlugin.EventMap.html +5 -5
  329. package/docs/types/plugins.DynamicPathLinePluginType.PluginData.html +1 -1
  330. package/docs/types/plugins.DynamicPathLinePluginType.ServerData.html +1 -1
  331. package/docs/variables/react.FiveCanvas.html +1 -1
  332. package/docs/variables/react.useFiveScene.html +1 -1
  333. package/docs/variables/vue.FiveCanvas.html +1 -1
  334. package/docs/variables/vue.FiveProvider.html +1 -1
  335. package/five/application/analysis.d.ts +40 -0
  336. package/five/application/controllers.d.ts +41 -0
  337. package/five/application/events-legacy.d.ts +454 -0
  338. package/five/application/events.d.ts +69 -0
  339. package/five/application/five.d.ts +518 -0
  340. package/five/application/fiveInitArgs.d.ts +176 -0
  341. package/five/application/fiveLoadOptions.d.ts +21 -0
  342. package/five/application/generateDefaultVideoElement.d.ts +2 -0
  343. package/five/application/getViewportScale.d.ts +2 -0
  344. package/five/application/initLights.d.ts +3 -0
  345. package/five/application/mode.d.ts +28 -0
  346. package/five/application/renderPoweredByRealsee.d.ts +3 -0
  347. package/five/assets/cardboard-png-data-url.d.ts +2 -0
  348. package/five/assets/gradient-png-data-url.d.ts +2 -0
  349. package/five/assets/loading-png-data-url.d.ts +2 -0
  350. package/five/assets/phone-png-data-url.d.ts +2 -0
  351. package/five/assets/realsee-pmg-data-url.d.ts +2 -0
  352. package/five/bvh/bvhMath.d.ts +33 -0
  353. package/five/bvh/bvhMesh.d.ts +7 -0
  354. package/five/bvh/bvhNode.d.ts +29 -0
  355. package/five/bvh/bvhObject.d.ts +18 -0
  356. package/five/bvh/bvhPoints.d.ts +6 -0
  357. package/five/bvh/index.d.ts +10 -0
  358. package/five/bvh/worker.d.ts +35 -0
  359. package/five/cardboard/helper.d.ts +2 -0
  360. package/five/cardboard/index.d.ts +13 -0
  361. package/five/cardboard/sensor.d.ts +158 -0
  362. package/five/certificates/hardware.d.ts +1 -0
  363. package/five/controllers/base.d.ts +166 -0
  364. package/five/controllers/events.d.ts +69 -0
  365. package/five/controllers/floorplan.d.ts +119 -0
  366. package/five/controllers/mapview.d.ts +138 -0
  367. package/five/controllers/model.d.ts +57 -0
  368. package/five/controllers/panorama.d.ts +143 -0
  369. package/five/controllers/panoramaLike.d.ts +87 -0
  370. package/five/controllers/topview.d.ts +42 -0
  371. package/five/controllers/vrPanorama.d.ts +56 -0
  372. package/five/controllers/xrPanorama.d.ts +81 -0
  373. package/five/core/camera.d.ts +65 -0
  374. package/five/core/internalWebGLRenderer.d.ts +14 -0
  375. package/five/core/panoVideo.d.ts +18 -0
  376. package/five/core/scene.d.ts +10 -0
  377. package/five/core/tiling.d.ts +43 -0
  378. package/five/declare.d.ts +2 -1
  379. package/five/gs/util/renderData.d.ts +32 -0
  380. package/five/gs/wasm/data.d.ts +20 -0
  381. package/five/gs/wasm/sort.d.ts +18 -0
  382. package/five/gs/worker/dataWorker.d.ts +1 -0
  383. package/five/gs/worker/sortWorker.d.ts +1 -0
  384. package/five/index.d.ts +57 -4582
  385. package/five/index.js +605 -92
  386. package/five/index.mjs +9661 -7537
  387. package/five/meshes/boundingMesh.d.ts +12 -0
  388. package/five/meshes/intersectMesh.d.ts +8 -0
  389. package/five/meshes/panoCircleMesh.d.ts +35 -0
  390. package/five/meshes/panoCircleMeshCustom.d.ts +40 -0
  391. package/five/meshes/panoCircleMeshSolid.d.ts +34 -0
  392. package/five/meshes/panoSphereMesh.d.ts +27 -0
  393. package/five/model/helpers/coordinate-transform.d.ts +3 -0
  394. package/five/model/helpers/ellipsoid-coordinates.d.ts +14 -0
  395. package/five/model/helpers/get-edges-by-sphere.d.ts +8 -0
  396. package/five/model/helpers/get-recommend-tile3d-parameters.d.ts +8 -0
  397. package/five/model/index.d.ts +70 -0
  398. package/five/model/intersection.d.ts +18 -0
  399. package/five/model/loaders/at3d.d.ts +12 -0
  400. package/five/model/loaders/b3dm.d.ts +9 -0
  401. package/five/model/loaders/dome.d.ts +22 -0
  402. package/five/model/loaders/domez.d.ts +11 -0
  403. package/five/model/loaders/fbx.d.ts +8 -0
  404. package/five/model/loaders/glTF-helpers/extensions/CESIUM_RTC.d.ts +9 -0
  405. package/five/model/loaders/glTF-helpers/extensions/EXT_meshopt_compression.d.ts +8 -0
  406. package/five/model/loaders/glTF-helpers/extensions/EXT_texture_webp.d.ts +11 -0
  407. package/five/model/loaders/glTF-helpers/extensions/KHR_animation_pointer.d.ts +6 -0
  408. package/five/model/loaders/glTF-helpers/extensions/KHR_binary_glTF.d.ts +25 -0
  409. package/five/model/loaders/glTF-helpers/extensions/KHR_draco_mesh_compression.d.ts +11 -0
  410. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz.d.ts +9 -0
  411. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_clearcoat.d.ts +10 -0
  412. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_emissive_strength.d.ts +10 -0
  413. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_sheen.d.ts +10 -0
  414. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_transmission.d.ts +10 -0
  415. package/five/model/loaders/glTF-helpers/extensions/KHR_materials_unlit.d.ts +10 -0
  416. package/five/model/loaders/glTF-helpers/extensions/KHR_mesh_quantization.d.ts +6 -0
  417. package/five/model/loaders/glTF-helpers/extensions/KHR_node_visibility.d.ts +10 -0
  418. package/five/model/loaders/glTF-helpers/extensions/KHR_texture_basisu.d.ts +9 -0
  419. package/five/model/loaders/glTF-helpers/extensions/KHR_texture_transform.d.ts +10 -0
  420. package/five/model/loaders/glTF-helpers/extensions/REALSEE_materials_lightmap.d.ts +7 -0
  421. package/five/model/loaders/glTF-helpers/extensions/base.d.ts +24 -0
  422. package/five/model/loaders/glTF-helpers/glTF.d.ts +713 -0
  423. package/five/model/loaders/glTF-helpers/index.d.ts +47 -0
  424. package/five/model/loaders/glTF-helpers/parser.d.ts +114 -0
  425. package/five/model/loaders/glTF-helpers/type.d.ts +14 -0
  426. package/five/model/loaders/gltf.d.ts +10 -0
  427. package/five/model/loaders/obj.d.ts +9 -0
  428. package/five/model/loaders/pbm.d.ts +26 -0
  429. package/five/model/loaders/ply.d.ts +24 -0
  430. package/five/model/loaders/pnts.d.ts +8 -0
  431. package/five/model/loaders/protobuf/dome.d.ts +540 -0
  432. package/five/model/loaders/protobuf/pbm.d.ts +203 -0
  433. package/five/model/loaders/shared.d.ts +16 -0
  434. package/five/model/loaders/splat.d.ts +8 -0
  435. package/five/model/loaders/spz.d.ts +14 -0
  436. package/five/model/loaders/tile3d-helpers/feature-table.d.ts +15 -0
  437. package/five/model/loaders/tile3d-helpers/gl-type.d.ts +20 -0
  438. package/five/model/loaders/tile3d-helpers/parse-gltf-array-buffer.d.ts +2 -0
  439. package/five/model/loaders/tile3d-helpers/parse-header.d.ts +2 -0
  440. package/five/model/loaders/tile3d-helpers/parse-point-cloud-attributes.d.ts +2 -0
  441. package/five/model/loaders/tile3d-helpers/parse-point-cloud-attributes.worker.d.ts +6 -0
  442. package/five/model/loaders/tile3d-helpers/parse-table.d.ts +3 -0
  443. package/five/model/loaders/tile3d-helpers/tile3d-type.d.ts +35 -0
  444. package/five/model/loaders/x3p.d.ts +22 -0
  445. package/five/model/materials/pbmMaterial.d.ts +87 -0
  446. package/five/model/materials/pbmMeshMaterial.d.ts +124 -0
  447. package/five/model/materials/pbmPointCloudMaterial.d.ts +72 -0
  448. package/five/model/model-scene.d.ts +172 -0
  449. package/five/model/model.d.ts +209 -0
  450. package/five/model/objects/pbmContainer.d.ts +28 -0
  451. package/five/model/objects/pbmGSObject.d.ts +40 -0
  452. package/five/model/objects/pbmGSRenderMesh.d.ts +32 -0
  453. package/five/model/objects/pbmGroup.d.ts +8 -0
  454. package/five/model/objects/pbmMesh.d.ts +10 -0
  455. package/five/model/objects/pbmPointCloud.d.ts +7 -0
  456. package/five/model/parameter.d.ts +136 -0
  457. package/five/model/shaders/pbm_gaussian_splatting/fragment.d.ts +2 -0
  458. package/five/model/shaders/pbm_gaussian_splatting/vertex.d.ts +2 -0
  459. package/five/model/shaders/pbm_mesh_basic/fragment.d.ts +2 -0
  460. package/five/model/shaders/pbm_mesh_basic/vertex.d.ts +2 -0
  461. package/five/model/shaders/pbm_mesh_none/fragment.d.ts +2 -0
  462. package/five/model/shaders/pbm_mesh_none/vertex.d.ts +2 -0
  463. package/five/model/shaders/pbm_mesh_phong/fragment.d.ts +2 -0
  464. package/five/model/shaders/pbm_mesh_phong/vertex.d.ts +2 -0
  465. package/five/model/shaders/pbm_mesh_standard/fragment.d.ts +2 -0
  466. package/five/model/shaders/pbm_mesh_standard/vertex.d.ts +2 -0
  467. package/five/model/shaders/pbm_pointcloud/fragment.d.ts +2 -0
  468. package/five/model/shaders/pbm_pointcloud/vertex.d.ts +2 -0
  469. package/five/model/tile3d/header.d.ts +88 -0
  470. package/five/model/tile3d/index.d.ts +214 -0
  471. package/five/model/tile3d/tile-cache.d.ts +18 -0
  472. package/five/model/tile3d/tile-content.d.ts +10 -0
  473. package/five/model/tile3d/tile-node.d.ts +24 -0
  474. package/five/model/tile3d/tile-request-scheduler.d.ts +17 -0
  475. package/five/model/tile3d/tile.d.ts +79 -0
  476. package/five/model/tile3d/tileset-base-traverser.d.ts +59 -0
  477. package/five/model/tile3d/tileset-most-detail-traverser.d.ts +14 -0
  478. package/five/model/tile3d/tileset-normal-traverser.d.ts +15 -0
  479. package/five/model/tile3d/tileset-skip-traverser.d.ts +60 -0
  480. package/five/model/tile3d/tileset.d.ts +69 -0
  481. package/five/model/tile3d/trajectory-content.d.ts +9 -0
  482. package/five/model/tile3d/trajectory-node.d.ts +15 -0
  483. package/five/model/tile3d/trajectory.d.ts +30 -0
  484. package/five/model/tile3d/types.d.ts +33 -0
  485. package/five/model/view-layer.d.ts +20 -0
  486. package/five/renderer/five-renderer.d.ts +17 -0
  487. package/five/renderer/index.d.ts +3 -0
  488. package/five/renderer/postprocessing/composer.d.ts +37 -0
  489. package/five/renderer/postprocessing/index.d.ts +7 -0
  490. package/five/renderer/postprocessing/passes/adaptive-luminance-pass.d.ts +15 -0
  491. package/five/renderer/postprocessing/passes/eye-dome-lighting-pass.d.ts +14 -0
  492. package/five/renderer/postprocessing/passes/flowing-light-2d-pass.d.ts +36 -0
  493. package/five/renderer/postprocessing/passes/flowing-light-3d-pass.d.ts +36 -0
  494. package/five/renderer/postprocessing/passes/gaussian-blur-pass.d.ts +12 -0
  495. package/five/renderer/postprocessing/passes/pass.d.ts +38 -0
  496. package/five/renderer/scene-renderers/point-cloud-high-quality-scene-renderer.d.ts +11 -0
  497. package/five/renderer/scene-renderers/scene-renderer.d.ts +9 -0
  498. package/five/renderer/scene-renderers/ssaa-scene-renderer.d.ts +15 -0
  499. package/five/renderer/tools/full-screen-quad.d.ts +15 -0
  500. package/five/renderer/tools/render-full-screen-depth.d.ts +2 -0
  501. package/five/renderer/tools/render-full-screen.d.ts +2 -0
  502. package/five/texture/imageBitmap.d.ts +13 -0
  503. package/five/texture/initTexture.d.ts +3 -0
  504. package/five/texture/loader.d.ts +39 -0
  505. package/five/thirdparty/fflate.d.ts +1407 -0
  506. package/five/thirdparty/hammer.d.ts +259 -0
  507. package/five/thirdparty/jsrsasign.d.ts +768 -0
  508. package/five/thirdparty/meshopt_decoder.d.ts +15 -0
  509. package/five/three-version-check.d.ts +1 -0
  510. package/five/types/addableObject.d.ts +12 -0
  511. package/five/types/cube.d.ts +1 -0
  512. package/five/types/gestureInput.d.ts +24 -0
  513. package/five/types/imageOptions.d.ts +20 -0
  514. package/five/types/intersectMeshInterface.d.ts +8 -0
  515. package/five/types/movePanoEffect.d.ts +13 -0
  516. package/five/types/movePanoOptions.d.ts +35 -0
  517. package/five/types/panoCircleMeshInterface.d.ts +34 -0
  518. package/five/types/plugin.d.ts +25 -0
  519. package/five/types/pose.d.ts +17 -0
  520. package/five/types/state.d.ts +20 -0
  521. package/five/types/viewport.d.ts +22 -0
  522. package/five/utils/ajax.d.ts +66 -0
  523. package/five/utils/animationFrameLoop.d.ts +45 -0
  524. package/five/utils/array.d.ts +31 -0
  525. package/five/utils/asyncTaskQueue.d.ts +8 -0
  526. package/five/utils/bufferGeometry.d.ts +33 -0
  527. package/five/utils/calculateProgress.d.ts +39 -0
  528. package/five/utils/calculateThreeMouse.d.ts +13 -0
  529. package/five/utils/canplayVideo.d.ts +2 -0
  530. package/five/utils/clamp.d.ts +2 -0
  531. package/five/utils/clock.d.ts +17 -0
  532. package/five/utils/createSymbol.d.ts +5 -0
  533. package/five/utils/decodeText.d.ts +2 -0
  534. package/five/utils/deepEqual.d.ts +2 -0
  535. package/five/utils/deepFreeze.d.ts +2 -0
  536. package/five/utils/defineProperty.d.ts +9 -0
  537. package/five/utils/detector.d.ts +14 -0
  538. package/five/utils/distance.d.ts +10 -0
  539. package/five/utils/draco.d.ts +26 -0
  540. package/five/utils/easing.d.ts +63 -0
  541. package/five/utils/event.d.ts +149 -0
  542. package/five/utils/formatRad.d.ts +7 -0
  543. package/five/utils/imageSupport.d.ts +6 -0
  544. package/five/utils/imageURL.d.ts +42 -0
  545. package/five/utils/isEmptyObject.d.ts +2 -0
  546. package/five/utils/isNil.d.ts +6 -0
  547. package/five/utils/isNumber.d.ts +2 -0
  548. package/five/utils/isPowerOfTwo.d.ts +2 -0
  549. package/five/utils/isPromise.d.ts +2 -0
  550. package/five/utils/isSimilar.d.ts +6 -0
  551. package/five/utils/json.d.ts +7 -0
  552. package/five/utils/ktx2.d.ts +30 -0
  553. package/five/utils/lzma/index.d.ts +2 -0
  554. package/five/utils/lzma/lzma.d.ts +3 -0
  555. package/five/utils/lzma/lzmaWASM.d.ts +2 -0
  556. package/five/utils/lzma/lzmaWorker.d.ts +14 -0
  557. package/five/utils/memoryUsage.d.ts +29 -0
  558. package/five/utils/motion.d.ts +38 -0
  559. package/five/utils/noop.d.ts +6 -0
  560. package/five/utils/now.d.ts +7 -0
  561. package/five/utils/pano.d.ts +9 -0
  562. package/five/utils/pick.d.ts +3 -0
  563. package/five/utils/poseUtils.d.ts +5 -0
  564. package/five/utils/renderCubeTextureToCubeRenderTarget.d.ts +3 -0
  565. package/five/utils/renderDepth.d.ts +2 -0
  566. package/five/utils/renderTexturesToCubeRenderTarget.d.ts +10 -0
  567. package/five/utils/requestPermission.d.ts +3 -0
  568. package/five/utils/shaderContentFix.d.ts +7 -0
  569. package/five/utils/shaderMaterial.d.ts +20 -0
  570. package/five/utils/stateUtils.d.ts +5 -0
  571. package/five/utils/string-pattern.d.ts +8 -0
  572. package/five/utils/subscribe.d.ts +67 -0
  573. package/five/utils/tileCube.d.ts +19 -0
  574. package/five/utils/toFastProperties.d.ts +1 -0
  575. package/five/utils/typedCache.d.ts +10 -0
  576. package/five/utils/uniform.d.ts +15 -0
  577. package/five/utils/url.d.ts +35 -0
  578. package/five/utils/uuid.d.ts +5 -0
  579. package/five/utils/values.d.ts +2 -0
  580. package/five/utils/vectorCoordinates.d.ts +29 -0
  581. package/five/utils/volume.d.ts +111 -0
  582. package/five/utils/webglError.d.ts +7 -0
  583. package/five/utils/worker.d.ts +26 -0
  584. package/five/webxr/XRControllerModelFactory.d.ts +28 -0
  585. package/five/webxr/motionHelper.d.ts +68 -0
  586. package/five/webxr/xrButton.d.ts +4 -0
  587. package/five/webxr/xrController.d.ts +24 -0
  588. package/five/webxr/xrManager.d.ts +84 -0
  589. package/five/work/_ALLOW_HOST.d.ts +2 -0
  590. package/five/work/index.d.ts +6 -0
  591. package/five/work/keychain.d.ts +5 -0
  592. package/five/work/looseWorkType.d.ts +121 -0
  593. package/five/work/verify.d.ts +7 -0
  594. package/five/work/work.d.ts +236 -0
  595. package/five/work/workFetcher.d.ts +4 -0
  596. package/five/work/workJson.d.ts +3 -0
  597. package/five/work/workJsonType.d.ts +73 -0
  598. package/five/work/workObserverUtils.d.ts +36 -0
  599. package/five/work/workParser.d.ts +6 -0
  600. package/five/work/workResolvedObserver.d.ts +12 -0
  601. package/five/work/workVerify.d.ts +2 -0
  602. package/five/work/works.d.ts +10 -0
  603. package/gltf-loader/gltf-object.d.ts +17 -0
  604. package/gltf-loader/index.d.ts +60 -160
  605. package/gltf-loader/index.js +3 -3
  606. package/gltf-loader/index.mjs +3 -3
  607. package/gltf-loader/thirdparty/DDSLoader.d.ts +23 -0
  608. package/gltf-loader/thirdparty/DRACOLoader.d.ts +18 -0
  609. package/gltf-loader/thirdparty/GLTFLoader.d.ts +59 -0
  610. package/line/circle_png.d.ts +1 -0
  611. package/line/index.d.ts +19 -69
  612. package/line/index.js +3 -3
  613. package/line/index.mjs +3 -3
  614. package/line/utils/Line2.d.ts +7 -0
  615. package/line/utils/LineGeometry.d.ts +10 -0
  616. package/line/utils/LineMaterial.d.ts +20 -0
  617. package/line/utils/LineSegments2.d.ts +11 -0
  618. package/line/utils/LineSegmentsGeometry.d.ts +15 -0
  619. package/llms.txt +65 -0
  620. package/package.json +10 -1
  621. package/plugins/BackgroundPlugin/Controller.d.ts +20 -0
  622. package/plugins/BackgroundPlugin/index.d.ts +5 -0
  623. package/plugins/BackgroundPlugin/typings.d.ts +44 -0
  624. package/plugins/BasePlugin/index.d.ts +119 -0
  625. package/plugins/DynamicPathLinePlugin/Controller.d.ts +167 -0
  626. package/plugins/DynamicPathLinePlugin/index.d.ts +5 -0
  627. package/plugins/DynamicPathLinePlugin/line2/Line2.d.ts +7 -0
  628. package/plugins/DynamicPathLinePlugin/line2/LineGeometry.d.ts +10 -0
  629. package/plugins/DynamicPathLinePlugin/line2/LineMaterial.d.ts +17 -0
  630. package/plugins/DynamicPathLinePlugin/line2/LineSegments2.d.ts +11 -0
  631. package/plugins/DynamicPathLinePlugin/line2/LineSegmentsGeometry.d.ts +15 -0
  632. package/plugins/DynamicPathLinePlugin/typing.d.ts +129 -0
  633. package/plugins/DynamicPathLinePlugin/typings.d.ts +72 -0
  634. package/plugins/ItemMaskPlugin/Controller.d.ts +48 -0
  635. package/plugins/ItemMaskPlugin/index.d.ts +5 -0
  636. package/plugins/ItemMaskPlugin/typing.d.ts +58 -0
  637. package/plugins/OrientationPlugin/Controller.d.ts +82 -0
  638. package/plugins/OrientationPlugin/RoundedBoxGeometry.d.ts +11 -0
  639. package/plugins/OrientationPlugin/index.d.ts +6 -0
  640. package/plugins/OrientationPlugin/typing.d.ts +25 -0
  641. package/plugins/PanoAnimePlugin/Controller.d.ts +46 -0
  642. package/plugins/PanoAnimePlugin/index.d.ts +5 -0
  643. package/plugins/PanoAnimePlugin/typing.d.ts +37 -0
  644. package/plugins/PluginTemplate/Controller.d.ts +27 -0
  645. package/plugins/PluginTemplate/index.d.ts +5 -0
  646. package/plugins/PluginTemplate/typing.d.ts +21 -0
  647. package/plugins/TrajectoryPlugin/Controller.d.ts +85 -0
  648. package/plugins/TrajectoryPlugin/index.d.ts +6 -0
  649. package/plugins/TrajectoryPlugin/typing.d.ts +25 -0
  650. package/plugins/index.d.ts +9 -1078
  651. package/plugins/index.js +17 -17
  652. package/plugins/index.mjs +1518 -1370
  653. package/plugins/thirdParty/CSS3DRenderer.d.ts +32 -0
  654. package/plugins/thirdParty/OrbitControls.d.ts +78 -0
  655. package/plugins/utils/absoluteUrl.d.ts +5 -0
  656. package/plugins/utils/clamp.d.ts +2 -0
  657. package/plugins/utils/loadImage.d.ts +1 -0
  658. package/plugins/utils/motion.d.ts +38 -0
  659. package/plugins/utils/now.d.ts +6 -0
  660. package/plugins/utils/uuid.d.ts +5 -0
  661. package/react/canvas.d.ts +19 -0
  662. package/react/context.d.ts +11 -0
  663. package/react/createProvider.d.ts +95 -0
  664. package/react/createStore.d.ts +144 -0
  665. package/react/hooks/unsafe__useFiveInstance.d.ts +9 -0
  666. package/react/hooks/useFiveAction.d.ts +147 -0
  667. package/react/hooks/useFiveCameraDirection.d.ts +7 -0
  668. package/react/hooks/useFiveCameraRaycaster.d.ts +7 -0
  669. package/react/hooks/useFiveCurrentObserver.d.ts +11 -0
  670. package/react/hooks/useFiveCurrentState.d.ts +15 -0
  671. package/react/hooks/useFiveEventCallback.d.ts +12 -0
  672. package/react/hooks/useFiveFloor.d.ts +15 -0
  673. package/react/hooks/useFiveHelper.d.ts +14 -0
  674. package/react/hooks/useFiveModelBounding.d.ts +5 -0
  675. package/react/hooks/useFiveModelEffect.d.ts +14 -0
  676. package/react/hooks/useFiveModelIntersectRaycaster.d.ts +22 -0
  677. package/react/hooks/useFiveModelReadyState.d.ts +8 -0
  678. package/react/hooks/useFiveProject2d.d.ts +20 -0
  679. package/react/hooks/useFiveSceneEffect.d.ts +21 -0
  680. package/react/hooks/useFiveState.d.ts +6 -0
  681. package/react/hooks/useFiveWork.d.ts +29 -0
  682. package/react/index.d.ts +24 -830
  683. package/react/index.js +2 -2
  684. package/react/index.mjs +2 -2
  685. package/react/rendererPool.d.ts +7 -0
  686. package/react/withFive.d.ts +213 -0
  687. package/shader-lib/EvenessPlane/index.d.ts +10 -0
  688. package/shader-lib/PointCloudExpand/index.d.ts +59 -0
  689. package/shader-lib/PolygonCuter/index.d.ts +52 -0
  690. package/shader-lib/PolygonCuter/worker.d.ts +14 -0
  691. package/shader-lib/ShineModel/index.d.ts +7 -0
  692. package/shader-lib/SweepModel/index.d.ts +7 -0
  693. package/shader-lib/index.d.ts +5 -86
  694. package/shader-lib/index.js +2 -2
  695. package/shader-lib/index.mjs +2 -2
  696. package/sticker/geometry.d.ts +3 -0
  697. package/sticker/index.d.ts +68 -71
  698. package/sticker/index.js +3 -3
  699. package/sticker/index.mjs +3 -3
  700. package/umd/five-gltf-loader.js +3 -3
  701. package/umd/five-line.js +3 -3
  702. package/umd/five-plugins.js +16 -16
  703. package/umd/five-react.js +2 -2
  704. package/umd/five-shader-lib.js +2 -2
  705. package/umd/five-sticker.js +3 -3
  706. package/umd/five-vfx.js +2 -2
  707. package/umd/five-vue.js +2 -2
  708. package/umd/five.js +605 -92
  709. package/vfx/airflow/airflow.d.ts +18 -0
  710. package/vfx/airflow/fragment-shader.d.ts +2 -0
  711. package/vfx/airflow/vertex-shader.d.ts +2 -0
  712. package/vfx/common/scale-shader.d.ts +2 -0
  713. package/vfx/common/simplex-noise-shader.d.ts +2 -0
  714. package/vfx/frame/fragment-shader.d.ts +2 -0
  715. package/vfx/frame/frame.d.ts +22 -0
  716. package/vfx/frame/vertex-shader.d.ts +2 -0
  717. package/vfx/index.d.ts +7 -363
  718. package/vfx/index.js +2 -2
  719. package/vfx/index.mjs +2 -2
  720. package/vfx/particle/fragment-shader.d.ts +2 -0
  721. package/vfx/particle/instance.d.ts +36 -0
  722. package/vfx/particle/particle.d.ts +205 -0
  723. package/vfx/particle/utils.d.ts +11 -0
  724. package/vfx/particle/vertex-shader.d.ts +2 -0
  725. package/vfx/particle-gpu/fragment-shader.d.ts +2 -0
  726. package/vfx/particle-gpu/instance.d.ts +36 -0
  727. package/vfx/particle-gpu/particle.d.ts +95 -0
  728. package/vfx/particle-gpu/utils.d.ts +11 -0
  729. package/vfx/particle-gpu/vertex-shader.d.ts +2 -0
  730. package/vfx/spotLight/fragment-shader.d.ts +2 -0
  731. package/vfx/spotLight/spotLight.d.ts +15 -0
  732. package/vfx/spotLight/vertex-shader.d.ts +2 -0
  733. package/vue/context.d.ts +7 -0
  734. package/vue/hooks/FiveCanvas.d.ts +36 -0
  735. package/vue/hooks/FiveProvider.d.ts +35 -0
  736. package/vue/hooks/unsafe__useFiveInject.d.ts +9 -0
  737. package/vue/hooks/useFiveAction.d.ts +178 -0
  738. package/vue/hooks/useFiveCameraDirection.d.ts +8 -0
  739. package/vue/hooks/useFiveCameraRaycaster.d.ts +8 -0
  740. package/vue/hooks/useFiveCurrentObserver.d.ts +12 -0
  741. package/vue/hooks/useFiveCurrentState.d.ts +16 -0
  742. package/vue/hooks/useFiveEventCallback.d.ts +11 -0
  743. package/vue/hooks/useFiveFloor.d.ts +16 -0
  744. package/vue/hooks/useFiveHelper.d.ts +15 -0
  745. package/vue/hooks/useFiveModel.d.ts +7 -0
  746. package/vue/hooks/useFiveModelBounding.d.ts +7 -0
  747. package/vue/hooks/useFiveModelIntersectRaycaster.d.ts +23 -0
  748. package/vue/hooks/useFiveModelReadyState.d.ts +9 -0
  749. package/vue/hooks/useFiveProject2d.d.ts +26 -0
  750. package/vue/hooks/useFiveScene.d.ts +6 -0
  751. package/vue/hooks/useFiveState.d.ts +16 -0
  752. package/vue/hooks/useFiveWork.d.ts +30 -0
  753. package/vue/index.d.ts +23 -467
  754. package/vue/index.js +2 -2
  755. package/vue/index.mjs +2 -2
  756. package/vue/rendererPool.d.ts +10 -0
  757. package/work-downloader/components/model-3d-tile.d.ts +2 -0
  758. package/work-downloader/components/model.d.ts +3 -0
  759. package/work-downloader/components/observer.d.ts +7 -0
  760. package/work-downloader/download.d.ts +16 -0
  761. package/work-downloader/index.d.ts +2 -33
  762. package/work-downloader/index.js +2 -2
  763. package/work-downloader/index.mjs +2 -2
  764. package/work-downloader/type.d.ts +28 -0
  765. package/work-downloader/utils/download-to-file.d.ts +1 -0
  766. package/work-downloader/utils/image-processing.d.ts +7 -0
  767. package/work-downloader/utils/join-url.d.ts +2 -0
  768. package/work-downloader/utils/log.d.ts +1 -0
  769. package/work-downloader/utils/relative-url.d.ts +1 -0
  770. package/docs/documents/coordinate.html +0 -9
  771. package/docs/documents/five.FivePlugin.plugins.html +0 -77
  772. package/docs/documents/five.Pose.coordinate.html +0 -9
  773. package/docs/documents/plugins.html +0 -77
  774. package/docs/documents/react-component.html +0 -32
  775. package/docs/media/coordinate.jpg +0 -0
@@ -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]
210
+ ```
@@ -0,0 +1,259 @@
1
+ # 后处理 (Post Processing)
2
+
3
+ - **Summary**: Five 提供了基于 EffectComposer 的后处理机制,默认挂载了自适应亮度 (Auto Exposure) 和眼球穹顶光照 (EDL) 两种效果,同时提供多种可选内置 Pass,并支持开发者编写自定义 Pass。
4
+ - **Schema**: `FivePass` 类及 `Pass` 接口。
5
+ - **Concepts**: EffectComposer, G-Buffer, Pass, AdaptiveLuminance, EyeDomeLighting。
6
+ - **Configuration**: 开启内置 Pass 的开关及参数配置。
7
+ - **Examples**: 开启内置 Pass 示例,自定义黑白滤镜 Pass 示例。
8
+
9
+ ## Schema
10
+
11
+ > **Definition**: [FivePass](../../five/renderer/postprocessing/passes/pass.d.ts)
12
+
13
+ ```typescript
14
+ /**
15
+ * Pass 接口 (兼容 three.js EffectComposer)
16
+ */
17
+ export interface Pass {
18
+ enabled: boolean;
19
+ needsSwap: boolean;
20
+ clear: boolean;
21
+ renderToScreen: boolean;
22
+ setSize(width: number, height: number): void;
23
+ render(
24
+ renderer: THREE.WebGLRenderer,
25
+ writeBuffer: THREE.WebGLRenderTarget,
26
+ readBuffer: THREE.WebGLRenderTarget,
27
+ deltaTime?: number,
28
+ maskActive?: boolean
29
+ ): void;
30
+ }
31
+
32
+ /**
33
+ * FivePass 基类
34
+ * 支持 G-Buffer 注入 (depth, normal, color)
35
+ */
36
+ export class FivePass implements Pass {
37
+ public enabled: boolean = true;
38
+ public needsSwap: boolean = true;
39
+ public clear: boolean = false;
40
+ public renderToScreen: boolean = true;
41
+ public dependencies: ('depth' | 'normal' | 'color')[];
42
+
43
+ // 由 EffectComposer 在 render 时注入
44
+ public gbuffer!: Map<'depth' | 'normal' | 'color', THREE.Texture>;
45
+
46
+ constructor(dependencies?: ('depth' | 'normal' | 'color')[]);
47
+ // ... render method implementation
48
+ }
49
+ ```
50
+
51
+ ## Concepts
52
+
53
+ - **EffectComposer**: 后处理管理器,负责按顺序执行 Pass,管理渲染目标 (RenderTarget) 和 G-Buffer。
54
+ - **FivePass**: Five 引擎优化的 Pass 基类。相比普通 Pass,它声明了 `dependencies`,Five 会在渲染 Pass 之前准备好所需的 G-Buffer (如深度图、法线图),避免在每个 Pass 中重复渲染场景。
55
+ - **AdaptiveLuminancePass (自适应亮度)**: 模拟人眼对光线的适应过程。当场景亮度变化时,会自动平滑调整曝光度,使画面保持在舒适的亮度范围内。
56
+ - **EyeDomeLightingPass (EDL)**: 一种非真实感渲染技术,主要用于增强点云模型的深度感知。通过屏幕空间的深度差计算遮蔽效果,让点云看起来更有轮廓感。
57
+
58
+ ## Built-in Passes (内置 Pass)
59
+
60
+ Five 默认挂载了两个 Pass 实例,挂载在 `five` 实例上,默认是关闭状态。
61
+
62
+ ### 1. AdaptiveLuminancePass
63
+
64
+ 位于 `five.adaptiveLuminancePass`。
65
+
66
+ * **作用**: 自动调整画面曝光。
67
+ * **开启方式**: `five.adaptiveLuminancePass.enabled = true`。
68
+ * **配置项**:
69
+ * `luminanceScale` (number): 亮度缩放系数,影响最终画面的整体亮度。
70
+ * `luminanceStep` (number): 亮度适应步长,影响适应速度。
71
+
72
+ ### 2. EyeDomeLightingPass
73
+
74
+ 位于 `five.eyeDomeLightingPass`。
75
+
76
+ * **作用**: 增强点云的轮廓和深度感。
77
+ * **开启方式**: `five.eyeDomeLightingPass.enabled = true`。
78
+ * **配置项**:
79
+ * `strength` (number): 增强强度,值越大轮廓越明显。
80
+ * `radius` (number): 采样半径,影响阴影的范围。
81
+ * **注意**: 这是一个基于屏幕空间深度的算法,依赖 Depth Buffer。
82
+
83
+ ### 3. Optional Built-in Passes (可选内置 Pass)
84
+
85
+ Five 新增了三个可选使用的内置 Pass,这些 Pass 没有预先挂载在 `five` 实例上,需手动导入并添加到渲染链中:
86
+
87
+ * **[GaussianBlurPass](gaussian-blur-pass.md)**: 高斯模糊效果。
88
+ * **[FlowingLight2DPass](flowing-light-2d-pass.md)**: 2D 流光效果(通常用于平面路线流光)。
89
+ * **[FlowingLight3DPass](flowing-light-3d-pass.md)**: 3D 流光效果(通常用于空间路径流光)。
90
+
91
+ #### GaussianBlurPass 使用示例
92
+
93
+ ```typescript
94
+ import { GaussianBlurPass } from '@realsee/five';
95
+
96
+ // 1. 创建 GaussianBlurPass 实例 (需要传入 camera)
97
+ const gaussianBlurPass = new GaussianBlurPass(five.camera);
98
+
99
+ // 2. 配置参数
100
+ // 设置模糊半径 (默认 4.0)
101
+ gaussianBlurPass.setRadius(6);
102
+
103
+ // 3. 将 Pass 添加到渲染链
104
+ five.addPass(gaussianBlurPass);
105
+
106
+ // 4. (可选) 动态开关
107
+ // gaussianBlurPass.enabled = false;
108
+
109
+ // 5. (可选) 移除 Pass
110
+ // five.removePass(gaussianBlurPass);
111
+ ```
112
+
113
+ ## Custom Pass (自定义 Pass)
114
+
115
+ 如果需要实现自定义的后处理效果(如景深、色彩校正、描边等),建议继承 `FivePass`。
116
+
117
+ ### 步骤
118
+
119
+ 1. **创建类**: 继承 `FivePass`。
120
+ 2. **声明依赖**: 在 `super()` 中传入需要的 G-Buffer 依赖 (如 `['depth']`)。
121
+ 3. **实现 render**: 使用 `readBuffer` 作为输入,将结果渲染到 `writeBuffer` (或直接渲染到屏幕)。
122
+ 4. **挂载**: 使用 `five.addPass(pass)` 将其实例添加到渲染链中。
123
+
124
+ ## Examples
125
+
126
+ ### 开启内置 Pass
127
+
128
+ ```typescript
129
+ import { Five } from '@realsee/five';
130
+
131
+ const five = new Five();
132
+
133
+ // 开启自适应亮度
134
+ five.adaptiveLuminancePass.enabled = true;
135
+ five.adaptiveLuminancePass.luminanceScale = 0.5; // 调整目标亮度
136
+
137
+ // 开启 EDL (通常用于点云模式)
138
+ five.eyeDomeLightingPass.enabled = true;
139
+ five.eyeDomeLightingPass.strength = 1.5; // 增强轮廓感
140
+
141
+ five.needsRender = true;
142
+ ```
143
+
144
+ ### 自定义 Pass (黑白滤镜)
145
+
146
+ ```typescript
147
+ import * as THREE from 'three';
148
+ import { Five, FivePass } from '@realsee/five';
149
+ import { FullScreenQuad } from '@realsee/five/lib/five/tools/full-screen-quad'; // 需根据实际路径引用
150
+
151
+ // 1. 定义 Shader
152
+ const grayscaleVertexShader = `
153
+ varying vec2 vUv;
154
+ void main() {
155
+ vUv = uv;
156
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
157
+ }
158
+ `;
159
+
160
+ const grayscaleFragmentShader = `
161
+ uniform sampler2D tDiffuse;
162
+ varying vec2 vUv;
163
+ void main() {
164
+ vec4 color = texture2D(tDiffuse, vUv);
165
+ float gray = dot(color.rgb, vec3(0.299, 0.587, 0.114));
166
+ gl_FragColor = vec4(vec3(gray), color.a);
167
+ }
168
+ `;
169
+
170
+ // 2. 创建 Pass 类
171
+ class GrayscalePass extends FivePass {
172
+ private material: THREE.ShaderMaterial;
173
+ private fsQuad: FullScreenQuad;
174
+
175
+ constructor() {
176
+ super(); // 不需要额外的 G-Buffer 依赖,只需要前一个 Pass 的颜色结果
177
+ this.material = new THREE.ShaderMaterial({
178
+ uniforms: {
179
+ tDiffuse: { value: null }
180
+ },
181
+ vertexShader: grayscaleVertexShader,
182
+ fragmentShader: grayscaleFragmentShader
183
+ });
184
+ this.fsQuad = new FullScreenQuad(this.material);
185
+ }
186
+
187
+ render(renderer, writeBuffer, readBuffer) {
188
+ // 将上一个 Pass 的结果 (readBuffer) 传给 Shader
189
+ this.material.uniforms.tDiffuse.value = readBuffer.texture;
190
+
191
+ if (this.renderToScreen) {
192
+ // 如果是最后一个 Pass,直接渲染到屏幕
193
+ renderer.setRenderTarget(null);
194
+ this.fsQuad.render(renderer);
195
+ } else {
196
+ // 否则渲染到 writeBuffer,供下一个 Pass 使用
197
+ renderer.setRenderTarget(writeBuffer);
198
+ if (this.clear) renderer.clear();
199
+ this.fsQuad.render(renderer);
200
+ }
201
+ }
202
+ }
203
+
204
+ // 3. 挂载到 Five
205
+ const grayPass = new GrayscalePass();
206
+ five.addPass(grayPass);
207
+
208
+ // 触发重绘
209
+ five.needsRender = true;
210
+ ```
211
+
212
+ ### 使用 G-Buffer (深度图示例)
213
+
214
+ 如果你的 Pass 需要使用场景的深度信息(例如雾效),可以在构造函数中声明依赖。
215
+
216
+ ```typescript
217
+ class FogPass extends FivePass {
218
+ constructor() {
219
+ super(['depth']); // 声明需要深度图
220
+ }
221
+
222
+ render(renderer, writeBuffer, readBuffer) {
223
+ // 获取深度图
224
+ const depthTexture = this.gbuffer.get('depth');
225
+
226
+ // 在 Shader 中使用 depthTexture ...
227
+ // this.material.uniforms.tDepth.value = depthTexture;
228
+
229
+ // ... 渲染逻辑
230
+ }
231
+ }
232
+ ```
233
+
234
+ ## Debugging
235
+
236
+ * **查看 Pass 列表**: 检查 `five.fiveRenderer.composer.passes` 数组,确认 Pass 是否已添加以及顺序是否正确。
237
+ * **检查 Enabled 状态**: 确保 Pass 实例的 `.enabled` 属性为 `true`。
238
+ * **G-Buffer 调试**: 如果自定义 Pass 依赖 G-Buffer 但效果不对,检查 `this.gbuffer` 是否包含预期的纹理。
239
+
240
+ ## Common Pitfalls
241
+
242
+ 1. **Pass 顺序**: 后处理是按顺序执行的。如果添加了多个 Pass,要注意它们的添加顺序。`addPass` 会添加到末尾,`insertPass` 可以插入到指定位置。
243
+ 2. **renderToScreen**: 只有链中的最后一个 Pass (且 `renderToScreen` 为 true) 才会渲染到屏幕。EffectComposer 会自动管理这个标志,但自定义 Pass 必须在 `render` 方法中正确处理 `this.renderToScreen` 逻辑。
244
+ 3. **Performance**: 过多的后处理 Pass 会显著降低帧率,尤其是在高分辨率屏幕上。尽量合并 Shader 逻辑,避免频繁的 Buffer 拷贝。
245
+ 4. **Dependencies**: 只有继承 `FivePass` 并声明了 `dependencies`,`this.gbuffer` 才会有值。普通 `Pass` 实现无法自动获取 G-Buffer。
246
+
247
+ ## Related
248
+
249
+ * [Gaussian Blur Pass](gaussian-blur-pass.md): 高斯模糊 Pass 文档。
250
+ * [Flowing Light 2D Pass](flowing-light-2d-pass.md): 2D 流光 Pass 文档。
251
+ * [Flowing Light 3D Pass](flowing-light-3d-pass.md): 3D 流光 Pass 文档。
252
+ * [five.ts](../../five/application/five.d.ts): 查看 `addPass` 方法的实现。
253
+ * [pass.ts](../../five/renderer/postprocessing/passes/pass.d.ts): 查看 `FivePass` 基类定义。
254
+
255
+ ---
256
+
257
+ ```yaml
258
+ tags: [postprocessing, shader, effect, adaptive-luminance, edl]
259
+ ```
@@ -0,0 +1,175 @@
1
+ # Raycast (射线检测)
2
+
3
+ - **Summary**: Five 提供了增强版的射线检测机制,内置 BVH 加速,并扩展了 Three.js Raycaster 以支持更灵活的过滤和性能优化。
4
+ - **Schema**: 参见下方 `Three.js Raycaster Extensions`。
5
+ - **Concepts**: BVH, IntersectRaycaster, Raycaster Extensions。
6
+ - **Examples**: 提供基础检测与性能优化示例。
7
+
8
+ ## Schema: Three.js Raycaster Extensions
9
+
10
+ > **Definition**: [Raycaster](../../five/declare.d.ts)
11
+
12
+ Five 对 Three.js 的 `Raycaster` 进行了扩展,在 `declare module 'three'` 中增加了以下属性:
13
+
14
+ ```typescript
15
+ // defined in five/declare.d.ts
16
+ declare module 'three' {
17
+ export interface Raycaster {
18
+ /**
19
+ * 只捕获第一个焦点 (性能优化)
20
+ * - true: 找到第一个交点后立即停止检测,返回结果。
21
+ * - false (默认): 检测所有可能的交点。
22
+ */
23
+ firstHitOnly?: boolean;
24
+
25
+ /**
26
+ * 自定义交点过滤器
27
+ * - 回调函数,返回 boolean。
28
+ * - true: 保留该交点。
29
+ * - false: 丢弃该交点。
30
+ */
31
+ hitFilter?: (intersect: THREE.Intersection) => boolean;
32
+
33
+ /**
34
+ * 是否由近及远排序
35
+ * - true (默认): 返回的结果数组按距离摄像机从近到远排序。
36
+ * - false: 结果顺序不确定(通常按遍历顺序)。
37
+ */
38
+ sortByDistance?: boolean;
39
+
40
+ /**
41
+ * 作用楼层 (Five 特有逻辑)
42
+ * - 用于多楼层场景过滤。
43
+ */
44
+ floorIndex?: number;
45
+ }
46
+
47
+ export interface Intersection {
48
+ /** 命中的具体 Tile 对象 (仅 3DTiles) */
49
+ tile?: Tile;
50
+ /** 命中的 ViewLayer 对象 */
51
+ viewLayer?: ViewLayer;
52
+ /** 命中的 Model 对象 */
53
+ model?: Model;
54
+ }
55
+ }
56
+ ```
57
+
58
+ ## Concepts
59
+
60
+ ### 1. Five 内置 BVH (Bounding Volume Hierarchy)
61
+ Five 内置了一套高效的 BVH 实现,用于优化 `Mesh` 和 `Points` 的射线检测。
62
+ * **作用**: 在进行射线检测时,不直接遍历所有三角形或点,而是先与构建好的 BVH 树(包围盒层次结构)进行相交测试。只有当射线穿过包围盒时,才进一步检测内部的几何体。
63
+ * **优势**: 极大提升了复杂模型(如数十万面的 Mesh 或百万级 Points)的碰撞检测性能。
64
+ * **透明性**: 开发者通常无需手动操作 BVH,Five 在加载模型时会自动构建,并在调用 `intersectRaycaster` 时自动应用。
65
+
66
+ ### 2. models.intersectRaycaster / model.intersectRaycaster vs 原生 intersectObject
67
+
68
+ Five 提供了 `model.intersectRaycaster` 方法,与 Three.js 原生的 `raycaster.intersectObject` 有显著区别:
69
+
70
+ | 特性 | `five.model.intersectRaycaster` | `raycaster.intersectObject` (Three.js 原生) |
71
+ | :--- | :--- | :--- |
72
+ | **检测范围** | 聚合检测 `five.model.shownModels` 中所有可见模型。 | 仅检测指定的单个 Object3D 及其子节点。 |
73
+ | **结果排序** | 自动合并所有模型的检测结果,并根据 `raycaster.sortByDistance` 排序。 | 仅对当前 Object 及其子节点的结果排序。 |
74
+ | **扩展支持** | **支持** `firstHitOnly`, `hitFilter`, `sortByDistance` 等扩展属性。 | 不支持 Five 的扩展属性(需手动实现)。 |
75
+ | **内部优化** | 自动调用模型内部的优化逻辑(如 BVH, Tile3D 的空间索引)。 | 仅进行标准的场景图遍历检测。 |
76
+ | **使用场景** | **推荐**。适用于全局点击、地板检测、物体拾取等业务场景。 | 仅在需要检测特定原生 Object3D 时使用。 |
77
+
78
+ ## Examples
79
+
80
+ ### 基础用法:检测点击位置
81
+
82
+ 最常见的场景是将鼠标点击的屏幕坐标转换为 3D 空间中的点。
83
+
84
+ ```typescript
85
+ import * as THREE from 'three';
86
+ import { Five } from '@realsee/five';
87
+
88
+ const five = new Five();
89
+ // ... 初始化 ...
90
+
91
+ const raycaster = new THREE.Raycaster();
92
+ const vector = new THREE.Vector2();
93
+
94
+ // 假设 onTap 是点击事件处理函数
95
+ function onTap(event: { x: number, y: number }) {
96
+ // 1. 将屏幕坐标转换为归一化设备坐标 (NDC)
97
+ // 注意:five.getElement() 获取 canvas 容器
98
+ const element = five.getElement();
99
+ if (!element) return;
100
+
101
+ const rect = element.getBoundingClientRect();
102
+ vector.x = ((event.x - rect.left) / rect.width) * 2 - 1;
103
+ vector.y = -((event.y - rect.top) / rect.height) * 2 + 1;
104
+
105
+ // 2. 设置射线
106
+ raycaster.setFromCamera(vector, five.camera);
107
+
108
+ // 3. 调用 Five 的检测方法
109
+ const intersects = five.model.intersectRaycaster(raycaster);
110
+
111
+ if (intersects.length > 0) {
112
+ const firstHit = intersects[0];
113
+ console.log('点击到了模型:', firstHit.object);
114
+ console.log('交点坐标 (世界坐标):', firstHit.point);
115
+ }
116
+ }
117
+ ```
118
+
119
+ ### 性能优化:只获取第一个交点
120
+
121
+ 在进行如“地面检测”或“视线遮挡检测”时,通常只需要知道最近的交点。此时开启 `firstHitOnly` 可以显著提升性能。
122
+
123
+ ```typescript
124
+ const raycaster = new THREE.Raycaster();
125
+ raycaster.setFromCamera(mouseVector, five.camera);
126
+
127
+ // 开启性能优化:找到最近的一个交点后立即停止
128
+ raycaster.firstHitOnly = true;
129
+
130
+ // 结果数组长度最多为 1
131
+ const intersects = five.model.intersectRaycaster(raycaster);
132
+
133
+ if (intersects.length > 0) {
134
+ // 处理最近的交点
135
+ }
136
+ ```
137
+
138
+ ### 高级用法:使用过滤器
139
+
140
+ 如果你只想检测特定类型的物体(例如只检测地板,忽略天花板),可以使用 `hitFilter`。
141
+
142
+ ```typescript
143
+ raycaster.hitFilter = (intersect) => {
144
+ // 示例:假设地板的法线是向上的 (0, 1, 0)
145
+ // 只保留法线朝上的交点(地板)
146
+ if (intersect.face && intersect.face.normal.y > 0.5) {
147
+ return true; // 保留
148
+ }
149
+ return false; // 丢弃
150
+ };
151
+
152
+ const intersects = five.model.intersectRaycaster(raycaster);
153
+ ```
154
+
155
+ ## Debugging
156
+
157
+ * **验证交点**: 在开发阶段,可以在交点处添加一个临时的红色小球 `THREE.Mesh`,直观地确认检测位置是否正确。
158
+ * **检查模型可见性**: `intersectRaycaster` 只会检测 `visible = true` 的模型。如果检测不到,请检查模型的可见性状态。
159
+ * **Performance**: 如果射线检测导致掉帧,检查是否频繁调用了全场景检测。尝试使用 `firstHitOnly` 或减小检测频率(如节流)。
160
+
161
+ ## Common Pitfalls
162
+
163
+ 1. **混淆 API**: 错误地使用 `raycaster.intersectObject(five.scene)`。虽然这也能工作,但会失去 Five 的 BVH 优化和多模型聚合能力,导致性能下降或漏检。请始终优先使用 `five.model.intersectRaycaster(raycaster)`。
164
+ 2. **忽略坐标系**: `raycaster.setFromCamera` 需要 NDC 坐标(-1 到 1),而不是像素坐标。务必进行正确的坐标转换。
165
+ 3. **Tile3D 模型的特殊性**: 对于大型 Tile3D 场景,射线检测可能涉及动态加载的瓦片。Five 内部已处理这些逻辑,外部调用方式不变,但返回的 `object` 可能是某个具体的 Tile 节点。
166
+
167
+ ## Related
168
+
169
+ * [parameter.md](./parameter.md): 了解模型参数配置。
170
+
171
+ ---
172
+
173
+ ```yaml
174
+ tags: [raycast, bvh, interaction, performance]
175
+ ```