@realsee/five 6.8.0-alpha.9 → 6.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/AGENTS_READ_ME.md +6 -1
  2. package/AI_CONTEXT.md +6 -1
  3. package/README.md +10 -3
  4. package/ai_guides/README.md +29 -0
  5. package/ai_guides/api.md +92 -21
  6. package/ai_guides/features/3dtile.md +1 -1
  7. package/ai_guides/features/camera-animation.md +18 -1
  8. package/ai_guides/features/clipper.md +2 -2
  9. package/ai_guides/features/coordinate-system.md +20 -2
  10. package/ai_guides/features/event.md +106 -10
  11. package/ai_guides/features/five.md +17 -17
  12. package/ai_guides/features/flowing-light-2d-pass.md +75 -17
  13. package/ai_guides/features/flowing-light-3d-pass.md +76 -17
  14. package/ai_guides/features/gaussian-blur-pass.md +1 -1
  15. package/ai_guides/features/gesture.md +2 -1
  16. package/ai_guides/features/get-screen-pixels.md +2 -2
  17. package/ai_guides/features/image-options.md +2 -2
  18. package/ai_guides/features/load-external-model.md +6 -2
  19. package/ai_guides/features/load-progress.md +1 -1
  20. package/ai_guides/features/material.md +20 -12
  21. package/ai_guides/features/mode.md +1 -1
  22. package/ai_guides/features/model.md +1 -1
  23. package/ai_guides/features/move-pano-effect.md +1 -1
  24. package/ai_guides/features/multi-work.md +1 -1
  25. package/ai_guides/features/pano-filter.md +149 -0
  26. package/ai_guides/features/pano-tile.md +1 -1
  27. package/ai_guides/features/pano-uv.md +1 -1
  28. package/ai_guides/features/parameter.md +26 -2
  29. package/ai_guides/features/plugin.md +1 -1
  30. package/ai_guides/features/postprocessing.md +1 -1
  31. package/ai_guides/features/raycast.md +5 -2
  32. package/ai_guides/features/request-proxy.md +1 -1
  33. package/ai_guides/features/screen-project.md +2 -1
  34. package/ai_guides/features/state.md +23 -3
  35. package/ai_guides/features/view-layer.md +1 -1
  36. package/ai_guides/features/work.md +1 -1
  37. package/ai_guides/glossary.md +4 -4
  38. package/ai_guides/release_notes/6.8.md +190 -58
  39. package/ai_guides/template.md +11 -0
  40. package/docs/00_FOR_AI_AGENTS.md +3 -2
  41. package/docs/README.md +3 -2
  42. package/docs/assets/hierarchy.js +1 -1
  43. package/docs/assets/main.js +1 -1
  44. package/docs/assets/navigation.js +1 -1
  45. package/docs/assets/search.js +1 -1
  46. package/docs/classes/five.AdaptiveLuminancePass.html +7 -6
  47. package/docs/classes/five.AnimationFrameLoop.html +1 -1
  48. package/docs/classes/five.BoundingMesh.html +2 -2
  49. package/docs/classes/five.Camera.html +3 -3
  50. package/docs/classes/five.EyeDomeLightingPass.html +1 -1
  51. package/docs/classes/five.Five.html +77 -76
  52. package/docs/classes/five.FivePass.html +1 -1
  53. package/docs/classes/five.Histogram.html +19 -0
  54. package/docs/classes/five.InternalWebGLRenderer.html +1 -1
  55. package/docs/classes/five.Model.html +8 -8
  56. package/docs/classes/five.ModelScene.html +1 -1
  57. package/docs/classes/five.NetworkSubscribe.html +5 -5
  58. package/docs/classes/five.PBMContainer.html +1 -1
  59. package/docs/classes/five.PBMCustomShader.html +42 -3
  60. package/docs/classes/five.PBMGSObject.html +5 -3
  61. package/docs/classes/five.PBMGroup.html +1 -1
  62. package/docs/classes/five.PBMMesh.html +1 -1
  63. package/docs/classes/five.PBMMeshMaterial.html +7 -7
  64. package/docs/classes/five.PBMPanoFilter.html +61 -0
  65. package/docs/classes/five.PBMPointCloud.html +1 -1
  66. package/docs/classes/five.PBMPointCloudMaterial.html +5 -6
  67. package/docs/classes/five.PBMSkinnedMesh.html +1 -1
  68. package/docs/classes/five.PBMUpdateable.html +41 -0
  69. package/docs/classes/five.PanoCircleMesh.html +1 -1
  70. package/docs/classes/five.PanoCircleMeshCustom.html +1 -1
  71. package/docs/classes/five.PanoCircleMeshSolid.html +1 -1
  72. package/docs/classes/five.Parameter.html +57 -55
  73. package/docs/classes/five.Scene.html +1 -1
  74. package/docs/classes/five.Subscribe.html +5 -5
  75. package/docs/classes/five.Tile.html +1 -1
  76. package/docs/classes/five.Tile3D.html +24 -24
  77. package/docs/classes/five.TileNode.html +1 -1
  78. package/docs/classes/five.Tileset.html +3 -2
  79. package/docs/classes/five.TrajectoryNode.html +1 -1
  80. package/docs/classes/five.Work.html +16 -16
  81. package/docs/classes/five.WorkResolvedObserver.html +22 -22
  82. package/docs/classes/gltf-loader.DDSLoader.html +1 -1
  83. package/docs/classes/gltf-loader.DRACOLoader.html +1 -1
  84. package/docs/classes/gltf-loader.GLTFLoader.html +2 -2
  85. package/docs/classes/gltf-loader.GLTFObject.html +1 -1
  86. package/docs/classes/gltf-loader.GLTFParser.html +1 -1
  87. package/docs/classes/gltf-loader.THREEGLTFLoader.html +2 -2
  88. package/docs/classes/line.Line.html +1 -1
  89. package/docs/classes/line.LineGeometry.html +1 -1
  90. package/docs/classes/line.LineMaterial.html +1 -1
  91. package/docs/classes/line.LineSegmentsGeometry.html +1 -1
  92. package/docs/classes/line.THREE_Line2.html +1 -1
  93. package/docs/classes/line.THREE_LineSegments2.html +1 -1
  94. package/docs/classes/plugins.BasePlugin.Controller.html +1 -1
  95. package/docs/classes/plugins.CSS2DObject.html +10 -0
  96. package/docs/classes/plugins.CSS2DRenderer.html +7 -0
  97. package/docs/classes/plugins.CSS3DObject.html +9 -0
  98. package/docs/classes/plugins.CSS3DRenderer.html +4 -2
  99. package/docs/classes/plugins.CSS3DSprite.html +11 -0
  100. package/docs/classes/plugins.Object3DHelperController.html +43 -0
  101. package/docs/classes/plugins.RoundedBoxGeometry.html +1 -1
  102. package/docs/classes/sticker.Sticker.html +1 -1
  103. package/docs/classes/vfx.Airflow.html +1 -1
  104. package/docs/classes/vfx.Flame.html +1 -1
  105. package/docs/classes/vfx.Particle.html +6 -6
  106. package/docs/classes/vfx.ParticleGPU.html +3 -3
  107. package/docs/classes/vfx.SpotLight.html +1 -1
  108. package/docs/documents/README.html +122 -1
  109. package/docs/documents/api.html +163 -35
  110. package/docs/documents/features_3dtile.html +1 -1
  111. package/docs/documents/features_camera-animation.html +18 -2
  112. package/docs/documents/features_clipper.html +2 -2
  113. package/docs/documents/features_coordinate-system.html +52 -3
  114. package/docs/documents/features_event.html +44 -8
  115. package/docs/documents/features_five.html +17 -17
  116. package/docs/documents/features_flowing-light-2d-pass.html +41 -125
  117. package/docs/documents/features_flowing-light-3d-pass.html +43 -132
  118. package/docs/documents/features_gaussian-blur-pass.html +6 -6
  119. package/docs/documents/features_gesture.html +2 -1
  120. package/docs/documents/features_get-screen-pixels.html +2 -2
  121. package/docs/documents/features_image-options.html +2 -2
  122. package/docs/documents/features_load-external-model.html +6 -2
  123. package/docs/documents/features_load-progress.html +1 -1
  124. package/docs/documents/features_material.html +11 -4
  125. package/docs/documents/features_mode.html +1 -1
  126. package/docs/documents/features_model.html +1 -1
  127. package/docs/documents/features_move-pano-effect.html +1 -1
  128. package/docs/documents/features_multi-work.html +1 -1
  129. package/docs/documents/features_pano-filter.html +123 -0
  130. package/docs/documents/features_pano-tile.html +1 -1
  131. package/docs/documents/features_pano-uv.html +1 -1
  132. package/docs/documents/features_parameter.html +11 -3
  133. package/docs/documents/features_plugin.html +1 -1
  134. package/docs/documents/features_postprocessing.html +1 -1
  135. package/docs/documents/features_raycast.html +5 -2
  136. package/docs/documents/features_request-proxy.html +1 -1
  137. package/docs/documents/features_screen-project.html +2 -1
  138. package/docs/documents/features_state.html +9 -2
  139. package/docs/documents/features_view-layer.html +1 -1
  140. package/docs/documents/features_work.html +1 -1
  141. package/docs/documents/glossary.html +5 -5
  142. package/docs/documents/release_notes_6.8.html +164 -64
  143. package/docs/documents/template.html +9 -0
  144. package/docs/functions/five.createDebugBoundingMesh.html +1 -1
  145. package/docs/functions/five.parseWork.html +1 -1
  146. package/docs/functions/plugins.CSS2DPlugin.html +1 -0
  147. package/docs/functions/plugins.CSS3DPlugin.html +1 -0
  148. package/docs/functions/plugins.GaussianSplattingEntranceAnimationPlugin.html +1 -0
  149. package/docs/functions/plugins.Object3DHelperPlugin.html +1 -0
  150. package/docs/functions/react.getPlugin.html +2 -0
  151. package/docs/functions/react.setPlugin.html +2 -0
  152. package/docs/functions/react.useFiveCurrentObserver.html +2 -2
  153. package/docs/functions/react.useFiveFloor.html +2 -2
  154. package/docs/functions/react.useFivePlugin.html +8 -0
  155. package/docs/functions/react.useFiveProject2d.html +2 -2
  156. package/docs/functions/react.withFive.html +1 -1
  157. package/docs/functions/vue.useFiveCurrentObserver.html +2 -2
  158. package/docs/functions/vue.useFiveFloor.html +2 -2
  159. package/docs/functions/vue.useFiveWorks.html +2 -2
  160. package/docs/hierarchy.html +1 -1
  161. package/docs/index.html +122 -1
  162. package/docs/interfaces/five.AddableObject.html +1 -1
  163. package/docs/interfaces/five.AjaxOptions.html +1 -1
  164. package/docs/interfaces/five.BaseEvent.html +7 -2
  165. package/docs/interfaces/five.BaseExtendableEvent.html +11 -0
  166. package/docs/interfaces/five.EventCallback.html +58 -54
  167. package/docs/interfaces/five.FiveInitArgs.html +2 -2
  168. package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +9 -9
  169. package/docs/interfaces/five.GestureEvent.html +21 -2
  170. package/docs/interfaces/five.GesturePointer.html +20 -0
  171. package/docs/interfaces/five.ImageOptions.html +1 -1
  172. package/docs/interfaces/five.IntersectEvent.html +10 -2
  173. package/docs/interfaces/five.IntersectMesh.html +1 -1
  174. package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
  175. package/docs/interfaces/five.Intersection.html +1 -1
  176. package/docs/interfaces/five.LooseWorkObserver.html +2 -2
  177. package/docs/interfaces/five.LooseWorkPanorama.html +2 -2
  178. package/docs/interfaces/five.LooseWorkWithExtrinsics.html +6 -6
  179. package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +10 -10
  180. package/docs/interfaces/five.ModeChangeEvent.html +9 -2
  181. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
  182. package/docs/interfaces/five.ModelEvent.html +7 -2
  183. package/docs/interfaces/five.ModelSceneEvent.html +7 -2
  184. package/docs/interfaces/five.ModelTileEvent.html +7 -2
  185. package/docs/interfaces/five.MovePanoOptions.html +8 -8
  186. package/docs/interfaces/five.NetworkAbortError.html +1 -1
  187. package/docs/interfaces/five.NetworkFirbiddenError.html +1 -1
  188. package/docs/interfaces/five.NetworkOptions.html +1 -1
  189. package/docs/interfaces/five.NetworkProxyError.html +1 -1
  190. package/docs/interfaces/five.NetworkResourceEvent.html +7 -2
  191. package/docs/interfaces/five.NetworkResponseError.html +1 -1
  192. package/docs/interfaces/five.NetworkTimeoutError.html +1 -1
  193. package/docs/interfaces/five.ObjectEvent.html +7 -2
  194. package/docs/interfaces/five.PBMClipperParameter.html +2 -2
  195. package/docs/interfaces/five.PBMCustomShaderInitArgs.html +2 -2
  196. package/docs/interfaces/five.PBMCustomShaderSlots.html +2 -2
  197. package/docs/interfaces/five.PBMMaterial.html +1 -1
  198. package/docs/interfaces/five.PBMMeshMaterialParameters.html +5 -3
  199. package/docs/interfaces/five.PBMPanoDepth.html +5 -5
  200. package/docs/interfaces/five.PBMPanoFilterValue.html +6 -0
  201. package/docs/interfaces/five.PBMPanoPicture.html +8 -6
  202. package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +2 -3
  203. package/docs/interfaces/five.PBMRefinedScreen.html +2 -2
  204. package/docs/interfaces/five.PanoCircleMeshInterface.html +2 -2
  205. package/docs/interfaces/five.PanoEvent.html +15 -2
  206. package/docs/interfaces/five.PanoPrepareEvent.html +15 -0
  207. package/docs/interfaces/five.PanoTextureEvent.html +11 -2
  208. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +1 -1
  209. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
  210. package/docs/interfaces/five.ParameterMaterialValue.html +40 -38
  211. package/docs/interfaces/five.ParameterTilesetValue.html +15 -15
  212. package/docs/interfaces/five.ParameterValue.html +54 -52
  213. package/docs/interfaces/five.Pose.html +1 -1
  214. package/docs/interfaces/five.RenderEvent.html +7 -2
  215. package/docs/interfaces/five.ResolvedParameterValue.html +55 -54
  216. package/docs/interfaces/five.RgbaData.html +7 -0
  217. package/docs/interfaces/five.SplatData.html +2 -2
  218. package/docs/interfaces/five.State.html +1 -1
  219. package/docs/interfaces/five.StateEvent.html +9 -2
  220. package/docs/interfaces/five.TextureOptions.html +1 -1
  221. package/docs/interfaces/five.Tile3DOptions.html +2 -2
  222. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +7 -7
  223. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +1 -1
  224. package/docs/interfaces/five.ViewLayer.html +24 -24
  225. package/docs/interfaces/five.WorkCubeImage.html +3 -2
  226. package/docs/interfaces/five.WorkImage.html +6 -5
  227. package/docs/interfaces/five.WorkInitial.html +8 -8
  228. package/docs/interfaces/five.WorkModel.html +8 -8
  229. package/docs/interfaces/five.WorkModelLayer.html +6 -6
  230. package/docs/interfaces/five.WorkObserver.html +29 -29
  231. package/docs/interfaces/five.WorkObserverJson.html +2 -2
  232. package/docs/interfaces/five.WorkObserverProto.html +26 -0
  233. package/docs/interfaces/five.WorkPanoramaJson.html +2 -2
  234. package/docs/interfaces/five.WorkTile.html +6 -5
  235. package/docs/interfaces/five.WorkVideo.html +4 -4
  236. package/docs/interfaces/five.WorksEvent.html +7 -2
  237. package/docs/interfaces/five.XRControllerEvent.html +10 -2
  238. package/docs/interfaces/five.XRControllerState.html +8 -0
  239. package/docs/interfaces/five.XRGestureEvent.html +13 -2
  240. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +1 -1
  241. package/docs/interfaces/five.XRSessionEvent.html +9 -2
  242. package/docs/interfaces/plugins.BackgroundPluginController.html +1 -1
  243. package/docs/interfaces/plugins.BackgroundPluginType.EventMap.html +1 -1
  244. package/docs/interfaces/plugins.BasePlugin.State.html +1 -1
  245. package/docs/interfaces/plugins.CSS2DPluginController.html +49 -0
  246. package/docs/interfaces/plugins.CSS2DPluginType.Config.html +2 -0
  247. package/docs/interfaces/plugins.CSS2DPluginType.CreateCSS2DObjectType.html +8 -0
  248. package/docs/interfaces/plugins.CSS2DPluginType.EventMap.html +10 -0
  249. package/docs/interfaces/plugins.CSS2DPluginType.Params.html +4 -0
  250. package/docs/interfaces/plugins.CSS2DPluginType.State.html +8 -0
  251. package/docs/interfaces/plugins.CSS2DRendererParameters.html +2 -0
  252. package/docs/interfaces/plugins.CSS3DPluginController.html +52 -0
  253. package/docs/interfaces/plugins.CSS3DPluginType.Config.html +2 -0
  254. package/docs/interfaces/plugins.CSS3DPluginType.CreateCSS3DObjectType.html +10 -0
  255. package/docs/interfaces/plugins.CSS3DPluginType.EventMap.html +10 -0
  256. package/docs/interfaces/plugins.CSS3DPluginType.Params.html +4 -0
  257. package/docs/interfaces/plugins.CSS3DPluginType.State.html +8 -0
  258. package/docs/interfaces/plugins.CSS3DRendererParameters.html +2 -0
  259. package/docs/interfaces/plugins.DynamicPathLinePluginController.html +3 -3
  260. package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +1 -1
  261. package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +1 -1
  262. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationController.html +44 -0
  263. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.BoundingAABB2D.html +3 -0
  264. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.Config.html +8 -0
  265. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.EventMap.html +10 -0
  266. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.Keyframe.html +3 -0
  267. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.State.html +8 -0
  268. package/docs/interfaces/plugins.ItemMaskController.html +1 -1
  269. package/docs/interfaces/plugins.ItemMaskPluginType.EventMap.html +1 -1
  270. package/docs/interfaces/plugins.ItemMaskPluginType.State.html +2 -2
  271. package/docs/interfaces/plugins.Object3DHelperPluginType.BaseController.html +30 -0
  272. package/docs/interfaces/plugins.Object3DHelperPluginType.BaseHelper.html +22 -0
  273. package/docs/interfaces/plugins.Object3DHelperPluginType.BoundingBoxController.html +30 -0
  274. package/docs/interfaces/plugins.Object3DHelperPluginType.HelperOffset.html +4 -0
  275. package/docs/interfaces/plugins.Object3DHelperPluginType.MoveController.html +36 -0
  276. package/docs/interfaces/plugins.Object3DHelperPluginType.MoveHelperAbstract.html +32 -0
  277. package/docs/interfaces/plugins.Object3DHelperPluginType.Object3DHelper.html +12 -0
  278. package/docs/interfaces/plugins.Object3DHelperPluginType.Object3DHelperPluginState.html +4 -0
  279. package/docs/interfaces/plugins.Object3DHelperPluginType.Object3DHelperState.html +4 -0
  280. package/docs/interfaces/plugins.Object3DHelperPluginType.ObjectHelperControllers.html +4 -0
  281. package/docs/interfaces/plugins.Object3DHelperPluginType.RotateController.html +36 -0
  282. package/docs/interfaces/plugins.Object3DHelperPluginType.RotateHelperAbstract.html +28 -0
  283. package/docs/interfaces/plugins.Object3DHelperPluginType.Scissor.html +5 -0
  284. package/docs/interfaces/plugins.Object3DHelperPluginType.Vector2Position.html +3 -0
  285. package/docs/interfaces/plugins.Object3DHelperPluginType.Vector3Position.html +4 -0
  286. package/docs/interfaces/plugins.OrientationPluginController.html +6 -6
  287. package/docs/interfaces/plugins.OrientationPluginType.EventMap.html +1 -1
  288. package/docs/interfaces/plugins.OrientationPluginType.State.html +1 -1
  289. package/docs/interfaces/plugins.PanoAnimeController.html +1 -1
  290. package/docs/interfaces/plugins.PanoAnimePluginType.EventMap.html +1 -1
  291. package/docs/interfaces/plugins.PanoAnimePluginType.State.html +1 -1
  292. package/docs/interfaces/plugins.PlayingState.html +2 -2
  293. package/docs/interfaces/plugins.PluginTemplateType.EventMap.html +1 -1
  294. package/docs/interfaces/plugins.PluginTemplateType.State.html +1 -1
  295. package/docs/interfaces/plugins.TrajectoryController.html +8 -8
  296. package/docs/interfaces/react.FiveAppProps.html +11 -0
  297. package/docs/interfaces/react.FiveInjectionTypes.html +21 -21
  298. package/docs/interfaces/sticker.IntersectionLike.html +2 -2
  299. package/docs/interfaces/vfx.ParticleArgs.html +4 -4
  300. package/docs/interfaces/vue.FiveActionVueCallbacks.html +3 -3
  301. package/docs/modules/five.html +1 -1
  302. package/docs/modules/plugins.CSS2DPluginType.html +1 -0
  303. package/docs/modules/plugins.CSS3DPluginType.html +1 -0
  304. package/docs/modules/plugins.GaussianSplattingEntranceAnimationPluginType.html +1 -0
  305. package/docs/modules/plugins.Object3DHelperPluginType.html +1 -0
  306. package/docs/modules/plugins.html +1 -1
  307. package/docs/modules/react.html +1 -1
  308. package/docs/modules.html +1 -1
  309. package/docs/types/five.ControllerEventTypes.html +30 -26
  310. package/docs/types/five.EasingFunction.html +1 -0
  311. package/docs/types/five.EventTypes.html +26 -26
  312. package/docs/types/five.LegacyEventType.html +7 -7
  313. package/docs/types/five.PBMAlphaMode.html +1 -1
  314. package/docs/types/five.PBMColorStyle.html +1 -1
  315. package/docs/types/five.PBMFloorStyle.html +1 -1
  316. package/docs/types/five.PBMMeshShaderType.html +1 -1
  317. package/docs/types/five.PBMPointBack.html +1 -1
  318. package/docs/types/five.PBMPointCloudShaderType.html +1 -1
  319. package/docs/types/five.PBMPointShape.html +1 -1
  320. package/docs/types/five.PBMPointSize.html +1 -1
  321. package/docs/types/five.PBMTransition.html +1 -1
  322. package/docs/types/five.ParseOptions.html +6 -6
  323. package/docs/types/five.Works.html +1 -1
  324. package/docs/types/plugins.BasePlugin.EventMap.html +1 -1
  325. package/docs/types/plugins.CSS2DPluginType.PluginData.html +1 -0
  326. package/docs/types/plugins.CSS2DPluginType.ServerData.html +1 -0
  327. package/docs/types/plugins.CSS3DPluginType.PluginData.html +1 -0
  328. package/docs/types/plugins.CSS3DPluginType.ServerData.html +1 -0
  329. package/docs/types/plugins.Object3DHelperPluginType.AddObject3DHelperConfig.html +13 -0
  330. package/docs/types/plugins.Object3DHelperPluginType.Circle.html +1 -0
  331. package/docs/types/plugins.Object3DHelperPluginType.Color.html +1 -0
  332. package/docs/types/plugins.Object3DHelperPluginType.Direction.html +1 -0
  333. package/docs/types/plugins.Object3DHelperPluginType.Direction4.html +1 -0
  334. package/docs/types/plugins.Object3DHelperPluginType.HelperConfig.html +1 -0
  335. package/docs/types/plugins.Object3DHelperPluginType.HelperEventMap.html +17 -0
  336. package/docs/types/plugins.Object3DHelperPluginType.InternalHelperEventMap.html +8 -0
  337. package/docs/types/plugins.Object3DHelperPluginType.Object3DHelperEventMap.html +1 -0
  338. package/docs/types/plugins.Object3DHelperPluginType.Object3DHelperPluginEventMap.html +7 -0
  339. package/docs/types/plugins.Object3DHelperPluginType.PositionFrom.html +1 -0
  340. package/docs/types/plugins.Object3DHelperPluginType.ScaleCallback.html +1 -0
  341. package/docs/types/plugins.Object3DHelperPluginType.ScalePosition.html +4 -0
  342. package/docs/types/plugins.Object3DHelperPluginType.UseFaceNormalInterface.html +4 -0
  343. package/docs/types/plugins.Object3DHelperPluginType.Vector2WithArray.html +1 -0
  344. package/docs/types/plugins.Object3DHelperPluginType.Vector3WithArray.html +1 -0
  345. package/docs/variables/five.PROXY_CONTROLLER_EVENT_NAMES.html +1 -1
  346. package/docs/variables/react.FiveApp.html +3 -0
  347. package/docs/variables/react.FiveAutoCanvas.html +3 -0
  348. package/five/application/events.d.ts +1 -1
  349. package/five/application/five.d.ts +6 -5
  350. package/five/bvh/bvhObject.d.ts +2 -2
  351. package/five/controllers/base.d.ts +1 -0
  352. package/five/controllers/events.d.ts +5 -1
  353. package/five/controllers/mapview.d.ts +1 -0
  354. package/five/controllers/model.d.ts +2 -2
  355. package/five/controllers/panorama.d.ts +3 -2
  356. package/five/controllers/xrPanorama.d.ts +1 -1
  357. package/five/core/camera.d.ts +1 -1
  358. package/five/gaussian-splatting/util/renderData.d.ts +66 -0
  359. package/five/index.d.ts +4 -1
  360. package/five/index.js +272 -782
  361. package/five/index.mjs +26894 -32056
  362. package/five/meshes/boundingMesh.d.ts +1 -0
  363. package/five/model/index.d.ts +2 -2
  364. package/five/model/loaders/glTF-helpers/extensions/KHR_binary_glTF.d.ts +1 -1
  365. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting.d.ts +26 -0
  366. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz.d.ts +7 -5
  367. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz_2.d.ts +13 -0
  368. package/five/model/loaders/glTF-helpers/extensions/base.d.ts +2 -1
  369. package/five/model/loaders/glTF-helpers/index.d.ts +4 -0
  370. package/five/model/loaders/glTF-helpers/parser.d.ts +2 -1
  371. package/five/model/loaders/spz.d.ts +2 -2
  372. package/five/model/materials/pbmMaterial.d.ts +54 -4
  373. package/five/model/materials/pbmMeshMaterial.d.ts +5 -3
  374. package/five/model/materials/pbmPointCloudMaterial.d.ts +0 -2
  375. package/five/model/objects/{pbmGSObject.d.ts → pbmGaussianSplattingObject.d.ts} +4 -1
  376. package/five/model/objects/pbmGaussianSplattingRenderMesh.d.ts +59 -0
  377. package/five/model/objects/pbmGaussianSplattingTestMesh.d.ts +7 -0
  378. package/five/model/parameter.d.ts +11 -6
  379. package/five/model/tile3d/index.d.ts +5 -3
  380. package/five/model/tile3d/tile-node.d.ts +2 -2
  381. package/five/model/tile3d/tileset.d.ts +1 -0
  382. package/five/renderer/postprocessing/passes/adaptive-luminance-pass.d.ts +9 -7
  383. package/five/renderer/postprocessing/passes/flowing-light-2d-pass.d.ts +6 -1
  384. package/five/renderer/postprocessing/passes/flowing-light-3d-pass.d.ts +3 -1
  385. package/five/renderer/tools/render-cube-to-equirectangular.d.ts +7 -0
  386. package/five/renderer/tools/render-full-screen.d.ts +1 -1
  387. package/five/texture/histogram.d.ts +54 -0
  388. package/five/texture/loader.d.ts +1 -1
  389. package/five/texture/textureData.d.ts +11 -0
  390. package/five/thirdparty/hammer.d.ts +371 -255
  391. package/five/thirdparty/jsrsasign.d.ts +5 -20
  392. package/five/types/movePanoOptions.d.ts +4 -3
  393. package/five/utils/error.d.ts +1 -0
  394. package/five/utils/event.d.ts +98 -37
  395. package/five/utils/imageURL.d.ts +1 -1
  396. package/five/utils/memoryUsage.d.ts +2 -2
  397. package/five/utils/subscribe.d.ts +2 -2
  398. package/five/webxr/motionHelper.d.ts +1 -1
  399. package/five/work/index.d.ts +1 -0
  400. package/five/work/looseWorkType.d.ts +2 -2
  401. package/five/work/work.d.ts +5 -35
  402. package/five/work/workJsonType.d.ts +2 -2
  403. package/five/work/workObserverProto.d.ts +39 -0
  404. package/gltf-loader/index.js +9 -9
  405. package/gltf-loader/index.mjs +1351 -1451
  406. package/line/index.js +4 -4
  407. package/line/index.mjs +334 -513
  408. package/llms.txt +37 -1
  409. package/package.json +4 -4
  410. package/plugins/CSS2DPlugin/Controller.d.ts +59 -0
  411. package/plugins/CSS2DPlugin/index.d.ts +5 -0
  412. package/plugins/CSS2DPlugin/typing.d.ts +30 -0
  413. package/plugins/CSS3DPlugin/Controller.d.ts +64 -0
  414. package/plugins/CSS3DPlugin/index.d.ts +5 -0
  415. package/plugins/CSS3DPlugin/typing.d.ts +32 -0
  416. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.d.ts +30 -0
  417. package/plugins/GaussianSplattingEntranceAnimationPlugin/index.d.ts +5 -0
  418. package/plugins/GaussianSplattingEntranceAnimationPlugin/typing.d.ts +28 -0
  419. package/plugins/Object3DHelperPlugin/Controller.d.ts +99 -0
  420. package/plugins/Object3DHelperPlugin/Controllers/BaseController.d.ts +142 -0
  421. package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.d.ts +16 -0
  422. package/plugins/Object3DHelperPlugin/Controllers/MoveController.d.ts +66 -0
  423. package/plugins/Object3DHelperPlugin/Controllers/RotateController.d.ts +61 -0
  424. package/plugins/Object3DHelperPlugin/FiveControllerWrapper.d.ts +17 -0
  425. package/plugins/Object3DHelperPlugin/Helper/BaseHelper.d.ts +97 -0
  426. package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.d.ts +16 -0
  427. package/plugins/Object3DHelperPlugin/Helper/MoveHelper.d.ts +37 -0
  428. package/plugins/Object3DHelperPlugin/Helper/RotateHelper.d.ts +93 -0
  429. package/plugins/Object3DHelperPlugin/constant.d.ts +27 -0
  430. package/plugins/Object3DHelperPlugin/index.d.ts +6 -0
  431. package/plugins/Object3DHelperPlugin/typing.d.ts +143 -0
  432. package/plugins/Object3DHelperPlugin/utils/ArrowGroup.d.ts +22 -0
  433. package/plugins/Object3DHelperPlugin/utils/CenterHandle.d.ts +23 -0
  434. package/plugins/Object3DHelperPlugin/utils/PlaneHandle.d.ts +19 -0
  435. package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.d.ts +5 -0
  436. package/plugins/Object3DHelperPlugin/utils/cameraHooks.d.ts +2 -0
  437. package/plugins/Object3DHelperPlugin/utils/direction.d.ts +14 -0
  438. package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.d.ts +5 -0
  439. package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.d.ts +8 -0
  440. package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.d.ts +8 -0
  441. package/plugins/Object3DHelperPlugin/utils/solidGuide.d.ts +27 -0
  442. package/plugins/Object3DHelperPlugin/utils/tipsDom.d.ts +8 -0
  443. package/plugins/TrajectoryPlugin/Controller.d.ts +1 -1
  444. package/plugins/index.d.ts +6 -1
  445. package/plugins/index.js +55 -21
  446. package/plugins/index.mjs +5582 -4238
  447. package/plugins/thirdParty/CSS2DRenderer.d.ts +37 -0
  448. package/plugins/thirdParty/CSS3DRenderer.d.ts +16 -3
  449. package/plugins/thirdParty/domevents.d.ts +36 -0
  450. package/plugins/utils/uuid.d.ts +1 -4
  451. package/react/autoCanvas.d.ts +9 -0
  452. package/react/context.d.ts +3 -2
  453. package/react/createProvider.d.ts +4 -4
  454. package/react/createStore.d.ts +3 -3
  455. package/react/fiveApp.d.ts +22 -0
  456. package/react/hooks/useFivePlugin.d.ts +26 -0
  457. package/react/hooks/useFiveProject2d.d.ts +1 -1
  458. package/react/index.d.ts +4 -0
  459. package/react/index.js +3 -3
  460. package/react/index.mjs +687 -782
  461. package/react/rendererPool.d.ts +2 -2
  462. package/react/withFive.d.ts +1 -1
  463. package/shader-lib/index.js +13 -14
  464. package/shader-lib/index.mjs +424 -824
  465. package/sticker/index.js +3 -3
  466. package/sticker/index.mjs +102 -142
  467. package/umd/five-gltf-loader.js +9 -9
  468. package/umd/five-line.js +4 -4
  469. package/umd/five-plugins.js +55 -21
  470. package/umd/five-react.js +3 -3
  471. package/umd/five-shader-lib.js +13 -14
  472. package/umd/five-sticker.js +3 -3
  473. package/umd/five-vfx.js +21 -21
  474. package/umd/five-vue.js +3 -3
  475. package/umd/five.js +267 -777
  476. package/vfx/index.js +21 -21
  477. package/vfx/index.mjs +454 -910
  478. package/vue/index.js +3 -3
  479. package/vue/index.mjs +309 -301
  480. package/vue/rendererPool.d.ts +5 -5
  481. package/work-downloader/index.js +3 -3
  482. package/work-downloader/index.mjs +339 -556
  483. package/five/gs/util/renderData.d.ts +0 -32
  484. package/five/model/objects/pbmGSRenderMesh.d.ts +0 -29
  485. package/five/work/workObserverUtils.d.ts +0 -36
  486. /package/five/assets/{realsee-pmg-data-url.d.ts → realsee-png-data-url.d.ts} +0 -0
  487. /package/five/{gs → gaussian-splatting}/wasm/data.d.ts +0 -0
  488. /package/five/{gs → gaussian-splatting}/wasm/sort.d.ts +0 -0
  489. /package/five/{gs → gaussian-splatting}/worker/dataWorker.d.ts +0 -0
  490. /package/five/{gs → gaussian-splatting}/worker/sortWorker.d.ts +0 -0
