@hatiolab/things-scene 10.0.0-beta.13 → 10.0.0-beta.130

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 (471) hide show
  1. package/dist-types/animation/animate.d.ts.map +1 -1
  2. package/dist-types/animation/animations/animation.d.ts +5 -3
  3. package/dist-types/animation/animations/animation.d.ts.map +1 -1
  4. package/dist-types/animation/animations/heartbeat.d.ts +0 -7
  5. package/dist-types/animation/animations/heartbeat.d.ts.map +1 -1
  6. package/dist-types/animation/animations/waypoint.d.ts +45 -4
  7. package/dist-types/animation/animations/waypoint.d.ts.map +1 -1
  8. package/dist-types/animation/interfaces.d.ts +1 -1
  9. package/dist-types/animation/interfaces.d.ts.map +1 -1
  10. package/dist-types/clock/frame-clock.d.ts +119 -0
  11. package/dist-types/clock/frame-clock.d.ts.map +1 -0
  12. package/dist-types/clock/index.d.ts +3 -0
  13. package/dist-types/clock/index.d.ts.map +1 -0
  14. package/dist-types/command/command-migrate.d.ts.map +1 -1
  15. package/dist-types/command/snapshot-commander.d.ts.map +1 -1
  16. package/dist-types/components/audio.d.ts +8 -3
  17. package/dist-types/components/audio.d.ts.map +1 -1
  18. package/dist-types/components/component-data.d.ts +24 -0
  19. package/dist-types/components/component-data.d.ts.map +1 -1
  20. package/dist-types/components/component-drawing.d.ts.map +1 -1
  21. package/dist-types/components/component-geometry.d.ts.map +1 -1
  22. package/dist-types/components/component-hierarchy.d.ts +1 -1
  23. package/dist-types/components/component-hierarchy.d.ts.map +1 -1
  24. package/dist-types/components/component.d.ts +31 -4
  25. package/dist-types/components/component.d.ts.map +1 -1
  26. package/dist-types/components/container-abstract.d.ts +52 -11
  27. package/dist-types/components/container-abstract.d.ts.map +1 -1
  28. package/dist-types/components/container.d.ts +7 -2
  29. package/dist-types/components/container.d.ts.map +1 -1
  30. package/dist-types/components/data/data.d.ts.map +1 -1
  31. package/dist-types/components/data/evaluator.d.ts +27 -0
  32. package/dist-types/components/data/evaluator.d.ts.map +1 -1
  33. package/dist-types/components/donut.d.ts.map +1 -1
  34. package/dist-types/components/drawer/fill.d.ts.map +1 -1
  35. package/dist-types/components/drawer/stroke.d.ts.map +1 -1
  36. package/dist-types/components/ellipse.d.ts +8 -3
  37. package/dist-types/components/ellipse.d.ts.map +1 -1
  38. package/dist-types/components/generic-placeholders.d.ts +292 -0
  39. package/dist-types/components/generic-placeholders.d.ts.map +1 -0
  40. package/dist-types/components/geometry/snap-guide.d.ts +45 -0
  41. package/dist-types/components/geometry/snap-guide.d.ts.map +1 -0
  42. package/dist-types/components/geometry/transcoord.d.ts.map +1 -1
  43. package/dist-types/components/global-ref.d.ts.map +1 -1
  44. package/dist-types/components/group.d.ts +2 -0
  45. package/dist-types/components/group.d.ts.map +1 -1
  46. package/dist-types/components/html/reposition.d.ts.map +1 -1
  47. package/dist-types/components/html/shadow.d.ts +33 -1
  48. package/dist-types/components/html/shadow.d.ts.map +1 -1
  49. package/dist-types/components/html-overlay-container.d.ts +7 -2
  50. package/dist-types/components/html-overlay-container.d.ts.map +1 -1
  51. package/dist-types/components/html-overlay-element.d.ts +15 -5
  52. package/dist-types/components/html-overlay-element.d.ts.map +1 -1
  53. package/dist-types/components/image-view.d.ts +8 -3
  54. package/dist-types/components/image-view.d.ts.map +1 -1
  55. package/dist-types/components/index.d.ts +7 -0
  56. package/dist-types/components/index.d.ts.map +1 -1
  57. package/dist-types/components/info-window.d.ts +8 -3
  58. package/dist-types/components/info-window.d.ts.map +1 -1
  59. package/dist-types/components/line.d.ts +2 -1
  60. package/dist-types/components/line.d.ts.map +1 -1
  61. package/dist-types/components/local-ref.d.ts +8 -3
  62. package/dist-types/components/local-ref.d.ts.map +1 -1
  63. package/dist-types/components/mixins/connectable.d.ts +8 -3
  64. package/dist-types/components/mixins/connectable.d.ts.map +1 -1
  65. package/dist-types/components/mixins/data-source.d.ts +8 -3
  66. package/dist-types/components/mixins/data-source.d.ts.map +1 -1
  67. package/dist-types/components/mixins/gltf-component.d.ts +280 -0
  68. package/dist-types/components/mixins/gltf-component.d.ts.map +1 -0
  69. package/dist-types/components/mixins/holdable.d.ts +12 -0
  70. package/dist-types/components/mixins/holdable.d.ts.map +1 -0
  71. package/dist-types/components/mixins/html-element.d.ts +7 -2
  72. package/dist-types/components/mixins/html-element.d.ts.map +1 -1
  73. package/dist-types/components/mixins/move-handle.d.ts +17 -7
  74. package/dist-types/components/mixins/move-handle.d.ts.map +1 -1
  75. package/dist-types/components/mixins/rect-path.d.ts +8 -3
  76. package/dist-types/components/mixins/rect-path.d.ts.map +1 -1
  77. package/dist-types/components/mixins/three-d-only.d.ts +248 -0
  78. package/dist-types/components/mixins/three-d-only.d.ts.map +1 -0
  79. package/dist-types/components/mixins/value-holder.d.ts +8 -3
  80. package/dist-types/components/mixins/value-holder.d.ts.map +1 -1
  81. package/dist-types/components/mutater/path.d.ts.map +1 -1
  82. package/dist-types/components/node.d.ts +8 -3
  83. package/dist-types/components/node.d.ts.map +1 -1
  84. package/dist-types/components/outline/path-outline.d.ts.map +1 -1
  85. package/dist-types/components/polygon-container.d.ts +61 -0
  86. package/dist-types/components/polygon-container.d.ts.map +1 -0
  87. package/dist-types/components/polygon.d.ts +2 -0
  88. package/dist-types/components/polygon.d.ts.map +1 -1
  89. package/dist-types/components/polyline.d.ts +6 -0
  90. package/dist-types/components/polyline.d.ts.map +1 -1
  91. package/dist-types/components/popup-container.d.ts +25 -0
  92. package/dist-types/components/popup-container.d.ts.map +1 -0
  93. package/dist-types/components/popup.d.ts +38 -3
  94. package/dist-types/components/popup.d.ts.map +1 -1
  95. package/dist-types/components/position/popup-position.d.ts +11 -0
  96. package/dist-types/components/position/popup-position.d.ts.map +1 -1
  97. package/dist-types/components/rect.d.ts +16 -6
  98. package/dist-types/components/rect.d.ts.map +1 -1
  99. package/dist-types/components/retention/retention-manager.d.ts +9 -1
  100. package/dist-types/components/retention/retention-manager.d.ts.map +1 -1
  101. package/dist-types/components/root-container.d.ts +18 -4
  102. package/dist-types/components/root-container.d.ts.map +1 -1
  103. package/dist-types/components/ruler.d.ts +8 -3
  104. package/dist-types/components/ruler.d.ts.map +1 -1
  105. package/dist-types/components/service-component.d.ts +269 -0
  106. package/dist-types/components/service-component.d.ts.map +1 -0
  107. package/dist-types/components/shape.d.ts.map +1 -1
  108. package/dist-types/components/star.d.ts.map +1 -1
  109. package/dist-types/components/text.d.ts +8 -3
  110. package/dist-types/components/text.d.ts.map +1 -1
  111. package/dist-types/core/dom-to-image.d.ts.map +1 -1
  112. package/dist-types/core/logger.d.ts.map +1 -1
  113. package/dist-types/core/memoize.d.ts.map +1 -1
  114. package/dist-types/decorator/decorator-registry.d.ts +14 -1
  115. package/dist-types/decorator/decorator-registry.d.ts.map +1 -1
  116. package/dist-types/decorator/decorators/animated-icon-decorator.d.ts.map +1 -1
  117. package/dist-types/decorator/decorators/border-highlighting-decorator.d.ts +0 -4
  118. package/dist-types/decorator/decorators/border-highlighting-decorator.d.ts.map +1 -1
  119. package/dist-types/decorator/decorators/bouncing-arrow-decorator.d.ts +0 -3
  120. package/dist-types/decorator/decorators/bouncing-arrow-decorator.d.ts.map +1 -1
  121. package/dist-types/decorator/decorators/data-spread-decorator.d.ts +16 -0
  122. package/dist-types/decorator/decorators/data-spread-decorator.d.ts.map +1 -1
  123. package/dist-types/diagnostics/contract-inspector.d.ts +110 -0
  124. package/dist-types/diagnostics/contract-inspector.d.ts.map +1 -0
  125. package/dist-types/diagnostics/data-lag-tracker.d.ts +50 -0
  126. package/dist-types/diagnostics/data-lag-tracker.d.ts.map +1 -0
  127. package/dist-types/diagnostics/inspector.d.ts +192 -5
  128. package/dist-types/diagnostics/inspector.d.ts.map +1 -1
  129. package/dist-types/diagnostics/load-tracker.d.ts +82 -0
  130. package/dist-types/diagnostics/load-tracker.d.ts.map +1 -0
  131. package/dist-types/diagnostics/loading-overlay.d.ts +58 -0
  132. package/dist-types/diagnostics/loading-overlay.d.ts.map +1 -0
  133. package/dist-types/diagnostics/metrics.d.ts +10 -0
  134. package/dist-types/diagnostics/metrics.d.ts.map +1 -1
  135. package/dist-types/effect/shadow.d.ts +3 -1
  136. package/dist-types/effect/shadow.d.ts.map +1 -1
  137. package/dist-types/event-map/index.d.ts +1 -0
  138. package/dist-types/event-map/index.d.ts.map +1 -1
  139. package/dist-types/event-map/transition-handler.d.ts +2 -0
  140. package/dist-types/event-map/transition-handler.d.ts.map +1 -0
  141. package/dist-types/flow/auto-route.d.ts +36 -0
  142. package/dist-types/flow/auto-route.d.ts.map +1 -0
  143. package/dist-types/flow/face-anchors.d.ts +26 -0
  144. package/dist-types/flow/face-anchors.d.ts.map +1 -0
  145. package/dist-types/flow/flow-engine.d.ts +122 -0
  146. package/dist-types/flow/flow-engine.d.ts.map +1 -0
  147. package/dist-types/flow/flow-graph-coordinator.d.ts +80 -0
  148. package/dist-types/flow/flow-graph-coordinator.d.ts.map +1 -0
  149. package/dist-types/flow/flow-graph-validator.d.ts +33 -0
  150. package/dist-types/flow/flow-graph-validator.d.ts.map +1 -0
  151. package/dist-types/flow/flow-graph.d.ts +76 -0
  152. package/dist-types/flow/flow-graph.d.ts.map +1 -0
  153. package/dist-types/flow/flow-introspection.d.ts +36 -0
  154. package/dist-types/flow/flow-introspection.d.ts.map +1 -0
  155. package/dist-types/flow/flow-node.d.ts +69 -0
  156. package/dist-types/flow/flow-node.d.ts.map +1 -0
  157. package/dist-types/flow/flow-orientation-coordinator.d.ts +13 -0
  158. package/dist-types/flow/flow-orientation-coordinator.d.ts.map +1 -0
  159. package/dist-types/flow/flow-orientation.d.ts +42 -0
  160. package/dist-types/flow/flow-orientation.d.ts.map +1 -0
  161. package/dist-types/flow/flow-trace.d.ts +5 -0
  162. package/dist-types/flow/flow-trace.d.ts.map +1 -0
  163. package/dist-types/flow/index.d.ts +16 -0
  164. package/dist-types/flow/index.d.ts.map +1 -0
  165. package/dist-types/flow/segment-topology.d.ts +225 -0
  166. package/dist-types/flow/segment-topology.d.ts.map +1 -0
  167. package/dist-types/flow/station-host-inference.d.ts +23 -0
  168. package/dist-types/flow/station-host-inference.d.ts.map +1 -0
  169. package/dist-types/interfaces/event-handler.d.ts +40 -0
  170. package/dist-types/interfaces/event-handler.d.ts.map +1 -0
  171. package/dist-types/interfaces/index.d.ts +2 -0
  172. package/dist-types/interfaces/index.d.ts.map +1 -1
  173. package/dist-types/interfaces/layout.d.ts +35 -1
  174. package/dist-types/interfaces/layout.d.ts.map +1 -1
  175. package/dist-types/interfaces/providers.d.ts +27 -3
  176. package/dist-types/interfaces/providers.d.ts.map +1 -1
  177. package/dist-types/interfaces/real-object.d.ts +8 -1
  178. package/dist-types/interfaces/real-object.d.ts.map +1 -1
  179. package/dist-types/interfaces/rendering.d.ts +86 -14
  180. package/dist-types/interfaces/rendering.d.ts.map +1 -1
  181. package/dist-types/interfaces/types.d.ts +20 -1
  182. package/dist-types/interfaces/types.d.ts.map +1 -1
  183. package/dist-types/items/arrangement/centering-queue-strategy.d.ts +10 -0
  184. package/dist-types/items/arrangement/centering-queue-strategy.d.ts.map +1 -0
  185. package/dist-types/items/arrangement/gravity-strategy.d.ts +9 -0
  186. package/dist-types/items/arrangement/gravity-strategy.d.ts.map +1 -0
  187. package/dist-types/items/arrangement/grid-strategy.d.ts +11 -0
  188. package/dist-types/items/arrangement/grid-strategy.d.ts.map +1 -0
  189. package/dist-types/items/arrangement/index.d.ts +7 -0
  190. package/dist-types/items/arrangement/index.d.ts.map +1 -0
  191. package/dist-types/items/arrangement/queue-strategy.d.ts +9 -0
  192. package/dist-types/items/arrangement/queue-strategy.d.ts.map +1 -0
  193. package/dist-types/items/arrangement/shelf-strategy.d.ts +11 -0
  194. package/dist-types/items/arrangement/shelf-strategy.d.ts.map +1 -0
  195. package/dist-types/items/arrangement/stack-strategy.d.ts +9 -0
  196. package/dist-types/items/arrangement/stack-strategy.d.ts.map +1 -0
  197. package/dist-types/items/capacity-mixin.d.ts +299 -0
  198. package/dist-types/items/capacity-mixin.d.ts.map +1 -0
  199. package/dist-types/items/capacity.d.ts +53 -0
  200. package/dist-types/items/capacity.d.ts.map +1 -0
  201. package/dist-types/items/index.d.ts +5 -0
  202. package/dist-types/items/index.d.ts.map +1 -0
  203. package/dist-types/items/items-data-binding.d.ts +79 -0
  204. package/dist-types/items/items-data-binding.d.ts.map +1 -0
  205. package/dist-types/items/slot-record.d.ts +23 -0
  206. package/dist-types/items/slot-record.d.ts.map +1 -0
  207. package/dist-types/layer/action/popup.d.ts +13 -0
  208. package/dist-types/layer/action/popup.d.ts.map +1 -1
  209. package/dist-types/layer/add-layer.d.ts +8 -0
  210. package/dist-types/layer/add-layer.d.ts.map +1 -1
  211. package/dist-types/layer/dual-canvas-layer.d.ts.map +1 -1
  212. package/dist-types/layer/index.d.ts +1 -0
  213. package/dist-types/layer/index.d.ts.map +1 -1
  214. package/dist-types/layer/layer.d.ts +2 -0
  215. package/dist-types/layer/layer.d.ts.map +1 -1
  216. package/dist-types/layer/model-layer.d.ts +81 -7
  217. package/dist-types/layer/model-layer.d.ts.map +1 -1
  218. package/dist-types/layer/modeler/index.d.ts +1 -0
  219. package/dist-types/layer/modeler/index.d.ts.map +1 -1
  220. package/dist-types/layer/modeler/move-handle-icon.d.ts +2 -0
  221. package/dist-types/layer/modeler/move-handle-icon.d.ts.map +1 -0
  222. package/dist-types/layer/modeler/move-handle-modeler.d.ts +18 -0
  223. package/dist-types/layer/modeler/move-handle-modeler.d.ts.map +1 -0
  224. package/dist-types/layer/modeler/path-handler.d.ts.map +1 -1
  225. package/dist-types/layer/modeler/rotator.d.ts.map +1 -1
  226. package/dist-types/layer/modeling-layer.d.ts +19 -0
  227. package/dist-types/layer/modeling-layer.d.ts.map +1 -1
  228. package/dist-types/layer/selection/selected-finder.d.ts +1 -1
  229. package/dist-types/layer/selection/selected-finder.d.ts.map +1 -1
  230. package/dist-types/layer/selection-layer.d.ts +7 -0
  231. package/dist-types/layer/selection-layer.d.ts.map +1 -1
  232. package/dist-types/layer/snap-guide-layer.d.ts +23 -0
  233. package/dist-types/layer/snap-guide-layer.d.ts.map +1 -0
  234. package/dist-types/layout/absolute.d.ts +2 -2
  235. package/dist-types/layout/card.d.ts +2 -2
  236. package/dist-types/layout/linear-horizontal.d.ts +2 -2
  237. package/dist-types/layout/linear-vertical.d.ts +2 -2
  238. package/dist-types/layout/table.d.ts +3 -3
  239. package/dist-types/license/license.d.ts.map +1 -1
  240. package/dist-types/math/component-pose.d.ts +51 -0
  241. package/dist-types/math/component-pose.d.ts.map +1 -0
  242. package/dist-types/math/index.d.ts +3 -0
  243. package/dist-types/math/index.d.ts.map +1 -0
  244. package/dist-types/math/pose6dof.d.ts +93 -0
  245. package/dist-types/math/pose6dof.d.ts.map +1 -0
  246. package/dist-types/navigation/index.d.ts +7 -0
  247. package/dist-types/navigation/index.d.ts.map +1 -0
  248. package/dist-types/navigation/nav-graph.d.ts +55 -0
  249. package/dist-types/navigation/nav-graph.d.ts.map +1 -0
  250. package/dist-types/navigation/path-planner.d.ts +29 -0
  251. package/dist-types/navigation/path-planner.d.ts.map +1 -0
  252. package/dist-types/navigation/reservation-table.d.ts +103 -0
  253. package/dist-types/navigation/reservation-table.d.ts.map +1 -0
  254. package/dist-types/navigation/types.d.ts +145 -0
  255. package/dist-types/navigation/types.d.ts.map +1 -0
  256. package/dist-types/placement/index.d.ts +3 -0
  257. package/dist-types/placement/index.d.ts.map +1 -0
  258. package/dist-types/placement/placement.d.ts +53 -0
  259. package/dist-types/placement/placement.d.ts.map +1 -0
  260. package/dist-types/search/index.d.ts +3 -0
  261. package/dist-types/search/index.d.ts.map +1 -0
  262. package/dist-types/search/scene-search-engine.d.ts +64 -0
  263. package/dist-types/search/scene-search-engine.d.ts.map +1 -0
  264. package/dist-types/search/search-overlay.d.ts +94 -0
  265. package/dist-types/search/search-overlay.d.ts.map +1 -0
  266. package/dist-types/things-scene/api/add-start.d.ts +25 -0
  267. package/dist-types/things-scene/api/add-start.d.ts.map +1 -1
  268. package/dist-types/things-scene/api/align.d.ts.map +1 -1
  269. package/dist-types/things-scene/api/distribute.d.ts.map +1 -1
  270. package/dist-types/things-scene/api/ids.d.ts +4 -1
  271. package/dist-types/things-scene/api/ids.d.ts.map +1 -1
  272. package/dist-types/things-scene/api/index.d.ts +1 -1
  273. package/dist-types/things-scene/api/index.d.ts.map +1 -1
  274. package/dist-types/things-scene/api/place.d.ts.map +1 -1
  275. package/dist-types/things-scene/api/zorder.d.ts.map +1 -1
  276. package/dist-types/things-scene/application-context.d.ts +62 -0
  277. package/dist-types/things-scene/application-context.d.ts.map +1 -1
  278. package/dist-types/things-scene/create.d.ts +43 -3
  279. package/dist-types/things-scene/create.d.ts.map +1 -1
  280. package/dist-types/things-scene/index.d.ts +29 -0
  281. package/dist-types/things-scene/index.d.ts.map +1 -1
  282. package/dist-types/things-scene/scene.d.ts +120 -2
  283. package/dist-types/things-scene/scene.d.ts.map +1 -1
  284. package/dist-types/threed/arrow-3d.d.ts +13 -4
  285. package/dist-types/threed/arrow-3d.d.ts.map +1 -1
  286. package/dist-types/threed/environments/base-environment.d.ts +17 -0
  287. package/dist-types/threed/environments/base-environment.d.ts.map +1 -0
  288. package/dist-types/threed/environments/cloudy-environment.d.ts +10 -0
  289. package/dist-types/threed/environments/cloudy-environment.d.ts.map +1 -0
  290. package/dist-types/threed/environments/factory-environment.d.ts +3 -3
  291. package/dist-types/threed/environments/factory-environment.d.ts.map +1 -1
  292. package/dist-types/threed/environments/home-environment.d.ts +3 -3
  293. package/dist-types/threed/environments/home-environment.d.ts.map +1 -1
  294. package/dist-types/threed/environments/office-environment.d.ts +3 -3
  295. package/dist-types/threed/environments/office-environment.d.ts.map +1 -1
  296. package/dist-types/threed/environments/rainy-environment.d.ts +10 -0
  297. package/dist-types/threed/environments/rainy-environment.d.ts.map +1 -0
  298. package/dist-types/threed/environments/studio-environment.d.ts +2 -3
  299. package/dist-types/threed/environments/studio-environment.d.ts.map +1 -1
  300. package/dist-types/threed/environments/sunny-environment.d.ts +10 -0
  301. package/dist-types/threed/environments/sunny-environment.d.ts.map +1 -0
  302. package/dist-types/threed/environments/warehouse-environment.d.ts +3 -3
  303. package/dist-types/threed/environments/warehouse-environment.d.ts.map +1 -1
  304. package/dist-types/threed/factories/backdrop.d.ts +537 -0
  305. package/dist-types/threed/factories/backdrop.d.ts.map +1 -0
  306. package/dist-types/threed/factories/banner.d.ts +14 -4
  307. package/dist-types/threed/factories/banner.d.ts.map +1 -1
  308. package/dist-types/threed/factories/camera.d.ts +10 -3
  309. package/dist-types/threed/factories/camera.d.ts.map +1 -1
  310. package/dist-types/threed/factories/cube.d.ts +9 -3
  311. package/dist-types/threed/factories/cube.d.ts.map +1 -1
  312. package/dist-types/threed/factories/cylinder.d.ts +1 -0
  313. package/dist-types/threed/factories/cylinder.d.ts.map +1 -1
  314. package/dist-types/threed/factories/decal.d.ts +512 -0
  315. package/dist-types/threed/factories/decal.d.ts.map +1 -0
  316. package/dist-types/threed/factories/floor-plate.d.ts +11 -0
  317. package/dist-types/threed/factories/floor-plate.d.ts.map +1 -0
  318. package/dist-types/threed/factories/gltf-object.d.ts +266 -38
  319. package/dist-types/threed/factories/gltf-object.d.ts.map +1 -1
  320. package/dist-types/threed/factories/group.d.ts +2 -0
  321. package/dist-types/threed/factories/group.d.ts.map +1 -0
  322. package/dist-types/threed/factories/light.d.ts +1 -0
  323. package/dist-types/threed/factories/light.d.ts.map +1 -1
  324. package/dist-types/threed/factories/line.d.ts +10 -0
  325. package/dist-types/threed/factories/line.d.ts.map +1 -0
  326. package/dist-types/threed/factories/ortholine.d.ts +10 -0
  327. package/dist-types/threed/factories/ortholine.d.ts.map +1 -0
  328. package/dist-types/threed/factories/polygon.d.ts +19 -0
  329. package/dist-types/threed/factories/polygon.d.ts.map +1 -1
  330. package/dist-types/threed/factories/polyline.d.ts +10 -0
  331. package/dist-types/threed/factories/polyline.d.ts.map +1 -0
  332. package/dist-types/threed/factories/rect.d.ts.map +1 -1
  333. package/dist-types/threed/factories/sphere.d.ts +6 -0
  334. package/dist-types/threed/factories/sphere.d.ts.map +1 -1
  335. package/dist-types/threed/factories/sprite.d.ts +9 -3
  336. package/dist-types/threed/factories/sprite.d.ts.map +1 -1
  337. package/dist-types/threed/factories/triangle.d.ts.map +1 -1
  338. package/dist-types/threed/factories/wall.d.ts +9 -3
  339. package/dist-types/threed/factories/wall.d.ts.map +1 -1
  340. package/dist-types/threed/floor/floor.d.ts.map +1 -1
  341. package/dist-types/threed/handle-3d.d.ts +21 -0
  342. package/dist-types/threed/handle-3d.d.ts.map +1 -0
  343. package/dist-types/threed/html/elements.d.ts.map +1 -1
  344. package/dist-types/threed/index.d.ts +24 -0
  345. package/dist-types/threed/index.d.ts.map +1 -1
  346. package/dist-types/threed/managers/box-selection-manager.d.ts +26 -0
  347. package/dist-types/threed/managers/box-selection-manager.d.ts.map +1 -0
  348. package/dist-types/threed/managers/camera-bookmark-manager.d.ts +66 -32
  349. package/dist-types/threed/managers/camera-bookmark-manager.d.ts.map +1 -1
  350. package/dist-types/threed/managers/camera-manager.d.ts +9 -3
  351. package/dist-types/threed/managers/camera-manager.d.ts.map +1 -1
  352. package/dist-types/threed/managers/controls-manager.d.ts +25 -4
  353. package/dist-types/threed/managers/controls-manager.d.ts.map +1 -1
  354. package/dist-types/threed/managers/event-manager3d.d.ts +14 -0
  355. package/dist-types/threed/managers/event-manager3d.d.ts.map +1 -1
  356. package/dist-types/threed/managers/gizmo-manager.d.ts +6 -0
  357. package/dist-types/threed/managers/gizmo-manager.d.ts.map +1 -1
  358. package/dist-types/threed/managers/gizmo-operation-manager.d.ts +54 -1
  359. package/dist-types/threed/managers/gizmo-operation-manager.d.ts.map +1 -1
  360. package/dist-types/threed/managers/index.d.ts +3 -1
  361. package/dist-types/threed/managers/index.d.ts.map +1 -1
  362. package/dist-types/threed/managers/interaction-manager.d.ts +17 -0
  363. package/dist-types/threed/managers/interaction-manager.d.ts.map +1 -1
  364. package/dist-types/threed/managers/light-manager.d.ts +15 -0
  365. package/dist-types/threed/managers/light-manager.d.ts.map +1 -1
  366. package/dist-types/threed/managers/renderer-manager.d.ts +37 -0
  367. package/dist-types/threed/managers/renderer-manager.d.ts.map +1 -1
  368. package/dist-types/threed/managers/scene-manager.d.ts +12 -2
  369. package/dist-types/threed/managers/scene-manager.d.ts.map +1 -1
  370. package/dist-types/threed/managers/types.d.ts +4 -2
  371. package/dist-types/threed/managers/types.d.ts.map +1 -1
  372. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts +154 -0
  373. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts.map +1 -0
  374. package/dist-types/threed/material-3d.d.ts +5 -2
  375. package/dist-types/threed/material-3d.d.ts.map +1 -1
  376. package/dist-types/threed/ratio-lock-utils.d.ts +9 -0
  377. package/dist-types/threed/ratio-lock-utils.d.ts.map +1 -0
  378. package/dist-types/threed/real-object-dom-element.d.ts +2 -0
  379. package/dist-types/threed/real-object-dom-element.d.ts.map +1 -1
  380. package/dist-types/threed/real-object-dom-texture.d.ts +9 -0
  381. package/dist-types/threed/real-object-dom-texture.d.ts.map +1 -1
  382. package/dist-types/threed/real-object-external-model.d.ts +24 -0
  383. package/dist-types/threed/real-object-external-model.d.ts.map +1 -0
  384. package/dist-types/threed/real-object-extrude.d.ts +16 -1
  385. package/dist-types/threed/real-object-extrude.d.ts.map +1 -1
  386. package/dist-types/threed/real-object-gltf.d.ts +21 -11
  387. package/dist-types/threed/real-object-gltf.d.ts.map +1 -1
  388. package/dist-types/threed/real-object-group.d.ts +2 -0
  389. package/dist-types/threed/real-object-group.d.ts.map +1 -1
  390. package/dist-types/threed/real-object-line.d.ts +83 -0
  391. package/dist-types/threed/real-object-line.d.ts.map +1 -0
  392. package/dist-types/threed/real-object-mesh.d.ts.map +1 -1
  393. package/dist-types/threed/real-object-plane-2d.d.ts +23 -0
  394. package/dist-types/threed/real-object-plane-2d.d.ts.map +1 -1
  395. package/dist-types/threed/real-object-service.d.ts +14 -0
  396. package/dist-types/threed/real-object-service.d.ts.map +1 -0
  397. package/dist-types/threed/real-object-sprite.d.ts +7 -1
  398. package/dist-types/threed/real-object-sprite.d.ts.map +1 -1
  399. package/dist-types/threed/real-object-text.d.ts +5 -0
  400. package/dist-types/threed/real-object-text.d.ts.map +1 -1
  401. package/dist-types/threed/real-object.d.ts +246 -7
  402. package/dist-types/threed/real-object.d.ts.map +1 -1
  403. package/dist-types/threed/text-editor-3d.d.ts +11 -0
  404. package/dist-types/threed/text-editor-3d.d.ts.map +1 -0
  405. package/dist-types/threed/texture/canvas-texture.d.ts +7 -0
  406. package/dist-types/threed/texture/canvas-texture.d.ts.map +1 -1
  407. package/dist-types/threed/texture/fillstyle-texture.d.ts +57 -0
  408. package/dist-types/threed/texture/fillstyle-texture.d.ts.map +1 -0
  409. package/dist-types/threed/texture/text-texture.d.ts +15 -0
  410. package/dist-types/threed/texture/text-texture.d.ts.map +1 -1
  411. package/dist-types/threed/three-capability.d.ts +131 -15
  412. package/dist-types/threed/three-capability.d.ts.map +1 -1
  413. package/dist-types/threed/three-container.d.ts +0 -1
  414. package/dist-types/threed/three-container.d.ts.map +1 -1
  415. package/dist-types/threed/three-dimensional-container.d.ts +0 -1
  416. package/dist-types/threed/three-dimensional-container.d.ts.map +1 -1
  417. package/dist-types/threed/utils/anchor.d.ts +33 -0
  418. package/dist-types/threed/utils/anchor.d.ts.map +1 -0
  419. package/dist-types/threed/utils/dispose.d.ts.map +1 -1
  420. package/dist-types/threed/utils/polygon-shape.d.ts +21 -0
  421. package/dist-types/threed/utils/polygon-shape.d.ts.map +1 -0
  422. package/dist-types/threed/utils/tether.d.ts +46 -0
  423. package/dist-types/threed/utils/tether.d.ts.map +1 -0
  424. package/dist-types/threed/z-priority.d.ts +27 -0
  425. package/dist-types/threed/z-priority.d.ts.map +1 -0
  426. package/dist-types/tracker/tracker.d.ts +57 -0
  427. package/dist-types/tracker/tracker.d.ts.map +1 -0
  428. package/dist-types/transfer/carrier-line-capability.d.ts +95 -0
  429. package/dist-types/transfer/carrier-line-capability.d.ts.map +1 -0
  430. package/dist-types/transfer/centering-slot-strategy.d.ts +8 -0
  431. package/dist-types/transfer/centering-slot-strategy.d.ts.map +1 -0
  432. package/dist-types/transfer/container-capacity-helpers.d.ts +18 -0
  433. package/dist-types/transfer/container-capacity-helpers.d.ts.map +1 -0
  434. package/dist-types/transfer/container-capacity.d.ts +11 -0
  435. package/dist-types/transfer/container-capacity.d.ts.map +1 -0
  436. package/dist-types/transfer/fixed-slot-strategy.d.ts +8 -0
  437. package/dist-types/transfer/fixed-slot-strategy.d.ts.map +1 -0
  438. package/dist-types/transfer/index.d.ts +25 -0
  439. package/dist-types/transfer/index.d.ts.map +1 -0
  440. package/dist-types/transfer/pickup-helpers.d.ts +65 -0
  441. package/dist-types/transfer/pickup-helpers.d.ts.map +1 -0
  442. package/dist-types/transfer/simulation-clock.d.ts +45 -0
  443. package/dist-types/transfer/simulation-clock.d.ts.map +1 -0
  444. package/dist-types/transfer/tracer.d.ts +35 -0
  445. package/dist-types/transfer/tracer.d.ts.map +1 -0
  446. package/dist-types/transfer/transfer.d.ts +229 -0
  447. package/dist-types/transfer/transfer.d.ts.map +1 -0
  448. package/dist-types/transfer/transferable-mixin.d.ts +260 -0
  449. package/dist-types/transfer/transferable-mixin.d.ts.map +1 -0
  450. package/dist-types/transfer/types.d.ts +424 -0
  451. package/dist-types/transfer/types.d.ts.map +1 -0
  452. package/dist-types/transition/transition-effect.d.ts +117 -0
  453. package/dist-types/transition/transition-effect.d.ts.map +1 -0
  454. package/dist-types/types/bounding.d.ts +1 -1
  455. package/dist-types/types/bounding.d.ts.map +1 -1
  456. package/dist-types/types/capability.d.ts +59 -0
  457. package/dist-types/types/capability.d.ts.map +1 -0
  458. package/dist-types/types/component.d.ts +6 -177
  459. package/dist-types/types/component.d.ts.map +1 -1
  460. package/dist-types/types/event.d.ts +57 -0
  461. package/dist-types/types/event.d.ts.map +1 -1
  462. package/dist-types/types/polygon-path-arc.d.ts +72 -0
  463. package/dist-types/types/polygon-path-arc.d.ts.map +1 -0
  464. package/dist-types/types/polygon-path.d.ts +153 -0
  465. package/dist-types/types/polygon-path.d.ts.map +1 -0
  466. package/package.json +13 -2
  467. package/things-scene-min.js +12 -13
  468. package/things-scene-min.js.map +1 -1
  469. package/things-scene-transfer.mjs +7 -0
  470. package/things-scene.mjs +8 -9
  471. package/things-scene.mjs.map +1 -1
