@hatiolab/things-scene 10.0.0-beta.91 → 10.0.0-beta.93

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 (125) 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/clock/frame-clock.d.ts +119 -0
  5. package/dist-types/clock/frame-clock.d.ts.map +1 -0
  6. package/dist-types/clock/index.d.ts +3 -0
  7. package/dist-types/clock/index.d.ts.map +1 -0
  8. package/dist-types/components/audio.d.ts +7 -3
  9. package/dist-types/components/audio.d.ts.map +1 -1
  10. package/dist-types/components/component.d.ts +9 -4
  11. package/dist-types/components/component.d.ts.map +1 -1
  12. package/dist-types/components/container-abstract.d.ts +14 -6
  13. package/dist-types/components/container-abstract.d.ts.map +1 -1
  14. package/dist-types/components/container.d.ts +6 -2
  15. package/dist-types/components/container.d.ts.map +1 -1
  16. package/dist-types/components/ellipse.d.ts +7 -3
  17. package/dist-types/components/ellipse.d.ts.map +1 -1
  18. package/dist-types/components/generic-placeholders.d.ts +7 -3
  19. package/dist-types/components/generic-placeholders.d.ts.map +1 -1
  20. package/dist-types/components/html-overlay-container.d.ts +6 -2
  21. package/dist-types/components/html-overlay-container.d.ts.map +1 -1
  22. package/dist-types/components/html-overlay-element.d.ts +13 -5
  23. package/dist-types/components/html-overlay-element.d.ts.map +1 -1
  24. package/dist-types/components/image-view.d.ts +7 -3
  25. package/dist-types/components/image-view.d.ts.map +1 -1
  26. package/dist-types/components/info-window.d.ts +7 -3
  27. package/dist-types/components/info-window.d.ts.map +1 -1
  28. package/dist-types/components/local-ref.d.ts +7 -3
  29. package/dist-types/components/local-ref.d.ts.map +1 -1
  30. package/dist-types/components/mixins/connectable.d.ts +7 -3
  31. package/dist-types/components/mixins/connectable.d.ts.map +1 -1
  32. package/dist-types/components/mixins/data-source.d.ts +7 -3
  33. package/dist-types/components/mixins/data-source.d.ts.map +1 -1
  34. package/dist-types/components/mixins/gltf-component.d.ts +6 -2
  35. package/dist-types/components/mixins/gltf-component.d.ts.map +1 -1
  36. package/dist-types/components/mixins/html-element.d.ts +6 -2
  37. package/dist-types/components/mixins/html-element.d.ts.map +1 -1
  38. package/dist-types/components/mixins/move-handle.d.ts +7 -3
  39. package/dist-types/components/mixins/move-handle.d.ts.map +1 -1
  40. package/dist-types/components/mixins/rect-path.d.ts +7 -3
  41. package/dist-types/components/mixins/rect-path.d.ts.map +1 -1
  42. package/dist-types/components/mixins/three-d-only.d.ts +7 -3
  43. package/dist-types/components/mixins/three-d-only.d.ts.map +1 -1
  44. package/dist-types/components/mixins/value-holder.d.ts +7 -3
  45. package/dist-types/components/mixins/value-holder.d.ts.map +1 -1
  46. package/dist-types/components/node.d.ts +7 -3
  47. package/dist-types/components/node.d.ts.map +1 -1
  48. package/dist-types/components/popup.d.ts +7 -3
  49. package/dist-types/components/popup.d.ts.map +1 -1
  50. package/dist-types/components/rect.d.ts +14 -6
  51. package/dist-types/components/rect.d.ts.map +1 -1
  52. package/dist-types/components/ruler.d.ts +7 -3
  53. package/dist-types/components/ruler.d.ts.map +1 -1
  54. package/dist-types/components/service-component.d.ts +7 -3
  55. package/dist-types/components/service-component.d.ts.map +1 -1
  56. package/dist-types/components/text.d.ts +7 -3
  57. package/dist-types/components/text.d.ts.map +1 -1
  58. package/dist-types/diagnostics/contract-inspector.d.ts +103 -0
  59. package/dist-types/diagnostics/contract-inspector.d.ts.map +1 -0
  60. package/dist-types/diagnostics/inspector.d.ts +44 -0
  61. package/dist-types/diagnostics/inspector.d.ts.map +1 -1
  62. package/dist-types/interfaces/real-object.d.ts +8 -1
  63. package/dist-types/interfaces/real-object.d.ts.map +1 -1
  64. package/dist-types/interfaces/types.d.ts +20 -1
  65. package/dist-types/interfaces/types.d.ts.map +1 -1
  66. package/dist-types/math/component-pose.d.ts +51 -0
  67. package/dist-types/math/component-pose.d.ts.map +1 -0
  68. package/dist-types/math/index.d.ts +3 -0
  69. package/dist-types/math/index.d.ts.map +1 -0
  70. package/dist-types/math/pose6dof.d.ts +93 -0
  71. package/dist-types/math/pose6dof.d.ts.map +1 -0
  72. package/dist-types/navigation/index.d.ts +7 -0
  73. package/dist-types/navigation/index.d.ts.map +1 -0
  74. package/dist-types/navigation/nav-graph.d.ts +55 -0
  75. package/dist-types/navigation/nav-graph.d.ts.map +1 -0
  76. package/dist-types/navigation/path-planner.d.ts +29 -0
  77. package/dist-types/navigation/path-planner.d.ts.map +1 -0
  78. package/dist-types/navigation/reservation-table.d.ts +103 -0
  79. package/dist-types/navigation/reservation-table.d.ts.map +1 -0
  80. package/dist-types/navigation/types.d.ts +145 -0
  81. package/dist-types/navigation/types.d.ts.map +1 -0
  82. package/dist-types/placement/index.d.ts +3 -0
  83. package/dist-types/placement/index.d.ts.map +1 -0
  84. package/dist-types/placement/placement.d.ts +53 -0
  85. package/dist-types/placement/placement.d.ts.map +1 -0
  86. package/dist-types/things-scene/index.d.ts +12 -2
  87. package/dist-types/things-scene/index.d.ts.map +1 -1
  88. package/dist-types/threed/factories/backdrop.d.ts +14 -6
  89. package/dist-types/threed/factories/backdrop.d.ts.map +1 -1
  90. package/dist-types/threed/factories/banner.d.ts +7 -3
  91. package/dist-types/threed/factories/banner.d.ts.map +1 -1
  92. package/dist-types/threed/factories/camera.d.ts +7 -3
  93. package/dist-types/threed/factories/camera.d.ts.map +1 -1
  94. package/dist-types/threed/factories/cube.d.ts +7 -3
  95. package/dist-types/threed/factories/cube.d.ts.map +1 -1
  96. package/dist-types/threed/factories/decal.d.ts +14 -6
  97. package/dist-types/threed/factories/decal.d.ts.map +1 -1
  98. package/dist-types/threed/factories/gltf-object.d.ts +13 -5
  99. package/dist-types/threed/factories/gltf-object.d.ts.map +1 -1
  100. package/dist-types/threed/factories/sprite.d.ts +7 -3
  101. package/dist-types/threed/factories/sprite.d.ts.map +1 -1
  102. package/dist-types/threed/factories/wall.d.ts +7 -3
  103. package/dist-types/threed/factories/wall.d.ts.map +1 -1
  104. package/dist-types/threed/real-object.d.ts +29 -1
  105. package/dist-types/threed/real-object.d.ts.map +1 -1
  106. package/dist-types/transfer/container-capacity.d.ts +301 -1
  107. package/dist-types/transfer/container-capacity.d.ts.map +1 -1
  108. package/dist-types/transfer/index.d.ts +7 -1
  109. package/dist-types/transfer/index.d.ts.map +1 -1
  110. package/dist-types/transfer/pickup-helpers.d.ts +65 -0
  111. package/dist-types/transfer/pickup-helpers.d.ts.map +1 -0
  112. package/dist-types/transfer/transfer.d.ts +168 -0
  113. package/dist-types/transfer/transfer.d.ts.map +1 -0
  114. package/dist-types/transfer/types.d.ts +104 -0
  115. package/dist-types/transfer/types.d.ts.map +1 -1
  116. package/dist-types/transition/transition-effect.d.ts +7 -1
  117. package/dist-types/transition/transition-effect.d.ts.map +1 -1
  118. package/dist-types/types/event.d.ts +57 -0
  119. package/dist-types/types/event.d.ts.map +1 -1
  120. package/package.json +1 -1
  121. package/things-scene-min.js +11 -11
  122. package/things-scene-min.js.map +1 -1
  123. package/things-scene-transfer.mjs +6 -1
  124. package/things-scene.mjs +3 -3
  125. package/things-scene.mjs.map +1 -1