@@ -0,0 +1,37 @@
1
+ import {
2
+ Object3D,
3
+ Vector2,
4
+ Scene,
5
+ Camera
6
+ } from 'three';
7
+
8
+ export class CSS2DObject extends Object3D {
9
+
10
+ constructor( element?: HTMLElement );
11
+
12
+ readonly isCSS2DObject: true;
13
+ element: HTMLElement;
14
+ center: Vector2;
15
+
16
+ onBeforeRender: ( renderer: unknown, scene: Scene, camera: Camera ) => void;
17
+ onAfterRender: ( renderer: unknown, scene: Scene, camera: Camera ) => void;
18
+
19
+ copy( source: CSS2DObject, recursive?: boolean ): this;
20
+
21
+ }
22
+
23
+ export interface CSS2DRendererParameters {
24
+ element?: HTMLElement;
25
+ }
26
+
27
+ export class CSS2DRenderer {
28
+
29
+ constructor( parameters?: CSS2DRendererParameters );
30
+ domElement: HTMLElement;
31
+ sortObjects: boolean;
32
+
33
+ getSize(): { width: number, height: number };
34
+ setSize( width: number, height: number ): void;
35
+ render( scene: Scene, camera: Camera ): void;
36
+
37
+ }
@@ -6,27 +6,40 @@ import {
6
6
 
7
7
  export class CSS3DObject extends Object3D {
8
8
 
9
- constructor( element: HTMLElement );
9
+ constructor( element?: HTMLElement );
10
+
11
+ readonly isCSS3DObject: true;
10
12
  element: HTMLElement;
11
13
 
12
14
  onBeforeRender: ( renderer: unknown, scene: Scene, camera: Camera ) => void;
13
15
  onAfterRender: ( renderer: unknown, scene: Scene, camera: Camera ) => void;
14
16
 
17
+ copy( source: CSS3DObject, recursive?: boolean ): this;
18
+
15
19
  }
16
20
 
17
21
  export class CSS3DSprite extends CSS3DObject {
18
22
 
19
- constructor( element: HTMLElement );
23
+ constructor( element?: HTMLElement );
24
+
25
+ readonly isCSS3DSprite: true;
26
+ rotation2D: number;
27
+
28
+ }
20
29
 
30
+ export interface CSS3DRendererParameters {
31
+ element?: HTMLElement;
21
32
  }
22
33
 
23
34
  export class CSS3DRenderer {
24
35
 
25
- constructor();
36
+ constructor( parameters?: CSS3DRendererParameters );
26
37
  domElement: HTMLElement;
27
38
 
28
39
  getSize(): { width: number, height: number };
29
40
  setSize( width: number, height: number ): void;
41
+ markDirty(): void;
42
+ updateSpriteSet( scene: Scene ): void;
30
43
  render( scene: Scene, camera: Camera ): void;
31
44
 
32
45
  }
@@ -0,0 +1,36 @@
1
+ import type * as THREE from 'three'
2
+
3
+ type EventName =
4
+ | 'click'
5
+ | 'dblclick'
6
+ | 'mouseover'
7
+ | 'mouseout'
8
+ | 'mousemove'
9
+ | 'mousedown'
10
+ | 'mouseup'
11
+ | 'contextmenu'
12
+ | 'touchstart'
13
+ | 'touchend'
14
+
15
+ export interface DomEventInterface<T extends EventName, K extends THREE.Object3D> {
16
+ type: T
17
+ target: K
18
+ origDomEvent: Event
19
+ intersect: THREE.Intersection & { object: K }
20
+ stopPropagation: () => void
21
+ }
22
+
23
+ declare class DomEvents {
24
+ public constructor(camera: THREE.Camera, domElement: HTMLElement)
25
+
26
+ public addEventListener<T extends EventName, K extends THREE.Object3D>(
27
+ object: K,
28
+ eventName: T,
29
+ callback: (params: DomEventInterface<T, K>) => void,
30
+ useCapture?: boolean,
31
+ ): void
32
+
33
+ public removeEventListener(object: THREE.Object3D, eventName: EventName, callback: (params: any) => void, useCapture?: boolean): void
34
+ }
35
+
36
+ export default DomEvents
@@ -1,5 +1,2 @@
1
- /**
2
- * 计算一个唯一 id
3
- */
4
- declare function createUuid(): string;
1
+ export declare function createUuid(): string;
5
2
  export { createUuid as uuid };
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ /**
3
+ * 自适应尺寸的 Five 渲染区域组件
4
+ * @description 自动跟随容器大小,无需手动传 width/height。请在 FiveProvider 内使用。
5
+ */
6
+ declare const FiveAutoCanvas: React.FC<{
7
+ children?: React.ReactNode;
8
+ }>;
9
+ export { FiveAutoCanvas };
@@ -1,11 +1,12 @@
1
1
  import * as THREE from "three";
2
2
  import * as React from "react";
3
3
  import { Five, Work, State, FiveLoadOptions } from "@realsee/five";
4
- declare const FiveContext: React.Context<{
4
+ type ContextType = null | {
5
5
  renderer?: THREE.WebGLRenderer;
6
6
  five: Five;
7
7
  loadWork: (works: Work | Work[], state?: "inherit" | "initial" | Partial<Omit<State, "offset">>, options?: number | FiveLoadOptions, userAction?: boolean) => Promise<void>;
8
- }>;
8
+ };
9
+ declare const FiveContext: React.Context<ContextType>;
9
10
  declare function useFiveInstance(): Five;
10
11
  declare function useFiveWorkLoader(): (works: Work | Work[], state?: "inherit" | "initial" | Partial<Omit<State, "offset">>, options?: number | FiveLoadOptions, userAction?: boolean) => Promise<void>;
11
12
  export { FiveContext, useFiveInstance, useFiveWorkLoader };
@@ -48,7 +48,7 @@ declare function createFiveProvider(fiveInitArgs?: Omit<FiveInitArgs, "renderer"
48
48
  renderer?: THREE.WebGLRenderer;
49
49
  five: Five;
50
50
  loadWork: (works: Work | Work[], state?: "inherit" | "initial" | Partial<Omit<State, "offset">>, options?: number | FiveLoadOptions, userAction?: boolean) => Promise<void>;
51
- }>>;
51
+ } | null>>;
52
52
  context: any;
