@realsee/five-webgpu 1.0.0-alpha.12 → 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 (431) 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 +41 -32
  10. package/docs/classes/index.FivePass.html +1 -1
  11. package/docs/classes/index.FiveRenderer.html +7 -2
  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 -5
  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 +9 -9
  22. package/docs/classes/index.PBMGaussianSplattingObject.html +49 -11
  23. package/docs/classes/index.PBMGaussianSplattingRenderMesh.html +71 -16
  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 +24 -22
  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 +22 -22
  46. package/docs/classes/index.TileNode.html +2 -2
  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.DeviceProfile.html +2 -2
  58. package/docs/interfaces/index.EventCallback.html +3 -3
  59. package/docs/interfaces/index.GestureEvent.html +1 -1
  60. package/docs/interfaces/index.IPBMMaterial.html +1 -1
  61. package/docs/interfaces/index.ImageOptions.html +1 -1
  62. package/docs/interfaces/index.IntersectEvent.html +1 -1
  63. package/docs/interfaces/index.IntersectMesh.html +1 -1
  64. package/docs/interfaces/index.IntersectMeshInterface.html +1 -1
  65. package/docs/interfaces/index.Intersection.html +1 -1
  66. package/docs/interfaces/index.LooseWorkWithExtrinsics.html +8 -8
  67. package/docs/interfaces/index.ModeChangeEvent.html +1 -1
  68. package/docs/interfaces/index.ModelControllerCustomInitArgs.html +1 -1
  69. package/docs/interfaces/index.ModelEvent.html +1 -1
  70. package/docs/interfaces/index.ModelSceneEvent.html +1 -1
  71. package/docs/interfaces/index.ModelTileEvent.html +1 -1
  72. package/docs/interfaces/index.MovePanoOptions.html +1 -1
  73. package/docs/interfaces/index.NetworkAbortError.html +1 -1
  74. package/docs/interfaces/index.NetworkFirbiddenError.html +1 -1
  75. package/docs/interfaces/index.NetworkOptions.html +1 -1
  76. package/docs/interfaces/index.NetworkProxyError.html +1 -1
  77. package/docs/interfaces/index.NetworkResourceEvent.html +1 -1
  78. package/docs/interfaces/index.NetworkResponseError.html +1 -1
  79. package/docs/interfaces/index.NetworkTimeoutError.html +1 -1
  80. package/docs/interfaces/index.ObjectEvent.html +1 -1
  81. package/docs/interfaces/index.PBMGaussianSplattingNodeMaterialOptions.html +3 -3
  82. package/docs/interfaces/index.PanoCircleMeshInterface.html +1 -1
  83. package/docs/interfaces/index.PanoEvent.html +1 -1
  84. package/docs/interfaces/index.PanoPrepareEvent.html +1 -1
  85. package/docs/interfaces/index.PanoTextureEvent.html +1 -1
  86. package/docs/interfaces/index.PanoramaControllerCustomInitArgs.html +1 -1
  87. package/docs/interfaces/index.PanoramaLikeControllerCustomInitArgs.html +1 -1
  88. package/docs/interfaces/index.ParameterMaterialValue.html +8 -6
  89. package/docs/interfaces/index.ParameterTilesetValue.html +15 -15
  90. package/docs/interfaces/index.ParameterValue.html +21 -19
  91. package/docs/interfaces/index.Pose.html +1 -1
  92. package/docs/interfaces/index.RenderEvent.html +1 -1
  93. package/docs/interfaces/index.ResolvedParameterValue.html +22 -20
  94. package/docs/interfaces/index.SplatData.html +10 -6
  95. package/docs/interfaces/index.State.html +1 -1
  96. package/docs/interfaces/index.StateEvent.html +1 -1
  97. package/docs/interfaces/index.TextureOptions.html +1 -1
  98. package/docs/interfaces/index.Tile3DOptions.html +2 -2
  99. package/docs/interfaces/index.TopviewControllerCustomInitArgs.html +1 -1
  100. package/docs/interfaces/index.VRPanoramaControllerCustomInitArgs.html +1 -1
  101. package/docs/interfaces/index.ViewLayer.html +22 -22
  102. package/docs/interfaces/index.WorkCubeHdrGainmapImage.html +2 -2
  103. package/docs/interfaces/index.WorkCubeImage.html +2 -2
  104. package/docs/interfaces/index.WorkImage.html +5 -5
  105. package/docs/interfaces/index.WorkInitial.html +8 -8
  106. package/docs/interfaces/index.WorkInitialJson.html +2 -2
  107. package/docs/interfaces/index.WorkJson.html +2 -4
  108. package/docs/interfaces/index.WorkModel.html +8 -8
  109. package/docs/interfaces/index.WorkModelJson.html +2 -2
  110. package/docs/interfaces/index.WorkModelLayer.html +6 -6
  111. package/docs/interfaces/index.WorkModelLayerJson.html +2 -2
  112. package/docs/interfaces/index.WorkObserver.html +23 -23
  113. package/docs/interfaces/index.WorkObserverJson.html +2 -2
  114. package/docs/interfaces/index.WorkPanoramaJson.html +2 -2
  115. package/docs/interfaces/index.WorkPanoramasJson.html +2 -2
  116. package/docs/interfaces/index.WorkTile.html +5 -5
  117. package/docs/interfaces/index.WorkVideo.html +4 -4
  118. package/docs/interfaces/index.WorksEvent.html +1 -1
  119. package/docs/interfaces/index.XRControllerEvent.html +1 -1
  120. package/docs/interfaces/index.XRGestureEvent.html +2 -2
  121. package/docs/interfaces/index.XRPanoramaControllerCustomInitArgs.html +1 -1
  122. package/docs/interfaces/index.XRSessionEvent.html +1 -1
  123. package/docs/modules/index.html +1 -1
  124. package/docs/types/index.LegacyEventType.html +3 -3
  125. package/docs/types/index.OutputTextureDataType.html +1 -1
  126. package/docs/types/index.ParseOptions.html +8 -8
  127. package/docs/types/index.PointCloudTransparencyMode.html +2 -0
  128. package/docs/types/index.Works.html +1 -1
  129. package/docs/variables/index.loadAt3d.html +2 -0
  130. package/docs/variables/index.loadDome.html +2 -0
  131. package/docs/variables/index.loadDomez.html +2 -0
  132. package/docs/variables/index.loadGltf.html +2 -0
  133. package/docs/variables/index.loadPbm.html +2 -0
  134. package/docs/variables/index.loadPly.html +2 -0
  135. package/five/application/five.d.ts +13 -0
  136. package/five/chunks/at3d.js +338 -0
  137. package/five/chunks/at3d.mjs +338 -0
  138. package/five/chunks/dome.js +338 -0
  139. package/five/chunks/dome.mjs +338 -0
  140. package/five/chunks/domez.js +338 -0
  141. package/five/chunks/domez.mjs +338 -0
  142. package/five/chunks/fbx.js +338 -0
  143. package/five/chunks/fbx.mjs +338 -0
  144. package/five/chunks/fflate.js +338 -0
  145. package/five/chunks/fflate.mjs +338 -0
  146. package/five/chunks/glTF-helpers.js +804 -0
  147. package/five/chunks/glTF-helpers.mjs +804 -0
  148. package/five/chunks/gltf.js +338 -0
  149. package/five/chunks/gltf.mjs +338 -0
  150. package/five/chunks/imageBitmap.js +338 -0
  151. package/five/chunks/imageBitmap.mjs +338 -0
  152. package/five/chunks/imageSupport.js +338 -0
  153. package/five/chunks/imageSupport.mjs +338 -0
  154. package/five/chunks/lzma.js +383 -0
  155. package/five/chunks/lzma.mjs +383 -0
  156. package/five/chunks/memoryUsage.js +339 -0
  157. package/five/chunks/memoryUsage.mjs +339 -0
  158. package/five/chunks/minimal.js +338 -0
  159. package/five/chunks/minimal.mjs +338 -0
  160. package/five/chunks/pbm.js +338 -0
  161. package/five/chunks/pbm.mjs +338 -0
  162. package/five/chunks/pbmGaussianSplattingObject.js +338 -0
  163. package/five/chunks/pbmGaussianSplattingObject.mjs +338 -0
  164. package/five/chunks/pbmMeshMaterial.js +338 -0
  165. package/five/chunks/pbmMeshMaterial.mjs +338 -0
  166. package/five/chunks/pick.js +338 -0
  167. package/five/chunks/pick.mjs +338 -0
  168. package/five/chunks/ply.js +339 -0
  169. package/five/chunks/ply.mjs +339 -0
  170. package/five/chunks/spz.js +364 -0
  171. package/five/chunks/spz.mjs +364 -0
  172. package/five/controllers/xrPanorama.d.ts +13 -0
  173. package/five/core/internalWebGPURenderer.d.ts +0 -3
  174. package/five/core/panoVideo.d.ts +2 -0
  175. package/five/core/webglBlendEquationFix.d.ts +41 -0
  176. package/five/gaussian-splatting/arena/splatArena.d.ts +227 -0
  177. package/five/gaussian-splatting/cullConstants.d.ts +68 -0
  178. package/five/gaussian-splatting/hybridConstants.d.ts +60 -0
  179. package/five/gaussian-splatting/instancePacking.d.ts +46 -0
  180. package/five/gaussian-splatting/mirrors/layoutMirror.d.ts +44 -0
  181. package/five/gaussian-splatting/mirrors/mirrorBuffer.d.ts +72 -0
  182. package/five/gaussian-splatting/mirrors/mirrorSet.d.ts +17 -0
  183. package/five/gaussian-splatting/mirrors/objectParamsMirror.d.ts +35 -0
  184. package/five/gaussian-splatting/mirrors/transformMirror.d.ts +26 -0
  185. package/five/gaussian-splatting/pipelines/gpuSortPipeline.d.ts +5 -31
  186. package/five/gaussian-splatting/pipelines/pipelineMode.d.ts +1 -2
  187. package/five/gaussian-splatting/sh-core/codec.d.ts +13 -0
  188. package/five/gaussian-splatting/sh-core/constants.d.ts +29 -0
  189. package/five/gaussian-splatting/sh-core/index.d.ts +4 -0
  190. package/five/gaussian-splatting/sh-core/rebakePolicy.d.ts +20 -0
  191. package/five/gaussian-splatting/sh-core/texelRange.d.ts +18 -0
  192. package/five/gaussian-splatting/shAssembler.d.ts +14 -0
  193. package/five/gaussian-splatting/shBakeScheduler.d.ts +26 -0
  194. package/five/gaussian-splatting/shBaker.d.ts +44 -0
  195. package/five/gaussian-splatting/shTileResource.d.ts +22 -0
  196. package/five/gaussian-splatting/splatAssembler.d.ts +1 -1
  197. package/five/gaussian-splatting/transformStore.d.ts +2 -2
  198. package/five/gaussian-splatting/worker/decodeWorker.d.ts +72 -0
  199. package/five/index.d.ts +0 -1
  200. package/five/index.js +138 -640
  201. package/five/index.mjs +229 -29261
  202. package/five/model/index.d.ts +18 -6
  203. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz.d.ts +1 -1
  204. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz_2.d.ts +1 -1
  205. package/five/model/loaders/ply.d.ts +22 -6
  206. package/five/model/loaders/spz.d.ts +9 -49
  207. package/five/model/loaders/spz.worker.d.ts +37 -0
  208. package/five/model/materials/pbmGaussianSplattingNodeMaterial.d.ts +6 -12
  209. package/five/model/objects/pbmGaussianSplattingObject.d.ts +91 -6
  210. package/five/model/objects/pbmGaussianSplattingRenderMesh.d.ts +357 -15
  211. package/five/model/parameter.d.ts +4 -0
  212. package/five/renderer/compute-renderers/binned/binned-core.d.ts +45 -2
  213. package/five/renderer/compute-renderers/binned/binned-pipelines.d.ts +82 -1
  214. package/five/renderer/compute-renderers/color-space.d.ts +13 -0
  215. package/five/renderer/compute-renderers/composite-pipelines.d.ts +36 -0
  216. package/five/renderer/compute-renderers/frame-plan.d.ts +166 -0
  217. package/five/renderer/compute-renderers/gsplat-hybrid-renderer.d.ts +386 -0
  218. package/five/renderer/compute-renderers/pointcloud-compute-renderer.d.ts +101 -16
  219. package/five/renderer/compute-renderers/shaders/composite-blend.d.ts +2 -0
  220. package/five/renderer/compute-renderers/shaders/gsplatHybridIndirect.d.ts +2 -0
  221. package/five/renderer/compute-renderers/shaders/gsplatProjector.d.ts +2 -0
  222. package/five/renderer/compute-renderers/shaders/gsplatQuad.d.ts +2 -0
  223. package/five/renderer/compute-renderers/shaders/lib/write-additive.d.ts +2 -0
  224. package/five/renderer/compute-renderers/shaders/lib/write-blend.d.ts +2 -0
  225. package/five/renderer/compute-renderers/shaders/lib/write-opaque.d.ts +2 -0
  226. package/five/renderer/compute-renderers/tile-uniform-writer.d.ts +70 -0
  227. package/five/renderer/compute-renderers/transparency-buffers.d.ts +59 -0
  228. package/five/renderer/compute-renderers/transparency-math.d.ts +70 -0
  229. package/five/renderer/compute-renderers/transparency-settings.d.ts +24 -0
  230. package/five/renderer/compute-renderers/uniform-layout.d.ts +11 -2
  231. package/five/renderer/five-renderer.d.ts +28 -3
  232. package/five/renderer/index.d.ts +1 -1
  233. package/five/renderer/postprocessing/passes/pass.js +3 -3
  234. package/five/renderer/postprocessing/passes/pass.mjs +3 -3
  235. package/five/renderer/tools/full-screen-quad.js +3 -3
  236. package/five/renderer/tools/full-screen-quad.mjs +3 -3
  237. package/five/texture/videoTextureBridge.d.ts +152 -0
  238. package/five/thirdparty/sha256.d.ts +149 -0
  239. package/five/utils/calculateThreeMouse.js +3 -3
  240. package/five/utils/calculateThreeMouse.mjs +3 -3
  241. package/five/utils/distance.js +3 -3
  242. package/five/utils/distance.mjs +3 -3
  243. package/five/utils/isNil.js +3 -3
  244. package/five/utils/isNil.mjs +3 -3
  245. package/five/utils/memoryUsage.d.ts +1 -1
  246. package/five/utils/uuid.js +3 -3
  247. package/five/utils/uuid.mjs +3 -3
  248. package/five/work/work.d.ts +0 -7
  249. package/five/work/workJsonType.d.ts +0 -2
  250. package/gltf-loader/index.js +3 -3
  251. package/gltf-loader/index.mjs +3 -50
  252. package/line/index.js +3 -3
  253. package/line/index.mjs +3 -88
  254. package/package.json +1 -1
  255. package/plugins/BackgroundPlugin/Controller.js +4 -4
  256. package/plugins/BackgroundPlugin/Controller.mjs +4 -4
  257. package/plugins/BackgroundPlugin/index.js +3 -3
  258. package/plugins/BackgroundPlugin/index.mjs +3 -3
  259. package/plugins/BasePlugin/index.js +3 -3
  260. package/plugins/BasePlugin/index.mjs +3 -3
  261. package/plugins/CSS2DPlugin/Controller.js +3 -3
  262. package/plugins/CSS2DPlugin/Controller.mjs +3 -3
  263. package/plugins/CSS2DPlugin/index.js +3 -3
  264. package/plugins/CSS2DPlugin/index.mjs +3 -3
  265. package/plugins/CSS2DPlugin/style.css_raw.js +4 -4
  266. package/plugins/CSS2DPlugin/style.css_raw.mjs +4 -4
  267. package/plugins/CSS3DPlugin/Controller.js +3 -3
  268. package/plugins/CSS3DPlugin/Controller.mjs +3 -3
  269. package/plugins/CSS3DPlugin/index.js +3 -3
  270. package/plugins/CSS3DPlugin/index.mjs +3 -3
  271. package/plugins/CSS3DPlugin/style.css_raw.js +4 -4
  272. package/plugins/CSS3DPlugin/style.css_raw.mjs +4 -4
  273. package/plugins/FloorplanPlugin/Controller.js +3 -3
  274. package/plugins/FloorplanPlugin/Controller.mjs +3 -3
  275. package/plugins/FloorplanPlugin/index.js +3 -3
  276. package/plugins/FloorplanPlugin/index.mjs +3 -3
  277. package/plugins/FloorplanPlugin/render/assets.js +3 -3
  278. package/plugins/FloorplanPlugin/render/assets.mjs +3 -3
  279. package/plugins/FloorplanPlugin/render/index.js +3 -3
  280. package/plugins/FloorplanPlugin/render/index.mjs +3 -3
  281. package/plugins/FloorplanPlugin/render/isPointInPolygon.js +3 -3
  282. package/plugins/FloorplanPlugin/render/isPointInPolygon.mjs +3 -3
  283. package/plugins/FloorplanPlugin/render/renderFloor.js +3 -3
  284. package/plugins/FloorplanPlugin/render/renderFloor.mjs +3 -3
  285. package/plugins/FloorplanPlugin/render/roomLabelVisibility.js +3 -3
  286. package/plugins/FloorplanPlugin/render/roomLabelVisibility.mjs +3 -3
  287. package/plugins/FloorplanPlugin/render/style.css_raw.js +4 -4
  288. package/plugins/FloorplanPlugin/render/style.css_raw.mjs +4 -4
  289. package/plugins/FloorplanPlugin/utils/changeMode.js +3 -3
  290. package/plugins/FloorplanPlugin/utils/changeMode.mjs +3 -3
  291. package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.js +3 -3
  292. package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.mjs +3 -3
  293. package/plugins/FloorplanPlugin/utils/correctFiveState.js +3 -3
  294. package/plugins/FloorplanPlugin/utils/correctFiveState.mjs +3 -3
  295. package/plugins/FloorplanPlugin/utils/equal.js +3 -3
  296. package/plugins/FloorplanPlugin/utils/equal.mjs +3 -3
  297. package/plugins/FloorplanPlugin/utils/filter.js +3 -3
  298. package/plugins/FloorplanPlugin/utils/filter.mjs +3 -3
  299. package/plugins/FloorplanPlugin/utils/fiveModelLoad.js +3 -3
  300. package/plugins/FloorplanPlugin/utils/fiveModelLoad.mjs +3 -3
  301. package/plugins/FloorplanPlugin/utils/formatData.js +3 -3
  302. package/plugins/FloorplanPlugin/utils/formatData.mjs +3 -3
  303. package/plugins/FloorplanPlugin/utils/formatFloorplanJson.js +3 -3
  304. package/plugins/FloorplanPlugin/utils/formatFloorplanJson.mjs +3 -3
  305. package/plugins/FloorplanPlugin/utils/formatPosition.js +3 -3
  306. package/plugins/FloorplanPlugin/utils/formatPosition.mjs +3 -3
  307. package/plugins/FloorplanPlugin/utils/getDistanceFromModel.js +3 -3
  308. package/plugins/FloorplanPlugin/utils/getDistanceFromModel.mjs +3 -3
  309. package/plugins/FloorplanPlugin/utils/getPxmm.js +3 -3
  310. package/plugins/FloorplanPlugin/utils/getPxmm.mjs +3 -3
  311. package/plugins/FloorplanPlugin/utils/isTruelyObject.js +3 -3
  312. package/plugins/FloorplanPlugin/utils/isTruelyObject.mjs +3 -3
  313. package/plugins/FloorplanPlugin/utils/nearlyEqual.js +3 -3
  314. package/plugins/FloorplanPlugin/utils/nearlyEqual.mjs +3 -3
  315. package/plugins/FloorplanPlugin/utils/polylabel.js +3 -3
  316. package/plugins/FloorplanPlugin/utils/polylabel.mjs +3 -3
  317. package/plugins/FloorplanPlugin/utils/to.js +3 -3
  318. package/plugins/FloorplanPlugin/utils/to.mjs +3 -3
  319. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.d.ts +6 -0
  320. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.js +3 -3
  321. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.mjs +3 -3
  322. package/plugins/GaussianSplattingEntranceAnimationPlugin/index.js +3 -3
  323. package/plugins/GaussianSplattingEntranceAnimationPlugin/index.mjs +3 -3
  324. package/plugins/Object3DHelperPlugin/Controller.js +3 -3
  325. package/plugins/Object3DHelperPlugin/Controller.mjs +3 -3
  326. package/plugins/Object3DHelperPlugin/Controllers/BaseController.js +3 -3
  327. package/plugins/Object3DHelperPlugin/Controllers/BaseController.mjs +3 -3
  328. package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.js +3 -3
  329. package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.mjs +3 -3
  330. package/plugins/Object3DHelperPlugin/Controllers/MoveController.js +3 -3
  331. package/plugins/Object3DHelperPlugin/Controllers/MoveController.mjs +3 -3
  332. package/plugins/Object3DHelperPlugin/Controllers/RotateController.js +3 -3
  333. package/plugins/Object3DHelperPlugin/Controllers/RotateController.mjs +3 -3
  334. package/plugins/Object3DHelperPlugin/FiveControllerWrapper.js +3 -3
  335. package/plugins/Object3DHelperPlugin/FiveControllerWrapper.mjs +3 -3
  336. package/plugins/Object3DHelperPlugin/Helper/BaseHelper.js +3 -3
  337. package/plugins/Object3DHelperPlugin/Helper/BaseHelper.mjs +3 -3
  338. package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.js +3 -3
  339. package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.mjs +3 -3
  340. package/plugins/Object3DHelperPlugin/Helper/MoveHelper.js +3 -3
  341. package/plugins/Object3DHelperPlugin/Helper/MoveHelper.mjs +3 -3
  342. package/plugins/Object3DHelperPlugin/Helper/RotateHelper.js +3 -3
  343. package/plugins/Object3DHelperPlugin/Helper/RotateHelper.mjs +3 -3
  344. package/plugins/Object3DHelperPlugin/constant.js +3 -3
  345. package/plugins/Object3DHelperPlugin/constant.mjs +3 -3
  346. package/plugins/Object3DHelperPlugin/index.js +3 -3
  347. package/plugins/Object3DHelperPlugin/index.mjs +3 -3
  348. package/plugins/Object3DHelperPlugin/utils/ArrowGroup.js +3 -3
  349. package/plugins/Object3DHelperPlugin/utils/ArrowGroup.mjs +3 -3
  350. package/plugins/Object3DHelperPlugin/utils/CenterHandle.js +3 -3
  351. package/plugins/Object3DHelperPlugin/utils/CenterHandle.mjs +3 -3
  352. package/plugins/Object3DHelperPlugin/utils/PlaneHandle.js +3 -3
  353. package/plugins/Object3DHelperPlugin/utils/PlaneHandle.mjs +3 -3
  354. package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.js +3 -3
  355. package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.mjs +3 -3
  356. package/plugins/Object3DHelperPlugin/utils/cameraHooks.js +3 -3
  357. package/plugins/Object3DHelperPlugin/utils/cameraHooks.mjs +3 -3
  358. package/plugins/Object3DHelperPlugin/utils/direction.js +3 -3
  359. package/plugins/Object3DHelperPlugin/utils/direction.mjs +3 -3
  360. package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.js +3 -3
  361. package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.mjs +3 -3
  362. package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.js +3 -3
  363. package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.mjs +3 -3
  364. package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.js +3 -3
  365. package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.mjs +3 -3
  366. package/plugins/Object3DHelperPlugin/utils/solidGuide.js +3 -3
  367. package/plugins/Object3DHelperPlugin/utils/solidGuide.mjs +3 -3
  368. package/plugins/Object3DHelperPlugin/utils/tipsDom.js +3 -3
  369. package/plugins/Object3DHelperPlugin/utils/tipsDom.mjs +3 -3
  370. package/plugins/PanoAnimePlugin/Controller.js +3 -3
  371. package/plugins/PanoAnimePlugin/Controller.mjs +3 -3
  372. package/plugins/PanoAnimePlugin/index.js +3 -3
  373. package/plugins/PanoAnimePlugin/index.mjs +3 -3
  374. package/plugins/WordPassPlugin/Controller.js +3 -3
  375. package/plugins/WordPassPlugin/Controller.mjs +3 -3
  376. package/plugins/WordPassPlugin/hersheyFont.js +3 -3
  377. package/plugins/WordPassPlugin/hersheyFont.mjs +3 -3
  378. package/plugins/WordPassPlugin/index.js +3 -3
  379. package/plugins/WordPassPlugin/index.mjs +3 -3
  380. package/plugins/WordPassPlugin/textToStrokeOrderStrokes.js +4 -4
  381. package/plugins/WordPassPlugin/textToStrokeOrderStrokes.mjs +4 -4
  382. package/plugins/WordPassPlugin/word-pass.js +3 -3
  383. package/plugins/WordPassPlugin/word-pass.mjs +3 -3
  384. package/plugins/index.js +3 -3
  385. package/plugins/index.mjs +3 -3
  386. package/plugins/thirdParty/CSS2DRenderer.js +3 -3
  387. package/plugins/thirdParty/CSS2DRenderer.mjs +3 -3
  388. package/plugins/thirdParty/CSS3DRenderer.js +3 -3
  389. package/plugins/thirdParty/CSS3DRenderer.mjs +3 -3
  390. package/plugins/thirdParty/doctorstrange-model.js +75 -75
  391. package/plugins/thirdParty/doctorstrange-model.mjs +75 -75
  392. package/plugins/thirdParty/domevents.js +3 -3
  393. package/plugins/thirdParty/domevents.mjs +3 -3
  394. package/plugins/utils/absoluteUrl.js +3 -3
  395. package/plugins/utils/absoluteUrl.mjs +3 -3
  396. package/plugins/utils/calculatePath.js +3 -3
  397. package/plugins/utils/calculatePath.mjs +3 -3
  398. package/plugins/utils/clamp.js +3 -3
  399. package/plugins/utils/clamp.mjs +3 -3
  400. package/plugins/utils/uuid.js +3 -3
  401. package/plugins/utils/uuid.mjs +3 -3
  402. package/react/hooks/useFiveModelReadyState.d.ts +1 -1
  403. package/react/index.js +3 -3
  404. package/react/index.mjs +3 -644
  405. package/sticker/index.d.ts +7 -0
  406. package/sticker/index.js +46 -3
  407. package/sticker/index.mjs +43 -103
  408. package/umd/five-gltf-loader.js +3 -3
  409. package/umd/five-line.js +3 -3
  410. package/umd/five-plugins.js +3 -3
  411. package/umd/five-react.js +2 -2
  412. package/umd/five-sticker.js +46 -3
  413. package/umd/five-vfx.js +2 -2
  414. package/umd/five.js +216 -179
  415. package/vfx/index.js +3 -3
  416. package/vfx/index.mjs +3 -486
  417. package/work-downloader/index.js +3 -3
  418. package/work-downloader/index.mjs +3 -315
  419. package/docs/functions/index.loadAt3d.html +0 -1
  420. package/docs/functions/index.loadDome.html +0 -1
  421. package/docs/functions/index.loadDomez.html +0 -1
  422. package/docs/functions/index.loadGltf.html +0 -1
  423. package/docs/functions/index.loadPbm.html +0 -1
  424. package/docs/functions/index.loadPly.html +0 -1
  425. package/five/certificates/hardware.d.ts +0 -1
  426. package/five/gaussian-splatting/shStore.d.ts +0 -22
  427. package/five/thirdparty/jsrsasign.d.ts +0 -753
  428. package/five/work/keychain.d.ts +0 -5
  429. package/five/work/verify.d.ts +0 -7
  430. package/five/work/workVerify.d.ts +0 -2
  431. /package/five/{work/_ALLOW_HOST.d.ts → renderer/compute-renderers/shaders/composite-additive.d.ts} +0 -0
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
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{formatFloorplanPoint as e,pathD as t}from"../utils/formatPosition.mjs";import{isLabelInRoom as n}from"./roomLabelVisibility.mjs";import{COMPASS_IMAGE as r}from"./assets.mjs";var i=e=>e*180/Math.PI;function a(e,t){let n=document.createElement(e);return t&&(n.className=t),n}function o(e,t){let n=document.createElementNS(`http://www.w3.org/2000/svg`,e);if(t)for(let e in t)n.setAttribute(e,t[e]);return n}function s(e){let t=a(`div`,`floorplan-plugin__missing-floor`),{imageURL:n,imageWidth:r=200,imageHeight:i=120,text:o,textFontSize:s=14}=e.missingFloorConfig;if(n){let e=a(`img`);e.src=n,e.alt=`缺省楼层展位图`,e.style.width=r+`px`,e.style.height=i+`px`,e.style.maxWidth=`none`,t.appendChild(e)}if(o){let e=a(`span`,`floorplan-plugin__missing-floor-text`);e.style.fontSize=s+`px`,e.textContent=o,t.appendChild(e)}return t}var c=0;function l(e,t){e.appendChild(o(`path`,{d:t,fill:`#2F313A`}))}function u(e,t){let n=`fpm-room-pattern-tile-${c++}`,r=o(`defs`),i=o(`pattern`,{id:n,x:`0`,y:`0`,width:`12`,height:`12`,patternUnits:`userSpaceOnUse`,patternTransform:`scale(50 50)`});i.appendChild(o(`rect`,{x:`0`,y:`0`,width:`12`,height:`12`,fill:`#323747`})),i.appendChild(o(`path`,{d:`M0 6 h 12 M6 0 v 12`,stroke:`#ffffff`,"stroke-opacity":`0.06`,"stroke-width":`0.5`,fill:`none`})),r.appendChild(i),e.appendChild(r),e.appendChild(o(`path`,{d:t,fill:`url(#${n})`}))}function d(e,t){let n=`fpm-room-pattern-wood-1-${c++}`,r=`fpm-room-pattern-wood-2-${c++}`,i=o(`defs`),a=o(`pattern`,{id:n,x:`0`,y:`0`,width:`12`,height:`50`,patternUnits:`userSpaceOnUse`,patternTransform:`scale(50 50)`});a.appendChild(o(`rect`,{x:`0`,y:`0`,width:`6`,height:`50`,fill:`none`,stroke:`#4B4B57`,"stroke-width":`0.5`}));let s=o(`pattern`,{id:r,x:`6`,y:`25`,width:`12`,height:`50`,patternUnits:`userSpaceOnUse`,patternTransform:`scale(50 50)`});s.appendChild(o(`rect`,{x:`0`,y:`0`,width:`6`,height:`50`,fill:`none`,stroke:`#4B4B57`,"stroke-width":`0.5`})),i.appendChild(a),i.appendChild(s),e.appendChild(i),e.appendChild(o(`path`,{d:t,fill:`#43434D`})),e.appendChild(o(`path`,{d:t,fill:`url(#${n})`})),e.appendChild(o(`path`,{d:t,fill:`url(#${r})`}))}function f(e){let{vertical:n,horizontal:r}=e;if(!(!n||n.length<2||!r||r.length<2))return`${t([{x:n[1].x,y:n[1].y+53},{x:n[1].x-60,y:n[1].y+124},{x:n[1].x+60,y:n[1].y+124}],{needZ:!0})} ${t([{x:n[0].x,y:n[0].y-53},{x:n[0].x-60,y:n[0].y-124},{x:n[0].x+60,y:n[0].y-124}],{needZ:!0})} ${t([{x:r[0].x+53,y:r[0].y},{x:r[0].x+124,y:r[0].y+60},{x:r[0].x+124,y:r[0].y-60}],{needZ:!0})} ${t([{x:r[1].x-53,y:r[1].y},{x:r[1].x-124,y:r[1].y+60},{x:r[1].x-124,y:r[1].y-60}],{needZ:!0})}`}function p(n,r,i){let s=a(`div`,`floorplan-plugin__room-material`),{bounding:c}=r,p=c.max.x-c.min.x,m=c.max.y-c.min.y,h=i.roomLabelsEnable&&i.roomDimensionEnable;for(let r of n.rooms){let n=t(r.path.map(t=>e(t,c)),{needZ:!0}),i=o(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${p} ${m}`});if(r.floorType===1?l(i,n):r.floorType===0?d(i,n):u(i,n),s.appendChild(i),h&&r.dimension){let e=f(r.dimension);if(e){let t=o(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${p} ${m}`});t.appendChild(o(`path`,{d:e,fill:`#969696`,stroke:`#969696`,"stroke-width":`1`,"fill-rule":`evenodd`})),s.appendChild(t)}}}return s}function m(n,r,i){let s=a(`div`,`floorplan-plugin__room-highlight`),{bounding:c}=r,l=o(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${c.max.x-c.min.x} ${c.max.y-c.min.y}`});for(let r of n.rooms){let n=o(`path`,{d:t(r.path,{needZ:!0,format:t=>e(t,c)}),id:`${i.floorIndex}_${r.id}`}),a=i.highlightData[`${i.floorIndex}_${r.id}`];a&&(a.fill&&(n.style.fill=a.fill),a.opacity!==void 0&&n.style.setProperty(`--opacity`,String(a.opacity)),n.style.pointerEvents=a.disabled?`none`:`auto`),n.addEventListener(`mouseenter`,()=>i.onRoomHover(r)),n.addEventListener(`mouseleave`,()=>i.onRoomHover(null)),l.appendChild(n)}return s.appendChild(l),s}function h(e,t){let n=a(`div`,`floorplan-plugin__base-image`),r=e.outlines[t];if(r!=null&&r.svgContent)n.innerHTML=r.svgContent;else if(r!=null&&r.url){let e=a(`img`);e.src=r.url,e.alt=`floorplan image`,n.appendChild(e)}return n}function g(e){var t;let n=a(`div`,`floorplan-plugin__items`);for(let r of(t=e.items)==null?[]:t){let e=a(`div`,`floorplan-plugin__item`);e.style.left=r.positionInImage.x*100+`%`,e.style.top=r.positionInImage.y*100+`%`,e.style.width=r.width*100+`%`,e.style.height=r.height*100+`%`;let t=a(`img`,`floorplan-plugin__item-img`);if(t.src=r.src,t.alt=``,t.style.transform=`rotate(${r.rotateZ}deg) scaleX(${r.rotateX?-1:1}) scaleY(${r.rotateY?-1:1})`,e.appendChild(t),r.notes){let t=a(`span`,`floorplan-plugin__item-notes`);t.textContent=r.notes,e.appendChild(t)}n.appendChild(e)}return n}function _(e,t,n,r){var i,o;let s=a(`div`,`floorplan-plugin__room-label-item`);s.style.left=e.roomLabel.positionInImage.x*100+`%`,s.style.top=e.roomLabel.positionInImage.y*100+`%`;let c=r===e.id,{bounding:l}=t,u=l.max.x-l.min.x;s.dataset.roomId=e.id,s.dataset.roomLabelX=String(e.roomLabel.position.x),s.dataset.roomLabelY=String(e.roomLabel.position.y),s.dataset.boundingWidth=String(u);let d=(i=n.getLabelElement)==null?void 0:i.call(n,e);if(d)return s.appendChild(d),s;let f=a(`div`,`floorplan-plugin__room-part1`);if(n.roomNameEnable){let t=a(`span`,`floorplan-plugin__room-name`);t.textContent=n.roomNameOtherTypeEnable?e.name:e.roomType===`100900000012`?(o=e.customizedName)==null?e.name:o:e.name,f.appendChild(t)}if(n.roomAreaEnable&&e.size){let t=a(`span`,`floorplan-plugin__room-area`);t.textContent=n.getRoomAreaText(e.size),f.appendChild(t)}if(s.appendChild(f),n.roomDimensionEnable&&e.dimension){let t=a(`span`,`floorplan-plugin__room-size`);t.textContent=n.getRoomDimensionText(e.dimension.width,e.dimension.height),s.appendChild(t)}return c&&(s.style.opacity=`1`,f.style.opacity=`1`),s}function v(e,t,n,r){let i=a(`div`,`floorplan-plugin__room-labels`);for(let a of e.rooms)i.appendChild(_(a,t,n,r));return i}function y(e,t,n,r){let o=e.observers[t];if(!o)return;let s=a(`div`,`floorplan-plugin__camera-position`);s.style.left=o.positionInImage.x*100+`%`,s.style.top=o.positionInImage.y*100+`%`;let c=a(`div`,`floorplan-plugin__camera-rotate`),l=document.body.clientWidth,u=document.body.clientHeight,d=`${(l<500||u<500?17:37)/16}rem`;return c.style.width=d,c.style.height=d,c.style.left=`-`+d,c.style.top=`-`+d,c.style.transform=`rotate(${-i(n)+45}deg)`,c.style.transformOrigin=`${d} ${d}`,c.style.backgroundImage=`url(${r||`data:image/png;base64,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`})`,s.appendChild(c),s}var b=1e3,x=180;function S(e,t,n,r){let i=e===`top`||e===`bottom`,o=n.max.x-n.min.x-(b-x)*2,s=n.max.y-n.min.y-(b-x)*2,c=t.map(([e,t])=>i?[e.x,t.x]:[e.y,t.y]).flat().sort((e,t)=>e-t).filter((e,t,n)=>t===0||e!==n[t-1]),l=c.map(e=>({left:i?(e-n.min.x-b+x)/o:0,bottom:i?0:(e-n.min.y-b+x)/s}));l.unshift({left:0,bottom:0}),l.push(i?{left:1,bottom:0}:{left:0,bottom:1});let u=c.length?c[c.length-1]-c[0]:0,d=c.map((e,t,r)=>{let a=t===0?0:e-r[t-1],c=t===0?0:(e+r[t-1])/2;return{left:i?(c-n.min.x-b+x)/o:0,bottom:i?0:(c-n.min.y-b+x)/s,distance:a}}).filter(({distance:e})=>u?e/u>.1:!1),f=a(`div`,`floorplan-plugin__rule-labels floorplan-plugin__rule-labels--${e}${i?` is-row`:``}`);f.style.width=i?`100%`:`0.0625rem`,f.style.height=i?`0.0625rem`:`100%`,f.appendChild(a(`div`,`floorplan-plugin__rule-line`));let p=a(`div`,`floorplan-plugin__rule-scale-wrapper${i?` is-row`:``}`);for(let{left:e,bottom:t}of l){let n=a(`div`,`floorplan-plugin__rule-scale`);n.style.left=e*100+`%`,n.style.bottom=t*100+`%`,p.appendChild(n)}f.appendChild(p);let m=a(`div`,`floorplan-plugin__rule-text-wrapper`);for(let{left:e,bottom:t,distance:n}of d){let o=a(`div`,`floorplan-plugin__rule-text-item`);o.style.left=e*100+`%`,o.style.bottom=t*100+`%`;let s=a(`div`,`floorplan-plugin__rule-text${i?` is-row`:``}`);s.textContent=r(n),o.appendChild(s),m.appendChild(o)}return f.appendChild(m),f}function C(e,t,n){let r=t.bounding,i=r.max.x-r.min.x,o=r.max.y-r.min.y,s=i-(b-x)*2,c=o-(b-x)*2,l=a(`div`,`floorplan-plugin__rule-labels-wrapper`);l.style.width=s/i*100+`%`,l.style.height=c/o*100+`%`;let u=e.rules;for(let e of[`top`,`right`,`bottom`,`left`]){let t=u[e];!t||t.length===0||l.appendChild(S(e,t,r,n.getRuleDistanceText))}return l}function w(e,t){var n;let o=(n=e.entrance)==null?void 0:n.northRad;if(typeof o!=`number`)return;let s=a(`div`,`floorplan-plugin__compass`),c=i(o);s.style.transform=`translateX(-50%) translateZ(10px) rotate(${-c+90}deg)`;let l=a(`div`,`floorplan-plugin__compass-image`);l.style.backgroundImage=`url(${r})`,s.appendChild(l);let u=a(`span`,`floorplan-plugin__compass-text`);return u.textContent=t,s.appendChild(u),s}function T(e){var t,n;let{floorplanData:r,floorIndex:i,config:o}=e,c=r.floorDatas[i],l=a(`div`,`floorplan-plugin__floor`);if(!(c.rooms.length>0||c.is_has_wall))return l.appendChild(s(o)),l;if(l.appendChild(p(c,r,o)),(o.highlightEnable||o.hoverEnable)&&l.appendChild(m(c,r,e)),l.appendChild(h(r,i)),l.appendChild(g(c)),o.roomLabelsEnable&&l.appendChild(v(c,r,o,(n=(t=e.store.roomOnMouse)==null?void 0:t.id)==null?null:n)),o.ruleLabelsEnable&&l.appendChild(C(c,r,o)),o.cameraEnable){let t=y(r,e.panoIndex,e.lastPanoramaLongitude,o.cameraImageUrl);t&&l.appendChild(t)}if(o.compassEnable){let e=w(r,o.northDesc);e&&l.appendChild(e)}return l}function E(e,t,r,i){let a=e.querySelector(`.floorplan-plugin__room-labels`);if(!a)return;let o=a.clientWidth;if(!o)return;let s=t.floorDatas[r],c=new Map(s.rooms.map(e=>[e.id,e])),{max:l,min:u}=t.bounding,d=o/(l.x-u.x);a.querySelectorAll(`.floorplan-plugin__room-label-item`).forEach(e=>{if(!i){e.style.opacity=`1`;return}let t=e.dataset.roomId,r=t?c.get(t):void 0;if(!r)return;let a=e.querySelector(`.floorplan-plugin__room-part1`),o=e.querySelector(`.floorplan-plugin__room-size`),s=n(r,{width:e.clientWidth,height:e.clientHeight},d),l=a?n(r,{width:a.clientWidth,height:a.clientHeight},d):s;e.style.opacity=s||l?`1`:`0`,a&&(a.style.opacity=l?`1`:`0`),o&&(o.style.opacity=s?`0.6`:`0`)})}export{T as renderFloor,E as updateRoomLabelsVisibility};
338
+ */import{formatFloorplanPoint,pathD}from"../utils/formatPosition.mjs";import{isLabelInRoom}from"./roomLabelVisibility.mjs";import{COMPASS_IMAGE}from"./assets.mjs";var rad2Deg=rad=>rad*180/Math.PI;function el(tag,className){let node=document.createElement(tag);return className&&(node.className=className),node}function svgEl(tag,attrs){let node=document.createElementNS(`http://www.w3.org/2000/svg`,tag);if(attrs)for(let key in attrs)node.setAttribute(key,attrs[key]);return node}function renderMissingFloor(config){let wrapper=el(`div`,`floorplan-plugin__missing-floor`),{imageURL,imageWidth=200,imageHeight=120,text,textFontSize=14}=config.missingFloorConfig;if(imageURL){let img=el(`img`);img.src=imageURL,img.alt=`缺省楼层展位图`,img.style.width=imageWidth+`px`,img.style.height=imageHeight+`px`,img.style.maxWidth=`none`,wrapper.appendChild(img)}if(text){let span=el(`span`,`floorplan-plugin__missing-floor-text`);span.style.fontSize=textFontSize+`px`,span.textContent=text,wrapper.appendChild(span)}return wrapper}var materialPatternIdSeq=0;function appendRoomMaterial0(svg,d){svg.appendChild(svgEl(`path`,{d,fill:`#2F313A`}))}function appendRoomMaterial1(svg,d){let patternId=`fpm-room-pattern-tile-${materialPatternIdSeq++}`,defs=svgEl(`defs`),pattern=svgEl(`pattern`,{id:patternId,x:`0`,y:`0`,width:`12`,height:`12`,patternUnits:`userSpaceOnUse`,patternTransform:`scale(50 50)`});pattern.appendChild(svgEl(`rect`,{x:`0`,y:`0`,width:`12`,height:`12`,fill:`#323747`})),pattern.appendChild(svgEl(`path`,{d:`M0 6 h 12 M6 0 v 12`,stroke:`#ffffff`,"stroke-opacity":`0.06`,"stroke-width":`0.5`,fill:`none`})),defs.appendChild(pattern),svg.appendChild(defs),svg.appendChild(svgEl(`path`,{d,fill:`url(#${patternId})`}))}function appendRoomMaterial2(svg,d){let patternId1=`fpm-room-pattern-wood-1-${materialPatternIdSeq++}`,patternId2=`fpm-room-pattern-wood-2-${materialPatternIdSeq++}`,defs=svgEl(`defs`),pattern1=svgEl(`pattern`,{id:patternId1,x:`0`,y:`0`,width:`12`,height:`50`,patternUnits:`userSpaceOnUse`,patternTransform:`scale(50 50)`});pattern1.appendChild(svgEl(`rect`,{x:`0`,y:`0`,width:`6`,height:`50`,fill:`none`,stroke:`#4B4B57`,"stroke-width":`0.5`}));let pattern2=svgEl(`pattern`,{id:patternId2,x:`6`,y:`25`,width:`12`,height:`50`,patternUnits:`userSpaceOnUse`,patternTransform:`scale(50 50)`});pattern2.appendChild(svgEl(`rect`,{x:`0`,y:`0`,width:`6`,height:`50`,fill:`none`,stroke:`#4B4B57`,"stroke-width":`0.5`})),defs.appendChild(pattern1),defs.appendChild(pattern2),svg.appendChild(defs),svg.appendChild(svgEl(`path`,{d,fill:`#43434D`})),svg.appendChild(svgEl(`path`,{d,fill:`url(#${patternId1})`})),svg.appendChild(svgEl(`path`,{d,fill:`url(#${patternId2})`}))}function buildRoomTrianglePath(dimension){let{vertical,horizontal}=dimension;if(!(!vertical||vertical.length<2||!horizontal||horizontal.length<2))return`${pathD([{x:vertical[1].x,y:vertical[1].y+53},{x:vertical[1].x-60,y:vertical[1].y+124},{x:vertical[1].x+60,y:vertical[1].y+124}],{needZ:!0})} ${pathD([{x:vertical[0].x,y:vertical[0].y-53},{x:vertical[0].x-60,y:vertical[0].y-124},{x:vertical[0].x+60,y:vertical[0].y-124}],{needZ:!0})} ${pathD([{x:horizontal[0].x+53,y:horizontal[0].y},{x:horizontal[0].x+124,y:horizontal[0].y+60},{x:horizontal[0].x+124,y:horizontal[0].y-60}],{needZ:!0})} ${pathD([{x:horizontal[1].x-53,y:horizontal[1].y},{x:horizontal[1].x-124,y:horizontal[1].y+60},{x:horizontal[1].x-124,y:horizontal[1].y-60}],{needZ:!0})}`}function renderRoomMaterial(floorData,floorplanData,config){let wrapper=el(`div`,`floorplan-plugin__room-material`),{bounding}=floorplanData,boundingWidth=bounding.max.x-bounding.min.x,boundingHeight=bounding.max.y-bounding.min.y,allowShowArrow=config.roomLabelsEnable&&config.roomDimensionEnable;for(let room of floorData.rooms){let d=pathD(room.path.map(p=>formatFloorplanPoint(p,bounding)),{needZ:!0}),svg=svgEl(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${boundingWidth} ${boundingHeight}`});if(room.floorType===1?appendRoomMaterial0(svg,d):room.floorType===0?appendRoomMaterial2(svg,d):appendRoomMaterial1(svg,d),wrapper.appendChild(svg),allowShowArrow&&room.dimension){let trianglePath=buildRoomTrianglePath(room.dimension);if(trianglePath){let triangleSvg=svgEl(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${boundingWidth} ${boundingHeight}`});triangleSvg.appendChild(svgEl(`path`,{d:trianglePath,fill:`#969696`,stroke:`#969696`,"stroke-width":`1`,"fill-rule":`evenodd`})),wrapper.appendChild(triangleSvg)}}}return wrapper}function renderRoomHighlight(floorData,floorplanData,ctx){let wrapper=el(`div`,`floorplan-plugin__room-highlight`),{bounding}=floorplanData,svg=svgEl(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 ${bounding.max.x-bounding.min.x} ${bounding.max.y-bounding.min.y}`});for(let room of floorData.rooms){let path=svgEl(`path`,{d:pathD(room.path,{needZ:!0,format:p=>formatFloorplanPoint(p,bounding)}),id:`${ctx.floorIndex}_${room.id}`}),highlight=ctx.highlightData[`${ctx.floorIndex}_${room.id}`];highlight&&(highlight.fill&&(path.style.fill=highlight.fill),highlight.opacity!==void 0&&path.style.setProperty(`--opacity`,String(highlight.opacity)),path.style.pointerEvents=highlight.disabled?`none`:`auto`),path.addEventListener(`mouseenter`,()=>ctx.onRoomHover(room)),path.addEventListener(`mouseleave`,()=>ctx.onRoomHover(null)),svg.appendChild(path)}return wrapper.appendChild(svg),wrapper}function renderBaseImage(floorplanData,floorIndex){let wrapper=el(`div`,`floorplan-plugin__base-image`),outline=floorplanData.outlines[floorIndex];if(outline!=null&&outline.svgContent)wrapper.innerHTML=outline.svgContent;else if(outline!=null&&outline.url){let img=el(`img`);img.src=outline.url,img.alt=`floorplan image`,wrapper.appendChild(img)}return wrapper}function renderItems(floorData){var _a;let wrapper=el(`div`,`floorplan-plugin__items`);for(let item of(_a=floorData.items)==null?[]:_a){let itemEl=el(`div`,`floorplan-plugin__item`);itemEl.style.left=item.positionInImage.x*100+`%`,itemEl.style.top=item.positionInImage.y*100+`%`,itemEl.style.width=item.width*100+`%`,itemEl.style.height=item.height*100+`%`;let img=el(`img`,`floorplan-plugin__item-img`);if(img.src=item.src,img.alt=``,img.style.transform=`rotate(${item.rotateZ}deg) scaleX(${item.rotateX?-1:1}) scaleY(${item.rotateY?-1:1})`,itemEl.appendChild(img),item.notes){let notes=el(`span`,`floorplan-plugin__item-notes`);notes.textContent=item.notes,itemEl.appendChild(notes)}wrapper.appendChild(itemEl)}return wrapper}function renderRoomLabel(room,floorplanData,config,hoveredRoomId){var _a,_b;let item=el(`div`,`floorplan-plugin__room-label-item`);item.style.left=room.roomLabel.positionInImage.x*100+`%`,item.style.top=room.roomLabel.positionInImage.y*100+`%`;let isHovered=hoveredRoomId===room.id,{bounding}=floorplanData,boundingWidth=bounding.max.x-bounding.min.x;item.dataset.roomId=room.id,item.dataset.roomLabelX=String(room.roomLabel.position.x),item.dataset.roomLabelY=String(room.roomLabel.position.y),item.dataset.boundingWidth=String(boundingWidth);let userElement=(_a=config.getLabelElement)==null?void 0:_a.call(config,room);if(userElement)return item.appendChild(userElement),item;let part1=el(`div`,`floorplan-plugin__room-part1`);if(config.roomNameEnable){let name=el(`span`,`floorplan-plugin__room-name`);name.textContent=config.roomNameOtherTypeEnable?room.name:room.roomType===`100900000012`?(_b=room.customizedName)==null?room.name:_b:room.name,part1.appendChild(name)}if(config.roomAreaEnable&&room.size){let area=el(`span`,`floorplan-plugin__room-area`);area.textContent=config.getRoomAreaText(room.size),part1.appendChild(area)}if(item.appendChild(part1),config.roomDimensionEnable&&room.dimension){let size=el(`span`,`floorplan-plugin__room-size`);size.textContent=config.getRoomDimensionText(room.dimension.width,room.dimension.height),item.appendChild(size)}return isHovered&&(item.style.opacity=`1`,part1.style.opacity=`1`),item}function renderRoomLabels(floorData,floorplanData,config,hoveredRoomId){let wrapper=el(`div`,`floorplan-plugin__room-labels`);for(let room of floorData.rooms)wrapper.appendChild(renderRoomLabel(room,floorplanData,config,hoveredRoomId));return wrapper}function renderCamera(floorplanData,panoIndex,lastPanoramaLongitude,cameraImageUrl){let observer=floorplanData.observers[panoIndex];if(!observer)return;let wrapper=el(`div`,`floorplan-plugin__camera-position`);wrapper.style.left=observer.positionInImage.x*100+`%`,wrapper.style.top=observer.positionInImage.y*100+`%`;let rotate=el(`div`,`floorplan-plugin__camera-rotate`),bodyWidth=document.body.clientWidth,bodyHeight=document.body.clientHeight,domSize=`${(bodyWidth<500||bodyHeight<500?17:37)/16}rem`;return rotate.style.width=domSize,rotate.style.height=domSize,rotate.style.left=`-`+domSize,rotate.style.top=`-`+domSize,rotate.style.transform=`rotate(${-rad2Deg(lastPanoramaLongitude)+45}deg)`,rotate.style.transformOrigin=`${domSize} ${domSize}`,rotate.style.backgroundImage=`url(${cameraImageUrl||`data:image/png;base64,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`})`,wrapper.appendChild(rotate),wrapper}var RULE_PADDING=1e3,RULE_EXTERIOR_WALL_OFFSET=180;function renderRuleItem(type,segments,bounding,getRuleDistanceText){let isRow=type===`top`||type===`bottom`,contentWidth=bounding.max.x-bounding.min.x-(RULE_PADDING-RULE_EXTERIOR_WALL_OFFSET)*2,contentHeight=bounding.max.y-bounding.min.y-(RULE_PADDING-RULE_EXTERIOR_WALL_OFFSET)*2,rulerPoints=segments.map(([start,end])=>isRow?[start.x,end.x]:[start.y,end.y]).flat().sort((a,b)=>a-b).filter((x,index,arr)=>index===0||x!==arr[index-1]),rulerLabels=rulerPoints.map(num=>({left:isRow?(num-bounding.min.x-RULE_PADDING+RULE_EXTERIOR_WALL_OFFSET)/contentWidth:0,bottom:isRow?0:(num-bounding.min.y-RULE_PADDING+RULE_EXTERIOR_WALL_OFFSET)/contentHeight}));rulerLabels.unshift({left:0,bottom:0}),rulerLabels.push(isRow?{left:1,bottom:0}:{left:0,bottom:1});let length=rulerPoints.length?rulerPoints[rulerPoints.length-1]-rulerPoints[0]:0,rulerTexts=rulerPoints.map((num,index,arr)=>{let distance=index===0?0:num-arr[index-1],positionNum=index===0?0:(num+arr[index-1])/2;return{left:isRow?(positionNum-bounding.min.x-RULE_PADDING+RULE_EXTERIOR_WALL_OFFSET)/contentWidth:0,bottom:isRow?0:(positionNum-bounding.min.y-RULE_PADDING+RULE_EXTERIOR_WALL_OFFSET)/contentHeight,distance}}).filter(({distance})=>length?distance/length>.1:!1),wrapper=el(`div`,`floorplan-plugin__rule-labels floorplan-plugin__rule-labels--${type}${isRow?` is-row`:``}`);wrapper.style.width=isRow?`100%`:`0.0625rem`,wrapper.style.height=isRow?`0.0625rem`:`100%`,wrapper.appendChild(el(`div`,`floorplan-plugin__rule-line`));let scaleWrapper=el(`div`,`floorplan-plugin__rule-scale-wrapper${isRow?` is-row`:``}`);for(let{left,bottom}of rulerLabels){let scale=el(`div`,`floorplan-plugin__rule-scale`);scale.style.left=left*100+`%`,scale.style.bottom=bottom*100+`%`,scaleWrapper.appendChild(scale)}wrapper.appendChild(scaleWrapper);let textWrapper=el(`div`,`floorplan-plugin__rule-text-wrapper`);for(let{left,bottom,distance}of rulerTexts){let textItem=el(`div`,`floorplan-plugin__rule-text-item`);textItem.style.left=left*100+`%`,textItem.style.bottom=bottom*100+`%`;let text=el(`div`,`floorplan-plugin__rule-text${isRow?` is-row`:``}`);text.textContent=getRuleDistanceText(distance),textItem.appendChild(text),textWrapper.appendChild(textItem)}return wrapper.appendChild(textWrapper),wrapper}function renderRuleLabels(floorData,floorplanData,config){let bounding=floorplanData.bounding,boundingWidth=bounding.max.x-bounding.min.x,boundingHeight=bounding.max.y-bounding.min.y,contentWidth=boundingWidth-(RULE_PADDING-RULE_EXTERIOR_WALL_OFFSET)*2,contentHeight=boundingHeight-(RULE_PADDING-RULE_EXTERIOR_WALL_OFFSET)*2,wrapper=el(`div`,`floorplan-plugin__rule-labels-wrapper`);wrapper.style.width=contentWidth/boundingWidth*100+`%`,wrapper.style.height=contentHeight/boundingHeight*100+`%`;let rules=floorData.rules;for(let key of[`top`,`right`,`bottom`,`left`]){let segments=rules[key];!segments||segments.length===0||wrapper.appendChild(renderRuleItem(key,segments,bounding,config.getRuleDistanceText))}return wrapper}function renderCompass(floorplanData,northDesc){var _a;let northRad=(_a=floorplanData.entrance)==null?void 0:_a.northRad;if(typeof northRad!=`number`)return;let wrapper=el(`div`,`floorplan-plugin__compass`),rotate=rad2Deg(northRad);wrapper.style.transform=`translateX(-50%) translateZ(10px) rotate(${-rotate+90}deg)`;let image=el(`div`,`floorplan-plugin__compass-image`);image.style.backgroundImage=`url(${COMPASS_IMAGE})`,wrapper.appendChild(image);let text=el(`span`,`floorplan-plugin__compass-text`);return text.textContent=northDesc,wrapper.appendChild(text),wrapper}function renderFloor(ctx){var _a,_b;let{floorplanData,floorIndex,config}=ctx,floorData=floorplanData.floorDatas[floorIndex],floorEl=el(`div`,`floorplan-plugin__floor`);if(!(floorData.rooms.length>0||floorData.is_has_wall))return floorEl.appendChild(renderMissingFloor(config)),floorEl;if(floorEl.appendChild(renderRoomMaterial(floorData,floorplanData,config)),(config.highlightEnable||config.hoverEnable)&&floorEl.appendChild(renderRoomHighlight(floorData,floorplanData,ctx)),floorEl.appendChild(renderBaseImage(floorplanData,floorIndex)),floorEl.appendChild(renderItems(floorData)),config.roomLabelsEnable&&floorEl.appendChild(renderRoomLabels(floorData,floorplanData,config,(_b=(_a=ctx.store.roomOnMouse)==null?void 0:_a.id)==null?null:_b)),config.ruleLabelsEnable&&floorEl.appendChild(renderRuleLabels(floorData,floorplanData,config)),config.cameraEnable){let camera=renderCamera(floorplanData,ctx.panoIndex,ctx.lastPanoramaLongitude,config.cameraImageUrl);camera&&floorEl.appendChild(camera)}if(config.compassEnable){let compass=renderCompass(floorplanData,config.northDesc);compass&&floorEl.appendChild(compass)}return floorEl}function updateRoomLabelsVisibility(floorEl,floorplanData,floorIndex,adaptiveEnable){let labelsWrapper=floorEl.querySelector(`.floorplan-plugin__room-labels`);if(!labelsWrapper)return;let clientWidth=labelsWrapper.clientWidth;if(!clientWidth)return;let floorData=floorplanData.floorDatas[floorIndex],roomsById=new Map(floorData.rooms.map(room=>[room.id,room])),{max,min}=floorplanData.bounding,pxmm=clientWidth/(max.x-min.x);labelsWrapper.querySelectorAll(`.floorplan-plugin__room-label-item`).forEach(item=>{if(!adaptiveEnable){item.style.opacity=`1`;return}let roomId=item.dataset.roomId,room=roomId?roomsById.get(roomId):void 0;if(!room)return;let part1=item.querySelector(`.floorplan-plugin__room-part1`),sizeEl=item.querySelector(`.floorplan-plugin__room-size`),wrapperVisible=isLabelInRoom(room,{width:item.clientWidth,height:item.clientHeight},pxmm),mainVisible=part1?isLabelInRoom(room,{width:part1.clientWidth,height:part1.clientHeight},pxmm):wrapperVisible;item.style.opacity=wrapperVisible||mainVisible?`1`:`0`,part1&&(part1.style.opacity=mainVisible?`1`:`0`),sizeEl&&(sizeEl.style.opacity=wrapperVisible?`0.6`:`0`)})}export{renderFloor,updateRoomLabelsVisibility};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
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("./isPointInPolygon.js");function t(t,n,r){if(n.width===0||n.height===0)return!1;let i=t.path.map(({x:e,y:t})=>[e,t]),{x:a,y:o}=t.roomLabel.position,s=n.width/2,c=n.height/2,l=a*r,u=o*r,d=i.map(([e,t])=>[e*r,t*r]);return[[l+s,u-c],[l-s,u-c],[l-s,u+c],[l+s,u+c]].every(t=>e.isPointInPolygon(t,d))}exports.isLabelInRoom=t;
338
+ */const require_isPointInPolygon=require("./isPointInPolygon.js");function isLabelInRoom(room,labelSize,pxmm){if(labelSize.width===0||labelSize.height===0)return!1;let polygon=room.path.map(({x,y})=>[x,y]),{x,y}=room.roomLabel.position,halfWidth=labelSize.width/2,halfHeight=labelSize.height/2,clientX=x*pxmm,clientY=y*pxmm,clientPolygon=polygon.map(([px,py])=>[px*pxmm,py*pxmm]);return[[clientX+halfWidth,clientY-halfHeight],[clientX-halfWidth,clientY-halfHeight],[clientX-halfWidth,clientY+halfHeight],[clientX+halfWidth,clientY+halfHeight]].every(point=>require_isPointInPolygon.isPointInPolygon(point,clientPolygon))}exports.isLabelInRoom=isLabelInRoom;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
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{isPointInPolygon as e}from"./isPointInPolygon.mjs";function t(t,n,r){if(n.width===0||n.height===0)return!1;let i=t.path.map(({x:e,y:t})=>[e,t]),{x:a,y:o}=t.roomLabel.position,s=n.width/2,c=n.height/2,l=a*r,u=o*r,d=i.map(([e,t])=>[e*r,t*r]);return[[l+s,u-c],[l-s,u-c],[l-s,u+c],[l+s,u+c]].every(t=>e(t,d))}export{t as isLabelInRoom};
338
+ */import{isPointInPolygon}from"./isPointInPolygon.mjs";function isLabelInRoom(room,labelSize,pxmm){if(labelSize.width===0||labelSize.height===0)return!1;let polygon=room.path.map(({x,y})=>[x,y]),{x,y}=room.roomLabel.position,halfWidth=labelSize.width/2,halfHeight=labelSize.height/2,clientX=x*pxmm,clientY=y*pxmm,clientPolygon=polygon.map(([px,py])=>[px*pxmm,py*pxmm]);return[[clientX+halfWidth,clientY-halfHeight],[clientX-halfWidth,clientY-halfHeight],[clientX-halfWidth,clientY+halfHeight],[clientX+halfWidth,clientY+halfHeight]].every(point=>isPointInPolygon(point,clientPolygon))}export{isLabelInRoom};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,7 +335,7 @@
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=`.floorplan-plugin__main {
338
+ */var style_default=`.floorplan-plugin__main {
339
339
  position: absolute;
340
340
  pointer-events: none;
341
341
  opacity: 0;
@@ -665,4 +665,4 @@
665
665
  font-size: 10px;
666
666
  color: #fff;
667
667
  }
668
- `;exports.default=e;
668
+ `;exports.default=style_default;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
4
+ * Generated: 2026/11/3
5
+ * Version: 1.0.0-alpha.14
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,7 +335,7 @@
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=`.floorplan-plugin__main {
338
+ */var style_default=`.floorplan-plugin__main {
339
339
  position: absolute;
340
340
  pointer-events: none;
341
341
  opacity: 0;
@@ -665,4 +665,4 @@
665
665
  font-size: 10px;
666
666
  color: #fff;
667
667
  }
668
- `;export{e as default};
668
+ `;export{style_default as default};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
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("./nearlyEqual.js"),t=require("./to.js");let n=require("tslib");function r(e){return Object.prototype.toString.call(e)===`[object Object]`&&!!e.isVector3}function i(t,n){return Object.keys(t).every(i=>{let a=n[i],o=t[i];return a===void 0||o===void 0?!0:i===`longitude`||i===`latitude`?e.nearlyEqualRad(a,o,2):typeof a==`number`&&typeof o==`number`?e.nearlyEqual(a,o,2):r(o)&&r(a)?o.distanceTo(a)<.01:a===o})}function a(e,r){return(0,n.__awaiter)(this,void 0,void 0,function*(){let[n]=yield t.default(e.changeMode(...r));if(n)throw Error(`change mode canceled`);yield new Promise(t=>{e.once(`initAnimationWillStart`,()=>{e.once(`initAnimationEnded`,()=>t())})});let a=r[1];if(a&&!i(a,e.getCurrentState()))throw Error(`pose 与预期不符`)})}exports.changeMode=a;
338
+ */const require_nearlyEqual=require("./nearlyEqual.js"),require_to=require("./to.js");let tslib=require("tslib");function isVector3(value){return Object.prototype.toString.call(value)===`[object Object]`&&!!value.isVector3}function checkPose(targetPose,fivePose){return Object.keys(targetPose).every(key=>{let fiveItem=fivePose[key],targetItem=targetPose[key];return fiveItem===void 0||targetItem===void 0?!0:key===`longitude`||key===`latitude`?require_nearlyEqual.nearlyEqualRad(fiveItem,targetItem,2):typeof fiveItem==`number`&&typeof targetItem==`number`?require_nearlyEqual.nearlyEqual(fiveItem,targetItem,2):isVector3(targetItem)&&isVector3(fiveItem)?targetItem.distanceTo(fiveItem)<.01:fiveItem===targetItem})}function changeMode(five,changeModeParams){return(0,tslib.__awaiter)(this,void 0,void 0,function*(){let[changeModeError]=yield require_to.default(five.changeMode(...changeModeParams));if(changeModeError)throw Error(`change mode canceled`);yield new Promise(resolve=>{five.once(`initAnimationWillStart`,()=>{five.once(`initAnimationEnded`,()=>resolve())})});let targetPose=changeModeParams[1];if(targetPose&&!checkPose(targetPose,five.getCurrentState()))throw Error(`pose 与预期不符`)})}exports.changeMode=changeMode;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
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{nearlyEqual as e,nearlyEqualRad as t}from"./nearlyEqual.mjs";import n from"./to.mjs";import{__awaiter as r}from"tslib";function i(e){return Object.prototype.toString.call(e)===`[object Object]`&&!!e.isVector3}function a(n,r){return Object.keys(n).every(a=>{let o=r[a],s=n[a];return o===void 0||s===void 0?!0:a===`longitude`||a===`latitude`?t(o,s,2):typeof o==`number`&&typeof s==`number`?e(o,s,2):i(s)&&i(o)?s.distanceTo(o)<.01:o===s})}function o(e,t){return r(this,void 0,void 0,function*(){let[r]=yield n(e.changeMode(...t));if(r)throw Error(`change mode canceled`);yield new Promise(t=>{e.once(`initAnimationWillStart`,()=>{e.once(`initAnimationEnded`,()=>t())})});let i=t[1];if(i&&!a(i,e.getCurrentState()))throw Error(`pose 与预期不符`)})}export{o as changeMode};
338
+ */import{nearlyEqual,nearlyEqualRad}from"./nearlyEqual.mjs";import to from"./to.mjs";import{__awaiter}from"tslib";function isVector3(value){return Object.prototype.toString.call(value)===`[object Object]`&&!!value.isVector3}function checkPose(targetPose,fivePose){return Object.keys(targetPose).every(key=>{let fiveItem=fivePose[key],targetItem=targetPose[key];return fiveItem===void 0||targetItem===void 0?!0:key===`longitude`||key===`latitude`?nearlyEqualRad(fiveItem,targetItem,2):typeof fiveItem==`number`&&typeof targetItem==`number`?nearlyEqual(fiveItem,targetItem,2):isVector3(targetItem)&&isVector3(fiveItem)?targetItem.distanceTo(fiveItem)<.01:fiveItem===targetItem})}function changeMode(five,changeModeParams){return __awaiter(this,void 0,void 0,function*(){let[changeModeError]=yield to(five.changeMode(...changeModeParams));if(changeModeError)throw Error(`change mode canceled`);yield new Promise(resolve=>{five.once(`initAnimationWillStart`,()=>{five.once(`initAnimationEnded`,()=>resolve())})});let targetPose=changeModeParams[1];if(targetPose&&!checkPose(targetPose,five.getCurrentState()))throw Error(`pose 与预期不符`)})}export{changeMode};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
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=300){let r=e.getElement();if(!r)return;r.style.opacity=t+``;let i=r.parentElement;if(i)for(let e=0;e<i.children.length;e++){let n=i.children[e];n instanceof HTMLElement&&n.dataset.infive===`1`&&(n.style.opacity=t+``)}r.style.transition=n===0?`none`:`opacity ${n}ms linear`,n!==0&&Promise.race([new Promise(e=>r.addEventListener(`transitionend`,()=>e(),{once:!0})),new Promise(e=>setTimeout(e,n))]).then(()=>{r.style.transition=`none`})}exports.changeModelCanvasOpacity=e;
338
+ */function changeModelCanvasOpacity(five,opacity,duration=300){let fiveEle=five.getElement();if(!fiveEle)return;fiveEle.style.opacity=opacity+``;let parent=fiveEle.parentElement;if(parent)for(let i=0;i<parent.children.length;i++){let child=parent.children[i];child instanceof HTMLElement&&child.dataset.infive===`1`&&(child.style.opacity=opacity+``)}fiveEle.style.transition=duration===0?`none`:`opacity ${duration}ms linear`,duration!==0&&Promise.race([new Promise(res=>fiveEle.addEventListener(`transitionend`,()=>res(),{once:!0})),new Promise(res=>setTimeout(res,duration))]).then(()=>{fiveEle.style.transition=`none`})}exports.changeModelCanvasOpacity=changeModelCanvasOpacity;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
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=300){let r=e.getElement();if(!r)return;r.style.opacity=t+``;let i=r.parentElement;if(i)for(let e=0;e<i.children.length;e++){let n=i.children[e];n instanceof HTMLElement&&n.dataset.infive===`1`&&(n.style.opacity=t+``)}r.style.transition=n===0?`none`:`opacity ${n}ms linear`,n!==0&&Promise.race([new Promise(e=>r.addEventListener(`transitionend`,()=>e(),{once:!0})),new Promise(e=>setTimeout(e,n))]).then(()=>{r.style.transition=`none`})}export{e as changeModelCanvasOpacity};
338
+ */function changeModelCanvasOpacity(five,opacity,duration=300){let fiveEle=five.getElement();if(!fiveEle)return;fiveEle.style.opacity=opacity+``;let parent=fiveEle.parentElement;if(parent)for(let i=0;i<parent.children.length;i++){let child=parent.children[i];child instanceof HTMLElement&&child.dataset.infive===`1`&&(child.style.opacity=opacity+``)}fiveEle.style.transition=duration===0?`none`:`opacity ${duration}ms linear`,duration!==0&&Promise.race([new Promise(res=>fiveEle.addEventListener(`transitionend`,()=>res(),{once:!0})),new Promise(res=>setTimeout(res,duration))]).then(()=>{fiveEle.style.transition=`none`})}export{changeModelCanvasOpacity};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
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("./nearlyEqual.js"),t=require("./to.js"),n=require("./changeMode.js"),r=require("./getDistanceFromModel.js"),i=require("./filter.js");let a=require("tslib");function o(t,n){if(t.currentMode!==n.mode)return!1;let r=t.getCurrentState(),i=t.camera.fov;return!(!e.nearlyEqual(r.latitude,n.latitude,2)||!e.nearlyEqual(r.longitude,n.longitude,2)||n.fov!==void 0&&!e.nearlyEqual(i,n.fov,2)||n.offset&&r.offset.distanceTo(n.offset)>.01)}function s(e,s){return(0,a.__awaiter)(this,arguments,void 0,function*(e,a,s=!0){var c;if(o(e,a))return;let l=e.getCurrentState();if(e.currentMode!==a.mode){let i=e.models.find(t=>t.name===e.state.workCode),o=typeof a.fov==`number`?a.fov:80;i&&(a.distance=r.getDistanceFromModel(e,o,e.camera.aspect));let[c]=yield t.default(n.changeMode(e,[a.mode,a,void 0,s]));if(c)throw c;return}let{latitude:u,longitude:d,fov:f}=l,p=(c=a.fov)==null?f:c,m=Math.min(1e3,Math.max(200,Math.abs(u-Math.PI/2)*1e3,(d>Math.PI?Math.PI*2-d:d)*500,Number.isFinite(p)?Math.abs(f-p)*10:1/0)),[h]=yield t.default(e.updateCamera(i.omit(a,[`mode`]),m,s));if(h)throw Error(`UpdateCameraError`)})}exports.correctFiveState=s;
338
+ */const require_nearlyEqual=require("./nearlyEqual.js"),require_to=require("./to.js"),require_changeMode=require("./changeMode.js"),require_getDistanceFromModel=require("./getDistanceFromModel.js"),require_filter=require("./filter.js");let tslib=require("tslib");function checkShowState(five,showState){if(five.currentMode!==showState.mode)return!1;let currentState=five.getCurrentState(),fov=five.camera.fov;return!(!require_nearlyEqual.nearlyEqual(currentState.latitude,showState.latitude,2)||!require_nearlyEqual.nearlyEqual(currentState.longitude,showState.longitude,2)||showState.fov!==void 0&&!require_nearlyEqual.nearlyEqual(fov,showState.fov,2)||showState.offset&&currentState.offset.distanceTo(showState.offset)>.01)}function correctFiveState(five_1,showState_1){return(0,tslib.__awaiter)(this,arguments,void 0,function*(five,showState,userAction=!0){var _a;if(checkShowState(five,showState))return;let currentFiveState=five.getCurrentState();if(five.currentMode!==showState.mode){let innerModel=five.models.find(m=>m.name===five.state.workCode),effectiveFov=typeof showState.fov==`number`?showState.fov:80;innerModel&&(showState.distance=require_getDistanceFromModel.getDistanceFromModel(five,effectiveFov,five.camera.aspect));let[changeModeError]=yield require_to.default(require_changeMode.changeMode(five,[showState.mode,showState,void 0,userAction]));if(changeModeError)throw changeModeError;return}let{latitude,longitude,fov}=currentFiveState,targetFov=(_a=showState.fov)==null?fov:_a,time=Math.min(1e3,Math.max(200,Math.abs(latitude-Math.PI/2)*1e3,(longitude>Math.PI?Math.PI*2-longitude:longitude)*500,Number.isFinite(targetFov)?Math.abs(fov-targetFov)*10:1/0)),[updateCameraError]=yield require_to.default(five.updateCamera(require_filter.omit(showState,[`mode`]),time,userAction));if(updateCameraError)throw Error(`UpdateCameraError`)})}exports.correctFiveState=correctFiveState;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
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{nearlyEqual as e}from"./nearlyEqual.mjs";import t from"./to.mjs";import{changeMode as n}from"./changeMode.mjs";import{getDistanceFromModel as r}from"./getDistanceFromModel.mjs";import{omit as i}from"./filter.mjs";import{__awaiter as a}from"tslib";function o(t,n){if(t.currentMode!==n.mode)return!1;let r=t.getCurrentState(),i=t.camera.fov;return!(!e(r.latitude,n.latitude,2)||!e(r.longitude,n.longitude,2)||n.fov!==void 0&&!e(i,n.fov,2)||n.offset&&r.offset.distanceTo(n.offset)>.01)}function s(e,s){return a(this,arguments,void 0,function*(e,a,s=!0){var c;if(o(e,a))return;let l=e.getCurrentState();if(e.currentMode!==a.mode){let i=e.models.find(t=>t.name===e.state.workCode),o=typeof a.fov==`number`?a.fov:80;i&&(a.distance=r(e,o,e.camera.aspect));let[c]=yield t(n(e,[a.mode,a,void 0,s]));if(c)throw c;return}let{latitude:u,longitude:d,fov:f}=l,p=(c=a.fov)==null?f:c,m=Math.min(1e3,Math.max(200,Math.abs(u-Math.PI/2)*1e3,(d>Math.PI?Math.PI*2-d:d)*500,Number.isFinite(p)?Math.abs(f-p)*10:1/0)),[h]=yield t(e.updateCamera(i(a,[`mode`]),m,s));if(h)throw Error(`UpdateCameraError`)})}export{s as correctFiveState};
338
+ */import{nearlyEqual}from"./nearlyEqual.mjs";import to from"./to.mjs";import{changeMode}from"./changeMode.mjs";import{getDistanceFromModel}from"./getDistanceFromModel.mjs";import{omit}from"./filter.mjs";import{__awaiter}from"tslib";function checkShowState(five,showState){if(five.currentMode!==showState.mode)return!1;let currentState=five.getCurrentState(),fov=five.camera.fov;return!(!nearlyEqual(currentState.latitude,showState.latitude,2)||!nearlyEqual(currentState.longitude,showState.longitude,2)||showState.fov!==void 0&&!nearlyEqual(fov,showState.fov,2)||showState.offset&&currentState.offset.distanceTo(showState.offset)>.01)}function correctFiveState(five_1,showState_1){return __awaiter(this,arguments,void 0,function*(five,showState,userAction=!0){var _a;if(checkShowState(five,showState))return;let currentFiveState=five.getCurrentState();if(five.currentMode!==showState.mode){let innerModel=five.models.find(m=>m.name===five.state.workCode),effectiveFov=typeof showState.fov==`number`?showState.fov:80;innerModel&&(showState.distance=getDistanceFromModel(five,effectiveFov,five.camera.aspect));let[changeModeError]=yield to(changeMode(five,[showState.mode,showState,void 0,userAction]));if(changeModeError)throw changeModeError;return}let{latitude,longitude,fov}=currentFiveState,targetFov=(_a=showState.fov)==null?fov:_a,time=Math.min(1e3,Math.max(200,Math.abs(latitude-Math.PI/2)*1e3,(longitude>Math.PI?Math.PI*2-longitude:longitude)*500,Number.isFinite(targetFov)?Math.abs(fov-targetFov)*10:1/0)),[updateCameraError]=yield to(five.updateCamera(omit(showState,[`mode`]),time,userAction));if(updateCameraError)throw Error(`UpdateCameraError`)})}export{correctFiveState};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
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("./isTruelyObject.js");function t(e,t){return!!(e===t||typeof e==`number`&&typeof t==`number`&&Number.isNaN(e)&&Number.isNaN(t))}function n(e,n){let r=Object.keys(e);return r.length===Object.keys(n).length?r.every(r=>t(e[r],n[r])):!1}function r(e,t){let n=Object.keys(e);return n.length===Object.keys(t).length?n.every(n=>s(e[n],t[n])):!1}function i(e,n){return e.length===n.length?e.every((e,r)=>t(e,n[r])):!1}function a(e,t){return e.length===t.length?e.every((e,n)=>s(e,t[n])):!1}function o(r,a){return t(r,a)?!0:e.isTruelyObject(r)&&e.isTruelyObject(a)?n(r,a):Array.isArray(r)&&Array.isArray(a)?i(r,a):!1}function s(n,i){return t(n,i)?!0:e.isTruelyObject(n)&&e.isTruelyObject(i)?r(n,i):Array.isArray(n)&&Array.isArray(i)?a(n,i):!1}function c(e,t,n={deep:!1}){return n.deep?s(e,t):o(e,t)}exports.equal=c,exports.isDeepEqual=s,exports.isShallowEqual=o;
338
+ */const require_isTruelyObject=require("./isTruelyObject.js");function baseIsEqual(value,other){return!!(value===other||typeof value==`number`&&typeof other==`number`&&Number.isNaN(value)&&Number.isNaN(other))}function objEqualShallow(value,other){let keys=Object.keys(value);return keys.length===Object.keys(other).length?keys.every(key=>baseIsEqual(value[key],other[key])):!1}function objEqualDeep(value,other){let keys=Object.keys(value);return keys.length===Object.keys(other).length?keys.every(key=>isDeepEqual(value[key],other[key])):!1}function arrayEqualShallow(value,other){return value.length===other.length?value.every((item,index)=>baseIsEqual(item,other[index])):!1}function arrayEqualDeep(value,other){return value.length===other.length?value.every((item,index)=>isDeepEqual(item,other[index])):!1}function isShallowEqual(value,other){return baseIsEqual(value,other)?!0:require_isTruelyObject.isTruelyObject(value)&&require_isTruelyObject.isTruelyObject(other)?objEqualShallow(value,other):Array.isArray(value)&&Array.isArray(other)?arrayEqualShallow(value,other):!1}function isDeepEqual(value,other){return baseIsEqual(value,other)?!0:require_isTruelyObject.isTruelyObject(value)&&require_isTruelyObject.isTruelyObject(other)?objEqualDeep(value,other):Array.isArray(value)&&Array.isArray(other)?arrayEqualDeep(value,other):!1}function equal(value,other,opt={deep:!1}){return opt.deep?isDeepEqual(value,other):isShallowEqual(value,other)}exports.equal=equal,exports.isDeepEqual=isDeepEqual,exports.isShallowEqual=isShallowEqual;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
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{isTruelyObject as e}from"./isTruelyObject.mjs";function t(e,t){return!!(e===t||typeof e==`number`&&typeof t==`number`&&Number.isNaN(e)&&Number.isNaN(t))}function n(e,n){let r=Object.keys(e);return r.length===Object.keys(n).length?r.every(r=>t(e[r],n[r])):!1}function r(e,t){let n=Object.keys(e);return n.length===Object.keys(t).length?n.every(n=>s(e[n],t[n])):!1}function i(e,n){return e.length===n.length?e.every((e,r)=>t(e,n[r])):!1}function a(e,t){return e.length===t.length?e.every((e,n)=>s(e,t[n])):!1}function o(r,a){return t(r,a)?!0:e(r)&&e(a)?n(r,a):Array.isArray(r)&&Array.isArray(a)?i(r,a):!1}function s(n,i){return t(n,i)?!0:e(n)&&e(i)?r(n,i):Array.isArray(n)&&Array.isArray(i)?a(n,i):!1}function c(e,t,n={deep:!1}){return n.deep?s(e,t):o(e,t)}export{c as equal,s as isDeepEqual,o as isShallowEqual};
338
+ */import{isTruelyObject}from"./isTruelyObject.mjs";function baseIsEqual(value,other){return!!(value===other||typeof value==`number`&&typeof other==`number`&&Number.isNaN(value)&&Number.isNaN(other))}function objEqualShallow(value,other){let keys=Object.keys(value);return keys.length===Object.keys(other).length?keys.every(key=>baseIsEqual(value[key],other[key])):!1}function objEqualDeep(value,other){let keys=Object.keys(value);return keys.length===Object.keys(other).length?keys.every(key=>isDeepEqual(value[key],other[key])):!1}function arrayEqualShallow(value,other){return value.length===other.length?value.every((item,index)=>baseIsEqual(item,other[index])):!1}function arrayEqualDeep(value,other){return value.length===other.length?value.every((item,index)=>isDeepEqual(item,other[index])):!1}function isShallowEqual(value,other){return baseIsEqual(value,other)?!0:isTruelyObject(value)&&isTruelyObject(other)?objEqualShallow(value,other):Array.isArray(value)&&Array.isArray(other)?arrayEqualShallow(value,other):!1}function isDeepEqual(value,other){return baseIsEqual(value,other)?!0:isTruelyObject(value)&&isTruelyObject(other)?objEqualDeep(value,other):Array.isArray(value)&&Array.isArray(other)?arrayEqualDeep(value,other):!1}function equal(value,other,opt={deep:!1}){return opt.deep?isDeepEqual(value,other):isShallowEqual(value,other)}export{equal,isDeepEqual,isShallowEqual};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
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=Object.assign({},e);for(let e of t)delete n[e];return n}exports.omit=e;
338
+ */function omit(object,props){let result=Object.assign({},object);for(let prop of props)delete result[prop];return result}exports.omit=omit;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
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=Object.assign({},e);for(let e of t)delete n[e];return n}export{e as omit};
338
+ */function omit(object,props){let result=Object.assign({},object);for(let prop of props)delete result[prop];return result}export{omit};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
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(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(0,e.__awaiter)(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)})})}exports.fiveModelIsLoaded=n,exports.getFiveModel=t,exports.waitFiveModelLoaded=r;
338
+ */let tslib=require("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(0,tslib.__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)})})}exports.fiveModelIsLoaded=fiveModelIsLoaded,exports.getFiveModel=getFiveModel,exports.waitFiveModelLoaded=waitFiveModelLoaded;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/29
5
- * Version: 1.0.0-alpha.12
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/29
5
- * Version: 1.0.0-alpha.12
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/29
5
- * Version: 1.0.0-alpha.12
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/29
5
- * Version: 1.0.0-alpha.12
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;