@realsee/five-webgpu 1.0.0-alpha.5 → 1.0.0-alpha.7

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 (378) hide show
  1. package/ai_guides/api.md +9 -8
  2. package/ai_guides/features/camera-animation.md +1 -1
  3. package/ai_guides/features/event.md +0 -1
  4. package/ai_guides/features/five.md +78 -9
  5. package/ai_guides/features/gesture.md +1 -1
  6. package/ai_guides/features/load-external-model.md +6 -6
  7. package/ai_guides/features/load-progress.md +2 -2
  8. package/ai_guides/features/material.md +35 -8
  9. package/ai_guides/features/mode.md +26 -29
  10. package/ai_guides/features/model.md +1 -1
  11. package/ai_guides/features/state.md +2 -2
  12. package/ai_guides/features/ultra-hdr.md +41 -32
  13. package/ai_guides/quick-start.md +2 -2
  14. package/ai_guides/release_notes/6.8.md +2 -2
  15. package/ai_guides/support.md +0 -4
  16. package/docs/assets/hierarchy.js +1 -1
  17. package/docs/assets/navigation.js +1 -1
  18. package/docs/assets/search.js +1 -1
  19. package/docs/classes/index.AdaptiveLuminancePass.html +1 -1
  20. package/docs/classes/index.BoundingMesh.html +1 -1
  21. package/docs/classes/index.Camera.html +1 -1
  22. package/docs/classes/index.EffectComposer.html +1 -1
  23. package/docs/classes/index.EyeDomeLightingPass.html +1 -1
  24. package/docs/classes/index.Five.html +69 -67
  25. package/docs/classes/index.FivePass.html +1 -1
  26. package/docs/classes/index.FlowingFireworks3DPass.html +1 -1
  27. package/docs/classes/index.FlowingLight2DPass.html +1 -1
  28. package/docs/classes/index.FlowingLight3DPass.html +2 -2
  29. package/docs/classes/index.GaussianBlurPass.html +1 -1
  30. package/docs/classes/index.InternalWebGPURenderer.html +8 -5
  31. package/docs/classes/index.Model.html +1 -1
  32. package/docs/classes/index.ModelScene.html +1 -1
  33. package/docs/classes/index.NetworkSubscribe.html +1 -1
  34. package/docs/classes/index.PBMCustomNode.html +8 -8
  35. package/docs/classes/index.PBMGaussianSplattingNodeMaterial.html +8 -6
  36. package/docs/classes/index.PBMGaussianSplattingObject.html +10 -4
  37. package/docs/classes/index.PBMGaussianSplattingRenderMesh.html +26 -15
  38. package/docs/classes/index.PBMGroup.html +1 -1
  39. package/docs/classes/index.PBMMesh.html +1 -1
  40. package/docs/classes/index.PBMMeshBasicMaterial.html +13 -8
  41. package/docs/classes/index.PBMMeshBasicNodeMaterial.html +15 -10
  42. package/docs/classes/index.PBMMeshPanoOnlyMaterial.html +13 -8
  43. package/docs/classes/index.PBMMeshPanoOnlyNodeMaterial.html +13 -8
  44. package/docs/classes/index.PBMMeshPhongMaterial.html +13 -8
  45. package/docs/classes/index.PBMMeshPhongNodeMaterial.html +15 -10
  46. package/docs/classes/index.PBMMeshPhysicalMaterial.html +13 -8
  47. package/docs/classes/index.PBMMeshPhysicalNodeMaterial.html +15 -10
  48. package/docs/classes/index.PBMPanoFilter.html +8 -8
  49. package/docs/classes/index.PBMPointCloud.html +6 -7
  50. package/docs/classes/index.PBMPointCloudMaterial.html +83 -0
  51. package/docs/classes/index.PBMSkinnedMesh.html +1 -1
  52. package/docs/classes/index.PBMUpdateable.html +1 -1
  53. package/docs/classes/index.PanoCircleMesh.html +1 -1
  54. package/docs/classes/index.PanoCircleMeshCustom.html +5 -5
  55. package/docs/classes/index.PanoCircleMeshSolid.html +1 -1
  56. package/docs/classes/index.Parameter.html +57 -56
  57. package/docs/classes/index.Scene.html +1 -1
  58. package/docs/classes/index.Subscribe.html +1 -1
  59. package/docs/classes/index.TextureLoader.html +4 -1
  60. package/docs/classes/index.Tile3D.html +23 -21
  61. package/docs/classes/index.TileNode.html +1 -1
  62. package/docs/classes/index.Tileset.html +4 -4
  63. package/docs/classes/index.TrajectoryNode.html +3 -3
  64. package/docs/classes/index.Work.html +20 -18
  65. package/docs/classes/index.WorkResolvedObserver.html +22 -22
  66. package/docs/classes/index.XRButton.html +3 -0
  67. package/docs/documents/api.html +11 -10
  68. package/docs/documents/features_camera-animation.html +1 -1
  69. package/docs/documents/features_event.html +0 -1
  70. package/docs/documents/features_five.html +51 -9
  71. package/docs/documents/features_gesture.html +1 -1
  72. package/docs/documents/features_load-external-model.html +6 -6
  73. package/docs/documents/features_load-progress.html +1 -1
  74. package/docs/documents/features_material.html +20 -9
  75. package/docs/documents/features_mode.html +28 -13
  76. package/docs/documents/features_model.html +1 -1
  77. package/docs/documents/features_state.html +1 -1
  78. package/docs/documents/features_ultra-hdr.html +50 -44
  79. package/docs/documents/quick-start.html +1 -1
  80. package/docs/documents/release_notes_6.8.html +2 -2
  81. package/docs/documents/support.html +1 -3
  82. package/docs/functions/index.customNodesCacheKey.html +1 -1
  83. package/docs/functions/index.parseWork.html +1 -1
  84. package/docs/functions/index.workToJson.html +1 -1
  85. package/docs/hierarchy.html +1 -1
  86. package/docs/interfaces/index.AddableObject.html +1 -1
  87. package/docs/interfaces/index.AjaxOptions.html +1 -1
  88. package/docs/interfaces/index.BaseEvent.html +2 -2
  89. package/docs/interfaces/index.Clock.html +24 -0
  90. package/docs/interfaces/index.DeviceProfile.html +8 -0
  91. package/docs/interfaces/index.EventCallback.html +49 -47
  92. package/docs/interfaces/index.FiveInitArgs.html +65 -41
  93. package/docs/interfaces/index.GainmapCfgData.html +15 -0
  94. package/docs/interfaces/index.GestureEvent.html +2 -2
  95. package/docs/interfaces/index.IPBMMaterial.html +12 -7
  96. package/docs/interfaces/index.ImageOptions.html +1 -1
  97. package/docs/interfaces/index.IntersectEvent.html +2 -2
  98. package/docs/interfaces/index.IntersectMesh.html +1 -1
  99. package/docs/interfaces/index.IntersectMeshInterface.html +1 -1
  100. package/docs/interfaces/index.Intersection.html +1 -1
  101. package/docs/interfaces/index.LoosePanoWork.html +2 -2
  102. package/docs/interfaces/index.LooseWork.html +2 -2
  103. package/docs/interfaces/index.LooseWorkInitial.html +2 -2
  104. package/docs/interfaces/index.LooseWorkModel.html +2 -2
  105. package/docs/interfaces/index.LooseWorkObserver.html +2 -2
  106. package/docs/interfaces/index.LooseWorkPanorama.html +4 -3
  107. package/docs/interfaces/index.LooseWorkWithExtrinsics.html +15 -9
  108. package/docs/interfaces/index.ModeChangeEvent.html +2 -2
  109. package/docs/interfaces/index.ModelControllerCustomInitArgs.html +1 -1
  110. package/docs/interfaces/index.ModelEvent.html +2 -2
  111. package/docs/interfaces/index.ModelSceneEvent.html +2 -2
  112. package/docs/interfaces/index.ModelTileEvent.html +2 -2
  113. package/docs/interfaces/index.MovePanoOptions.html +1 -1
  114. package/docs/interfaces/index.NetworkAbortError.html +1 -1
  115. package/docs/interfaces/index.NetworkFirbiddenError.html +1 -1
  116. package/docs/interfaces/index.NetworkOptions.html +1 -1
  117. package/docs/interfaces/index.NetworkProxyError.html +1 -1
  118. package/docs/interfaces/index.NetworkResourceEvent.html +2 -2
  119. package/docs/interfaces/index.NetworkResponseError.html +1 -1
  120. package/docs/interfaces/index.NetworkTimeoutError.html +1 -1
  121. package/docs/interfaces/index.ObjectEvent.html +2 -2
  122. package/docs/interfaces/index.PBMClipperParameter.html +2 -2
  123. package/docs/interfaces/index.PBMCustomNodeContext.html +60 -12
  124. package/docs/interfaces/index.PBMCustomNodeOptions.html +4 -4
  125. package/docs/interfaces/index.PBMCustomNodePanoContext.html +13 -6
  126. package/docs/interfaces/index.PBMCustomNodeSlots.html +6 -6
  127. package/docs/interfaces/index.PBMGaussianSplattingNodeMaterialOptions.html +4 -0
  128. package/docs/interfaces/index.PBMPanoDepth.html +5 -5
  129. package/docs/interfaces/index.PBMPanoFilterValue.html +2 -2
  130. package/docs/interfaces/index.PBMPanoGainmap.html +6 -0
  131. package/docs/interfaces/index.PBMPanoPicture.html +9 -8
  132. package/docs/interfaces/index.PBMRefinedScreen.html +2 -2
  133. package/docs/interfaces/index.PanoCircleMeshCustomOptions.html +2 -2
  134. package/docs/interfaces/index.PanoCircleMeshInterface.html +1 -1
  135. package/docs/interfaces/index.PanoEvent.html +2 -2
  136. package/docs/interfaces/index.PanoPrepareEvent.html +15 -0
  137. package/docs/interfaces/index.PanoTextureEvent.html +2 -2
  138. package/docs/interfaces/index.PanoramaControllerCustomInitArgs.html +9 -9
  139. package/docs/interfaces/index.PanoramaLikeControllerCustomInitArgs.html +1 -1
  140. package/docs/interfaces/index.ParameterMaterialValue.html +42 -41
  141. package/docs/interfaces/index.ParameterTilesetValue.html +15 -15
  142. package/docs/interfaces/index.ParameterValue.html +56 -55
  143. package/docs/interfaces/index.Pose.html +1 -1
  144. package/docs/interfaces/index.RenderEvent.html +2 -2
  145. package/docs/interfaces/index.ResolvedParameterValue.html +56 -55
  146. package/docs/interfaces/index.State.html +1 -1
  147. package/docs/interfaces/index.StateEvent.html +2 -2
  148. package/docs/interfaces/index.TextureOptions.html +1 -1
  149. package/docs/interfaces/index.TilesetOptions.html +7 -2
  150. package/docs/interfaces/index.TopviewControllerCustomInitArgs.html +1 -1
  151. package/docs/interfaces/index.VRPanoramaControllerCustomInitArgs.html +37 -0
  152. package/docs/interfaces/index.ViewLayer.html +23 -21
  153. package/docs/interfaces/index.WorkCubeHdrGainmapImage.html +10 -0
  154. package/docs/interfaces/index.WorkCubeImage.html +5 -9
  155. package/docs/interfaces/index.WorkImage.html +8 -12
  156. package/docs/interfaces/index.WorkInitial.html +8 -8
  157. package/docs/interfaces/index.WorkModel.html +8 -8
  158. package/docs/interfaces/index.WorkModelLayer.html +6 -6
  159. package/docs/interfaces/index.WorkObserver.html +23 -23
  160. package/docs/interfaces/index.WorkPanoramaJson.html +3 -2
  161. package/docs/interfaces/index.WorkTile.html +8 -12
  162. package/docs/interfaces/index.WorksEvent.html +2 -2
  163. package/docs/interfaces/index.XRControllerEvent.html +2 -2
  164. package/docs/interfaces/index.XRGestureEvent.html +2 -2
  165. package/docs/interfaces/index.XRPanoramaControllerCustomInitArgs.html +52 -0
  166. package/docs/interfaces/index.XRSessionEvent.html +2 -2
  167. package/docs/modules/index.html +1 -1
  168. package/docs/types/index.ControllerCustomInitTypes.html +4 -2
  169. package/docs/types/index.ControllerEventTypes.html +25 -23
  170. package/docs/types/index.DeviceProfileOverride.html +5 -0
  171. package/docs/types/index.EventTypes.html +26 -26
  172. package/docs/types/index.FlowingLightLineInput.html +11 -0
  173. package/docs/types/index.Mode.html +6 -3
  174. package/docs/types/index.OutputTextureDataType.html +1 -1
  175. package/docs/types/index.PBMCustomNodeTargetType.html +1 -1
  176. package/docs/types/index.ParseOptions.html +14 -8
  177. package/docs/types/index.XRMachineType.html +7 -0
  178. package/docs/variables/index.GSPLAT_PIPELINE_AUTO.html +2 -0
  179. package/docs/variables/index.GSPLAT_PIPELINE_RASTER_CPU_SORT.html +2 -0
  180. package/docs/variables/index.GSPLAT_PIPELINE_RASTER_GPU_SORT.html +2 -0
  181. package/docs/variables/index.PBMVertexMarkFlag.html +4 -0
  182. package/docs/variables/index.PROXY_CONTROLLER_EVENT_NAMES.html +1 -1
  183. package/docs/variables/index.controllersDefaultInitArgs.html +1 -1
  184. package/five/application/controllers.d.ts +8 -0
  185. package/five/application/events.d.ts +1 -1
  186. package/five/application/five.d.ts +6 -1
  187. package/five/application/fiveInitArgs.d.ts +32 -1
  188. package/five/application/mode.d.ts +8 -1
  189. package/five/cardboard/helper.d.ts +2 -0
  190. package/five/cardboard/index.d.ts +13 -0
  191. package/five/cardboard/sensor.d.ts +158 -0
  192. package/five/controllers/base.d.ts +3 -0
  193. package/five/controllers/events.d.ts +5 -3
  194. package/five/controllers/panorama.d.ts +2 -2
  195. package/five/controllers/vrPanorama.d.ts +56 -0
  196. package/five/controllers/xrPanorama.d.ts +506 -0
  197. package/five/core/internalWebGPURenderer.d.ts +7 -1
  198. package/five/core/panoVideo.d.ts +4 -1
  199. package/five/core/tiling.d.ts +25 -11
  200. package/five/core/webglAsyncReadFix.d.ts +25 -0
  201. package/five/gaussian-splatting/gpu-sort/prefixSumKernel.d.ts +65 -0
  202. package/five/gaussian-splatting/gpu-sort/radixSortModule.d.ts +128 -0
  203. package/five/gaussian-splatting/gpu-sort/shaders/prefixSum.d.ts +2 -0
  204. package/five/gaussian-splatting/gpu-sort/shaders/radixHistogram.d.ts +2 -0
  205. package/five/gaussian-splatting/gpu-sort/shaders/radixReorder.d.ts +2 -0
  206. package/five/gaussian-splatting/gpu-sort/shaders/sortKeygen.d.ts +2 -0
  207. package/five/gaussian-splatting/gpu-sort/sortAdapter.d.ts +234 -0
  208. package/five/gaussian-splatting/pipelines/cpuSortPipeline.d.ts +159 -0
  209. package/five/gaussian-splatting/pipelines/gpuSortPipeline.d.ts +98 -0
  210. package/five/gaussian-splatting/pipelines/gsplatPipeline.d.ts +104 -0
  211. package/five/gaussian-splatting/pipelines/pipelineMode.d.ts +42 -0
  212. package/five/gaussian-splatting/pipelines/sortThrottle.d.ts +45 -0
  213. package/five/index.d.ts +8 -2
  214. package/five/index.js +272 -269
  215. package/five/index.mjs +8389 -4487
  216. package/five/meshes/panoCircleMeshCustom.d.ts +1 -0
  217. package/five/model/index.d.ts +3 -2
  218. package/five/model/materials/pbmGaussianSplattingNodeMaterial.d.ts +4 -0
  219. package/five/model/materials/pbmMaterial.d.ts +126 -19
  220. package/five/model/materials/pbmMeshMaterial.d.ts +0 -9
  221. package/five/model/materials/pbmPointCloudNodeMaterial.d.ts +1 -1
  222. package/five/model/materials/tsl/defines.d.ts +6 -1
  223. package/five/model/materials/tsl/outputBuilder.d.ts +1 -12
  224. package/five/model/materials/tsl/panoColor.d.ts +8 -2
  225. package/five/model/materials/tsl/utils.d.ts +13 -0
  226. package/five/model/objects/pbmGaussianSplattingObject.d.ts +9 -0
  227. package/five/model/objects/pbmGaussianSplattingRenderMesh.d.ts +67 -101
  228. package/five/model/objects/pbmPointCloud.d.ts +0 -1
  229. package/five/model/objects/pbmPointCloudObject.d.ts +1 -1
  230. package/five/model/parameter.d.ts +5 -4
  231. package/five/model/tile3d/index.d.ts +2 -0
  232. package/five/model/tile3d/tileset.d.ts +5 -0
  233. package/five/model/tile3d/trajectory-content.d.ts +53 -0
  234. package/five/renderer/index.d.ts +1 -1
  235. package/five/renderer/postprocessing/index.d.ts +1 -1
  236. package/five/texture/loader.d.ts +6 -0
  237. package/five/types/cube.d.ts +0 -1
  238. package/five/utils/detector.d.ts +11 -1
  239. package/five/utils/error.d.ts +1 -0
  240. package/five/utils/event.d.ts +26 -3
  241. package/five/utils/gainmap-data.d.ts +23 -0
  242. package/five/webxr/XRControllerModelFactory.d.ts +55 -0
  243. package/five/webxr/buttonStateMachine.d.ts +31 -0
  244. package/five/webxr/deviceProfile.d.ts +70 -0
  245. package/five/webxr/inputSourceTracker.d.ts +59 -0
  246. package/five/webxr/referenceSpace.d.ts +60 -0
  247. package/five/webxr/renderTargetBridge.d.ts +45 -0
  248. package/five/webxr/xrButton.d.ts +4 -0
  249. package/five/webxr/xrManager.d.ts +174 -0
  250. package/five/work/index.d.ts +1 -1
  251. package/five/work/looseWorkType.d.ts +2 -1
  252. package/five/work/work.d.ts +30 -7
  253. package/five/work/workJsonType.d.ts +2 -1
  254. package/gltf-loader/gltf-object.d.ts +17 -0
  255. package/gltf-loader/index.d.ts +45 -0
  256. package/gltf-loader/index.js +255 -0
  257. package/gltf-loader/index.mjs +302 -0
  258. package/line/circle_png.d.ts +1 -0
  259. package/line/index.d.ts +49 -0
  260. package/line/index.js +255 -0
  261. package/line/index.mjs +340 -0
  262. package/package.json +30 -5
  263. package/plugins/BackgroundPlugin/Controller.d.ts +20 -0
  264. package/plugins/BackgroundPlugin/index.d.ts +5 -0
  265. package/plugins/BackgroundPlugin/typings.d.ts +44 -0
  266. package/plugins/CSS2DPlugin/Controller.d.ts +59 -0
  267. package/plugins/CSS2DPlugin/index.d.ts +5 -0
  268. package/plugins/CSS2DPlugin/typing.d.ts +31 -0
  269. package/plugins/CSS3DPlugin/Controller.d.ts +64 -0
  270. package/plugins/CSS3DPlugin/index.d.ts +5 -0
  271. package/plugins/CSS3DPlugin/typing.d.ts +33 -0
  272. package/plugins/FloorplanPlugin/Controller.d.ts +100 -0
  273. package/plugins/FloorplanPlugin/index.d.ts +6 -0
  274. package/plugins/FloorplanPlugin/render/assets.d.ts +9 -0
  275. package/plugins/FloorplanPlugin/render/index.d.ts +35 -0
  276. package/plugins/FloorplanPlugin/render/isPointInPolygon.d.ts +5 -0
  277. package/plugins/FloorplanPlugin/render/renderFloor.d.ts +22 -0
  278. package/plugins/FloorplanPlugin/render/roomLabelVisibility.d.ts +10 -0
  279. package/plugins/FloorplanPlugin/typing.d.ts +156 -0
  280. package/plugins/FloorplanPlugin/typings/floorplanData.d.ts +112 -0
  281. package/plugins/FloorplanPlugin/typings/floorplanJson.d.ts +167 -0
  282. package/plugins/FloorplanPlugin/typings/floorplanServerData.d.ts +78 -0
  283. package/plugins/FloorplanPlugin/typings/index.d.ts +3 -0
  284. package/plugins/FloorplanPlugin/utils/changeMode.d.ts +5 -0
  285. package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.d.ts +6 -0
  286. package/plugins/FloorplanPlugin/utils/correctFiveState.d.ts +11 -0
  287. package/plugins/FloorplanPlugin/utils/equal.d.ts +9 -0
  288. package/plugins/FloorplanPlugin/utils/filter.d.ts +8 -0
  289. package/plugins/FloorplanPlugin/utils/fiveModelLoad.d.ts +6 -0
  290. package/plugins/FloorplanPlugin/utils/formatData.d.ts +6 -0
  291. package/plugins/FloorplanPlugin/utils/formatFloorplanJson.d.ts +20 -0
  292. package/plugins/FloorplanPlugin/utils/formatPosition.d.ts +33 -0
  293. package/plugins/FloorplanPlugin/utils/getDistanceFromModel.d.ts +6 -0
  294. package/plugins/FloorplanPlugin/utils/getPxmm.d.ts +19 -0
  295. package/plugins/FloorplanPlugin/utils/isTruelyObject.d.ts +4 -0
  296. package/plugins/FloorplanPlugin/utils/nearlyEqual.d.ts +8 -0
  297. package/plugins/FloorplanPlugin/utils/polylabel.d.ts +8 -0
  298. package/plugins/FloorplanPlugin/utils/to.d.ts +5 -0
  299. package/plugins/Object3DHelperPlugin/Controller.d.ts +99 -0
  300. package/plugins/Object3DHelperPlugin/Controllers/BaseController.d.ts +142 -0
  301. package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.d.ts +16 -0
  302. package/plugins/Object3DHelperPlugin/Controllers/MoveController.d.ts +66 -0
  303. package/plugins/Object3DHelperPlugin/Controllers/RotateController.d.ts +61 -0
  304. package/plugins/Object3DHelperPlugin/FiveControllerWrapper.d.ts +17 -0
  305. package/plugins/Object3DHelperPlugin/Helper/BaseHelper.d.ts +97 -0
  306. package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.d.ts +16 -0
  307. package/plugins/Object3DHelperPlugin/Helper/MoveHelper.d.ts +37 -0
  308. package/plugins/Object3DHelperPlugin/Helper/RotateHelper.d.ts +93 -0
  309. package/plugins/Object3DHelperPlugin/constant.d.ts +27 -0
  310. package/plugins/Object3DHelperPlugin/index.d.ts +6 -0
  311. package/plugins/Object3DHelperPlugin/typing.d.ts +143 -0
  312. package/plugins/Object3DHelperPlugin/utils/ArrowGroup.d.ts +22 -0
  313. package/plugins/Object3DHelperPlugin/utils/CenterHandle.d.ts +23 -0
  314. package/plugins/Object3DHelperPlugin/utils/PlaneHandle.d.ts +19 -0
  315. package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.d.ts +5 -0
  316. package/plugins/Object3DHelperPlugin/utils/cameraHooks.d.ts +3 -0
  317. package/plugins/Object3DHelperPlugin/utils/direction.d.ts +14 -0
  318. package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.d.ts +5 -0
  319. package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.d.ts +8 -0
  320. package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.d.ts +8 -0
  321. package/plugins/Object3DHelperPlugin/utils/solidGuide.d.ts +27 -0
  322. package/plugins/Object3DHelperPlugin/utils/tipsDom.d.ts +8 -0
  323. package/plugins/PanoAnimePlugin/Controller.d.ts +49 -0
  324. package/plugins/PanoAnimePlugin/index.d.ts +5 -0
  325. package/plugins/PanoAnimePlugin/typing.d.ts +37 -0
  326. package/plugins/index.d.ts +6 -0
  327. package/plugins/index.js +748 -3
  328. package/plugins/index.mjs +28761 -88
  329. package/plugins/thirdParty/CSS2DRenderer.d.ts +37 -0
  330. package/plugins/thirdParty/CSS3DRenderer.d.ts +45 -0
  331. package/plugins/thirdParty/OrbitControls.d.ts +78 -0
  332. package/plugins/thirdParty/doctorstrange-model.d.ts +92 -0
  333. package/plugins/thirdParty/domevents.d.ts +36 -0
  334. package/plugins/utils/clamp.d.ts +2 -0
  335. package/plugins/utils/uuid.d.ts +2 -0
  336. package/react/index.js +2 -2
  337. package/react/index.mjs +2 -2
  338. package/sticker/geometry.d.ts +3 -0
  339. package/sticker/index.d.ts +68 -0
  340. package/sticker/index.js +255 -0
  341. package/sticker/index.mjs +358 -0
  342. package/umd/five-gltf-loader.js +255 -0
  343. package/umd/five-line.js +322 -0
  344. package/umd/five-plugins.js +816 -3
  345. package/umd/five-react.js +2 -2
  346. package/umd/five-sticker.js +255 -0
  347. package/umd/five-vfx.js +323 -0
  348. package/umd/five.js +347 -344
  349. package/vfx/airflow/airflow.d.ts +18 -0
  350. package/vfx/common/simplex-noise.d.ts +2 -0
  351. package/vfx/frame/frame.d.ts +27 -0
  352. package/vfx/index.d.ts +7 -0
  353. package/vfx/index.js +255 -0
  354. package/vfx/index.mjs +738 -0
  355. package/vfx/particle/instance.d.ts +36 -0
  356. package/vfx/particle/particle.d.ts +119 -0
  357. package/vfx/particle/utils.d.ts +11 -0
  358. package/vfx/particle-gpu/particle.d.ts +75 -0
  359. package/vfx/particle-gpu/utils.d.ts +11 -0
  360. package/vfx/spotLight/spotLight.d.ts +15 -0
  361. package/work-downloader/components/model-3d-tile.d.ts +2 -0
  362. package/work-downloader/components/model.d.ts +3 -0
  363. package/work-downloader/components/observer.d.ts +9 -0
  364. package/work-downloader/download.d.ts +16 -0
  365. package/work-downloader/index.d.ts +2 -0
  366. package/work-downloader/index.js +255 -0
  367. package/work-downloader/index.mjs +595 -0
  368. package/work-downloader/type.d.ts +28 -0
  369. package/work-downloader/utils/download-to-file.d.ts +1 -0
  370. package/work-downloader/utils/image-processing.d.ts +7 -0
  371. package/work-downloader/utils/join-url.d.ts +2 -0
  372. package/work-downloader/utils/log.d.ts +1 -0
  373. package/work-downloader/utils/relative-url.d.ts +1 -0
  374. package/docs/interfaces/index.PBMHDRConfig.html +0 -12
  375. package/five/gaussian-splatting/worker/dataWorker.d.ts +0 -1
  376. package/five/three-version-check.d.ts +0 -1
  377. package/five/utils/hdr-data.d.ts +0 -13
  378. package/five/utils/shaderContentFix.d.ts +0 -7