@@ -0,0 +1,55 @@
1
+ import type { Lane, Intersection } from './types.js';
2
+ import type { Vec3 } from '../transfer/types.js';
3
+ export interface NavNode {
4
+ id: string;
5
+ position: Vec3;
6
+ /** 'lane-start' | 'lane-end' | 'intersection' | 'goal' (planner 가 임시 추가). */
7
+ type: string;
8
+ }
9
+ export interface NavEdge {
10
+ fromNode: string;
11
+ toNode: string;
12
+ /** 통과하는 resource id (충돌 검사용). lane id 또는 intersection id. */
13
+ resource: string;
14
+ /** 거리 (scene unit). cost 의 기본 단위. */
15
+ distance: number;
16
+ /** 통과 sim time (ms). speed 가 결정. lane.speedLimit 또는 vehicle.maxSpeed 기준. */
17
+ durationMs: number;
18
+ /** 이 edge 의 통과 방향이 lane 의 정방향과 같으면 true. twoway 의 역방향이면 false. */
19
+ forward: boolean;
20
+ }
21
+ export declare class NavGraph {
22
+ readonly nodes: Map<string, NavNode>;
23
+ /** adjacency list — fromNode → outgoing edges. */
24
+ readonly edges: Map<string, NavEdge[]>;
25
+ /** Lane 별 endpoint node id 매핑. graph augmentation (start/goal 추가) 시 유용. */
26
+ readonly laneEndpoints: Map<string, {
27
+ startNodeId: string;
28
+ endNodeId: string;
29
+ }>;
30
+ addNode(node: NavNode): void;
31
+ addEdge(edge: NavEdge): void;
32
+ edgesFrom(nodeId: string): NavEdge[];
33
+ /** 가장 가까운 node 찾기 (start/goal 진입용). bruteforce — 큰 그래프엔 spatial index 권장. */
34
+ findNearestNode(pos: Vec3): NavNode | null;
35
+ }
36
+ export interface BuildNavGraphOptions {
37
+ /** Lane 별 default speed (없으면 lane.speedLimit, 그것도 없으면 fallback 100). */
38
+ defaultSpeed?: number;
39
+ }
40
+ /**
41
+ * Lane / Intersection 으로부터 NavGraph 를 빌드.
42
+ *
43
+ * 노드 명명 규약:
44
+ * - lane endpoint: `${lane.id}:start`, `${lane.id}:end`
45
+ * - intersection: `${intersection.id}` (intersection 자체가 단일 노드 — 통과 cost 는
46
+ * intersection.crossingTimeMs 로 모델링)
47
+ *
48
+ * Edge 종류:
49
+ * - lane traversal: lane.id 가 resource. oneway 면 start→end 만, twoway 면
50
+ * 양방향 두 edge. distance = lane.geometry.centerPoints 누적.
51
+ * - intersection crossing: intersection.id 가 resource. 만나는 lane 들의
52
+ * endpoint 간 edge (직선 거리 + crossingTimeMs).
53
+ */
54
+ export declare function buildNavGraph(lanes: Lane[], intersections: Intersection[], options?: BuildNavGraphOptions): NavGraph;
55
+ //# sourceMappingURL=nav-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-graph.d.ts","sourceRoot":"","sources":["../../src/navigation/nav-graph.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAEhD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,IAAI,CAAA;IACd,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAA;IAChB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAA;IAClB,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,qBAAa,QAAQ;IACnB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAY;IAChD,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAY;IAElD,2EAA2E;IAC3E,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAY;IAE3F,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAO5B,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAW5B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE;IAIpC,6EAA6E;IAC7E,eAAe,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,GAAG,IAAI;CAY3C;AAaD,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,IAAI,EAAE,EACb,aAAa,EAAE,YAAY,EAAE,EAC7B,OAAO,GAAE,oBAAyB,GACjC,QAAQ,CA0GV"}
@@ -0,0 +1,29 @@
1
+ import type { NavGraph } from './nav-graph.js';
2
+ import type { PathPlan, PathPlanOptions } from './types.js';
3
+ /**
4
+ * A* 경로 계획.
5
+ *
6
+ * @param graph navigation graph
7
+ * @param startNodeId 출발 node id
8
+ * @param goalNodeId 도착 node id
9
+ * @param options vehicle 의 speed / priority / startSimMs / deadline
10
+ * @returns PathPlan 또는 null (도달 불가 / deadline 초과)
11
+ */
12
+ export declare function planPathAStar(graph: NavGraph, startNodeId: string, goalNodeId: string, options?: PathPlanOptions): PathPlan | null;
13
+ /**
14
+ * PathPlan 의 segments 를 ReservationTable 의 add 입력 형태로 변환.
15
+ *
16
+ * 호출자가 ReservationTable.add 를 segment 별로 시도하고, 실패 시 rollback
17
+ * (이미 add 된 것들 release) 책임. helper 는 단순 매핑.
18
+ */
19
+ export declare function planToReservations(plan: PathPlan, reserverId: string, priority?: number, metadata?: Record<string, any>): Array<{
20
+ resource: string;
21
+ timeWindow: {
22
+ startSimMs: number;
23
+ endSimMs: number;
24
+ };
25
+ reserverId: string;
26
+ priority: number;
27
+ metadata?: Record<string, any>;
28
+ }>;
29
+ //# sourceMappingURL=path-planner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-planner.d.ts","sourceRoot":"","sources":["../../src/navigation/path-planner.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAe,eAAe,EAAE,MAAM,YAAY,CAAA;AA+BxE;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,eAAoB,GAC5B,QAAQ,GAAG,IAAI,CAqGjB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAAU,EACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CAAC,CAQzJ"}
@@ -0,0 +1,103 @@
1
+ import type { Reservation, TimeWindow, YieldDecision, YieldPolicy } from './types.js';
2
+ /** 기본 yield policy: priority 낮은(수치 높은) 쪽이 양보, 같으면 fifo. */
3
+ export declare const standardYieldPolicy: YieldPolicy;
4
+ /**
5
+ * Conflict — 두 reservation 의 충돌 정보. yield policy 가 어느 쪽이 양보할지 결정.
6
+ */
7
+ export interface Conflict {
8
+ a: Reservation;
9
+ b: Reservation;
10
+ decision: YieldDecision;
11
+ }
12
+ /**
13
+ * Phase K — 충돌 발생 기록. observability 의 입력 — Atlas 의 Conflicts mode 가
14
+ * 활용. 시간순 누적 (ring buffer 로 maxEntries 제한).
15
+ */
16
+ export interface ConflictRecord {
17
+ /** 충돌 발생 sim time (proposed reservation 의 시작 시간으로 추정). */
18
+ simTime: number;
19
+ resource: string;
20
+ /** 시도된 reservation (table 에 안 들어감). */
21
+ proposed: Omit<Reservation, 'id'>;
22
+ /** 충돌한 기존 reservations. */
23
+ existing: Reservation[];
24
+ /** 결과 — 'rejected' (proposed 가 양보) | 'preempted' (기존이 evict 됨). */
25
+ outcome: 'rejected' | 'preempted';
26
+ }
27
+ export declare class ReservationTable {
28
+ private readonly _byResource;
29
+ private readonly _byReserver;
30
+ private readonly _yieldPolicy;
31
+ private readonly _listeners;
32
+ private readonly _conflictLog;
33
+ private _maxConflictLog;
34
+ constructor(yieldPolicy?: YieldPolicy);
35
+ /**
36
+ * Reservation 을 추가. 같은 resource + 겹치는 window 에 다른 reservation 이
37
+ * 있으면 yield policy 가 어느 쪽이 양보할지 결정.
38
+ *
39
+ * 반환:
40
+ * - { ok: true, reservation } 충돌 없음
41
+ * - { ok: false, conflicts } 이 reservation 이 양보 (추가 안 됨)
42
+ * - { ok: 'preempted', reservation, evicted } 기존 reservation 들이 양보 (제거됨)
43
+ *
44
+ * preempted 케이스는 호출자가 evicted reservation 의 reserver 들에게
45
+ * notification 하고 reroute 하도록 함.
46
+ */
47
+ add(input: Omit<Reservation, 'id'>): AddResult;
48
+ /** Phase K — 충돌 로그 (rejected / preempted). 시간순 누적. */
49
+ conflictLog(): readonly ConflictRecord[];
50
+ /** maxEntries 설정 (테스트용). */
51
+ setMaxConflictLog(n: number): void;
52
+ private _appendConflictLog;
53
+ /**
54
+ * 미리 충돌 가능성 검사 (add 안 함). plan 단계에서 reservation 을 사전 검증할 때.
55
+ */
56
+ conflicts(resource: string, window: TimeWindow): Reservation[];
57
+ /** 한 reservation 회수. 도착 완료 또는 cancel 시. */
58
+ release(reservation: Reservation): void;
59
+ /** 같은 reserver 의 모든 reservation 일괄 해제. */
60
+ releaseAllOf(reserverId: string): Reservation[];
61
+ /** 특정 resource 의 모든 reservation (read-only 사본). */
62
+ forResource(resource: string): readonly Reservation[];
63
+ /** 특정 reserver 의 모든 reservation. */
64
+ forReserver(reserverId: string): readonly Reservation[];
65
+ /** 모든 reservation. */
66
+ all(): readonly Reservation[];
67
+ /** 청소 (테스트용). */
68
+ clear(): void;
69
+ /**
70
+ * Listener 등록. observability (Atlas extension 등) 를 위함.
71
+ */
72
+ subscribe(listener: (event: ReservationEvent) => void): () => void;
73
+ private _insert;
74
+ private _remove;
75
+ private _emit;
76
+ }
77
+ export type ReservationEvent = {
78
+ kind: 'added';
79
+ reservation: Reservation;
80
+ } | {
81
+ kind: 'released';
82
+ reservation: Reservation;
83
+ } | {
84
+ kind: 'evicted';
85
+ reservation: Reservation;
86
+ by: Reservation;
87
+ };
88
+ export type AddResult = {
89
+ ok: true;
90
+ reservation: Reservation;
91
+ } | {
92
+ ok: 'preempted';
93
+ reservation: Reservation;
94
+ evicted: Reservation[];
95
+ } | {
96
+ ok: false;
97
+ conflicts: Conflict[];
98
+ };
99
+ /**
100
+ * Singleton — 단일 시뮬레이션 instance 내 공유. 테스트는 자체 인스턴스 만드는 걸 권장.
101
+ */
102
+ export declare const reservationTable: ReservationTable;
103
+ //# sourceMappingURL=reservation-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reservation-table.d.ts","sourceRoot":"","sources":["../../src/navigation/reservation-table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import type { Vec3 } from '../transfer/types.js';
2
+ export interface LaneGeometry {
3
+ /** 중앙선의 점들 (시작 → 끝). */
4
+ centerPoints: Vec3[];
5
+ /** lane 의 폭 (vehicle 이 이 안에 들어가야 함). */
6
+ width: number;
7
+ }
8
+ export interface Lane {
9
+ id: string;
10
+ geometry: LaneGeometry;
11
+ /** oneway 면 centerPoints 의 시작→끝 방향만, twoway 면 양방향 허용. */
12
+ direction: 'oneway' | 'twoway';
13
+ /** 속도 제한 (scene units / sim sec). undefined = 무제한. */
14
+ speedLimit?: number;
15
+ /** 통과 가능한 도구 type (Pickable.toolType 과 같은 축). 빈 배열 = 모두 허용. */
16
+ allowedToolTypes?: string[];
17
+ /** 동시에 들어갈 수 있는 vehicle 수. 1 = 단독 점유 (1차원 큐). */
18
+ capacity: number;
19
+ }
20
+ /**
21
+ * 두 lane 의 진입쌍이 충돌하는지 표현. e.g. north→south 와 east→west 는 직각
22
+ * 교차로에서 충돌하지만 north→east 와 south→east 는 충돌 안 함 (병행).
23
+ */
24
+ export interface ConflictPair {
25
+ fromLane: string;
26
+ toLane: string;
27
+ /** 어떤 우선순위 정책을 적용할지. */
28
+ resolveBy: 'fifo' | 'priority' | 'roundrobin';
29
+ }
30
+ export interface Intersection {
31
+ id: string;
32
+ lanes: string[];
33
+ conflicts: ConflictPair[];
34
+ /** 통과 시간 (vehicle 이 교차로 안에 머무는 sim ms). 보수적으로 추정. */
35
+ crossingTimeMs: number;
36
+ }
37
+ export interface NavPolygon {
38
+ vertices: Vec3[];
39
+ }
40
+ /**
41
+ * lane 으로 표현하기 어려운 넓은 영역 (open warehouse floor, dock plaza 등).
42
+ * 시공간 격자로 점유권을 관리.
43
+ */
44
+ export interface OpenZone {
45
+ id: string;
46
+ boundary: NavPolygon;
47
+ /** 점유 격자의 cell 한 변 크기 (scene unit). 작을수록 정확하지만 reservation 많아짐. */
48
+ cellSize: number;
49
+ }
50
+ export interface TimeWindow {
51
+ /** sim time milliseconds. */
52
+ startSimMs: number;
53
+ endSimMs: number;
54
+ }
55
+ /**
56
+ * 어떤 resource 를 어떤 시간 window 동안 누가 점유하는가.
57
+ *
58
+ * resource 는 lane id / intersection id / open-zone cell key 등 resource 의
59
+ * 단일 식별자. cell 의 경우 e.g. `${zoneId}:cell:${i},${j}`.
60
+ */
61
+ export interface Reservation {
62
+ id: string;
63
+ resource: string;
64
+ timeWindow: TimeWindow;
65
+ reserverId: string;
66
+ /** 낮을수록 우선. emergency = -1, task-bound = 0, idle = 10 등. */
67
+ priority: number;
68
+ /** 부수 메타 (어떤 task 의 일부인지, 어떤 carrier 를 운반 중인지 등). */
69
+ metadata?: Record<string, any>;
70
+ }
71
+ export interface SpeedProfile {
72
+ /** 최대 속도 (scene units / sim sec). */
73
+ max: number;
74
+ /** 가속도 (scene units / sim sec²). */
75
+ accel: number;
76
+ /** 감속도 (scene units / sim sec²). */
77
+ decel: number;
78
+ }
79
+ export interface PathSegment {
80
+ resource: string;
81
+ /** 이 segment 를 통과하는 sim time. */
82
+ timeWindow: TimeWindow;
83
+ /** segment 시작 / 끝 좌표 (시각화용). */
84
+ fromPos: Vec3;
85
+ toPos: Vec3;
86
+ }
87
+ export interface PathPlan {
88
+ segments: PathSegment[];
89
+ /** 전체 경로의 sim time 길이. */
90
+ totalDurationMs: number;
91
+ /** 전체 경로 길이 (scene unit). */
92
+ totalDistance: number;
93
+ }
94
+ export interface PathPlanOptions {
95
+ /** sim time 시작점. 미지정 시 현재 globalSimClock.now. */
96
+ startSimMs?: number;
97
+ /** vehicle 의 toolType — lane.allowedToolTypes 검사용. */
98
+ toolType?: string;
99
+ /** vehicle 의 speed profile. */
100
+ speed?: SpeedProfile;
101
+ /** 우선순위 (충돌 시 양보 결정용). */
102
+ priority?: number;
103
+ /** deadline (sim ms) — 이 시간 안에 도착 못 하면 null 반환. */
104
+ deadlineSimMs?: number;
105
+ }
106
+ /**
107
+ * Vehicle 이 navigation 능력을 노출하는 인터페이스. Mover 의 sub-trait.
108
+ *
109
+ * lifecycle:
110
+ * 1. planPath(target) → PathPlan | null (lookup, 부수효과 없음)
111
+ * 2. reservePath(plan) → Reservation[] | null (table 에 add, 충돌 시 null)
112
+ * 3. followReservation(rs) → Promise<void> (sim time 진행)
113
+ * 4. releaseReservation(rs) (도착 후 또는 cancel)
114
+ *
115
+ * 단계 분리로 충돌 감지가 commit 직전, replay 가 결정적, 디버깅이 가능.
116
+ */
117
+ export interface Navigable {
118
+ toolType: string;
119
+ speedProfile: SpeedProfile;
120
+ /**
121
+ * 경로 계획. 시간-공간 reservation 가능성 검증 포함 (단, table 에 commit 안 함).
122
+ * null 반환 = 도달 가능 경로 없음 (deadline 초과 / 모든 lane 점유 등).
123
+ */
124
+ planPath(target: Vec3, options?: PathPlanOptions): PathPlan | null;
125
+ /**
126
+ * 계획된 경로를 reservation table 에 commit. 다른 vehicle 이 이미 점유한
127
+ * window 와 충돌 시 null — 호출자가 reroute 하든 대기하든 결정.
128
+ */
129
+ reservePath(plan: PathPlan, priority?: number): Reservation[] | null;
130
+ /**
131
+ * commit 된 reservation 따라 sim time 진행. resolve = 마지막 segment 도착.
132
+ */
133
+ followReservation(reservations: Reservation[]): Promise<void>;
134
+ /** 점유 해제. 도착 완료 또는 cancel 시 호출. */
135
+ releaseReservation(reservations: Reservation[]): void;
136
+ }
137
+ export type YieldDecision = 'a-yields' | 'b-yields' | 'replan-both';
138
+ export interface YieldPolicy {
139
+ /**
140
+ * 두 reservation 이 시간-공간 충돌할 때 누가 양보하는가.
141
+ * 기본: priority 낮은 (수치 높은) 쪽이 양보. 같으면 fifo (먼저 만든 게 우선).
142
+ */
143
+ resolveConflict(a: Reservation, b: Reservation): YieldDecision;
144
+ }
145
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/navigation/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type { Placement, PlacementPolicy } from './placement.js';
2
+ export { DEFAULT_PLACEMENT, isStateDriven } from './placement.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/placement/index.ts"],"names":[],"mappings":"AAMA,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * 컴포넌트의 placement 결정 정책.
3
+ *
4
+ * - **state-driven** (default): state.left/top/zPos/rotation/... 이 obj3d 에 반영.
5
+ * 현재 things-scene 의 모든 컴포넌트가 묵시적으로 따르는 정책.
6
+ *
7
+ * - **carried**: 다른 holder 의 attach frame 에 부착. holder 의 movement 를
8
+ * scene-graph 통해 자동 추종. carrier policy (world-preserve / belt-aligned /
9
+ * world-fixed 등) 는 holder 가 결정. 예: AGV 위 박스, sorter carrier 위 파레트.
10
+ *
11
+ * - **animated**: animation system 이 일시적으로 obj3d 를 override. animation
12
+ * 종료 시 다른 정책으로 복귀.
13
+ *
14
+ * - **fixed**: world 좌표 고정 (parent 변경 무관). HUD / screenFixed 컴포넌트.
15
+ *
16
+ * - **transitioning**: reparent 중 TransitionEffect 가 보간 제어. transition
17
+ * 완료 시 keepSuppressed 면 carried 또는 manual, 아니면 state-driven 으로 복귀.
18
+ *
19
+ * - **manual**: 컴포넌트 코드가 직접 obj3d.position/quaternion 을 매 frame
20
+ * 조작. framework 는 개입 안 함. 예: cross-belt-line 의 _tickSim, IK
21
+ * smoothing, URDF physics.
22
+ */
23
+ export type PlacementPolicy = 'state-driven' | 'carried' | 'animated' | 'fixed' | 'transitioning' | 'manual';
24
+ /**
25
+ * Placement 선언. 컴포넌트의 RealObject 가 이 객체를 반환하면 framework 가
26
+ * 정책에 따라 동작.
27
+ *
28
+ * Step 1 에선 policy 만 정의. 후속 step 에서 정책별 metadata (예: carried 의
29
+ * carryPolicy 'world-preserve' / 'belt-aligned', transitioning 의 transition 객체)
30
+ * 를 추가.
31
+ */
32
+ export interface Placement {
33
+ policy: PlacementPolicy;
34
+ /**
35
+ * 정책별 metadata. 선언 시점에 정책에 따라 추가 정보를 담음.
36
+ * Step 1 에선 미사용. 향후 정책 별로 타입 좁히기 (discriminated union) 적용.
37
+ */
38
+ meta?: Record<string, unknown>;
39
+ }
40
+ /** 기본 placement = 현재 동작 = state pipeline 이 obj3d 를 결정. */
41
+ export declare const DEFAULT_PLACEMENT: Placement;
42
+ /**
43
+ * Placement 정책이 state pipeline 적용을 허용하는가.
44
+ *
45
+ * - state-driven: ✓ 적용
46
+ * - 그 외: framework 가 obj3d 를 건드리지 않음 (다른 시스템 또는 컴포넌트가 책임).
47
+ *
48
+ * 현재 RealObject 의 `suppressTransform` 플래그와 의미가 겹침. 마이그레이션
49
+ * 단계 (Step 2~7) 에서 suppressTransform 이 점진적으로 `placement.policy !==
50
+ * 'state-driven'` 으로 흡수됨. 호환성 위해 두 메커니즘 일정 기간 병존.
51
+ */
52
+ export declare function isStateDriven(placement: Placement): boolean;
53
+ //# sourceMappingURL=placement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placement.d.ts","sourceRoot":"","sources":["../../src/placement/placement.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,SAAS,GACT,UAAU,GACV,OAAO,GACP,eAAe,GACf,QAAQ,CAAA;AAEZ;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,eAAe,CAAA;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,EAAE,SAAsC,CAAA;AAEtE;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAE3D"}
@@ -0,0 +1,3 @@
1
+ export { SceneSearchEngine, type SearchResult, type SearchOptions } from './scene-search-engine.js';
2
+ export { SearchOverlay, type SearchOverlayHost } from './search-overlay.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACnG,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,64 @@
1
+ import type Component from '../components/component.js';
2
+ /**
3
+ * 검색 결과 하나를 나타낸다.
4
+ */
5
+ export interface SearchResult {
6
+ /** 매칭된 컴포넌트 */
7
+ component: Component;
8
+ /** 매칭 카테고리 */
9
+ matchType: 'id' | 'name' | 'tag' | 'type' | 'class' | 'text' | 'data' | 'property';
10
+ /** 매칭된 필드 이름 (예: 'accessor', 'fillStyle') */
11
+ matchField: string;
12
+ /** 매칭된 값 */
13
+ matchValue: string;
14
+ }
15
+ export interface SearchOptions {
16
+ /** 검색할 필드 범위 (기본: 전체) */
17
+ fields?: SearchResult['matchType'][];
18
+ /** 대소문자 구분 (기본: false) */
19
+ caseSensitive?: boolean;
20
+ /** hidden 컴포넌트 포함 (기본: false) */
21
+ includeHidden?: boolean;
22
+ /** 최대 결과 수 (기본: 무제한) */
23
+ maxResults?: number;
24
+ }
25
+ /**
26
+ * things-scene 컴포넌트 트리를 대상으로 텍스트 검색을 수행하는 엔진.
27
+ *
28
+ * 에디터/뷰어, 2D/3D 모드 공용.
29
+ * 검색 대상: id, name, tag, type, class, text, data-binding(accessor/target/property), 주요 속성값.
30
+ */
31
+ export declare class SceneSearchEngine {
32
+ private _results;
33
+ private _currentIndex;
34
+ get results(): readonly SearchResult[];
35
+ get currentIndex(): number;
36
+ get currentResult(): SearchResult | undefined;
37
+ get resultCount(): number;
38
+ /**
39
+ * 컴포넌트 트리에서 query를 검색한다.
40
+ * 동일 컴포넌트가 여러 필드에서 매칭되면 첫 번째 매칭만 결과에 포함한다.
41
+ */
42
+ search(root: Component, query: string, options?: SearchOptions): SearchResult[];
43
+ /** 다음 결과로 이동 */
44
+ navigateNext(): SearchResult | undefined;
45
+ /** 이전 결과로 이동 */
46
+ navigatePrev(): SearchResult | undefined;
47
+ /** 특정 인덱스로 이동 */
48
+ navigateTo(index: number): SearchResult | undefined;
49
+ /** 검색 결과 초기화 */
50
+ clear(): void;
51
+ private _traverse;
52
+ private _matchComponent;
53
+ /**
54
+ * data-binding 설정(mappings)에서 검색.
55
+ * accessor, target, property, source 필드를 대상으로 한다.
56
+ */
57
+ private _matchDataBinding;
58
+ /**
59
+ * 주요 속성값에서 검색.
60
+ * fillStyle(문자열), strokeStyle(문자열), ref, src 등.
61
+ */
62
+ private _matchProperties;
63
+ }
64
+ //# sourceMappingURL=scene-search-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-search-engine.d.ts","sourceRoot":"","sources":["../../src/search/scene-search-engine.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,eAAe;IACf,SAAS,EAAE,SAAS,CAAA;IACpB,cAAc;IACd,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAA;IAClF,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,MAAM,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,CAAA;IACpC,0BAA0B;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iCAAiC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAMD;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAK;IAE1B,IAAI,OAAO,IAAI,SAAS,YAAY,EAAE,CAErC;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,aAAa,IAAI,YAAY,GAAG,SAAS,CAE5C;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,EAAE;IAkC/E,gBAAgB;IAChB,YAAY,IAAI,YAAY,GAAG,SAAS;IAMxC,gBAAgB;IAChB,YAAY,IAAI,YAAY,GAAG,SAAS;IAMxC,iBAAiB;IACjB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAMnD,gBAAgB;IAChB,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,eAAe;IAoEvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAiCzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAkCzB"}
@@ -0,0 +1,94 @@
1
+ import type Component from '../components/component.js';
2
+ import { SceneSearchEngine } from './scene-search-engine.js';
3
+ /**
4
+ * SearchOverlayHost: 검색 오버레이가 동작하기 위한 호스트 인터페이스.
5
+ * Scene이 이 인터페이스를 구현한다.
6
+ */
7
+ export interface SearchOverlayHost {
8
+ /** 검색 대상 루트 컴포넌트 */
9
+ readonly root: Component & {
10
+ selected?: Component[];
11
+ };
12
+ /** 오버레이를 붙일 DOM element */
13
+ readonly element: HTMLElement | null;
14
+ /** 컴포넌트로 카메라/뷰포트 이동 */
15
+ centerTo(component: Component, animated?: boolean): void;
16
+ /** 선택 변경 */
17
+ setSelected(components: Component[]): void;
18
+ /** 3D outline 하이라이트 (있으면) */
19
+ highlightSearchResults?(components: Component[]): void;
20
+ /** 2D invalidate */
21
+ invalidate?(): void;
22
+ }
23
+ /**
24
+ * 2D/3D 모드 공용 검색 오버레이 UI.
25
+ *
26
+ * 호스트의 DOM element에 겹쳐 놓는 가벼운 검색 바.
27
+ * F키로 토글, ↑↓ 결과 네비게이션, Enter 선택, Esc 닫기.
28
+ * 입력 히스토리(↑↓), Shift+Tab으로 input 복귀, 마우스+키보드 심리스 전환.
29
+ */
30
+ export declare class SearchOverlay {
31
+ private _host?;
32
+ private _engine;
33
+ private _container?;
34
+ private _input?;
35
+ private _statusEl?;
36
+ private _resultListEl?;
37
+ private _visible;
38
+ private _debounceTimer?;
39
+ private _queryHistory;
40
+ private _historyIndex;
41
+ private _savedInput;
42
+ private static MAX_HISTORY;
43
+ get isVisible(): boolean;
44
+ get engine(): SceneSearchEngine;
45
+ setup(host: SearchOverlayHost): void;
46
+ /**
47
+ * 오버레이 토글. 이미 열려 있으면 입력 필드에 포커스.
48
+ */
49
+ toggle(): void;
50
+ show(): void;
51
+ hide(): void;
52
+ destroy(): void;
53
+ private _buildDOM;
54
+ /**
55
+ * 드래그 핸들 설정. mousedown on `handle` 에서 시작, document 의 mousemove 로
56
+ * container 위치 추적, mouseup 으로 종료. input/button/icon 같은 인터랙티브
57
+ * 요소 위에서 시작된 mousedown 은 드래그로 잡지 않음 (본연의 click/focus 보존).
58
+ */
59
+ private _setupDrag;
60
+ private _buttonStyle;
61
+ private _doSearch;
62
+ private _addToHistory;
63
+ private _navigateHistory;
64
+ private _isHistoryMode;
65
+ /**
66
+ * input 의 raw 값을 host 에 query-submit 으로 전달. Enter 키 / 돋보기 아이콘 클릭
67
+ * 공통 진입점.
68
+ * - VIEW 모드: input 의 raw 값을 query-submit 으로 host 에 dispatch. 결과 유무
69
+ * 무관하게 입력값 자체를 정확한 ID 로 host 가 처리 (예: 미래 ID 영구 추적).
70
+ * - EDIT 모드: things-scene 기본 동작 위임 — 결과가 있으면 첫 결과 _selectResult.
71
+ * @returns input value 가 비어있지 않아 submit 처리했으면 true.
72
+ */
73
+ private _submitQuery;
74
+ /**
75
+ * VIEW 모드의 디폴트 query-submit 동작 — application 의 onSearchSubmit override
76
+ * 가 있으면 그것 호출. 반환 true 시 디폴트 (host.tracker.start) skip.
77
+ */
78
+ private _invokeViewSubmit;
79
+ /**
80
+ * VIEW 모드의 디폴트 close 동작 — application override (onSearchClose) 가 있으면
81
+ * 호출. 반환 true 시 디폴트 (host.tracker.stop) skip.
82
+ */
83
+ private _invokeViewClose;
84
+ private _focusResult;
85
+ private _isEditMode;
86
+ private _selectResult;
87
+ private _clearHighlight;
88
+ private _updateStatus;
89
+ private _renderResultList;
90
+ private _updateResultListSelection;
91
+ private _hideResultList;
92
+ private _truncate;
93
+ }
94
+ //# sourceMappingURL=search-overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-overlay.d.ts","sourceRoot":"","sources":["../../src/search/search-overlay.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG;QAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,CAAA;IACrD,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IACpC,uBAAuB;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACxD,YAAY;IACZ,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAC1C,6BAA6B;IAC7B,sBAAsB,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IACtD,oBAAoB;IACpB,UAAU,CAAC,IAAI,IAAI,CAAA;CACpB;AAaD;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAC,CAAmB;IACjC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,MAAM,CAAC,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAC,CAAiB;IACnC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,cAAc,CAAC,CAA+B;IAGtD,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;IAE/B,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,MAAM,IAAI,iBAAiB,CAE9B;IAED,KAAK,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAKpC;;OAEG;IACH,MAAM,IAAI,IAAI;IAad,IAAI,IAAI,IAAI;IAqBZ,IAAI,IAAI,IAAI;IAkBZ,OAAO,IAAI,IAAI;IAaf,OAAO,CAAC,SAAS;IA8JjB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAqClB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,cAAc;IAItB;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IA8CrB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,iBAAiB;IA8HzB,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,SAAS;CAGlB"}
@@ -1,2 +1,27 @@
1
1
  export declare function startAddMode(this: any, models: any): void;