53
53
  setState<K extends "renderer">(state: {
54
54
  renderer?: THREE.WebGLRenderer;
@@ -58,10 +58,10 @@ declare function createFiveProvider(fiveInitArgs?: Omit<FiveInitArgs, "renderer"
58
58
  renderer?: THREE.WebGLRenderer;
59
59
  } | Pick<{
60
60
  renderer?: THREE.WebGLRenderer;
61
- }, K>) | Pick<{
61
+ }, K> | null) | Pick<{
62
62
  renderer?: THREE.WebGLRenderer;
63
- }, K>, callback?: () => void): void;
64
- forceUpdate(callback?: () => void): void;
63
+ }, K> | null, callback?: (() => void) | undefined): void;
64
+ forceUpdate(callback?: (() => void) | undefined): void;
65
65
  readonly props: Readonly<FiveProviderPropTypes> & Readonly<{
66
66
  children?: React.ReactNode | undefined;
67
67
  }>;
@@ -82,14 +82,14 @@ declare function createStore<T extends StoreValueMapType, A extends StoreActionM
82
82
  onValuesChange?: (value: T, prevValue: T) => void;
83
83
  children: React.ReactNode;
84
84
  }): boolean;
85
- render(): React.FunctionComponentElement<React.ProviderProps<Store<T>>>;
85
+ render(): React.FunctionComponentElement<React.ProviderProps<Store<T> | null>>;
86
86
  context: any;