@@ -0,0 +1,167 @@
1
+ /**
2
+ * doctorstrange 户型图编辑器导出的原始 json 数据结构
3
+ * @description formatFloorplanJson 以此为输入,转换成 FloorplanServerData(snake_case)
4
+ */
5
+ export interface FloorplanJsonVrData {
6
+ origin: {
7
+ left: number;
8
+ top: number;
9
+ };
10
+ }
11
+ export interface FloorplanJsonItem {
12
+ id: string;
13
+ x: number;
14
+ y: number;
15
+ area: string;
16
+ type: number;
17
+ width: number;
18
+ height: number;
19
+ locked: boolean;
20
+ rotateZ: number;
21
+ rotateX: boolean;
22
+ rotateY: boolean;
23
+ displayName: string;
24
+ }
25
+ export interface FloorplanJsonPoint {
26
+ id: string;
27
+ x: number;
28
+ y: number;
29
+ rules: string;
30
+ lines: string[];
31
+ locked: boolean;
32
+ displayName: string;
33
+ }
34
+ export interface FloorplanJsonAreaAttachmentArea {
35
+ id: string;
36
+ type: number;
37
+ roomType: string;
38
+ direction: string;
39
+ towardsRad: number;
40
+ directionCode: string;
41
+ sharedLines: string[];
42
+ sharedLineItems: string[];
43
+ }
44
+ export interface FloorplanJsonLine {
45
+ align: number;
46
+ curve: number;
47
+ displayName: string;
48
+ edgeComputed: boolean;
49
+ id: string;
50
+ isLoadBearing: boolean;
51
+ items: string[];
52
+ offsetComputed: number;
53
+ points: string[];
54
+ thickness: null;
55
+ thicknessComputed: number;
56
+ type: number;
57
+ }
58
+ export interface FloorplanJsonLineItem {
59
+ displayName: string;
60
+ endPointAt: {
61
+ x: number;
62
+ y: number;
63
+ };
64
+ entrance: number;
65
+ id: string;
66
+ is: 'window' | 'door' | 'other';
67
+ length: number;
68
+ line: string;
69
+ noAnalysis: boolean;
70
+ offsetY?: number;
71
+ height?: number;
72
+ rotateX: boolean;
73
+ rotateY: boolean;
74
+ start: number;
75
+ startIndex: number;
76
+ startPointAt: {
77
+ x: number;
78
+ y: number;
79
+ };
80
+ type: number;
81
+ }
82
+ export interface FloorplanJsonArea {
83
+ attachments: {
84
+ areas: FloorplanJsonAreaAttachmentArea[];
85
+ lineItems: {
86
+ direction: string;
87
+ directionCode: string;
88
+ edge: boolean;
89
+ id: string;
90
+ is: string;
91
+ length: number;
92
+ towardsRad: number;
93
+ }[];
94
+ };
95
+ points: string[];
96
+ roomName: string;
97
+ roomType: string;
98
+ roomTypeName: number;
99
+ typeName: string;
100
+ type: number;
101
+ id: string;
102
+ empty: boolean;
103
+ roomTypeLabelMod: boolean;
104
+ labelX: number;
105
+ labelY: number;
106
+ hideName: boolean;
107
+ size: number;
108
+ customizedName: string;
109
+ displayName: string;
110
+ floorType: number;
111
+ hideSize: boolean;
112
+ nameIndex: string;
113
+ simpleLabelMod: boolean;
114
+ sizeWithoutLine: number;
115
+ subLabelX: number;
116
+ subLabelY: number;
117
+ subType: number;
118
+ }
119
+ export interface FloorplanJsonFloorplan {
120
+ name: string;
121
+ items: FloorplanJsonItem[];
122
+ points: FloorplanJsonPoint[];
123
+ floorIndex: string;
124
+ lineItems: FloorplanJsonLineItem[];
125
+ areas: FloorplanJsonArea[];
126
+ lines: FloorplanJsonLine[];
127
+ templates: {
128
+ areaLabelName: string;
129
+ };
130
+ info: {
131
+ description: string;
132
+ height: number;
133
+ ruleType: number;
134
+ subheight: number;
135
+ tags: unknown[];
136
+ };
137
+ }
138
+ export interface FloorplanJsonCheckMessage {
139
+ desc: string;
140
+ tag: string;
141
+ text: string;
142
+ }
143
+ /** doctorstrange 编辑器导出的原始户型图 json(IFloorplanJson,命名与后端服务保持一致,便于对照) */
144
+ export interface IFloorplanJson {
145
+ nonce: string;
146
+ version: string;
147
+ vrData: FloorplanJsonVrData;
148
+ structure: string;
149
+ floorplans: FloorplanJsonFloorplan[];
150
+ checkMessages: FloorplanJsonCheckMessage[];
151
+ canvasSize: {
152
+ height: number;
153
+ width: number;
154
+ };
155
+ property: {
156
+ isAreaNameCustomized: boolean;
157
+ scanSize: number;
158
+ sourceType: number;
159
+ };
160
+ }
161
+ /** 观察点(point 位)传入格式,用于计算每个点位所在房间 */
162
+ export interface FloorplanJsonObserver {
163
+ index: number;
164
+ floor_index: number;
165
+ /** [x, y, z],米单位,与 five work.observers 的 standingPosition 对应 */
166
+ position: [number, number, number];
167
+ }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * 户型图服务端原始数据(snake_case),与 formatData 配合转换成内部使用的 FloorplanData(camelCase)
3
+ */
4
+ export interface FloorplanServerPosition {
5
+ x: number;
6
+ y: number;
7
+ }
8
+ export interface FloorplanServerImagePosition {
9
+ x: number;
10
+ y: number;
11
+ }
12
+ export interface FloorplanServerOutlineItem {
13
+ url: string;
14
+ index: number;
15
+ svg_url?: string;
16
+ }
17
+ export interface FloorplanServerEntrance {
18
+ position_in_image: FloorplanServerImagePosition;
19
+ north_rad: number;
20
+ room_id: string;
21
+ floor_index: number;
22
+ }
23
+ export interface FloorplanServerBounding {
24
+ max: FloorplanServerPosition;
25
+ min: FloorplanServerPosition;
26
+ origin: FloorplanServerPosition;
27
+ }
28
+ export interface FloorplanServerRoomLabelItem {
29
+ position: FloorplanServerPosition;
30
+ position_in_image: FloorplanServerImagePosition;
31
+ }
32
+ export interface FloorplanServerDimension {
33
+ width: number;
34
+ height: number;
35
+ /** 垂直方向标注箭头定位点(一般为 2 个点:下端点、上端点) */
36
+ vertical?: FloorplanServerPosition[];
37
+ /** 水平方向标注箭头定位点(一般为 2 个点:左端点、右端点) */
38
+ horizontal?: FloorplanServerPosition[];
39
+ }
40
+ export interface FloorplanServerRoomItem {
41
+ id: string;
42
+ size: number;
43
+ name: string;
44
+ customized_name?: string;
45
+ path: FloorplanServerPosition[];
46
+ room_type: string;
47
+ floor_type: number;
48
+ room_label: FloorplanServerRoomLabelItem;
49
+ observer_indexs: number[];
50
+ dimension?: FloorplanServerDimension;
51
+ }
52
+ export interface FloorplanServerRuleLabels {
53
+ top: FloorplanServerPosition[][];
54
+ right: FloorplanServerPosition[][];
55
+ bottom: FloorplanServerPosition[][];
56
+ left: FloorplanServerPosition[][];
57
+ }
58
+ export interface FloorplanServerFloorData {
59
+ floor_name: string;
60
+ floor_index: number;
61
+ rooms: FloorplanServerRoomItem[];
62
+ rules: FloorplanServerRuleLabels;
63
+ is_has_wall: boolean;
64
+ }
65
+ export interface FloorplanServerObserver {
66
+ floor_index: number;
67
+ position_in_image: FloorplanServerImagePosition;
68
+ }
69
+ export interface FloorplanServerComputedData {
70
+ floor_datas: FloorplanServerFloorData[];
71
+ entrance: FloorplanServerEntrance | null;
72
+ bounding: FloorplanServerBounding;
73
+ observers: FloorplanServerObserver[];
74
+ }
75
+ export interface FloorplanServerData {
76
+ outlines: FloorplanServerOutlineItem[];
77
+ computed_data: FloorplanServerComputedData;
78
+ }
@@ -0,0 +1,3 @@
1
+ export * from './floorplanData';
2
+ export * from './floorplanServerData';
3
+ export * from './floorplanJson';
@@ -0,0 +1,5 @@
1
+ import type { Five } from '@realsee/five-webgpu';
2
+ /**
3
+ * 等待 five.changeMode 真正的动画结束(changeMode 返回的 Promise 只代表切换请求被接受,不代表动画播放完毕)
4
+ */
5
+ export declare function changeMode(five: Five, changeModeParams: Parameters<Five['changeMode']>): Promise<void>;
@@ -0,0 +1,6 @@
1
+ import type { Five } from '@realsee/five-webgpu';
2
+ /**
3
+ * 通过 CSS opacity 让 five 渲染画布(及标记了 data-infive="1" 的兄弟 DOM)淡入 / 淡出
4
+ * @description 只改 DOM 透明度,不修改模型材质,代价小、可随时中断
5
+ */
6
+ export declare function changeModelCanvasOpacity(five: Five, opacity: number, duration?: number): void;
@@ -0,0 +1,11 @@
1
+ import type { Five } from '@realsee/five-webgpu';
2
+ import { type ShowState } from '../typing';
3
+ /** 展示户型图所需的相机默认 fov */
4
+ export declare const FIVE_CAMERA_DEFAULT_FOV = 80;
5
+ /**
6
+ * 把当前 five 相机 / 模式状态纠正为展示户型图所需的目标状态
7
+ * @description
8
+ * - 模式不一致:调用 five.changeMode 切换模式(同时切到目标 pose)
9
+ * - 模式一致但相机状态不一致:调用 five.updateCamera 纠正相机
10
+ */
11
+ export declare function correctFiveState(five: Five, showState: ShowState, userAction?: boolean): Promise<void>;
@@ -0,0 +1,9 @@
1
+ export declare function isShallowEqual(value: unknown, other: unknown): boolean;
2
+ export declare function isDeepEqual(value: unknown, other: unknown): boolean;
3
+ /**
4
+ * 比较两个值是否相等
5
+ * @param opt.deep - 是否深比较,默认 false(浅比较)
6
+ */
7
+ export declare function equal(value: unknown, other: unknown, opt?: {
8
+ deep?: boolean;
9
+ }): boolean;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 排除指定属性名数组,返回剩余属性组成的新对象
3
+ */
4
+ export declare function omit<T extends object, K extends keyof T>(object: T, props: K[]): Omit<T, K>;
5
+ /**
6
+ * 只保留指定属性名数组,返回剩余属性组成的新对象
7
+ */
8
+ export declare function pick<T extends object, K extends keyof T>(object: T, props: K[]): Pick<T, K>;
@@ -0,0 +1,6 @@
1
+ import type { Five } from '@realsee/five-webgpu';
2
+ /** 取「当前 work」对应的 model(多 work/model 场景下按 workCode 匹配,找不到则回退到 five.model) */
3
+ export declare function getFiveModel(five: Five): import("@realsee/five-webgpu").Model;
4
+ export declare function fiveModelIsLoaded(five: Five): boolean;
5
+ /** 等待「当前 work」对应的 model 加载完成 */
6
+ export declare function waitFiveModelLoaded(five: Five): Promise<void>;
@@ -0,0 +1,6 @@
1
+ import type { FloorplanServerData, FloorplanData } from '../typings';
2
+ /**
3
+ * 把后端返回的下划线风格 FloorplanServerData 转换成驼峰风格的 FloorplanData
4
+ */
5
+ export declare function formatData(data: FloorplanServerData): Promise<FloorplanData>;
6
+ export default formatData;
@@ -0,0 +1,20 @@
1
+ import type { FloorplanJsonObserver, FloorplanServerData, FloorplanServerOutlineItem, IFloorplanJson } from '../typings';
2
+ export interface FormatFloorplanJsonOptions {
3
+ /** 点位(拍摄点)列表,用于计算每个点位在户型图上的位置及所属房间 */
4
+ observers?: FloorplanJsonObserver[];
5
+ /** 房间名称使用的语言,默认中文 */
6
+ locate?: string;
7
+ /** 户型图线框图列表 */
8
+ outlines?: FloorplanServerOutlineItem[];
9
+ }
10
+ /**
11
+ * 从 doctorstrange 户型图编辑器导出的原始 json(IFloorplanJson)+ 点位信息,格式化为 FloorplanServerData
12
+ * @description 迁移自服务端 FloorplanComputer(service.realsee.com/server/routers/services/ironbox/floorplanComputer),
13
+ * 迁移到客户端后可离线(不依赖后端接口)把编辑器导出的 json 转换为 FloorplanPlugin.load 所需的数据结构。
14
+ * @param floorplanJson doctorstrange 编辑器导出的原始 json
15
+ * @param options.observers 点位(拍摄点)列表,用于计算每个点位在户型图上的位置及所属房间
16
+ * @param options.locate 房间名称使用的语言,默认中文
17
+ * @param options.outlines 户型图线框图列表
18
+ */
19
+ export declare function formatFloorplanJson(floorplanJson: IFloorplanJson, options?: FormatFloorplanJsonOptions): FloorplanServerData | null;
20
+ export default formatFloorplanJson;
@@ -0,0 +1,33 @@
1
+ import type { Five } from '@realsee/five-webgpu';
2
+ import type { FloorplanBounding, FloorplanData, FloorplanPosition, FloorplanImagePosition } from '../typings';
3
+ /**
4
+ * 拼接 SVG path 的 d 属性字符串
5
+ */
6
+ export declare function pathD(points: FloorplanPosition[], options?: {
7
+ needZ?: boolean;
8
+ format?: (point: FloorplanPosition) => FloorplanPosition;
9
+ }): string;
10
+ /**
11
+ * 把户型图坐标系(原点在中心)的点转换到 SVG 坐标系(原点在左上角,y 轴向下)
12
+ */
13
+ export declare function formatFloorplanPoint({ x, y }: FloorplanPosition, bounding: FloorplanBounding): FloorplanPosition;
14
+ /**
15
+ * 三维模型坐标(米)转户型图坐标(毫米,原点在中心)
16
+ */
17
+ export declare function modelPosition2FloorplanPosition(position: {
18
+ x: number;
19
+ y: number;
20
+ z: number;
21
+ }, floorplanData: FloorplanData): FloorplanPosition;
22
+ /**
23
+ * 户型图坐标转图片相对坐标 [0,1]
24
+ */
25
+ export declare function floorplanPosition2ImagePosition(position: FloorplanPosition, floorplanData: FloorplanData): FloorplanImagePosition;
26
+ /**
27
+ * 求三维世界坐标点所在的楼层
28
+ */
29
+ export declare function getFloorIndexFromModelPosition(position: {
30
+ x: number;
31
+ y: number;
32
+ z: number;
33
+ }, five: Five): number;
@@ -0,0 +1,6 @@
1
+ import type { Five } from '@realsee/five-webgpu';
2
+ /**
3
+ * 根据模型整体包围盒和目标 fov/aspect,反算相机取景合适的距离
4
+ * @description 与 five 内部 FloorplanController.distanceFromModel 等价(该方法未对外导出,故在插件内重新实现)
5
+ */
6
+ export declare function getDistanceFromModel(five: Five, fov: number, aspect: number): number;
@@ -0,0 +1,19 @@
1
+ import type { Five } from '@realsee/five-webgpu';
2
+ import { FLOOR_PLAN_ATTACHED_TO } from '../typing';
3
+ export interface GetPxmmOption {
4
+ attachedTo?: FLOOR_PLAN_ATTACHED_TO;
5
+ }
6
+ /**
7
+ * 取指定楼层的地面高度(该楼层所有点位站立位置 y 的最大值)
8
+ * @description 若 floorIndex 超过实际最大楼层(比如查询顶层的天花板),退化为取整模型包围盒顶部
9
+ */
10
+ export declare function getFloorY(five: Five, floorIndex: number): number;
11
+ /**
12
+ * 根据吸附方式获取户型图应当吸附的世界坐标高度(y)
13
+ */
14
+ export declare function getAttachedY(five: Five, floorIndex: number, attachedTo?: FLOOR_PLAN_ATTACHED_TO): number;
15
+ /**
16
+ * 计算「每毫米对应多少像素」(用于把 3D 世界的毫米尺寸换算为户型图 DOM 的像素尺寸)
17
+ * @description 在吸附高度上取原点与 x 方向单位点,分别投影到屏幕 NDC 坐标,用横向偏移量换算比例
18
+ */
19
+ export declare function getPxmm(five: Five, container: Element, floorIndex: number, options?: GetPxmmOption): number;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * 判断是否是「纯对象」(排除数组、null、Map、Set 等)
3
+ */
4
+ export declare function isTruelyObject(value: unknown): value is Record<string, unknown>;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 判断两个数字四舍五入到 precision 位小数后是否相等
3
+ */
4
+ export declare function nearlyEqual(x: number, y: number, precision?: number): boolean;
5
+ /**
6
+ * 判断两个弧度值是否近似相等,处理 0 / 2π 边界(角度环绕)
7
+ */
8
+ export declare function nearlyEqualRad(x: number, y: number, precision?: number): boolean;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 计算多边形的「不可达极点」(visual center),用于房间标签定位
3
+ * @description 基于 mapbox/polylabel 算法移植,去除了 tinyqueue 依赖(用数组 + 排序模拟优先队列,量级较小,性能影响可忽略)
4
+ */
5
+ type Point = [number, number];
6
+ type Polygon = Point[][];
7
+ export declare function polylabel(polygon: Polygon, precision?: number): Point;
8
+ export {};
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Go 风格的错误处理封装:`const [err, data] = await to(promise)`
3
+ */
4
+ export declare function to<T>(promise: Promise<T>): Promise<[null, T] | [Error, null]>;
5
+ export default to;
@@ -0,0 +1,99 @@
1
+ import type { Five } from '@realsee/five-webgpu';
2
+ import { BasePlugin } from '../BasePlugin';
3
+ import * as THREE from 'three/webgpu';
4
+ import type { Object3DHelperEventMap, Object3DHelperState, ObjectHelperControllers, PositionFrom } from './typing';
5
+ import type { HelperConfig, HelperOffset, Object3DHelperPluginEventMap, Object3DHelperPluginState } from './typing';
6
+ import { Subscribe } from '@realsee/five-webgpu';
7
+ export declare const PLUGIN = "Object3DHelperPlugin";
8
+ export type AddObject3DHelperConfig = {
9
+ positionFrom?: PositionFrom;
10
+ offset?: HelperOffset;
11
+ /** Helpers 的世界坐标偏移量 */
12
+ helperOffset?: THREE.Vector3;
13
+ yAxis?: THREE.Vector3 | (() => THREE.Vector3);
14
+ xAxis?: THREE.Vector3 | (() => THREE.Vector3);
15
+ zAxis?: THREE.Vector3 | (() => THREE.Vector3);
16
+ moveHelper?: HelperConfig<{
17
+ xArrowEnable?: boolean;
18
+ yArrowEnable?: boolean;
19
+ zArrowEnable?: boolean;
20
+ }>;
21
+ /** 是否展示 MoveHelper 拖拽时的坐标提示,默认 false */
22
+ moveHelperTips?: boolean;
23
+ rotateHelper?: HelperConfig<{
24
+ yzCircleEnable?: boolean;
25
+ xzCircleEnable?: boolean;
26
+ xyCircleEnable?: boolean;
27
+ angleTipsEnable?: boolean;
28
+ }>;
29
+ boundingBoxHelper?: HelperConfig;
30
+ };
31
+ export declare class Object3DHelper {
32
+ controllers: ObjectHelperControllers;
33
+ state: Object3DHelperState;
34
+ hooks: Subscribe<Object3DHelperEventMap>;
35
+ constructor(controllers?: ObjectHelperControllers);
36
+ show(options?: {
37
+ userAction?: boolean;
38
+ }): void;
39
+ hide(options?: {
40
+ userAction?: boolean;
41
+ }): void;
42
+ enable(options?: {
43
+ userAction?: boolean;
44
+ }): void;
45
+ disable(options?: {
46
+ userAction?: boolean;
47
+ }): void;
48
+ dispose(): void;
49
+ setState(state: Partial<Object3DHelperState>, _options?: {
50
+ userAction?: boolean;
51
+ }): void;
52
+ addControllers(controllers: ObjectHelperControllers): void;
53
+ initialHelperMatrix(): void;
54
+ private handleEnable;
55
+ private handleVisible;
56
+ private handleDispose;
57
+ private everyControllerDo;
58
+ }
59
+ export declare class Controller extends BasePlugin.Controller<Object3DHelperPluginState, Object3DHelperPluginEventMap & BasePlugin.EventMap<Object3DHelperPluginState, any>, any, any> {
60
+ name: string;
61
+ data?: any;
62
+ state: Object3DHelperState;
63
+ objectHelperMap: Map<THREE.Object3D, {
64
+ helper: Object3DHelper;
65
+ disposers: (() => any)[];
66
+ helperGroup: THREE.Group;
67
+ }>;
68
+ constructor(five: Five);
69
+ show(options?: {
70
+ userAction?: boolean;
71
+ }): Promise<void>;
72
+ hide(options?: {
73
+ userAction?: boolean;
74
+ }): Promise<void>;
75
+ enable(options?: {
76
+ userAction?: boolean;
77
+ }): void;
78
+ disable(options?: {
79
+ userAction?: boolean;
80
+ }): void;
81
+ dispose(): void;
82
+ load(_data: any): Promise<void>;
83
+ setState(state: Partial<Object3DHelperState>, options?: {
84
+ userAction?: boolean;
85
+ } & Record<string, any>): void;
86
+ getObject3DHelper(object3D: THREE.Object3D): {
87
+ helper: Object3DHelper;
88
+ disposers: (() => any)[];
89
+ helperGroup: THREE.Group;
90
+ } | undefined;
91
+ addObject3DHelper(object3D: THREE.Object3D, paramsConfig?: AddObject3DHelperConfig): ObjectHelperControllers | undefined;
92
+ removeObject3DHelper(object3D: THREE.Object3D): void;
93
+ private handleEnable;
94
+ private handleVisible;
95
+ private handleDispose;
96
+ private everyHelperDo;
97
+ private actionIfStateIsEnabled;
98
+ private getConfig;
99
+ }
@@ -0,0 +1,142 @@
1
+ import * as THREE from 'three/webgpu';
2
+ import { Subscribe } from '@realsee/five-webgpu';
3
+ import type { SolidGuideOptions } from '../utils/solidGuide';
4
+ import type { HelperEventMap, HelperOffset, InternalHelperEventMap, ScaleCallback } from '../typing';
5
+ import type { BaseHelper } from '../Helper/BaseHelper';
6
+ import DomEvents from '../../thirdParty/domevents';
7
+ export declare let originOpacity: {
8
+ opacity: number;
9
+ } | null;
10
+ type Config = {
11
+ offset?: HelperOffset;
12
+ yAxis?: THREE.Vector3 | (() => THREE.Vector3);
13
+ xAxis?: THREE.Vector3 | (() => THREE.Vector3);
14
+ zAxis?: THREE.Vector3 | (() => THREE.Vector3);
15
+ scaleCallback?: ScaleCallback;
16
+ /** 实线样式与行为配置(透传给 SolidGuideLine) */
17
+ solidGuide?: SolidGuideOptions;
18
+ };
19
+ export declare abstract class BaseController<T extends BaseHelper = BaseHelper, K extends THREE.Object3D = THREE.Object3D> {
20
+ originObject3D: K;
21
+ hooks: Subscribe<HelperEventMap>;
22
+ preventTapDefaultEvent: boolean;
23
+ protected internalHooks: Subscribe<InternalHelperEventMap>;
24
+ protected readonly disposers: (() => void)[];
25
+ protected helperObject3D: T;
26
+ protected camera: THREE.Camera;
27
+ protected model: THREE.Object3D;
28
+ protected scene: THREE.Object3D;
29
+ protected container: HTMLElement;
30
+ protected domEvents: DomEvents;
31
+ protected isDragging: boolean;
32
+ protected enabled: boolean;
33
+ protected name: string;
34
+ protected boundingBox?: THREE.Box3;
35
+ protected config: Config;
36
+ private onRender;
37
+ protected cameraHooks: Subscribe<{
38
+ cameraUpdate: () => any;
39
+ }>;
40
+ /** 其他控制器的引用,用于跨控制器状态检查 */
41
+ protected otherControllers?: {
42
+ moveController?: BaseController;
43
+ rotateController?: BaseController;
44
+ scaleController?: BaseController;
45
+ };
46
+ /**
47
+ * 更新其他控制器的引用
48
+ */
49
+ updateOtherControllers(otherControllers: {
50
+ moveController?: BaseController;
51
+ rotateController?: BaseController;
52
+ scaleController?: BaseController;
53
+ }): void;
54
+ /**
55
+ * 获取当前控制器的拖拽状态
56
+ */
57
+ getIsDragging(): boolean;
58
+ constructor(params: {
59
+ camera: THREE.Camera;
60
+ model: THREE.Object3D;
61
+ originObject3D: K;
62
+ helperObject3D: T;
63
+ container: HTMLElement;
64
+ domEvents: DomEvents;
65
+ scene: THREE.Object3D;
66
+ onRender?: () => void;
67
+ sharedHooks?: Subscribe<HelperEventMap>;
68
+ sharedInternalHooks?: Subscribe<InternalHelperEventMap>;
69
+ /** 其他控制器的引用,用于跨控制器状态检查 */
70
+ otherControllers?: {
71
+ moveController?: BaseController;
72
+ rotateController?: BaseController;
73
+ scaleController?: BaseController;
74
+ };
75
+ }, config?: Config);
76
+ initialHelperPosition(): void;
77
+ initialHelperQuaternion(): void;
78
+ enable(): void;
79
+ disable(): void;
80
+ show(): void;
81
+ hide(): void;
82
+ dispose(): void;
83
+ /**
84
+ * @description: applyHelperMatrix4
85
+ * @param {THREE.Matrix4} matrix position 偏移量
86
+ */
87
+ applyHelperMatrix4(matrix: THREE.Matrix4): void;
88
+ /**
89
+ * @description: applyHelperQuaternion
90
+ * @param {THREE.Quaternion} quaternion 旋转四元数
91
+ * @param {THREE.Vector3} origin 旋转中心
92
+ */
93
+ applyHelperQuaternion(quaternion: THREE.Quaternion, origin: THREE.Vector3): void;
94
+ /**
95
+ * @description: applyHelperScaleMatrix4
96
+ * @param {THREE.Matrix4} matrix 缩放矩阵
97
+ * @param {THREE.Vector3} origin 缩放中心
98
+ */
99
+ applyHelperScaleMatrix4(matrix: THREE.Matrix4, origin?: THREE.Vector3): void;
100
+ onWantsTapGesture: (raycaster: THREE.Raycaster) => false | void;
101
+ updateHelperScale: () => void;
102
+ onWantsGesture(type: 'press' | 'pan' | string, pointers: {
103
+ x: number;
104
+ y: number;
105
+ }[], final: boolean): false | void;
106
+ onIntersectionOnModelUpdate(intersection: THREE.Intersection): void;
107
+ /**
108
+ * @description: onApplyOriginObjectScale
109
+ * @param {THREE.Matrix4} params.matrix 缩放矩阵
110
+ * @param {THREE.Vector3} params.origin 缩放中心
111
+ */
112
+ protected onApplyOriginObjectScale(params: {
113
+ matrix: THREE.Matrix4;
114
+ origin?: THREE.Vector3;
115
+ }): void;
116
+ /**
117
+ * @description: onApplyOriginObjectRotate
118
+ * @param {THREE.Quaternion} params.quaternion 旋转四元数
119
+ * @param {THREE.Vector3} params.origin 旋转中心
120
+ */
121
+ protected onApplyOriginObjectRotate(params: {
122
+ quaternion: THREE.Quaternion;
123
+ origin: THREE.Vector3;
124
+ }): void;
125
+ /**
126
+ * @description: onApplyOriginObjectPosition
127
+ * @param {THREE.Matrix4} params.matrix position 偏移量
128
+ */
129
+ protected onApplyOriginObjectPosition(params: {
130
+ matrix: THREE.Matrix4;
131
+ }): void;
132
+ protected onSetOriginObjectScale(scale: THREE.Vector3): void;
133
+ protected onSetOriginObjectRotate(_quaternion: THREE.Quaternion, _origin?: THREE.Vector3): void;
134
+ protected onSetOriginObjectPosition(position: THREE.Vector3): void;
135
+ protected render(): void;
136
+ protected updateOffsetByScale(scale: THREE.Vector3): void;
137
+ protected hoverListener(object3D: THREE.Object3D | undefined | THREE.Group | (THREE.Object3D | undefined | THREE.Group)[], hoverColor?: THREE.Color | string | number, hoverOpacity?: number): () => void;
138
+ private getIntersectObject;
139
+ private getBox;
140
+ private calculateOffset;
141
+ }
142
+ export {};