@hatiolab/things-scene 10.0.0-beta.11 → 10.0.0-beta.111

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 (385) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/dist-types/animation/animate.d.ts.map +1 -1
  3. package/dist-types/animation/animations/animation.d.ts +5 -3
  4. package/dist-types/animation/animations/animation.d.ts.map +1 -1
  5. package/dist-types/animation/animations/heartbeat.d.ts +0 -7
  6. package/dist-types/animation/animations/heartbeat.d.ts.map +1 -1
  7. package/dist-types/animation/animations/waypoint.d.ts +45 -4
  8. package/dist-types/animation/animations/waypoint.d.ts.map +1 -1
  9. package/dist-types/animation/interfaces.d.ts +1 -1
  10. package/dist-types/animation/interfaces.d.ts.map +1 -1
  11. package/dist-types/clock/frame-clock.d.ts +119 -0
  12. package/dist-types/clock/frame-clock.d.ts.map +1 -0
  13. package/dist-types/clock/index.d.ts +3 -0
  14. package/dist-types/clock/index.d.ts.map +1 -0
  15. package/dist-types/command/command-migrate.d.ts.map +1 -1
  16. package/dist-types/command/snapshot-commander.d.ts.map +1 -1
  17. package/dist-types/components/audio.d.ts +7 -3
  18. package/dist-types/components/audio.d.ts.map +1 -1
  19. package/dist-types/components/component-data.d.ts +24 -0
  20. package/dist-types/components/component-data.d.ts.map +1 -1
  21. package/dist-types/components/component-geometry.d.ts.map +1 -1
  22. package/dist-types/components/component.d.ts +14 -4
  23. package/dist-types/components/component.d.ts.map +1 -1
  24. package/dist-types/components/container-abstract.d.ts +48 -7
  25. package/dist-types/components/container-abstract.d.ts.map +1 -1
  26. package/dist-types/components/container.d.ts +6 -2
  27. package/dist-types/components/container.d.ts.map +1 -1
  28. package/dist-types/components/data/data.d.ts.map +1 -1
  29. package/dist-types/components/drawer/fill.d.ts.map +1 -1
  30. package/dist-types/components/drawer/stroke.d.ts.map +1 -1
  31. package/dist-types/components/ellipse.d.ts +7 -3
  32. package/dist-types/components/ellipse.d.ts.map +1 -1
  33. package/dist-types/components/generic-placeholders.d.ts +291 -0
  34. package/dist-types/components/generic-placeholders.d.ts.map +1 -0
  35. package/dist-types/components/geometry/snap-guide.d.ts +45 -0
  36. package/dist-types/components/geometry/snap-guide.d.ts.map +1 -0
  37. package/dist-types/components/geometry/transcoord.d.ts.map +1 -1
  38. package/dist-types/components/global-ref.d.ts.map +1 -1
  39. package/dist-types/components/group.d.ts +1 -0
  40. package/dist-types/components/group.d.ts.map +1 -1
  41. package/dist-types/components/html/shadow.d.ts +33 -1
  42. package/dist-types/components/html/shadow.d.ts.map +1 -1
  43. package/dist-types/components/html-overlay-container.d.ts +6 -2
  44. package/dist-types/components/html-overlay-container.d.ts.map +1 -1
  45. package/dist-types/components/html-overlay-element.d.ts +13 -5
  46. package/dist-types/components/html-overlay-element.d.ts.map +1 -1
  47. package/dist-types/components/image-view.d.ts +7 -3
  48. package/dist-types/components/image-view.d.ts.map +1 -1
  49. package/dist-types/components/index.d.ts +7 -0
  50. package/dist-types/components/index.d.ts.map +1 -1
  51. package/dist-types/components/info-window.d.ts +7 -3
  52. package/dist-types/components/info-window.d.ts.map +1 -1
  53. package/dist-types/components/line.d.ts +2 -1
  54. package/dist-types/components/line.d.ts.map +1 -1
  55. package/dist-types/components/local-ref.d.ts +7 -3
  56. package/dist-types/components/local-ref.d.ts.map +1 -1
  57. package/dist-types/components/mixins/connectable.d.ts +7 -3
  58. package/dist-types/components/mixins/connectable.d.ts.map +1 -1
  59. package/dist-types/components/mixins/data-source.d.ts +7 -3
  60. package/dist-types/components/mixins/data-source.d.ts.map +1 -1
  61. package/dist-types/components/mixins/gltf-component.d.ts +280 -0
  62. package/dist-types/components/mixins/gltf-component.d.ts.map +1 -0
  63. package/dist-types/components/mixins/html-element.d.ts +6 -2
  64. package/dist-types/components/mixins/html-element.d.ts.map +1 -1
  65. package/dist-types/components/mixins/move-handle.d.ts +7 -3
  66. package/dist-types/components/mixins/move-handle.d.ts.map +1 -1
  67. package/dist-types/components/mixins/rect-path.d.ts +7 -3
  68. package/dist-types/components/mixins/rect-path.d.ts.map +1 -1
  69. package/dist-types/components/mixins/three-d-only.d.ts +247 -0
  70. package/dist-types/components/mixins/three-d-only.d.ts.map +1 -0
  71. package/dist-types/components/mixins/value-holder.d.ts +7 -3
  72. package/dist-types/components/mixins/value-holder.d.ts.map +1 -1
  73. package/dist-types/components/mutater/path.d.ts.map +1 -1
  74. package/dist-types/components/node.d.ts +7 -3
  75. package/dist-types/components/node.d.ts.map +1 -1
  76. package/dist-types/components/outline/path-outline.d.ts.map +1 -1
  77. package/dist-types/components/polygon-container.d.ts +65 -0
  78. package/dist-types/components/polygon-container.d.ts.map +1 -0
  79. package/dist-types/components/polygon.d.ts +2 -0
  80. package/dist-types/components/polygon.d.ts.map +1 -1
  81. package/dist-types/components/polyline.d.ts.map +1 -1
  82. package/dist-types/components/popup-container.d.ts +25 -0
  83. package/dist-types/components/popup-container.d.ts.map +1 -0
  84. package/dist-types/components/popup.d.ts +37 -3
  85. package/dist-types/components/popup.d.ts.map +1 -1
  86. package/dist-types/components/position/popup-position.d.ts +11 -0
  87. package/dist-types/components/position/popup-position.d.ts.map +1 -1
  88. package/dist-types/components/rect.d.ts +14 -6
  89. package/dist-types/components/rect.d.ts.map +1 -1
  90. package/dist-types/components/retention/retention-manager.d.ts +9 -1
  91. package/dist-types/components/retention/retention-manager.d.ts.map +1 -1
  92. package/dist-types/components/root-container.d.ts +17 -4
  93. package/dist-types/components/root-container.d.ts.map +1 -1
  94. package/dist-types/components/ruler.d.ts +7 -3
  95. package/dist-types/components/ruler.d.ts.map +1 -1
  96. package/dist-types/components/service-component.d.ts +268 -0
  97. package/dist-types/components/service-component.d.ts.map +1 -0
  98. package/dist-types/components/shape.d.ts.map +1 -1
  99. package/dist-types/components/text.d.ts +7 -3
  100. package/dist-types/components/text.d.ts.map +1 -1
  101. package/dist-types/core/memoize.d.ts.map +1 -1
  102. package/dist-types/decorator/decorator-registry.d.ts +14 -1
  103. package/dist-types/decorator/decorator-registry.d.ts.map +1 -1
  104. package/dist-types/decorator/decorators/animated-icon-decorator.d.ts.map +1 -1
  105. package/dist-types/decorator/decorators/border-highlighting-decorator.d.ts.map +1 -1
  106. package/dist-types/decorator/decorators/data-spread-decorator.d.ts +16 -0
  107. package/dist-types/decorator/decorators/data-spread-decorator.d.ts.map +1 -1
  108. package/dist-types/diagnostics/contract-inspector.d.ts +103 -0
  109. package/dist-types/diagnostics/contract-inspector.d.ts.map +1 -0
  110. package/dist-types/diagnostics/data-lag-tracker.d.ts +44 -0
  111. package/dist-types/diagnostics/data-lag-tracker.d.ts.map +1 -0
  112. package/dist-types/diagnostics/inspector.d.ts +58 -4
  113. package/dist-types/diagnostics/inspector.d.ts.map +1 -1
  114. package/dist-types/diagnostics/load-tracker.d.ts +82 -0
  115. package/dist-types/diagnostics/load-tracker.d.ts.map +1 -0
  116. package/dist-types/diagnostics/loading-overlay.d.ts +41 -0
  117. package/dist-types/diagnostics/loading-overlay.d.ts.map +1 -0
  118. package/dist-types/diagnostics/metrics.d.ts +10 -0
  119. package/dist-types/diagnostics/metrics.d.ts.map +1 -1
  120. package/dist-types/effect/shadow.d.ts +3 -1
  121. package/dist-types/effect/shadow.d.ts.map +1 -1
  122. package/dist-types/event-map/index.d.ts +1 -0
  123. package/dist-types/event-map/index.d.ts.map +1 -1
  124. package/dist-types/event-map/transition-handler.d.ts +2 -0
  125. package/dist-types/event-map/transition-handler.d.ts.map +1 -0
  126. package/dist-types/interfaces/layout.d.ts +35 -1
  127. package/dist-types/interfaces/layout.d.ts.map +1 -1
  128. package/dist-types/interfaces/providers.d.ts +20 -3
  129. package/dist-types/interfaces/providers.d.ts.map +1 -1
  130. package/dist-types/interfaces/real-object.d.ts +8 -1
  131. package/dist-types/interfaces/real-object.d.ts.map +1 -1
  132. package/dist-types/interfaces/rendering.d.ts +86 -14
  133. package/dist-types/interfaces/rendering.d.ts.map +1 -1
  134. package/dist-types/interfaces/types.d.ts +20 -1
  135. package/dist-types/interfaces/types.d.ts.map +1 -1
  136. package/dist-types/layer/action/popup.d.ts +13 -0
  137. package/dist-types/layer/action/popup.d.ts.map +1 -1
  138. package/dist-types/layer/add-layer.d.ts +8 -0
  139. package/dist-types/layer/add-layer.d.ts.map +1 -1
  140. package/dist-types/layer/dual-canvas-layer.d.ts.map +1 -1
  141. package/dist-types/layer/index.d.ts +1 -0
  142. package/dist-types/layer/index.d.ts.map +1 -1
  143. package/dist-types/layer/layer.d.ts +1 -0
  144. package/dist-types/layer/layer.d.ts.map +1 -1
  145. package/dist-types/layer/model-layer.d.ts +67 -7
  146. package/dist-types/layer/model-layer.d.ts.map +1 -1
  147. package/dist-types/layer/modeler/path-handler.d.ts.map +1 -1
  148. package/dist-types/layer/modeling-layer.d.ts.map +1 -1
  149. package/dist-types/layer/selection/selected-finder.d.ts +1 -1
  150. package/dist-types/layer/selection/selected-finder.d.ts.map +1 -1
  151. package/dist-types/layer/selection-layer.d.ts.map +1 -1
  152. package/dist-types/layer/snap-guide-layer.d.ts +23 -0
  153. package/dist-types/layer/snap-guide-layer.d.ts.map +1 -0
  154. package/dist-types/layout/absolute.d.ts +2 -2
  155. package/dist-types/layout/card.d.ts +2 -2
  156. package/dist-types/layout/linear-horizontal.d.ts +2 -2
  157. package/dist-types/layout/linear-vertical.d.ts +2 -2
  158. package/dist-types/layout/table.d.ts +3 -3
  159. package/dist-types/math/component-pose.d.ts +51 -0
  160. package/dist-types/math/component-pose.d.ts.map +1 -0
  161. package/dist-types/math/index.d.ts +3 -0
  162. package/dist-types/math/index.d.ts.map +1 -0
  163. package/dist-types/math/pose6dof.d.ts +93 -0
  164. package/dist-types/math/pose6dof.d.ts.map +1 -0
  165. package/dist-types/navigation/index.d.ts +7 -0
  166. package/dist-types/navigation/index.d.ts.map +1 -0
  167. package/dist-types/navigation/nav-graph.d.ts +55 -0
  168. package/dist-types/navigation/nav-graph.d.ts.map +1 -0
  169. package/dist-types/navigation/path-planner.d.ts +29 -0
  170. package/dist-types/navigation/path-planner.d.ts.map +1 -0
  171. package/dist-types/navigation/reservation-table.d.ts +103 -0
  172. package/dist-types/navigation/reservation-table.d.ts.map +1 -0
  173. package/dist-types/navigation/types.d.ts +145 -0
  174. package/dist-types/navigation/types.d.ts.map +1 -0
  175. package/dist-types/placement/index.d.ts +3 -0
  176. package/dist-types/placement/index.d.ts.map +1 -0
  177. package/dist-types/placement/placement.d.ts +53 -0
  178. package/dist-types/placement/placement.d.ts.map +1 -0
  179. package/dist-types/search/index.d.ts +3 -0
  180. package/dist-types/search/index.d.ts.map +1 -0
  181. package/dist-types/search/scene-search-engine.d.ts +65 -0
  182. package/dist-types/search/scene-search-engine.d.ts.map +1 -0
  183. package/dist-types/search/search-overlay.d.ts +95 -0
  184. package/dist-types/search/search-overlay.d.ts.map +1 -0
  185. package/dist-types/things-scene/api/add-start.d.ts +25 -0
  186. package/dist-types/things-scene/api/add-start.d.ts.map +1 -1
  187. package/dist-types/things-scene/api/align.d.ts.map +1 -1
  188. package/dist-types/things-scene/api/distribute.d.ts.map +1 -1
  189. package/dist-types/things-scene/api/ids.d.ts +4 -1
  190. package/dist-types/things-scene/api/ids.d.ts.map +1 -1
  191. package/dist-types/things-scene/api/index.d.ts +1 -1
  192. package/dist-types/things-scene/api/index.d.ts.map +1 -1
  193. package/dist-types/things-scene/api/place.d.ts.map +1 -1
  194. package/dist-types/things-scene/application-context.d.ts +49 -0
  195. package/dist-types/things-scene/application-context.d.ts.map +1 -1
  196. package/dist-types/things-scene/create.d.ts +43 -3
  197. package/dist-types/things-scene/create.d.ts.map +1 -1
  198. package/dist-types/things-scene/index.d.ts +24 -0
  199. package/dist-types/things-scene/index.d.ts.map +1 -1
  200. package/dist-types/things-scene/scene.d.ts +108 -2
  201. package/dist-types/things-scene/scene.d.ts.map +1 -1
  202. package/dist-types/threed/arrow-3d.d.ts +13 -4
  203. package/dist-types/threed/arrow-3d.d.ts.map +1 -1
  204. package/dist-types/threed/environments/base-environment.d.ts +17 -0
  205. package/dist-types/threed/environments/base-environment.d.ts.map +1 -0
  206. package/dist-types/threed/environments/cloudy-environment.d.ts +10 -0
  207. package/dist-types/threed/environments/cloudy-environment.d.ts.map +1 -0
  208. package/dist-types/threed/environments/factory-environment.d.ts +3 -3
  209. package/dist-types/threed/environments/factory-environment.d.ts.map +1 -1
  210. package/dist-types/threed/environments/home-environment.d.ts +3 -3
  211. package/dist-types/threed/environments/home-environment.d.ts.map +1 -1
  212. package/dist-types/threed/environments/office-environment.d.ts +3 -3
  213. package/dist-types/threed/environments/office-environment.d.ts.map +1 -1
  214. package/dist-types/threed/environments/rainy-environment.d.ts +10 -0
  215. package/dist-types/threed/environments/rainy-environment.d.ts.map +1 -0
  216. package/dist-types/threed/environments/studio-environment.d.ts +2 -3
  217. package/dist-types/threed/environments/studio-environment.d.ts.map +1 -1
  218. package/dist-types/threed/environments/sunny-environment.d.ts +10 -0
  219. package/dist-types/threed/environments/sunny-environment.d.ts.map +1 -0
  220. package/dist-types/threed/environments/warehouse-environment.d.ts +3 -3
  221. package/dist-types/threed/environments/warehouse-environment.d.ts.map +1 -1
  222. package/dist-types/threed/factories/backdrop.d.ts +535 -0
  223. package/dist-types/threed/factories/backdrop.d.ts.map +1 -0
  224. package/dist-types/threed/factories/banner.d.ts +13 -4
  225. package/dist-types/threed/factories/banner.d.ts.map +1 -1
  226. package/dist-types/threed/factories/camera.d.ts +9 -3
  227. package/dist-types/threed/factories/camera.d.ts.map +1 -1
  228. package/dist-types/threed/factories/cube.d.ts +8 -3
  229. package/dist-types/threed/factories/cube.d.ts.map +1 -1
  230. package/dist-types/threed/factories/cylinder.d.ts +1 -0
  231. package/dist-types/threed/factories/cylinder.d.ts.map +1 -1
  232. package/dist-types/threed/factories/decal.d.ts +510 -0
  233. package/dist-types/threed/factories/decal.d.ts.map +1 -0
  234. package/dist-types/threed/factories/floor-plate.d.ts +11 -0
  235. package/dist-types/threed/factories/floor-plate.d.ts.map +1 -0
  236. package/dist-types/threed/factories/gltf-object.d.ts +264 -38
  237. package/dist-types/threed/factories/gltf-object.d.ts.map +1 -1
  238. package/dist-types/threed/factories/group.d.ts +2 -0
  239. package/dist-types/threed/factories/group.d.ts.map +1 -0
  240. package/dist-types/threed/factories/light.d.ts +1 -0
  241. package/dist-types/threed/factories/light.d.ts.map +1 -1
  242. package/dist-types/threed/factories/line.d.ts +10 -0
  243. package/dist-types/threed/factories/line.d.ts.map +1 -0
  244. package/dist-types/threed/factories/ortholine.d.ts +10 -0
  245. package/dist-types/threed/factories/ortholine.d.ts.map +1 -0
  246. package/dist-types/threed/factories/polygon.d.ts +19 -0
  247. package/dist-types/threed/factories/polygon.d.ts.map +1 -1
  248. package/dist-types/threed/factories/polyline.d.ts +10 -0
  249. package/dist-types/threed/factories/polyline.d.ts.map +1 -0
  250. package/dist-types/threed/factories/rect.d.ts.map +1 -1
  251. package/dist-types/threed/factories/sphere.d.ts +6 -0
  252. package/dist-types/threed/factories/sphere.d.ts.map +1 -1
  253. package/dist-types/threed/factories/sprite.d.ts +8 -3
  254. package/dist-types/threed/factories/sprite.d.ts.map +1 -1
  255. package/dist-types/threed/factories/triangle.d.ts.map +1 -1
  256. package/dist-types/threed/factories/wall.d.ts +8 -3
  257. package/dist-types/threed/factories/wall.d.ts.map +1 -1
  258. package/dist-types/threed/floor/floor.d.ts.map +1 -1
  259. package/dist-types/threed/handle-3d.d.ts +21 -0
  260. package/dist-types/threed/handle-3d.d.ts.map +1 -0
  261. package/dist-types/threed/html/elements.d.ts.map +1 -1
  262. package/dist-types/threed/index.d.ts +24 -0
  263. package/dist-types/threed/index.d.ts.map +1 -1
  264. package/dist-types/threed/managers/box-selection-manager.d.ts +26 -0
  265. package/dist-types/threed/managers/box-selection-manager.d.ts.map +1 -0
  266. package/dist-types/threed/managers/camera-bookmark-manager.d.ts +127 -0
  267. package/dist-types/threed/managers/camera-bookmark-manager.d.ts.map +1 -0
  268. package/dist-types/threed/managers/camera-manager.d.ts +9 -3
  269. package/dist-types/threed/managers/camera-manager.d.ts.map +1 -1
  270. package/dist-types/threed/managers/controls-manager.d.ts +25 -4
  271. package/dist-types/threed/managers/controls-manager.d.ts.map +1 -1
  272. package/dist-types/threed/managers/event-manager3d.d.ts +8 -0
  273. package/dist-types/threed/managers/event-manager3d.d.ts.map +1 -1
  274. package/dist-types/threed/managers/gizmo-manager.d.ts +6 -0
  275. package/dist-types/threed/managers/gizmo-manager.d.ts.map +1 -1
  276. package/dist-types/threed/managers/gizmo-operation-manager.d.ts +55 -1
  277. package/dist-types/threed/managers/gizmo-operation-manager.d.ts.map +1 -1
  278. package/dist-types/threed/managers/index.d.ts +4 -1
  279. package/dist-types/threed/managers/index.d.ts.map +1 -1
  280. package/dist-types/threed/managers/interaction-manager.d.ts +17 -0
  281. package/dist-types/threed/managers/interaction-manager.d.ts.map +1 -1
  282. package/dist-types/threed/managers/light-manager.d.ts +15 -0
  283. package/dist-types/threed/managers/light-manager.d.ts.map +1 -1
  284. package/dist-types/threed/managers/renderer-manager.d.ts +37 -0
  285. package/dist-types/threed/managers/renderer-manager.d.ts.map +1 -1
  286. package/dist-types/threed/managers/scene-manager.d.ts +12 -2
  287. package/dist-types/threed/managers/scene-manager.d.ts.map +1 -1
  288. package/dist-types/threed/managers/types.d.ts +5 -2
  289. package/dist-types/threed/managers/types.d.ts.map +1 -1
  290. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts +155 -0
  291. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts.map +1 -0
  292. package/dist-types/threed/material-3d.d.ts +5 -2
  293. package/dist-types/threed/material-3d.d.ts.map +1 -1
  294. package/dist-types/threed/ratio-lock-utils.d.ts +9 -0
  295. package/dist-types/threed/ratio-lock-utils.d.ts.map +1 -0
  296. package/dist-types/threed/real-object-dom-element.d.ts +2 -0
  297. package/dist-types/threed/real-object-dom-element.d.ts.map +1 -1
  298. package/dist-types/threed/real-object-dom-texture.d.ts +9 -0
  299. package/dist-types/threed/real-object-dom-texture.d.ts.map +1 -1
  300. package/dist-types/threed/real-object-external-model.d.ts +24 -0
  301. package/dist-types/threed/real-object-external-model.d.ts.map +1 -0
  302. package/dist-types/threed/real-object-extrude.d.ts +16 -1
  303. package/dist-types/threed/real-object-extrude.d.ts.map +1 -1
  304. package/dist-types/threed/real-object-gltf.d.ts +21 -11
  305. package/dist-types/threed/real-object-gltf.d.ts.map +1 -1
  306. package/dist-types/threed/real-object-group.d.ts +2 -0
  307. package/dist-types/threed/real-object-group.d.ts.map +1 -1
  308. package/dist-types/threed/real-object-line.d.ts +83 -0
  309. package/dist-types/threed/real-object-line.d.ts.map +1 -0
  310. package/dist-types/threed/real-object-mesh.d.ts.map +1 -1
  311. package/dist-types/threed/real-object-plane-2d.d.ts +23 -0
  312. package/dist-types/threed/real-object-plane-2d.d.ts.map +1 -1
  313. package/dist-types/threed/real-object-service.d.ts +14 -0
  314. package/dist-types/threed/real-object-service.d.ts.map +1 -0
  315. package/dist-types/threed/real-object-sprite.d.ts +7 -1
  316. package/dist-types/threed/real-object-sprite.d.ts.map +1 -1
  317. package/dist-types/threed/real-object-text.d.ts +5 -0
  318. package/dist-types/threed/real-object-text.d.ts.map +1 -1
  319. package/dist-types/threed/real-object.d.ts +176 -7
  320. package/dist-types/threed/real-object.d.ts.map +1 -1
  321. package/dist-types/threed/text-editor-3d.d.ts +11 -0
  322. package/dist-types/threed/text-editor-3d.d.ts.map +1 -0
  323. package/dist-types/threed/texture/canvas-texture.d.ts +7 -0
  324. package/dist-types/threed/texture/canvas-texture.d.ts.map +1 -1
  325. package/dist-types/threed/texture/fillstyle-texture.d.ts +46 -0
  326. package/dist-types/threed/texture/fillstyle-texture.d.ts.map +1 -0
  327. package/dist-types/threed/texture/text-texture.d.ts +15 -0
  328. package/dist-types/threed/texture/text-texture.d.ts.map +1 -1
  329. package/dist-types/threed/three-capability.d.ts +148 -6
  330. package/dist-types/threed/three-capability.d.ts.map +1 -1
  331. package/dist-types/threed/three-container.d.ts +0 -1
  332. package/dist-types/threed/three-container.d.ts.map +1 -1
  333. package/dist-types/threed/three-dimensional-container.d.ts +0 -1
  334. package/dist-types/threed/three-dimensional-container.d.ts.map +1 -1
  335. package/dist-types/threed/utils/anchor.d.ts +33 -0
  336. package/dist-types/threed/utils/anchor.d.ts.map +1 -0
  337. package/dist-types/threed/utils/dispose.d.ts.map +1 -1
  338. package/dist-types/threed/utils/polygon-shape.d.ts +21 -0
  339. package/dist-types/threed/utils/polygon-shape.d.ts.map +1 -0
  340. package/dist-types/threed/utils/tether.d.ts +46 -0
  341. package/dist-types/threed/utils/tether.d.ts.map +1 -0
  342. package/dist-types/threed/z-priority.d.ts +27 -0
  343. package/dist-types/threed/z-priority.d.ts.map +1 -0
  344. package/dist-types/tracker/tracker.d.ts +57 -0
  345. package/dist-types/tracker/tracker.d.ts.map +1 -0
  346. package/dist-types/transfer/carrier-line-capability.d.ts +95 -0
  347. package/dist-types/transfer/carrier-line-capability.d.ts.map +1 -0
  348. package/dist-types/transfer/centering-slot-strategy.d.ts +8 -0
  349. package/dist-types/transfer/centering-slot-strategy.d.ts.map +1 -0
  350. package/dist-types/transfer/container-capacity.d.ts +348 -0
  351. package/dist-types/transfer/container-capacity.d.ts.map +1 -0
  352. package/dist-types/transfer/fixed-slot-strategy.d.ts +8 -0
  353. package/dist-types/transfer/fixed-slot-strategy.d.ts.map +1 -0
  354. package/dist-types/transfer/index.d.ts +21 -0
  355. package/dist-types/transfer/index.d.ts.map +1 -0
  356. package/dist-types/transfer/pickup-helpers.d.ts +65 -0
  357. package/dist-types/transfer/pickup-helpers.d.ts.map +1 -0
  358. package/dist-types/transfer/simulation-clock.d.ts +45 -0
  359. package/dist-types/transfer/simulation-clock.d.ts.map +1 -0
  360. package/dist-types/transfer/storage-rack-capability.d.ts +144 -0
  361. package/dist-types/transfer/storage-rack-capability.d.ts.map +1 -0
  362. package/dist-types/transfer/tracer.d.ts +35 -0
  363. package/dist-types/transfer/tracer.d.ts.map +1 -0
  364. package/dist-types/transfer/transfer.d.ts +224 -0
  365. package/dist-types/transfer/transfer.d.ts.map +1 -0
  366. package/dist-types/transfer/types.d.ts +389 -0
  367. package/dist-types/transfer/types.d.ts.map +1 -0
  368. package/dist-types/transition/transition-effect.d.ts +97 -0
  369. package/dist-types/transition/transition-effect.d.ts.map +1 -0
  370. package/dist-types/types/bounding.d.ts +1 -1
  371. package/dist-types/types/bounding.d.ts.map +1 -1
  372. package/dist-types/types/component.d.ts +6 -177
  373. package/dist-types/types/component.d.ts.map +1 -1
  374. package/dist-types/types/event.d.ts +57 -0
  375. package/dist-types/types/event.d.ts.map +1 -1
  376. package/dist-types/types/polygon-path-arc.d.ts +72 -0
  377. package/dist-types/types/polygon-path-arc.d.ts.map +1 -0
  378. package/dist-types/types/polygon-path.d.ts +153 -0
  379. package/dist-types/types/polygon-path.d.ts.map +1 -0
  380. package/package.json +13 -2
  381. package/things-scene-min.js +12 -13
  382. package/things-scene-min.js.map +1 -1
  383. package/things-scene-transfer.mjs +6 -0
  384. package/things-scene.mjs +8 -9
  385. package/things-scene.mjs.map +1 -1