87
87
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<{
88
88
  initialValue: T;
89
89
  onValuesChange?: (value: T, prevValue: T) => void;
90
90
  children: React.ReactNode;
91
- }>) => {} | Pick<{}, K>) | Pick<{}, K>, callback?: () => void): void;
92
- forceUpdate(callback?: () => void): void;
91
+ }>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
92
+ forceUpdate(callback?: (() => void) | undefined): void;
93
93
  readonly props: Readonly<{
94
94
  initialValue: T;
95
95
  onValuesChange?: (value: T, prevValue: T) => void;
@@ -0,0 +1,22 @@
1
+ import * as React from "react";
2
+ import { Five, FiveInitArgs } from "@realsee/five";
3
+ type LoadArgs = Parameters<Five["load"]>;
4
+ interface FiveAppProps {
5
+ fiveInitArgs?: FiveInitArgs;
6
+ load?: (five: Five) => Promise<LoadArgs>;
7
+ plugins?: FiveInitArgs["plugins"];
8
+ renderChildren?: boolean;
9
+ fullscreen?: boolean;
10
+ /** 是否自动挂载 FiveAutoCanvas,默认 true */
11
+ autoCanvas?: boolean;
12
+ /** 加载中显示的 fallback,类似 Suspense 的 fallback */
13
+ fallback?: React.ReactNode;
14
+ children?: React.ReactNode;
15
+ }
16
+ /**
17
+ * Five 应用组件
18
+ * @description 组合了 Provider + AutoCanvas + 数据加载流程的一体化组件。
19
+ */
20
+ declare const FiveApp: React.FC<FiveAppProps>;
21
+ export { FiveApp };
22
+ export type { FiveAppProps };
@@ -0,0 +1,26 @@
1
+ import { Five } from "@realsee/five";
2
+ /**
3
+ * 获取插件实例(非 hook,可在任意位置调用)
4
+ */
5
+ export declare function getPlugin<T = any>(workCode: string, pluginName: string): T | undefined;
6
+ /**
7
+ * 手动设置插件实例到缓存(非 hook,可在任意位置调用)
8
+ */
9
+ export declare function setPlugin(workCode: string, pluginName: string, plugin: any): void;
10
+ interface UseFivePluginOptions<T> {
11
+ /** 缓存未命中时自动创建插件实例 */
12
+ createPlugin?: (five: Five) => T;
13
+ /** Five 实例变化时是否重新创建(而非同步引用),默认 false */
14
+ reCreateOnFiveChange?: boolean;
15
+ }
16
+ /**
17
+ * 插件实例管理 hook
18
+ *
19
+ * - 以 `five.work.workCode + pluginName` 为 key 缓存插件实例
20
+ * - `createPlugin` 存在时,缓存未命中会自动创建
21
+ * - Five 实例变化时自动同步插件内部的 five 引用
22
+ *
23
+ * @returns 插件实例(可能为 undefined)
24
+ */
25
+ export declare function useFivePlugin<T = any>(pluginName: string, options?: UseFivePluginOptions<T>): T | undefined;
26
+ export {};
@@ -16,5 +16,5 @@
16
16
  * const { x: width, y: height } = preject2d(new THREE.Vector3(0, 0, 0));
17
17
  * ```
18
18
  */
19
- declare function useFiveProject2d(): (vector: THREE.Vector3, testModel: boolean) => import("three").Vector2;
19
+ declare function useFiveProject2d(): (vector: THREE.Vector3, testModel: boolean) => import("three").Vector2 | null;
20
20
  export { useFiveProject2d };
package/react/index.d.ts CHANGED
@@ -2,6 +2,9 @@ export { createFiveProvider } from "./createProvider";
2
2
  export type { FiveProviderType, FiveProviderPropTypes } from "./createProvider";
3
3
  export { FiveCanvas } from "./canvas";
4
4
  export type { FiveCanvasProps } from "./canvas";
5
+ export { FiveAutoCanvas } from "./autoCanvas";
6
+ export { FiveApp } from "./fiveApp";
7
+ export type { FiveAppProps } from "./fiveApp";
5
8
  export { unsafe__useFiveInstance } from "./hooks/unsafe__useFiveInstance";
6
9
  export { useFiveSceneEffect, useFiveScene } from "./hooks/useFiveSceneEffect";
7
10
  export { useFiveWork } from "./hooks/useFiveWork";
@@ -16,6 +19,7 @@ export { useFiveCameraRaycaster } from "./hooks/useFiveCameraRaycaster";
16
19
  export { useFiveCameraDirection } from "./hooks/useFiveCameraDirection";
17
20
  export { useFiveModelIntersectRaycaster } from "./hooks/useFiveModelIntersectRaycaster";
18
21
  export { useFiveModelReadyState } from "./hooks/useFiveModelReadyState";
22
+ export { useFivePlugin, getPlugin, setPlugin } from "./hooks/useFivePlugin";
19
23
  export { useFiveFloor } from "./hooks/useFiveFloor";
20
24
  export { useFiveHelper } from "./hooks/useFiveHelper";
21
25
  export { INJECTION_PROPNAME, withFive, createFiveFeature, } from "./withFive";
package/react/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five
4
- * Generated: 2026/2/26
5
- * Version: 6.8.0-alpha.9
4
+ * Generated: 2026/4/28
5
+ * Version: 6.8.1
6
6
  * Terms:
7
7
  * Realsee SDK License Agreement
8
8
  * Update: July 28, 2021
@@ -252,4 +252,4 @@
252
252
  * No amendment to or modification of this Agreement will be binding unless in
253
253
  * writing and signed by Realsee. You and Realsee hereto confirm that this
254
254
  * Agreement and all related documents shall be drafted in English.
255
- */"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ce=require("react"),fe=require("three"),j=require("@realsee/five");function B(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const u=B(ce),p=B(fe);var E=function(e,n){return E=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(t[o]=r[o])},E(e,n)};function I(e,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");E(e,n);function t(){this.constructor=e}e.prototype=n===null?Object.create(n):(t.prototype=n.prototype,new t)}var h=function(){return h=Object.assign||function(n){for(var t,r=1,o=arguments.length;r<o;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a])}return n},h.apply(this,arguments)};function w(e,n,t){if(t||arguments.length===2)for(var r=0,o=n.length,a;r<o;r++)(a||!(r in n))&&(a||(a=Array.prototype.slice.call(n,0,r)),a[r]=n[r]);return e.concat(a||Array.prototype.slice.call(n))}var k=[],R=[];function le(e){var n=e===void 0?{}:e,t=n.preserveDrawingBuffer,r=t===void 0?!0:t,o=n.webgl2,a=o===void 0?!1:o;if(typeof window!="undefined"){var i=null;if(a?i=k.shift():i=R.shift(),!i){if(a){var s=document.createElement("canvas"),c=s.getContext("webgl2");c?i=new p.WebGLRenderer({preserveDrawingBuffer:r,antialias:!0,alpha:!0,stencil:!0,canvas:s,context:c}):(console.error("error occurred when getting webgl2 canvas context, mybe webgl2 not support, fallback to webgl."),i=new p.WebGLRenderer({preserveDrawingBuffer:r,antialias:!1,alpha:!0,stencil:!0}))}else i=new p.WebGLRenderer({preserveDrawingBuffer:r,antialias:!1,alpha:!0,stencil:!0});i.outputEncoding=p.sRGBEncoding}return i.autoClear=!0,i}}function ve(e){if(e){var n=e.capabilities.isWebGL2;n?R.indexOf(e)===-1&&R.push(e):k.indexOf(e)===-1&&k.push(e)}}var L=u.createContext(null);function v(){var e=u.useContext(L);if(!e)throw new Error("FiveProvider never found.");return e.five}function G(){var e=u.useContext(L);if(!e)throw new Error("FiveProvider never found.");return e.loadWork}function de(e,n){var t=Array.isArray(e)?e:[e],r=Array.isArray(n)?n:[n];if(t.length!==r.length)return!1;for(var o=0;o<t.length;o++)if(t[o].workCode!==r[o].workCode)return!1;return!0}function pe(e){return e===void 0&&(e={}),(function(n){I(t,n);function t(r){var o=n.call(this,r)||this;return o.__fiveEventDisposers=[],o.__fiveDisposeTimer=null,o.five=new j.Five(h(h({},e),{renderer:void 0})),o.loadWork=o.loadWork.bind(o),o.state={},o}return t.prototype.loadWork=function(r,o,a,i){if(i===void 0&&(i=!0),this.props.work)throw new Error("props 'works' is set in fiveProvider, if you need modify work internal, use 'initialWork' instead.");return this.five.load(r,o,a,i)},t.prototype.shouldComponentUpdate=function(r){return this.five.renderer&&this.five&&r.work&&!de(r.work,this.five.works)&&this.five.load(r.work,r.initialState,r.initialOptions),!0},t.prototype.componentDidMount=function(){var r=this,o;clearTimeout(this.__fiveDisposeTimer),this.__fiveDisposeTimer=null;var a;if(typeof window!="undefined"){a=le({webgl2:e==null?void 0:e.webgl2,preserveDrawingBuffer:e==null?void 0:e.preserveDrawingBuffer});var i=j.getViewportScale(),s=i===1?window.devicePixelRatio:1;a==null||a.setPixelRatio(s)}this.five.renderer=a,this.setState({renderer:a}),this.__fiveEventDisposers.push(this.five.on("load",function(){r.props.onWorksChange&&r.props.onWorksChange(r.five.works)})),this.__fiveEventDisposers.push(this.five.on("stateChange",function(l,d){r.props.onStateChange&&r.props.onStateChange(l,d)})),this.__fiveEventDisposers.push(this.five.on("currentStateChange",function(l,d){r.props.onCurrentStateChange&&r.props.onCurrentStateChange(l,d)})),this.__fiveEventDisposers.push(this.five.on("error",function(l){r.props.onError?r.props.onError(l):console.warn(l.message)}));var c=this.props.work||this.props.initialWork;c&&this.five.load(c,this.props.initialState,this.props.initialOptions,(o=this.props.initialUserAction)!==null&&o!==void 0?o:!0)},t.prototype.componentWillUnmount=function(){var r=this,o;(o=this.five.controller)===null||o===void 0||o.destroy();var a=this.five.renderer;this.five.renderer=void 0,ve(a),this.setState({renderer:void 0}),this.__fiveDisposeTimer=setTimeout(function(){r.__fiveDisposeTimer=null,r.five.dispose()},1e3)},t.prototype.render=function(){var r=this.five,o=this.loadWork,a=this.state.renderer;return u.createElement(L.Provider,{value:{renderer:a,five:r,loadWork:o}},this.props.children)},t})(u.Component)}var he=typeof window!="undefined"?u.useLayoutEffect:u.useEffect,ge={display:"inline-block",overflow:"hidden"},ye=function(e){var n=e.width,t=e.height,r=v(),o=u.createRef(),a=h({width:n,height:t},ge);return he(function(){var i=o.current;if(i&&r.renderer){var s=r.renderer.domElement;if(s.parentNode!==null&&s.parentNode!==i)throw new Error("There are more than 2 fiveCanvas in this context.");return s.parentNode!==i&&i.appendChild(s),r.camera.aspect=n/t,r.camera.updateProjectionMatrix(),r.renderer.setSize(n,t),r.refresh({width:n,height:t}),r.needsRender=!0,function(){s.parentNode===i&&i.removeChild(s)}}},[r,r.renderer,n,t,o.current]),u.createElement("div",{ref:o,style:a})};function me(){return v()}function q(e,n){var t=v(),r=[t];n!==void 0&&(r=r.concat(n)),u.useLayoutEffect(function(){return e(t.scene)},r)}var Se=q;function we(){var e=v(),n=G(),t=u.useState(function(){return e.works}),r=t[0],o=t[1];return u.useLayoutEffect(function(){return e.on("load",function(){return o(e.works)})},[e]),[r,n]}function U(e){return h({},e.state)}function be(){var e=v(),n=u.useState(function(){return U(e)}),t=n[0],r=n[1],o=u.useCallback(function(a,i,s){i===void 0&&(i=!1),s===void 0&&(s=!0);var c=typeof a=="function"?a(e.getCurrentState()):a;e.setState(c,i,s)},[e]);return u.useLayoutEffect(function(){return e.on("stateChange",function(){return r(U(e))})},[e]),[t,o]}function Ce(){var e=v(),n=u.useState(function(){return e.getCurrentState()}),t=n[0],r=n[1],o=u.useCallback(function(a,i,s){i===void 0&&(i=!1),s===void 0&&(s=!0);var c=typeof a=="function"?a(e.getCurrentState()):a;e.setState(c,i,s)},[e]);return u.useLayoutEffect(function(){return e.on("currentStateChange",function(){return r(e.getCurrentState())})},[e]),[t,o]}function Fe(){var e=v(),n=u.useState(function(){return e.getCurrentState()}),t=n[0],r=n[1];return u.useLayoutEffect(function(){return e.on("currentStateChange",function(){return r(e.getCurrentState())})},[e]),e.works.getObserver(t)}function Ee(e,n,t){var r=v(),o=[r,e];t!==void 0&&(o=o.concat(t)),u.useLayoutEffect(function(){return r.on(e,n)},o)}function ke(){var e=v(),n=u.useCallback(function(i,s){return e.updateCamera(i,s)},[e]),t=u.useCallback(e.getPixels.bind(e),[e]),r=u.useCallback(function(i){return e.render(i)},[e]),o=u.useCallback(function(){return e.needsRender=!0},[e]),a=u.useCallback(function(i,s){return e.preloadPano(i,s)},[e]);return{updateCamera:n,getPixels:t,render:r,needsRender:o,preloadPano:a}}function Re(){var e=v(),n=u.useState(function(){return Symbol()});n[0];var t=n[1];u.useLayoutEffect(function(){return e.on("cameraUpdate",function(){return t(Symbol())})},[e]);var r=u.useCallback(function(o,a){return e.project2d(o,a)},[e]);return r}function T(e){var n=e.camera.getWorldDirection(new p.Vector3),t=new p.Raycaster(e.camera.position,n);return t}function Le(){var e=v(),n=u.useState(function(){return T(e)}),t=n[0],r=n[1];return u.useLayoutEffect(function(){return e.on("cameraUpdate",function(){return r(T(e))})},[e]),t}function N(e){return e.camera.getWorldDirection(new p.Vector3)}function _e(){var e=v(),n=u.useState(function(){return N(e)}),t=n[0],r=n[1];return u.useLayoutEffect(function(){return e.on("cameraUpdate",function(){return r(N(e))})},[e]),t}function Pe(){var e=v(),n=u.useCallback(function(t){return e.model.intersectRaycaster(t)},[e]);return n}function $(e){return e.model.empty?"Empty":"Loaded"}function Ve(){var e=v(),n=u.useState(function(){return $(e)}),t=n[0],r=n[1];return u.useLayoutEffect(function(){return e.on("modelLoaded",function(){return r($(e))})},[e]),t}function Oe(){var e=v(),n=u.useState(e.model.shownFloor),t=n[0],r=n[1],o=u.useState(e.model.floorLength),a=o[0],i=o[1],s=u.useCallback(function(c){typeof c=="number"?e.model.show(c):e.model.show()},[e]);return u.useLayoutEffect(function(){var c=[];return c.push(e.on("modelShownFloorChange",function(){return r(e.model.shownFloor)})),c.push(e.on("modelLoaded",function(){return i(e.model.floorLength)})),function(){for(var l;l=c.shift();)l()}},[e]),[t,a,s]}function De(){var e=v(),n=u.useState(e.helperVisible),t=n[0],r=n[1],o=u.useCallback(function(a){e.helperVisible=a},[e]);return u.useLayoutEffect(function(){return e.on("helpersVisibleChange",function(a){return r(a)})},[e]),[t,o]}var xe="$five";function f(e,n){return n.indexOf(e)>=0}function H(e,n){for(var t=0,r=Object.keys(n);t<r.length;t++){var o=r[t];n[o]!==void 0&&(e[o]=n[o])}}function We(e,n){var t=f("state",n),r=u.useState(Symbol()),o=r[0],a=r[1],i=u.useMemo(function(){if(t)return h({},e.state)},[e,o]);return u.useLayoutEffect(function(){if(t)return e.on("stateChange",function(){return a(Symbol())})},[e]),[i,o]}function Me(e,n){var t=f("currentState",n),r=u.useState(Symbol()),o=r[0],a=r[1],i=u.useMemo(function(){if(t)return e.getCurrentState()},[e,o]);return u.useLayoutEffect(function(){if(t)return e.on("currentStateChange",function(){return a(Symbol())})},[e]),[i,o]}function je(e,n){var t=f("currentObserver",n),r=u.useState(Symbol()),o=r[0],a=r[1],i=u.useMemo(function(){if(t)return e.getCurrentState()},[e,o]);u.useLayoutEffect(function(){if(t)return e.on("currentStateChange",function(){return a(Symbol())})},[e]);var s=void 0;return i&&(s=e.works.getObserver(i)),[s,o]}function Ue(e,n){var t=f("unsafe__fiveInstance",n);return[t?e:void 0]}function Te(e,n){var t=f("works",n),r=u.useState(Symbol()),o=r[0],a=r[1],i=u.useMemo(function(){if(t)return e.works},[e,o]);return u.useLayoutEffect(function(){if(t)return e.on("load",function(){return a(Symbol())})},[e]),[i,o]}function Ne(e,n){var t=f("model",n),r=u.useState(Symbol()),o=r[0],a=r[1],i=u.useMemo(function(){if(t)return e.model},[e,o]);return u.useLayoutEffect(function(){if(t)return e.on("modelLoaded",function(){return a(Symbol())})},[e]),[i,o]}function $e(e,n){var t=f("scene",n);return[t?e.scene:void 0]}function He(e,n){var t=f("cameraDirection",n),r=u.useState(Symbol()),o=r[0],a=r[1],i=u.useMemo(function(){if(t)return e.camera.getWorldDirection(new p.Vector3)},[e,o]);return u.useLayoutEffect(function(){if(t)return e.on("cameraUpdate",function(){return a(Symbol())})},[e]),[i,o]}function Be(e,n){var t=f("cameraRaycaster",n),r=u.useState(Symbol()),o=r[0],a=r[1],i=u.useMemo(function(){if(t){var s=e.camera.getWorldDirection(new p.Vector3),c=new p.Raycaster(e.camera.position,s);return c}},[e,o]);return u.useLayoutEffect(function(){if(t)return e.on("cameraUpdate",function(){return a(Symbol())})},[e]),[i,o]}function Ie(e,n){var t=f("modelReadyState",n),r=u.useState(Symbol()),o=r[0],a=r[1],i=u.useMemo(function(){if(t)return e.model.empty?"Empty":"Loaded"},[e,o]);return u.useLayoutEffect(function(){if(t)return e.on("modelLoaded",function(){return a(Symbol())})},[e]),[i,o]}function Ge(e,n){var t=f("shownFloor",n),r=u.useState(Symbol()),o=r[0],a=r[1],i=u.useMemo(function(){if(t)return e.model.shownFloor},[e,o]);return u.useLayoutEffect(function(){if(t)return e.on("modelShownFloorChange",function(){return a(Symbol())})},[e]),[i,o]}function qe(e,n){var t=f("helperVisible",n),r=u.useState(Symbol()),o=r[0],a=r[1],i=u.useMemo(function(){if(t)return e.helperVisible},[e,o]);return u.useLayoutEffect(function(){if(t)return e.on("helpersVisibleChange",function(){return a(Symbol())})},[e]),[i,o]}function Ae(e,n){if(f("loadWork",n))return e}function ze(e,n){if(f("setState",n))return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.setState.apply(e,t)}}function Je(e,n){if(f("on",n))return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.on.apply(e,t)}}function Ke(e,n){if(f("on",n))return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.once.apply(e,t)}}function Qe(e,n){if(f("off",n))return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.off.apply(e,t)}}function Xe(e,n){if(f("intersectRaycaster",n))return function(){for(var t,r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];return(t=e.model).intersectRaycaster.apply(t,r)}}function Ye(e,n){if(f("project2d",n))return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.project2d.apply(e,t)}}function Ze(e,n){if(f("updateCamera",n))return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.updateCamera.apply(e,t)}}function er(e,n){if(f("getPixels",n))return e.getPixels.bind(e)}function rr(e,n){if(f("render",n))return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.render.apply(e,t)}}function tr(e,n){if(f("needsRender",n))return function(){e.needsRender=!0}}function nr(e,n){if(f("preloadPano",n))return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.preloadPano.apply(e,t)}}function or(e,n){if(f("showFloor",n))return function(t){typeof t=="number"?e.model.show(t):e.model.show()}}function ar(e,n){if(f("toggleHelperVisible",n))return function(t){e.helperVisible=t}}function ur(e){return function(n){return u.forwardRef(function(t,r){var o=v(),a=G(),i=Ue(o,e)[0],s=We(o,e),c=s[0],l=s[1],d=Me(o,e),y=d[0],g=d[1],S=je(o,e),b=S[0],C=S[1],_=Te(o,e),z=_[0],J=_[1],P=Ne(o,e),K=P[0],Q=P[1],X=$e(o,e)[0],V=He(o,e),Y=V[0],Z=V[1],O=Be(o,e),ee=O[0],re=O[1],D=Ie(o,e),te=D[0],ne=D[1],x=Ge(o,e),oe=x[0],ae=x[1],W=qe(o,e),ue=W[0],ie=W[1],M=u.useMemo(function(){var m={};return H(m,{setState:ze(o,e),loadWork:Ae(a,e),on:Je(o,e),once:Ke(o,e),off:Qe(o,e),intersectRaycaster:Xe(o,e),project2d:Ye(o,e),updateCamera:Ze(o,e),getPixels:er(o,e),render:rr(o,e),needsRender:tr(o,e),preloadPano:nr(o,e),showFloor:or(o,e),toggleHelperVisible:ar(o,e)}),m},[o,a]),se=u.useMemo(function(){var m=h({},M);return H(m,{unsafe__fiveInstance:i,state:c,currentState:y,currentObserver:b,work:z,model:K,scene:X,cameraDirection:Y,cameraRaycaster:ee,modelReadyState:te,shownFloor:oe,helperVisible:ue}),m},[o,M,l,g,C,J,Q,Z,re,ne,ae,ie]);return u.createElement(n,h({ref:r,$five:se},t))})}}function ir(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return e}function F(e,n){for(var t={},r=n.length,o=-1;++o<r;){var a=n[o];a in e&&(t[a]=e[a])}return t}function sr(e,n){return typeof e=="number"&&typeof n=="number"&&isNaN(e)&&isNaN(n)?!0:e===n}function cr(e,n){for(var t=0;t<e.length;t++)for(var r=0;r<n.length;r++)if(e[t]===n[r])return!0;return!1}var A=(function(){function e(n,t){this.values=n,this.listeners=[],this.onValuesChange=t}return e.prototype.on=function(n,t){var r=this,o=[n,t];return this.listeners.push(o),function(){var a=r.listeners.indexOf(o);a>=0&&r.listeners.splice(a,1)}},e.prototype.getValues=function(n){return F(this.values,n)},e.prototype.setValues=function(n,t){var r=[];for(var o in t)n.indexOf(o)>=0&&!sr(t[o],this.values[o])&&r.push(o);if(r.length!==0){for(var a=h({},this.values),i=0,s=r;i<s.length;i++){var c=s[i];this.values[c]=t[c]}this.onValuesChange&&this.onValuesChange(this.values,a);for(var l=0,d=this.listeners;l<d.length;l++){var y=d[l],g=y[0],S=y[1];if(cr(g,r)){var b=F(a,g),C=F(this.values,g);S(C,b)}}}},e})();function fr(e){var n=u.createContext(null);return{useStore:function(t){var r=u.useContext(n);if(r===null)throw new Error("StoreProvider never found.");var o=u.useRef(!0),a=u.useState(r.getValues(t)),i=a[0],s=a[1],c=w([r],t,!0);u.useLayoutEffect(function(){return o.current?o.current=!1:s(r.getValues(t)),r.on(t,function(d){return s(d)})},c);var l=u.useCallback(function(d){return r.setValues(t,d)},c);return[i,l]},useStoreSetter:function(t){var r=u.useContext(n);if(r===null)throw new Error("StoreProvider never found.");var o=u.useCallback(function(a){return r.setValues(t,a)},w([r],t,!0));return o},watchStore:function(t,r,o){var a=u.useContext(n);if(a===null)throw new Error("StoreProvider never found.");var i=w([a],t,!0);o!==void 0&&(i=i.concat(o)),u.useLayoutEffect(function(){return a.on(t,r)},i)},useStoreAction:function(t){var r=u.useContext(n);if(r===null)throw new Error("StoreProvider never found.");var o=u.useCallback(function(){for(var a=[],i=0;i<arguments.length;i++)a[i]=arguments[i];var s=e[t],c=s[0],l=s.slice(1),d=function(){return r.getValues(l)},y=function(g){return r.setValues(l,g)};return c.apply(void 0,w([d,y],a,!1))},[]);return o},StoreProvider:(function(t){I(r,t);function r(o){var a=t.call(this,o)||this;return a.store=new A(o.initialValue,function(){for(var i,s=[],c=0;c<arguments.length;c++)s[c]=arguments[c];a.props.onValuesChange&&(i=a.props).onValuesChange.apply(i,s)}),a}return r.prototype.shouldComponentUpdate=function(o){return o.children!==this.props.children},r.prototype.render=function(){return u.createElement(n.Provider,{value:this.store},this.props.children)},r})(u.Component)}}exports.FiveCanvas=ye;exports.INJECTION_PROPNAME=xe;exports.Store=A;exports.createFiveFeature=ir;exports.createFiveProvider=pe;exports.createStore=fr;exports.unsafe__useFiveInstance=me;exports.useFiveAction=ke;exports.useFiveCameraDirection=_e;exports.useFiveCameraRaycaster=Le;exports.useFiveCurrentObserver=Fe;exports.useFiveCurrentState=Ce;exports.useFiveEventCallback=Ee;exports.useFiveFloor=Oe;exports.useFiveHelper=De;exports.useFiveModelIntersectRaycaster=Pe;exports.useFiveModelReadyState=Ve;exports.useFiveProject2d=Re;exports.useFiveScene=Se;exports.useFiveSceneEffect=q;exports.useFiveState=be;exports.useFiveWork=we;exports.withFive=ur;
255
+ */Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`react`);c=s(c);let l=require(`three`);l=s(l);let u=require(`@realsee/five`);var d=[],f=[];function p({preserveDrawingBuffer:e=!0,webgl2:t=!1}={}){if(typeof window>`u`)return;let n=null;if(n=t?d.shift():f.shift(),!n){if(t){let t=document.createElement(`canvas`),r=t.getContext(`webgl2`);r?n=new l.WebGLRenderer({preserveDrawingBuffer:e,antialias:!0,alpha:!0,stencil:!0,canvas:t,context:r}):(console.error(`error occurred when getting webgl2 canvas context, mybe webgl2 not support, fallback to webgl.`),n=new l.WebGLRenderer({preserveDrawingBuffer:e,antialias:!1,alpha:!0,stencil:!0}))}else n=new l.WebGLRenderer({preserveDrawingBuffer:e,antialias:!1,alpha:!0,stencil:!0});n.outputEncoding=l.sRGBEncoding}return n.autoClear=!0,n}function m(e){e&&(e.capabilities.isWebGL2?f.indexOf(e)===-1&&f.push(e):d.indexOf(e)===-1&&d.push(e))}var h=c.createContext(null);function g(){let e=c.useContext(h);if(!e)throw Error(`FiveProvider never found.`);return e.five}function _(){let e=c.useContext(h);if(!e)throw Error(`FiveProvider never found.`);return e.loadWork}function v(e,t){let n=Array.isArray(e)?e:[e],r=Array.isArray(t)?t:[t];if(n.length!==r.length)return!1;for(let e=0;e<n.length;e++)if(n[e].workCode!==r[e].workCode)return!1;return!0}function y(e={}){return class extends c.Component{constructor(t){super(t),this.__fiveEventDisposers=[],this.__fiveDisposeTimer=null,this.five=new u.Five(Object.assign(Object.assign({},e),{renderer:void 0})),this.loadWork=this.loadWork.bind(this),this.state={}}loadWork(e,t,n,r=!0){if(this.props.work)throw Error(`props 'works' is set in fiveProvider, if you need modify work internal, use 'initialWork' instead.`);return this.five.load(e,t,n,r)}shouldComponentUpdate(e){return this.five.renderer&&this.five&&e.work&&!v(e.work,this.five.works)&&this.five.load(e.work,e.initialState,e.initialOptions),!0}componentDidMount(){var t;clearTimeout(this.__fiveDisposeTimer),this.__fiveDisposeTimer=null;let n;if(typeof window<`u`){n=p({webgl2:e==null?void 0:e.webgl2,preserveDrawingBuffer:e==null?void 0:e.preserveDrawingBuffer});let t=(0,u.getViewportScale)()===1?window.devicePixelRatio:1;n==null||n.setPixelRatio(t)}this.five.renderer=n,this.setState({renderer:n}),this.__fiveEventDisposers.push(this.five.on(`load`,()=>{this.props.onWorksChange&&this.props.onWorksChange(this.five.works)})),this.__fiveEventDisposers.push(this.five.on(`stateChange`,(e,t)=>{this.props.onStateChange&&this.props.onStateChange(e,t)})),this.__fiveEventDisposers.push(this.five.on(`currentStateChange`,(e,t)=>{this.props.onCurrentStateChange&&this.props.onCurrentStateChange(e,t)})),this.__fiveEventDisposers.push(this.five.on(`error`,e=>{this.props.onError?this.props.onError(e):console.warn(e.message)}));let r=this.props.work||this.props.initialWork;r&&this.five.load(r,this.props.initialState,this.props.initialOptions,(t=this.props.initialUserAction)==null?!0:t)}componentWillUnmount(){var e;(e=this.five.controller)==null||e.destroy();let t=this.five.renderer;this.five.renderer=void 0,m(t),this.setState({renderer:void 0}),this.__fiveDisposeTimer=setTimeout(()=>{this.__fiveDisposeTimer=null,this.five.dispose()},1e3)}render(){let e=this.five,t=this.loadWork,n=this.state.renderer;return c.createElement(h.Provider,{value:{renderer:n,five:e,loadWork:t}},this.props.children)}}}var b=typeof window<`u`?c.useLayoutEffect:c.useEffect,x={display:`inline-block`,overflow:`hidden`},S=({width:e,height:t})=>{let n=g(),r=c.createRef(),i=Object.assign({width:e,height:t},x);return b(()=>{let i=r.current;if(!i||!n.renderer)return;let a=n.renderer.domElement;if(a.parentNode!==null&&a.parentNode!==i)throw Error(`There are more than 2 fiveCanvas in this context.`);return a.parentNode!==i&&i.appendChild(a),n.camera.aspect=e/t,n.camera.updateProjectionMatrix(),n.renderer.setSize(e,t),n.refresh({width:e,height:t}),n.needsRender=!0,()=>{a.parentNode===i&&i.removeChild(a)}},[n,n.renderer,e,t,r.current]),c.createElement(`div`,{ref:r,style:i})},C=({children:e})=>{let t=g(),n=c.useRef(null);return c.useEffect(()=>{let e=n.current;if(!e||!t.renderer)return;let r=t.renderer.domElement;e.appendChild(r);let i=()=>{var n;let{width:r,height:i}=e.getBoundingClientRect();r===0||i===0||(t.camera.aspect=r/i,t.camera.updateProjectionMatrix(),(n=t.renderer)==null||n.setSize(r,i),t.refresh({width:r,height:i}),t.needsRender=!0)},a=new ResizeObserver(i);return a.observe(e),i(),()=>{r.parentNode===e&&e.removeChild(r),a.unobserve(e),a.disconnect()}},[]),c.createElement(`div`,{ref:n,style:{position:`absolute`,top:0,left:0,right:0,bottom:0}},e)},w=({renderChildren:e,load:t,children:n,fallback:r})=>{let i=g(),[a,o]=c.useState(!!e),[s,l]=c.useState(!1);return c.useEffect(()=>{i.getElement()&&(o(!0),t&&t(i).then(e=>{i.load(...e)}))},[i]),c.useEffect(()=>{let e=()=>l(!0);return i.on(`works.load`,e),i.works&&i.works.length>0&&l(!0),()=>{i.off(`works.load`,e)}},[i]),!s&&!e||!a?r==null?null:c.createElement(c.Fragment,null,r):c.createElement(c.Fragment,null,n)},T={position:`relative`,width:`100vw`,height:`100vh`,overflow:`hidden`},E={backgroundAlpha:1,backgroundColor:0,imageOptions:{size:512},textureOptions:{autoResize:!1},preserveDrawingBuffer:!0,webgl2:!0},D=({fiveInitArgs:e=E,renderChildren:t,plugins:n,load:r,children:i,fullscreen:a,autoCanvas:o=!0,fallback:s})=>{let[l]=c.useState(()=>y(Object.assign(Object.assign({},e),{plugins:n}))),u=[];o&&u.push(c.createElement(C,{key:`auto-canvas`})),i&&u.push(i);let d=c.createElement(l,null,c.createElement(w,{load:r,renderChildren:t,fallback:s},...u));return a?c.createElement(`div`,{style:T},d):d};function O(){return g()}function k(e,t){let n=g(),r=[n];t!==void 0&&(r=r.concat(t)),c.useLayoutEffect(()=>e(n.scene),r)}var A=k;function j(){let e=g(),t=_(),[n,r]=c.useState(()=>e.works);return c.useLayoutEffect(()=>e.on(`load`,()=>r(e.works)),[e]),[n,t]}function M(e){return Object.assign({},e.state)}function N(){let e=g(),[t,n]=c.useState(()=>M(e)),r=c.useCallback((t,n=!1,r=!0)=>{let i=typeof t==`function`?t(e.getCurrentState()):t;e.setState(i,n,r)},[e]);return c.useLayoutEffect(()=>e.on(`stateChange`,()=>n(M(e))),[e]),[t,r]}function ee(){let e=g(),[t,n]=c.useState(()=>e.getCurrentState()),r=c.useCallback((t,n=!1,r=!0)=>{let i=typeof t==`function`?t(e.getCurrentState()):t;e.setState(i,n,r)},[e]);return c.useLayoutEffect(()=>e.on(`currentStateChange`,()=>n(e.getCurrentState())),[e]),[t,r]}function te(){let e=g(),[t,n]=c.useState(()=>e.getCurrentState());return c.useLayoutEffect(()=>e.on(`currentStateChange`,()=>n(e.getCurrentState())),[e]),e.works.getObserver(t)}function P(e,t,n){let r=g(),i=[r,e];n!==void 0&&(i=i.concat(n)),c.useLayoutEffect(()=>r.on(e,t),i)}function F(){let e=g();return{updateCamera:c.useCallback((t,n)=>e.updateCamera(t,n),[e]),getPixels:c.useCallback(e.getPixels.bind(e),[e]),render:c.useCallback(t=>e.render(t),[e]),needsRender:c.useCallback(()=>e.needsRender=!0,[e]),preloadPano:c.useCallback((t,n)=>e.preloadPano(t,n),[e])}}function I(){let e=g(),[t,n]=c.useState(()=>Symbol());return c.useLayoutEffect(()=>e.on(`cameraUpdate`,()=>n(Symbol())),[e]),c.useCallback((t,n)=>e.project2d(t,n),[e])}function L(e){let t=e.camera.getWorldDirection(new l.Vector3);return new l.Raycaster(e.camera.position,t)}function ne(){let e=g(),[t,n]=c.useState(()=>L(e));return c.useLayoutEffect(()=>e.on(`cameraUpdate`,()=>n(L(e))),[e]),t}function R(e){return e.camera.getWorldDirection(new l.Vector3)}function re(){let e=g(),[t,n]=c.useState(()=>R(e));return c.useLayoutEffect(()=>e.on(`cameraUpdate`,()=>n(R(e))),[e]),t}function ie(){let e=g();return c.useCallback(t=>e.model.intersectRaycaster(t),[e])}function z(e){return e.model.empty?`Empty`:`Loaded`}function ae(){let e=g(),[t,n]=c.useState(()=>z(e));return c.useLayoutEffect(()=>e.on(`modelLoaded`,()=>n(z(e))),[e]),t}var B=new Map,V=new Map;function H(e){let t=V.get(e);t&&t.forEach(e=>e())}function U(e,t){return V.has(e)||V.set(e,new Set),V.get(e).add(t),()=>{let n=V.get(e);n&&(n.delete(t),n.size===0&&V.delete(e))}}function W(e,t){return`${e}:${t}`}function G(e,t){var n;return(n=B.get(W(e,t)))==null?void 0:n.plugin}function K(e,t,n){B.set(W(e,t),{plugin:n}),H(e)}function q(e,t){var n,r;let i=g(),a=(r=(n=i.work)==null?void 0:n.workCode)==null?``:r,o=W(a,e),s=(0,c.useRef)(i),[,l]=(0,c.useState)(0);return(0,c.useEffect)(()=>{if(a)return U(a,()=>l(e=>e+1))},[a]),(0,c.useEffect)(()=>{if(s.current===i)return;s.current=i;let n=B.get(o);if(!n)return;let r=n.plugin;if(t!=null&&t.reCreateOnFiveChange&&t.createPlugin){typeof r.dispose==`function`&&r.dispose();let n=t.createPlugin(i);B.set(o,{plugin:n}),i.plugins[e]=n,H(a)}else r&&(typeof r.updateFive==`function`?r.updateFive(i):`five`in r&&(r.five=i))},[i]),(0,c.useCallback)(()=>{let n=B.get(o);if(n)return i.plugins[e]=n.plugin,n.plugin;let r=i.plugins[e];if(r)return B.set(o,{plugin:r}),r;if(t!=null&&t.createPlugin){let n=t.createPlugin(i);return B.set(o,{plugin:n}),i.plugins[e]=n,H(a),n}},[o,i,t==null?void 0:t.createPlugin])()}function J(){let e=g(),[t,n]=c.useState(e.model.shownFloor),[r,i]=c.useState(e.model.floorLength),a=c.useCallback(t=>{typeof t==`number`?e.model.show(t):e.model.show()},[e]);return c.useLayoutEffect(()=>{let t=[];return t.push(e.on(`modelShownFloorChange`,()=>n(e.model.shownFloor))),t.push(e.on(`modelLoaded`,()=>i(e.model.floorLength))),()=>{let e;for(;e=t.shift();)e()}},[e]),[t,r,a]}function oe(){let e=g(),[t,n]=c.useState(e.helperVisible),r=c.useCallback(t=>{e.helperVisible=t},[e]);return c.useLayoutEffect(()=>e.on(`helpersVisibleChange`,e=>n(e)),[e]),[t,r]}var se=`$five`;function Y(e,t){return t.indexOf(e)>=0}function X(e,t){for(let n of Object.keys(t))t[n]!==void 0&&(e[n]=t[n])}function ce(e,t){let n=Y(`state`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return Object.assign({},e.state)},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`stateChange`,()=>i(Symbol()))},[e]),[a,r]}function le(e,t){let n=Y(`currentState`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.getCurrentState()},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`currentStateChange`,()=>i(Symbol()))},[e]),[a,r]}function ue(e,t){let n=Y(`currentObserver`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.getCurrentState()},[e,r]);c.useLayoutEffect(()=>{if(n)return e.on(`currentStateChange`,()=>i(Symbol()))},[e]);let o;return a&&(o=e.works.getObserver(a)),[o,r]}function de(e,t){return[Y(`unsafe__fiveInstance`,t)?e:void 0]}function fe(e,t){let n=Y(`works`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.works},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`load`,()=>i(Symbol()))},[e]),[a,r]}function pe(e,t){let n=Y(`model`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.model},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`modelLoaded`,()=>i(Symbol()))},[e]),[a,r]}function me(e,t){return[Y(`scene`,t)?e.scene:void 0]}function he(e,t){let n=Y(`cameraDirection`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.camera.getWorldDirection(new l.Vector3)},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`cameraUpdate`,()=>i(Symbol()))},[e]),[a,r]}function ge(e,t){let n=Y(`cameraRaycaster`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n){let t=e.camera.getWorldDirection(new l.Vector3);return new l.Raycaster(e.camera.position,t)}},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`cameraUpdate`,()=>i(Symbol()))},[e]),[a,r]}function Z(e,t){let n=Y(`modelReadyState`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.model.empty?`Empty`:`Loaded`},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`modelLoaded`,()=>i(Symbol()))},[e]),[a,r]}function _e(e,t){let n=Y(`shownFloor`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.model.shownFloor},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`modelShownFloorChange`,()=>i(Symbol()))},[e]),[a,r]}function ve(e,t){let n=Y(`helperVisible`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.helperVisible},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`helpersVisibleChange`,()=>i(Symbol()))},[e]),[a,r]}function ye(e,t){if(Y(`loadWork`,t))return e}function be(e,t){if(Y(`setState`,t))return(...t)=>e.setState(...t)}function xe(e,t){if(Y(`on`,t))return(...t)=>e.on(...t)}function Se(e,t){if(Y(`on`,t))return(...t)=>e.once(...t)}function Ce(e,t){if(Y(`off`,t))return(...t)=>e.off(...t)}function we(e,t){if(Y(`intersectRaycaster`,t))return(...t)=>e.model.intersectRaycaster(...t)}function Te(e,t){if(Y(`project2d`,t))return(...t)=>e.project2d(...t)}function Ee(e,t){if(Y(`updateCamera`,t))return(...t)=>e.updateCamera(...t)}function De(e,t){if(Y(`getPixels`,t))return e.getPixels.bind(e)}function Oe(e,t){if(Y(`render`,t))return(...t)=>e.render(...t)}function ke(e,t){if(Y(`needsRender`,t))return()=>{e.needsRender=!0}}function Ae(e,t){if(Y(`preloadPano`,t))return(...t)=>e.preloadPano(...t)}function je(e,t){if(Y(`showFloor`,t))return t=>{typeof t==`number`?e.model.show(t):e.model.show()}}function Me(e,t){if(Y(`toggleHelperVisible`,t))return t=>{e.helperVisible=t}}function Ne(e){return function(t){return c.forwardRef((n,r)=>{let i=g(),a=_(),[o]=de(i,e),[s,l]=ce(i,e),[u,d]=le(i,e),[f,p]=ue(i,e),[m,h]=fe(i,e),[v,y]=pe(i,e),[b]=me(i,e),[x,S]=he(i,e),[C,w]=ge(i,e),[T,E]=Z(i,e),[D,O]=_e(i,e),[k,A]=ve(i,e),j=c.useMemo(()=>{let t={};return X(t,{setState:be(i,e),loadWork:ye(a,e),on:xe(i,e),once:Se(i,e),off:Ce(i,e),intersectRaycaster:we(i,e),project2d:Te(i,e),updateCamera:Ee(i,e),getPixels:De(i,e),render:Oe(i,e),needsRender:ke(i,e),preloadPano:Ae(i,e),showFloor:je(i,e),toggleHelperVisible:Me(i,e)}),t},[i,a]),M=c.useMemo(()=>{let e=Object.assign({},j);return X(e,{unsafe__fiveInstance:o,state:s,currentState:u,currentObserver:f,work:m,model:v,scene:b,cameraDirection:x,cameraRaycaster:C,modelReadyState:T,shownFloor:D,helperVisible:k}),e},[i,j,l,d,p,h,y,S,w,E,O,A]);return c.createElement(t,Object.assign({ref:r,$five:M},n))})}}function Pe(...e){return e}function Q(e,t){let n={},r=t.length,i=-1;for(;++i<r;){let r=t[i];r in e&&(n[r]=e[r])}return n}function Fe(e,t){return typeof e==`number`&&typeof t==`number`&&isNaN(e)&&isNaN(t)?!0:e===t}function Ie(e,t){for(let n=0;n<e.length;n++)for(let r=0;r<t.length;r++)if(e[n]===t[r])return!0;return!1}var $=class{constructor(e,t){this.values=e,this.listeners=[],this.onValuesChange=t}on(e,t){let n=[e,t];return this.listeners.push(n),()=>{let e=this.listeners.indexOf(n);e>=0&&this.listeners.splice(e,1)}}getValues(e){return Q(this.values,e)}setValues(e,t){let n=[];for(let r in t)e.indexOf(r)>=0&&!Fe(t[r],this.values[r])&&n.push(r);if(n.length===0)return;let r=Object.assign({},this.values);for(let e of n)this.values[e]=t[e];this.onValuesChange&&this.onValuesChange(this.values,r);for(let[e,t]of this.listeners){if(!Ie(e,n))continue;let i=Q(r,e);t(Q(this.values,e),i)}}};function Le(e){let t=c.createContext(null);return{useStore(e){let n=c.useContext(t);if(n===null)throw Error(`StoreProvider never found.`);let r=c.useRef(!0),[i,a]=c.useState(n.getValues(e)),o=[n,...e];return c.useLayoutEffect(()=>(r.current?r.current=!1:a(n.getValues(e)),n.on(e,e=>a(e))),o),[i,c.useCallback(t=>n.setValues(e,t),o)]},useStoreSetter(e){let n=c.useContext(t);if(n===null)throw Error(`StoreProvider never found.`);return c.useCallback(t=>n.setValues(e,t),[n,...e])},watchStore(e,n,r){let i=c.useContext(t);if(i===null)throw Error(`StoreProvider never found.`);let a=[i,...e];r!==void 0&&(a=a.concat(r)),c.useLayoutEffect(()=>i.on(e,n),a)},useStoreAction(n){let r=c.useContext(t);if(r===null)throw Error(`StoreProvider never found.`);return c.useCallback((...t)=>{let[i,...a]=e[n];return i(()=>r.getValues(a),e=>r.setValues(a,e),...t)},[])},StoreProvider:class extends c.Component{constructor(e){super(e),this.store=new $(e.initialValue,(...e)=>{this.props.onValuesChange&&this.props.onValuesChange(...e)})}shouldComponentUpdate(e){return e.children!==this.props.children}render(){return c.createElement(t.Provider,{value:this.store},this.props.children)}}}}exports.FiveApp=D,exports.FiveAutoCanvas=C,exports.FiveCanvas=S,exports.INJECTION_PROPNAME=se,exports.Store=$,exports.createFiveFeature=Pe,exports.createFiveProvider=y,exports.createStore=Le,exports.getPlugin=G,exports.setPlugin=K,exports.unsafe__useFiveInstance=O,exports.useFiveAction=F,exports.useFiveCameraDirection=re,exports.useFiveCameraRaycaster=ne,exports.useFiveCurrentObserver=te,exports.useFiveCurrentState=ee,exports.useFiveEventCallback=P,exports.useFiveFloor=J,exports.useFiveHelper=oe,exports.useFiveModelIntersectRaycaster=ie,exports.useFiveModelReadyState=ae,exports.useFivePlugin=q,exports.useFiveProject2d=I,exports.useFiveScene=A,exports.useFiveSceneEffect=k,exports.useFiveState=N,exports.useFiveWork=j,exports.withFive=Ne;