@@ -94,6 +94,79 @@ export interface CarrierAttachPoint {
94
94
  rotation: Vec3;
95
95
  slotId: string;
96
96
  }
97
+ /**
98
+ * Quaternion as a plain object {x, y, z, w}. THREE.Quaternion 도 이 인터페이스
99
+ * 만족 — 호출자는 어느 쪽이든 받을 수 있다.
100
+ */
101
+ export interface QuatLike {
102
+ x: number;
103
+ y: number;
104
+ z: number;
105
+ w: number;
106
+ }
107
+ /**
108
+ * Pose6DOF 의 직렬화 형태 (cross-package 호환). things-scene/math 의
109
+ * Pose6DOF.toJSON() 결과와 같은 shape.
110
+ */
111
+ export interface PoseSerialized {
112
+ position: Vec3;
113
+ rotation: QuatLike;
114
+ }
115
+ /**
116
+ * Phase H — carrier 의 진입 정책 (PickupFrame).
117
+ *
118
+ * carrier 가 "어떤 도구가 어디로 어떤 각도로 접근하면 들어올릴 수 있다" 를
119
+ * 선언적으로 표현. holder 측 acceptanceFrame 의 carrier 측 대칭.
120
+ *
121
+ * approach: 도구가 결합 직전 hover 자세 (world Pose6DOF).
122
+ * engage: 도구가 결합 시점 자세 (world Pose6DOF). 보통 carrier 의 entry
123
+ * surface 에 접한 위치.
124
+ * tolerance: trajectory planner 가 활용 — 너무 엄격하면 reroute 빈번.
125
+ * priority: 여러 entry 중 source 가 선택 시 hint (낮을수록 우선).
126
+ *
127
+ * 예시 — pallet 의 두 fork 진입점:
128
+ * { id: 'fork-west', toolType: 'forklift-fork',
129
+ * approach: { position: {x: -300, y: 50, z: 0}, rotation: identity },
130
+ * engage: { position: {x: 0, y: 50, z: 0}, rotation: identity },
131
+ * tolerance: { positionMm: 50, angleDeg: 5 } }
132
+ */
133
+ export interface PickupFrame {
134
+ id: string;
135
+ toolType: string;
136
+ approach: PoseSerialized;
137
+ engage: PoseSerialized;
138
+ tolerance?: {
139
+ positionMm?: number;
140
+ angleDeg?: number;
141
+ };
142
+ priority?: number;
143
+ }
144
+ /**
145
+ * 도구의 자기 소개. carrier 가 pickupFramesFor 로 필터링할 때 활용.
146
+ */
147
+ export interface PickupRequester {
148
+ toolType: string;
149
+ /** 도구의 footprint (forklift fork 길이, gripper 폭 등) — 호환성 검사용. */
150
+ size?: {
151
+ width: number;
152
+ depth: number;
153
+ height?: number;
154
+ };
155
+ }
156
+ /**
157
+ * Pickable — carrier 가 자기 진입 정책을 노출하는 인터페이스.
158
+ *
159
+ * 빈 배열 반환 = "들어올릴 수 없음" (예: 부착된 fixture). source 는 명시적
160
+ * reject 사유 ('un-pickable') 로 응답.
161
+ *
162
+ * pickupFramesFor 는 선택. 정의하면 source 가 자기 도구 type 으로 호출 →
163
+ * carrier 가 그 type 에 맞는 entry 만 반환. 기본 구현은 toolType 으로 단순
164
+ * filter (Phase H reference 구현이 제공).
165
+ */
166
+ export interface Pickable {
167
+ pickupFrames(): PickupFrame[];
168
+ pickupFramesFor?(requester: PickupRequester): PickupFrame[];
169
+ }
97
170
  /**
98
171
  * Determines WHERE within a slot a new item should be placed, and how
99
172
  * existing items are laid out as occupancy changes.
@@ -150,6 +223,37 @@ export interface Transferable {
150
223
  rejectRoute(component: any, reason?: string): void;
151
224
  /** Returns the 3D attach frame for a payload held in this container. */