@@ -0,0 +1,95 @@
1
+ import type { Pose6DOF } from '../math/index.js';
2
+ /**
3
+ * Carrier slot reservation — source 가 carrier 를 *어디* 에 *어떤 자세* 로 놓을
4
+ * 지에 대한 *확정 가능한 약속*. capability 가 source 에게 발급, source 가 commit
5
+ * 시 carrier 가 그 slot 에 attach.
6
+ */
7
+ export interface CarrierReservation {
8
+ /** Capability 내부의 carrier slot 식별자 — opaque (source 는 의미 모름). */
9
+ readonly carrierIndex: number;
10
+ /** Carrier 가 commit 시 가져야 할 *world pose* (= 시각 위치/자세). */
11
+ readonly pose: Pose6DOF;
12
+ /** Capability 가 자기 식별 용으로 사용 — opaque token. */
13
+ readonly token: symbol;
14
+ }
15
+ /**
16
+ * Carrier slot 의 *현재 상태* — read 용. carrier 가 carrying 중 / empty / divert 위
17
+ * 등의 정보. carrierMap 의 values.
18
+ */
19
+ export interface CarrierSlotState {
20
+ readonly carrierIndex: number;
21
+ /** Carrying 중인 component (= 박스). null = empty. */
22
+ readonly carrier: unknown;
23
+ /** Carrier slot 의 현재 world pose. capability 의 sim 이 매 frame 갱신. */
24
+ readonly pose: Pose6DOF;
25
+ }
26
+ /**
27
+ * Join point — capability 와 외부 source/target 의 *합류 지점*. 예:
28
+ * - induct station 이 sorter 의 polyline 옆에 합류 → induct = joinPoint
29
+ * - chute 가 sorter 의 polyline 의 한 점에서 divert → chute = joinPoint
30
+ *
31
+ * join point 자체는 *Component* — 자기 world position / rotation 노출. capability
32
+ * 가 그 위치 기반 *carrier slot 의 진입/이탈 지점* 자동 계산.
33
+ */
34
+ export interface JoinPoint {
35
+ /**
36
+ * Component state — index-signature 형태로 받음. things-scene 의 모든 컴포넌트
37
+ * state 가 `State` 를 extend (`[key: string]: any`) 하므로, 특정 state 타입
38
+ * (예: InductStationState) 도 자동 호환. `state.id` 는 runtime lookup.
39
+ */
40
+ readonly state?: Record<string, unknown>;
41
+ readonly id?: unknown;
42
+ readonly center?: {
43
+ x: number;
44
+ y: number;
45
+ z?: number;
46
+ };
47
+ }
48
+ /**
49
+ * CarrierLine capability contract.
50
+ *
51
+ * Implementer (sorter 등) 가 자기 sim 의 detail (carrier index 결정, slot proxy
52
+ * attach, frame-by-frame position 갱신) 모두 *내부 구현* 으로 캡슐화. source 는
53
+ * 이 interface 만 사용.
54
+ */
55
+ export interface CarrierLine {
56
+ /**
57
+ * Side-effect-free check — 지금 reserveAtJoinPoint 가 성공할 가능성. source 가
58
+ * Transfer protocol 시작 *전* 호출 → false 면 Transfer 생성 자체 skip 가능 →
59
+ * panel 의 *rolled-back 폭주* 방지. true 시 reserveAtJoinPoint 호출 성공 *보장*.
60
+ *
61
+ * ContainerCapacity 의 canReceive / canAccept 와 동등 — capability contract
62
+ * 의 표준 check 패턴.
63
+ */
64
+ canReserveAtJoinPoint(joinPoint: JoinPoint): boolean;
65
+ /**
66
+ * Source 가 carrier 를 *join point* 에 도달 시점에 받을 carrier slot 의
67
+ * reservation 을 요청. null = 현재 free slot 없음 (= source 가 다음 frame 재시도).
68
+ *
69
+ * Side-effect-free 가 권장 — 단 reservation 자체 가 *생성* 되니 capability 가
70
+ * *예약 슬롯 마크* 가능. 단 carrier attach 는 *아직* 일어나지 않음.
71
+ */
72
+ reserveAtJoinPoint(joinPoint: JoinPoint, carrier: unknown): CarrierReservation | null;
73
+ /**
74
+ * Reservation 확정 — carrier 가 reserved slot 에 attach. capability 가 자기 sim
75
+ * 에 carrier 등록 + slot proxy 의 자식으로 reparent. 호출 후 carrier 는 그 slot
76
+ * 의 *carrying 상태*.
77
+ */
78
+ commitReservation(reservation: CarrierReservation, carrier: unknown): void;
79
+ /**
80
+ * Reservation 취소 — Transfer rollback / abort 시 호출. 마크된 slot 해제.
81
+ * commit 후 호출 시 noop (idempotent).
82
+ */
83
+ releaseReservation(reservation: CarrierReservation): void;
84
+ /**
85
+ * 모든 carrier slot 의 현재 상태 — read-only. 외부 진단/시각화 (monitor panel)
86
+ * 가 generic 하게 활용. 향후 *write 가능* 확장 plan — 시뮬 state 복원 등.
87
+ */
88
+ readonly carrierMap: ReadonlyMap<number, CarrierSlotState>;
89
+ }
90
+ /**
91
+ * Duck typing — target 이 CarrierLine 노출 했는지 check. capability registry 없이
92
+ * runtime 매칭. 새 sorter type 추가 시 *이 함수 외 다른 코드 변경 없음*.
93
+ */
94
+ export declare function isCarrierLine(target: unknown): target is CarrierLine;
95
+ //# sourceMappingURL=carrier-line-capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carrier-line-capability.d.ts","sourceRoot":"","sources":["../../src/transfer/carrier-line-capability.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CACxB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACvD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;OAOG;IACH,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAA;IAEpD;;;;;;OAMG;IACH,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI,CAAA;IAErF;;;;OAIG;IACH,iBAAiB,CAAC,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAE1E;;;OAGG;IACH,kBAAkB,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAEzD;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CAC3D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,WAAW,CAUpE"}
@@ -0,0 +1,8 @@
1
+ import type { ArrangementStrategy, SlotDef, Vec3 } from './types.js';
2
+ export declare class CenteringSlotStrategy implements ArrangementStrategy {
3
+ private readonly owner;
4
+ constructor(owner: any);
5
+ positionAt(index: number, slotDef: SlotDef, _occupantCount: number, component?: any): Vec3 | null;
6
+ capacity(slotDef: SlotDef): number;
7
+ }
8
+ //# sourceMappingURL=centering-slot-strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"centering-slot-strategy.d.ts","sourceRoot":"","sources":["../../src/transfer/centering-slot-strategy.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEpE,qBAAa,qBAAsB,YAAW,mBAAmB;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,GAAG;IAEvC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;IAejG,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;CAGnC"}
@@ -0,0 +1,348 @@
1
+ import type { SlotDef, TransferOptions, Transferable, CarrierAttachPoint, ArrangementStrategy } from './types.js';
2
+ import type Component from '../components/component.js';
3
+ /** Key used to store the current slot assignment on a child component. */
4
+ export declare const TRANSFER_SLOT_KEY = "_transferSlotId";
5
+ type Constructor<T = object> = new (...args: any[]) => T;
6
+ /**
7
+ * Mixin that adds Transferable capacity to any ContainerAbstract subclass.
8
+ *
9
+ * The mixed-in class provides concrete implementations of all Transferable methods.
10
+ * Subclasses must implement `get slots(): SlotDef[]`; everything else has sensible defaults.
11
+ */
12
+ export declare function ContainerCapacity<TBase extends Constructor<Component>>(Base: TBase): {
13
+ new (...args: any[]): {
14
+ /** Declare the slot topology of this container. */
15
+ get slots(): SlotDef[];
16
+ /**
17
+ * ArrangementStrategy used when `slots` is empty or slotDef has no arrangement.
18
+ * Override in subclass to supply richer strategies (Stack, Queue, Grid, etc.).
19
+ */
20
+ get arrangementStrategy(): ArrangementStrategy;
21
+ canReceive(component: any): boolean;
22
+ findSlot(component: any): SlotDef | null;
23
+ receive(component: any, options?: TransferOptions): Promise<void>;
24
+ dispatch(component: any, target: Transferable, options?: TransferOptions): Promise<void>;
25
+ route(_component: any): Transferable | null | Promise<Transferable | null>;
26
+ /**
27
+ * WCS resolves a pending route by providing the confirmed target.
28
+ * Subclasses that implement PendingPolicy must override this to
29
+ * unblock the waiting promise in route().
30
+ */
31
+ resolveRoute(_component: any, _target: Transferable): void;
32
+ /**
33
+ * WCS rejects or times out a pending route.
34
+ * Fires 'transfer-rejected'; subclasses may trigger fallback routing.
35
+ */
36
+ rejectRoute(component: any, reason?: string): void;
37
+ /**
38
+ * carrier 의 받아들일 회전 (parent-local quaternion). 기본 identity.
39
+ * 회전이 필요한 holder (induct = belt 진행 방향, rack cell = grid 정렬 등)
40
+ * 는 이 메소드만 override 하면 receive() 가 atomic 하게 적용한다.
41
+ *
42
+ * 반환값은 plain object {x,y,z,w} — THREE.Quaternion 도 그 인터페이스 만족.
43
+ */
44
+ acceptanceRotation(_carrier: any, _slot?: SlotDef): {
45
+ x: number;
46
+ y: number;
47
+ z: number;
48
+ w: number;
49
+ } | undefined;
50
+ /**
51
+ * canReceive 의 풍부한 버전. ok 면 slot 동봉, 아니면 reason 명시.
52
+ * drag-over UI 가 사유 표시하기 위함. canReceive 와 동일 결정 사용.
53
+ */
54
+ canAccept(component: any): {
55
+ ok: true;
56
+ slot: SlotDef;
57
+ } | {
58
+ ok: false;
59
+ reason: string;
60
+ };
61
+ /**
62
+ * receive 의 alias — Phase G2 contract 의 명시적 이름. 기존 receive 호출자도
63
+ * 그대로 작동.
64
+ */
65
+ accept(component: any, options?: TransferOptions): Promise<void>;
66
+ /**
67
+ * Phase G5 — physical mover (robot-arm, AGV docking 등) 가 query 하는
68
+ * delivery world rotation. carrier 가 holder 에 도달했을 때 가져야 할
69
+ * world quaternion.
70
+ *
71
+ * delivery.world = holder.world.quat × acceptanceRotation_local
72
+ *
73
+ * source 가 이걸 미리 알면 TCP yaw 를 점진적으로 맞춰 carrier 가
74
+ * acceptance pose 에 도달한 채로 release → handoff 시 zero-delta → 시각적
75
+ * 점프 없음.
76
+ *
77
+ * acceptanceRotation 미정의 OR _realObject 미빌드 시 undefined.
78
+ */
79
+ deliveryWorldRotation(carrier: any): {
80
+ x: number;
81
+ y: number;
82
+ z: number;
83
+ w: number;
84
+ } | undefined;
85
+ /**
86
+ * Phase G9 — physical mover 가 query 하는 delivery world position.
87
+ *
88
+ * carrier 가 holder 에 도달했을 때 가져야 할 world XYZ. position 만 — rotation
89
+ * 은 deliveryWorldRotation 이 별도로 제공. 두 결과를 합치면 source 의 trajectory
90
+ * endpoint 가 됨.
91
+ *
92
+ * 기본 구현 — receivingSurfaceY 가 있으면 belt 표면 위, 없으면 slot.localPosition,
93
+ * 둘 다 없으면 holder object3d 원점.
94
+ *
95
+ * surface_world_y = holder.localToWorld((0, receivingSurfaceY - geometricOffsetY, 0)).y
96
+ * surface_world_xz = holder.world.xz
97
+ *
98
+ * receivingSurfaceY 의 정의가 cz-formula-tuned (= beltTopY + parent.geometricOffsetY)
99
+ * 라 그 차분 (- parent.geometricOffsetY) 으로 raw local 표면 Y 를 뽑아낸다.
100
+ *
101
+ * 호출 전제: holder 의 _realObject 가 빌드돼 있고 obj3d.matrixWorld 가 최신.
102
+ * 빌드 안 된 상태면 undefined → 호출자가 fallback (예: 2D bounds 기반).
103
+ */
104
+ deliveryWorldPosition(_carrier: any): {
105
+ x: number;
106
+ y: number;
107
+ z: number;
108
+ } | undefined;
109
+ attachPointFor(component: any): CarrierAttachPoint | null;
110
+ /**
111
+ * Count children currently assigned to `slotId`.
112
+ *
113
+ * Invariant: 자식이 `parent === this` 일 때만 count. 이전 cycle 의 *ghost
114
+ * child* (배열에는 남아있지만 parent 가 다른 컴포넌트로 옮겨간 경우) 또는
115
+ * *마크가 stale* 한 child 는 자동 제외 — 누적 결함 방지.
116
+ */
117
+ _countOccupied(slotId: string): number;
118
+ _app: any;
119
+ _model: any;
120
+ _state: any;
121
+ _delta: any;
122
+ _animation: any;
123
+ _animate: any;
124
+ _parent: any;
125
+ _disposed: any;
126
+ _textHidden: any;
127
+ _text_substitutor: any;
128
+ _value_substitutor: any;
129
+ _mappings: any;
130
+ _realObject: import("../index.js").IRealObject | undefined;
131
+ _cachedState: any;
132
+ updatedAt: any;
133
+ fontSize: any;
134
+ __cache__: any;
135
+ created(): void;
136
+ added(parent: any): void;
137
+ removed(parent: any): void;
138
+ ready(): Promise<void>;
139
+ touch(): void;
140
+ clearCache(...attrs: any[]): void;
141
+ removeSelf(completely: any): void;
142
+ resetAnimation(): void;
143
+ dispose(): void;
144
+ get nature(): import("../index.js").ComponentNature;
145
+ get disposed(): boolean;
146
+ isLayer(): boolean;
147
+ isGroup(): boolean;
148
+ isContainer(): this is import("../types/component.js").Container;
149
+ isLine(): boolean;
150
+ isRoot(): boolean;
151
+ isRootModel(): boolean;
152
+ is3dish(): boolean;
153
+ get is3dMode(): boolean;
154
+ isIn3DSpace(): boolean;
155
+ isTemplate(): boolean;
156
+ isHTMLElement(): boolean;
157
+ isConnectable(): boolean;
158
+ isIdentifiable(): boolean;
159
+ isPositionable(): boolean;
160
+ replaceRefids(replaceMap: any): void;
161
+ get(property: any): any;
162
+ set(props: any, propval?: any): any;
163
+ getState(property: any): any;
164
+ setState(props: Partial<import("../index.js").State> | string, propval?: any): any;
165
+ get model(): any;
166
+ get state(): import("../index.js").State;
167
+ get hierarchy(): any;
168
+ get volatile(): never[];
169
+ _applyProps(target: any, props: any, options: any): /*elided*/ any;
170
+ contains(x: number, y: number): boolean;
171
+ move(offset: {
172
+ x: number;
173
+ y: number;
174
+ }, ...args: boolean[]): void;
175
+ symmetryX(x?: number): void;
176
+ symmetryY(y: number): void;
177
+ adjustResize(bounds: import("../index.js").BOUNDS, origin_bounds: import("../index.js").BOUNDS, diagonal: boolean): {
178
+ left: any;
179
+ top: any;
180
+ width: any;
181
+ height: any;
182
+ };
183
+ adjustRotation(rotation: number, step: boolean): number;
184
+ outline(progress: number): any;
185
+ get bounds(): import("../index.js").BOUNDS;
186
+ set bounds(b: import("../index.js").BOUNDS);
187
+ get center(): import("../index.js").POINT;
188
+ set center(p: import("../index.js").POINT);
189
+ get location(): import("../index.js").POINT;
190
+ set location(l: import("../index.js").POINT);
191
+ get rotate(): import("../index.js").POINT;
192
+ set rotate(r: import("../index.js").POINT);
193
+ get dimension(): import("../index.js").DIMENSION;
194
+ set dimension(d: import("../index.js").DIMENSION);
195
+ get path(): import("../index.js").POINT[];
196
+ set path(p: import("../index.js").POINT[]);
197
+ get drawPath(): import("../index.js").POINT[];
198
+ get rotatePoint(): import("../index.js").POINT;
199
+ get mutable(): boolean;
200
+ get resizable(): boolean;
201
+ get rotatable(): boolean;
202
+ buildRealObject(): import("../index.js").IRealObject | undefined;
203
+ get realObject(): import("../index.js").IRealObject | undefined;
204
+ draw(context?: import("../index.js").SceneRenderContext): void;
205
+ prerender(context: import("../index.js").SceneRenderContext): void;
206
+ render(context: import("../index.js").SceneRenderContext): void;
207
+ postrender(context: import("../index.js").SceneRenderContext): void;
208
+ prepare(resolve: (component: Component) => void, reject: (reason: any) => void): void;
209
+ prepareIf(condition: boolean): void;
210
+ drawText(context: import("../index.js").SceneRenderContext): void;
211
+ drawStroke(context: import("../index.js").SceneRenderContext, override?: Record<string, unknown>): void;
212
+ drawFill(context: import("../index.js").SceneRenderContext, override?: Record<string, unknown>): void;
213
+ get strokeStyle(): any;
214
+ set strokeStyle(v: any);
215
+ get fillStyle(): any;
216
+ set fillStyle(v: any);
217
+ get fontColor(): string;
218
+ set fontColor(v: string);
219
+ get rotation(): number;
220
+ set rotation(v: number);
221
+ get decorators(): string[];
222
+ get decotag(): string;
223
+ get hidden(): boolean;
224
+ set hidden(v: boolean);
225
+ get tag(): string;
226
+ set tag(v: string);
227
+ get appendum(): any;
228
+ set appendum(v: any);
229
+ defaultTextSubstitutor(): string;
230
+ textLines(context?: import("../index.js").SceneRenderContext): any[][];
231
+ get font(): string;
232
+ get lineHeight(): number;
233
+ get textSubstitutor(): () => string;
234
+ get text(): string;
235
+ set text(v: string);
236
+ get textBounds(): import("../index.js").BOUNDS;
237
+ get textRotation(): number;
238
+ get textHidden(): boolean;
239
+ set textHidden(v: boolean);
240
+ get hasTextProperty(): boolean;
241
+ animate(opts: import("../index.js").AnimationConfig): any;
242
+ effect(context: import("../index.js").SceneRenderContext, model: any): void;
243
+ serialize(...others: any[]): string;
244
+ trim(): void;
245
+ closeScene(data: any): void;
246
+ delta(attr?: string | object, value?: any): any;
247
+ invalidate(): void;
248
+ get value(): any;
249
+ set value(v: any);
250
+ get data(): any;
251
+ set data(v: any);
252
+ set tap(v: any);
253
+ get mappings(): any[];
254
+ get retention(): number;
255
+ get animation(): import("../index.js").AnimationController | undefined;
256
+ get started(): boolean;
257
+ set started(v: boolean);
258
+ get controls(): import("../index.js").Control[] | undefined;
259
+ findFirst(finder: string | ((c: Component) => boolean), ...others: any[]): Component | undefined;
260
+ findAll(s: string | ((c: Component) => boolean), ...others: any[]): any[] | undefined;
261
+ capture(x: number, y: number, except?: (c: Component) => boolean): any;
262
+ findAnchor(name: string): any;
263
+ isDescendible(container: Component | any): boolean;
264
+ getContext(component?: unknown): any;
265
+ get root(): Component;
266
+ get rootModel(): Component;
267
+ get parent(): Component;
268
+ set parent(v: Component);
269
+ get anchors(): import("../index.js").Anchor[];
270
+ get scalable(): boolean;
271
+ get stuck(): boolean;
272
+ get capturable(): boolean;
273
+ get position(): string;
274
+ get origin(): string;
275
+ get offset(): import("../index.js").POINT;
276
+ get app(): import("../index.js").ApplicationContext;
277
+ drawEffect(context: import("../index.js").SceneRenderContext): void;
278
+ prepareFill(resolve: Function, reject: Function): void;
279
+ prepareFillIf(condition: boolean): void;
280
+ onchangeFill(after: Record<string, any>, before: Record<string, any>): void;
281
+ drawImage(context: import("../index.js").SceneRenderContext, image: HTMLImageElement, left: number, top: number, width: number, height: number): void;
282
+ mutateBounds(logic: ((bounds: import("../index.js").BOUNDS) => import("../index.js").BOUNDS | void) | null, context?: any): void;
283
+ mutatePath(beforeLogic: ((path: import("../index.js").POINT[]) => import("../index.js").POINT[] | void) | null, afterLogic: ((path: import("../index.js").POINT[]) => import("../index.js").POINT[] | void) | null, context?: any): void;
284
+ access(accessor: string): any;
285
+ substitute(template: string, data: any): string | undefined;
286
+ onchangeMappings(after: Record<string, any>, before: Record<string, any>): void;
287
+ onchangeData(after: Record<string, any>, before: Record<string, any>): void;
288
+ buildMappings(): void;
289
+ executeMappings(force?: boolean): void;
290
+ disposeMappings(): void;
291
+ ondropfile(transfered: FileList, files: string[]): void;
292
+ transcoordS2P(x: number, y: number, rp?: import("../index.js").POINT): import("../index.js").POINT;
293
+ transcoordP2S(x: number, y: number, rp?: import("../index.js").POINT): import("../index.js").POINT;
294
+ transcoordS2T(x: number, y: number, top?: Component): import("../index.js").POINT;
295
+ transcoordT2P(x: number, y: number, top?: Component): import("../index.js").POINT;
296
+ transcoordT2S(x: number, y: number, top?: Component): import("../index.js").POINT;
297
+ transcoordS2TR(x: number, y: number, top?: Component): import("../index.js").POINT;
298
+ transcoordS2O(x: number, y: number, target: Component): import("../index.js").POINT;
299
+ transcoordC2S(x: number, y: number, top?: Component): import("../index.js").POINT;
300
+ transcoordS2C(x: number, y: number, top?: Component): import("../index.js").POINT;
301
+ toParent(x: number, y: number, rp?: import("../index.js").POINT): import("../index.js").POINT;
302
+ fromParent(x: number, y: number, rp?: import("../index.js").POINT): import("../index.js").POINT;
303
+ toScene(x: number, y: number, top?: Component): import("../index.js").POINT;
304
+ fromScene(x: number, y: number, top?: Component): import("../index.js").POINT;
305
+ toLocal(x: number, y: number, top?: Component): import("../index.js").POINT;
306
+ toGlobal(x: number, y: number, top?: Component): import("../index.js").POINT;
307
+ toOther(x: number, y: number, target: Component): import("../index.js").POINT;
308
+ on<K extends keyof import("../index.js").ComponentEventMap>(name: K, callback: (...args: import("../index.js").ComponentEventMap[K]) => void, context?: any): /*elided*/ any;
309
+ on(name: string | object, callback: Function, context?: any): /*elided*/ any;
310
+ off<K extends keyof import("../index.js").ComponentEventMap>(name: K, callback?: ((...args: import("../index.js").ComponentEventMap[K]) => void) | undefined, context?: any): /*elided*/ any;
311
+ off(name?: string | object, callback?: Function, context?: any): /*elided*/ any;
312
+ once<K extends keyof import("../index.js").ComponentEventMap>(name: K, callback: (...args: import("../index.js").ComponentEventMap[K]) => void, context?: any): /*elided*/ any;
313
+ once(name: string | object, callback: Function, context?: any): /*elided*/ any;
314
+ trigger<K extends keyof import("../index.js").ComponentEventMap>(name: K, ...args: import("../index.js").ComponentEventMap[K]): /*elided*/ any;
315
+ trigger(name: string, ...args: any[]): /*elided*/ any;
316
+ delegate_on(delegator: any): /*elided*/ any;
317
+ delegate_off(delegator: any): /*elided*/ any;
318
+ onchange(after: Record<string, any>, before: Record<string, any>): void;
319
+ calculateBounds?(): void;
320
+ oncreate_element?(element: HTMLElement): void;
321
+ removeComponent(component: Component, ghost?: boolean): void;
322
+ addComponent(component: Component, ghost?: boolean): void;
323
+ insertComponentAt(component: Component, index: number, ghost?: boolean): void;
324
+ getOverlay(component: Component): HTMLElement | undefined;
325
+ findById(id: string): Component | undefined;
326
+ findByRefid(ref: string | number): Component | undefined;
327
+ findAllById(id: string): Component[];
328
+ resize(): void;
329
+ fit(type?: string): void;
330
+ get components(): Component[] | undefined;
331
+ get layout(): any;
332
+ get auxOverlay(): HTMLElement | undefined;
333
+ get isReady(): boolean;
334
+ get unitScale(): number;
335
+ get selected(): Component[];
336
+ set selected(_v: Component[]);
337
+ get focused(): Component | null;
338
+ set focused(_v: Component | null);
339
+ get hasSameParentForAllSelected(): boolean;
340
+ set hasSameParentForAllSelected(_v: boolean);
341
+ get fitMode(): string | undefined;
342
+ set fitMode(_v: string | undefined);
343
+ get element(): HTMLElement | null;
344
+ set element(_v: HTMLElement | null);
345
+ };
346
+ } & TBase;
347
+ export {};
348
+ //# sourceMappingURL=container-capacity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-capacity.d.ts","sourceRoot":"","sources":["../../src/transfer/container-capacity.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AACjH,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAevD,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,oBAAoB,CAAA;AAElD,KAAK,WAAW,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAExD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK;kBARtC,GAAG,EAAE;QAa9C,mDAAmD;qBACtC,OAAO,EAAE;QAItB;;;WAGG;mCACwB,mBAAmB;8BAMxB,GAAG,GAAG,OAAO;4BAWf,GAAG,GAAG,OAAO,GAAG,IAAI;2BAuCf,GAAG,YAAW,eAAe,GAAQ,OAAO,CAAC,IAAI,CAAC;4BAwJjD,GAAG,UAAU,YAAY,YAAW,eAAe,GAAQ,OAAO,CAAC,IAAI,CAAC;0BAoChF,GAAG,GAAG,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;QAI1E;;;;WAIG;iCACsB,GAAG,WAAW,YAAY,GAAG,IAAI;QAI1D;;;WAGG;+BACoB,GAAG,oBAAwB,IAAI;QAWtD;;;;;;WAMG;qCAC0B,GAAG,UAAU,OAAO,GAAG;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS;QAI9G;;;WAGG;6BACkB,GAAG,GAAG;YAAE,EAAE,EAAE,IAAI,CAAC;YAAC,IAAI,EAAE,OAAO,CAAA;SAAE,GAAG;YAAE,EAAE,EAAE,KAAK,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE;QAuBtF;;;WAGG;0BACe,GAAG,YAAY,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;QAIhE;;;;;;;;;;;;WAYG;uCAC4B,GAAG,GAAG;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS;QAe/F;;;;;;;;;;;;;;;;;;WAkBG;wCAC6B,GAAG,GAAG;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS;kCAwB3D,GAAG,GAAG,kBAAkB,GAAG,IAAI;QAgBzD;;;;;;WAMG;+BACoB,MAAM,GAAG,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAMzC"}
@@ -0,0 +1,8 @@
1
+ import type { ArrangementStrategy, SlotDef, Vec3 } from './types.js';
2
+ export declare class FixedSlotStrategy implements ArrangementStrategy {
3
+ positionAt(index: number, slotDef: SlotDef, _occupantCount: number): Vec3 | null;
4
+ capacity(_slotDef: SlotDef): number;
5
+ }
6
+ /** Singleton — FixedSlotStrategy is stateless. */
7
+ export declare const fixedSlotStrategy: FixedSlotStrategy;
8
+ //# sourceMappingURL=fixed-slot-strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixed-slot-strategy.d.ts","sourceRoot":"","sources":["../../src/transfer/fixed-slot-strategy.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEpE,qBAAa,iBAAkB,YAAW,mBAAmB;IAC3D,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAKhF,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM;CAGpC;AAED,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,mBAA0B,CAAA"}
@@ -0,0 +1,21 @@
1
+ export type { Vec3, Size3, Bounds3, SlotArrangement, GridShape, SlotDef, SlotAssignment, TransferOptions, StaticPolicy, DynamicPolicy, PendingPolicy, ConnectionPolicy, Port, TransferEventType, TransferEvent, CarrierAttachPoint, ArrangementStrategy, Transferable, NavigationTarget, NavigationOptions, Movable, ArticulatedCapability, MissionStatus, VehicleMission, MissionExecutor, SensorPoint, SpawnPoint, SinkPoint, QuatLike, PoseSerialized, PickupFrame, PickupRequester, Pickable } from './types.js';
2
+ export { quatFromYaw, rectangularFootprintFrames, topApproachFrame, filterByToolType, chooseNearestPickupFrame } from './pickup-helpers.js';
3
+ export type { RectangularFootprintOptions, TopApproachOptions } from './pickup-helpers.js';
4
+ export { FixedSlotStrategy, fixedSlotStrategy } from './fixed-slot-strategy.js';
5
+ export { CenteringSlotStrategy } from './centering-slot-strategy.js';
6
+ export { ContainerCapacity, TRANSFER_SLOT_KEY } from './container-capacity.js';
7
+ export type { SimulationClock } from './simulation-clock.js';
8
+ export { globalSimClock } from './simulation-clock.js';
9
+ export { Transfer, transferLog, receiptToJSON } from './transfer.js';
10
+ export type { TransferPhase, TransferTimeline, TransferReceipt, TransferReceiptJSON, TransferLogStats, PhysicalRunner, TransferInit, TransferTraceEvent } from './transfer.js';
11
+ export { transferTracer } from './tracer.js';
12
+ export type { TraceLogInput } from './tracer.js';
13
+ export { isCarrierLine } from './carrier-line-capability.js';
14
+ export type { CarrierLine, CarrierReservation, CarrierSlotState, JoinPoint } from './carrier-line-capability.js';
15
+ export { isStorageRack, addressKey, parseAddressKey } from './storage-rack-capability.js';
16
+ export type { StorageRack, StorageSlotAddress, StorageSlotState, StorageReservation, SlotSearchCriteria } from './storage-rack-capability.js';
17
+ export { ReservationTable, reservationTable, standardYieldPolicy, NavGraph, buildNavGraph, planPathAStar, planToReservations } from '../navigation/index.js';
18
+ export type { LaneGeometry, Lane, ConflictPair, Intersection, NavPolygon, OpenZone, TimeWindow, Reservation, SpeedProfile, PathSegment, PathPlan, PathPlanOptions, Navigable, YieldDecision, YieldPolicy, ReservationEvent, AddResult, Conflict, ConflictRecord, NavNode, NavEdge, BuildNavGraphOptions } from '../navigation/index.js';
19
+ export * from '../types/polygon-path.js';
20
+ export * from '../types/polygon-path-arc.js';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transfer/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,IAAI,EACJ,KAAK,EACL,OAAO,EACP,eAAe,EACf,SAAS,EACT,OAAO,EACP,cAAc,EACd,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,IAAI,EACJ,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,EACP,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,eAAe,EACf,WAAW,EACX,UAAU,EACV,SAAS,EAET,QAAQ,EACR,cAAc,EACd,WAAW,EACX,eAAe,EACf,QAAQ,EACT,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,WAAW,EACX,0BAA0B,EAC1B,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE1F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC9E,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAItD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACpE,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,kBAAkB,EACnB,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACV,MAAM,8BAA8B,CAAA;AAGrC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzF,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,8BAA8B,CAAA;AAIrC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,aAAa,EACb,aAAa,EACb,kBAAkB,EACnB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACV,YAAY,EACZ,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,eAAe,EACf,SAAS,EACT,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,cAAc,EACd,OAAO,EACP,OAAO,EACP,oBAAoB,EACrB,MAAM,wBAAwB,CAAA;AAG/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA"}
@@ -0,0 +1,65 @@
1
+ import type { PickupFrame, PickupRequester, Vec3, QuatLike, PoseSerialized } from './types.js';
2
+ /**
3
+ * Y 축 (3D vertical) 회전을 quaternion 으로. Three.js 없이 직접 계산 (cross-package
4
+ * 호환성).
5
+ *
6
+ * q = (0, sin(θ/2), 0, cos(θ/2))
7
+ */
8
+ export declare function quatFromYaw(yawRad: number): QuatLike;
9
+ export interface RectangularFootprintOptions {
10
+ /** carrier 의 world pose — entry 들이 이 frame 기준으로 회전/병진된다. */
11
+ carrierWorld: PoseSerialized;
12
+ /** carrier 의 가로 (X 방향). */
13
+ width: number;
14
+ /** carrier 의 세로 (Z 방향). */
15
+ depth: number;
16
+ /** entry 가 carrier 의 어느 높이에 있는가 (carrier-local Y). */
17
+ entryHeight: number;
18
+ /** approach 가 engage 에서 얼마나 떨어진 거리. */
19
+ approachDistance: number;
20
+ /** 어느 면에 entry 를 둘지. 'east'+'west' = 2-way, 4 개 다 = 4-way. */
21
+ sides: ReadonlyArray<'east' | 'west' | 'north' | 'south'>;
22
+ /** entry 의 toolType. 모두 동일하면 string, 면별 다르면 map. */
23
+ toolType: string | Partial<Record<'east' | 'west' | 'north' | 'south', string>>;
24
+ /** entry 의 tolerance. */
25
+ tolerance?: PickupFrame['tolerance'];
26
+ /** entry 의 priority. */
27
+ priority?: number;
28
+ }
29
+ /**
30
+ * 직사각형 carrier 의 N-면 진입 entry 들을 한꺼번에 생성.
31
+ *
32
+ * 각 entry 의 engage 는 carrier 의 해당 면 중심 (carrier-local), approach 는
33
+ * 그 외부 approachDistance 만큼 떨어진 점. 도구는 carrier 쪽을 향한 채 (yaw)
34
+ * 다가오는 자세.
35
+ */
36
+ export declare function rectangularFootprintFrames(options: RectangularFootprintOptions): PickupFrame[];
37
+ export interface TopApproachOptions {
38
+ carrierWorld: PoseSerialized;
39
+ /** carrier 의 top 표면 Y (carrier-local). */
40
+ topY: number;
41
+ /** approach 가 top 에서 얼마나 위에 있는가. */
42
+ approachDistance: number;
43
+ toolType: string;
44
+ tolerance?: PickupFrame['tolerance'];
45
+ priority?: number;
46
+ id?: string;
47
+ }
48
+ /**
49
+ * 위쪽 한 점 진입 (예: vacuum gripper 로 box 집기, 자석으로 철판 들기).
50
+ *
51
+ * engage 는 carrier 의 top 표면 중심, approach 는 그 위 approachDistance.
52
+ * 도구는 carrier 위에서 수직 하강 — yaw 보존 (도구가 회전하지 않음).
53
+ */
54
+ export declare function topApproachFrame(options: TopApproachOptions): PickupFrame;
55
+ /**
56
+ * Pickable.pickupFramesFor 의 기본 구현. 도구 type 일치하는 entry 만 통과.
57
+ * tool footprint 까지 검사하고 싶으면 carrier 가 자체 override.
58
+ */
59
+ export declare function filterByToolType(frames: PickupFrame[], requester: PickupRequester): PickupFrame[];
60
+ /**
61
+ * 두 entry 중 source 위치에 더 가까운 것을 고르는 helper. distance 는 approach
62
+ * pose 위치 기준. priority 가 다르면 priority 우선.
63
+ */
64
+ export declare function chooseNearestPickupFrame(frames: PickupFrame[], fromWorldPosition: Vec3): PickupFrame | null;
65
+ //# sourceMappingURL=pickup-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickup-helpers.d.ts","sourceRoot":"","sources":["../../src/transfer/pickup-helpers.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAI9F;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAQpD;AA2CD,MAAM,WAAW,2BAA2B;IAC1C,4DAA4D;IAC5D,YAAY,EAAE,cAAc,CAAA;IAC5B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAA;IACnB,uCAAuC;IACvC,gBAAgB,EAAE,MAAM,CAAA;IACxB,8DAA8D;IAC9D,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,CAAA;IACzD,oDAAoD;IACpD,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IAC/E,yBAAyB;IACzB,SAAS,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;IACpC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAYD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,2BAA2B,GAAG,WAAW,EAAE,CAiD9F;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,cAAc,CAAA;IAC5B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAoBzE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EAAE,EACrB,SAAS,EAAE,eAAe,GACzB,WAAW,EAAE,CAEf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,EAAE,EACrB,iBAAiB,EAAE,IAAI,GACtB,WAAW,GAAG,IAAI,CAkBpB"}
@@ -0,0 +1,45 @@
1
+ export interface SimulationClock {
2
+ /**
3
+ * Simulated time elapsed since clock creation (ms).
4
+ * Advances only when speed > 0 and the clock is running.
5
+ */
6
+ readonly now: number;
7
+ /**
8
+ * Time scale factor.
9
+ * 1.0 = real-time
10
+ * 2.0 = double speed
11
+ * 0 = paused (tick() returns 0, now stays fixed)
12
+ * Setting speed resumes a paused clock.
13
+ */
14
+ speed: number;
15
+ readonly isPaused: boolean;
16
+ pause(): void;
17
+ resume(): void;
18
+ /**
19
+ * Called from a requestAnimationFrame loop with the real wall-clock delta.
20
+ * Returns the scaled simulation delta that components should use for physics.
21
+ *
22
+ * If paused (speed === 0), returns 0 and does not advance `now`.
23
+ * Clamps realDeltaMs to 200 ms to prevent spiral-of-death on tab resume.
24
+ */
25
+ tick(realDeltaMs: number): number;
26
+ /**
27
+ * Advance the clock by exactly `dt` simulation milliseconds, bypassing speed.
28
+ * Intended for unit tests and deterministic replay — do NOT call from RAF.
29
+ */
30
+ step(dt: number): void;
31
+ /** Register a listener called after each tick / step with the scaled delta. */
32
+ onTick(listener: (dt: number) => void): () => void;
33
+ }
34
+ /**
35
+ * The scene-wide SimulationClock instance.
36
+ *
37
+ * ConveyanceContainer, Mover and all time-dependent mixins call:
38
+ * const dt = globalSimClock.tick(realDeltaMs)
39
+ *
40
+ * Tests use:
41
+ * globalSimClock.step(100) // advance 100 ms deterministically
42
+ * globalSimClock.speed = 5 // run at 5× for the next tick
43
+ */
44
+ export declare const globalSimClock: SimulationClock;
45
+ //# sourceMappingURL=simulation-clock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulation-clock.d.ts","sourceRoot":"","sources":["../../src/transfer/simulation-clock.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IAEpB;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAE1B,KAAK,IAAI,IAAI,CAAA;IACb,MAAM,IAAI,IAAI,CAAA;IAEd;;;;;;OAMG;IACH,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAA;IAEjC;;;OAGG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IAEtB,+EAA+E;IAC/E,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;CACnD;AAyDD;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,EAAE,eAAwC,CAAA"}