@hatiolab/things-scene 10.1.100 → 10.1.101
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.
- package/dist-types/figure/figure-capability.d.ts +3 -3
- package/dist-types/figure/figure-instance.d.ts +3 -1
- package/dist-types/figure/figure-instance.d.ts.map +1 -1
- package/dist-types/figure/figure-palette.d.ts +2 -2
- package/dist-types/figure/figure-palette.d.ts.map +1 -1
- package/dist-types/figure/figure-placed-asset.d.ts +73 -8
- package/dist-types/figure/figure-placed-asset.d.ts.map +1 -1
- package/dist-types/figure/figure-real-object.d.ts +23 -1
- package/dist-types/figure/figure-real-object.d.ts.map +1 -1
- package/dist-types/figure/figure-size.d.ts +16 -0
- package/dist-types/figure/figure-size.d.ts.map +1 -1
- package/dist-types/figure/figure-status.d.ts +26 -6
- package/dist-types/figure/figure-status.d.ts.map +1 -1
- package/dist-types/figure/index.d.ts +1 -1
- package/dist-types/figure/index.d.ts.map +1 -1
- package/dist-types/items/capacity-mixin.d.ts +1 -1
- package/dist-types/items/item-seating.d.ts +1 -1
- package/dist-types/items/item-seating.d.ts.map +1 -1
- package/dist-types/threed/real-object-text.d.ts +5 -0
- package/dist-types/threed/real-object-text.d.ts.map +1 -1
- package/package.json +2 -2
- package/things-scene-min.js +4 -4
- package/things-scene-min.js.map +1 -1
- package/things-scene.mjs +1 -1
- package/things-scene.mjs.map +1 -1
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* ## 사다리 셋
|
|
11
11
|
*
|
|
12
|
-
* 없음 그리기만 한다. 대부분의
|
|
12
|
+
* 없음 그리기만 한다. 대부분의 피규어다
|
|
13
13
|
* 담는다 `Capacity` + `Holdable` — 자리가 있고 물건이 앉는다. 랙·팔레트·작업대
|
|
14
14
|
* 흐른다 `FlowNode` — 담는 것에 더해 받고 보낸다. 컨베이어·슈트·소터
|
|
15
15
|
*
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
*
|
|
20
20
|
* ## 클래스는 타입마다가 아니라 **능력 조합마다** 하나다
|
|
21
21
|
*
|
|
22
|
-
*
|
|
22
|
+
* 피규어 100 개가 다 `FlowNode` 면 클래스는 하나다. 타입마다 만들면 프로토타입 체인이
|
|
23
23
|
* 100 벌이 되고, 그 100 벌이 하는 일이 전부 같다.
|
|
24
24
|
*/
|
|
25
25
|
import Component from '../components/component.js';
|
|
@@ -56,7 +56,7 @@ export declare function slotsFromBindings(bindings: readonly Pick<FigureBindingD
|
|
|
56
56
|
/**
|
|
57
57
|
* 선언한 능력으로 클래스를 조립한다. 같은 조합이면 같은 클래스를 돌려준다.
|
|
58
58
|
*
|
|
59
|
-
* 모르는 이름이면 **던진다.** 오타 하나가 「능력이 있는 줄 알았는데 없는」
|
|
59
|
+
* 모르는 이름이면 **던진다.** 오타 하나가 「능력이 있는 줄 알았는데 없는」 피규어를 만들고,
|
|
60
60
|
* 그것은 물건을 넘기려는 순간에야 드러난다.
|
|
61
61
|
*/
|
|
62
62
|
export declare function figureClassFor(base: unknown, capabilities?: readonly string[], placement?: string): unknown;
|
|
@@ -280,7 +280,9 @@ export declare class FigureInstance extends FigureInstance_base {
|
|
|
280
280
|
* - the values its data bindings read, set by hand -- \`state.figureValues\`, by accessor, a number, a checkbox or a
|
|
281
281
|
* choice each (ADR-0051 §8);
|
|
282
282
|
* - its motion groups -- \`state.motion\`, per group the clip, the speed 0–3 and a pause (ADR-0051 §3.2);
|
|
283
|
-
* - and, read only, its data as it takes it (\`figure-data\`): shape, values and their sources, refusals
|
|
283
|
+
* - and, read only, its data as it takes it (\`figure-data\`): shape, values and their sources, refusals;
|
|
284
|
+
* - its status template (\`figure-status\`, \`state.statusTemplate\`) for a figure with status ports: the template
|
|
285
|
+
* chosen and each code's look, what was not taken (ADR-0051 2.3).
|
|
284
286
|
* A map the figure has nothing for is not offered.
|
|
285
287
|
*/
|
|
286
288
|
get nature(): ComponentNature;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figure-instance.d.ts","sourceRoot":"","sources":["../../src/figure/figure-instance.ts"],"names":[],"mappings":"AAKA,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAClD,OAAO,KAAK,MAAM,wBAAwB,CAAA;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAS7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,OAAO,uBAAuB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyC9B,qBAAa,cAAe,SAAQ,mBAAe;IACjD;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,GAAE,SAAS,MAAM,EAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAwBjG;;;;;;;;;OASG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAEzB,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,OAAO,IAAI,OAAO;IAIlB
|
|
1
|
+
{"version":3,"file":"figure-instance.d.ts","sourceRoot":"","sources":["../../src/figure/figure-instance.ts"],"names":[],"mappings":"AAKA,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAClD,OAAO,KAAK,MAAM,wBAAwB,CAAA;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAS7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,OAAO,uBAAuB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyC9B,qBAAa,cAAe,SAAQ,mBAAe;IACjD;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,GAAE,SAAS,MAAM,EAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAwBjG;;;;;;;;;OASG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAEzB,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,OAAO,IAAI,OAAO;IAIlB;;;;;;;;;;;;;;;OAeG;IACH,IAAI,MAAM,IAAI,eAAe,CA+C5B;IAED,OAAO,CAAC,OAAO,CAAC,CAA+C;IAE/D;;;;OAIG;IACH,IAAI,YAAY,IAAI,YAAY,GAAG,SAAS,CAU3C;IAED,eAAe,IAAI,WAAW,GAAG,SAAS;IAI1C,MAAM,CAAC,GAAG,EAAE,kBAAkB;IAsC9B,yGAAyG;IACzG,OAAO,KAAK,MAAM,GAEjB;IAED,qHAAqH;IACrH,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,QAAQ,CAEf;IAED,OAAO,CAAC,IAAI,CAAC,CAAsC;IAEnD;;;OAGG;IACH,OAAO,CAAC,OAAO;IAUf,0GAA0G;IAC1G,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;OAGG;IACH,OAAO,CAAC,SAAS;IAQjB,sDAAsD;IACtD,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAGnC;IAQD,YAAY,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO;;;;;;IAkBjH,KAAK,CAAC,MAAM,EAAE,GAAG;IAMjB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAchE,OAAO,CAAC,MAAM,EAAE,GAAG;IAKnB,uEAAuE;IACvE,OAAO,CAAC,cAAc;IAiCtB,uEAAuE;IACvE,OAAO,CAAC,WAAW;IAiBnB;;;;OAIG;IACM,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;CAGvD;AAMD,eAAe,cAAc,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 팔레트 — 색 **토큰**을 실제 색으로 옮긴다.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* 피규어는 `'#154473'` 이 아니라 `'palette.primary'` 를 담는다. 값을 구우면 테마를
|
|
5
5
|
* 바꿔도 따라오지 않고, 저작한 자산 수백 개를 하나씩 고쳐야 한다.
|
|
6
6
|
*
|
|
7
7
|
* 토큰 수를 적게 두는 것은 미감과 성능 양쪽의 근거다 — 색이 적으면 화면이 정돈되고,
|
|
@@ -82,7 +82,7 @@ export declare function activePalette(): FigurePalette;
|
|
|
82
82
|
* 팔레트 탓인지 저작 실수인지 알 수 없다. 등록 시점에 한 번 크게 실패하는 편이 낫다.
|
|
83
83
|
*/
|
|
84
84
|
export declare function resolveToken(token: string): string;
|
|
85
|
-
/** 토큰이 없는 부품에 쓸 색.
|
|
85
|
+
/** 토큰이 없는 부품에 쓸 색. 피규어가 색을 안 정했다는 뜻이지 오류는 아니다. */
|
|
86
86
|
export declare const UNTOKENED_COLOR: string;
|
|
87
87
|
/** 시험을 위해 처음 상태로 되돌린다. */
|
|
88
88
|
export declare function resetPalettes(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figure-palette.d.ts","sourceRoot":"","sources":["../../src/figure/figure-palette.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,eAAO,MAAM,eAAe,EAAE,aAc7B,CAAA;AAOD,sDAAsD;AACtD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,iCAAiC;AACjC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAG1E;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CASnD;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,aAAa,IAAI,aAAa,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASlD;AAED,
|
|
1
|
+
{"version":3,"file":"figure-palette.d.ts","sourceRoot":"","sources":["../../src/figure/figure-palette.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,eAAO,MAAM,eAAe,EAAE,aAc7B,CAAA;AAOD,sDAAsD;AACtD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,iCAAiC;AACjC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAG1E;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CASnD;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,aAAa,IAAI,aAAa,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASlD;AAED,kDAAkD;AAClD,eAAO,MAAM,eAAe,QAAsC,CAAA;AAElE,0BAA0B;AAC1B,wBAAgB,aAAa,IAAI,IAAI,CAKpC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type EffectiveSlotLayout, type FigureAsset } from '@hatiolab/figure-model';
|
|
1
|
+
import { figureShapeBoundsOf, type EffectiveSlotLayout, type FigureAsset, type SlotLayout } from '@hatiolab/figure-model';
|
|
2
2
|
type PlacedState = {
|
|
3
3
|
type?: unknown;
|
|
4
4
|
slotLayout?: unknown;
|
|
@@ -7,17 +7,58 @@ type PlacedState = {
|
|
|
7
7
|
export declare function figureAssetFor(state: PlacedState | undefined): FigureAsset | null;
|
|
8
8
|
/** Where this instance's layout comes from and whether it holds -- for a screen that shows or edits the override. */
|
|
9
9
|
export declare function figureSlotLayoutOfPlacement(state: PlacedState | undefined): EffectiveSlotLayout | null;
|
|
10
|
+
/** How big each anchor's face is, along its part's own X (width) and Z (depth): what slots are checked against. */
|
|
11
|
+
export declare function figureAnchorFacesOf(anchors: readonly {
|
|
12
|
+
id: string;
|
|
13
|
+
part?: string;
|
|
14
|
+
}[], geometry: readonly {
|
|
15
|
+
id: string;
|
|
16
|
+
shape?: Parameters<typeof figureShapeBoundsOf>[0];
|
|
17
|
+
}[]): Record<string, {
|
|
18
|
+
width: number;
|
|
19
|
+
depth: number;
|
|
20
|
+
}>;
|
|
21
|
+
/** A placed figure as the editor's host reads it: its state, box and scene, and what it holds. */
|
|
22
|
+
type PlacedFigure = {
|
|
23
|
+
state: PlacedState & {
|
|
24
|
+
width?: unknown;
|
|
25
|
+
height?: unknown;
|
|
26
|
+
depth?: unknown;
|
|
27
|
+
designInputs?: unknown;
|
|
28
|
+
};
|
|
29
|
+
bounds?: {
|
|
30
|
+
width: number;
|
|
31
|
+
height: number;
|
|
32
|
+
};
|
|
33
|
+
_items?: Array<Record<string, any>>;
|
|
34
|
+
itemTypeOf?(item: unknown): string | null;
|
|
35
|
+
itemDimsOf?(item: unknown): {
|
|
36
|
+
width: number;
|
|
37
|
+
depth: number;
|
|
38
|
+
height: number;
|
|
39
|
+
} | null;
|
|
40
|
+
};
|
|
10
41
|
/**
|
|
11
42
|
* What the shared slot layout editor is given for a placed figure (the `slot-layout` property, ADR-0118 decision 8):
|
|
12
43
|
* the figure's own layout as the value to start from, "use default" only when the placement overrides it, the figure's
|
|
13
|
-
* anchors as the only ones -- a placement changes tiers and slots, never anchors -- and the presets on those anchors.
|
|
44
|
+
* anchors as the only ones -- a placement changes tiers and slots, never anchors -- and the presets on those anchors.
|
|
45
|
+
*
|
|
46
|
+
* Held to the figure's own check before anything is applied (ADR-0051 4.1, decision 5): every slot names the types it
|
|
47
|
+
* takes, so "any type" is not offered. The faces are measured at this placement's size; the types are the scene's item
|
|
48
|
+
* types (ADR-0155); what it holds is shown read only. Each sound edit goes to the scene at once, as one step. An
|
|
14
49
|
* override that does not hold is said, with its first issue. Undefined for a figure without a slot layout.
|
|
15
50
|
*/
|
|
16
|
-
export declare function figurePlacementSlotLayoutOptions(
|
|
17
|
-
|
|
18
|
-
canUseDefault: boolean;
|
|
19
|
-
anchors: {
|
|
51
|
+
export declare function figurePlacementSlotLayoutOptions(placed: PlacedFigure | undefined): {
|
|
52
|
+
items: {
|
|
20
53
|
id: string;
|
|
54
|
+
slot: string | undefined;
|
|
55
|
+
code: string | undefined;
|
|
56
|
+
type: string | null;
|
|
57
|
+
dims: {
|
|
58
|
+
width: number;
|
|
59
|
+
depth: number;
|
|
60
|
+
height: number;
|
|
61
|
+
} | null;
|
|
21
62
|
}[];
|
|
22
63
|
presets: {
|
|
23
64
|
key: import("@hatiolab/figure-model").SlotLayoutPresetKey;
|
|
@@ -31,12 +72,36 @@ export declare function figurePlacementSlotLayoutOptions(state: PlacedState | un
|
|
|
31
72
|
width: number;
|
|
32
73
|
depth: number;
|
|
33
74
|
slotHeight: number;
|
|
34
|
-
}, params: Record<string, number>) =>
|
|
75
|
+
}, params: Record<string, number>) => SlotLayout;
|
|
35
76
|
}[];
|
|
36
77
|
notes: {
|
|
37
78
|
level: "error";
|
|
38
|
-
|
|
79
|
+
code: string;
|
|
80
|
+
issue: import("@hatiolab/figure-model").LayoutIssue;
|
|
81
|
+
}[];
|
|
82
|
+
itemTypes?: {
|
|
83
|
+
code: string;
|
|
84
|
+
name: string;
|
|
85
|
+
}[] | undefined;
|
|
86
|
+
effective: SlotLayout;
|
|
87
|
+
canUseDefault: boolean;
|
|
88
|
+
live: boolean;
|
|
89
|
+
acceptsRequired: boolean;
|
|
90
|
+
unit: string;
|
|
91
|
+
anchors: {
|
|
92
|
+
part?: any;
|
|
93
|
+
face?: any;
|
|
94
|
+
id: any;
|
|
39
95
|
}[];
|
|
96
|
+
anchorFaces: Record<string, {
|
|
97
|
+
width: number;
|
|
98
|
+
depth: number;
|
|
99
|
+
}>;
|
|
100
|
+
presetSize: {
|
|
101
|
+
width: number;
|
|
102
|
+
depth: number;
|
|
103
|
+
};
|
|
104
|
+
validate: (layout: SlotLayout) => import("@hatiolab/figure-model").LayoutIssue[];
|
|
40
105
|
} | undefined;
|
|
41
106
|
export {};
|
|
42
107
|
//# sourceMappingURL=figure-placed-asset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figure-placed-asset.d.ts","sourceRoot":"","sources":["../../src/figure/figure-placed-asset.ts"],"names":[],"mappings":"AAYA,OAAO,
|
|
1
|
+
{"version":3,"file":"figure-placed-asset.d.ts","sourceRoot":"","sources":["../../src/figure/figure-placed-asset.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,mBAAmB,EAOnB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,wBAAwB,CAAA;AAQ/B,KAAK,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAE3D,kGAAkG;AAClG,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,CAOjF;AAED,qHAAqH;AACrH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,mBAAmB,GAAG,IAAI,CAGtG;AAeD,mHAAmH;AACnH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EACjD,QAAQ,EAAE,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,EAAE,GACrF,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CASlD;AAED,kGAAkG;AAClG,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,WAAW,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IACnG,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1C,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;IACnC,UAAU,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAA;IACzC,UAAU,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CACpF,CAAA;AAqBD;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS;;;cAyB1C,MAAM,GAAG,SAAS;cACzB,MAAM,GAAG,SAAS;;;mBA1DX,MAAM;mBAAS,MAAM;oBAAU,MAAM;;;;;;;;;;;sBAkExD;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;eAnF7E,MAAM;eAAS,MAAM;;;eAArB,MAAM;eAAS,MAAM;;uBAsEzB,UAAU;cAiBhC"}
|
|
@@ -5,6 +5,20 @@ import { type FigureRenderLevel } from '@hatiolab/figure-model';
|
|
|
5
5
|
import { type ItemSeat } from '../items/item-seating.js';
|
|
6
6
|
import { type RegisteredFigureFigure } from './figure-registry.js';
|
|
7
7
|
import type { FigureRuntimeIssue } from './figure-inputs.js';
|
|
8
|
+
import { type FigureStatusSource } from './figure-status.js';
|
|
9
|
+
/** What of a port's status look was not taken, and why (ADR-0051 2.3). The rest of the look is taken. */
|
|
10
|
+
export interface FigureStatusIssue {
|
|
11
|
+
port: string;
|
|
12
|
+
code: string;
|
|
13
|
+
/** Where the look came from. */
|
|
14
|
+
source: FigureStatusSource;
|
|
15
|
+
/** A state input's value, the clip of the port's motion group, the colour, the effect, the values whole, or the resolver's answer. */
|
|
16
|
+
target: 'state' | 'motion-clip' | 'color' | 'effect' | 'values' | 'resolver';
|
|
17
|
+
/** The state input, or the motion group. */
|
|
18
|
+
id?: string;
|
|
19
|
+
reason: 'not-a-number' | 'out-of-range' | 'not-a-clip' | 'not-a-color' | 'not-an-effect' | 'not-a-record' | 'failed';
|
|
20
|
+
value: unknown;
|
|
21
|
+
}
|
|
8
22
|
/** Where a thing held at a place hangs, as \`attachPointFor\` answers a holder. */
|
|
9
23
|
export interface FigurePlaceAttachment {
|
|
10
24
|
attach: THREE.Object3D;
|
|
@@ -37,6 +51,11 @@ export declare class FigureRealObject extends RealObject<THREE.Group> {
|
|
|
37
51
|
get figure(): RegisteredFigureFigure | null;
|
|
38
52
|
protected getObject3dInstance(): THREE.Group;
|
|
39
53
|
build(): void;
|
|
54
|
+
/** What its status ports' looks gave that was not taken (ADR-0051 2.3), as of the last lookup. */
|
|
55
|
+
statusIssues: FigureStatusIssue[];
|
|
56
|
+
private unfollowStatus?;
|
|
57
|
+
private followStatusSources;
|
|
58
|
+
private inputsChanged;
|
|
40
59
|
/** What the component's inputs give, handed to the rig: the data's state values and colours, each group's setting. */
|
|
41
60
|
private applyInputs;
|
|
42
61
|
/**
|
|
@@ -145,7 +164,10 @@ export declare class FigureRealObject extends RealObject<THREE.Group> {
|
|
|
145
164
|
*/
|
|
146
165
|
private slotAttachment;
|
|
147
166
|
clear(): THREE.Group;
|
|
148
|
-
/**
|
|
167
|
+
/**
|
|
168
|
+
* Every held thing's object hanging inside the rig, moved onto this object where it stands: kept through a rebuild.
|
|
169
|
+
* Only the outermost one of each thing: what hangs inside it (an item's look) is its own and stays in it.
|
|
170
|
+
*/
|
|
149
171
|
private keepHeld;
|
|
150
172
|
/**
|
|
151
173
|
* Every thing the component holds seated again on this rig's places, through the one seating the component does
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figure-real-object.d.ts","sourceRoot":"","sources":["../../src/figure/figure-real-object.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,
|
|
1
|
+
{"version":3,"file":"figure-real-object.d.ts","sourceRoot":"","sources":["../../src/figure/figure-real-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,22 @@ export interface FigureAppliedSize {
|
|
|
20
20
|
export declare function figureIsProportional(asset: FigureAsset): boolean;
|
|
21
21
|
/** The body's size at the authored size (mm), the size a figure is placed at before anyone resizes it. */
|
|
22
22
|
export declare function figureAuthoredBox(asset: FigureAsset): Vec3;
|
|
23
|
+
/**
|
|
24
|
+
* The size a placed instance is applied at: its box in drawing coordinates and the depth written on it, crossed into mm
|
|
25
|
+
* by the drawing's scale -- once, here (ADR-0144). What its 3D object is built at, and what the slot layout editor
|
|
26
|
+
* measures its anchors' faces at.
|
|
27
|
+
*/
|
|
28
|
+
export declare function figureAppliedSizeOf(component: {
|
|
29
|
+
bounds?: {
|
|
30
|
+
width: number;
|
|
31
|
+
height: number;
|
|
32
|
+
};
|
|
33
|
+
state: {
|
|
34
|
+
width?: unknown;
|
|
35
|
+
height?: unknown;
|
|
36
|
+
depth?: unknown;
|
|
37
|
+
};
|
|
38
|
+
}, asset: FigureAsset): FigureAppliedSize;
|
|
23
39
|
/**
|
|
24
40
|
* The size applied for a box the board asks for (mm: x = width, z = height, y = depth when given). `changed` names
|
|
25
41
|
* the axes the person changed; a proportional figure takes its scale from the first of them, else from the width.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figure-size.d.ts","sourceRoot":"","sources":["../../src/figure/figure-size.ts"],"names":[],"mappings":"AAmBA,OAAO,EAA+D,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"figure-size.d.ts","sourceRoot":"","sources":["../../src/figure/figure-size.ts"],"names":[],"mappings":"AAmBA,OAAO,EAA+D,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAGzI,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AACxC,KAAK,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAI/C,4GAA4G;AAC5G,MAAM,WAAW,iBAAiB;IAChC,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAA;IAC5B,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,gGAAgG;IAChG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAA;IAClB,iHAAiH;IACjH,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;CACtB;AAwFD,sGAAsG;AACtG,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAEhE;AAED,0GAA0G;AAC1G,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE;IAAE,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,EACxH,KAAK,EAAE,WAAW,GACjB,iBAAiB,CAOnB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,GAAE,SAAS,UAAU,EAAO,GAAG,iBAAiB,CAgCzJ;AAKD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,GAAG,YAAY,GAAG,IAAI,CASvG"}
|
|
@@ -5,10 +5,15 @@ export interface FigureStatusEffect {
|
|
|
5
5
|
kind: 'blink' | 'glow';
|
|
6
6
|
hz?: number;
|
|
7
7
|
}
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* What one status looks like: a colour, an effect, values for the state inputs the port offers, a clip of the port's
|
|
10
|
+
* motion group (ADR-0051 2.3) -- any of them. `effect: null` is none. A value is in its input's own unit.
|
|
11
|
+
*/
|
|
9
12
|
export interface FigureStatusLook {
|
|
10
13
|
color?: string;
|
|
11
14
|
effect?: FigureStatusEffect | null;
|
|
15
|
+
values?: Record<string, number>;
|
|
16
|
+
clip?: string;
|
|
12
17
|
}
|
|
13
18
|
/** A status template: each code's look, and `default` for a code it does not name. */
|
|
14
19
|
export interface FigureStatusTemplate {
|
|
@@ -20,13 +25,28 @@ export type FigureStatusResolver = (asked: {
|
|
|
20
25
|
port: FigureStatusPort;
|
|
21
26
|
code: string;
|
|
22
27
|
}) => FigureStatusLook | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* What follows the status sources: told when a resolver comes or goes, or a consumer says its answers changed -- for
|
|
30
|
+
* every figure, or for the figures in one component.
|
|
31
|
+
*/
|
|
32
|
+
export declare function onFigureStatusSourcesChanged(listener: (within?: unknown) => void): () => void;
|
|
33
|
+
/**
|
|
34
|
+
* A consumer's resolver would now answer otherwise -- its legend's content, the component a figure takes its legend
|
|
35
|
+
* from: every figure looks its status up again, or, given a component, the figures that are it or are in it. One that
|
|
36
|
+
* comes to the same look starts nothing again.
|
|
37
|
+
*/
|
|
38
|
+
export declare function figureStatusSourcesChanged(within?: unknown): void;
|
|
23
39
|
/** A consumer's resolver, asked before the board's templates. Returns what takes it away again. */
|
|
24
40
|
export declare function registerFigureStatusResolver(resolver: FigureStatusResolver): () => void;
|
|
41
|
+
/** Where a look came from: a consumer's resolver, or the template the placement or the board chose. */
|
|
42
|
+
export type FigureStatusSource = 'resolver' | 'placement' | 'board';
|
|
25
43
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
44
|
+
* A port's code as it shows, and where from: a consumer's resolver first, then the template the placement chose, then
|
|
45
|
+
* the board's. In a template the code's own look, else its `default`. A resolver that fails is passed over and told to
|
|
46
|
+
* `failed`.
|
|
28
47
|
*/
|
|
29
|
-
export declare function
|
|
30
|
-
|
|
31
|
-
|
|
48
|
+
export declare function resolveFigureStatus(component: any, port: FigureStatusPort, code: string, failed?: (error: unknown) => void): {
|
|
49
|
+
look: FigureStatusLook;
|
|
50
|
+
source: FigureStatusSource;
|
|
51
|
+
} | undefined;
|
|
32
52
|
//# sourceMappingURL=figure-status.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figure-status.d.ts","sourceRoot":"","sources":["../../src/figure/figure-status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"figure-status.d.ts","sourceRoot":"","sources":["../../src/figure/figure-status.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAEzE,oGAAoG;AACpG,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAA;IACtB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AACD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AACD,sFAAsF;AACtF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAA;CACjC;AAED,8FAA8F;AAC9F,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,gBAAgB,GAAG,SAAS,CAAA;AAKpI;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAG7F;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAEjE;AAED,mGAAmG;AACnG,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,IAAI,CASvF;AAiBD,uGAAuG;AACvG,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAA;AAEnE;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,GAAG,EACd,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAe,GAC1C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,GAAG,SAAS,CAapE"}
|
|
@@ -16,5 +16,5 @@ export { acquireFigureGeometry, releaseFigureGeometry, buildFigureGeometry } fro
|
|
|
16
16
|
export * from './figure-part-component.js';
|
|
17
17
|
export { figureSectionOutline } from './figure-shape-mesh.js';
|
|
18
18
|
export { setFigureMeshResolver, figureMeshUrlOf, figureMeshObjectOf, type FigureMeshFileRef } from './figure-mesh-file.js';
|
|
19
|
-
export { figureAssetFor, figureSlotLayoutOfPlacement, figurePlacementSlotLayoutOptions } from './figure-placed-asset.js';
|
|
19
|
+
export { figureAnchorFacesOf, figureAssetFor, figureSlotLayoutOfPlacement, figurePlacementSlotLayoutOptions } from './figure-placed-asset.js';
|
|
20
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/figure/index.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAKlC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AAErC,cAAc,sBAAsB,CAAA;AAKpC,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AACxG,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC1H,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/figure/index.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAKlC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AAErC,cAAc,sBAAsB,CAAA;AAKpC,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AACxG,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC1H,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,2BAA2B,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAA"}
|
|
@@ -30,7 +30,7 @@ export declare function Capacity<TBase extends Constructor<Component>>(Base: TBa
|
|
|
30
30
|
anchorObject3D(anchorId: string): THREE.Object3D | null;
|
|
31
31
|
/**
|
|
32
32
|
* Slots outside the layout: they take anything, any number, stacked, with no fit judged. What they are for is the
|
|
33
|
-
* holder's (
|
|
33
|
+
* holder's (items it cannot place in the layout, kept beside it). None by default.
|
|
34
34
|
*/
|
|
35
35
|
outsideSlots(): OutsideSlot[];
|
|
36
36
|
/**
|
|
@@ -5,7 +5,7 @@ import { type FigureOccupancySnapshot, type FitResult, type ItemDims, type Resol
|
|
|
5
5
|
* names are turned. Null when one is not a positive number.
|
|
6
6
|
*/
|
|
7
7
|
export declare function itemDimsFromState(item: any, mmPerUnit: number): ItemDims | null;
|
|
8
|
-
/** A slot a holder keeps outside its layout: anything, any number, stacked, no fit judged (e.g.
|
|
8
|
+
/** A slot a holder keeps outside its layout: anything, any number, stacked, no fit judged (e.g. items a holder cannot place in its layout). */
|
|
9
9
|
export interface OutsideSlot {
|
|
10
10
|
id: string;
|
|
11
11
|
anchorId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item-seating.d.ts","sourceRoot":"","sources":["../../src/items/item-seating.ts"],"names":[],"mappings":"AAWA,OAAO,EAOL,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,wBAAwB,CAAA;AAI/B;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAG/E;AAED
|
|
1
|
+
{"version":3,"file":"item-seating.d.ts","sourceRoot":"","sources":["../../src/items/item-seating.ts"],"names":[],"mappings":"AAWA,OAAO,EAOL,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,wBAAwB,CAAA;AAI/B;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAG/E;AAED,+IAA+I;AAC/I,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,wFAAwF;IACxF,KAAK,EAAE;QAAE,QAAQ,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1E,uCAAuC;IACvC,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CACtB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,UAAU,CAAA;IAC7C,GAAG,CAAC,EAAE,aAAa,GAAG,cAAc,GAAG,eAAe,CAAA;IACtD,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;IAC5B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAA;IAC9B,MAAM,EAAE,OAAO,CAAA;IACf,qHAAqH;IACrH,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAA;CACtB;AAED,wGAAwG;AACxG,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,eAAe,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,UAAU,CAAA;KAAE,CAAA;IACzC,YAAY,CAAC,IAAI,WAAW,EAAE,CAAA;IAC9B,UAAU,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAAA;IACrC,UAAU,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAA;IACvC,wGAAwG;IACxG,eAAe,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAA;CACjF;AAeD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,SAAK,GAAG,uBAAuB,CAEjG;AA8DD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CA2D9G"}
|
|
@@ -9,6 +9,11 @@ export declare class RealObjectText extends RealObjectMesh {
|
|
|
9
9
|
protected get syncZPosOffset(): number;
|
|
10
10
|
get geometricOffsetY(): number;
|
|
11
11
|
buildGeometry(): void;
|
|
12
|
+
/**
|
|
13
|
+
* 텍스트는 창고 재질을 나눠 쓰지 않는다 — 글자를 그린 캔버스 텍스처를 재질의 map 에 얹으므로
|
|
14
|
+
* (`updateText`), 나눠 쓰면 같은 색·spec 의 텍스트가 모두 마지막에 그린 글자를 보인다.
|
|
15
|
+
*/
|
|
16
|
+
get materialSharingIssue(): string | undefined;
|
|
12
17
|
updateStrokeStyle(): void;
|
|
13
18
|
updateFillStyle(): void;
|
|
14
19
|
updateDimension(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"real-object-text.d.ts","sourceRoot":"","sources":["../../src/threed/real-object-text.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAItD;;GAEG;AACH,qBAAa,cAAe,SAAQ,cAAc;IAChD,iDAAiD;IACjD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,6CAA6C;IAC7C,SAAS,KAAK,cAAc,WAE3B;IAED,IAAa,gBAAgB,WAE5B;IAED,aAAa;
|
|
1
|
+
{"version":3,"file":"real-object-text.d.ts","sourceRoot":"","sources":["../../src/threed/real-object-text.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAItD;;GAEG;AACH,qBAAa,cAAe,SAAQ,cAAc;IAChD,iDAAiD;IACjD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,6CAA6C;IAC7C,SAAS,KAAK,cAAc,WAE3B;IAED,IAAa,gBAAgB,WAE5B;IAED,aAAa;IAIb;;;OAGG;IACH,IAAI,oBAAoB,IAAI,MAAM,GAAG,SAAS,CAE7C;IAGD,iBAAiB;IAEjB,eAAe;IAKf,eAAe;IAiBf,UAAU;IAyDV,WAAW;CAQZ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hatiolab/things-scene",
|
|
3
|
-
"version": "10.1.
|
|
3
|
+
"version": "10.1.101",
|
|
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",
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
},
|
|
94
94
|
"homepage": "https://github.com/hatiolab/things-scene#readme",
|
|
95
95
|
"dependencies": {
|
|
96
|
-
"@hatiolab/figure-model": "^0.11.
|
|
96
|
+
"@hatiolab/figure-model": "^0.11.1",
|
|
97
97
|
"@wizpanda/super-gif": "^0.0.6",
|
|
98
98
|
"dompurify": "^3.3.1",
|
|
99
99
|
"jsonata": "^1.8.6",
|