2
+ /** bulk-create 모드 결과 — 사용자가 영역 드래그 완료 시 area, ESC/취소 시 null. */
3
+ export interface BulkCreateResult {
4
+ area: {
5
+ left: number;
6
+ top: number;
7
+ width: number;
8
+ height: number;
9
+ };
10
+ template: any;
11
+ }
12
+ /**
13
+ * Bulk-create 모드 진입. AddLayer 가 캔버스 위에 드래그 박스 그림. 사용자가 영역을
14
+ * 선택하면 `{area, template}` 로 resolve, ESC/취소 시 null 로 resolve.
15
+ *
16
+ * 내부적으로 'bulkareaselected' / 'addstop' event 의 lifecycle 을 캡슐화 — consumer 가
17
+ * listener 등록/정리 boilerplate 없이 한 줄 `await` 로 처리.
18
+ *
19
+ * @param template 복사 원본 모델. bulkareaselected event payload 와 결과 객체에 그대로 전달.
20
+ * @param options.boxStrokeStyle addbox 의 stroke 색. 기본 'black' (일반 add 와 동일).
21
+ *
22
+ * this should be root-container.
23
+ */
24
+ export declare function startBulkCreateMode(this: any, template: any, options?: {
25
+ boxStrokeStyle?: string;
26
+ }): Promise<BulkCreateResult | null>;
2
27
  //# sourceMappingURL=add-start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-start.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/add-start.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAMlD"}
1
+ {"version":3,"file":"add-start.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/add-start.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAMlD;AAED,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAClE,QAAQ,EAAE,GAAG,CAAA;CACd;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,GAAG,EACb,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAsBlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"align.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/align.ts"],"names":[],"mappings":"AA4GA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAYpD"}
1
+ {"version":3,"file":"align.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/align.ts"],"names":[],"mappings":"AA2JA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAYpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"distribute.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/distribute.ts"],"names":[],"mappings":"AAsDA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAYzD"}
1
+ {"version":3,"file":"distribute.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/distribute.ts"],"names":[],"mappings":"AAqFA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAYzD"}
@@ -1,2 +1,5 @@
1
- export declare function getIds(this: any): any[];
1
+ export declare function getIds(this: any): {
2
+ key: any;
3
+ value: any;
4
+ }[];
2
5
  //# sourceMappingURL=ids.d.ts.map