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

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 (386) hide show
  1. package/_virtual/_rolldown/runtime.js +3 -3
  2. package/docs/assets/hierarchy.js +1 -1
  3. package/docs/assets/navigation.js +1 -1
  4. package/docs/assets/search.js +1 -1
  5. package/docs/classes/index.AdaptiveLuminancePass.html +1 -1
  6. package/docs/classes/index.BoundingMesh.html +1 -1
  7. package/docs/classes/index.Camera.html +1 -1
  8. package/docs/classes/index.EyeDomeLightingPass.html +1 -1
  9. package/docs/classes/index.Five.html +65 -64
  10. package/docs/classes/index.FivePass.html +1 -1
  11. package/docs/classes/index.FiveRenderer.html +4 -4
  12. package/docs/classes/index.FlowingFireworks3DPass.html +1 -1
  13. package/docs/classes/index.FlowingLight2DPass.html +1 -1
  14. package/docs/classes/index.FlowingLight3DPass.html +1 -1
  15. package/docs/classes/index.GaussianBlurPass.html +1 -1
  16. package/docs/classes/index.InternalWebGPURenderer.html +4 -4
  17. package/docs/classes/index.Model.html +1 -1
  18. package/docs/classes/index.ModelScene.html +1 -1
  19. package/docs/classes/index.NetworkSubscribe.html +1 -1
  20. package/docs/classes/index.PBMCustomNode.html +1 -1
  21. package/docs/classes/index.PBMGaussianSplattingNodeMaterial.html +1 -1
  22. package/docs/classes/index.PBMGaussianSplattingObject.html +1 -1
  23. package/docs/classes/index.PBMGaussianSplattingRenderMesh.html +1 -1
  24. package/docs/classes/index.PBMGroup.html +1 -1
  25. package/docs/classes/index.PBMMesh.html +1 -1
  26. package/docs/classes/index.PBMMeshBasicMaterial.html +1 -1
  27. package/docs/classes/index.PBMMeshBasicNodeMaterial.html +1 -1
  28. package/docs/classes/index.PBMMeshPanoOnlyMaterial.html +1 -1
  29. package/docs/classes/index.PBMMeshPanoOnlyNodeMaterial.html +1 -1
  30. package/docs/classes/index.PBMMeshPhongMaterial.html +1 -1
  31. package/docs/classes/index.PBMMeshPhongNodeMaterial.html +1 -1
  32. package/docs/classes/index.PBMMeshPhysicalMaterial.html +1 -1
  33. package/docs/classes/index.PBMMeshPhysicalNodeMaterial.html +1 -1
  34. package/docs/classes/index.PBMPanoFilter.html +1 -1
  35. package/docs/classes/index.PBMPointCloud.html +1 -1
  36. package/docs/classes/index.PBMPointCloudMaterial.html +1 -1
  37. package/docs/classes/index.PBMSkinnedMesh.html +1 -1
  38. package/docs/classes/index.PBMUpdateable.html +1 -1
  39. package/docs/classes/index.PanoCircleMesh.html +9 -5
  40. package/docs/classes/index.PanoCircleMeshCustom.html +9 -5
  41. package/docs/classes/index.PanoCircleMeshSolid.html +9 -5
  42. package/docs/classes/index.Parameter.html +1 -1
  43. package/docs/classes/index.Scene.html +1 -1
  44. package/docs/classes/index.Subscribe.html +1 -1
  45. package/docs/classes/index.Tile3D.html +1 -1
  46. package/docs/classes/index.TileNode.html +1 -1
  47. package/docs/classes/index.TrajectoryNode.html +1 -1
  48. package/docs/classes/index.Work.html +15 -22
  49. package/docs/classes/index.WorkResolvedObserver.html +22 -22
  50. package/docs/functions/index.createWorks.html +1 -1
  51. package/docs/functions/index.parseWork.html +1 -1
  52. package/docs/hierarchy.html +1 -1
  53. package/docs/interfaces/index.AddableObject.html +1 -1
  54. package/docs/interfaces/index.AjaxOptions.html +1 -1
  55. package/docs/interfaces/index.BaseEvent.html +1 -1
  56. package/docs/interfaces/index.Clock.html +1 -1
  57. package/docs/interfaces/index.EventCallback.html +3 -3
  58. package/docs/interfaces/index.GestureEvent.html +1 -1
  59. package/docs/interfaces/index.IPBMMaterial.html +1 -1
  60. package/docs/interfaces/index.ImageOptions.html +1 -1
  61. package/docs/interfaces/index.IntersectEvent.html +1 -1
  62. package/docs/interfaces/index.IntersectMesh.html +1 -1
  63. package/docs/interfaces/index.IntersectMeshInterface.html +1 -1
  64. package/docs/interfaces/index.Intersection.html +1 -1
  65. package/docs/interfaces/index.LooseWorkObserver.html +2 -2
  66. package/docs/interfaces/index.LooseWorkPanorama.html +2 -2
  67. package/docs/interfaces/index.LooseWorkWithExtrinsics.html +8 -8
  68. package/docs/interfaces/index.ModeChangeEvent.html +1 -1
  69. package/docs/interfaces/index.ModelControllerCustomInitArgs.html +1 -1
  70. package/docs/interfaces/index.ModelEvent.html +1 -1
  71. package/docs/interfaces/index.ModelSceneEvent.html +1 -1
  72. package/docs/interfaces/index.ModelTileEvent.html +1 -1
  73. package/docs/interfaces/index.MovePanoOptions.html +1 -1
  74. package/docs/interfaces/index.NetworkAbortError.html +1 -1
  75. package/docs/interfaces/index.NetworkFirbiddenError.html +1 -1
  76. package/docs/interfaces/index.NetworkOptions.html +1 -1
  77. package/docs/interfaces/index.NetworkProxyError.html +1 -1
  78. package/docs/interfaces/index.NetworkResourceEvent.html +1 -1
  79. package/docs/interfaces/index.NetworkResponseError.html +1 -1
  80. package/docs/interfaces/index.NetworkTimeoutError.html +1 -1
  81. package/docs/interfaces/index.ObjectEvent.html +1 -1
  82. package/docs/interfaces/index.PanoCircleMeshInterface.html +8 -4
  83. package/docs/interfaces/index.PanoCircleMeshOptions.html +2 -2
  84. package/docs/interfaces/index.PanoCircleMeshSolidOptions.html +2 -2
  85. package/docs/interfaces/index.PanoEvent.html +1 -1
  86. package/docs/interfaces/index.PanoPrepareEvent.html +1 -1
  87. package/docs/interfaces/index.PanoTextureEvent.html +1 -1
  88. package/docs/interfaces/index.PanoramaControllerCustomInitArgs.html +1 -1
  89. package/docs/interfaces/index.PanoramaLikeControllerCustomInitArgs.html +1 -1
  90. package/docs/interfaces/index.ParameterMaterialValue.html +1 -1
  91. package/docs/interfaces/index.ParameterTilesetValue.html +1 -1
  92. package/docs/interfaces/index.ParameterValue.html +1 -1
  93. package/docs/interfaces/index.Pose.html +1 -1
  94. package/docs/interfaces/index.RenderEvent.html +1 -1
  95. package/docs/interfaces/index.ResolvedParameterValue.html +1 -1
  96. package/docs/interfaces/index.State.html +1 -1
  97. package/docs/interfaces/index.StateEvent.html +1 -1
  98. package/docs/interfaces/index.TextureOptions.html +1 -1
  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 +1 -1
  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 +3 -2
  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/panorama.d.ts +6 -0
  173. package/five/core/webglBlendEquationFix.d.ts +41 -0
  174. package/five/index.d.ts +0 -1
  175. package/five/index.js +49 -626
  176. package/five/index.mjs +229 -32052
  177. package/five/meshes/panoCircleMesh.d.ts +1 -0
  178. package/five/meshes/panoCircleMeshCustom.d.ts +1 -0
  179. package/five/meshes/panoCircleMeshSolid.d.ts +1 -0
  180. package/five/meshes/panoSphereMesh.d.ts +1 -0
  181. package/five/model/index.d.ts +18 -6
  182. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz.d.ts +1 -1
  183. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz_2.d.ts +1 -1
  184. package/five/model/loaders/spz.d.ts +1 -2
  185. package/five/model/loaders/spz.worker.d.ts +37 -0
  186. package/five/renderer/five-renderer.d.ts +1 -1
  187. package/five/renderer/index.d.ts +1 -1
  188. package/five/renderer/postprocessing/passes/pass.js +3 -3
  189. package/five/renderer/postprocessing/passes/pass.mjs +3 -3
  190. package/five/renderer/tools/full-screen-quad.js +3 -3
  191. package/five/renderer/tools/full-screen-quad.mjs +3 -3
  192. package/five/texture/initTexture.d.ts +8 -0
  193. package/five/texture/videoTextureBridge.d.ts +124 -15
  194. package/five/thirdparty/sha256.d.ts +149 -0
  195. package/five/types/panoCircleMeshInterface.d.ts +6 -0
  196. package/five/utils/calculateThreeMouse.js +3 -3
  197. package/five/utils/calculateThreeMouse.mjs +3 -3
  198. package/five/utils/distance.js +3 -3
  199. package/five/utils/distance.mjs +3 -3
  200. package/five/utils/isNil.js +3 -3
  201. package/five/utils/isNil.mjs +3 -3
  202. package/five/utils/memoryUsage.d.ts +1 -1
  203. package/five/utils/uuid.js +3 -3
  204. package/five/utils/uuid.mjs +3 -3
  205. package/five/work/looseWorkType.d.ts +2 -2
  206. package/five/work/work.d.ts +1 -8
  207. package/five/work/workJsonType.d.ts +2 -4
  208. package/gltf-loader/index.js +3 -3
  209. package/gltf-loader/index.mjs +3 -50
  210. package/line/index.js +3 -3
  211. package/line/index.mjs +3 -88
  212. package/package.json +1 -1
  213. package/plugins/BackgroundPlugin/Controller.js +4 -4
  214. package/plugins/BackgroundPlugin/Controller.mjs +4 -4
  215. package/plugins/BackgroundPlugin/index.js +3 -3
  216. package/plugins/BackgroundPlugin/index.mjs +3 -3
  217. package/plugins/BasePlugin/index.js +3 -3
  218. package/plugins/BasePlugin/index.mjs +3 -3
  219. package/plugins/CSS2DPlugin/Controller.js +3 -3
  220. package/plugins/CSS2DPlugin/Controller.mjs +3 -3
  221. package/plugins/CSS2DPlugin/index.js +3 -3
  222. package/plugins/CSS2DPlugin/index.mjs +3 -3
  223. package/plugins/CSS2DPlugin/style.css_raw.js +4 -4
  224. package/plugins/CSS2DPlugin/style.css_raw.mjs +4 -4
  225. package/plugins/CSS3DPlugin/Controller.js +3 -3
  226. package/plugins/CSS3DPlugin/Controller.mjs +3 -3
  227. package/plugins/CSS3DPlugin/index.js +3 -3
  228. package/plugins/CSS3DPlugin/index.mjs +3 -3
  229. package/plugins/CSS3DPlugin/style.css_raw.js +4 -4
  230. package/plugins/CSS3DPlugin/style.css_raw.mjs +4 -4
  231. package/plugins/FloorplanPlugin/Controller.js +3 -3
  232. package/plugins/FloorplanPlugin/Controller.mjs +3 -3
  233. package/plugins/FloorplanPlugin/index.js +3 -3
  234. package/plugins/FloorplanPlugin/index.mjs +3 -3
  235. package/plugins/FloorplanPlugin/render/assets.js +3 -3
  236. package/plugins/FloorplanPlugin/render/assets.mjs +3 -3
  237. package/plugins/FloorplanPlugin/render/index.js +3 -3
  238. package/plugins/FloorplanPlugin/render/index.mjs +3 -3
  239. package/plugins/FloorplanPlugin/render/isPointInPolygon.js +3 -3
  240. package/plugins/FloorplanPlugin/render/isPointInPolygon.mjs +3 -3
  241. package/plugins/FloorplanPlugin/render/renderFloor.js +3 -3
  242. package/plugins/FloorplanPlugin/render/renderFloor.mjs +3 -3
  243. package/plugins/FloorplanPlugin/render/roomLabelVisibility.js +3 -3
  244. package/plugins/FloorplanPlugin/render/roomLabelVisibility.mjs +3 -3
  245. package/plugins/FloorplanPlugin/render/style.css_raw.js +4 -4
  246. package/plugins/FloorplanPlugin/render/style.css_raw.mjs +4 -4
  247. package/plugins/FloorplanPlugin/utils/changeMode.js +3 -3
  248. package/plugins/FloorplanPlugin/utils/changeMode.mjs +3 -3
  249. package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.js +3 -3
  250. package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.mjs +3 -3
  251. package/plugins/FloorplanPlugin/utils/correctFiveState.js +3 -3
  252. package/plugins/FloorplanPlugin/utils/correctFiveState.mjs +3 -3
  253. package/plugins/FloorplanPlugin/utils/equal.js +3 -3
  254. package/plugins/FloorplanPlugin/utils/equal.mjs +3 -3
  255. package/plugins/FloorplanPlugin/utils/filter.js +3 -3
  256. package/plugins/FloorplanPlugin/utils/filter.mjs +3 -3
  257. package/plugins/FloorplanPlugin/utils/fiveModelLoad.js +3 -3
  258. package/plugins/FloorplanPlugin/utils/fiveModelLoad.mjs +3 -3
  259. package/plugins/FloorplanPlugin/utils/formatData.js +3 -3
  260. package/plugins/FloorplanPlugin/utils/formatData.mjs +3 -3
  261. package/plugins/FloorplanPlugin/utils/formatFloorplanJson.js +3 -3
  262. package/plugins/FloorplanPlugin/utils/formatFloorplanJson.mjs +3 -3
  263. package/plugins/FloorplanPlugin/utils/formatPosition.js +3 -3
  264. package/plugins/FloorplanPlugin/utils/formatPosition.mjs +3 -3
  265. package/plugins/FloorplanPlugin/utils/getDistanceFromModel.js +3 -3
  266. package/plugins/FloorplanPlugin/utils/getDistanceFromModel.mjs +3 -3
  267. package/plugins/FloorplanPlugin/utils/getPxmm.js +3 -3
  268. package/plugins/FloorplanPlugin/utils/getPxmm.mjs +3 -3
  269. package/plugins/FloorplanPlugin/utils/isTruelyObject.js +3 -3
  270. package/plugins/FloorplanPlugin/utils/isTruelyObject.mjs +3 -3
  271. package/plugins/FloorplanPlugin/utils/nearlyEqual.js +3 -3
  272. package/plugins/FloorplanPlugin/utils/nearlyEqual.mjs +3 -3
  273. package/plugins/FloorplanPlugin/utils/polylabel.js +3 -3
  274. package/plugins/FloorplanPlugin/utils/polylabel.mjs +3 -3
  275. package/plugins/FloorplanPlugin/utils/to.js +3 -3
  276. package/plugins/FloorplanPlugin/utils/to.mjs +3 -3
  277. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.js +3 -3
  278. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.mjs +3 -3
  279. package/plugins/GaussianSplattingEntranceAnimationPlugin/index.js +3 -3
  280. package/plugins/GaussianSplattingEntranceAnimationPlugin/index.mjs +3 -3
  281. package/plugins/Object3DHelperPlugin/Controller.js +3 -3
  282. package/plugins/Object3DHelperPlugin/Controller.mjs +3 -3
  283. package/plugins/Object3DHelperPlugin/Controllers/BaseController.js +3 -3
  284. package/plugins/Object3DHelperPlugin/Controllers/BaseController.mjs +3 -3
  285. package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.js +3 -3
  286. package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.mjs +3 -3
  287. package/plugins/Object3DHelperPlugin/Controllers/MoveController.js +3 -3
  288. package/plugins/Object3DHelperPlugin/Controllers/MoveController.mjs +3 -3
  289. package/plugins/Object3DHelperPlugin/Controllers/RotateController.js +3 -3
  290. package/plugins/Object3DHelperPlugin/Controllers/RotateController.mjs +3 -3
  291. package/plugins/Object3DHelperPlugin/FiveControllerWrapper.js +3 -3
  292. package/plugins/Object3DHelperPlugin/FiveControllerWrapper.mjs +3 -3
  293. package/plugins/Object3DHelperPlugin/Helper/BaseHelper.js +3 -3
  294. package/plugins/Object3DHelperPlugin/Helper/BaseHelper.mjs +3 -3
  295. package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.js +3 -3
  296. package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.mjs +3 -3
  297. package/plugins/Object3DHelperPlugin/Helper/MoveHelper.js +3 -3
  298. package/plugins/Object3DHelperPlugin/Helper/MoveHelper.mjs +3 -3
  299. package/plugins/Object3DHelperPlugin/Helper/RotateHelper.js +3 -3
  300. package/plugins/Object3DHelperPlugin/Helper/RotateHelper.mjs +3 -3
  301. package/plugins/Object3DHelperPlugin/constant.js +3 -3
  302. package/plugins/Object3DHelperPlugin/constant.mjs +3 -3
  303. package/plugins/Object3DHelperPlugin/index.js +3 -3
  304. package/plugins/Object3DHelperPlugin/index.mjs +3 -3
  305. package/plugins/Object3DHelperPlugin/utils/ArrowGroup.js +3 -3
  306. package/plugins/Object3DHelperPlugin/utils/ArrowGroup.mjs +3 -3
  307. package/plugins/Object3DHelperPlugin/utils/CenterHandle.js +3 -3
  308. package/plugins/Object3DHelperPlugin/utils/CenterHandle.mjs +3 -3
  309. package/plugins/Object3DHelperPlugin/utils/PlaneHandle.js +3 -3
  310. package/plugins/Object3DHelperPlugin/utils/PlaneHandle.mjs +3 -3
  311. package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.js +3 -3
  312. package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.mjs +3 -3
  313. package/plugins/Object3DHelperPlugin/utils/cameraHooks.js +3 -3
  314. package/plugins/Object3DHelperPlugin/utils/cameraHooks.mjs +3 -3
  315. package/plugins/Object3DHelperPlugin/utils/direction.js +3 -3
  316. package/plugins/Object3DHelperPlugin/utils/direction.mjs +3 -3
  317. package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.js +3 -3
  318. package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.mjs +3 -3
  319. package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.js +3 -3
  320. package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.mjs +3 -3
  321. package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.js +3 -3
  322. package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.mjs +3 -3
  323. package/plugins/Object3DHelperPlugin/utils/solidGuide.js +3 -3
  324. package/plugins/Object3DHelperPlugin/utils/solidGuide.mjs +3 -3
  325. package/plugins/Object3DHelperPlugin/utils/tipsDom.js +3 -3
  326. package/plugins/Object3DHelperPlugin/utils/tipsDom.mjs +3 -3
  327. package/plugins/PanoAnimePlugin/Controller.js +3 -3
  328. package/plugins/PanoAnimePlugin/Controller.mjs +3 -3
  329. package/plugins/PanoAnimePlugin/index.js +3 -3
  330. package/plugins/PanoAnimePlugin/index.mjs +3 -3
  331. package/plugins/WordPassPlugin/Controller.js +3 -3
  332. package/plugins/WordPassPlugin/Controller.mjs +3 -3
  333. package/plugins/WordPassPlugin/hersheyFont.js +3 -3
  334. package/plugins/WordPassPlugin/hersheyFont.mjs +3 -3
  335. package/plugins/WordPassPlugin/index.js +3 -3
  336. package/plugins/WordPassPlugin/index.mjs +3 -3
  337. package/plugins/WordPassPlugin/textToStrokeOrderStrokes.js +4 -4
  338. package/plugins/WordPassPlugin/textToStrokeOrderStrokes.mjs +4 -4
  339. package/plugins/WordPassPlugin/word-pass.js +3 -3
  340. package/plugins/WordPassPlugin/word-pass.mjs +3 -3
  341. package/plugins/index.js +3 -3
  342. package/plugins/index.mjs +3 -3
  343. package/plugins/thirdParty/CSS2DRenderer.js +3 -3
  344. package/plugins/thirdParty/CSS2DRenderer.mjs +3 -3
  345. package/plugins/thirdParty/CSS3DRenderer.js +3 -3
  346. package/plugins/thirdParty/CSS3DRenderer.mjs +3 -3
  347. package/plugins/thirdParty/doctorstrange-model.js +75 -75
  348. package/plugins/thirdParty/doctorstrange-model.mjs +75 -75
  349. package/plugins/thirdParty/domevents.js +3 -3
  350. package/plugins/thirdParty/domevents.mjs +3 -3
  351. package/plugins/utils/absoluteUrl.js +3 -3
  352. package/plugins/utils/absoluteUrl.mjs +3 -3
  353. package/plugins/utils/calculatePath.js +3 -3
  354. package/plugins/utils/calculatePath.mjs +3 -3
  355. package/plugins/utils/clamp.js +3 -3
  356. package/plugins/utils/clamp.mjs +3 -3
  357. package/plugins/utils/uuid.js +3 -3
  358. package/plugins/utils/uuid.mjs +3 -3
  359. package/react/hooks/useFiveModelReadyState.d.ts +1 -1
  360. package/react/index.js +3 -3
  361. package/react/index.mjs +3 -644
  362. package/sticker/index.js +13 -4
  363. package/sticker/index.mjs +43 -260
  364. package/umd/five-gltf-loader.js +3 -3
  365. package/umd/five-line.js +3 -3
  366. package/umd/five-plugins.js +4 -4
  367. package/umd/five-react.js +2 -2
  368. package/umd/five-sticker.js +13 -4
  369. package/umd/five-vfx.js +2 -2
  370. package/umd/five.js +152 -190
  371. package/vfx/index.js +3 -3
  372. package/vfx/index.mjs +3 -486
  373. package/work-downloader/index.js +3 -3
  374. package/work-downloader/index.mjs +3 -315
  375. package/docs/functions/index.loadAt3d.html +0 -1
  376. package/docs/functions/index.loadDome.html +0 -1
  377. package/docs/functions/index.loadDomez.html +0 -1
  378. package/docs/functions/index.loadGltf.html +0 -1
  379. package/docs/functions/index.loadPbm.html +0 -1
  380. package/docs/functions/index.loadPly.html +0 -10
  381. package/five/certificates/hardware.d.ts +0 -1
  382. package/five/thirdparty/jsrsasign.d.ts +0 -753
  383. package/five/work/_ALLOW_HOST.d.ts +0 -2
  384. package/five/work/keychain.d.ts +0 -5
  385. package/five/work/verify.d.ts +0 -7
  386. package/five/work/workVerify.d.ts +0 -2
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */const e=require("../../../_virtual/_rolldown/runtime.js");let t=require("three/webgpu");t=e.__toESM(t,1);function n(e,n,r){if(r){let i=new t.Vector3().subVectors(e.position,r).applyQuaternion(e.quaternion.clone().invert()).applyQuaternion(n).add(r);e.position.copy(i)}e.quaternion.copy(n)}exports.default=n;
338
+ */const require_runtime=require("../../../_virtual/_rolldown/runtime.js");let three_webgpu=require("three/webgpu");three_webgpu=require_runtime.__toESM(three_webgpu,1);function setObjectQuaternion(object,quaternion,rotateCenter){if(rotateCenter){let v=new three_webgpu.Vector3().subVectors(object.position,rotateCenter).applyQuaternion(object.quaternion.clone().invert()).applyQuaternion(quaternion).add(rotateCenter);object.position.copy(v)}object.quaternion.copy(quaternion)}exports.default=setObjectQuaternion;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */import*as e from"three/webgpu";function t(t,n,r){if(r){let i=new e.Vector3().subVectors(t.position,r).applyQuaternion(t.quaternion.clone().invert()).applyQuaternion(n).add(r);t.position.copy(i)}t.quaternion.copy(n)}export{t as default};
338
+ */import*as THREE from"three/webgpu";function setObjectQuaternion(object,quaternion,rotateCenter){if(rotateCenter){let v=new THREE.Vector3().subVectors(object.position,rotateCenter).applyQuaternion(object.quaternion.clone().invert()).applyQuaternion(quaternion).add(rotateCenter);object.position.copy(v)}object.quaternion.copy(quaternion)}export{setObjectQuaternion as default};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */const e=require("../../../_virtual/_rolldown/runtime.js"),t=require("../constant.js");let n=require("three/webgpu");n=e.__toESM(n,1);function r(e,t){let n=10,r=10,i=e.isPerspectiveCamera,a=e.isOrthographicCamera;if(i){let i=e,a=i.position.distanceTo(t),o=i.fov*Math.PI/180;r=2*Math.tan(o/2)*a,n=r*i.aspect}else if(a){let t=e;n=Math.abs(t.right-t.left),r=Math.abs(t.top-t.bottom)}let o=Math.sqrt(n*n+r*r),s=o*.8,c=Math.min(n,r)*.25,l=o*1.2;return Math.max(c,Math.min(s,l))}var i=class{constructor(e,t,n){this.camera=e,this.container=t,this.defaults=Object.assign({},n||{})}createSolidLine(e,r,i){let a=Object.assign(Object.assign({color:16777215,renderOrder:t.RENDER_ORDER.DRAG_GUIDE_LINE},this.defaults),i||{}),o=r.clone().normalize(),s=this.computeInfiniteLineLength(e),c=e.clone().add(o.clone().multiplyScalar(-s)),l=e.clone().add(o.clone().multiplyScalar(s)),u=new Float32Array([c.x,c.y,c.z,l.x,l.y,l.z]),d=new n.BufferGeometry;d.setAttribute(`position`,new n.BufferAttribute(u,3));let f=new n.LineBasicMaterial({color:a.color,depthTest:!1,depthWrite:!1,transparent:!0,opacity:.65}),p=new n.Line(d,f);return p.renderOrder=a.renderOrder,p}updateSolidLine(e,t,r,i){let a=r.clone().normalize(),o=this.computeInfiniteLineLength(t),s=t.clone().add(a.clone().multiplyScalar(-o)),c=t.clone().add(a.clone().multiplyScalar(o)),l=new Float32Array([s.x,s.y,s.z,c.x,c.y,c.z]),u=e.geometry,d=u.getAttribute(`position`);d&&d.itemSize===3&&d.array.length===l.length?(d.array.set(l),d.needsUpdate=!0):u.setAttribute(`position`,new n.BufferAttribute(l,3)),(i==null?void 0:i.color)!==void 0&&e.material.color.setHex(i.color)}computeInfiniteLineLength(e){return r(this.camera,e)*10}dispose(e){if(!e)return;e.geometry.dispose();let t=e.material;Array.isArray(t)?t.forEach(e=>e.dispose()):t.dispose()}updateDefaults(e){this.defaults=Object.assign(Object.assign({},this.defaults),e)}};exports.SolidGuideLine=i,exports.computeGuideLength=r;
338
+ */const require_runtime=require("../../../_virtual/_rolldown/runtime.js"),require_constant=require("../constant.js");let three_webgpu=require("three/webgpu");three_webgpu=require_runtime.__toESM(three_webgpu,1);function computeGuideLength(camera,center){let viewWidth=10,viewHeight=10,persp=camera.isPerspectiveCamera,ortho=camera.isOrthographicCamera;if(persp){let cam=camera,distance=cam.position.distanceTo(center),vFov=cam.fov*Math.PI/180;viewHeight=2*Math.tan(vFov/2)*distance,viewWidth=viewHeight*cam.aspect}else if(ortho){let cam=camera;viewWidth=Math.abs(cam.right-cam.left),viewHeight=Math.abs(cam.top-cam.bottom)}let diag=Math.sqrt(viewWidth*viewWidth+viewHeight*viewHeight),baseLength=diag*.8,minLen=Math.min(viewWidth,viewHeight)*.25,maxLen=diag*1.2;return Math.max(minLen,Math.min(baseLength,maxLen))}var SolidGuideLine=class{constructor(camera,container,defaults){this.camera=camera,this.container=container,this.defaults=Object.assign({},defaults||{})}createSolidLine(center,direction,options){let merged=Object.assign(Object.assign({color:16777215,renderOrder:require_constant.RENDER_ORDER.DRAG_GUIDE_LINE},this.defaults),options||{}),dir=direction.clone().normalize(),length=this.computeInfiniteLineLength(center),start=center.clone().add(dir.clone().multiplyScalar(-length)),end=center.clone().add(dir.clone().multiplyScalar(length)),positions=new Float32Array([start.x,start.y,start.z,end.x,end.y,end.z]),geometry=new three_webgpu.BufferGeometry;geometry.setAttribute(`position`,new three_webgpu.BufferAttribute(positions,3));let material=new three_webgpu.LineBasicMaterial({color:merged.color,depthTest:!1,depthWrite:!1,transparent:!0,opacity:.65}),line=new three_webgpu.Line(geometry,material);return line.renderOrder=merged.renderOrder,line}updateSolidLine(line,center,direction,options){let dir=direction.clone().normalize(),length=this.computeInfiniteLineLength(center),start=center.clone().add(dir.clone().multiplyScalar(-length)),end=center.clone().add(dir.clone().multiplyScalar(length)),positions=new Float32Array([start.x,start.y,start.z,end.x,end.y,end.z]),geometry=line.geometry,attr=geometry.getAttribute(`position`);attr&&attr.itemSize===3&&attr.array.length===positions.length?(attr.array.set(positions),attr.needsUpdate=!0):geometry.setAttribute(`position`,new three_webgpu.BufferAttribute(positions,3)),(options==null?void 0:options.color)!==void 0&&line.material.color.setHex(options.color)}computeInfiniteLineLength(center){return computeGuideLength(this.camera,center)*10}dispose(line){if(!line)return;line.geometry.dispose();let material=line.material;Array.isArray(material)?material.forEach(m=>m.dispose()):material.dispose()}updateDefaults(options){this.defaults=Object.assign(Object.assign({},this.defaults),options)}};exports.SolidGuideLine=SolidGuideLine,exports.computeGuideLength=computeGuideLength;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
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{RENDER_ORDER as e}from"../constant.mjs";import*as t from"three/webgpu";function n(e,t){let n=10,r=10,i=e.isPerspectiveCamera,a=e.isOrthographicCamera;if(i){let i=e,a=i.position.distanceTo(t),o=i.fov*Math.PI/180;r=2*Math.tan(o/2)*a,n=r*i.aspect}else if(a){let t=e;n=Math.abs(t.right-t.left),r=Math.abs(t.top-t.bottom)}let o=Math.sqrt(n*n+r*r),s=o*.8,c=Math.min(n,r)*.25,l=o*1.2;return Math.max(c,Math.min(s,l))}var r=class{constructor(e,t,n){this.camera=e,this.container=t,this.defaults=Object.assign({},n||{})}createSolidLine(n,r,i){let a=Object.assign(Object.assign({color:16777215,renderOrder:e.DRAG_GUIDE_LINE},this.defaults),i||{}),o=r.clone().normalize(),s=this.computeInfiniteLineLength(n),c=n.clone().add(o.clone().multiplyScalar(-s)),l=n.clone().add(o.clone().multiplyScalar(s)),u=new Float32Array([c.x,c.y,c.z,l.x,l.y,l.z]),d=new t.BufferGeometry;d.setAttribute(`position`,new t.BufferAttribute(u,3));let f=new t.LineBasicMaterial({color:a.color,depthTest:!1,depthWrite:!1,transparent:!0,opacity:.65}),p=new t.Line(d,f);return p.renderOrder=a.renderOrder,p}updateSolidLine(e,n,r,i){let a=r.clone().normalize(),o=this.computeInfiniteLineLength(n),s=n.clone().add(a.clone().multiplyScalar(-o)),c=n.clone().add(a.clone().multiplyScalar(o)),l=new Float32Array([s.x,s.y,s.z,c.x,c.y,c.z]),u=e.geometry,d=u.getAttribute(`position`);d&&d.itemSize===3&&d.array.length===l.length?(d.array.set(l),d.needsUpdate=!0):u.setAttribute(`position`,new t.BufferAttribute(l,3)),(i==null?void 0:i.color)!==void 0&&e.material.color.setHex(i.color)}computeInfiniteLineLength(e){return n(this.camera,e)*10}dispose(e){if(!e)return;e.geometry.dispose();let t=e.material;Array.isArray(t)?t.forEach(e=>e.dispose()):t.dispose()}updateDefaults(e){this.defaults=Object.assign(Object.assign({},this.defaults),e)}};export{r as SolidGuideLine,n as computeGuideLength};
338
+ */import{RENDER_ORDER}from"../constant.mjs";import*as THREE from"three/webgpu";function computeGuideLength(camera,center){let viewWidth=10,viewHeight=10,persp=camera.isPerspectiveCamera,ortho=camera.isOrthographicCamera;if(persp){let cam=camera,distance=cam.position.distanceTo(center),vFov=cam.fov*Math.PI/180;viewHeight=2*Math.tan(vFov/2)*distance,viewWidth=viewHeight*cam.aspect}else if(ortho){let cam=camera;viewWidth=Math.abs(cam.right-cam.left),viewHeight=Math.abs(cam.top-cam.bottom)}let diag=Math.sqrt(viewWidth*viewWidth+viewHeight*viewHeight),baseLength=diag*.8,minLen=Math.min(viewWidth,viewHeight)*.25,maxLen=diag*1.2;return Math.max(minLen,Math.min(baseLength,maxLen))}var SolidGuideLine=class{constructor(camera,container,defaults){this.camera=camera,this.container=container,this.defaults=Object.assign({},defaults||{})}createSolidLine(center,direction,options){let merged=Object.assign(Object.assign({color:16777215,renderOrder:RENDER_ORDER.DRAG_GUIDE_LINE},this.defaults),options||{}),dir=direction.clone().normalize(),length=this.computeInfiniteLineLength(center),start=center.clone().add(dir.clone().multiplyScalar(-length)),end=center.clone().add(dir.clone().multiplyScalar(length)),positions=new Float32Array([start.x,start.y,start.z,end.x,end.y,end.z]),geometry=new THREE.BufferGeometry;geometry.setAttribute(`position`,new THREE.BufferAttribute(positions,3));let material=new THREE.LineBasicMaterial({color:merged.color,depthTest:!1,depthWrite:!1,transparent:!0,opacity:.65}),line=new THREE.Line(geometry,material);return line.renderOrder=merged.renderOrder,line}updateSolidLine(line,center,direction,options){let dir=direction.clone().normalize(),length=this.computeInfiniteLineLength(center),start=center.clone().add(dir.clone().multiplyScalar(-length)),end=center.clone().add(dir.clone().multiplyScalar(length)),positions=new Float32Array([start.x,start.y,start.z,end.x,end.y,end.z]),geometry=line.geometry,attr=geometry.getAttribute(`position`);attr&&attr.itemSize===3&&attr.array.length===positions.length?(attr.array.set(positions),attr.needsUpdate=!0):geometry.setAttribute(`position`,new THREE.BufferAttribute(positions,3)),(options==null?void 0:options.color)!==void 0&&line.material.color.setHex(options.color)}computeInfiniteLineLength(center){return computeGuideLength(this.camera,center)*10}dispose(line){if(!line)return;line.geometry.dispose();let material=line.material;Array.isArray(material)?material.forEach(m=>m.dispose()):material.dispose()}updateDefaults(options){this.defaults=Object.assign(Object.assign({},this.defaults),options)}};export{SolidGuideLine,computeGuideLength};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
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,n){return t(document.createElement(n==null?`div`:n),e)}function t(e,t){if(!t)return e;for(let n in t)n&&t[n]&&(e.style[n]=t[n]);return e}function n(t){let n=e(Object.assign({position:`absolute`,display:`block`,borderRadius:`4px`,paddingTop:`1px`,paddingBottom:`1px`,paddingLeft:`4px`,paddingRight:`4px`,pointerEvents:`none`,userSelect:`none`,zIndex:`99999`,backgroundColor:`rgba(0,0,0,0.7)`,fontSize:`12px`,color:`#fff`,letterSpacing:`0`,lineHeight:`18px`},t)),r=()=>{n.style.display!==`block`&&n.style.top&&n.style.left&&(n.style.display=`block`)};return{element:n,show:r,hide:()=>{n.style.display=`none`,n.style.top=``,n.style.left=``},setLeftTop:(e,t)=>{n.style.left=e,n.style.top=t,r()}}}exports.createElement=e,exports.setStyle=t,exports.tipsDom=n;
338
+ */function createElement(style,tagName){return setStyle(document.createElement(tagName==null?`div`:tagName),style)}function setStyle(element,style){if(!style)return element;for(let key in style)key&&style[key]&&(element.style[key]=style[key]);return element}function tipsDom(style){let element=createElement(Object.assign({position:`absolute`,display:`block`,borderRadius:`4px`,paddingTop:`1px`,paddingBottom:`1px`,paddingLeft:`4px`,paddingRight:`4px`,pointerEvents:`none`,userSelect:`none`,zIndex:`99999`,backgroundColor:`rgba(0,0,0,0.7)`,fontSize:`12px`,color:`#fff`,letterSpacing:`0`,lineHeight:`18px`},style)),show=()=>{element.style.display!==`block`&&element.style.top&&element.style.left&&(element.style.display=`block`)};return{element,show,hide:()=>{element.style.display=`none`,element.style.top=``,element.style.left=``},setLeftTop:(left,top)=>{element.style.left=left,element.style.top=top,show()}}}exports.createElement=createElement,exports.setStyle=setStyle,exports.tipsDom=tipsDom;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
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,n){return t(document.createElement(n==null?`div`:n),e)}function t(e,t){if(!t)return e;for(let n in t)n&&t[n]&&(e.style[n]=t[n]);return e}function n(t){let n=e(Object.assign({position:`absolute`,display:`block`,borderRadius:`4px`,paddingTop:`1px`,paddingBottom:`1px`,paddingLeft:`4px`,paddingRight:`4px`,pointerEvents:`none`,userSelect:`none`,zIndex:`99999`,backgroundColor:`rgba(0,0,0,0.7)`,fontSize:`12px`,color:`#fff`,letterSpacing:`0`,lineHeight:`18px`},t)),r=()=>{n.style.display!==`block`&&n.style.top&&n.style.left&&(n.style.display=`block`)};return{element:n,show:r,hide:()=>{n.style.display=`none`,n.style.top=``,n.style.left=``},setLeftTop:(e,t)=>{n.style.left=e,n.style.top=t,r()}}}export{e as createElement,t as setStyle,n as tipsDom};
338
+ */function createElement(style,tagName){return setStyle(document.createElement(tagName==null?`div`:tagName),style)}function setStyle(element,style){if(!style)return element;for(let key in style)key&&style[key]&&(element.style[key]=style[key]);return element}function tipsDom(style){let element=createElement(Object.assign({position:`absolute`,display:`block`,borderRadius:`4px`,paddingTop:`1px`,paddingBottom:`1px`,paddingLeft:`4px`,paddingRight:`4px`,pointerEvents:`none`,userSelect:`none`,zIndex:`99999`,backgroundColor:`rgba(0,0,0,0.7)`,fontSize:`12px`,color:`#fff`,letterSpacing:`0`,lineHeight:`18px`},style)),show=()=>{element.style.display!==`block`&&element.style.top&&element.style.left&&(element.style.display=`block`)};return{element,show,hide:()=>{element.style.display=`none`,element.style.top=``,element.style.left=``},setLeftTop:(left,top)=>{element.style.left=left,element.style.top=top,show()}}}export{createElement,setStyle,tipsDom};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */const e=require("../../_virtual/_rolldown/runtime.js"),t=require("../BasePlugin/index.js"),n=require("../utils/clamp.js");let r=require("tslib"),i=require("@realsee/five-webgpu"),a=require("three/webgpu");a=e.__toESM(a,1);let o=require("three/tsl");function s(){let e={map:(0,o.texture)(new a.Texture),progress:(0,o.uniform)(0),opacity:(0,o.uniform)(0)},t=(0,o.Fn)(()=>{let t=(0,o.uv)(),n=(0,o.varying)(o.positionGeometry);(0,o.Discard)(t.y.greaterThan(e.progress));let r=e.map.sample(t),i=(0,o.vec4)((0,o.vec3)(1,1,1),e.progress.sub(n.y).mul(.7)),a=i.add((0,o.vec4)(r.rgb,r.a.mul(n.y.oneMinus()))),s=(0,o.select)(e.progress.equal(1),a,i);return(0,o.vec4)(s.rgb,s.a.mul(e.opacity))}),n=new a.NodeMaterial;return n.fragmentNode=t(),n.transparent=!0,n.depthTest=!1,{material:n,u:e}}var c=[1,5,2,6,3,7,4,8,9,13,10,14,11,15,12,16],l=512,u=512,d=128,f=class extends t.BasePlugin.Controller{get config(){return Object.assign({},this._config)}updateState(e,t){let n=this.state;this.state=Object.assign(Object.assign({},this.state),e),this.hooks.emit(`stateChange`,{state:this.state,prevState:n,userAction:t})}updateConfig(e,t={}){var n;let r=this.config,i=Object.assign(Object.assign({},r),e);this._config=i,this.hooks.emit(`configChange`,{prevConfig:r,config:i,userAction:(n=t.userAction)==null?!0:n})}constructor(e,t){super(e),this.group=new a.Group,this.materialUniforms=s(),this.mesh=(()=>{let e=new a.CylinderGeometry(.12,.12,1,32,1,!0);return e.translate(0,.5,0),new a.Mesh(e,this.materialUniforms.material)})(),this.panoMesh=new i.PanoCircleMesh({scale:1.5}),this.stop=()=>{},this.drawLine=(e,t)=>{if(!this.ctx)return;let n=(()=>{var t;return 32*((t=c[e])==null?0:t)})(),r=(1-(t+e*150)%1200/1200)*640,i=this.ctx.createLinearGradient(0,r-d,0,r);i.addColorStop(0,`rgba(255,255,255,0)`),i.addColorStop(.5,`rgba(255,255,255,1)`),i.addColorStop(1,`rgba(255,255,255,0)`),this.ctx.fillStyle=i,this.ctx.fillRect(n,r-d,3,d)},this.anime=e=>{if(!this.ctx||!this.startTime)return;this.ctx.clearRect(0,0,l,u);for(let t=0;t<16;t++)this.drawLine(t,e-this.startTime);let t=n.clamp((e-this.startTime)/1e3,0,1),r=n.clamp((e-this.startTime)/300,0,this.config.maxOpacity);this.panoMesh.setOpacity(r),this.materialUniforms.u.progress.value=t,this.materialUniforms.u.opacity.value=r,this.canvasTexture&&(this.canvasTexture.needsUpdate=!0),this.five.needsRender=!0},this.dispose=()=>{this.disable()},this.five=e;let r={enabled:!1,visible:!0};this.state=Object.assign(r,t==null?void 0:t.initialState);let o=Object.assign(Object.assign({},t==null?void 0:t.config),{maxOpacity:1});this._config=o,!(typeof document>`u`)&&(this.canvas=document.createElement(`canvas`),this.ctx=this.canvas.getContext(`2d`),this.canvas.width=l,this.canvas.height=u,this.ctx.shadowColor=`rgba(255,255,255,0.5)`,this.ctx.shadowBlur=6,this.ctx.shadowOffsetX=0,this.ctx.shadowOffsetY=0,this.canvasTexture=new a.CanvasTexture(this.canvas),this.materialUniforms.u.map.value=this.canvasTexture,this.group.add(this.mesh),this.panoMesh.setProgress(1),this.panoMesh.setOpacity(0),this.group.add(this.panoMesh),this.state.enabled&&this._enable({userAction:!1}))}load(e){return(0,r.__awaiter)(this,void 0,void 0,function*(){})}_enable(e){this.mesh.position.copy(this.five.observers[this.five.state.panoIndex].standingPosition),this.panoMesh.position.copy(this.five.observers[this.five.state.panoIndex].standingPosition),this.five.ready().then(()=>{this.five.scene.add(this.group),this.stop=i.AnimationFrameLoop.shared.add((e,t)=>{this.startTime||(this.startTime=e),this.panoMesh.updateTime(e,t),this.anime(e)})})}_disable(e){this.five.scene.remove(this.group),this.panoMesh.setOpacity(0),this.startTime=void 0,this.stop(),this.five.needsRender=!0}enable(e){var t;if(!this.ctx||this.state.enabled||!this.five.observers[this.five.state.panoIndex])return;let n=(t=e==null?void 0:e.userAction)==null?!0:t;this.updateState({enabled:!0},n),this._enable({userAction:n})}disable(e){var t;if(this.state.enabled===!1)return;let n=(t=e==null?void 0:e.userAction)==null?!0:t;this.updateState({enabled:!1},n),this._disable({userAction:n})}setState(e,t={}){let n=this.state,r=t.userAction===void 0?!0:t.userAction;if(this.updateState(e,r),e.enabled!==void 0&&n.enabled!==e.enabled){let t={userAction:r};e.enabled?this._enable(t):this._disable(t)}}};exports.Controller=f;
338
+ */const require_runtime=require("../../_virtual/_rolldown/runtime.js"),require_index=require("../BasePlugin/index.js"),require_clamp=require("../utils/clamp.js");let tslib=require("tslib"),_realsee_five_webgpu=require("@realsee/five-webgpu"),three_webgpu=require("three/webgpu");three_webgpu=require_runtime.__toESM(three_webgpu,1);let three_tsl=require("three/tsl");function createPanoAnimeMaterial(){let u={map:(0,three_tsl.texture)(new three_webgpu.Texture),progress:(0,three_tsl.uniform)(0),opacity:(0,three_tsl.uniform)(0)},fragment=(0,three_tsl.Fn)(()=>{let vUv=(0,three_tsl.uv)(),vPosition=(0,three_tsl.varying)(three_tsl.positionGeometry);(0,three_tsl.Discard)(vUv.y.greaterThan(u.progress));let image=u.map.sample(vUv),base=(0,three_tsl.vec4)((0,three_tsl.vec3)(1,1,1),u.progress.sub(vPosition.y).mul(.7)),withImage=base.add((0,three_tsl.vec4)(image.rgb,image.a.mul(vPosition.y.oneMinus()))),color=(0,three_tsl.select)(u.progress.equal(1),withImage,base);return(0,three_tsl.vec4)(color.rgb,color.a.mul(u.opacity))}),material=new three_webgpu.NodeMaterial;return material.fragmentNode=fragment(),material.transparent=!0,material.depthTest=!1,{material,u}}var MULTIPLE=[1,5,2,6,3,7,4,8,9,13,10,14,11,15,12,16],CANVAS_WIDTH=512,CANVAS_HEIGHT=512,LINE_LENGTH=128,Controller=class extends require_index.BasePlugin.Controller{get config(){return Object.assign({},this._config)}updateState(state,userAction){let prevState=this.state;this.state=Object.assign(Object.assign({},this.state),state),this.hooks.emit(`stateChange`,{state:this.state,prevState,userAction})}updateConfig(config,options={}){var _a;let prevConfig=this.config,newConfig=Object.assign(Object.assign({},prevConfig),config);this._config=newConfig,this.hooks.emit(`configChange`,{prevConfig,config:newConfig,userAction:(_a=options.userAction)==null?!0:_a})}constructor(five,params){super(five),this.group=new three_webgpu.Group,this.materialUniforms=createPanoAnimeMaterial(),this.mesh=(()=>{let geometry=new three_webgpu.CylinderGeometry(.12,.12,1,32,1,!0);return geometry.translate(0,.5,0),new three_webgpu.Mesh(geometry,this.materialUniforms.material)})(),this.panoMesh=new _realsee_five_webgpu.PanoCircleMesh({scale:1.5}),this.stop=()=>{},this.drawLine=(index,deltaTime)=>{if(!this.ctx)return;let x=(()=>{var _a;return 32*((_a=MULTIPLE[index])==null?0:_a)})(),y=(1-(deltaTime+index*150)%1200/1200)*640,linearGradient=this.ctx.createLinearGradient(0,y-LINE_LENGTH,0,y);linearGradient.addColorStop(0,`rgba(255,255,255,0)`),linearGradient.addColorStop(.5,`rgba(255,255,255,1)`),linearGradient.addColorStop(1,`rgba(255,255,255,0)`),this.ctx.fillStyle=linearGradient,this.ctx.fillRect(x,y-LINE_LENGTH,3,LINE_LENGTH)},this.anime=time=>{if(!this.ctx||!this.startTime)return;this.ctx.clearRect(0,0,CANVAS_WIDTH,CANVAS_HEIGHT);for(let i=0;i<16;i++)this.drawLine(i,time-this.startTime);let progress=require_clamp.clamp((time-this.startTime)/1e3,0,1),opacity=require_clamp.clamp((time-this.startTime)/300,0,this.config.maxOpacity);this.panoMesh.setOpacity(opacity),this.materialUniforms.u.progress.value=progress,this.materialUniforms.u.opacity.value=opacity,this.canvasTexture&&(this.canvasTexture.needsUpdate=!0),this.five.needsRender=!0},this.dispose=()=>{this.disable()},this.five=five;let defaultState={enabled:!1,visible:!0};this.state=Object.assign(defaultState,params==null?void 0:params.initialState);let config=Object.assign(Object.assign({},params==null?void 0:params.config),{maxOpacity:1});this._config=config,!(typeof document>`u`)&&(this.canvas=document.createElement(`canvas`),this.ctx=this.canvas.getContext(`2d`),this.canvas.width=CANVAS_WIDTH,this.canvas.height=CANVAS_HEIGHT,this.ctx.shadowColor=`rgba(255,255,255,0.5)`,this.ctx.shadowBlur=6,this.ctx.shadowOffsetX=0,this.ctx.shadowOffsetY=0,this.canvasTexture=new three_webgpu.CanvasTexture(this.canvas),this.materialUniforms.u.map.value=this.canvasTexture,this.group.add(this.mesh),this.panoMesh.setProgress(1),this.panoMesh.setOpacity(0),this.group.add(this.panoMesh),this.state.enabled&&this._enable({userAction:!1}))}load(data){return(0,tslib.__awaiter)(this,void 0,void 0,function*(){})}_enable(options){this.mesh.position.copy(this.five.observers[this.five.state.panoIndex].standingPosition),this.panoMesh.position.copy(this.five.observers[this.five.state.panoIndex].standingPosition),this.five.ready().then(()=>{this.five.scene.add(this.group),this.stop=_realsee_five_webgpu.AnimationFrameLoop.shared.add((time,deltaTime)=>{this.startTime||(this.startTime=time),this.panoMesh.updateTime(time,deltaTime),this.anime(time)})})}_disable(options){this.five.scene.remove(this.group),this.panoMesh.setOpacity(0),this.startTime=void 0,this.stop(),this.five.needsRender=!0}enable(options){var _a;if(!this.ctx||this.state.enabled||!this.five.observers[this.five.state.panoIndex])return;let userAction=(_a=options==null?void 0:options.userAction)==null?!0:_a;this.updateState({enabled:!0},userAction),this._enable({userAction})}disable(options){var _a;if(this.state.enabled===!1)return;let userAction=(_a=options==null?void 0:options.userAction)==null?!0:_a;this.updateState({enabled:!1},userAction),this._disable({userAction})}setState(state,options={}){let prevState=this.state,userAction=options.userAction===void 0?!0:options.userAction;if(this.updateState(state,userAction),state.enabled!==void 0&&prevState.enabled!==state.enabled){let options={userAction};state.enabled?this._enable(options):this._disable(options)}}};exports.Controller=Controller;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
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{BasePlugin as e}from"../BasePlugin/index.mjs";import{clamp as t}from"../utils/clamp.mjs";import{__awaiter as n}from"tslib";import{AnimationFrameLoop as r,PanoCircleMesh as i}from"@realsee/five-webgpu";import*as a from"three/webgpu";import{Discard as o,Fn as s,positionGeometry as c,select as l,texture as u,uniform as d,uv as f,varying as p,vec3 as m,vec4 as h}from"three/tsl";function g(){let e={map:u(new a.Texture),progress:d(0),opacity:d(0)},t=s(()=>{let t=f(),n=p(c);o(t.y.greaterThan(e.progress));let r=e.map.sample(t),i=h(m(1,1,1),e.progress.sub(n.y).mul(.7)),a=i.add(h(r.rgb,r.a.mul(n.y.oneMinus()))),s=l(e.progress.equal(1),a,i);return h(s.rgb,s.a.mul(e.opacity))}),n=new a.NodeMaterial;return n.fragmentNode=t(),n.transparent=!0,n.depthTest=!1,{material:n,u:e}}var _=[1,5,2,6,3,7,4,8,9,13,10,14,11,15,12,16],v=512,y=512,b=128,x=class extends e.Controller{get config(){return Object.assign({},this._config)}updateState(e,t){let n=this.state;this.state=Object.assign(Object.assign({},this.state),e),this.hooks.emit(`stateChange`,{state:this.state,prevState:n,userAction:t})}updateConfig(e,t={}){var n;let r=this.config,i=Object.assign(Object.assign({},r),e);this._config=i,this.hooks.emit(`configChange`,{prevConfig:r,config:i,userAction:(n=t.userAction)==null?!0:n})}constructor(e,n){super(e),this.group=new a.Group,this.materialUniforms=g(),this.mesh=(()=>{let e=new a.CylinderGeometry(.12,.12,1,32,1,!0);return e.translate(0,.5,0),new a.Mesh(e,this.materialUniforms.material)})(),this.panoMesh=new i({scale:1.5}),this.stop=()=>{},this.drawLine=(e,t)=>{if(!this.ctx)return;let n=(()=>{var t;return 32*((t=_[e])==null?0:t)})(),r=(1-(t+e*150)%1200/1200)*640,i=this.ctx.createLinearGradient(0,r-b,0,r);i.addColorStop(0,`rgba(255,255,255,0)`),i.addColorStop(.5,`rgba(255,255,255,1)`),i.addColorStop(1,`rgba(255,255,255,0)`),this.ctx.fillStyle=i,this.ctx.fillRect(n,r-b,3,b)},this.anime=e=>{if(!this.ctx||!this.startTime)return;this.ctx.clearRect(0,0,v,y);for(let t=0;t<16;t++)this.drawLine(t,e-this.startTime);let n=t((e-this.startTime)/1e3,0,1),r=t((e-this.startTime)/300,0,this.config.maxOpacity);this.panoMesh.setOpacity(r),this.materialUniforms.u.progress.value=n,this.materialUniforms.u.opacity.value=r,this.canvasTexture&&(this.canvasTexture.needsUpdate=!0),this.five.needsRender=!0},this.dispose=()=>{this.disable()},this.five=e;let r={enabled:!1,visible:!0};this.state=Object.assign(r,n==null?void 0:n.initialState);let o=Object.assign(Object.assign({},n==null?void 0:n.config),{maxOpacity:1});this._config=o,!(typeof document>`u`)&&(this.canvas=document.createElement(`canvas`),this.ctx=this.canvas.getContext(`2d`),this.canvas.width=v,this.canvas.height=y,this.ctx.shadowColor=`rgba(255,255,255,0.5)`,this.ctx.shadowBlur=6,this.ctx.shadowOffsetX=0,this.ctx.shadowOffsetY=0,this.canvasTexture=new a.CanvasTexture(this.canvas),this.materialUniforms.u.map.value=this.canvasTexture,this.group.add(this.mesh),this.panoMesh.setProgress(1),this.panoMesh.setOpacity(0),this.group.add(this.panoMesh),this.state.enabled&&this._enable({userAction:!1}))}load(e){return n(this,void 0,void 0,function*(){})}_enable(e){this.mesh.position.copy(this.five.observers[this.five.state.panoIndex].standingPosition),this.panoMesh.position.copy(this.five.observers[this.five.state.panoIndex].standingPosition),this.five.ready().then(()=>{this.five.scene.add(this.group),this.stop=r.shared.add((e,t)=>{this.startTime||(this.startTime=e),this.panoMesh.updateTime(e,t),this.anime(e)})})}_disable(e){this.five.scene.remove(this.group),this.panoMesh.setOpacity(0),this.startTime=void 0,this.stop(),this.five.needsRender=!0}enable(e){var t;if(!this.ctx||this.state.enabled||!this.five.observers[this.five.state.panoIndex])return;let n=(t=e==null?void 0:e.userAction)==null?!0:t;this.updateState({enabled:!0},n),this._enable({userAction:n})}disable(e){var t;if(this.state.enabled===!1)return;let n=(t=e==null?void 0:e.userAction)==null?!0:t;this.updateState({enabled:!1},n),this._disable({userAction:n})}setState(e,t={}){let n=this.state,r=t.userAction===void 0?!0:t.userAction;if(this.updateState(e,r),e.enabled!==void 0&&n.enabled!==e.enabled){let t={userAction:r};e.enabled?this._enable(t):this._disable(t)}}};export{x as Controller};
338
+ */import{BasePlugin}from"../BasePlugin/index.mjs";import{clamp as clamp$1}from"../utils/clamp.mjs";import{__awaiter}from"tslib";import{AnimationFrameLoop,PanoCircleMesh}from"@realsee/five-webgpu";import*as THREE from"three/webgpu";import{Discard,Fn,positionGeometry,select,texture,uniform,uv,varying,vec3,vec4}from"three/tsl";function createPanoAnimeMaterial(){let u={map:texture(new THREE.Texture),progress:uniform(0),opacity:uniform(0)},fragment=Fn(()=>{let vUv=uv(),vPosition=varying(positionGeometry);Discard(vUv.y.greaterThan(u.progress));let image=u.map.sample(vUv),base=vec4(vec3(1,1,1),u.progress.sub(vPosition.y).mul(.7)),withImage=base.add(vec4(image.rgb,image.a.mul(vPosition.y.oneMinus()))),color=select(u.progress.equal(1),withImage,base);return vec4(color.rgb,color.a.mul(u.opacity))}),material=new THREE.NodeMaterial;return material.fragmentNode=fragment(),material.transparent=!0,material.depthTest=!1,{material,u}}var MULTIPLE=[1,5,2,6,3,7,4,8,9,13,10,14,11,15,12,16],CANVAS_WIDTH=512,CANVAS_HEIGHT=512,LINE_LENGTH=128,Controller=class extends BasePlugin.Controller{get config(){return Object.assign({},this._config)}updateState(state,userAction){let prevState=this.state;this.state=Object.assign(Object.assign({},this.state),state),this.hooks.emit(`stateChange`,{state:this.state,prevState,userAction})}updateConfig(config,options={}){var _a;let prevConfig=this.config,newConfig=Object.assign(Object.assign({},prevConfig),config);this._config=newConfig,this.hooks.emit(`configChange`,{prevConfig,config:newConfig,userAction:(_a=options.userAction)==null?!0:_a})}constructor(five,params){super(five),this.group=new THREE.Group,this.materialUniforms=createPanoAnimeMaterial(),this.mesh=(()=>{let geometry=new THREE.CylinderGeometry(.12,.12,1,32,1,!0);return geometry.translate(0,.5,0),new THREE.Mesh(geometry,this.materialUniforms.material)})(),this.panoMesh=new PanoCircleMesh({scale:1.5}),this.stop=()=>{},this.drawLine=(index,deltaTime)=>{if(!this.ctx)return;let x=(()=>{var _a;return 32*((_a=MULTIPLE[index])==null?0:_a)})(),y=(1-(deltaTime+index*150)%1200/1200)*640,linearGradient=this.ctx.createLinearGradient(0,y-LINE_LENGTH,0,y);linearGradient.addColorStop(0,`rgba(255,255,255,0)`),linearGradient.addColorStop(.5,`rgba(255,255,255,1)`),linearGradient.addColorStop(1,`rgba(255,255,255,0)`),this.ctx.fillStyle=linearGradient,this.ctx.fillRect(x,y-LINE_LENGTH,3,LINE_LENGTH)},this.anime=time=>{if(!this.ctx||!this.startTime)return;this.ctx.clearRect(0,0,CANVAS_WIDTH,CANVAS_HEIGHT);for(let i=0;i<16;i++)this.drawLine(i,time-this.startTime);let progress=clamp$1((time-this.startTime)/1e3,0,1),opacity=clamp$1((time-this.startTime)/300,0,this.config.maxOpacity);this.panoMesh.setOpacity(opacity),this.materialUniforms.u.progress.value=progress,this.materialUniforms.u.opacity.value=opacity,this.canvasTexture&&(this.canvasTexture.needsUpdate=!0),this.five.needsRender=!0},this.dispose=()=>{this.disable()},this.five=five;let defaultState={enabled:!1,visible:!0};this.state=Object.assign(defaultState,params==null?void 0:params.initialState);let config=Object.assign(Object.assign({},params==null?void 0:params.config),{maxOpacity:1});this._config=config,!(typeof document>`u`)&&(this.canvas=document.createElement(`canvas`),this.ctx=this.canvas.getContext(`2d`),this.canvas.width=CANVAS_WIDTH,this.canvas.height=CANVAS_HEIGHT,this.ctx.shadowColor=`rgba(255,255,255,0.5)`,this.ctx.shadowBlur=6,this.ctx.shadowOffsetX=0,this.ctx.shadowOffsetY=0,this.canvasTexture=new THREE.CanvasTexture(this.canvas),this.materialUniforms.u.map.value=this.canvasTexture,this.group.add(this.mesh),this.panoMesh.setProgress(1),this.panoMesh.setOpacity(0),this.group.add(this.panoMesh),this.state.enabled&&this._enable({userAction:!1}))}load(data){return __awaiter(this,void 0,void 0,function*(){})}_enable(options){this.mesh.position.copy(this.five.observers[this.five.state.panoIndex].standingPosition),this.panoMesh.position.copy(this.five.observers[this.five.state.panoIndex].standingPosition),this.five.ready().then(()=>{this.five.scene.add(this.group),this.stop=AnimationFrameLoop.shared.add((time,deltaTime)=>{this.startTime||(this.startTime=time),this.panoMesh.updateTime(time,deltaTime),this.anime(time)})})}_disable(options){this.five.scene.remove(this.group),this.panoMesh.setOpacity(0),this.startTime=void 0,this.stop(),this.five.needsRender=!0}enable(options){var _a;if(!this.ctx||this.state.enabled||!this.five.observers[this.five.state.panoIndex])return;let userAction=(_a=options==null?void 0:options.userAction)==null?!0:_a;this.updateState({enabled:!0},userAction),this._enable({userAction})}disable(options){var _a;if(this.state.enabled===!1)return;let userAction=(_a=options==null?void 0:options.userAction)==null?!0:_a;this.updateState({enabled:!1},userAction),this._disable({userAction})}setState(state,options={}){let prevState=this.state,userAction=options.userAction===void 0?!0:options.userAction;if(this.updateState(state,userAction),state.enabled!==void 0&&prevState.enabled!==state.enabled){let options={userAction};state.enabled?this._enable(options):this._disable(options)}}};export{Controller};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
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("./Controller.js");var t=(t,n)=>new e.Controller(t,n);exports.PanoAnimePlugin=t;
338
+ */const require_Controller=require("./Controller.js");var PanoAnimePlugin=(five,params)=>new require_Controller.Controller(five,params);exports.PanoAnimePlugin=PanoAnimePlugin;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
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{Controller as e}from"./Controller.mjs";var t=(t,n)=>new e(t,n);export{t as PanoAnimePlugin};
338
+ */import{Controller}from"./Controller.mjs";var PanoAnimePlugin=(five,params)=>new Controller(five,params);export{PanoAnimePlugin};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */const e=require("../../_virtual/_rolldown/runtime.js"),t=require("../BasePlugin/index.js"),n=require("./word-pass.js"),r=require("./textToStrokeOrderStrokes.js");let i=require("tslib"),a=require("three/webgpu");a=e.__toESM(a,1);var o=class extends t.BasePlugin.Controller{updateState(e,t){let n=this.state;this.state=Object.assign(Object.assign({},this.state),e),this.hooks.emit(`stateChange`,{state:this.state,prevState:n,userAction:t})}constructor(e,t){var r,i;super(e),this.dispose=()=>{this.disable(),this.wordPass.dispose()},this.five=e;let o={enabled:!1,visible:!0};this.state=Object.assign(o,t==null?void 0:t.initialState);let s=(i=(r=t==null?void 0:t.config)==null?void 0:r.outputType)==null?e.enableHDR?a.HalfFloatType:a.UnsignedByteType:i;this.wordPass=new n.WordPass(e.camera,s),this.state.enabled&&this._enable()}load(){return(0,i.__awaiter)(this,void 0,void 0,function*(){})}_enable(){this.five.addPass(this.wordPass),this.wordPass.enabled=this.state.visible,this.five.needsRender=!0}_disable(){this.five.removePass(this.wordPass),this.wordPass.clearWords(),this.five.needsRender=!0}enable(e){var t;if(this.state.enabled)return;let n=(t=e==null?void 0:e.userAction)==null?!0:t;this.updateState({enabled:!0},n),this._enable()}disable(e){var t;if(this.state.enabled===!1)return;let n=(t=e==null?void 0:e.userAction)==null?!0:t;this.updateState({enabled:!1},n),this._disable()}setState(e,t={}){var n;let r=this.state,i=(n=t.userAction)==null?!0:n;this.updateState(e,i),e.enabled!==void 0&&r.enabled!==e.enabled&&(e.enabled?this._enable():this._disable()),e.visible!==void 0&&r.visible!==e.visible&&(this.wordPass.enabled=e.visible,this.five.needsRender=!0)}setWords(e){let t=this.wordPass.setWords(e);return this.five.needsRender=!0,t}addWord(...e){let t=this.wordPass.addWord(...e);return this.five.needsRender=!0,t}removeWord(...e){let t=this.wordPass.removeWord(...e);return this.five.needsRender=!0,t}setWord(e){this.wordPass.setWord(e),this.five.needsRender=!0}clearWords(){this.wordPass.clearWords(),this.five.needsRender=!0}hasWord(e){return this.wordPass.hasWord(e)}setMaxDisplayBoost(e){this.wordPass.setMaxDisplayBoost(e),this.five.needsRender=!0}writeText(e){return(0,i.__awaiter)(this,arguments,void 0,function*(e,t={}){let{size:n,letterSpacing:a,lineSpacing:o,normal:s,up:c,center:l,position:u,smooth:d,smoothSubdivisions:f,cdnBaseUrl:p,charDataLoader:m,latinScale:h}=t,g=(0,i.__rest)(t,[`size`,`letterSpacing`,`lineSpacing`,`normal`,`up`,`center`,`position`,`smooth`,`smoothSubdivisions`,`cdnBaseUrl`,`charDataLoader`,`latinScale`]),_=yield r.textToStrokeOrderStrokes(e,{size:n,letterSpacing:a,lineSpacing:o,normal:s,up:c,center:l,position:u,smooth:d,smoothSubdivisions:f,cdnBaseUrl:p,charDataLoader:m,latinScale:h});this.state.enabled||this.enable(),g.id!==void 0&&this.hasWord(g.id)&&this.removeWord(g.id);let[v]=this.addWord(Object.assign(Object.assign({},g),{strokes:_}));return v})}};exports.Controller=o;
338
+ */const require_runtime=require("../../_virtual/_rolldown/runtime.js"),require_index=require("../BasePlugin/index.js"),require_word_pass=require("./word-pass.js"),require_textToStrokeOrderStrokes=require("./textToStrokeOrderStrokes.js");let tslib=require("tslib"),three_webgpu=require("three/webgpu");three_webgpu=require_runtime.__toESM(three_webgpu,1);var Controller=class extends require_index.BasePlugin.Controller{updateState(state,userAction){let prevState=this.state;this.state=Object.assign(Object.assign({},this.state),state),this.hooks.emit(`stateChange`,{state:this.state,prevState,userAction})}constructor(five,params){var _a,_b;super(five),this.dispose=()=>{this.disable(),this.wordPass.dispose()},this.five=five;let defaultState={enabled:!1,visible:!0};this.state=Object.assign(defaultState,params==null?void 0:params.initialState);let outputType=(_b=(_a=params==null?void 0:params.config)==null?void 0:_a.outputType)==null?five.enableHDR?three_webgpu.HalfFloatType:three_webgpu.UnsignedByteType:_b;this.wordPass=new require_word_pass.WordPass(five.camera,outputType),this.state.enabled&&this._enable()}load(){return(0,tslib.__awaiter)(this,void 0,void 0,function*(){})}_enable(){this.five.addPass(this.wordPass),this.wordPass.enabled=this.state.visible,this.five.needsRender=!0}_disable(){this.five.removePass(this.wordPass),this.wordPass.clearWords(),this.five.needsRender=!0}enable(options){var _a;if(this.state.enabled)return;let userAction=(_a=options==null?void 0:options.userAction)==null?!0:_a;this.updateState({enabled:!0},userAction),this._enable()}disable(options){var _a;if(this.state.enabled===!1)return;let userAction=(_a=options==null?void 0:options.userAction)==null?!0:_a;this.updateState({enabled:!1},userAction),this._disable()}setState(state,options={}){var _a;let prevState=this.state,userAction=(_a=options.userAction)==null?!0:_a;this.updateState(state,userAction),state.enabled!==void 0&&prevState.enabled!==state.enabled&&(state.enabled?this._enable():this._disable()),state.visible!==void 0&&prevState.visible!==state.visible&&(this.wordPass.enabled=state.visible,this.five.needsRender=!0)}setWords(words){let ids=this.wordPass.setWords(words);return this.five.needsRender=!0,ids}addWord(...words){let ids=this.wordPass.addWord(...words);return this.five.needsRender=!0,ids}removeWord(...ids){let removed=this.wordPass.removeWord(...ids);return this.five.needsRender=!0,removed}setWord(params){this.wordPass.setWord(params),this.five.needsRender=!0}clearWords(){this.wordPass.clearWords(),this.five.needsRender=!0}hasWord(id){return this.wordPass.hasWord(id)}setMaxDisplayBoost(value){this.wordPass.setMaxDisplayBoost(value),this.five.needsRender=!0}writeText(text_1){return(0,tslib.__awaiter)(this,arguments,void 0,function*(text,options={}){let{size,letterSpacing,lineSpacing,normal,up,center,position,smooth,smoothSubdivisions,cdnBaseUrl,charDataLoader,latinScale}=options,style=(0,tslib.__rest)(options,[`size`,`letterSpacing`,`lineSpacing`,`normal`,`up`,`center`,`position`,`smooth`,`smoothSubdivisions`,`cdnBaseUrl`,`charDataLoader`,`latinScale`]),strokes=yield require_textToStrokeOrderStrokes.textToStrokeOrderStrokes(text,{size,letterSpacing,lineSpacing,normal,up,center,position,smooth,smoothSubdivisions,cdnBaseUrl,charDataLoader,latinScale});this.state.enabled||this.enable(),style.id!==void 0&&this.hasWord(style.id)&&this.removeWord(style.id);let[wordId]=this.addWord(Object.assign(Object.assign({},style),{strokes}));return wordId})}};exports.Controller=Controller;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
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{BasePlugin as e}from"../BasePlugin/index.mjs";import{WordPass as t}from"./word-pass.mjs";import{textToStrokeOrderStrokes as n}from"./textToStrokeOrderStrokes.mjs";import{__awaiter as r,__rest as i}from"tslib";import*as a from"three/webgpu";var o=class extends e.Controller{updateState(e,t){let n=this.state;this.state=Object.assign(Object.assign({},this.state),e),this.hooks.emit(`stateChange`,{state:this.state,prevState:n,userAction:t})}constructor(e,n){var r,i;super(e),this.dispose=()=>{this.disable(),this.wordPass.dispose()},this.five=e;let o={enabled:!1,visible:!0};this.state=Object.assign(o,n==null?void 0:n.initialState);let s=(i=(r=n==null?void 0:n.config)==null?void 0:r.outputType)==null?e.enableHDR?a.HalfFloatType:a.UnsignedByteType:i;this.wordPass=new t(e.camera,s),this.state.enabled&&this._enable()}load(){return r(this,void 0,void 0,function*(){})}_enable(){this.five.addPass(this.wordPass),this.wordPass.enabled=this.state.visible,this.five.needsRender=!0}_disable(){this.five.removePass(this.wordPass),this.wordPass.clearWords(),this.five.needsRender=!0}enable(e){var t;if(this.state.enabled)return;let n=(t=e==null?void 0:e.userAction)==null?!0:t;this.updateState({enabled:!0},n),this._enable()}disable(e){var t;if(this.state.enabled===!1)return;let n=(t=e==null?void 0:e.userAction)==null?!0:t;this.updateState({enabled:!1},n),this._disable()}setState(e,t={}){var n;let r=this.state,i=(n=t.userAction)==null?!0:n;this.updateState(e,i),e.enabled!==void 0&&r.enabled!==e.enabled&&(e.enabled?this._enable():this._disable()),e.visible!==void 0&&r.visible!==e.visible&&(this.wordPass.enabled=e.visible,this.five.needsRender=!0)}setWords(e){let t=this.wordPass.setWords(e);return this.five.needsRender=!0,t}addWord(...e){let t=this.wordPass.addWord(...e);return this.five.needsRender=!0,t}removeWord(...e){let t=this.wordPass.removeWord(...e);return this.five.needsRender=!0,t}setWord(e){this.wordPass.setWord(e),this.five.needsRender=!0}clearWords(){this.wordPass.clearWords(),this.five.needsRender=!0}hasWord(e){return this.wordPass.hasWord(e)}setMaxDisplayBoost(e){this.wordPass.setMaxDisplayBoost(e),this.five.needsRender=!0}writeText(e){return r(this,arguments,void 0,function*(e,t={}){let{size:r,letterSpacing:a,lineSpacing:o,normal:s,up:c,center:l,position:u,smooth:d,smoothSubdivisions:f,cdnBaseUrl:p,charDataLoader:m,latinScale:h}=t,g=i(t,[`size`,`letterSpacing`,`lineSpacing`,`normal`,`up`,`center`,`position`,`smooth`,`smoothSubdivisions`,`cdnBaseUrl`,`charDataLoader`,`latinScale`]),_=yield n(e,{size:r,letterSpacing:a,lineSpacing:o,normal:s,up:c,center:l,position:u,smooth:d,smoothSubdivisions:f,cdnBaseUrl:p,charDataLoader:m,latinScale:h});this.state.enabled||this.enable(),g.id!==void 0&&this.hasWord(g.id)&&this.removeWord(g.id);let[v]=this.addWord(Object.assign(Object.assign({},g),{strokes:_}));return v})}};export{o as Controller};
338
+ */import{BasePlugin}from"../BasePlugin/index.mjs";import{WordPass}from"./word-pass.mjs";import{textToStrokeOrderStrokes}from"./textToStrokeOrderStrokes.mjs";import{__awaiter,__rest}from"tslib";import*as THREE from"three/webgpu";var Controller=class extends BasePlugin.Controller{updateState(state,userAction){let prevState=this.state;this.state=Object.assign(Object.assign({},this.state),state),this.hooks.emit(`stateChange`,{state:this.state,prevState,userAction})}constructor(five,params){var _a,_b;super(five),this.dispose=()=>{this.disable(),this.wordPass.dispose()},this.five=five;let defaultState={enabled:!1,visible:!0};this.state=Object.assign(defaultState,params==null?void 0:params.initialState);let outputType=(_b=(_a=params==null?void 0:params.config)==null?void 0:_a.outputType)==null?five.enableHDR?THREE.HalfFloatType:THREE.UnsignedByteType:_b;this.wordPass=new WordPass(five.camera,outputType),this.state.enabled&&this._enable()}load(){return __awaiter(this,void 0,void 0,function*(){})}_enable(){this.five.addPass(this.wordPass),this.wordPass.enabled=this.state.visible,this.five.needsRender=!0}_disable(){this.five.removePass(this.wordPass),this.wordPass.clearWords(),this.five.needsRender=!0}enable(options){var _a;if(this.state.enabled)return;let userAction=(_a=options==null?void 0:options.userAction)==null?!0:_a;this.updateState({enabled:!0},userAction),this._enable()}disable(options){var _a;if(this.state.enabled===!1)return;let userAction=(_a=options==null?void 0:options.userAction)==null?!0:_a;this.updateState({enabled:!1},userAction),this._disable()}setState(state,options={}){var _a;let prevState=this.state,userAction=(_a=options.userAction)==null?!0:_a;this.updateState(state,userAction),state.enabled!==void 0&&prevState.enabled!==state.enabled&&(state.enabled?this._enable():this._disable()),state.visible!==void 0&&prevState.visible!==state.visible&&(this.wordPass.enabled=state.visible,this.five.needsRender=!0)}setWords(words){let ids=this.wordPass.setWords(words);return this.five.needsRender=!0,ids}addWord(...words){let ids=this.wordPass.addWord(...words);return this.five.needsRender=!0,ids}removeWord(...ids){let removed=this.wordPass.removeWord(...ids);return this.five.needsRender=!0,removed}setWord(params){this.wordPass.setWord(params),this.five.needsRender=!0}clearWords(){this.wordPass.clearWords(),this.five.needsRender=!0}hasWord(id){return this.wordPass.hasWord(id)}setMaxDisplayBoost(value){this.wordPass.setMaxDisplayBoost(value),this.five.needsRender=!0}writeText(text_1){return __awaiter(this,arguments,void 0,function*(text,options={}){let{size,letterSpacing,lineSpacing,normal,up,center,position,smooth,smoothSubdivisions,cdnBaseUrl,charDataLoader,latinScale}=options,style=__rest(options,[`size`,`letterSpacing`,`lineSpacing`,`normal`,`up`,`center`,`position`,`smooth`,`smoothSubdivisions`,`cdnBaseUrl`,`charDataLoader`,`latinScale`]),strokes=yield textToStrokeOrderStrokes(text,{size,letterSpacing,lineSpacing,normal,up,center,position,smooth,smoothSubdivisions,cdnBaseUrl,charDataLoader,latinScale});this.state.enabled||this.enable(),style.id!==void 0&&this.hasWord(style.id)&&this.removeWord(style.id);let[wordId]=this.addWord(Object.assign(Object.assign({},style),{strokes}));return wordId})}};export{Controller};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */var e={name:`Sans 1-stroke`,chars:[{d:`M5,1 L5,15 M5,20 L4,21 5,22 6,21 5,20`,o:5},{d:`M4,1 L4,8 M12,1 L12,8`,o:8},{d:`M11,-3 L4,29 M17,-3 L10,29 M4,10 L18,10 M3,16 L17,16`,o:11},{d:`M8,-3 L8,26 M12,-3 L12,26 M17,4 L15,2 12,1 8,1 5,2 3,4 3,6 4,8 5,9 7,10 13,12 15,13 16,14 17,16 17,19 15,21 12,22 8,22 5,21 3,19`,o:10},{d:`M21,1 L3,22 M8,1 L10,3 10,5 9,7 7,8 5,8 3,6 3,4 4,2 6,1 8,1 10,2 13,3 16,3 19,2 21,1 M17,15 L15,16 14,18 14,20 16,22 18,22 20,21 21,19 21,17 19,15 17,15`,o:12},{d:`M23,10 L23,9 22,8 21,8 20,9 19,11 17,16 15,19 13,21 11,22 7,22 5,21 4,20 3,18 3,16 4,14 5,13 12,9 13,8 14,6 14,4 13,2 11,1 9,2 8,4 8,6 9,9 11,12 16,19 18,21 20,22 22,22 23,21 23,20`,o:13},{d:`M5,3 L4,2 5,1 6,2 6,4 5,6 4,7`,o:5},{d:`M11,-3 L9,-1 7,2 5,6 4,11 4,15 5,20 7,24 9,27 11,29`,o:7},{d:`M3,-3 L5,-1 7,2 9,6 10,11 10,15 9,20 7,24 5,27 3,29`,o:7},{d:`M8,7 L8,19 M3,10 L13,16 M13,10 L3,16`,o:8},{d:`M13,4 L13,22 M4,13 L22,13`,o:13},{d:`M5,18 L4,19 3,18 4,17 5,18 5,20 3,22`,o:4},{d:`M4,13 L22,13`,o:13},{d:`M4,17 L3,18 4,19 5,18 4,17`,o:4},{d:`M20,-3 L2,29`,o:11},{d:`M9,1 L6,2 4,5 3,10 3,13 4,18 6,21 9,22 11,22 14,21 16,18 17,13 17,10 16,5 14,2 11,1 9,1`,o:10},{d:`M6,5 L8,4 11,1 11,22`,o:10},{d:`M4,6 L4,5 5,3 6,2 8,1 12,1 14,2 15,3 16,5 16,7 15,9 13,12 3,22 17,22`,o:10},{d:`M5,1 L16,1 10,9 13,9 15,10 16,11 17,14 17,16 16,19 14,21 11,22 8,22 5,21 4,20 3,18`,o:10},{d:`M13,1 L3,15 18,15 M13,1 L13,22`,o:10},{d:`M15,1 L5,1 4,10 5,9 8,8 11,8 14,9 16,11 17,14 17,16 16,19 14,21 11,22 8,22 5,21 4,20 3,18`,o:10},{d:`M16,4 L15,2 12,1 10,1 7,2 5,5 4,10 4,15 5,19 7,21 10,22 11,22 14,21 16,19 17,16 17,15 16,12 14,10 11,9 10,9 7,10 5,12 4,15`,o:10},{d:`M17,1 L7,22 M3,1 L17,1`,o:10},{d:`M8,1 L5,2 4,4 4,6 5,8 7,9 11,10 14,11 16,13 17,15 17,18 16,20 15,21 12,22 8,22 5,21 4,20 3,18 3,15 4,13 6,11 9,10 13,9 15,8 16,6 16,4 15,2 12,1 8,1`,o:10},{d:`M16,8 L15,11 13,13 10,14 9,14 6,13 4,11 3,8 3,7 4,4 6,2 9,1 10,1 13,2 15,4 16,8 16,13 15,18 13,21 10,22 8,22 5,21 4,19`,o:10},{d:`M4,10 L3,11 4,12 5,11 4,10 M4,17 L3,18 4,19 5,18 4,17`,o:4},{d:`M4,10 L3,11 4,12 5,11 4,10 M5,18 L4,19 3,18 4,17 5,18 5,20 3,22`,o:4},{d:`M20,4 L4,13 20,22`,o:12},{d:`M4,10 L22,10 M4,16 L22,16`,o:13},{d:`M4,4 L20,13 4,22`,o:12},{d:`M3,6 L3,5 4,3 5,2 7,1 11,1 13,2 14,3 15,5 15,7 14,9 13,10 9,12 9,15 M9,20 L8,21 9,22 10,21 9,20`,o:9},{d:`M18,9 L17,7 15,6 12,6 10,7 9,8 8,11 8,14 9,16 11,17 14,17 16,16 17,14 M12,6 L10,8 9,11 9,14 10,16 11,17 M18,6 L17,14 17,16 19,17 21,17 23,15 24,12 24,10 23,7 22,5 20,3 18,2 15,1 12,1 9,2 7,3 5,5 4,7 3,10 3,13 4,16 5,18 7,20 9,21 12,22 15,22 18,21 20,20 21,19 M19,6 L18,14 18,16 19,17`,o:14},{d:`M9,1 L1,22 M9,1 L17,22 M4,15 L14,15`,o:9},{d:`M4,1 L4,22 M4,1 L13,1 16,2 17,3 18,5 18,7 17,9 16,10 13,11 M4,11 L13,11 16,12 17,13 18,15 18,18 17,20 16,21 13,22 4,22`,o:10},{d:`M18,6 L17,4 15,2 13,1 9,1 7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17`,o:11},{d:`M4,1 L4,22 M4,1 L11,1 14,2 16,4 17,6 18,9 18,14 17,17 16,19 14,21 11,22 4,22`,o:10},{d:`M4,1 L4,22 M4,1 L17,1 M4,11 L12,11 M4,22 L17,22`,o:9},{d:`M4,1 L4,22 M4,1 L17,1 M4,11 L12,11`,o:8},{d:`M18,6 L17,4 15,2 13,1 9,1 7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17 18,14 M13,14 L18,14`,o:11},{d:`M4,1 L4,22 M18,1 L18,22 M4,11 L18,11`,o:11},{d:`M4,1 L4,22`,o:4},{d:`M12,1 L12,17 11,20 10,21 8,22 6,22 4,21 3,20 2,17 2,15`,o:8},{d:`M4,1 L4,22 M18,1 L4,15 M9,10 L18,22`,o:10},{d:`M4,1 L4,22 M4,22 L16,22`,o:7},{d:`M4,1 L4,22 M4,1 L12,22 M20,1 L12,22 M20,1 L20,22`,o:12},{d:`M4,1 L4,22 M4,1 L18,22 M18,1 L18,22`,o:11},{d:`M9,1 L7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17 19,14 19,9 18,6 17,4 15,2 13,1 9,1`,o:11},{d:`M4,1 L4,22 M4,1 L13,1 16,2 17,3 18,5 18,8 17,10 16,11 13,12 4,12`,o:10},{d:`M9,1 L7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17 19,14 19,9 18,6 17,4 15,2 13,1 9,1 M12,18 L18,24`,o:11},{d:`M4,1 L4,22 M4,1 L13,1 16,2 17,3 18,5 18,7 17,9 16,10 13,11 4,11 M11,11 L18,22`,o:10},{d:`M17,4 L15,2 12,1 8,1 5,2 3,4 3,6 4,8 5,9 7,10 13,12 15,13 16,14 17,16 17,19 15,21 12,22 8,22 5,21 3,19`,o:10},{d:`M8,1 L8,22 M1,1 L15,1`,o:8},{d:`M4,1 L4,16 5,19 7,21 10,22 12,22 15,21 17,19 18,16 18,1`,o:11},{d:`M1,1 L9,22 M17,1 L9,22`,o:9},{d:`M2,1 L7,22 M12,1 L7,22 M12,1 L17,22 M22,1 L17,22`,o:12},{d:`M3,1 L17,22 M17,1 L3,22`,o:10},{d:`M1,1 L9,11 9,22 M17,1 L9,11`,o:9},{d:`M17,1 L3,22 M3,1 L17,1 M3,22 L17,22`,o:10},{d:`M4,-3 L4,29 M5,-3 L5,29 M4,-3 L11,-3 M4,29 L11,29`,o:7},{d:`M0,1 L14,25`,o:7},{d:`M9,-3 L9,29 M10,-3 L10,29 M3,-3 L10,-3 M3,29 L10,29`,o:7},{d:`M8,-1 L0,13 M8,-1 L16,13`,o:8},{d:`M0,29 L18,29`,o:9},{d:`M5,6 L3,8 3,10 4,11 5,10 4,9 3,10`,o:4},{d:`M15,8 L15,22 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M4,1 L4,22 M4,11 L6,9 8,8 11,8 13,9 15,11 16,14 16,16 15,19 13,21 11,22 8,22 6,21 4,19`,o:9},{d:`M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:9},{d:`M15,1 L15,22 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M3,14 L15,14 15,12 14,10 13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:9},{d:`M10,1 L8,1 6,2 5,5 5,22 M2,8 L9,8`,o:7},{d:`M15,8 L15,24 14,27 13,28 11,29 8,29 6,28 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M4,1 L4,22 M4,12 L7,9 9,8 12,8 14,9 15,12 15,22`,o:10},{d:`M3,1 L4,2 5,1 4,0 3,1 M4,8 L4,22`,o:4},{d:`M5,1 L6,2 7,1 6,0 5,1 M6,8 L6,25 5,28 3,29 1,29`,o:5},{d:`M4,1 L4,22 M14,8 L4,18 M8,14 L15,22`,o:8},{d:`M4,1 L4,22`,o:4},{d:`M4,8 L4,22 M4,12 L7,9 9,8 12,8 14,9 15,12 15,22 M15,12 L18,9 20,8 23,8 25,9 26,12 26,22`,o:15},{d:`M4,8 L4,22 M4,12 L7,9 9,8 12,8 14,9 15,12 15,22`,o:10},{d:`M8,8 L6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19 16,16 16,14 15,11 13,9 11,8 8,8`,o:10},{d:`M4,8 L4,29 M4,11 L6,9 8,8 11,8 13,9 15,11 16,14 16,16 15,19 13,21 11,22 8,22 6,21 4,19`,o:9},{d:`M15,8 L15,29 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M4,8 L4,22 M4,14 L5,11 7,9 9,8 12,8`,o:6},{d:`M14,11 L13,9 10,8 7,8 4,9 3,11 4,13 6,14 11,15 13,16 14,18 14,19 13,21 10,22 7,22 4,21 3,19`,o:9},{d:`M5,1 L5,18 6,21 8,22 10,22 M2,8 L9,8`,o:7},{d:`M4,8 L4,18 5,21 7,22 10,22 12,21 15,18 M15,8 L15,22`,o:10},{d:`M2,8 L8,22 M14,8 L8,22`,o:8},{d:`M3,8 L7,22 M11,8 L7,22 M11,8 L15,22 M19,8 L15,22`,o:11},{d:`M3,8 L14,22 M14,8 L3,22`,o:9},{d:`M2,8 L8,22 M14,8 L8,22 6,26 4,28 2,29 1,29`,o:8},{d:`M14,8 L3,22 M3,8 L14,8 M3,22 L14,22`,o:9},{d:`M9,-3 L7,-2 6,-1 5,1 5,3 6,5 7,6 8,8 8,10 6,12 M7,-2 L6,0 6,2 7,4 8,5 9,7 9,9 8,11 4,13 8,15 9,17 9,19 8,21 7,22 6,24 6,26 7,28 M6,14 L8,16 8,18 7,20 6,21 5,23 5,25 6,27 7,28 9,29`,o:7},{d:`M4,-3 L4,29`,o:4},{d:`M5,-3 L7,-2 8,-1 9,1 9,3 8,5 7,6 6,8 6,10 8,12 M7,-2 L8,0 8,2 7,4 6,5 5,7 5,9 6,11 10,13 6,15 5,17 5,19 6,21 7,22 8,24 8,26 7,28 M8,14 L6,16 6,18 7,20 8,21 9,23 9,25 8,27 7,28 5,29`,o:7},{d:`M3,16 L3,14 4,11 6,10 8,10 10,11 14,14 16,15 18,15 20,14 21,12 M3,14 L4,12 6,11 8,11 10,12 14,15 16,16 18,16 20,15 21,12 21,10`,o:12},{d:`M0,1 L0,22 1,22 1,1 2,1 2,22 3,22 3,1 4,1 4,22 5,22 5,1 6,1 6,22 7,22 7,1 8,1 8,22 9,22 9,1 10,1 10,22 11,22 11,1 12,1 12,22 13,22 13,1 14,1 14,22 15,22 15,1 16,1 16,22`,o:8}]},t=null;function n(e){let t=[],n=null;for(let r of e.trim().split(/\s+/)){let e=r,i=``;(e[0]===`M`||e[0]===`L`)&&(i=e[0],e=e.slice(1));let a=e.indexOf(`,`);if(a<0)continue;let o=parseFloat(e.slice(0,a)),s=parseFloat(e.slice(a+1));Number.isNaN(o)||Number.isNaN(s)||(i===`M`?(n=[[o,s]],t.push(n)):n?n.push([o,s]):(n=[[o,s]],t.push(n)))}return t}function r(r=e){if(t&&r===e)return t;if(!r||!Array.isArray(r.chars))return null;let i=r.chars.map(e=>({polylines:n(e.d||``),o:e.o})),a=1/0,o=-1/0,s=e=>{let t=i[e-33];if(!t)return!1;let n=!1;for(let e of t.polylines)for(let t of e)t[1]<a&&(a=t[1]),t[1]>o&&(o=t[1]),n=!0;return n};s(72)||s(69)||s(88)||s(73),(!Number.isFinite(a)||!Number.isFinite(o)||o<=a)&&(a=4,o=21);let c=o-a,l=c*.14,u=new Map;for(let e=0;e<i.length;e++){let t=i[e],n=1/0,r=-1/0;for(let e of t.polylines)for(let t of e)t[0]<n&&(n=t[0]),t[0]>r&&(r=t[0]);let a=Number.isFinite(n),s=a?n:0,d=a?r-n:t.o,f=t.polylines.map(e=>e.map(([e,t])=>[(e-s)/c,(o-t)/c]));u.set(33+e,{polylines:f,advance:(d+l)/c})}return r===e&&(t=u),u}exports.loadHersheyFont=r;
338
+ */var FUTURAL={name:`Sans 1-stroke`,chars:[{d:`M5,1 L5,15 M5,20 L4,21 5,22 6,21 5,20`,o:5},{d:`M4,1 L4,8 M12,1 L12,8`,o:8},{d:`M11,-3 L4,29 M17,-3 L10,29 M4,10 L18,10 M3,16 L17,16`,o:11},{d:`M8,-3 L8,26 M12,-3 L12,26 M17,4 L15,2 12,1 8,1 5,2 3,4 3,6 4,8 5,9 7,10 13,12 15,13 16,14 17,16 17,19 15,21 12,22 8,22 5,21 3,19`,o:10},{d:`M21,1 L3,22 M8,1 L10,3 10,5 9,7 7,8 5,8 3,6 3,4 4,2 6,1 8,1 10,2 13,3 16,3 19,2 21,1 M17,15 L15,16 14,18 14,20 16,22 18,22 20,21 21,19 21,17 19,15 17,15`,o:12},{d:`M23,10 L23,9 22,8 21,8 20,9 19,11 17,16 15,19 13,21 11,22 7,22 5,21 4,20 3,18 3,16 4,14 5,13 12,9 13,8 14,6 14,4 13,2 11,1 9,2 8,4 8,6 9,9 11,12 16,19 18,21 20,22 22,22 23,21 23,20`,o:13},{d:`M5,3 L4,2 5,1 6,2 6,4 5,6 4,7`,o:5},{d:`M11,-3 L9,-1 7,2 5,6 4,11 4,15 5,20 7,24 9,27 11,29`,o:7},{d:`M3,-3 L5,-1 7,2 9,6 10,11 10,15 9,20 7,24 5,27 3,29`,o:7},{d:`M8,7 L8,19 M3,10 L13,16 M13,10 L3,16`,o:8},{d:`M13,4 L13,22 M4,13 L22,13`,o:13},{d:`M5,18 L4,19 3,18 4,17 5,18 5,20 3,22`,o:4},{d:`M4,13 L22,13`,o:13},{d:`M4,17 L3,18 4,19 5,18 4,17`,o:4},{d:`M20,-3 L2,29`,o:11},{d:`M9,1 L6,2 4,5 3,10 3,13 4,18 6,21 9,22 11,22 14,21 16,18 17,13 17,10 16,5 14,2 11,1 9,1`,o:10},{d:`M6,5 L8,4 11,1 11,22`,o:10},{d:`M4,6 L4,5 5,3 6,2 8,1 12,1 14,2 15,3 16,5 16,7 15,9 13,12 3,22 17,22`,o:10},{d:`M5,1 L16,1 10,9 13,9 15,10 16,11 17,14 17,16 16,19 14,21 11,22 8,22 5,21 4,20 3,18`,o:10},{d:`M13,1 L3,15 18,15 M13,1 L13,22`,o:10},{d:`M15,1 L5,1 4,10 5,9 8,8 11,8 14,9 16,11 17,14 17,16 16,19 14,21 11,22 8,22 5,21 4,20 3,18`,o:10},{d:`M16,4 L15,2 12,1 10,1 7,2 5,5 4,10 4,15 5,19 7,21 10,22 11,22 14,21 16,19 17,16 17,15 16,12 14,10 11,9 10,9 7,10 5,12 4,15`,o:10},{d:`M17,1 L7,22 M3,1 L17,1`,o:10},{d:`M8,1 L5,2 4,4 4,6 5,8 7,9 11,10 14,11 16,13 17,15 17,18 16,20 15,21 12,22 8,22 5,21 4,20 3,18 3,15 4,13 6,11 9,10 13,9 15,8 16,6 16,4 15,2 12,1 8,1`,o:10},{d:`M16,8 L15,11 13,13 10,14 9,14 6,13 4,11 3,8 3,7 4,4 6,2 9,1 10,1 13,2 15,4 16,8 16,13 15,18 13,21 10,22 8,22 5,21 4,19`,o:10},{d:`M4,10 L3,11 4,12 5,11 4,10 M4,17 L3,18 4,19 5,18 4,17`,o:4},{d:`M4,10 L3,11 4,12 5,11 4,10 M5,18 L4,19 3,18 4,17 5,18 5,20 3,22`,o:4},{d:`M20,4 L4,13 20,22`,o:12},{d:`M4,10 L22,10 M4,16 L22,16`,o:13},{d:`M4,4 L20,13 4,22`,o:12},{d:`M3,6 L3,5 4,3 5,2 7,1 11,1 13,2 14,3 15,5 15,7 14,9 13,10 9,12 9,15 M9,20 L8,21 9,22 10,21 9,20`,o:9},{d:`M18,9 L17,7 15,6 12,6 10,7 9,8 8,11 8,14 9,16 11,17 14,17 16,16 17,14 M12,6 L10,8 9,11 9,14 10,16 11,17 M18,6 L17,14 17,16 19,17 21,17 23,15 24,12 24,10 23,7 22,5 20,3 18,2 15,1 12,1 9,2 7,3 5,5 4,7 3,10 3,13 4,16 5,18 7,20 9,21 12,22 15,22 18,21 20,20 21,19 M19,6 L18,14 18,16 19,17`,o:14},{d:`M9,1 L1,22 M9,1 L17,22 M4,15 L14,15`,o:9},{d:`M4,1 L4,22 M4,1 L13,1 16,2 17,3 18,5 18,7 17,9 16,10 13,11 M4,11 L13,11 16,12 17,13 18,15 18,18 17,20 16,21 13,22 4,22`,o:10},{d:`M18,6 L17,4 15,2 13,1 9,1 7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17`,o:11},{d:`M4,1 L4,22 M4,1 L11,1 14,2 16,4 17,6 18,9 18,14 17,17 16,19 14,21 11,22 4,22`,o:10},{d:`M4,1 L4,22 M4,1 L17,1 M4,11 L12,11 M4,22 L17,22`,o:9},{d:`M4,1 L4,22 M4,1 L17,1 M4,11 L12,11`,o:8},{d:`M18,6 L17,4 15,2 13,1 9,1 7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17 18,14 M13,14 L18,14`,o:11},{d:`M4,1 L4,22 M18,1 L18,22 M4,11 L18,11`,o:11},{d:`M4,1 L4,22`,o:4},{d:`M12,1 L12,17 11,20 10,21 8,22 6,22 4,21 3,20 2,17 2,15`,o:8},{d:`M4,1 L4,22 M18,1 L4,15 M9,10 L18,22`,o:10},{d:`M4,1 L4,22 M4,22 L16,22`,o:7},{d:`M4,1 L4,22 M4,1 L12,22 M20,1 L12,22 M20,1 L20,22`,o:12},{d:`M4,1 L4,22 M4,1 L18,22 M18,1 L18,22`,o:11},{d:`M9,1 L7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17 19,14 19,9 18,6 17,4 15,2 13,1 9,1`,o:11},{d:`M4,1 L4,22 M4,1 L13,1 16,2 17,3 18,5 18,8 17,10 16,11 13,12 4,12`,o:10},{d:`M9,1 L7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17 19,14 19,9 18,6 17,4 15,2 13,1 9,1 M12,18 L18,24`,o:11},{d:`M4,1 L4,22 M4,1 L13,1 16,2 17,3 18,5 18,7 17,9 16,10 13,11 4,11 M11,11 L18,22`,o:10},{d:`M17,4 L15,2 12,1 8,1 5,2 3,4 3,6 4,8 5,9 7,10 13,12 15,13 16,14 17,16 17,19 15,21 12,22 8,22 5,21 3,19`,o:10},{d:`M8,1 L8,22 M1,1 L15,1`,o:8},{d:`M4,1 L4,16 5,19 7,21 10,22 12,22 15,21 17,19 18,16 18,1`,o:11},{d:`M1,1 L9,22 M17,1 L9,22`,o:9},{d:`M2,1 L7,22 M12,1 L7,22 M12,1 L17,22 M22,1 L17,22`,o:12},{d:`M3,1 L17,22 M17,1 L3,22`,o:10},{d:`M1,1 L9,11 9,22 M17,1 L9,11`,o:9},{d:`M17,1 L3,22 M3,1 L17,1 M3,22 L17,22`,o:10},{d:`M4,-3 L4,29 M5,-3 L5,29 M4,-3 L11,-3 M4,29 L11,29`,o:7},{d:`M0,1 L14,25`,o:7},{d:`M9,-3 L9,29 M10,-3 L10,29 M3,-3 L10,-3 M3,29 L10,29`,o:7},{d:`M8,-1 L0,13 M8,-1 L16,13`,o:8},{d:`M0,29 L18,29`,o:9},{d:`M5,6 L3,8 3,10 4,11 5,10 4,9 3,10`,o:4},{d:`M15,8 L15,22 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M4,1 L4,22 M4,11 L6,9 8,8 11,8 13,9 15,11 16,14 16,16 15,19 13,21 11,22 8,22 6,21 4,19`,o:9},{d:`M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:9},{d:`M15,1 L15,22 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M3,14 L15,14 15,12 14,10 13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:9},{d:`M10,1 L8,1 6,2 5,5 5,22 M2,8 L9,8`,o:7},{d:`M15,8 L15,24 14,27 13,28 11,29 8,29 6,28 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M4,1 L4,22 M4,12 L7,9 9,8 12,8 14,9 15,12 15,22`,o:10},{d:`M3,1 L4,2 5,1 4,0 3,1 M4,8 L4,22`,o:4},{d:`M5,1 L6,2 7,1 6,0 5,1 M6,8 L6,25 5,28 3,29 1,29`,o:5},{d:`M4,1 L4,22 M14,8 L4,18 M8,14 L15,22`,o:8},{d:`M4,1 L4,22`,o:4},{d:`M4,8 L4,22 M4,12 L7,9 9,8 12,8 14,9 15,12 15,22 M15,12 L18,9 20,8 23,8 25,9 26,12 26,22`,o:15},{d:`M4,8 L4,22 M4,12 L7,9 9,8 12,8 14,9 15,12 15,22`,o:10},{d:`M8,8 L6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19 16,16 16,14 15,11 13,9 11,8 8,8`,o:10},{d:`M4,8 L4,29 M4,11 L6,9 8,8 11,8 13,9 15,11 16,14 16,16 15,19 13,21 11,22 8,22 6,21 4,19`,o:9},{d:`M15,8 L15,29 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M4,8 L4,22 M4,14 L5,11 7,9 9,8 12,8`,o:6},{d:`M14,11 L13,9 10,8 7,8 4,9 3,11 4,13 6,14 11,15 13,16 14,18 14,19 13,21 10,22 7,22 4,21 3,19`,o:9},{d:`M5,1 L5,18 6,21 8,22 10,22 M2,8 L9,8`,o:7},{d:`M4,8 L4,18 5,21 7,22 10,22 12,21 15,18 M15,8 L15,22`,o:10},{d:`M2,8 L8,22 M14,8 L8,22`,o:8},{d:`M3,8 L7,22 M11,8 L7,22 M11,8 L15,22 M19,8 L15,22`,o:11},{d:`M3,8 L14,22 M14,8 L3,22`,o:9},{d:`M2,8 L8,22 M14,8 L8,22 6,26 4,28 2,29 1,29`,o:8},{d:`M14,8 L3,22 M3,8 L14,8 M3,22 L14,22`,o:9},{d:`M9,-3 L7,-2 6,-1 5,1 5,3 6,5 7,6 8,8 8,10 6,12 M7,-2 L6,0 6,2 7,4 8,5 9,7 9,9 8,11 4,13 8,15 9,17 9,19 8,21 7,22 6,24 6,26 7,28 M6,14 L8,16 8,18 7,20 6,21 5,23 5,25 6,27 7,28 9,29`,o:7},{d:`M4,-3 L4,29`,o:4},{d:`M5,-3 L7,-2 8,-1 9,1 9,3 8,5 7,6 6,8 6,10 8,12 M7,-2 L8,0 8,2 7,4 6,5 5,7 5,9 6,11 10,13 6,15 5,17 5,19 6,21 7,22 8,24 8,26 7,28 M8,14 L6,16 6,18 7,20 8,21 9,23 9,25 8,27 7,28 5,29`,o:7},{d:`M3,16 L3,14 4,11 6,10 8,10 10,11 14,14 16,15 18,15 20,14 21,12 M3,14 L4,12 6,11 8,11 10,12 14,15 16,16 18,16 20,15 21,12 21,10`,o:12},{d:`M0,1 L0,22 1,22 1,1 2,1 2,22 3,22 3,1 4,1 4,22 5,22 5,1 6,1 6,22 7,22 7,1 8,1 8,22 9,22 9,1 10,1 10,22 11,22 11,1 12,1 12,22 13,22 13,1 14,1 14,22 15,22 15,1 16,1 16,22`,o:8}]},cachedMap=null;function parseHersheyPath(d){let polylines=[],cur=null;for(let tok of d.trim().split(/\s+/)){let s=tok,cmd=``;(s[0]===`M`||s[0]===`L`)&&(cmd=s[0],s=s.slice(1));let comma=s.indexOf(`,`);if(comma<0)continue;let x=parseFloat(s.slice(0,comma)),y=parseFloat(s.slice(comma+1));Number.isNaN(x)||Number.isNaN(y)||(cmd===`M`?(cur=[[x,y]],polylines.push(cur)):cur?cur.push([x,y]):(cur=[[x,y]],polylines.push(cur)))}return polylines}function loadHersheyFont(data=FUTURAL){if(cachedMap&&data===FUTURAL)return cachedMap;if(!data||!Array.isArray(data.chars))return null;let rawGlyphs=data.chars.map(c=>({polylines:parseHersheyPath(c.d||``),o:c.o})),capTop=1/0,baseline=-1/0,measure=code=>{let g=rawGlyphs[code-33];if(!g)return!1;let found=!1;for(let pl of g.polylines)for(let p of pl)p[1]<capTop&&(capTop=p[1]),p[1]>baseline&&(baseline=p[1]),found=!0;return found};measure(72)||measure(69)||measure(88)||measure(73),(!Number.isFinite(capTop)||!Number.isFinite(baseline)||baseline<=capTop)&&(capTop=4,baseline=21);let capHeight=baseline-capTop,gap=capHeight*.14,map=new Map;for(let i=0;i<rawGlyphs.length;i++){let g=rawGlyphs[i],minX=1/0,maxX=-1/0;for(let pl of g.polylines)for(let p of pl)p[0]<minX&&(minX=p[0]),p[0]>maxX&&(maxX=p[0]);let hasPoints=Number.isFinite(minX),left=hasPoints?minX:0,width=hasPoints?maxX-minX:g.o,polylines=g.polylines.map(pl=>pl.map(([x,y])=>[(x-left)/capHeight,(baseline-y)/capHeight]));map.set(33+i,{polylines,advance:(width+gap)/capHeight})}return data===FUTURAL&&(cachedMap=map),map}exports.loadHersheyFont=loadHersheyFont;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,4 +335,4 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */var e={name:`Sans 1-stroke`,chars:[{d:`M5,1 L5,15 M5,20 L4,21 5,22 6,21 5,20`,o:5},{d:`M4,1 L4,8 M12,1 L12,8`,o:8},{d:`M11,-3 L4,29 M17,-3 L10,29 M4,10 L18,10 M3,16 L17,16`,o:11},{d:`M8,-3 L8,26 M12,-3 L12,26 M17,4 L15,2 12,1 8,1 5,2 3,4 3,6 4,8 5,9 7,10 13,12 15,13 16,14 17,16 17,19 15,21 12,22 8,22 5,21 3,19`,o:10},{d:`M21,1 L3,22 M8,1 L10,3 10,5 9,7 7,8 5,8 3,6 3,4 4,2 6,1 8,1 10,2 13,3 16,3 19,2 21,1 M17,15 L15,16 14,18 14,20 16,22 18,22 20,21 21,19 21,17 19,15 17,15`,o:12},{d:`M23,10 L23,9 22,8 21,8 20,9 19,11 17,16 15,19 13,21 11,22 7,22 5,21 4,20 3,18 3,16 4,14 5,13 12,9 13,8 14,6 14,4 13,2 11,1 9,2 8,4 8,6 9,9 11,12 16,19 18,21 20,22 22,22 23,21 23,20`,o:13},{d:`M5,3 L4,2 5,1 6,2 6,4 5,6 4,7`,o:5},{d:`M11,-3 L9,-1 7,2 5,6 4,11 4,15 5,20 7,24 9,27 11,29`,o:7},{d:`M3,-3 L5,-1 7,2 9,6 10,11 10,15 9,20 7,24 5,27 3,29`,o:7},{d:`M8,7 L8,19 M3,10 L13,16 M13,10 L3,16`,o:8},{d:`M13,4 L13,22 M4,13 L22,13`,o:13},{d:`M5,18 L4,19 3,18 4,17 5,18 5,20 3,22`,o:4},{d:`M4,13 L22,13`,o:13},{d:`M4,17 L3,18 4,19 5,18 4,17`,o:4},{d:`M20,-3 L2,29`,o:11},{d:`M9,1 L6,2 4,5 3,10 3,13 4,18 6,21 9,22 11,22 14,21 16,18 17,13 17,10 16,5 14,2 11,1 9,1`,o:10},{d:`M6,5 L8,4 11,1 11,22`,o:10},{d:`M4,6 L4,5 5,3 6,2 8,1 12,1 14,2 15,3 16,5 16,7 15,9 13,12 3,22 17,22`,o:10},{d:`M5,1 L16,1 10,9 13,9 15,10 16,11 17,14 17,16 16,19 14,21 11,22 8,22 5,21 4,20 3,18`,o:10},{d:`M13,1 L3,15 18,15 M13,1 L13,22`,o:10},{d:`M15,1 L5,1 4,10 5,9 8,8 11,8 14,9 16,11 17,14 17,16 16,19 14,21 11,22 8,22 5,21 4,20 3,18`,o:10},{d:`M16,4 L15,2 12,1 10,1 7,2 5,5 4,10 4,15 5,19 7,21 10,22 11,22 14,21 16,19 17,16 17,15 16,12 14,10 11,9 10,9 7,10 5,12 4,15`,o:10},{d:`M17,1 L7,22 M3,1 L17,1`,o:10},{d:`M8,1 L5,2 4,4 4,6 5,8 7,9 11,10 14,11 16,13 17,15 17,18 16,20 15,21 12,22 8,22 5,21 4,20 3,18 3,15 4,13 6,11 9,10 13,9 15,8 16,6 16,4 15,2 12,1 8,1`,o:10},{d:`M16,8 L15,11 13,13 10,14 9,14 6,13 4,11 3,8 3,7 4,4 6,2 9,1 10,1 13,2 15,4 16,8 16,13 15,18 13,21 10,22 8,22 5,21 4,19`,o:10},{d:`M4,10 L3,11 4,12 5,11 4,10 M4,17 L3,18 4,19 5,18 4,17`,o:4},{d:`M4,10 L3,11 4,12 5,11 4,10 M5,18 L4,19 3,18 4,17 5,18 5,20 3,22`,o:4},{d:`M20,4 L4,13 20,22`,o:12},{d:`M4,10 L22,10 M4,16 L22,16`,o:13},{d:`M4,4 L20,13 4,22`,o:12},{d:`M3,6 L3,5 4,3 5,2 7,1 11,1 13,2 14,3 15,5 15,7 14,9 13,10 9,12 9,15 M9,20 L8,21 9,22 10,21 9,20`,o:9},{d:`M18,9 L17,7 15,6 12,6 10,7 9,8 8,11 8,14 9,16 11,17 14,17 16,16 17,14 M12,6 L10,8 9,11 9,14 10,16 11,17 M18,6 L17,14 17,16 19,17 21,17 23,15 24,12 24,10 23,7 22,5 20,3 18,2 15,1 12,1 9,2 7,3 5,5 4,7 3,10 3,13 4,16 5,18 7,20 9,21 12,22 15,22 18,21 20,20 21,19 M19,6 L18,14 18,16 19,17`,o:14},{d:`M9,1 L1,22 M9,1 L17,22 M4,15 L14,15`,o:9},{d:`M4,1 L4,22 M4,1 L13,1 16,2 17,3 18,5 18,7 17,9 16,10 13,11 M4,11 L13,11 16,12 17,13 18,15 18,18 17,20 16,21 13,22 4,22`,o:10},{d:`M18,6 L17,4 15,2 13,1 9,1 7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17`,o:11},{d:`M4,1 L4,22 M4,1 L11,1 14,2 16,4 17,6 18,9 18,14 17,17 16,19 14,21 11,22 4,22`,o:10},{d:`M4,1 L4,22 M4,1 L17,1 M4,11 L12,11 M4,22 L17,22`,o:9},{d:`M4,1 L4,22 M4,1 L17,1 M4,11 L12,11`,o:8},{d:`M18,6 L17,4 15,2 13,1 9,1 7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17 18,14 M13,14 L18,14`,o:11},{d:`M4,1 L4,22 M18,1 L18,22 M4,11 L18,11`,o:11},{d:`M4,1 L4,22`,o:4},{d:`M12,1 L12,17 11,20 10,21 8,22 6,22 4,21 3,20 2,17 2,15`,o:8},{d:`M4,1 L4,22 M18,1 L4,15 M9,10 L18,22`,o:10},{d:`M4,1 L4,22 M4,22 L16,22`,o:7},{d:`M4,1 L4,22 M4,1 L12,22 M20,1 L12,22 M20,1 L20,22`,o:12},{d:`M4,1 L4,22 M4,1 L18,22 M18,1 L18,22`,o:11},{d:`M9,1 L7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17 19,14 19,9 18,6 17,4 15,2 13,1 9,1`,o:11},{d:`M4,1 L4,22 M4,1 L13,1 16,2 17,3 18,5 18,8 17,10 16,11 13,12 4,12`,o:10},{d:`M9,1 L7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17 19,14 19,9 18,6 17,4 15,2 13,1 9,1 M12,18 L18,24`,o:11},{d:`M4,1 L4,22 M4,1 L13,1 16,2 17,3 18,5 18,7 17,9 16,10 13,11 4,11 M11,11 L18,22`,o:10},{d:`M17,4 L15,2 12,1 8,1 5,2 3,4 3,6 4,8 5,9 7,10 13,12 15,13 16,14 17,16 17,19 15,21 12,22 8,22 5,21 3,19`,o:10},{d:`M8,1 L8,22 M1,1 L15,1`,o:8},{d:`M4,1 L4,16 5,19 7,21 10,22 12,22 15,21 17,19 18,16 18,1`,o:11},{d:`M1,1 L9,22 M17,1 L9,22`,o:9},{d:`M2,1 L7,22 M12,1 L7,22 M12,1 L17,22 M22,1 L17,22`,o:12},{d:`M3,1 L17,22 M17,1 L3,22`,o:10},{d:`M1,1 L9,11 9,22 M17,1 L9,11`,o:9},{d:`M17,1 L3,22 M3,1 L17,1 M3,22 L17,22`,o:10},{d:`M4,-3 L4,29 M5,-3 L5,29 M4,-3 L11,-3 M4,29 L11,29`,o:7},{d:`M0,1 L14,25`,o:7},{d:`M9,-3 L9,29 M10,-3 L10,29 M3,-3 L10,-3 M3,29 L10,29`,o:7},{d:`M8,-1 L0,13 M8,-1 L16,13`,o:8},{d:`M0,29 L18,29`,o:9},{d:`M5,6 L3,8 3,10 4,11 5,10 4,9 3,10`,o:4},{d:`M15,8 L15,22 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M4,1 L4,22 M4,11 L6,9 8,8 11,8 13,9 15,11 16,14 16,16 15,19 13,21 11,22 8,22 6,21 4,19`,o:9},{d:`M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:9},{d:`M15,1 L15,22 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M3,14 L15,14 15,12 14,10 13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:9},{d:`M10,1 L8,1 6,2 5,5 5,22 M2,8 L9,8`,o:7},{d:`M15,8 L15,24 14,27 13,28 11,29 8,29 6,28 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M4,1 L4,22 M4,12 L7,9 9,8 12,8 14,9 15,12 15,22`,o:10},{d:`M3,1 L4,2 5,1 4,0 3,1 M4,8 L4,22`,o:4},{d:`M5,1 L6,2 7,1 6,0 5,1 M6,8 L6,25 5,28 3,29 1,29`,o:5},{d:`M4,1 L4,22 M14,8 L4,18 M8,14 L15,22`,o:8},{d:`M4,1 L4,22`,o:4},{d:`M4,8 L4,22 M4,12 L7,9 9,8 12,8 14,9 15,12 15,22 M15,12 L18,9 20,8 23,8 25,9 26,12 26,22`,o:15},{d:`M4,8 L4,22 M4,12 L7,9 9,8 12,8 14,9 15,12 15,22`,o:10},{d:`M8,8 L6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19 16,16 16,14 15,11 13,9 11,8 8,8`,o:10},{d:`M4,8 L4,29 M4,11 L6,9 8,8 11,8 13,9 15,11 16,14 16,16 15,19 13,21 11,22 8,22 6,21 4,19`,o:9},{d:`M15,8 L15,29 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M4,8 L4,22 M4,14 L5,11 7,9 9,8 12,8`,o:6},{d:`M14,11 L13,9 10,8 7,8 4,9 3,11 4,13 6,14 11,15 13,16 14,18 14,19 13,21 10,22 7,22 4,21 3,19`,o:9},{d:`M5,1 L5,18 6,21 8,22 10,22 M2,8 L9,8`,o:7},{d:`M4,8 L4,18 5,21 7,22 10,22 12,21 15,18 M15,8 L15,22`,o:10},{d:`M2,8 L8,22 M14,8 L8,22`,o:8},{d:`M3,8 L7,22 M11,8 L7,22 M11,8 L15,22 M19,8 L15,22`,o:11},{d:`M3,8 L14,22 M14,8 L3,22`,o:9},{d:`M2,8 L8,22 M14,8 L8,22 6,26 4,28 2,29 1,29`,o:8},{d:`M14,8 L3,22 M3,8 L14,8 M3,22 L14,22`,o:9},{d:`M9,-3 L7,-2 6,-1 5,1 5,3 6,5 7,6 8,8 8,10 6,12 M7,-2 L6,0 6,2 7,4 8,5 9,7 9,9 8,11 4,13 8,15 9,17 9,19 8,21 7,22 6,24 6,26 7,28 M6,14 L8,16 8,18 7,20 6,21 5,23 5,25 6,27 7,28 9,29`,o:7},{d:`M4,-3 L4,29`,o:4},{d:`M5,-3 L7,-2 8,-1 9,1 9,3 8,5 7,6 6,8 6,10 8,12 M7,-2 L8,0 8,2 7,4 6,5 5,7 5,9 6,11 10,13 6,15 5,17 5,19 6,21 7,22 8,24 8,26 7,28 M8,14 L6,16 6,18 7,20 8,21 9,23 9,25 8,27 7,28 5,29`,o:7},{d:`M3,16 L3,14 4,11 6,10 8,10 10,11 14,14 16,15 18,15 20,14 21,12 M3,14 L4,12 6,11 8,11 10,12 14,15 16,16 18,16 20,15 21,12 21,10`,o:12},{d:`M0,1 L0,22 1,22 1,1 2,1 2,22 3,22 3,1 4,1 4,22 5,22 5,1 6,1 6,22 7,22 7,1 8,1 8,22 9,22 9,1 10,1 10,22 11,22 11,1 12,1 12,22 13,22 13,1 14,1 14,22 15,22 15,1 16,1 16,22`,o:8}]},t=null;function n(e){let t=[],n=null;for(let r of e.trim().split(/\s+/)){let e=r,i=``;(e[0]===`M`||e[0]===`L`)&&(i=e[0],e=e.slice(1));let a=e.indexOf(`,`);if(a<0)continue;let o=parseFloat(e.slice(0,a)),s=parseFloat(e.slice(a+1));Number.isNaN(o)||Number.isNaN(s)||(i===`M`?(n=[[o,s]],t.push(n)):n?n.push([o,s]):(n=[[o,s]],t.push(n)))}return t}function r(r=e){if(t&&r===e)return t;if(!r||!Array.isArray(r.chars))return null;let i=r.chars.map(e=>({polylines:n(e.d||``),o:e.o})),a=1/0,o=-1/0,s=e=>{let t=i[e-33];if(!t)return!1;let n=!1;for(let e of t.polylines)for(let t of e)t[1]<a&&(a=t[1]),t[1]>o&&(o=t[1]),n=!0;return n};s(72)||s(69)||s(88)||s(73),(!Number.isFinite(a)||!Number.isFinite(o)||o<=a)&&(a=4,o=21);let c=o-a,l=c*.14,u=new Map;for(let e=0;e<i.length;e++){let t=i[e],n=1/0,r=-1/0;for(let e of t.polylines)for(let t of e)t[0]<n&&(n=t[0]),t[0]>r&&(r=t[0]);let a=Number.isFinite(n),s=a?n:0,d=a?r-n:t.o,f=t.polylines.map(e=>e.map(([e,t])=>[(e-s)/c,(o-t)/c]));u.set(33+e,{polylines:f,advance:(d+l)/c})}return r===e&&(t=u),u}export{r as loadHersheyFont};
338
+ */var FUTURAL={name:`Sans 1-stroke`,chars:[{d:`M5,1 L5,15 M5,20 L4,21 5,22 6,21 5,20`,o:5},{d:`M4,1 L4,8 M12,1 L12,8`,o:8},{d:`M11,-3 L4,29 M17,-3 L10,29 M4,10 L18,10 M3,16 L17,16`,o:11},{d:`M8,-3 L8,26 M12,-3 L12,26 M17,4 L15,2 12,1 8,1 5,2 3,4 3,6 4,8 5,9 7,10 13,12 15,13 16,14 17,16 17,19 15,21 12,22 8,22 5,21 3,19`,o:10},{d:`M21,1 L3,22 M8,1 L10,3 10,5 9,7 7,8 5,8 3,6 3,4 4,2 6,1 8,1 10,2 13,3 16,3 19,2 21,1 M17,15 L15,16 14,18 14,20 16,22 18,22 20,21 21,19 21,17 19,15 17,15`,o:12},{d:`M23,10 L23,9 22,8 21,8 20,9 19,11 17,16 15,19 13,21 11,22 7,22 5,21 4,20 3,18 3,16 4,14 5,13 12,9 13,8 14,6 14,4 13,2 11,1 9,2 8,4 8,6 9,9 11,12 16,19 18,21 20,22 22,22 23,21 23,20`,o:13},{d:`M5,3 L4,2 5,1 6,2 6,4 5,6 4,7`,o:5},{d:`M11,-3 L9,-1 7,2 5,6 4,11 4,15 5,20 7,24 9,27 11,29`,o:7},{d:`M3,-3 L5,-1 7,2 9,6 10,11 10,15 9,20 7,24 5,27 3,29`,o:7},{d:`M8,7 L8,19 M3,10 L13,16 M13,10 L3,16`,o:8},{d:`M13,4 L13,22 M4,13 L22,13`,o:13},{d:`M5,18 L4,19 3,18 4,17 5,18 5,20 3,22`,o:4},{d:`M4,13 L22,13`,o:13},{d:`M4,17 L3,18 4,19 5,18 4,17`,o:4},{d:`M20,-3 L2,29`,o:11},{d:`M9,1 L6,2 4,5 3,10 3,13 4,18 6,21 9,22 11,22 14,21 16,18 17,13 17,10 16,5 14,2 11,1 9,1`,o:10},{d:`M6,5 L8,4 11,1 11,22`,o:10},{d:`M4,6 L4,5 5,3 6,2 8,1 12,1 14,2 15,3 16,5 16,7 15,9 13,12 3,22 17,22`,o:10},{d:`M5,1 L16,1 10,9 13,9 15,10 16,11 17,14 17,16 16,19 14,21 11,22 8,22 5,21 4,20 3,18`,o:10},{d:`M13,1 L3,15 18,15 M13,1 L13,22`,o:10},{d:`M15,1 L5,1 4,10 5,9 8,8 11,8 14,9 16,11 17,14 17,16 16,19 14,21 11,22 8,22 5,21 4,20 3,18`,o:10},{d:`M16,4 L15,2 12,1 10,1 7,2 5,5 4,10 4,15 5,19 7,21 10,22 11,22 14,21 16,19 17,16 17,15 16,12 14,10 11,9 10,9 7,10 5,12 4,15`,o:10},{d:`M17,1 L7,22 M3,1 L17,1`,o:10},{d:`M8,1 L5,2 4,4 4,6 5,8 7,9 11,10 14,11 16,13 17,15 17,18 16,20 15,21 12,22 8,22 5,21 4,20 3,18 3,15 4,13 6,11 9,10 13,9 15,8 16,6 16,4 15,2 12,1 8,1`,o:10},{d:`M16,8 L15,11 13,13 10,14 9,14 6,13 4,11 3,8 3,7 4,4 6,2 9,1 10,1 13,2 15,4 16,8 16,13 15,18 13,21 10,22 8,22 5,21 4,19`,o:10},{d:`M4,10 L3,11 4,12 5,11 4,10 M4,17 L3,18 4,19 5,18 4,17`,o:4},{d:`M4,10 L3,11 4,12 5,11 4,10 M5,18 L4,19 3,18 4,17 5,18 5,20 3,22`,o:4},{d:`M20,4 L4,13 20,22`,o:12},{d:`M4,10 L22,10 M4,16 L22,16`,o:13},{d:`M4,4 L20,13 4,22`,o:12},{d:`M3,6 L3,5 4,3 5,2 7,1 11,1 13,2 14,3 15,5 15,7 14,9 13,10 9,12 9,15 M9,20 L8,21 9,22 10,21 9,20`,o:9},{d:`M18,9 L17,7 15,6 12,6 10,7 9,8 8,11 8,14 9,16 11,17 14,17 16,16 17,14 M12,6 L10,8 9,11 9,14 10,16 11,17 M18,6 L17,14 17,16 19,17 21,17 23,15 24,12 24,10 23,7 22,5 20,3 18,2 15,1 12,1 9,2 7,3 5,5 4,7 3,10 3,13 4,16 5,18 7,20 9,21 12,22 15,22 18,21 20,20 21,19 M19,6 L18,14 18,16 19,17`,o:14},{d:`M9,1 L1,22 M9,1 L17,22 M4,15 L14,15`,o:9},{d:`M4,1 L4,22 M4,1 L13,1 16,2 17,3 18,5 18,7 17,9 16,10 13,11 M4,11 L13,11 16,12 17,13 18,15 18,18 17,20 16,21 13,22 4,22`,o:10},{d:`M18,6 L17,4 15,2 13,1 9,1 7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17`,o:11},{d:`M4,1 L4,22 M4,1 L11,1 14,2 16,4 17,6 18,9 18,14 17,17 16,19 14,21 11,22 4,22`,o:10},{d:`M4,1 L4,22 M4,1 L17,1 M4,11 L12,11 M4,22 L17,22`,o:9},{d:`M4,1 L4,22 M4,1 L17,1 M4,11 L12,11`,o:8},{d:`M18,6 L17,4 15,2 13,1 9,1 7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17 18,14 M13,14 L18,14`,o:11},{d:`M4,1 L4,22 M18,1 L18,22 M4,11 L18,11`,o:11},{d:`M4,1 L4,22`,o:4},{d:`M12,1 L12,17 11,20 10,21 8,22 6,22 4,21 3,20 2,17 2,15`,o:8},{d:`M4,1 L4,22 M18,1 L4,15 M9,10 L18,22`,o:10},{d:`M4,1 L4,22 M4,22 L16,22`,o:7},{d:`M4,1 L4,22 M4,1 L12,22 M20,1 L12,22 M20,1 L20,22`,o:12},{d:`M4,1 L4,22 M4,1 L18,22 M18,1 L18,22`,o:11},{d:`M9,1 L7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17 19,14 19,9 18,6 17,4 15,2 13,1 9,1`,o:11},{d:`M4,1 L4,22 M4,1 L13,1 16,2 17,3 18,5 18,8 17,10 16,11 13,12 4,12`,o:10},{d:`M9,1 L7,2 5,4 4,6 3,9 3,14 4,17 5,19 7,21 9,22 13,22 15,21 17,19 18,17 19,14 19,9 18,6 17,4 15,2 13,1 9,1 M12,18 L18,24`,o:11},{d:`M4,1 L4,22 M4,1 L13,1 16,2 17,3 18,5 18,7 17,9 16,10 13,11 4,11 M11,11 L18,22`,o:10},{d:`M17,4 L15,2 12,1 8,1 5,2 3,4 3,6 4,8 5,9 7,10 13,12 15,13 16,14 17,16 17,19 15,21 12,22 8,22 5,21 3,19`,o:10},{d:`M8,1 L8,22 M1,1 L15,1`,o:8},{d:`M4,1 L4,16 5,19 7,21 10,22 12,22 15,21 17,19 18,16 18,1`,o:11},{d:`M1,1 L9,22 M17,1 L9,22`,o:9},{d:`M2,1 L7,22 M12,1 L7,22 M12,1 L17,22 M22,1 L17,22`,o:12},{d:`M3,1 L17,22 M17,1 L3,22`,o:10},{d:`M1,1 L9,11 9,22 M17,1 L9,11`,o:9},{d:`M17,1 L3,22 M3,1 L17,1 M3,22 L17,22`,o:10},{d:`M4,-3 L4,29 M5,-3 L5,29 M4,-3 L11,-3 M4,29 L11,29`,o:7},{d:`M0,1 L14,25`,o:7},{d:`M9,-3 L9,29 M10,-3 L10,29 M3,-3 L10,-3 M3,29 L10,29`,o:7},{d:`M8,-1 L0,13 M8,-1 L16,13`,o:8},{d:`M0,29 L18,29`,o:9},{d:`M5,6 L3,8 3,10 4,11 5,10 4,9 3,10`,o:4},{d:`M15,8 L15,22 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M4,1 L4,22 M4,11 L6,9 8,8 11,8 13,9 15,11 16,14 16,16 15,19 13,21 11,22 8,22 6,21 4,19`,o:9},{d:`M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:9},{d:`M15,1 L15,22 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M3,14 L15,14 15,12 14,10 13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:9},{d:`M10,1 L8,1 6,2 5,5 5,22 M2,8 L9,8`,o:7},{d:`M15,8 L15,24 14,27 13,28 11,29 8,29 6,28 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M4,1 L4,22 M4,12 L7,9 9,8 12,8 14,9 15,12 15,22`,o:10},{d:`M3,1 L4,2 5,1 4,0 3,1 M4,8 L4,22`,o:4},{d:`M5,1 L6,2 7,1 6,0 5,1 M6,8 L6,25 5,28 3,29 1,29`,o:5},{d:`M4,1 L4,22 M14,8 L4,18 M8,14 L15,22`,o:8},{d:`M4,1 L4,22`,o:4},{d:`M4,8 L4,22 M4,12 L7,9 9,8 12,8 14,9 15,12 15,22 M15,12 L18,9 20,8 23,8 25,9 26,12 26,22`,o:15},{d:`M4,8 L4,22 M4,12 L7,9 9,8 12,8 14,9 15,12 15,22`,o:10},{d:`M8,8 L6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19 16,16 16,14 15,11 13,9 11,8 8,8`,o:10},{d:`M4,8 L4,29 M4,11 L6,9 8,8 11,8 13,9 15,11 16,14 16,16 15,19 13,21 11,22 8,22 6,21 4,19`,o:9},{d:`M15,8 L15,29 M15,11 L13,9 11,8 8,8 6,9 4,11 3,14 3,16 4,19 6,21 8,22 11,22 13,21 15,19`,o:10},{d:`M4,8 L4,22 M4,14 L5,11 7,9 9,8 12,8`,o:6},{d:`M14,11 L13,9 10,8 7,8 4,9 3,11 4,13 6,14 11,15 13,16 14,18 14,19 13,21 10,22 7,22 4,21 3,19`,o:9},{d:`M5,1 L5,18 6,21 8,22 10,22 M2,8 L9,8`,o:7},{d:`M4,8 L4,18 5,21 7,22 10,22 12,21 15,18 M15,8 L15,22`,o:10},{d:`M2,8 L8,22 M14,8 L8,22`,o:8},{d:`M3,8 L7,22 M11,8 L7,22 M11,8 L15,22 M19,8 L15,22`,o:11},{d:`M3,8 L14,22 M14,8 L3,22`,o:9},{d:`M2,8 L8,22 M14,8 L8,22 6,26 4,28 2,29 1,29`,o:8},{d:`M14,8 L3,22 M3,8 L14,8 M3,22 L14,22`,o:9},{d:`M9,-3 L7,-2 6,-1 5,1 5,3 6,5 7,6 8,8 8,10 6,12 M7,-2 L6,0 6,2 7,4 8,5 9,7 9,9 8,11 4,13 8,15 9,17 9,19 8,21 7,22 6,24 6,26 7,28 M6,14 L8,16 8,18 7,20 6,21 5,23 5,25 6,27 7,28 9,29`,o:7},{d:`M4,-3 L4,29`,o:4},{d:`M5,-3 L7,-2 8,-1 9,1 9,3 8,5 7,6 6,8 6,10 8,12 M7,-2 L8,0 8,2 7,4 6,5 5,7 5,9 6,11 10,13 6,15 5,17 5,19 6,21 7,22 8,24 8,26 7,28 M8,14 L6,16 6,18 7,20 8,21 9,23 9,25 8,27 7,28 5,29`,o:7},{d:`M3,16 L3,14 4,11 6,10 8,10 10,11 14,14 16,15 18,15 20,14 21,12 M3,14 L4,12 6,11 8,11 10,12 14,15 16,16 18,16 20,15 21,12 21,10`,o:12},{d:`M0,1 L0,22 1,22 1,1 2,1 2,22 3,22 3,1 4,1 4,22 5,22 5,1 6,1 6,22 7,22 7,1 8,1 8,22 9,22 9,1 10,1 10,22 11,22 11,1 12,1 12,22 13,22 13,1 14,1 14,22 15,22 15,1 16,1 16,22`,o:8}]},cachedMap=null;function parseHersheyPath(d){let polylines=[],cur=null;for(let tok of d.trim().split(/\s+/)){let s=tok,cmd=``;(s[0]===`M`||s[0]===`L`)&&(cmd=s[0],s=s.slice(1));let comma=s.indexOf(`,`);if(comma<0)continue;let x=parseFloat(s.slice(0,comma)),y=parseFloat(s.slice(comma+1));Number.isNaN(x)||Number.isNaN(y)||(cmd===`M`?(cur=[[x,y]],polylines.push(cur)):cur?cur.push([x,y]):(cur=[[x,y]],polylines.push(cur)))}return polylines}function loadHersheyFont(data=FUTURAL){if(cachedMap&&data===FUTURAL)return cachedMap;if(!data||!Array.isArray(data.chars))return null;let rawGlyphs=data.chars.map(c=>({polylines:parseHersheyPath(c.d||``),o:c.o})),capTop=1/0,baseline=-1/0,measure=code=>{let g=rawGlyphs[code-33];if(!g)return!1;let found=!1;for(let pl of g.polylines)for(let p of pl)p[1]<capTop&&(capTop=p[1]),p[1]>baseline&&(baseline=p[1]),found=!0;return found};measure(72)||measure(69)||measure(88)||measure(73),(!Number.isFinite(capTop)||!Number.isFinite(baseline)||baseline<=capTop)&&(capTop=4,baseline=21);let capHeight=baseline-capTop,gap=capHeight*.14,map=new Map;for(let i=0;i<rawGlyphs.length;i++){let g=rawGlyphs[i],minX=1/0,maxX=-1/0;for(let pl of g.polylines)for(let p of pl)p[0]<minX&&(minX=p[0]),p[0]>maxX&&(maxX=p[0]);let hasPoints=Number.isFinite(minX),left=hasPoints?minX:0,width=hasPoints?maxX-minX:g.o,polylines=g.polylines.map(pl=>pl.map(([x,y])=>[(x-left)/capHeight,(baseline-y)/capHeight]));map.set(33+i,{polylines,advance:(width+gap)/capHeight})}return data===FUTURAL&&(cachedMap=map),map}export{loadHersheyFont};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
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("./hersheyFont.js"),t=require("./textToStrokeOrderStrokes.js"),n=require("./Controller.js");var r=(e,t)=>new n.Controller(e,t);exports.WordPassPlugin=r,exports.loadHersheyFont=e.loadHersheyFont,exports.textToStrokeOrderStrokes=t.textToStrokeOrderStrokes;
338
+ */const require_hersheyFont=require("./hersheyFont.js"),require_textToStrokeOrderStrokes=require("./textToStrokeOrderStrokes.js"),require_Controller=require("./Controller.js");var WordPassPlugin=(five,params)=>new require_Controller.Controller(five,params);exports.WordPassPlugin=WordPassPlugin,exports.loadHersheyFont=require_hersheyFont.loadHersheyFont,exports.textToStrokeOrderStrokes=require_textToStrokeOrderStrokes.textToStrokeOrderStrokes;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
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{loadHersheyFont as e}from"./hersheyFont.mjs";import{textToStrokeOrderStrokes as t}from"./textToStrokeOrderStrokes.mjs";import{Controller as n}from"./Controller.mjs";var r=(e,t)=>new n(e,t);export{r as WordPassPlugin,e as loadHersheyFont,t as textToStrokeOrderStrokes};
338
+ */import{loadHersheyFont}from"./hersheyFont.mjs";import{textToStrokeOrderStrokes}from"./textToStrokeOrderStrokes.mjs";import{Controller}from"./Controller.mjs";var WordPassPlugin=(five,params)=>new Controller(five,params);export{WordPassPlugin,loadHersheyFont,textToStrokeOrderStrokes};
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/10/30
5
- * Version: 1.0.0-alpha.13
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -335,5 +335,5 @@
335
335
  * writing and signed by Realsee. You and Realsee hereto confirm that this