152
225
  attachPointFor(component: any): CarrierAttachPoint | null;
226
+ /**
227
+ * carrier 가 이 holder 안에서 가져야 할 회전 (parent-local quaternion).
228
+ * 기본값 identity (carrier 의 들어오는 자세 보존).
229
+ * 다음을 override 하는 holder 예시:
230
+ * - InductStation: belt 진행 방향 = sorter forward 와 일치
231
+ * - Sorter carrier: 슬롯의 perimeter tangent
232
+ * - Rack cell: grid 정렬 방향
233
+ */
234
+ acceptanceRotation?(carrier: any, slot?: SlotDef): {
235
+ x: number;
236
+ y: number;
237
+ z: number;
238
+ w: number;
239
+ } | undefined;
240
+ /**
241
+ * canReceive 의 더 풍부한 버전 — 거부 사유까지 명시.
242
+ * 기본 구현은 findSlot 결과로 ok/reason 분기. drag-over UI 가 사유를 표시할
243
+ * 수 있게 함.
244
+ */
245
+ canAccept?(carrier: any): {
246
+ ok: true;
247
+ slot: SlotDef;
248
+ } | {
249
+ ok: false;
250
+ reason: string;
251
+ };
252
+ /**
253
+ * receive 의 새 이름. 동일 동작 — Phase G2 의 contract 명시.
254
+ * 기존 receive 호출자도 작동 (alias).
255
+ */
256
+ accept?(carrier: any, options?: TransferOptions): Promise<void> | void;
153
257
  }
