@realsee/five-webgpu 1.0.0-alpha.13 → 1.0.0-alpha.14

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 (374) hide show
  1. package/_virtual/_rolldown/runtime.js +3 -3
  2. package/docs/assets/hierarchy.js +1 -1
  3. package/docs/assets/navigation.js +1 -1
  4. package/docs/assets/search.js +1 -1
  5. package/docs/classes/index.AdaptiveLuminancePass.html +1 -1
  6. package/docs/classes/index.BoundingMesh.html +1 -1
  7. package/docs/classes/index.Camera.html +1 -1
  8. package/docs/classes/index.EyeDomeLightingPass.html +1 -1
  9. package/docs/classes/index.Five.html +65 -64
  10. package/docs/classes/index.FivePass.html +1 -1
  11. package/docs/classes/index.FiveRenderer.html +4 -4
  12. package/docs/classes/index.FlowingFireworks3DPass.html +1 -1
  13. package/docs/classes/index.FlowingLight2DPass.html +1 -1
  14. package/docs/classes/index.FlowingLight3DPass.html +1 -1
  15. package/docs/classes/index.GaussianBlurPass.html +1 -1
  16. package/docs/classes/index.InternalWebGPURenderer.html +4 -4
  17. package/docs/classes/index.Model.html +1 -1
  18. package/docs/classes/index.ModelScene.html +1 -1
  19. package/docs/classes/index.NetworkSubscribe.html +1 -1
  20. package/docs/classes/index.PBMCustomNode.html +1 -1
  21. package/docs/classes/index.PBMGaussianSplattingNodeMaterial.html +1 -1
  22. package/docs/classes/index.PBMGaussianSplattingObject.html +1 -1
  23. package/docs/classes/index.PBMGaussianSplattingRenderMesh.html +1 -1
  24. package/docs/classes/index.PBMGroup.html +1 -1
  25. package/docs/classes/index.PBMMesh.html +1 -1
  26. package/docs/classes/index.PBMMeshBasicMaterial.html +1 -1
  27. package/docs/classes/index.PBMMeshBasicNodeMaterial.html +1 -1
  28. package/docs/classes/index.PBMMeshPanoOnlyMaterial.html +1 -1
  29. package/docs/classes/index.PBMMeshPanoOnlyNodeMaterial.html +1 -1
  30. package/docs/classes/index.PBMMeshPhongMaterial.html +1 -1
  31. package/docs/classes/index.PBMMeshPhongNodeMaterial.html +1 -1
  32. package/docs/classes/index.PBMMeshPhysicalMaterial.html +1 -1
  33. package/docs/classes/index.PBMMeshPhysicalNodeMaterial.html +1 -1
  34. package/docs/classes/index.PBMPanoFilter.html +1 -1
  35. package/docs/classes/index.PBMPointCloud.html +1 -1
  36. package/docs/classes/index.PBMPointCloudMaterial.html +1 -1
  37. package/docs/classes/index.PBMSkinnedMesh.html +1 -1
  38. package/docs/classes/index.PBMUpdateable.html +1 -1
  39. package/docs/classes/index.PanoCircleMesh.html +1 -1
  40. package/docs/classes/index.PanoCircleMeshCustom.html +1 -1
  41. package/docs/classes/index.PanoCircleMeshSolid.html +1 -1
  42. package/docs/classes/index.Parameter.html +1 -1
  43. package/docs/classes/index.Scene.html +1 -1
  44. package/docs/classes/index.Subscribe.html +1 -1
  45. package/docs/classes/index.Tile3D.html +1 -1
  46. package/docs/classes/index.TileNode.html +1 -1
  47. package/docs/classes/index.TrajectoryNode.html +1 -1
  48. package/docs/classes/index.Work.html +15 -22
  49. package/docs/classes/index.WorkResolvedObserver.html +22 -22
  50. package/docs/functions/index.createWorks.html +1 -1
  51. package/docs/functions/index.parseWork.html +1 -1
  52. package/docs/hierarchy.html +1 -1
  53. package/docs/interfaces/index.AddableObject.html +1 -1
  54. package/docs/interfaces/index.AjaxOptions.html +1 -1
  55. package/docs/interfaces/index.BaseEvent.html +1 -1
  56. package/docs/interfaces/index.Clock.html +1 -1
  57. package/docs/interfaces/index.EventCallback.html +3 -3
  58. package/docs/interfaces/index.GestureEvent.html +1 -1
  59. package/docs/interfaces/index.IPBMMaterial.html +1 -1
  60. package/docs/interfaces/index.ImageOptions.html +1 -1
  61. package/docs/interfaces/index.IntersectEvent.html +1 -1
  62. package/docs/interfaces/index.IntersectMesh.html +1 -1
  63. package/docs/interfaces/index.IntersectMeshInterface.html +1 -1
  64. package/docs/interfaces/index.Intersection.html +1 -1
  65. package/docs/interfaces/index.LooseWorkWithExtrinsics.html +8 -8
  66. package/docs/interfaces/index.ModeChangeEvent.html +1 -1
  67. package/docs/interfaces/index.ModelControllerCustomInitArgs.html +1 -1
  68. package/docs/interfaces/index.ModelEvent.html +1 -1
  69. package/docs/interfaces/index.ModelSceneEvent.html +1 -1
  70. package/docs/interfaces/index.ModelTileEvent.html +1 -1
  71. package/docs/interfaces/index.MovePanoOptions.html +1 -1
  72. package/docs/interfaces/index.NetworkAbortError.html +1 -1
  73. package/docs/interfaces/index.NetworkFirbiddenError.html +1 -1
  74. package/docs/interfaces/index.NetworkOptions.html +1 -1
  75. package/docs/interfaces/index.NetworkProxyError.html +1 -1
  76. package/docs/interfaces/index.NetworkResourceEvent.html +1 -1
  77. package/docs/interfaces/index.NetworkResponseError.html +1 -1
  78. package/docs/interfaces/index.NetworkTimeoutError.html +1 -1
  79. package/docs/interfaces/index.ObjectEvent.html +1 -1
  80. package/docs/interfaces/index.PanoCircleMeshInterface.html +1 -1
  81. package/docs/interfaces/index.PanoEvent.html +1 -1
  82. package/docs/interfaces/index.PanoPrepareEvent.html +1 -1
  83. package/docs/interfaces/index.PanoTextureEvent.html +1 -1
  84. package/docs/interfaces/index.PanoramaControllerCustomInitArgs.html +1 -1
  85. package/docs/interfaces/index.PanoramaLikeControllerCustomInitArgs.html +1 -1
  86. package/docs/interfaces/index.ParameterMaterialValue.html +1 -1
  87. package/docs/interfaces/index.ParameterTilesetValue.html +1 -1
  88. package/docs/interfaces/index.ParameterValue.html +1 -1
  89. package/docs/interfaces/index.Pose.html +1 -1
  90. package/docs/interfaces/index.RenderEvent.html +1 -1
  91. package/docs/interfaces/index.ResolvedParameterValue.html +1 -1
  92. package/docs/interfaces/index.State.html +1 -1
  93. package/docs/interfaces/index.StateEvent.html +1 -1
  94. package/docs/interfaces/index.TextureOptions.html +1 -1
  95. package/docs/interfaces/index.TopviewControllerCustomInitArgs.html +1 -1
  96. package/docs/interfaces/index.VRPanoramaControllerCustomInitArgs.html +1 -1
  97. package/docs/interfaces/index.ViewLayer.html +1 -1
  98. package/docs/interfaces/index.WorkCubeHdrGainmapImage.html +2 -2
  99. package/docs/interfaces/index.WorkCubeImage.html +2 -2
  100. package/docs/interfaces/index.WorkImage.html +5 -5
  101. package/docs/interfaces/index.WorkInitial.html +8 -8
  102. package/docs/interfaces/index.WorkInitialJson.html +2 -2
  103. package/docs/interfaces/index.WorkJson.html +2 -4
  104. package/docs/interfaces/index.WorkModel.html +8 -8
  105. package/docs/interfaces/index.WorkModelJson.html +2 -2
  106. package/docs/interfaces/index.WorkModelLayer.html +6 -6
  107. package/docs/interfaces/index.WorkModelLayerJson.html +2 -2
  108. package/docs/interfaces/index.WorkObserver.html +23 -23
  109. package/docs/interfaces/index.WorkObserverJson.html +2 -2
  110. package/docs/interfaces/index.WorkPanoramaJson.html +2 -2
  111. package/docs/interfaces/index.WorkPanoramasJson.html +2 -2
  112. package/docs/interfaces/index.WorkTile.html +5 -5
  113. package/docs/interfaces/index.WorkVideo.html +4 -4
  114. package/docs/interfaces/index.WorksEvent.html +1 -1
  115. package/docs/interfaces/index.XRControllerEvent.html +1 -1
  116. package/docs/interfaces/index.XRGestureEvent.html +2 -2
  117. package/docs/interfaces/index.XRPanoramaControllerCustomInitArgs.html +1 -1
  118. package/docs/interfaces/index.XRSessionEvent.html +1 -1
  119. package/docs/modules/index.html +1 -1
  120. package/docs/types/index.LegacyEventType.html +3 -3
  121. package/docs/types/index.OutputTextureDataType.html +1 -1
  122. package/docs/types/index.ParseOptions.html +8 -8
  123. package/docs/types/index.PointCloudTransparencyMode.html +2 -0
  124. package/docs/types/index.Works.html +1 -1
  125. package/docs/variables/index.loadAt3d.html +2 -0
  126. package/docs/variables/index.loadDome.html +2 -0
  127. package/docs/variables/index.loadDomez.html +2 -0
  128. package/docs/variables/index.loadGltf.html +2 -0
  129. package/docs/variables/index.loadPbm.html +2 -0
  130. package/docs/variables/index.loadPly.html +2 -0
  131. package/five/application/five.d.ts +3 -2
  132. package/five/chunks/at3d.js +338 -0
  133. package/five/chunks/at3d.mjs +338 -0
  134. package/five/chunks/dome.js +338 -0
  135. package/five/chunks/dome.mjs +338 -0
  136. package/five/chunks/domez.js +338 -0
  137. package/five/chunks/domez.mjs +338 -0
  138. package/five/chunks/fbx.js +338 -0
  139. package/five/chunks/fbx.mjs +338 -0
  140. package/five/chunks/fflate.js +338 -0
  141. package/five/chunks/fflate.mjs +338 -0
  142. package/five/chunks/glTF-helpers.js +804 -0
  143. package/five/chunks/glTF-helpers.mjs +804 -0
  144. package/five/chunks/gltf.js +338 -0
  145. package/five/chunks/gltf.mjs +338 -0
  146. package/five/chunks/imageBitmap.js +338 -0
  147. package/five/chunks/imageBitmap.mjs +338 -0
  148. package/five/chunks/imageSupport.js +338 -0
  149. package/five/chunks/imageSupport.mjs +338 -0
  150. package/five/chunks/lzma.js +383 -0
  151. package/five/chunks/lzma.mjs +383 -0
  152. package/five/chunks/memoryUsage.js +339 -0
  153. package/five/chunks/memoryUsage.mjs +339 -0
  154. package/five/chunks/minimal.js +338 -0
  155. package/five/chunks/minimal.mjs +338 -0
  156. package/five/chunks/pbm.js +338 -0
  157. package/five/chunks/pbm.mjs +338 -0
  158. package/five/chunks/pbmGaussianSplattingObject.js +338 -0
  159. package/five/chunks/pbmGaussianSplattingObject.mjs +338 -0
  160. package/five/chunks/pbmMeshMaterial.js +338 -0
  161. package/five/chunks/pbmMeshMaterial.mjs +338 -0
  162. package/five/chunks/pick.js +338 -0
  163. package/five/chunks/pick.mjs +338 -0
  164. package/five/chunks/ply.js +339 -0
  165. package/five/chunks/ply.mjs +339 -0
  166. package/five/chunks/spz.js +364 -0
  167. package/five/chunks/spz.mjs +364 -0
  168. package/five/core/webglBlendEquationFix.d.ts +41 -0
  169. package/five/index.d.ts +0 -1
  170. package/five/index.js +49 -626
  171. package/five/index.mjs +229 -32052
  172. package/five/model/index.d.ts +18 -6
  173. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz.d.ts +1 -1
  174. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz_2.d.ts +1 -1
  175. package/five/model/loaders/spz.d.ts +1 -2
  176. package/five/model/loaders/spz.worker.d.ts +37 -0
  177. package/five/renderer/five-renderer.d.ts +1 -1
  178. package/five/renderer/index.d.ts +1 -1
  179. package/five/renderer/postprocessing/passes/pass.js +3 -3
  180. package/five/renderer/postprocessing/passes/pass.mjs +3 -3
  181. package/five/renderer/tools/full-screen-quad.js +3 -3
  182. package/five/renderer/tools/full-screen-quad.mjs +3 -3
  183. package/five/texture/videoTextureBridge.d.ts +124 -15
  184. package/five/thirdparty/sha256.d.ts +149 -0
  185. package/five/utils/calculateThreeMouse.js +3 -3
  186. package/five/utils/calculateThreeMouse.mjs +3 -3
  187. package/five/utils/distance.js +3 -3
  188. package/five/utils/distance.mjs +3 -3
  189. package/five/utils/isNil.js +3 -3
  190. package/five/utils/isNil.mjs +3 -3
  191. package/five/utils/memoryUsage.d.ts +1 -1
  192. package/five/utils/uuid.js +3 -3
  193. package/five/utils/uuid.mjs +3 -3
  194. package/five/work/work.d.ts +0 -7
  195. package/five/work/workJsonType.d.ts +0 -2
  196. package/gltf-loader/index.js +3 -3
  197. package/gltf-loader/index.mjs +3 -50
  198. package/line/index.js +3 -3
  199. package/line/index.mjs +3 -88
  200. package/package.json +1 -1
  201. package/plugins/BackgroundPlugin/Controller.js +4 -4
  202. package/plugins/BackgroundPlugin/Controller.mjs +4 -4
  203. package/plugins/BackgroundPlugin/index.js +3 -3
  204. package/plugins/BackgroundPlugin/index.mjs +3 -3
  205. package/plugins/BasePlugin/index.js +3 -3
  206. package/plugins/BasePlugin/index.mjs +3 -3
  207. package/plugins/CSS2DPlugin/Controller.js +3 -3
  208. package/plugins/CSS2DPlugin/Controller.mjs +3 -3
  209. package/plugins/CSS2DPlugin/index.js +3 -3
  210. package/plugins/CSS2DPlugin/index.mjs +3 -3
  211. package/plugins/CSS2DPlugin/style.css_raw.js +4 -4
  212. package/plugins/CSS2DPlugin/style.css_raw.mjs +4 -4
  213. package/plugins/CSS3DPlugin/Controller.js +3 -3
  214. package/plugins/CSS3DPlugin/Controller.mjs +3 -3
  215. package/plugins/CSS3DPlugin/index.js +3 -3
  216. package/plugins/CSS3DPlugin/index.mjs +3 -3
  217. package/plugins/CSS3DPlugin/style.css_raw.js +4 -4
  218. package/plugins/CSS3DPlugin/style.css_raw.mjs +4 -4
  219. package/plugins/FloorplanPlugin/Controller.js +3 -3
  220. package/plugins/FloorplanPlugin/Controller.mjs +3 -3
  221. package/plugins/FloorplanPlugin/index.js +3 -3
  222. package/plugins/FloorplanPlugin/index.mjs +3 -3
  223. package/plugins/FloorplanPlugin/render/assets.js +3 -3
  224. package/plugins/FloorplanPlugin/render/assets.mjs +3 -3
  225. package/plugins/FloorplanPlugin/render/index.js +3 -3
  226. package/plugins/FloorplanPlugin/render/index.mjs +3 -3
  227. package/plugins/FloorplanPlugin/render/isPointInPolygon.js +3 -3
  228. package/plugins/FloorplanPlugin/render/isPointInPolygon.mjs +3 -3
  229. package/plugins/FloorplanPlugin/render/renderFloor.js +3 -3
  230. package/plugins/FloorplanPlugin/render/renderFloor.mjs +3 -3
  231. package/plugins/FloorplanPlugin/render/roomLabelVisibility.js +3 -3
  232. package/plugins/FloorplanPlugin/render/roomLabelVisibility.mjs +3 -3
  233. package/plugins/FloorplanPlugin/render/style.css_raw.js +4 -4
  234. package/plugins/FloorplanPlugin/render/style.css_raw.mjs +4 -4
  235. package/plugins/FloorplanPlugin/utils/changeMode.js +3 -3
  236. package/plugins/FloorplanPlugin/utils/changeMode.mjs +3 -3
  237. package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.js +3 -3
  238. package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.mjs +3 -3
  239. package/plugins/FloorplanPlugin/utils/correctFiveState.js +3 -3
  240. package/plugins/FloorplanPlugin/utils/correctFiveState.mjs +3 -3
  241. package/plugins/FloorplanPlugin/utils/equal.js +3 -3
  242. package/plugins/FloorplanPlugin/utils/equal.mjs +3 -3
  243. package/plugins/FloorplanPlugin/utils/filter.js +3 -3
  244. package/plugins/FloorplanPlugin/utils/filter.mjs +3 -3
  245. package/plugins/FloorplanPlugin/utils/fiveModelLoad.js +3 -3
  246. package/plugins/FloorplanPlugin/utils/fiveModelLoad.mjs +3 -3
  247. package/plugins/FloorplanPlugin/utils/formatData.js +3 -3
  248. package/plugins/FloorplanPlugin/utils/formatData.mjs +3 -3
  249. package/plugins/FloorplanPlugin/utils/formatFloorplanJson.js +3 -3
  250. package/plugins/FloorplanPlugin/utils/formatFloorplanJson.mjs +3 -3
  251. package/plugins/FloorplanPlugin/utils/formatPosition.js +3 -3
  252. package/plugins/FloorplanPlugin/utils/formatPosition.mjs +3 -3
  253. package/plugins/FloorplanPlugin/utils/getDistanceFromModel.js +3 -3
  254. package/plugins/FloorplanPlugin/utils/getDistanceFromModel.mjs +3 -3
  255. package/plugins/FloorplanPlugin/utils/getPxmm.js +3 -3
  256. package/plugins/FloorplanPlugin/utils/getPxmm.mjs +3 -3
  257. package/plugins/FloorplanPlugin/utils/isTruelyObject.js +3 -3
  258. package/plugins/FloorplanPlugin/utils/isTruelyObject.mjs +3 -3
  259. package/plugins/FloorplanPlugin/utils/nearlyEqual.js +3 -3
  260. package/plugins/FloorplanPlugin/utils/nearlyEqual.mjs +3 -3
  261. package/plugins/FloorplanPlugin/utils/polylabel.js +3 -3
  262. package/plugins/FloorplanPlugin/utils/polylabel.mjs +3 -3
  263. package/plugins/FloorplanPlugin/utils/to.js +3 -3
  264. package/plugins/FloorplanPlugin/utils/to.mjs +3 -3
  265. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.js +3 -3
  266. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.mjs +3 -3
  267. package/plugins/GaussianSplattingEntranceAnimationPlugin/index.js +3 -3
  268. package/plugins/GaussianSplattingEntranceAnimationPlugin/index.mjs +3 -3
  269. package/plugins/Object3DHelperPlugin/Controller.js +3 -3
  270. package/plugins/Object3DHelperPlugin/Controller.mjs +3 -3
  271. package/plugins/Object3DHelperPlugin/Controllers/BaseController.js +3 -3
  272. package/plugins/Object3DHelperPlugin/Controllers/BaseController.mjs +3 -3
  273. package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.js +3 -3
  274. package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.mjs +3 -3
  275. package/plugins/Object3DHelperPlugin/Controllers/MoveController.js +3 -3
  276. package/plugins/Object3DHelperPlugin/Controllers/MoveController.mjs +3 -3
  277. package/plugins/Object3DHelperPlugin/Controllers/RotateController.js +3 -3
  278. package/plugins/Object3DHelperPlugin/Controllers/RotateController.mjs +3 -3
  279. package/plugins/Object3DHelperPlugin/FiveControllerWrapper.js +3 -3
  280. package/plugins/Object3DHelperPlugin/FiveControllerWrapper.mjs +3 -3
  281. package/plugins/Object3DHelperPlugin/Helper/BaseHelper.js +3 -3
  282. package/plugins/Object3DHelperPlugin/Helper/BaseHelper.mjs +3 -3
  283. package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.js +3 -3
  284. package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.mjs +3 -3
  285. package/plugins/Object3DHelperPlugin/Helper/MoveHelper.js +3 -3
  286. package/plugins/Object3DHelperPlugin/Helper/MoveHelper.mjs +3 -3
  287. package/plugins/Object3DHelperPlugin/Helper/RotateHelper.js +3 -3
  288. package/plugins/Object3DHelperPlugin/Helper/RotateHelper.mjs +3 -3
  289. package/plugins/Object3DHelperPlugin/constant.js +3 -3
  290. package/plugins/Object3DHelperPlugin/constant.mjs +3 -3
  291. package/plugins/Object3DHelperPlugin/index.js +3 -3
  292. package/plugins/Object3DHelperPlugin/index.mjs +3 -3
  293. package/plugins/Object3DHelperPlugin/utils/ArrowGroup.js +3 -3
  294. package/plugins/Object3DHelperPlugin/utils/ArrowGroup.mjs +3 -3
  295. package/plugins/Object3DHelperPlugin/utils/CenterHandle.js +3 -3
  296. package/plugins/Object3DHelperPlugin/utils/CenterHandle.mjs +3 -3
  297. package/plugins/Object3DHelperPlugin/utils/PlaneHandle.js +3 -3
  298. package/plugins/Object3DHelperPlugin/utils/PlaneHandle.mjs +3 -3
  299. package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.js +3 -3
  300. package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.mjs +3 -3
  301. package/plugins/Object3DHelperPlugin/utils/cameraHooks.js +3 -3
  302. package/plugins/Object3DHelperPlugin/utils/cameraHooks.mjs +3 -3
  303. package/plugins/Object3DHelperPlugin/utils/direction.js +3 -3
  304. package/plugins/Object3DHelperPlugin/utils/direction.mjs +3 -3
  305. package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.js +3 -3
  306. package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.mjs +3 -3
  307. package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.js +3 -3
  308. package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.mjs +3 -3
  309. package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.js +3 -3
  310. package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.mjs +3 -3
  311. package/plugins/Object3DHelperPlugin/utils/solidGuide.js +3 -3
  312. package/plugins/Object3DHelperPlugin/utils/solidGuide.mjs +3 -3
  313. package/plugins/Object3DHelperPlugin/utils/tipsDom.js +3 -3
  314. package/plugins/Object3DHelperPlugin/utils/tipsDom.mjs +3 -3
  315. package/plugins/PanoAnimePlugin/Controller.js +3 -3
  316. package/plugins/PanoAnimePlugin/Controller.mjs +3 -3
  317. package/plugins/PanoAnimePlugin/index.js +3 -3
  318. package/plugins/PanoAnimePlugin/index.mjs +3 -3
  319. package/plugins/WordPassPlugin/Controller.js +3 -3
  320. package/plugins/WordPassPlugin/Controller.mjs +3 -3
  321. package/plugins/WordPassPlugin/hersheyFont.js +3 -3
  322. package/plugins/WordPassPlugin/hersheyFont.mjs +3 -3
  323. package/plugins/WordPassPlugin/index.js +3 -3
  324. package/plugins/WordPassPlugin/index.mjs +3 -3
  325. package/plugins/WordPassPlugin/textToStrokeOrderStrokes.js +4 -4
  326. package/plugins/WordPassPlugin/textToStrokeOrderStrokes.mjs +4 -4
  327. package/plugins/WordPassPlugin/word-pass.js +3 -3
  328. package/plugins/WordPassPlugin/word-pass.mjs +3 -3
  329. package/plugins/index.js +3 -3
  330. package/plugins/index.mjs +3 -3
  331. package/plugins/thirdParty/CSS2DRenderer.js +3 -3
  332. package/plugins/thirdParty/CSS2DRenderer.mjs +3 -3
  333. package/plugins/thirdParty/CSS3DRenderer.js +3 -3
  334. package/plugins/thirdParty/CSS3DRenderer.mjs +3 -3
  335. package/plugins/thirdParty/doctorstrange-model.js +75 -75
  336. package/plugins/thirdParty/doctorstrange-model.mjs +75 -75
  337. package/plugins/thirdParty/domevents.js +3 -3
  338. package/plugins/thirdParty/domevents.mjs +3 -3
  339. package/plugins/utils/absoluteUrl.js +3 -3
  340. package/plugins/utils/absoluteUrl.mjs +3 -3
  341. package/plugins/utils/calculatePath.js +3 -3
  342. package/plugins/utils/calculatePath.mjs +3 -3
  343. package/plugins/utils/clamp.js +3 -3
  344. package/plugins/utils/clamp.mjs +3 -3
  345. package/plugins/utils/uuid.js +3 -3
  346. package/plugins/utils/uuid.mjs +3 -3
  347. package/react/hooks/useFiveModelReadyState.d.ts +1 -1
  348. package/react/index.js +3 -3
  349. package/react/index.mjs +3 -644
  350. package/sticker/index.js +13 -4
  351. package/sticker/index.mjs +43 -260
  352. package/umd/five-gltf-loader.js +3 -3
  353. package/umd/five-line.js +3 -3
  354. package/umd/five-plugins.js +2 -2
  355. package/umd/five-react.js +2 -2
  356. package/umd/five-sticker.js +13 -4
  357. package/umd/five-vfx.js +2 -2
  358. package/umd/five.js +154 -192
  359. package/vfx/index.js +3 -3
  360. package/vfx/index.mjs +3 -486
  361. package/work-downloader/index.js +3 -3
  362. package/work-downloader/index.mjs +3 -315
  363. package/docs/functions/index.loadAt3d.html +0 -1
  364. package/docs/functions/index.loadDome.html +0 -1
  365. package/docs/functions/index.loadDomez.html +0 -1
  366. package/docs/functions/index.loadGltf.html +0 -1
  367. package/docs/functions/index.loadPbm.html +0 -1
  368. package/docs/functions/index.loadPly.html +0 -10
  369. package/five/certificates/hardware.d.ts +0 -1
  370. package/five/thirdparty/jsrsasign.d.ts +0 -753
  371. package/five/work/_ALLOW_HOST.d.ts +0 -2
  372. package/five/work/keychain.d.ts +0 -5
  373. package/five/work/verify.d.ts +0 -7
  374. package/five/work/workVerify.d.ts +0 -2
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */import{__awaiter as e}from"tslib";function t(e){var t;return((t=e.models)==null?void 0:t.filter(t=>t.name===e.state.workCode)[0])||e.model}function n(e){var n;return!!((n=t(e))!=null&&n.loaded)}function r(r){return e(this,void 0,void 0,function*(){return new Promise(e=>{if(n(r)){e();return}let i=n=>{n===t(r)&&(r.off(`modelLoaded`,i),e())};r.on(`modelLoaded`,i)})})}export{n as fiveModelIsLoaded,t as getFiveModel,r as waitFiveModelLoaded};
338
+ */import{__awaiter}from"tslib";function getFiveModel(five){var _a;return((_a=five.models)==null?void 0:_a.filter(m=>m.name===five.state.workCode)[0])||five.model}function fiveModelIsLoaded(five){var _a;return!!((_a=getFiveModel(five))!=null&&_a.loaded)}function waitFiveModelLoaded(five){return __awaiter(this,void 0,void 0,function*(){return new Promise(resolve=>{if(fiveModelIsLoaded(five)){resolve();return}let handleModelLoaded=model=>{model===getFiveModel(five)&&(five.off(`modelLoaded`,handleModelLoaded),resolve())};five.on(`modelLoaded`,handleModelLoaded)})})}export{fiveModelIsLoaded,getFiveModel,waitFiveModelLoaded};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */let e=require("tslib");function t(t){return(0,e.__awaiter)(this,void 0,void 0,function*(){return Promise.all(t.map(t=>(0,e.__awaiter)(this,void 0,void 0,function*(){if(!t.svg_url)return{url:t.url,index:t.index};let e=yield fetch(t.svg_url).then(e=>e.text()).catch(()=>void 0);return{url:t.url,index:t.index,svgUrl:t.svg_url,svgContent:e}})))})}function n(t){let{room_type:n,floor_type:r,room_label:i,observer_indexs:a,customized_name:o,dimension:s}=t,c=(0,e.__rest)(t,[`room_type`,`floor_type`,`room_label`,`observer_indexs`,`customized_name`,`dimension`]);return Object.assign(Object.assign({},c),{roomType:n,floorType:r,roomLabel:{position:i.position,positionInImage:i.position_in_image},observerIndexs:a,customizedName:o,dimension:s?{width:s.width,height:s.height,vertical:s.vertical,horizontal:s.horizontal}:void 0})}function r(t){let{floor_name:r,floor_index:i,rooms:a}=t,o=(0,e.__rest)(t,[`floor_name`,`floor_index`,`rooms`]);return Object.assign(Object.assign({},o),{floorName:r,floorIndex:i,rooms:a.map(n)})}function i(e){return{floorIndex:e.floor_index,positionInImage:e.position_in_image}}function a(e){return{positionInImage:e.position_in_image,northRad:e.north_rad,roomId:e.room_id,floorIndex:e.floor_index}}function o(n){return(0,e.__awaiter)(this,void 0,void 0,function*(){var e,o;let{computed_data:s}=n;return{outlines:yield t((e=n.outlines)==null?[]:e),bounding:s.bounding,floorDatas:s.floor_datas.map(r),entrance:s.entrance?a(s.entrance):null,observers:((o=s.observers)==null?[]:o).map(i)}})}exports.default=o,exports.formatData=o;
338
+ */let tslib=require("tslib");function formatOutlines(outlines){return(0,tslib.__awaiter)(this,void 0,void 0,function*(){return Promise.all(outlines.map(outline=>(0,tslib.__awaiter)(this,void 0,void 0,function*(){if(!outline.svg_url)return{url:outline.url,index:outline.index};let svgContent=yield fetch(outline.svg_url).then(res=>res.text()).catch(()=>void 0);return{url:outline.url,index:outline.index,svgUrl:outline.svg_url,svgContent}})))})}function formatRoom(data){let{room_type,floor_type,room_label,observer_indexs,customized_name,dimension}=data,rest=(0,tslib.__rest)(data,[`room_type`,`floor_type`,`room_label`,`observer_indexs`,`customized_name`,`dimension`]);return Object.assign(Object.assign({},rest),{roomType:room_type,floorType:floor_type,roomLabel:{position:room_label.position,positionInImage:room_label.position_in_image},observerIndexs:observer_indexs,customizedName:customized_name,dimension:dimension?{width:dimension.width,height:dimension.height,vertical:dimension.vertical,horizontal:dimension.horizontal}:void 0})}function formatFloorData(data){let{floor_name,floor_index,rooms}=data,rest=(0,tslib.__rest)(data,[`floor_name`,`floor_index`,`rooms`]);return Object.assign(Object.assign({},rest),{floorName:floor_name,floorIndex:floor_index,rooms:rooms.map(formatRoom)})}function formateFloorplanObserver(data){return{floorIndex:data.floor_index,positionInImage:data.position_in_image}}function formatFloorplanEntrance(data){return{positionInImage:data.position_in_image,northRad:data.north_rad,roomId:data.room_id,floorIndex:data.floor_index}}function formatData(data){return(0,tslib.__awaiter)(this,void 0,void 0,function*(){var _a,_b;let{computed_data}=data;return{outlines:yield formatOutlines((_a=data.outlines)==null?[]:_a),bounding:computed_data.bounding,floorDatas:computed_data.floor_datas.map(formatFloorData),entrance:computed_data.entrance?formatFloorplanEntrance(computed_data.entrance):null,observers:((_b=computed_data.observers)==null?[]:_b).map(formateFloorplanObserver)}})}exports.default=formatData,exports.formatData=formatData;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */import{__awaiter as e,__rest as t}from"tslib";function n(t){return e(this,void 0,void 0,function*(){return Promise.all(t.map(t=>e(this,void 0,void 0,function*(){if(!t.svg_url)return{url:t.url,index:t.index};let e=yield fetch(t.svg_url).then(e=>e.text()).catch(()=>void 0);return{url:t.url,index:t.index,svgUrl:t.svg_url,svgContent:e}})))})}function r(e){let{room_type:n,floor_type:r,room_label:i,observer_indexs:a,customized_name:o,dimension:s}=e,c=t(e,[`room_type`,`floor_type`,`room_label`,`observer_indexs`,`customized_name`,`dimension`]);return Object.assign(Object.assign({},c),{roomType:n,floorType:r,roomLabel:{position:i.position,positionInImage:i.position_in_image},observerIndexs:a,customizedName:o,dimension:s?{width:s.width,height:s.height,vertical:s.vertical,horizontal:s.horizontal}:void 0})}function i(e){let{floor_name:n,floor_index:i,rooms:a}=e,o=t(e,[`floor_name`,`floor_index`,`rooms`]);return Object.assign(Object.assign({},o),{floorName:n,floorIndex:i,rooms:a.map(r)})}function a(e){return{floorIndex:e.floor_index,positionInImage:e.position_in_image}}function o(e){return{positionInImage:e.position_in_image,northRad:e.north_rad,roomId:e.room_id,floorIndex:e.floor_index}}function s(t){return e(this,void 0,void 0,function*(){var e,r;let{computed_data:s}=t;return{outlines:yield n((e=t.outlines)==null?[]:e),bounding:s.bounding,floorDatas:s.floor_datas.map(i),entrance:s.entrance?o(s.entrance):null,observers:((r=s.observers)==null?[]:r).map(a)}})}export{s as default,s as formatData};
338
+ */import{__awaiter,__rest}from"tslib";function formatOutlines(outlines){return __awaiter(this,void 0,void 0,function*(){return Promise.all(outlines.map(outline=>__awaiter(this,void 0,void 0,function*(){if(!outline.svg_url)return{url:outline.url,index:outline.index};let svgContent=yield fetch(outline.svg_url).then(res=>res.text()).catch(()=>void 0);return{url:outline.url,index:outline.index,svgUrl:outline.svg_url,svgContent}})))})}function formatRoom(data){let{room_type,floor_type,room_label,observer_indexs,customized_name,dimension}=data,rest=__rest(data,[`room_type`,`floor_type`,`room_label`,`observer_indexs`,`customized_name`,`dimension`]);return Object.assign(Object.assign({},rest),{roomType:room_type,floorType:floor_type,roomLabel:{position:room_label.position,positionInImage:room_label.position_in_image},observerIndexs:observer_indexs,customizedName:customized_name,dimension:dimension?{width:dimension.width,height:dimension.height,vertical:dimension.vertical,horizontal:dimension.horizontal}:void 0})}function formatFloorData(data){let{floor_name,floor_index,rooms}=data,rest=__rest(data,[`floor_name`,`floor_index`,`rooms`]);return Object.assign(Object.assign({},rest),{floorName:floor_name,floorIndex:floor_index,rooms:rooms.map(formatRoom)})}function formateFloorplanObserver(data){return{floorIndex:data.floor_index,positionInImage:data.position_in_image}}function formatFloorplanEntrance(data){return{positionInImage:data.position_in_image,northRad:data.north_rad,roomId:data.room_id,floorIndex:data.floor_index}}function formatData(data){return __awaiter(this,void 0,void 0,function*(){var _a,_b;let{computed_data}=data;return{outlines:yield formatOutlines((_a=data.outlines)==null?[]:_a),bounding:computed_data.bounding,floorDatas:computed_data.floor_datas.map(formatFloorData),entrance:computed_data.entrance?formatFloorplanEntrance(computed_data.entrance):null,observers:((_b=computed_data.observers)==null?[]:_b).map(formateFloorplanObserver)}})}export{formatData as default,formatData};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */const e=require("../../../five/utils/distance.js"),t=require("../../thirdParty/doctorstrange-model.js"),n=require("./polylabel.js");var r=500;function i(e,n={}){let{observers:r=[],locate:i=`zh-CN`,outlines:o=[]}=n;if(!e||e.floorplans.length===0)return null;let s=e.floorplans.map(e=>{let n=new t.Canvas;return n.load(e),n}),c=l(s,e.vrData),p=e=>u(e,c);return{outlines:o,computed_data:{floor_datas:a(s,e,r,c,i),bounding:c,entrance:d(s,p),observers:f(s,e.vrData,r,p)}}}function a(e,t,n,r,i){return e.map((e,a)=>{let l=e.areas.map(t=>{let n=o(e,t),a=s(n),l={position:a,position_in_image:u(a,r)};return{id:t.id,size:e.info.ruleType===1?t.size(!1):t.size(),name:t.labelName(i),customized_name:t.customizedName||void 0,path:n,room_type:t.roomType(),floor_type:t.floorType(),room_label:l,observer_indexs:[],dimension:c(t,a)}}),d=e.areas,f=0;return n.filter(e=>e.floor_index===a).forEach(e=>{let n=p(e,t.vrData),r=-1;for(let e=f;e<d.length&&r===-1;e++)d[e].isPointInArea(n)&&(r=e);for(let e=f;e>=0&&r===-1;e--)d[e].isPointInArea(n)&&(r=e);r!==-1&&(f=r,l[r].observer_indexs.push(e.index))}),{floor_name:t.floorplans[a].name,floor_index:a,is_has_wall:e.lines.length>0,rules:m(e),rooms:l}})}function o(t,n){let r=[],i=n.points[0];return n.points.concat(i).reduce((n,i)=>{r.push(n);let a=t.getLineByPoints(n,i);if(!a)return i;if(a.curve){let t=a.curveCenterPoint(),o=a.curveR(),s=Math.abs(o-e.distance(t,i)*a.length()/Math.abs(a.curve)/4),c=[a.curveCenterPoint.call({curve:s,points:[n,t]}),a.curveCenterPoint.call({curve:-s,points:[n,t]})].sort((t,n)=>e.distance(n,i)-e.distance(t,i))[0],l=[a.curveCenterPoint.call({curve:s,points:[t,i]}),a.curveCenterPoint.call({curve:-s,points:[t,i]})].sort((t,r)=>e.distance(r,n)-e.distance(t,n))[0];r.push(c,t,l)}if(!a.isEdge()||a.items.length===0)return i;let o=a.items.filter(e=>e.type===7||e.type===11);return o.length===0||o.forEach(t=>{let i=t.startPointAt(),a=t.endPointAt();e.distance(i,n)>e.distance(a,n)&&([i,a]=[a,i]);let[o,s]=g(700,[i,a])[0];r.push(i,o,s,a)}),i},i),r.map(({x:e,y:t})=>({x:e,y:t}))}function s(e){let[t,r]=n.polylabel([e.map(({x:e,y:t})=>[Math.trunc(e),Math.trunc(t)])],1);return{x:t,y:r}}function c(e,t){let n=e.innerPath();if(n.length===0)return;let r=1/0,i=-1/0,a=1/0,o=-1/0;n.forEach(e=>{r=Math.min(r,e.x),i=Math.max(i,e.x),a=Math.min(a,e.y),o=Math.max(o,e.y)});let s=i-r,c=o-a,l=Math.round(t.x),u=Math.round(t.y);return{width:s,height:c,vertical:[{x:l,y:a},{x:l,y:o}],horizontal:[{x:r,y:u},{x:i,y:u}]}}function l(e,t){let n=1e3,r={min:{x:1/0,y:1/0},max:{x:-1/0,y:-1/0},origin:{x:0,y:0}};function i({x:e,y:t}){r.min.x=Math.min(e,r.min.x),r.min.y=Math.min(t,r.min.y),r.max.x=Math.max(e,r.max.x),r.max.y=Math.max(t,r.max.y)}return e.forEach(e=>{e.points.forEach(e=>i(e)),e.lines.forEach(e=>{e.curve!==0&&i(e.curveCenterPoint())})}),r.min.x-=n,r.min.y-=n,r.max.x+=n,r.max.y+=n,r.origin.x=t.origin.left,r.origin.y=t.origin.top,r}function u(e,t){let n=t.max.x-t.min.x,r=t.max.y-t.min.y;return{x:n===0?0:(e.x-t.min.x)/n,y:r===0?0:(t.max.y-e.y)/r}}function d(e,t){let n=e.map(e=>e.lineItems).reduce((e,t)=>e.concat(t),[]).find(e=>e.entrance!==null);if(!n)return null;let r=n.canvas,i=r.areas.find(e=>n.line.points.every(t=>e.points.indexOf(t)>=0));if(!i)return null;let a=v([n.startPointAt(),n.endPointAt()]),o=n.towardsRadWithArea(i)+n.entrance/180*Math.PI;return{position_in_image:t(a),north_rad:o,room_id:i.id,floor_index:e.findIndex(e=>e===r)}}function f(e,t,n,r){return n.filter(t=>e[t.floor_index]).map(e=>({floor_index:e.floor_index,position_in_image:r(p(e,t))}))}function p(e,t){return{x:e.position[0]*1e3+t.origin.left,y:-e.position[2]*1e3+t.origin.top}}function m(e){let t=[],n=[],i=[],a=[];for(let o of e.lines){if(!o.edgeComputed||!o.points.length)continue;let s=e.areas.find(e=>o.points.every(t=>e.points.includes(t)));if(!s)continue;let c=o.edgePoints(!0),l=s.innerPath(!0,!1),[u,d]=c.filter(e=>l.some(t=>h(t,e)));if(!u||!d)continue;let f={x:u.x|0,y:u.y|0},p={x:d.x|0,y:d.y|0},m=o.towardsRadWithArea(s),g=Math.cos(m),_=Math.sin(m);Math.abs(f.y-p.y)>r&&(g<0?a.push([f,p].sort((e,t)=>e.y-t.y)):g>0&&n.push([f,p].sort((e,t)=>e.y-t.y))),Math.abs(f.x-p.x)>r&&(_<0?i.push([f,p].sort((e,t)=>e.x-t.x)):_>0&&t.push([f,p].sort((e,t)=>e.x-t.x)))}return{top:t,right:n,bottom:i,left:a}}function h(e,t){return e.x===t.x&&e.y===t.y}function g(e,t){let n=_(t[1],t[0]),r,i;Math.abs(n)===1/0?(i=0,r=e):(i=Math.sqrt(e*e/(n*n+1)),r=i/-(1/n));let a=[[{x:t[0].x-r,y:t[0].y-i},{x:t[1].x-r,y:t[1].y-i}],[{x:t[0].x+r,y:t[0].y+i},{x:t[1].x+r,y:t[1].y+i}]];return t[1].x-t[0].x<0?a:t[1].x-t[0].x>0||t[1].y-t[0].y<0?a.reverse():a}function _(e,t){return(e.y-t.y)/(e.x-t.x)}function v(e){let t=Math.min(...e.map(e=>e.x)),n=Math.max(...e.map(e=>e.x)),r=Math.min(...e.map(e=>e.y)),i=Math.max(...e.map(e=>e.y));return{x:(t+n)/2,y:(r+i)/2}}exports.default=i,exports.formatFloorplanJson=i;
338
+ */const require_distance=require("../../../five/utils/distance.js"),require_doctorstrange_model=require("../../thirdParty/doctorstrange-model.js"),require_polylabel=require("./polylabel.js");var MIN_RULE_LENGTH=500;function formatFloorplanJson(floorplanJson,options={}){let{observers=[],locate=`zh-CN`,outlines=[]}=options;if(!floorplanJson||floorplanJson.floorplans.length===0)return null;let canvasArray=floorplanJson.floorplans.map(floorplan=>{let canvas=new require_doctorstrange_model.Canvas;return canvas.load(floorplan),canvas}),bounding=getBounding(canvasArray,floorplanJson.vrData),toImagePosition=point=>floorplanPosition2ImagePosition(point,bounding);return{outlines,computed_data:{floor_datas:getFloorDatas(canvasArray,floorplanJson,observers,bounding,locate),bounding,entrance:getEntrance(canvasArray,toImagePosition),observers:getObservers(canvasArray,floorplanJson.vrData,observers,toImagePosition)}}}function getFloorDatas(canvasArray,floorplanJson,observers,bounding,locate){return canvasArray.map((canvas,floorIndex)=>{let rooms=canvas.areas.map(area=>{let path=getCompleteRoomPoints(canvas,area),position=getCenterPointOfPath(path),room_label={position,position_in_image:floorplanPosition2ImagePosition(position,bounding)};return{id:area.id,size:canvas.info.ruleType===1?area.size(!1):area.size(),name:area.labelName(locate),customized_name:area.customizedName||void 0,path,room_type:area.roomType(),floor_type:area.floorType(),room_label,observer_indexs:[],dimension:getDimensionOfArea(area,position)}}),areas=canvas.areas,lastAreaIndex=0;return observers.filter(observer=>observer.floor_index===floorIndex).forEach(observer=>{let point=observerWorldPoint(observer,floorplanJson.vrData),findIndex=-1;for(let i=lastAreaIndex;i<areas.length&&findIndex===-1;i++)areas[i].isPointInArea(point)&&(findIndex=i);for(let i=lastAreaIndex;i>=0&&findIndex===-1;i--)areas[i].isPointInArea(point)&&(findIndex=i);findIndex!==-1&&(lastAreaIndex=findIndex,rooms[findIndex].observer_indexs.push(observer.index))}),{floor_name:floorplanJson.floorplans[floorIndex].name,floor_index:floorIndex,is_has_wall:canvas.lines.length>0,rules:getFloorplanRules(canvas),rooms}})}function getCompleteRoomPoints(canvas,area){let points=[],firstPoint=area.points[0];return area.points.concat(firstPoint).reduce((prevPoint,currPoint)=>{points.push(prevPoint);let line=canvas.getLineByPoints(prevPoint,currPoint);if(!line)return currPoint;if(line.curve){let centerPoint=line.curveCenterPoint(),curveR=line.curveR(),assistantCurveAbs=Math.abs(curveR-require_distance.distance(centerPoint,currPoint)*line.length()/Math.abs(line.curve)/4),p3=[line.curveCenterPoint.call({curve:assistantCurveAbs,points:[prevPoint,centerPoint]}),line.curveCenterPoint.call({curve:-assistantCurveAbs,points:[prevPoint,centerPoint]})].sort((a,b)=>require_distance.distance(b,currPoint)-require_distance.distance(a,currPoint))[0],p4=[line.curveCenterPoint.call({curve:assistantCurveAbs,points:[centerPoint,currPoint]}),line.curveCenterPoint.call({curve:-assistantCurveAbs,points:[centerPoint,currPoint]})].sort((a,b)=>require_distance.distance(b,prevPoint)-require_distance.distance(a,prevPoint))[0];points.push(p3,centerPoint,p4)}if(!line.isEdge()||line.items.length===0)return currPoint;let lineItems=line.items.filter(lineItem=>lineItem.type===7||lineItem.type===11);return lineItems.length===0||lineItems.forEach(lineItem=>{let start=lineItem.startPointAt(),end=lineItem.endPointAt();require_distance.distance(start,prevPoint)>require_distance.distance(end,prevPoint)&&([start,end]=[end,start]);let[offsetStart,offsetEnd]=parallelLineOfLine(700,[start,end])[0];points.push(start,offsetStart,offsetEnd,end)}),currPoint},firstPoint),points.map(({x,y})=>({x,y}))}function getCenterPointOfPath(path){let[x,y]=require_polylabel.polylabel([path.map(({x,y})=>[Math.trunc(x),Math.trunc(y)])],1);return{x,y}}function getDimensionOfArea(area,centerPoint){let points=area.innerPath();if(points.length===0)return;let minX=1/0,maxX=-1/0,minY=1/0,maxY=-1/0;points.forEach(point=>{minX=Math.min(minX,point.x),maxX=Math.max(maxX,point.x),minY=Math.min(minY,point.y),maxY=Math.max(maxY,point.y)});let width=maxX-minX,height=maxY-minY,x=Math.round(centerPoint.x),y=Math.round(centerPoint.y);return{width,height,vertical:[{x,y:minY},{x,y:maxY}],horizontal:[{x:minX,y},{x:maxX,y}]}}function getBounding(canvasArray,vrData){let padding=1e3,result={min:{x:1/0,y:1/0},max:{x:-1/0,y:-1/0},origin:{x:0,y:0}};function applyResult({x,y}){result.min.x=Math.min(x,result.min.x),result.min.y=Math.min(y,result.min.y),result.max.x=Math.max(x,result.max.x),result.max.y=Math.max(y,result.max.y)}return canvasArray.forEach(canvas=>{canvas.points.forEach(point=>applyResult(point)),canvas.lines.forEach(line=>{line.curve!==0&&applyResult(line.curveCenterPoint())})}),result.min.x-=padding,result.min.y-=padding,result.max.x+=padding,result.max.y+=padding,result.origin.x=vrData.origin.left,result.origin.y=vrData.origin.top,result}function floorplanPosition2ImagePosition(point,bounding){let boundingWidth=bounding.max.x-bounding.min.x,boundingHeight=bounding.max.y-bounding.min.y;return{x:boundingWidth===0?0:(point.x-bounding.min.x)/boundingWidth,y:boundingHeight===0?0:(bounding.max.y-point.y)/boundingHeight}}function getEntrance(canvasArray,toImagePosition){let lineItem=canvasArray.map(canvas=>canvas.lineItems).reduce((acc,val)=>acc.concat(val),[]).find(item=>item.entrance!==null);if(!lineItem)return null;let canvas=lineItem.canvas,area=canvas.areas.find(area=>lineItem.line.points.every(point=>area.points.indexOf(point)>=0));if(!area)return null;let position=getCenterPointOfPoints([lineItem.startPointAt(),lineItem.endPointAt()]),northRad=lineItem.towardsRadWithArea(area)+lineItem.entrance/180*Math.PI;return{position_in_image:toImagePosition(position),north_rad:northRad,room_id:area.id,floor_index:canvasArray.findIndex(canvasItem=>canvasItem===canvas)}}function getObservers(canvasArray,vrData,observers,toImagePosition){return observers.filter(observer=>canvasArray[observer.floor_index]).map(observer=>({floor_index:observer.floor_index,position_in_image:toImagePosition(observerWorldPoint(observer,vrData))}))}function observerWorldPoint(observer,vrData){return{x:observer.position[0]*1e3+vrData.origin.left,y:-observer.position[2]*1e3+vrData.origin.top}}function getFloorplanRules(canvas){let top=[],right=[],bottom=[],left=[];for(let line of canvas.lines){if(!line.edgeComputed||!line.points.length)continue;let area=canvas.areas.find(area=>line.points.every(point=>area.points.includes(point)));if(!area)continue;let linePoints=line.edgePoints(!0),areaInnerPath=area.innerPath(!0,!1),[pt0,pt1]=linePoints.filter(point=>areaInnerPath.some(p=>samePointAt(p,point)));if(!pt0||!pt1)continue;let roundedPt0={x:pt0.x|0,y:pt0.y|0},roundedPt1={x:pt1.x|0,y:pt1.y|0},towardsRad=line.towardsRadWithArea(area),relativeX=Math.cos(towardsRad),relativeY=Math.sin(towardsRad);Math.abs(roundedPt0.y-roundedPt1.y)>MIN_RULE_LENGTH&&(relativeX<0?left.push([roundedPt0,roundedPt1].sort((a,b)=>a.y-b.y)):relativeX>0&&right.push([roundedPt0,roundedPt1].sort((a,b)=>a.y-b.y))),Math.abs(roundedPt0.x-roundedPt1.x)>MIN_RULE_LENGTH&&(relativeY<0?bottom.push([roundedPt0,roundedPt1].sort((a,b)=>a.x-b.x)):relativeY>0&&top.push([roundedPt0,roundedPt1].sort((a,b)=>a.x-b.x)))}return{top,right,bottom,left}}function samePointAt(point1,point2){return point1.x===point2.x&&point1.y===point2.y}function parallelLineOfLine(distanceOfLine,linePoints){let k=getK(linePoints[1],linePoints[0]),dx,dy;Math.abs(k)===1/0?(dy=0,dx=distanceOfLine):(dy=Math.sqrt(distanceOfLine*distanceOfLine/(k*k+1)),dx=dy/-(1/k));let result=[[{x:linePoints[0].x-dx,y:linePoints[0].y-dy},{x:linePoints[1].x-dx,y:linePoints[1].y-dy}],[{x:linePoints[0].x+dx,y:linePoints[0].y+dy},{x:linePoints[1].x+dx,y:linePoints[1].y+dy}]];return linePoints[1].x-linePoints[0].x<0?result:linePoints[1].x-linePoints[0].x>0||linePoints[1].y-linePoints[0].y<0?result.reverse():result}function getK(p0,p1){return(p0.y-p1.y)/(p0.x-p1.x)}function getCenterPointOfPoints(points){let minX=Math.min(...points.map(p=>p.x)),maxX=Math.max(...points.map(p=>p.x)),minY=Math.min(...points.map(p=>p.y)),maxY=Math.max(...points.map(p=>p.y));return{x:(minX+maxX)/2,y:(minY+maxY)/2}}exports.default=formatFloorplanJson,exports.formatFloorplanJson=formatFloorplanJson;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */import{distance as e}from"../../../five/utils/distance.mjs";import{Canvas as t}from"../../thirdParty/doctorstrange-model.mjs";import{polylabel as n}from"./polylabel.mjs";var r=500;function i(e,n={}){let{observers:r=[],locate:i=`zh-CN`,outlines:o=[]}=n;if(!e||e.floorplans.length===0)return null;let s=e.floorplans.map(e=>{let n=new t;return n.load(e),n}),c=l(s,e.vrData),p=e=>u(e,c);return{outlines:o,computed_data:{floor_datas:a(s,e,r,c,i),bounding:c,entrance:d(s,p),observers:f(s,e.vrData,r,p)}}}function a(e,t,n,r,i){return e.map((e,a)=>{let l=e.areas.map(t=>{let n=o(e,t),a=s(n),l={position:a,position_in_image:u(a,r)};return{id:t.id,size:e.info.ruleType===1?t.size(!1):t.size(),name:t.labelName(i),customized_name:t.customizedName||void 0,path:n,room_type:t.roomType(),floor_type:t.floorType(),room_label:l,observer_indexs:[],dimension:c(t,a)}}),d=e.areas,f=0;return n.filter(e=>e.floor_index===a).forEach(e=>{let n=p(e,t.vrData),r=-1;for(let e=f;e<d.length&&r===-1;e++)d[e].isPointInArea(n)&&(r=e);for(let e=f;e>=0&&r===-1;e--)d[e].isPointInArea(n)&&(r=e);r!==-1&&(f=r,l[r].observer_indexs.push(e.index))}),{floor_name:t.floorplans[a].name,floor_index:a,is_has_wall:e.lines.length>0,rules:m(e),rooms:l}})}function o(t,n){let r=[],i=n.points[0];return n.points.concat(i).reduce((n,i)=>{r.push(n);let a=t.getLineByPoints(n,i);if(!a)return i;if(a.curve){let t=a.curveCenterPoint(),o=a.curveR(),s=Math.abs(o-e(t,i)*a.length()/Math.abs(a.curve)/4),c=[a.curveCenterPoint.call({curve:s,points:[n,t]}),a.curveCenterPoint.call({curve:-s,points:[n,t]})].sort((t,n)=>e(n,i)-e(t,i))[0],l=[a.curveCenterPoint.call({curve:s,points:[t,i]}),a.curveCenterPoint.call({curve:-s,points:[t,i]})].sort((t,r)=>e(r,n)-e(t,n))[0];r.push(c,t,l)}if(!a.isEdge()||a.items.length===0)return i;let o=a.items.filter(e=>e.type===7||e.type===11);return o.length===0||o.forEach(t=>{let i=t.startPointAt(),a=t.endPointAt();e(i,n)>e(a,n)&&([i,a]=[a,i]);let[o,s]=g(700,[i,a])[0];r.push(i,o,s,a)}),i},i),r.map(({x:e,y:t})=>({x:e,y:t}))}function s(e){let[t,r]=n([e.map(({x:e,y:t})=>[Math.trunc(e),Math.trunc(t)])],1);return{x:t,y:r}}function c(e,t){let n=e.innerPath();if(n.length===0)return;let r=1/0,i=-1/0,a=1/0,o=-1/0;n.forEach(e=>{r=Math.min(r,e.x),i=Math.max(i,e.x),a=Math.min(a,e.y),o=Math.max(o,e.y)});let s=i-r,c=o-a,l=Math.round(t.x),u=Math.round(t.y);return{width:s,height:c,vertical:[{x:l,y:a},{x:l,y:o}],horizontal:[{x:r,y:u},{x:i,y:u}]}}function l(e,t){let n=1e3,r={min:{x:1/0,y:1/0},max:{x:-1/0,y:-1/0},origin:{x:0,y:0}};function i({x:e,y:t}){r.min.x=Math.min(e,r.min.x),r.min.y=Math.min(t,r.min.y),r.max.x=Math.max(e,r.max.x),r.max.y=Math.max(t,r.max.y)}return e.forEach(e=>{e.points.forEach(e=>i(e)),e.lines.forEach(e=>{e.curve!==0&&i(e.curveCenterPoint())})}),r.min.x-=n,r.min.y-=n,r.max.x+=n,r.max.y+=n,r.origin.x=t.origin.left,r.origin.y=t.origin.top,r}function u(e,t){let n=t.max.x-t.min.x,r=t.max.y-t.min.y;return{x:n===0?0:(e.x-t.min.x)/n,y:r===0?0:(t.max.y-e.y)/r}}function d(e,t){let n=e.map(e=>e.lineItems).reduce((e,t)=>e.concat(t),[]).find(e=>e.entrance!==null);if(!n)return null;let r=n.canvas,i=r.areas.find(e=>n.line.points.every(t=>e.points.indexOf(t)>=0));if(!i)return null;let a=v([n.startPointAt(),n.endPointAt()]),o=n.towardsRadWithArea(i)+n.entrance/180*Math.PI;return{position_in_image:t(a),north_rad:o,room_id:i.id,floor_index:e.findIndex(e=>e===r)}}function f(e,t,n,r){return n.filter(t=>e[t.floor_index]).map(e=>({floor_index:e.floor_index,position_in_image:r(p(e,t))}))}function p(e,t){return{x:e.position[0]*1e3+t.origin.left,y:-e.position[2]*1e3+t.origin.top}}function m(e){let t=[],n=[],i=[],a=[];for(let o of e.lines){if(!o.edgeComputed||!o.points.length)continue;let s=e.areas.find(e=>o.points.every(t=>e.points.includes(t)));if(!s)continue;let c=o.edgePoints(!0),l=s.innerPath(!0,!1),[u,d]=c.filter(e=>l.some(t=>h(t,e)));if(!u||!d)continue;let f={x:u.x|0,y:u.y|0},p={x:d.x|0,y:d.y|0},m=o.towardsRadWithArea(s),g=Math.cos(m),_=Math.sin(m);Math.abs(f.y-p.y)>r&&(g<0?a.push([f,p].sort((e,t)=>e.y-t.y)):g>0&&n.push([f,p].sort((e,t)=>e.y-t.y))),Math.abs(f.x-p.x)>r&&(_<0?i.push([f,p].sort((e,t)=>e.x-t.x)):_>0&&t.push([f,p].sort((e,t)=>e.x-t.x)))}return{top:t,right:n,bottom:i,left:a}}function h(e,t){return e.x===t.x&&e.y===t.y}function g(e,t){let n=_(t[1],t[0]),r,i;Math.abs(n)===1/0?(i=0,r=e):(i=Math.sqrt(e*e/(n*n+1)),r=i/-(1/n));let a=[[{x:t[0].x-r,y:t[0].y-i},{x:t[1].x-r,y:t[1].y-i}],[{x:t[0].x+r,y:t[0].y+i},{x:t[1].x+r,y:t[1].y+i}]];return t[1].x-t[0].x<0?a:t[1].x-t[0].x>0||t[1].y-t[0].y<0?a.reverse():a}function _(e,t){return(e.y-t.y)/(e.x-t.x)}function v(e){let t=Math.min(...e.map(e=>e.x)),n=Math.max(...e.map(e=>e.x)),r=Math.min(...e.map(e=>e.y)),i=Math.max(...e.map(e=>e.y));return{x:(t+n)/2,y:(r+i)/2}}export{i as default,i as formatFloorplanJson};
338
+ */import{distance}from"../../../five/utils/distance.mjs";import{Canvas}from"../../thirdParty/doctorstrange-model.mjs";import{polylabel}from"./polylabel.mjs";var MIN_RULE_LENGTH=500;function formatFloorplanJson(floorplanJson,options={}){let{observers=[],locate=`zh-CN`,outlines=[]}=options;if(!floorplanJson||floorplanJson.floorplans.length===0)return null;let canvasArray=floorplanJson.floorplans.map(floorplan=>{let canvas=new Canvas;return canvas.load(floorplan),canvas}),bounding=getBounding(canvasArray,floorplanJson.vrData),toImagePosition=point=>floorplanPosition2ImagePosition(point,bounding);return{outlines,computed_data:{floor_datas:getFloorDatas(canvasArray,floorplanJson,observers,bounding,locate),bounding,entrance:getEntrance(canvasArray,toImagePosition),observers:getObservers(canvasArray,floorplanJson.vrData,observers,toImagePosition)}}}function getFloorDatas(canvasArray,floorplanJson,observers,bounding,locate){return canvasArray.map((canvas,floorIndex)=>{let rooms=canvas.areas.map(area=>{let path=getCompleteRoomPoints(canvas,area),position=getCenterPointOfPath(path),room_label={position,position_in_image:floorplanPosition2ImagePosition(position,bounding)};return{id:area.id,size:canvas.info.ruleType===1?area.size(!1):area.size(),name:area.labelName(locate),customized_name:area.customizedName||void 0,path,room_type:area.roomType(),floor_type:area.floorType(),room_label,observer_indexs:[],dimension:getDimensionOfArea(area,position)}}),areas=canvas.areas,lastAreaIndex=0;return observers.filter(observer=>observer.floor_index===floorIndex).forEach(observer=>{let point=observerWorldPoint(observer,floorplanJson.vrData),findIndex=-1;for(let i=lastAreaIndex;i<areas.length&&findIndex===-1;i++)areas[i].isPointInArea(point)&&(findIndex=i);for(let i=lastAreaIndex;i>=0&&findIndex===-1;i--)areas[i].isPointInArea(point)&&(findIndex=i);findIndex!==-1&&(lastAreaIndex=findIndex,rooms[findIndex].observer_indexs.push(observer.index))}),{floor_name:floorplanJson.floorplans[floorIndex].name,floor_index:floorIndex,is_has_wall:canvas.lines.length>0,rules:getFloorplanRules(canvas),rooms}})}function getCompleteRoomPoints(canvas,area){let points=[],firstPoint=area.points[0];return area.points.concat(firstPoint).reduce((prevPoint,currPoint)=>{points.push(prevPoint);let line=canvas.getLineByPoints(prevPoint,currPoint);if(!line)return currPoint;if(line.curve){let centerPoint=line.curveCenterPoint(),curveR=line.curveR(),assistantCurveAbs=Math.abs(curveR-distance(centerPoint,currPoint)*line.length()/Math.abs(line.curve)/4),p3=[line.curveCenterPoint.call({curve:assistantCurveAbs,points:[prevPoint,centerPoint]}),line.curveCenterPoint.call({curve:-assistantCurveAbs,points:[prevPoint,centerPoint]})].sort((a,b)=>distance(b,currPoint)-distance(a,currPoint))[0],p4=[line.curveCenterPoint.call({curve:assistantCurveAbs,points:[centerPoint,currPoint]}),line.curveCenterPoint.call({curve:-assistantCurveAbs,points:[centerPoint,currPoint]})].sort((a,b)=>distance(b,prevPoint)-distance(a,prevPoint))[0];points.push(p3,centerPoint,p4)}if(!line.isEdge()||line.items.length===0)return currPoint;let lineItems=line.items.filter(lineItem=>lineItem.type===7||lineItem.type===11);return lineItems.length===0||lineItems.forEach(lineItem=>{let start=lineItem.startPointAt(),end=lineItem.endPointAt();distance(start,prevPoint)>distance(end,prevPoint)&&([start,end]=[end,start]);let[offsetStart,offsetEnd]=parallelLineOfLine(700,[start,end])[0];points.push(start,offsetStart,offsetEnd,end)}),currPoint},firstPoint),points.map(({x,y})=>({x,y}))}function getCenterPointOfPath(path){let[x,y]=polylabel([path.map(({x,y})=>[Math.trunc(x),Math.trunc(y)])],1);return{x,y}}function getDimensionOfArea(area,centerPoint){let points=area.innerPath();if(points.length===0)return;let minX=1/0,maxX=-1/0,minY=1/0,maxY=-1/0;points.forEach(point=>{minX=Math.min(minX,point.x),maxX=Math.max(maxX,point.x),minY=Math.min(minY,point.y),maxY=Math.max(maxY,point.y)});let width=maxX-minX,height=maxY-minY,x=Math.round(centerPoint.x),y=Math.round(centerPoint.y);return{width,height,vertical:[{x,y:minY},{x,y:maxY}],horizontal:[{x:minX,y},{x:maxX,y}]}}function getBounding(canvasArray,vrData){let padding=1e3,result={min:{x:1/0,y:1/0},max:{x:-1/0,y:-1/0},origin:{x:0,y:0}};function applyResult({x,y}){result.min.x=Math.min(x,result.min.x),result.min.y=Math.min(y,result.min.y),result.max.x=Math.max(x,result.max.x),result.max.y=Math.max(y,result.max.y)}return canvasArray.forEach(canvas=>{canvas.points.forEach(point=>applyResult(point)),canvas.lines.forEach(line=>{line.curve!==0&&applyResult(line.curveCenterPoint())})}),result.min.x-=padding,result.min.y-=padding,result.max.x+=padding,result.max.y+=padding,result.origin.x=vrData.origin.left,result.origin.y=vrData.origin.top,result}function floorplanPosition2ImagePosition(point,bounding){let boundingWidth=bounding.max.x-bounding.min.x,boundingHeight=bounding.max.y-bounding.min.y;return{x:boundingWidth===0?0:(point.x-bounding.min.x)/boundingWidth,y:boundingHeight===0?0:(bounding.max.y-point.y)/boundingHeight}}function getEntrance(canvasArray,toImagePosition){let lineItem=canvasArray.map(canvas=>canvas.lineItems).reduce((acc,val)=>acc.concat(val),[]).find(item=>item.entrance!==null);if(!lineItem)return null;let canvas=lineItem.canvas,area=canvas.areas.find(area=>lineItem.line.points.every(point=>area.points.indexOf(point)>=0));if(!area)return null;let position=getCenterPointOfPoints([lineItem.startPointAt(),lineItem.endPointAt()]),northRad=lineItem.towardsRadWithArea(area)+lineItem.entrance/180*Math.PI;return{position_in_image:toImagePosition(position),north_rad:northRad,room_id:area.id,floor_index:canvasArray.findIndex(canvasItem=>canvasItem===canvas)}}function getObservers(canvasArray,vrData,observers,toImagePosition){return observers.filter(observer=>canvasArray[observer.floor_index]).map(observer=>({floor_index:observer.floor_index,position_in_image:toImagePosition(observerWorldPoint(observer,vrData))}))}function observerWorldPoint(observer,vrData){return{x:observer.position[0]*1e3+vrData.origin.left,y:-observer.position[2]*1e3+vrData.origin.top}}function getFloorplanRules(canvas){let top=[],right=[],bottom=[],left=[];for(let line of canvas.lines){if(!line.edgeComputed||!line.points.length)continue;let area=canvas.areas.find(area=>line.points.every(point=>area.points.includes(point)));if(!area)continue;let linePoints=line.edgePoints(!0),areaInnerPath=area.innerPath(!0,!1),[pt0,pt1]=linePoints.filter(point=>areaInnerPath.some(p=>samePointAt(p,point)));if(!pt0||!pt1)continue;let roundedPt0={x:pt0.x|0,y:pt0.y|0},roundedPt1={x:pt1.x|0,y:pt1.y|0},towardsRad=line.towardsRadWithArea(area),relativeX=Math.cos(towardsRad),relativeY=Math.sin(towardsRad);Math.abs(roundedPt0.y-roundedPt1.y)>MIN_RULE_LENGTH&&(relativeX<0?left.push([roundedPt0,roundedPt1].sort((a,b)=>a.y-b.y)):relativeX>0&&right.push([roundedPt0,roundedPt1].sort((a,b)=>a.y-b.y))),Math.abs(roundedPt0.x-roundedPt1.x)>MIN_RULE_LENGTH&&(relativeY<0?bottom.push([roundedPt0,roundedPt1].sort((a,b)=>a.x-b.x)):relativeY>0&&top.push([roundedPt0,roundedPt1].sort((a,b)=>a.x-b.x)))}return{top,right,bottom,left}}function samePointAt(point1,point2){return point1.x===point2.x&&point1.y===point2.y}function parallelLineOfLine(distanceOfLine,linePoints){let k=getK(linePoints[1],linePoints[0]),dx,dy;Math.abs(k)===1/0?(dy=0,dx=distanceOfLine):(dy=Math.sqrt(distanceOfLine*distanceOfLine/(k*k+1)),dx=dy/-(1/k));let result=[[{x:linePoints[0].x-dx,y:linePoints[0].y-dy},{x:linePoints[1].x-dx,y:linePoints[1].y-dy}],[{x:linePoints[0].x+dx,y:linePoints[0].y+dy},{x:linePoints[1].x+dx,y:linePoints[1].y+dy}]];return linePoints[1].x-linePoints[0].x<0?result:linePoints[1].x-linePoints[0].x>0||linePoints[1].y-linePoints[0].y<0?result.reverse():result}function getK(p0,p1){return(p0.y-p1.y)/(p0.x-p1.x)}function getCenterPointOfPoints(points){let minX=Math.min(...points.map(p=>p.x)),maxX=Math.max(...points.map(p=>p.x)),minY=Math.min(...points.map(p=>p.y)),maxY=Math.max(...points.map(p=>p.y));return{x:(minX+maxX)/2,y:(minY+maxY)/2}}export{formatFloorplanJson as default,formatFloorplanJson};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */function e(e,t={}){let n=``,{needZ:r,format:i}=t;return(r?e.slice().concat(e[0]):e.slice()).forEach((e,t)=>{let{x:r,y:a}=i?i(e):e,o=`${r},${a}`;n+=(t===0?`M`:`L`)+o}),n+(r?`Z`:``)}function t({x:e,y:t},n){let{max:r,min:i}=n;return{x:e-i.x,y:r.y-t}}exports.formatFloorplanPoint=t,exports.pathD=e;
338
+ */function pathD(points,options={}){let d=``,{needZ,format}=options;return(needZ?points.slice().concat(points[0]):points.slice()).forEach((_point,index)=>{let{x,y}=format?format(_point):_point,point=`${x},${y}`;d+=(index===0?`M`:`L`)+point}),d+(needZ?`Z`:``)}function formatFloorplanPoint({x,y},bounding){let{max,min}=bounding;return{x:x-min.x,y:max.y-y}}exports.formatFloorplanPoint=formatFloorplanPoint,exports.pathD=pathD;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */function e(e,t={}){let n=``,{needZ:r,format:i}=t;return(r?e.slice().concat(e[0]):e.slice()).forEach((e,t)=>{let{x:r,y:a}=i?i(e):e,o=`${r},${a}`;n+=(t===0?`M`:`L`)+o}),n+(r?`Z`:``)}function t({x:e,y:t},n){let{max:r,min:i}=n;return{x:e-i.x,y:r.y-t}}export{t as formatFloorplanPoint,e as pathD};
338
+ */function pathD(points,options={}){let d=``,{needZ,format}=options;return(needZ?points.slice().concat(points[0]):points.slice()).forEach((_point,index)=>{let{x,y}=format?format(_point):_point,point=`${x},${y}`;d+=(index===0?`M`:`L`)+point}),d+(needZ?`Z`:``)}function formatFloorplanPoint({x,y},bounding){let{max,min}=bounding;return{x:x-min.x,y:max.y-y}}export{formatFloorplanPoint,pathD};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */function e(e,t,n){let r=e.modelScene.boundingBox,i=r.isEmpty()?10:Math.pow(Math.pow(r.max.x-r.min.x+1,2)+Math.pow(r.max.y-r.min.y+1,2)+Math.pow(r.max.z-r.min.z+1,2),1/2),a=i/2/Math.tan(Math.PI*t/360);return n<1&&(a/=n),Number.isNaN(a)?i:a}exports.getDistanceFromModel=e;
338
+ */function getDistanceFromModel(five,fov,aspect){let boundingBox=five.modelScene.boundingBox,radius=boundingBox.isEmpty()?10:Math.pow(Math.pow(boundingBox.max.x-boundingBox.min.x+1,2)+Math.pow(boundingBox.max.y-boundingBox.min.y+1,2)+Math.pow(boundingBox.max.z-boundingBox.min.z+1,2),1/2),distance=radius/2/Math.tan(Math.PI*fov/360);return aspect<1&&(distance/=aspect),Number.isNaN(distance)?radius:distance}exports.getDistanceFromModel=getDistanceFromModel;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */function e(e,t,n){let r=e.modelScene.boundingBox,i=r.isEmpty()?10:Math.pow(Math.pow(r.max.x-r.min.x+1,2)+Math.pow(r.max.y-r.min.y+1,2)+Math.pow(r.max.z-r.min.z+1,2),1/2),a=i/2/Math.tan(Math.PI*t/360);return n<1&&(a/=n),Number.isNaN(a)?i:a}export{e as getDistanceFromModel};
338
+ */function getDistanceFromModel(five,fov,aspect){let boundingBox=five.modelScene.boundingBox,radius=boundingBox.isEmpty()?10:Math.pow(Math.pow(boundingBox.max.x-boundingBox.min.x+1,2)+Math.pow(boundingBox.max.y-boundingBox.min.y+1,2)+Math.pow(boundingBox.max.z-boundingBox.min.z+1,2),1/2),distance=radius/2/Math.tan(Math.PI*fov/360);return aspect<1&&(distance/=aspect),Number.isNaN(distance)?radius:distance}export{getDistanceFromModel};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */const e=require("../../../_virtual/_rolldown/runtime.js");let t=require("three/webgpu");t=e.__toESM(t,1);function n(e,t){var n,r;let i=(r=(n=e.work)==null?void 0:n.observers)==null?[]:r;if(t>(i.length?Math.max(...i.map(e=>e.floorIndex)):0))return e.modelScene.boundingBox.max.y;let a=i.filter(e=>e.floorIndex===t).map(e=>e.standingPosition.y);return a.length?Math.max(...a):e.modelScene.boundingBox.min.y}function r(e,t,r=3){let i=e.modelScene.boundingBox;return r===3?(i.max.y+i.min.y)/2:r===2?n(e,t+1):n(e,t)}function i(e,n,i,a){let o=r(e,i,a==null?void 0:a.attachedTo),s=new t.Vector3(0,o,0),c=new t.Vector3(1,o,0),l=s.clone().project(e.camera),u=c.clone().project(e.camera);return Math.abs((u.x-l.x)/1e3)*(n.getBoundingClientRect().width/2)}exports.getAttachedY=r,exports.getFloorY=n,exports.getPxmm=i;
338
+ */const require_runtime=require("../../../_virtual/_rolldown/runtime.js");let three_webgpu=require("three/webgpu");three_webgpu=require_runtime.__toESM(three_webgpu,1);function getFloorY(five,floorIndex){var _a,_b;let observers=(_b=(_a=five.work)==null?void 0:_a.observers)==null?[]:_b;if(floorIndex>(observers.length?Math.max(...observers.map(ob=>ob.floorIndex)):0))return five.modelScene.boundingBox.max.y;let ys=observers.filter(ob=>ob.floorIndex===floorIndex).map(ob=>ob.standingPosition.y);return ys.length?Math.max(...ys):five.modelScene.boundingBox.min.y}function getAttachedY(five,floorIndex,attachedTo=3){let boundingBox=five.modelScene.boundingBox;return attachedTo===3?(boundingBox.max.y+boundingBox.min.y)/2:attachedTo===2?getFloorY(five,floorIndex+1):getFloorY(five,floorIndex)}function getPxmm(five,container,floorIndex,options){let y=getAttachedY(five,floorIndex,options==null?void 0:options.attachedTo),originPosition=new three_webgpu.Vector3(0,y,0),originPositionXUnit=new three_webgpu.Vector3(1,y,0),mouse=originPosition.clone().project(five.camera),xUnitMouse=originPositionXUnit.clone().project(five.camera);return Math.abs((xUnitMouse.x-mouse.x)/1e3)*(container.getBoundingClientRect().width/2)}exports.getAttachedY=getAttachedY,exports.getFloorY=getFloorY,exports.getPxmm=getPxmm;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */import*as e from"three/webgpu";function t(e,t){var n,r;let i=(r=(n=e.work)==null?void 0:n.observers)==null?[]:r;if(t>(i.length?Math.max(...i.map(e=>e.floorIndex)):0))return e.modelScene.boundingBox.max.y;let a=i.filter(e=>e.floorIndex===t).map(e=>e.standingPosition.y);return a.length?Math.max(...a):e.modelScene.boundingBox.min.y}function n(e,n,r=3){let i=e.modelScene.boundingBox;return r===3?(i.max.y+i.min.y)/2:r===2?t(e,n+1):t(e,n)}function r(t,r,i,a){let o=n(t,i,a==null?void 0:a.attachedTo),s=new e.Vector3(0,o,0),c=new e.Vector3(1,o,0),l=s.clone().project(t.camera),u=c.clone().project(t.camera);return Math.abs((u.x-l.x)/1e3)*(r.getBoundingClientRect().width/2)}export{n as getAttachedY,t as getFloorY,r as getPxmm};
338
+ */import*as THREE from"three/webgpu";function getFloorY(five,floorIndex){var _a,_b;let observers=(_b=(_a=five.work)==null?void 0:_a.observers)==null?[]:_b;if(floorIndex>(observers.length?Math.max(...observers.map(ob=>ob.floorIndex)):0))return five.modelScene.boundingBox.max.y;let ys=observers.filter(ob=>ob.floorIndex===floorIndex).map(ob=>ob.standingPosition.y);return ys.length?Math.max(...ys):five.modelScene.boundingBox.min.y}function getAttachedY(five,floorIndex,attachedTo=3){let boundingBox=five.modelScene.boundingBox;return attachedTo===3?(boundingBox.max.y+boundingBox.min.y)/2:attachedTo===2?getFloorY(five,floorIndex+1):getFloorY(five,floorIndex)}function getPxmm(five,container,floorIndex,options){let y=getAttachedY(five,floorIndex,options==null?void 0:options.attachedTo),originPosition=new THREE.Vector3(0,y,0),originPositionXUnit=new THREE.Vector3(1,y,0),mouse=originPosition.clone().project(five.camera),xUnitMouse=originPositionXUnit.clone().project(five.camera);return Math.abs((xUnitMouse.x-mouse.x)/1e3)*(container.getBoundingClientRect().width/2)}export{getAttachedY,getFloorY,getPxmm};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */function e(e){return Object.prototype.toString.call(e)===`[object Object]`}exports.isTruelyObject=e;
338
+ */function isTruelyObject(value){return Object.prototype.toString.call(value)===`[object Object]`}exports.isTruelyObject=isTruelyObject;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */function e(e){return Object.prototype.toString.call(e)===`[object Object]`}export{e as isTruelyObject};
338
+ */function isTruelyObject(value){return Object.prototype.toString.call(value)===`[object Object]`}export{isTruelyObject};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */function e(e,t,n=2){return Number(e.toFixed(n))===Number(t.toFixed(n))}function t(e,t,n=2){let r=Math.PI*2,i=e=>(e%r+r)%r,a=i(e),o=i(t),s=Math.min(Math.abs(a-o),r-Math.abs(a-o));return Number(s.toFixed(n))===0}exports.nearlyEqual=e,exports.nearlyEqualRad=t;
338
+ */function nearlyEqual(x,y,precision=2){return Number(x.toFixed(precision))===Number(y.toFixed(precision))}function nearlyEqualRad(x,y,precision=2){let TWO_PI=Math.PI*2,normalize=rad=>(rad%TWO_PI+TWO_PI)%TWO_PI,nx=normalize(x),ny=normalize(y),diff=Math.min(Math.abs(nx-ny),TWO_PI-Math.abs(nx-ny));return Number(diff.toFixed(precision))===0}exports.nearlyEqual=nearlyEqual,exports.nearlyEqualRad=nearlyEqualRad;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */function e(e,t,n=2){return Number(e.toFixed(n))===Number(t.toFixed(n))}function t(e,t,n=2){let r=Math.PI*2,i=e=>(e%r+r)%r,a=i(e),o=i(t),s=Math.min(Math.abs(a-o),r-Math.abs(a-o));return Number(s.toFixed(n))===0}export{e as nearlyEqual,t as nearlyEqualRad};
338
+ */function nearlyEqual(x,y,precision=2){return Number(x.toFixed(precision))===Number(y.toFixed(precision))}function nearlyEqualRad(x,y,precision=2){let TWO_PI=Math.PI*2,normalize=rad=>(rad%TWO_PI+TWO_PI)%TWO_PI,nx=normalize(x),ny=normalize(y),diff=Math.min(Math.abs(nx-ny),TWO_PI-Math.abs(nx-ny));return Number(diff.toFixed(precision))===0}export{nearlyEqual,nearlyEqualRad};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */var e=class{constructor(e,t,r,i){this.x=e,this.y=t,this.h=r,this.d=n(e,t,i),this.max=this.d+this.h*Math.SQRT2}};function t(t,n=1){let i=0,a=0,o=0,s=0;for(let e=0;e<t[0].length;e++){let n=t[0][e];(!e||n[0]<i)&&(i=n[0]),(!e||n[1]<a)&&(a=n[1]),(!e||n[0]>o)&&(o=n[0]),(!e||n[1]>s)&&(s=n[1])}let c=o-i,l=s-a,u=Math.min(c,l),d=u/2;if(u===0)return[i,a];let f=[];for(let n=i;n<o;n+=u)for(let r=a;r<s;r+=u)f.push(new e(n+d,r+d,d,t));let p=r(t),m=new e(i+c/2,a+l/2,0,t);for(m.d>p.d&&(p=m);f.length;){f.sort((e,t)=>e.max-t.max);let r=f.pop();r.d>p.d&&(p=r),!(r.max-p.d<=n)&&(d=r.h/2,f.push(new e(r.x-d,r.y-d,d,t)),f.push(new e(r.x+d,r.y-d,d,t)),f.push(new e(r.x-d,r.y+d,d,t)),f.push(new e(r.x+d,r.y+d,d,t)))}return[p.x,p.y]}function n(e,t,n){let r=!1,a=1/0;for(let o=0;o<n.length;o++){let s=n[o];for(let n=0,o=s.length,c=o-1;n<o;c=n++){let o=s[n],l=s[c];o[1]>t!=l[1]>t&&e<(l[0]-o[0])*(t-o[1])/(l[1]-o[1])+o[0]&&(r=!r),a=Math.min(a,i(e,t,o,l))}}return(r?1:-1)*Math.sqrt(a)}function r(t){let n=0,r=0,i=0,a=t[0];for(let e=0,t=a.length,o=t-1;e<t;o=e++){let t=a[e],s=a[o],c=t[0]*s[1]-s[0]*t[1];r+=(t[0]+s[0])*c,i+=(t[1]+s[1])*c,n+=c*3}return n===0?new e(a[0][0],a[0][1],0,t):new e(r/n,i/n,0,t)}function i(e,t,n,r){let i=n[0],a=n[1],o=r[0]-i,s=r[1]-a;if(o!==0||s!==0){let n=((e-i)*o+(t-a)*s)/(o*o+s*s);n>1?(i=r[0],a=r[1]):n>0&&(i+=o*n,a+=s*n)}return o=e-i,s=t-a,o*o+s*s}exports.polylabel=t;
338
+ */var Cell=class{constructor(x,y,h,polygon){this.x=x,this.y=y,this.h=h,this.d=pointToPolygonDist(x,y,polygon),this.max=this.d+this.h*Math.SQRT2}};function polylabel(polygon,precision=1){let minX=0,minY=0,maxX=0,maxY=0;for(let i=0;i<polygon[0].length;i++){let p=polygon[0][i];(!i||p[0]<minX)&&(minX=p[0]),(!i||p[1]<minY)&&(minY=p[1]),(!i||p[0]>maxX)&&(maxX=p[0]),(!i||p[1]>maxY)&&(maxY=p[1])}let width=maxX-minX,height=maxY-minY,cellSize=Math.min(width,height),h=cellSize/2;if(cellSize===0)return[minX,minY];let cellQueue=[];for(let x=minX;x<maxX;x+=cellSize)for(let y=minY;y<maxY;y+=cellSize)cellQueue.push(new Cell(x+h,y+h,h,polygon));let bestCell=getCentroidCell(polygon),bboxCell=new Cell(minX+width/2,minY+height/2,0,polygon);for(bboxCell.d>bestCell.d&&(bestCell=bboxCell);cellQueue.length;){cellQueue.sort((a,b)=>a.max-b.max);let cell=cellQueue.pop();cell.d>bestCell.d&&(bestCell=cell),!(cell.max-bestCell.d<=precision)&&(h=cell.h/2,cellQueue.push(new Cell(cell.x-h,cell.y-h,h,polygon)),cellQueue.push(new Cell(cell.x+h,cell.y-h,h,polygon)),cellQueue.push(new Cell(cell.x-h,cell.y+h,h,polygon)),cellQueue.push(new Cell(cell.x+h,cell.y+h,h,polygon)))}return[bestCell.x,bestCell.y]}function pointToPolygonDist(x,y,polygon){let inside=!1,minDistSq=1/0;for(let k=0;k<polygon.length;k++){let ring=polygon[k];for(let i=0,len=ring.length,j=len-1;i<len;j=i++){let a=ring[i],b=ring[j];a[1]>y!=b[1]>y&&x<(b[0]-a[0])*(y-a[1])/(b[1]-a[1])+a[0]&&(inside=!inside),minDistSq=Math.min(minDistSq,getSegDistSq(x,y,a,b))}}return(inside?1:-1)*Math.sqrt(minDistSq)}function getCentroidCell(polygon){let area=0,x=0,y=0,points=polygon[0];for(let i=0,len=points.length,j=len-1;i<len;j=i++){let a=points[i],b=points[j],f=a[0]*b[1]-b[0]*a[1];x+=(a[0]+b[0])*f,y+=(a[1]+b[1])*f,area+=f*3}return area===0?new Cell(points[0][0],points[0][1],0,polygon):new Cell(x/area,y/area,0,polygon)}function getSegDistSq(px,py,a,b){let x=a[0],y=a[1],dx=b[0]-x,dy=b[1]-y;if(dx!==0||dy!==0){let t=((px-x)*dx+(py-y)*dy)/(dx*dx+dy*dy);t>1?(x=b[0],y=b[1]):t>0&&(x+=dx*t,y+=dy*t)}return dx=px-x,dy=py-y,dx*dx+dy*dy}exports.polylabel=polylabel;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */var e=class{constructor(e,t,r,i){this.x=e,this.y=t,this.h=r,this.d=n(e,t,i),this.max=this.d+this.h*Math.SQRT2}};function t(t,n=1){let i=0,a=0,o=0,s=0;for(let e=0;e<t[0].length;e++){let n=t[0][e];(!e||n[0]<i)&&(i=n[0]),(!e||n[1]<a)&&(a=n[1]),(!e||n[0]>o)&&(o=n[0]),(!e||n[1]>s)&&(s=n[1])}let c=o-i,l=s-a,u=Math.min(c,l),d=u/2;if(u===0)return[i,a];let f=[];for(let n=i;n<o;n+=u)for(let r=a;r<s;r+=u)f.push(new e(n+d,r+d,d,t));let p=r(t),m=new e(i+c/2,a+l/2,0,t);for(m.d>p.d&&(p=m);f.length;){f.sort((e,t)=>e.max-t.max);let r=f.pop();r.d>p.d&&(p=r),!(r.max-p.d<=n)&&(d=r.h/2,f.push(new e(r.x-d,r.y-d,d,t)),f.push(new e(r.x+d,r.y-d,d,t)),f.push(new e(r.x-d,r.y+d,d,t)),f.push(new e(r.x+d,r.y+d,d,t)))}return[p.x,p.y]}function n(e,t,n){let r=!1,a=1/0;for(let o=0;o<n.length;o++){let s=n[o];for(let n=0,o=s.length,c=o-1;n<o;c=n++){let o=s[n],l=s[c];o[1]>t!=l[1]>t&&e<(l[0]-o[0])*(t-o[1])/(l[1]-o[1])+o[0]&&(r=!r),a=Math.min(a,i(e,t,o,l))}}return(r?1:-1)*Math.sqrt(a)}function r(t){let n=0,r=0,i=0,a=t[0];for(let e=0,t=a.length,o=t-1;e<t;o=e++){let t=a[e],s=a[o],c=t[0]*s[1]-s[0]*t[1];r+=(t[0]+s[0])*c,i+=(t[1]+s[1])*c,n+=c*3}return n===0?new e(a[0][0],a[0][1],0,t):new e(r/n,i/n,0,t)}function i(e,t,n,r){let i=n[0],a=n[1],o=r[0]-i,s=r[1]-a;if(o!==0||s!==0){let n=((e-i)*o+(t-a)*s)/(o*o+s*s);n>1?(i=r[0],a=r[1]):n>0&&(i+=o*n,a+=s*n)}return o=e-i,s=t-a,o*o+s*s}export{t as polylabel};
338
+ */var Cell=class{constructor(x,y,h,polygon){this.x=x,this.y=y,this.h=h,this.d=pointToPolygonDist(x,y,polygon),this.max=this.d+this.h*Math.SQRT2}};function polylabel(polygon,precision=1){let minX=0,minY=0,maxX=0,maxY=0;for(let i=0;i<polygon[0].length;i++){let p=polygon[0][i];(!i||p[0]<minX)&&(minX=p[0]),(!i||p[1]<minY)&&(minY=p[1]),(!i||p[0]>maxX)&&(maxX=p[0]),(!i||p[1]>maxY)&&(maxY=p[1])}let width=maxX-minX,height=maxY-minY,cellSize=Math.min(width,height),h=cellSize/2;if(cellSize===0)return[minX,minY];let cellQueue=[];for(let x=minX;x<maxX;x+=cellSize)for(let y=minY;y<maxY;y+=cellSize)cellQueue.push(new Cell(x+h,y+h,h,polygon));let bestCell=getCentroidCell(polygon),bboxCell=new Cell(minX+width/2,minY+height/2,0,polygon);for(bboxCell.d>bestCell.d&&(bestCell=bboxCell);cellQueue.length;){cellQueue.sort((a,b)=>a.max-b.max);let cell=cellQueue.pop();cell.d>bestCell.d&&(bestCell=cell),!(cell.max-bestCell.d<=precision)&&(h=cell.h/2,cellQueue.push(new Cell(cell.x-h,cell.y-h,h,polygon)),cellQueue.push(new Cell(cell.x+h,cell.y-h,h,polygon)),cellQueue.push(new Cell(cell.x-h,cell.y+h,h,polygon)),cellQueue.push(new Cell(cell.x+h,cell.y+h,h,polygon)))}return[bestCell.x,bestCell.y]}function pointToPolygonDist(x,y,polygon){let inside=!1,minDistSq=1/0;for(let k=0;k<polygon.length;k++){let ring=polygon[k];for(let i=0,len=ring.length,j=len-1;i<len;j=i++){let a=ring[i],b=ring[j];a[1]>y!=b[1]>y&&x<(b[0]-a[0])*(y-a[1])/(b[1]-a[1])+a[0]&&(inside=!inside),minDistSq=Math.min(minDistSq,getSegDistSq(x,y,a,b))}}return(inside?1:-1)*Math.sqrt(minDistSq)}function getCentroidCell(polygon){let area=0,x=0,y=0,points=polygon[0];for(let i=0,len=points.length,j=len-1;i<len;j=i++){let a=points[i],b=points[j],f=a[0]*b[1]-b[0]*a[1];x+=(a[0]+b[0])*f,y+=(a[1]+b[1])*f,area+=f*3}return area===0?new Cell(points[0][0],points[0][1],0,polygon):new Cell(x/area,y/area,0,polygon)}function getSegDistSq(px,py,a,b){let x=a[0],y=a[1],dx=b[0]-x,dy=b[1]-y;if(dx!==0||dy!==0){let t=((px-x)*dx+(py-y)*dy)/(dx*dx+dy*dy);t>1?(x=b[0],y=b[1]):t>0&&(x+=dx*t,y+=dy*t)}return dx=px-x,dy=py-y,dx*dx+dy*dy}export{polylabel};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */let e=require("tslib");function t(t){return(0,e.__awaiter)(this,void 0,void 0,function*(){try{return[null,yield t]}catch(e){return e instanceof Error?[e,null]:[Error(String(e)),null]}})}exports.default=t,exports.to=t;
338
+ */let tslib=require("tslib");function to(promise){return(0,tslib.__awaiter)(this,void 0,void 0,function*(){try{return[null,yield promise]}catch(error){return error instanceof Error?[error,null]:[Error(String(error)),null]}})}exports.default=to,exports.to=to;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */import{__awaiter as e}from"tslib";function t(t){return e(this,void 0,void 0,function*(){try{return[null,yield t]}catch(e){return e instanceof Error?[e,null]:[Error(String(e)),null]}})}export{t as default,t as to};
338
+ */import{__awaiter}from"tslib";function to(promise){return __awaiter(this,void 0,void 0,function*(){try{return[null,yield promise]}catch(error){return error instanceof Error?[error,null]:[Error(String(error)),null]}})}export{to as default,to};