336
336
  * Agreement and all related documents shall be drafted in English.
337
337
 
338
- */const e=require("../../_virtual/_rolldown/runtime.js"),t=require("./hersheyFont.js");let n=require("tslib"),r=require("three/webgpu");r=e.__toESM(r,1);var i=1024,a=`https://cdn.jsdelivr.net/npm/hanzi-writer-data@latest`;function o(e){let t=0;for(let n=1;n<e.length;n++)t+=e[n].distanceTo(e[n-1]);return t}var s=new Map;function c(e,t,r){return(0,n.__awaiter)(this,void 0,void 0,function*(){var n;if(s.has(e))return s.get(e);let i=null;try{if(t)i=(n=yield t(e))==null?null:n;else if(typeof fetch<`u`){let t=yield fetch(`${r}/${encodeURIComponent(e)}.json`);t.ok&&(i=yield t.json())}}catch(e){i=null}return s.set(e,i),i})}function l(e){return(0,n.__awaiter)(this,arguments,void 0,function*(e,n={}){var s;let{size:l=1,letterSpacing:d=0,lineSpacing:p=1.4,normal:m,up:h,center:g=!0,position:_,smooth:v=!0,smoothSubdivisions:y=4,cdnBaseUrl:b=a,charDataLoader:x,latinScale:S=.72}=n,C=t.loadHersheyFont(),w=[],T=0,E=0;for(let t of Array.from(e)){if(t===`
339
- `){T=0,E-=p;continue}if(t===` `){T+=.4+d;continue}let e=(s=t.codePointAt(0))==null?0:s;if(e>=33&&e<=126){let n=C==null?void 0:C.get(e);if(n){for(let e of n.polylines)e.length<2||w.push({pts:e.map(([e,t])=>new r.Vector2(T+e*S,E+t*S)),mode:`corner`});T+=n.advance*S+d;continue}console.warn(`textToStrokeOrderStrokes: 无法生成字符 "${t}"(非浏览器环境或字形为空),按空格处理`),T+=.5*S+d;continue}let n=yield c(t,x,b);if(n&&n.medians&&n.medians.length){for(let e of n.medians)e.length<2||w.push({pts:e.map(([e,t])=>new r.Vector2(T+e/i,E+t/i)),mode:`full`});T+=1+d}else console.warn(`textToStrokeOrderStrokes: 未找到 "${t}" 的笔画数据,按空格处理`),T+=1+d}if(w.length===0)return[];let D=1/0,O=1/0,k=-1/0,A=-1/0;for(let e of w)for(let t of e.pts)t.x<D&&(D=t.x),t.x>k&&(k=t.x),t.y<O&&(O=t.y),t.y>A&&(A=t.y);let j=g?(D+k)/2:0,M=g?(O+A)/2:0,N=_==null?new r.Vector3:_,P=(m==null?new r.Vector3(0,0,1):m).clone();P.lengthSq()<1e-9&&P.set(0,0,1),P.normalize();let F;if(h){let e=h.clone().addScaledVector(P,-h.dot(P));e.lengthSq()>1e-9&&(F=e.normalize())}let I;if(F)I=new r.Vector3().crossVectors(F,P).normalize();else{let e=Math.abs(P.y)>.99?new r.Vector3(0,0,-1):new r.Vector3(0,1,0);I=new r.Vector3().crossVectors(e,P).normalize(),F=new r.Vector3().crossVectors(P,I).normalize()}let L=e=>new r.Vector3().copy(N).addScaledVector(I,(e.x-j)*l).addScaledVector(F,(e.y-M)*l);return w.map(e=>{let t=e.pts.map(L);return v&&t.length>=2&&(t=e.mode===`corner`?f(t,y):u(t,y)),{points:t,totalLength:o(t)}})})}function u(e,t){return e.length<3?e:new r.CatmullRomCurve3(e,!1,`centripetal`).getPoints(Math.max(e.length*t,8))}var d=.2;function f(e,t){if(e.length<3)return e;let n=new r.Box3().setFromPoints(e),i=n.min.distanceTo(n.max),a=i>1e-9&&e[0].distanceTo(e[e.length-1])<i*.06,o=a?e.slice(0,-1):e,s=o.length;if(s<3)return e;let c=new r.Vector3,l=new r.Vector3,u=e=>{if(!a&&(e===0||e===s-1))return!0;let t=(e-1+s)%s,n=(e+1)%s;c.subVectors(o[e],o[t]),l.subVectors(o[n],o[e]);let r=c.length(),i=l.length();return r<1e-6||i<1e-6?!1:c.dot(l)/(r*i)<d},f=[];for(let e=0;e<s;e++)u(e)&&f.push(e);if(f.length===0)return new r.CatmullRomCurve3(o,a,`centripetal`).getPoints(Math.max(s*t,8));let p=(e,t)=>{let n=[],r=e;for(;n.push(o[r]),r!==t;)r=(r+1)%s;return n},m=f.length,h=a?m:m-1,g=[];for(let e=0;e<h;e++){let n=p(f[e],f[(e+1)%m]),i=n.length>=3?new r.CatmullRomCurve3(n,!1,`centripetal`).getPoints(Math.max((n.length-1)*t,2)):n;for(let t=0;t<i.length;t++)e>0&&t===0||g.push(i[t])}return g}exports.textToStrokeOrderStrokes=l;
338
+ */const require_runtime=require("../../_virtual/_rolldown/runtime.js"),require_hersheyFont=require("./hersheyFont.js");let tslib=require("tslib"),three_webgpu=require("three/webgpu");three_webgpu=require_runtime.__toESM(three_webgpu,1);var HANZI_EM=1024,DEFAULT_CDN=`https://cdn.jsdelivr.net/npm/hanzi-writer-data@latest`;function calculatePath3DLength(points){let length=0;for(let i=1;i<points.length;i++)length+=points[i].distanceTo(points[i-1]);return length}var cache=new Map;function loadHanzi(char,loader,cdnBaseUrl){return(0,tslib.__awaiter)(this,void 0,void 0,function*(){var _a;if(cache.has(char))return cache.get(char);let data=null;try{if(loader)data=(_a=yield loader(char))==null?null:_a;else if(typeof fetch<`u`){let res=yield fetch(`${cdnBaseUrl}/${encodeURIComponent(char)}.json`);res.ok&&(data=yield res.json())}}catch(_b){data=null}return cache.set(char,data),data})}function textToStrokeOrderStrokes(text_1){return(0,tslib.__awaiter)(this,arguments,void 0,function*(text,options={}){var _a;let{size=1,letterSpacing=0,lineSpacing=1.4,normal,up:upOption,center=!0,position,smooth=!0,smoothSubdivisions=4,cdnBaseUrl=DEFAULT_CDN,charDataLoader,latinScale=.72}=options,hershey=require_hersheyFont.loadHersheyFont(),raw=[],cursorX=0,cursorY=0;for(let ch of Array.from(text)){if(ch===`
339
+ `){cursorX=0,cursorY-=lineSpacing;continue}if(ch===` `){cursorX+=.4+letterSpacing;continue}let code=(_a=ch.codePointAt(0))==null?0:_a;if(code>=33&&code<=126){let hg=hershey==null?void 0:hershey.get(code);if(hg){for(let pl of hg.polylines)pl.length<2||raw.push({pts:pl.map(([x,y])=>new three_webgpu.Vector2(cursorX+x*latinScale,cursorY+y*latinScale)),mode:`corner`});cursorX+=hg.advance*latinScale+letterSpacing;continue}console.warn(`textToStrokeOrderStrokes: 无法生成字符 "${ch}"(非浏览器环境或字形为空),按空格处理`),cursorX+=.5*latinScale+letterSpacing;continue}let data=yield loadHanzi(ch,charDataLoader,cdnBaseUrl);if(data&&data.medians&&data.medians.length){for(let median of data.medians)median.length<2||raw.push({pts:median.map(([x,y])=>new three_webgpu.Vector2(cursorX+x/HANZI_EM,cursorY+y/HANZI_EM)),mode:`full`});cursorX+=1+letterSpacing}else console.warn(`textToStrokeOrderStrokes: 未找到 "${ch}" 的笔画数据,按空格处理`),cursorX+=1+letterSpacing}if(raw.length===0)return[];let minX=1/0,minY=1/0,maxX=-1/0,maxY=-1/0;for(let poly of raw)for(let p of poly.pts)p.x<minX&&(minX=p.x),p.x>maxX&&(maxX=p.x),p.y<minY&&(minY=p.y),p.y>maxY&&(maxY=p.y);let cx=center?(minX+maxX)/2:0,cy=center?(minY+maxY)/2:0,origin=position==null?new three_webgpu.Vector3:position,N=(normal==null?new three_webgpu.Vector3(0,0,1):normal).clone();N.lengthSq()<1e-9&&N.set(0,0,1),N.normalize();let up;if(upOption){let projected=upOption.clone().addScaledVector(N,-upOption.dot(N));projected.lengthSq()>1e-9&&(up=projected.normalize())}let right;if(up)right=new three_webgpu.Vector3().crossVectors(up,N).normalize();else{let ref=Math.abs(N.y)>.99?new three_webgpu.Vector3(0,0,-1):new three_webgpu.Vector3(0,1,0);right=new three_webgpu.Vector3().crossVectors(ref,N).normalize(),up=new three_webgpu.Vector3().crossVectors(N,right).normalize()}let toVec3=p=>new three_webgpu.Vector3().copy(origin).addScaledVector(right,(p.x-cx)*size).addScaledVector(up,(p.y-cy)*size);return raw.map(poly=>{let points=poly.pts.map(toVec3);return smooth&&points.length>=2&&(points=poly.mode===`corner`?smoothPreserveCorners(points,smoothSubdivisions):smoothFull(points,smoothSubdivisions)),{points,totalLength:calculatePath3DLength(points)}})})}function smoothFull(points,subdiv){return points.length<3?points:new three_webgpu.CatmullRomCurve3(points,!1,`centripetal`).getPoints(Math.max(points.length*subdiv,8))}var CORNER_COS=.2;function smoothPreserveCorners(points,subdiv){if(points.length<3)return points;let box=new three_webgpu.Box3().setFromPoints(points),diag=box.min.distanceTo(box.max),closed=diag>1e-9&&points[0].distanceTo(points[points.length-1])<diag*.06,pts=closed?points.slice(0,-1):points,n=pts.length;if(n<3)return points;let a=new three_webgpu.Vector3,b=new three_webgpu.Vector3,isCorner=i=>{if(!closed&&(i===0||i===n-1))return!0;let prev=(i-1+n)%n,next=(i+1)%n;a.subVectors(pts[i],pts[prev]),b.subVectors(pts[next],pts[i]);let la=a.length(),lb=b.length();return la<1e-6||lb<1e-6?!1:a.dot(b)/(la*lb)<CORNER_COS},corners=[];for(let i=0;i<n;i++)isCorner(i)&&corners.push(i);if(corners.length===0)return new three_webgpu.CatmullRomCurve3(pts,closed,`centripetal`).getPoints(Math.max(n*subdiv,8));let collectCyclic=(start,end)=>{let seg=[],i=start;for(;seg.push(pts[i]),i!==end;)i=(i+1)%n;return seg},m=corners.length,runCount=closed?m:m-1,out=[];for(let c=0;c<runCount;c++){let seg=collectCyclic(corners[c],corners[(c+1)%m]),smoothed=seg.length>=3?new three_webgpu.CatmullRomCurve3(seg,!1,`centripetal`).getPoints(Math.max((seg.length-1)*subdiv,2)):seg;for(let k=0;k<smoothed.length;k++)c>0&&k===0||out.push(smoothed[k])}return out}exports.textToStrokeOrderStrokes=textToStrokeOrderStrokes;