154
258
  /**
155
259
  * The destination a Movable navigates toward.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transfer/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transfer/types.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AACtD,MAAM,MAAM,KAAK,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AACpE,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,KAAK,CAAA;AAIlC;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;AAE1E,0DAA0D;AAC1D,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtD,kEAAkE;AAClE,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,4EAA4E;IAC5E,aAAa,CAAC,EAAE,IAAI,CAAA;IACpB,aAAa,CAAC,EAAE,IAAI,CAAA;IACpB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAID,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAID;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,CAAA;AAI3E,gEAAgE;AAChE,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,OAAO,GAAG,QAAQ,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAC1B;AAID,MAAM,MAAM,iBAAiB,GACzB,mBAAmB,GACnB,qBAAqB,GACrB,kBAAkB,GAClB,iBAAiB,GACjB,mBAAmB,CAAA;AAEvB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,iBAAiB,CAAA;IACvB,SAAS,EAAE,GAAG,CAAA;IACd,SAAS,EAAE,GAAG,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAID,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,IAAI,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAID;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,IAAI,CAAA;IACd,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,cAAc,CAAA;IACxB,MAAM,EAAE,cAAc,CAAA;IACtB,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,+DAA+D;IAC/D,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACzD;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,QAAQ;IACvB,YAAY,IAAI,WAAW,EAAE,CAAA;IAC7B,eAAe,CAAC,CAAC,SAAS,EAAE,eAAe,GAAG,WAAW,EAAE,CAAA;CAC5D;AAID;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;IAEhG,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAA;CACnC;AAID;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAG3B;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAA;IAEnC,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,GAAG,IAAI,CAAA;IAIxC,2EAA2E;IAC3E,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAExE,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAI/F;;;;OAIG;IACH,KAAK,CAAC,SAAS,EAAE,GAAG,GAAG,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAEzE;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAExD;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAIlD,wEAAwE;IACxE,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,kBAAkB,GAAG,IAAI,CAAA;IAWzD;;;;;;;OAOG;IACH,kBAAkB,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IAE7G;;;;OAIG;IACH,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAErF;;;OAGG;IACH,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACvE;AAID;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,YAAY,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpC,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnF,IAAI,IAAI,IAAI,CAAA;IACZ,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM,GAAG,aAAa,CAAA;CAC1D;AAID;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5E;;;OAGG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEvE,gFAAgF;IAChF,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAA;IAElC,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO,CAAA;CAC/C;AAID,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,sBAAsB,GACtB,SAAS,GACT,uBAAuB,GACvB,SAAS,GACT,MAAM,GACN,QAAQ,CAAA;AAEZ,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,gDAAgD;IAChD,OAAO,CAAC,EAAE,GAAG,CAAA;IACb,MAAM,EAAE,aAAa,CAAA;IACrB,qCAAqC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IAChF,oDAAoD;IACpD,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9C,QAAQ,CAAC,YAAY,EAAE,SAAS,cAAc,EAAE,CAAA;CACjD;AAID;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAA;IACvD,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI,CAAA;CAC/B;AAID;;;;GAIG;AACH,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,qEAAqE;IACrE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAA;IAC5D,iDAAiD;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,SAAS,GAAG,OAAO,GAAG,UAAU,CAAA;CACxD;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC7C,wDAAwD;IACxD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,mDAAmD;IACnD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC"}
@@ -18,6 +18,12 @@ interface State3D {
18
18
  y: number;
19
19
  z: number;
20
20
  };
21
+ /**
22
+ * 매 frame slerp 후 obj3d.local.quat 을 inv(parent.world.quat) × worldQuatLock 으로
23
+ * 덮어써서 **world rotation 고정**. transition 동안 부모(예: cross-belt proxy)가
24
+ * 움직여도 박스의 절대 자세 보존. to3D 에만 지정해도 동작.
25
+ */
26
+ worldQuatLock?: any;
21
27
  }
