@hatiolab/things-scene 10.1.76 → 10.1.77

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.
@@ -49,10 +49,10 @@ export declare const CAPABILITY_MIXINS: Readonly<Record<FigureCapabilityName, (b
49
49
  /** 저작 화면이 사다리를 그릴 때 쓰는 설명. 모델러의 「능력」 탭이 읽는다. */
50
50
  export declare const FIGURE_CAPABILITY_NOTES: Readonly<Record<FigureCapabilityName, string>>;
51
51
  /**
52
- * A figure's places (`capabilities.bindings`, a seat or a grip) as the scene's `SlotDef`. What a place takes is
53
- * always named, so `allowedTypes` is always written; how many it holds is its capacity.
52
+ * A figure's places (its bindings and the slots its slot layout unfolds into, a seat or a grip) as the scene's
53
+ * `SlotDef`. What a place takes is always named, so `allowedTypes` is always written; how many it holds is its capacity.
54
54
  */
55
- export declare function slotsFromBindings(bindings: readonly FigureBindingDeclaration[]): SlotDef[];
55
+ export declare function slotsFromBindings(bindings: readonly Pick<FigureBindingDeclaration, 'id' | 'capacity' | 'accepts'>[]): SlotDef[];
56
56
  /**
57
57
  * 선언한 능력으로 클래스를 조립한다. 같은 조합이면 같은 클래스를 돌려준다.
58
58
  *
@@ -1 +1 @@
1
- {"version":3,"file":"figure-capability.d.ts","sourceRoot":"","sources":["../../src/figure/figure-capability.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAKlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAGxF,KAAK,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAEjD;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,+DAAqB,CAAA;AAErD,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAA;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAM7G,CAAA;AAEJ,gDAAgD;AAChD,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAKjF,CAAA;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,wBAAwB,EAAE,GAAG,OAAO,EAAE,CAE1F;AAqCD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,GAAE,SAAS,MAAM,EAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAqC/G;AA4DD,2BAA2B;AAC3B,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
1
+ {"version":3,"file":"figure-capability.d.ts","sourceRoot":"","sources":["../../src/figure/figure-capability.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAKlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAGxF,KAAK,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAEjD;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,+DAAqB,CAAA;AAErD,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAA;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAM7G,CAAA;AAEJ,gDAAgD;AAChD,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAKjF,CAAA;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,IAAI,CAAC,wBAAwB,EAAE,IAAI,GAAG,UAAU,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,CAE/H;AAsCD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,GAAE,SAAS,MAAM,EAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAqC/G;AA4DD,2BAA2B;AAC3B,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"figure-rig.d.ts","sourceRoot":"","sources":["../../src/figure/figure-rig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"figure-rig.d.ts","sourceRoot":"","sources":["../../src/figure/figure-rig.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,35 @@
1
1
  import type { SlotDef, CarrierAttachPoint, ArrangementStrategy, CarrierDims, PlacementContext, SeatingPose } from '../transfer/types.js';
2
2
  import type Component from '../components/component.js';
3
+ import { type ItemDims, type SeatTransform, type SlotLayout } from './slot-layout/index.js';
3
4
  type Constructor<T = object> = new (...args: any[]) => T;
4
5
  /**
5
6
  * Capacity (keep) 믹스인. subclass 는 `get slots()` 만 override; 나머지 default.
6
7
  */
7
8
  export declare function Capacity<TBase extends Constructor<Component>>(Base: TBase): {
8
9
  new (...args: any[]): {
9
- /** Declare the slot topology of this container. */
10
+ /**
11
+ * 층·자리 레이아웃 (slot-layout). 정하면 slots 가 이 레이아웃의 자리(id t{tier}_s{slot})가 되고,
12
+ * slotById 는 자리를 늘어놓지 않고 계산으로 찾으며, slotSeatTransform 이 자리 안착 변환을 낸다.
13
+ */
14
+ get slotLayout(): SlotLayout | undefined;
15
+ /** Declare the slot topology of this container. 기본은 slotLayout 의 자리, 없으면 빈 목록 */
10
16
  get slots(): SlotDef[];
17
+ /**
18
+ * 식별자로 자리 하나를 찾는다. slotLayout 이 있으면 주소를 계산해 찾는다 (자리가 수천 개여도 늘어놓지 않는다).
19
+ * 없으면 slots 에서 찾는다.
20
+ */
21
+ slotById(slotId: string): SlotDef | null;
22
+ /**
23
+ * 지정한 자리에 item 을 놓는 홀더 로컬 변환 (형상 중심, Y 축 회전 도, 균일 배율). 단위는 slotLayout 과 같다.
24
+ * belowHeight 는 같은 자리 아래 item 들의 표시 높이 합. slotLayout 이 없거나 자리·치수가 잘못되면 null.
25
+ */
26
+ slotSeatTransform(slotId: string, dims: ItemDims, belowHeight?: number, margin?: number): SeatTransform | null;
11
27
  /**
12
28
  * ArrangementStrategy used when `slots` is empty or slotDef has no arrangement.
13
29
  * Override in subclass to supply richer strategies (Stack, Queue, Grid, etc.).
14
30
  */
15
31
  get arrangementStrategy(): ArrangementStrategy;
16
- canReceive(component: any, _ctx?: {
32
+ canReceive(component: any, ctx?: {
17
33
  slotId?: string;
18
34
  }): boolean;
19
35
  findSlot(component: any): SlotDef | null;
@@ -62,6 +78,8 @@ export declare function Capacity<TBase extends Constructor<Component>>(Base: TBa
62
78
  * 받침면의 직관적 local Y — raw `receivingSurfaceY` 에서 상쇄분 제거. null = 받침면 명세 없음.
63
79
  */
64
80
  _receivingSurfaceLocalY(): number | null;
81
+ /** 자리가 타입을 받고 아직 찰 여유가 있으면 그 자리, 아니면 null */
82
+ _slotIfAvailable(slot: SlotDef | null, component: any): SlotDef | null;
65
83
  /**
66
84
  * Count children currently assigned to `slotId`. 자식이 `parent === this` 일 때만 count.
67
85
  */
@@ -1 +1 @@
1
- {"version":3,"file":"capacity-mixin.d.ts","sourceRoot":"","sources":["../../src/items/capacity-mixin.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,OAAO,EACP,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,WAAW,EACZ,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAMvD,KAAK,WAAW,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAYxD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,SAAS,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK;kBAf7B,GAAG,EAAE;QAsB9C,mDAAmD;qBACtC,OAAO,EAAE;QAItB;;;WAGG;mCACwB,mBAAmB;8BAMxB,GAAG,SAAS;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO;4BAa3C,GAAG,GAAG,OAAO,GAAG,IAAI;QAoCxC;;;;WAIG;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;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;;;WAGG;wCAC6B,GAAG,GAAG;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS;kCAoB3D,GAAG,GAAG,kBAAkB,GAAG,IAAI;QAczD;;;WAGG;8BACmB,WAAW,GAAG,GAAG,QAAO,gBAAgB,GAAQ,WAAW,GAAG,IAAI;QAyDxF;;;WAGG;8BACmB,MAAM,gBAAgB,GAAG,QAAQ,OAAO,GAAG,MAAM,GAAG,IAAI;QAa9E;;WAEG;mCACwB,MAAM,GAAG,IAAI;QASxC;;WAEG;+BACoB,MAAM,GAAG,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAazC"}
1
+ {"version":3,"file":"capacity-mixin.d.ts","sourceRoot":"","sources":["../../src/items/capacity-mixin.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,OAAO,EACP,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,WAAW,EACZ,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAKvD,OAAO,EAML,KAAK,QAAQ,EAEb,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,wBAAwB,CAAA;AAE/B,KAAK,WAAW,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AA2BxD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,SAAS,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK;kBA9B7B,GAAG,EAAE;QAqC9C;;;WAGG;0BACe,UAAU,GAAG,SAAS;QAIxC,iFAAiF;qBACpE,OAAO,EAAE;QAWtB;;;WAGG;yBACc,MAAM,GAAG,OAAO,GAAG,IAAI;QAUxC;;;WAGG;kCACuB,MAAM,QAAQ,QAAQ,iCAA4B,MAAM,GAAG,aAAa,GAAG,IAAI;QAOzG;;;WAGG;mCACwB,mBAAmB;8BAMxB,GAAG,QAAQ;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO;4BAc1C,GAAG,GAAG,OAAO,GAAG,IAAI;QAiCxC;;;;WAIG;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;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;;;WAGG;wCAC6B,GAAG,GAAG;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS;kCAoB3D,GAAG,GAAG,kBAAkB,GAAG,IAAI;QAczD;;;WAGG;8BACmB,WAAW,GAAG,GAAG,QAAO,gBAAgB,GAAQ,WAAW,GAAG,IAAI;QAyDxF;;;WAGG;8BACmB,MAAM,gBAAgB,GAAG,QAAQ,OAAO,GAAG,MAAM,GAAG,IAAI;QAa9E;;WAEG;mCACwB,MAAM,GAAG,IAAI;QASxC,6CAA6C;+BACtB,OAAO,GAAG,IAAI,aAAa,GAAG,GAAG,OAAO,GAAG,IAAI;QAMtE;;WAEG;+BACoB,MAAM,GAAG,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAazC"}
@@ -4,4 +4,5 @@ export * from './stacking/index.js';
4
4
  export type { SlotRecord } from './slot-record.js';
5
5
  export { ItemsDataBinding } from './items-data-binding.js';
6
6
  export { Capacity } from './capacity-mixin.js';
7
+ export * from './slot-layout/index.js';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/items/index.ts"],"names":[],"mappings":"AAOA,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AAEtC,cAAc,qBAAqB,CAAA;AACnC,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAG1D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/items/index.ts"],"names":[],"mappings":"AAOA,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AAEtC,cAAc,qBAAqB,CAAA;AACnC,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAG1D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './layout-issue.js';
2
+ export * from './slot-layout.js';
3
+ export * from './slot-seat.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/items/slot-layout/index.ts"],"names":[],"mappings":"AAMA,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,35 @@
1
+ export type LayoutIssueCode =
2
+ /** 층이 하나 이상 있어야 한다 */
3
+ 'TIERS_REQUIRED'
4
+ /** ON·IN·HANG 중 하나 */
5
+ | 'MOUNT_INVALID'
6
+ /** 층 번호는 1부터 빈 번호 없이 오름차순 */
7
+ | 'TIER_NUMBER_SEQUENCE'
8
+ /** 아래층보다 높아야 한다 */
9
+ | 'ELEVATION_NOT_ASCENDING'
10
+ /** 유한 수 */
11
+ | 'FINITE_NUMBER_REQUIRED'
12
+ /** 유한 양수 */
13
+ | 'POSITIVE_NUMBER_REQUIRED'
14
+ /** 양의 정수 */
15
+ | 'POSITIVE_INTEGER_REQUIRED'
16
+ /** 배열 */
17
+ | 'ARRAY_REQUIRED'
18
+ /** 객체 */
19
+ | 'OBJECT_REQUIRED'
20
+ /** X·Z 중 하나 */
21
+ | 'AXIS_INVALID'
22
+ /** SINGLE·ROW·GRID·CUSTOM 중 하나 */
23
+ | 'PATTERN_INVALID'
24
+ /** CUSTOM 자리 번호는 1부터 빈 번호 없이 */
25
+ | 'SLOT_NUMBER_SEQUENCE'
26
+ /** JSON 으로 저장할 수 없는 값 (params.value: NaN·Infinity·-Infinity) */
27
+ | 'NOT_PERSISTABLE';
28
+ export interface LayoutIssue {
29
+ code: LayoutIssueCode;
30
+ /** 값의 위치. 예 'tiers[0].layout.pitch'. 레이아웃 전체이면 빈 문자열 */
31
+ path: string;
32
+ params?: Record<string, string | number>;
33
+ }
34
+ export declare function layoutIssue(code: LayoutIssueCode, path: string, params?: Record<string, string | number>): LayoutIssue;
35
+ //# sourceMappingURL=layout-issue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-issue.d.ts","sourceRoot":"","sources":["../../../src/items/slot-layout/layout-issue.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,eAAe;AACzB,sBAAsB;AACpB,gBAAgB;AAClB,sBAAsB;GACpB,eAAe;AACjB,6BAA6B;GAC3B,sBAAsB;AACxB,mBAAmB;GACjB,yBAAyB;AAC3B,WAAW;GACT,wBAAwB;AAC1B,YAAY;GACV,0BAA0B;AAC5B,YAAY;GACV,2BAA2B;AAC7B,SAAS;GACP,gBAAgB;AAClB,SAAS;GACP,iBAAiB;AACnB,eAAe;GACb,cAAc;AAChB,kCAAkC;GAChC,iBAAiB;AACnB,gCAAgC;GAC9B,sBAAsB;AACxB,gEAAgE;GAC9D,iBAAiB,CAAA;AAErB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAA;IACrB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;CACzC;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACvC,WAAW,CAEb"}
@@ -0,0 +1,138 @@
1
+ import { LayoutIssue } from './layout-issue.js';
2
+ /** 홀더에 붙는 방향: 위에 얹힘 / 안에 수납 / 아래에 매달림 */
3
+ export type SlotMount = 'ON' | 'IN' | 'HANG';
4
+ export interface SlotLayout {
5
+ mount: SlotMount;
6
+ /** tierNo 오름차순 = 아래에서 위로 */
7
+ tiers: SlotLayoutTier[];
8
+ }
9
+ export interface SlotLayoutTier {
10
+ /** 1부터 */
11
+ tierNo: number;
12
+ /** 홀더 바닥 기준 층 바닥 높이. 아래층 높이에 더하지 않는다 */
13
+ elevation: number;
14
+ layout: SlotPattern;
15
+ }
16
+ /** 층 안의 자리 배치 */
17
+ export type SlotPattern = {
18
+ pattern: 'SINGLE';
19
+ slot: SlotSpec;
20
+ }
21
+ /** origin: 1번 자리가 축의 어느 끝에 있는지. 기본 MIN */
22
+ | {
23
+ pattern: 'ROW';
24
+ count: number;
25
+ pitch: number;
26
+ axis: 'X' | 'Z';
27
+ origin?: 'MIN' | 'MAX';
28
+ slot: SlotSpec;
29
+ }
30
+ /** 행(rows)은 Z 방향 줄, 열(cols)은 X 방향 칸 */
31
+ | {
32
+ pattern: 'GRID';
33
+ rows: number;
34
+ cols: number;
35
+ pitch: {
36
+ x: number;
37
+ z: number;
38
+ };
39
+ slot: SlotSpec;
40
+ order?: GridOrder;
41
+ origin?: GridOrigin;
42
+ } | {
43
+ pattern: 'CUSTOM';
44
+ slots: PatternSlot[];
45
+ };
46
+ /** GRID 자리 번호 순서. 기본 ROW_MAJOR */
47
+ export type GridOrder = 'ROW_MAJOR' | 'COL_MAJOR' | 'SERPENTINE_ROW' | 'SERPENTINE_COL';
48
+ /** GRID 1번 자리가 있는 모서리. 기본 { x: 'MIN', z: 'MIN' } */
49
+ export interface GridOrigin {
50
+ x: 'MIN' | 'MAX';
51
+ z: 'MIN' | 'MAX';
52
+ }
53
+ /** 한 자리의 규격. SINGLE·ROW·GRID 는 층 안의 모든 자리가 같은 규격이다 */
54
+ export interface SlotSpec {
55
+ /** 허용 공간. width = X, depth = Z, height = Y */
56
+ allowed: {
57
+ width: number;
58
+ depth: number;
59
+ height: number;
60
+ };
61
+ /** 받는 item 타입. 생략하면 모든 타입, 빈 배열이면 아무것도 받지 않는다 */
62
+ accepts?: string[];
63
+ /** 한 자리에 쌓는 최대 수. 생략하면 1 */
64
+ stackLimit?: number;
65
+ /** 도 */
66
+ rotation?: number;
67
+ }
68
+ /** CUSTOM 층의 자리 */
69
+ export interface PatternSlot extends SlotSpec {
70
+ /** 층 안에서 1부터 */
71
+ slotNo: number;
72
+ /** 표시용 이름 (FRONT·REAR·L·R 등) */
73
+ name?: string;
74
+ /** 층 중심 기준 자리 중심 */
75
+ offset: {
76
+ x: number;
77
+ z: number;
78
+ };
79
+ }
80
+ export interface SlotAddress {
81
+ tier: number;
82
+ slot: number;
83
+ }
84
+ /** 주소로 찾은 자리. offset 은 층 중심 기준, elevation 은 홀더 바닥 기준 */
85
+ export interface ResolvedSlot {
86
+ tier: number;
87
+ slotNo: number;
88
+ name?: string;
89
+ elevation: number;
90
+ offset: {
91
+ x: number;
92
+ z: number;
93
+ };
94
+ allowed: {
95
+ width: number;
96
+ depth: number;
97
+ height: number;
98
+ };
99
+ accepts?: string[];
100
+ stackLimit: number;
101
+ rotation: number;
102
+ }
103
+ /**
104
+ * 잘못된 곳을 모두 돌려준다. 빈 배열이면 올바른 레이아웃.
105
+ * stackLimit 은 Infinity(제한 없음)도 받는다. JSON 으로 저장할 값이면 persistenceIssues 를 함께 본다.
106
+ */
107
+ export declare function validateSlotLayout(layout: SlotLayout): LayoutIssue[];
108
+ /**
109
+ * JSON 으로 저장하면 null 로 바뀌는 값(NaN·Infinity)을 찾는다. 다시 열면 잘못된 레이아웃이 되므로 저장 전에 막는다.
110
+ */
111
+ export declare function persistenceIssues(value: unknown, path?: string): LayoutIssue[];
112
+ export declare function slotCount(pattern: SlotPattern): number;
113
+ /** GRID 의 origin 모서리 기준 행 r·열 c (1부터) → 자리 번호 */
114
+ export declare function gridSlotNo(rows: number, cols: number, r: number, c: number, order?: GridOrder): number;
115
+ /** 자리 번호 → origin 모서리 기준 행·열 (gridSlotNo 의 역) */
116
+ export declare function gridCellOf(rows: number, cols: number, slotNo: number, order?: GridOrder): {
117
+ r: number;
118
+ c: number;
119
+ };
120
+ export interface ResolveSlotOptions {
121
+ /** stackLimit 을 생략한 자리의 값. 기본 1. 레이아웃을 정하지 않은 홀더의 기본 자리처럼 제한이 없으면 Infinity */
122
+ defaultStackLimit?: number;
123
+ }
124
+ /**
125
+ * 주소의 자리를 찾는다. 층이나 자리가 없으면 null.
126
+ * ROW·GRID 자리는 규칙으로 계산한다:
127
+ * ROW 중심 = ((n - 1) - (count - 1) / 2) × pitch, origin MAX 이면 부호 반전
128
+ * GRID 중심 = 행·열을 order 의 역으로 풀고 x = (c - 1 - (cols - 1)/2) × pitch.x, z = (r - 1 - (rows - 1)/2) × pitch.z,
129
+ * origin MAX 인 축만 부호 반전
130
+ */
131
+ export declare function resolveSlot(layout: SlotLayout, address: SlotAddress, options?: ResolveSlotOptions): ResolvedSlot | null;
132
+ /** 자리 식별자. 3D 자산의 자리 앵커 노드 이름과 같다 */
133
+ export declare function slotIdOf(address: SlotAddress): string;
134
+ /** 자리 식별자 → 주소. 형식이 아니면 null */
135
+ export declare function addressOfSlotId(slotId: unknown): SlotAddress | null;
136
+ /** 레이아웃의 모든 주소를 층·자리 순서로. 자리가 많은 GRID 에서는 필요한 주소만 resolveSlot 으로 찾는 편이 낫다 */
137
+ export declare function slotAddresses(layout: SlotLayout): Generator<SlotAddress>;
138
+ //# sourceMappingURL=slot-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot-layout.d.ts","sourceRoot":"","sources":["../../../src/items/slot-layout/slot-layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import type { ResolvedSlot, SlotMount } from './slot-layout.js';
2
+ /** item 치수. width = X, depth = Z, height = Y (레이아웃과 같은 단위) */
3
+ export interface ItemDims {
4
+ width: number;
5
+ depth: number;
6
+ height: number;
7
+ }
8
+ /** 홀더 로컬 변환. position 은 item 형상 중심, rotation 은 Y 축 회전(도), scale 은 균일 배율 */
9
+ export interface SeatTransform {
10
+ position: {
11
+ x: number;
12
+ y: number;
13
+ z: number;
14
+ };
15
+ rotation: number;
16
+ scale: number;
17
+ }
18
+ export declare const DEFAULT_SEAT_MARGIN = 0.05;
19
+ /** 회전한 item 의 홀더 로컬 X·Z 외접 크기 */
20
+ export declare function rotatedFootprint(dims: ItemDims, rotation: number): {
21
+ width: number;
22
+ depth: number;
23
+ };
24
+ /**
25
+ * 자리에 item 을 놓는 홀더 로컬 변환. 치수·값이 잘못되면 null (NaN·Infinity 를 내지 않는다).
26
+ * belowHeight: 같은 자리 아래 item 들의 표시 높이(height × scale) 합.
27
+ * margin: 줄여 그릴 때만 쓰는 여유 비율 (0 이상 1 미만). 판정에는 쓰지 않는다.
28
+ */
29
+ export declare function seatTransform(dims: ItemDims, slot: ResolvedSlot, mount: SlotMount, belowHeight?: number, margin?: number): SeatTransform | null;
30
+ /** 한 자리에 아래에서 위로 쌓인 item 들의 변환. 치수를 모르는 item 은 null 이며 높이에 더하지 않는다 */
31
+ export declare function stackSeatTransforms(stack: (ItemDims | null | undefined)[], slot: ResolvedSlot, mount: SlotMount, margin?: number): (SeatTransform | null)[];
32
+ /** 자리 앵커의 홀더 로컬 위치. 자리 offset 과 층 elevation 만 담는다 */
33
+ export declare function slotAnchorPosition(slot: ResolvedSlot): {
34
+ x: number;
35
+ y: number;
36
+ z: number;
37
+ };
38
+ /**
39
+ * 자리 앵커의 자식으로 붙일 때의 변환. 적층 높이·반높이·scale·rotation 만 담고 x·z 는 0 이다.
40
+ * 자리 offset 과 elevation 은 앵커가 이미 가지므로 다시 더하지 않는다.
41
+ * slotAnchorPosition(slot) + seatInAnchor(...).position = seatTransform(...).position
42
+ */
43
+ export declare function seatInAnchor(dims: ItemDims, slot: ResolvedSlot, mount: SlotMount, belowHeight?: number, margin?: number): SeatTransform | null;
44
+ export type FitVerdict = 'OK' | 'NG' | 'UNKNOWN';
45
+ export type FitReason = 'SLOT_NOT_FOUND' | 'TYPE_NOT_ACCEPTED' | 'WIDTH_EXCEEDED' | 'DEPTH_EXCEEDED' | 'HEIGHT_EXCEEDED' | 'STACK_LIMIT_EXCEEDED' | 'SPEC_UNKNOWN';
46
+ export interface FitCandidate {
47
+ type?: string;
48
+ /** 치수를 모르면 생략 */
49
+ dims?: ItemDims | null;
50
+ }
51
+ export interface FitResult {
52
+ verdict: FitVerdict;
53
+ reasons: FitReason[];
54
+ }
55
+ export interface FitOptions {
56
+ /** 타입 비교 전에 양쪽에 적용할 정규화. 기본은 문자열 그대로 */
57
+ normalizeType?: (type: unknown) => string;
58
+ }
59
+ /**
60
+ * 자리에 item 하나를 더 놓을 수 있는지. occupants 는 그 자리에 이미 놓인 item.
61
+ * 줄이기 전 치수를 쓴다. 개수 한도와 높이 한도는 따로 본다. accepts 생략은 모든 타입, 빈 배열은 아무것도 받지 않음.
62
+ * 타입·치수를 몰라 판정할 수 없으면 UNKNOWN 이다.
63
+ */
64
+ export declare function judgeItemFit(slot: ResolvedSlot | null, candidate: FitCandidate, occupants?: FitCandidate[], options?: FitOptions): FitResult;
65
+ //# sourceMappingURL=slot-seat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot-seat.d.ts","sourceRoot":"","sources":["../../../src/items/slot-layout/slot-seat.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE/D,8DAA8D;AAC9D,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,mBAAmB,OAAO,CAAA;AAOvC,iCAAiC;AACjC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAOnG;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,SAAS,EAChB,WAAW,SAAI,EACf,MAAM,SAAsB,GAC3B,aAAa,GAAG,IAAI,CAUtB;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,EACtC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,SAAS,EAChB,MAAM,SAAsB,GAC3B,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAO1B;AAED,qDAAqD;AACrD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAE1F;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,SAAS,EAChB,WAAW,SAAI,EACf,MAAM,SAAsB,GAC3B,aAAa,GAAG,IAAI,CAItB;AAID,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;AAChD,MAAM,MAAM,SAAS,GACjB,gBAAgB,GAChB,mBAAmB,GACnB,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,sBAAsB,GACtB,cAAc,CAAA;AAElB,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iBAAiB;IACjB,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,UAAU,CAAA;IACnB,OAAO,EAAE,SAAS,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAA;CAC1C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,YAAY,GAAG,IAAI,EACzB,SAAS,EAAE,YAAY,EACvB,SAAS,GAAE,YAAY,EAAO,EAC9B,OAAO,GAAE,UAAe,GACvB,SAAS,CA6BX"}
@@ -30,6 +30,11 @@ export interface SlotDef {
30
30
  localRotation?: Vec3;
31
31
  /** Component types that may occupy this slot. Empty = any type allowed. */
32
32
  allowedTypes?: string[];
33
+ /**
34
+ * 받는 타입 (자리 레이아웃의 accepts). 정해 두면 allowedTypes 대신 이것으로 판정한다.
35
+ * undefined 는 모든 타입, 빈 배열은 아무것도 받지 않음 — allowedTypes 로는 "아무것도 받지 않음"을 적을 수 없다.
36
+ */
37
+ accepts?: string[];
33
38
  /** Maximum occupant count (default 1). */
34
39
  maxCount?: number;
35
40
  arrangement?: SlotArrangement;
@@ -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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hatiolab/things-scene",
3
- "version": "10.1.76",
3
+ "version": "10.1.77",
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",
@@ -45,6 +45,8 @@
45
45
  ],
46
46
  "scripts": {
47
47
  "test": "mocha --exit --require should --require ./test/setup.js --node-option import=tsx test/**/test-*.js",
48
+ "test:coverage": "c8 --reporter=text-summary --reporter=lcov mocha --exit --require should --require ./test/setup.js --node-option import=tsx 'test/**/test-*.js'",
49
+ "test:coverage:slot-layout": "c8 --check-coverage --statements 100 --lines 100 --branches 95 --functions 95 --include 'src/items/slot-layout/**' --reporter=text mocha --exit --require should --require ./test/setup.js --node-option import=tsx 'test/unit/items/test-slot-*.js' test/unit/items/test-capacity-slot-layout.js",
48
50
  "test:figure": "TSX_TSCONFIG_PATH=./test/tsconfig.figure-model-src.json mocha --exit --require should --require ./test/setup.js --node-option import=./test/resolve-figure-model.mjs test/figure-*.check.js",
49
51
  "test:case": "mocha --require should --require ./test/setup.js --node-option import=tsx",
50
52
  "clean": "rimraf dist-types things-scene*.js *.js.map",
@@ -70,6 +72,7 @@
70
72
  "@types/node": "^22.0.0",
71
73
  "@types/three": "^0.185.4",
72
74
  "@types/tinycolor2": "^1.4.3",
75
+ "c8": "^10.1.3",
73
76
  "canvas": "^3.1.0",
74
77
  "chai": "^4.3.6",
75
78
  "chai-dom": "^1.11.0",