22
28
  interface ReparentState {
23
29
  fromWorld?: WorldState;
@@ -40,7 +46,7 @@ interface ReparentState {
40
46
  */
41
47
  export default class TransitionEffect {
42
48
  private active;
43
- private rafId;
49
+ private unsubscribeTick;
44
50
  private root;
45
51
  private _canvas;
46
52
  private _ctx;
@@ -1 +1 @@
1
- {"version":3,"file":"transition-effect.d.ts","sourceRoot":"","sources":["../../src/transition/transition-effect.ts"],"names":[],"mappings":"AAcA,UAAU,UAAU;IAClB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,UAAU,OAAO;IACf,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,GAAG,CAAA;IACT,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,OAAO,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9C;AAED,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,IAAI,CAAK;IAGjB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,IAAI,CAAwC;gBAExC,IAAI,EAAE,GAAG;IAMrB,aAAa,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO;IAItC,QAAQ,CAAC,SAAS,EAAE,GAAG,GAAG,aAAa,GAAG,IAAI;IAI9C,KAAK,CACH,SAAS,EAAE,GAAG,EACd,OAAO,EAAE;QACP,SAAS,CAAC,EAAE,UAAU,CAAA;QACtB,OAAO,CAAC,EAAE,UAAU,CAAA;QACpB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb;;;;WAIG;QACH,cAAc,CAAC,EAAE,OAAO,CAAA;KACzB,GACA,IAAI;IAgDP,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IAK5B;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,GAAG,IAAI;IAoCtD;;OAEG;IACH,SAAS,IAAI,IAAI;IAQjB;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,MAAM,IAAI,IAAI;IASd,OAAO,IAAI,IAAI;IAWf,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,IAAI;IAoDZ,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,SAAS;CAalB"}
1
+ {"version":3,"file":"transition-effect.d.ts","sourceRoot":"","sources":["../../src/transition/transition-effect.ts"],"names":[],"mappings":"AAgBA,UAAU,UAAU;IAClB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,UAAU,OAAO;IACf,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,GAAG,CAAA;IACT,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,OAAO,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C;;;;OAIG;IACH,aAAa,CAAC,EAAE,GAAG,CAAA;CACpB;AAED,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,IAAI,CAAK;IAGjB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,IAAI,CAAwC;gBAExC,IAAI,EAAE,GAAG;IAMrB,aAAa,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO;IAItC,QAAQ,CAAC,SAAS,EAAE,GAAG,GAAG,aAAa,GAAG,IAAI;IAI9C,KAAK,CACH,SAAS,EAAE,GAAG,EACd,OAAO,EAAE;QACP,SAAS,CAAC,EAAE,UAAU,CAAA;QACtB,OAAO,CAAC,EAAE,UAAU,CAAA;QACpB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb;;;;WAIG;QACH,cAAc,CAAC,EAAE,OAAO,CAAA;KACzB,GACA,IAAI;IA8DP,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IAK5B;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,GAAG,IAAI;IAoCtD;;OAEG;IACH,SAAS,IAAI,IAAI;IAQjB;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,MAAM,IAAI,IAAI;IASd,OAAO,IAAI,IAAI;IAWf,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,IAAI;IAoEZ,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,SAAS;CAyBlB"}
@@ -1,9 +1,66 @@
1
+ import type { TransferEvent } from '../transfer/types.js';
1
2
  export type Constructor<T = {}> = new (...args: any[]) => T;
2
3
  export type EventCallback = (...args: any[]) => void;
4
+ /**
5
+ * Component 가 발생/구독할 수 있는 이벤트 이름 → 페이로드 튜플 매핑.
6
+ *
7
+ * 새 이벤트 추가 방법:
8
+ * declare module '@hatiolab/things-scene' {
9
+ * interface ComponentEventMap {
10
+ * 'my-event': [payload: { foo: string }]
11
+ * 'another': [a: number, b: number]
12
+ * }
13
+ * }
14
+ *
15
+ * 매핑되지 않은 이름은 string 폴백으로 여전히 사용 가능 (느슨한 타입).
16
+ * 매핑된 이름은 페이로드 타입 검증 + 자동완성.
17
+ */
18
+ export interface ComponentEventMap {
19
+ 'change': [after: Record<string, any>, before: Record<string, any>, hint?: any];
20
+ 'add': [component: any, parent: any];
21
+ 'added': [component: any, parent: any];
22
+ 'remove': [component: any];
23
+ 'removed': [component: any];
24
+ 'redraw': [];
25
+ 'dimension': [component: any];
26
+ 'click': [event: any];
27
+ 'mouseenter': [event: any];
28
+ 'mouseleave': [event: any];
29
+ 'mouseover': [event: any];
30
+ 'mouseout': [event: any];
31
+ 'selected': [components: any[]];
32
+ 'value': [value: any];
33
+ 'mode': [mode: string];
34
+ 'addstart': [];
35
+ 'addstop': [];
36
+ 'stylepastestart': [];
37
+ 'stylepastestop': [];
38
+ 'databindpastestart': [];
39
+ 'databindpastestop': [];
40
+ 'undo': [hint?: any];
41
+ 'redo': [hint?: any];
42
+ 'execute': [command: any];
43
+ 'command-reset': [];
44
+ 'gizmoattach': [component: any];
45
+ 'gizmomode': [mode: string];
46
+ 'tag': [info: any];
47
+ 'tagreset': [];
48
+ 'deco': [info: any];
49
+ 'decoreset': [];
50
+ 'transfer-received': [event: TransferEvent];
51
+ 'transfer-dispatched': [event: TransferEvent];
52
+ 'transfer-pending': [event: TransferEvent];
53
+ 'transfer-routed': [event: TransferEvent];
54
+ 'transfer-rejected': [event: TransferEvent];
55
+ }
3
56
  export interface Event {
57
+ on<K extends keyof ComponentEventMap>(name: K, callback: (...args: ComponentEventMap[K]) => void, context?: object): void;
4
58
  on(name: string, callback: EventCallback, context?: object): void;
59
+ off<K extends keyof ComponentEventMap>(name: K, callback: (...args: ComponentEventMap[K]) => void, context?: object): void;
5
60
  off(name: string, callback: EventCallback, context?: object): void;
61
+ once<K extends keyof ComponentEventMap>(name: K, callback: (...args: ComponentEventMap[K]) => void, context?: object): void;
6
62
  once(name: string, callback: EventCallback, context?: object): void;
63
+ trigger<K extends keyof ComponentEventMap>(name: K, ...args: ComponentEventMap[K]): void;
7
64
  trigger(name: string, ...others: any[]): void;
8
65
  }
9
66
  //# sourceMappingURL=event.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/types/event.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAE3D,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;AAEpD,MAAM,WAAW,KAAK;IACpB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;CAC9C"}
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/types/event.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hatiolab/things-scene",
3
- "version": "10.0.0-beta.91",
3
+ "version": "10.0.0-beta.93",
4
4
  "description": "A high-performance 2D/3D scene graph library for building interactive visual editors, combining HTML5 Canvas and Three.js to enable facility visualization, data-driven animations, and real-time monitoring dashboards",
5
5
  "main": "things-scene-min.js",
6
6
  "module": "things-scene.mjs",