@hatiolab/things-scene 10.1.50 → 10.1.52

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 (34) hide show
  1. package/dist-types/figure/figure-capability.d.ts +0 -33
  2. package/dist-types/figure/figure-capability.d.ts.map +1 -1
  3. package/dist-types/figure/figure-component.d.ts +5 -0
  4. package/dist-types/figure/figure-component.d.ts.map +1 -0
  5. package/dist-types/figure/figure-instance.d.ts +7 -54
  6. package/dist-types/figure/figure-instance.d.ts.map +1 -1
  7. package/dist-types/figure/figure-palette.d.ts +3 -3
  8. package/dist-types/figure/figure-palette.d.ts.map +1 -1
  9. package/dist-types/figure/figure-shape.d.ts +1 -57
  10. package/dist-types/figure/figure-shape.d.ts.map +1 -1
  11. package/dist-types/figure/index.d.ts +4 -8
  12. package/dist-types/figure/index.d.ts.map +1 -1
  13. package/dist-types/figure/v3/figure-v3-geometry.d.ts.map +1 -1
  14. package/dist-types/figure/v3/figure-v3-part-component.d.ts.map +1 -1
  15. package/dist-types/figure/v3/figure-v3-real-object.d.ts +7 -2
  16. package/dist-types/figure/v3/figure-v3-real-object.d.ts.map +1 -1
  17. package/dist-types/figure/v3/figure-v3-registry.d.ts.map +1 -1
  18. package/package.json +2 -2
  19. package/things-scene-min.js +7 -7
  20. package/things-scene-min.js.map +1 -1
  21. package/things-scene.mjs +7 -7
  22. package/things-scene.mjs.map +1 -1
  23. package/dist-types/figure/figure-blueprint.d.ts +0 -56
  24. package/dist-types/figure/figure-blueprint.d.ts.map +0 -1
  25. package/dist-types/figure/figure-clip.d.ts +0 -87
  26. package/dist-types/figure/figure-clip.d.ts.map +0 -1
  27. package/dist-types/figure/figure-part-component.d.ts +0 -454
  28. package/dist-types/figure/figure-part-component.d.ts.map +0 -1
  29. package/dist-types/figure/figure-real-object.d.ts +0 -413
  30. package/dist-types/figure/figure-real-object.d.ts.map +0 -1
  31. package/dist-types/figure/figure-registry.d.ts +0 -73
  32. package/dist-types/figure/figure-registry.d.ts.map +0 -1
  33. package/dist-types/figure/figure-sizing.d.ts +0 -3
  34. package/dist-types/figure/figure-sizing.d.ts.map +0 -1
@@ -24,9 +24,6 @@
24
24
  */
25
25
  import Component from '../components/component.js';
26
26
  import type { SlotDef } from '../transfer/types.js';
27
- import type { Port } from '../flow/flow-node.js';
28
- import type { FigureBlueprintAnchor } from './figure-blueprint.js';
29
- import { type InstanceScale } from './figure-sizing.js';
30
27
  import type { FigureCapability, V3BindingDeclaration } from '@hatiolab/figure-model';
31
28
  type Ctor<T = object> = new (...args: any[]) => T;
32
29
  /**
@@ -51,41 +48,11 @@ export type FigureCapabilityName = FigureCapability;
51
48
  export declare const CAPABILITY_MIXINS: Readonly<Record<FigureCapabilityName, (base: Ctor<Component>) => Ctor<Component>>>;
52
49
  /** 저작 화면이 사다리를 그릴 때 쓰는 설명. 모델러의 「능력」 탭이 읽는다. */
53
50
  export declare const FIGURE_CAPABILITY_NOTES: Readonly<Record<FigureCapabilityName, string>>;
54
- /**
55
- * 청사진의 자리를 씬의 `SlotDef` 로.
56
- *
57
- * **`localPosition` 을 적지 않는다.** 그 칸이 뜻하는 좌표계는 「물건의 모서리를 홀더의
58
- * 모서리 기준으로」이고(`ArrangementStrategy` 규약), 「이 점에 물건의 **중심**을 앉힌다」를
59
- * 적을 방법이 지금 없다. 값을 지어 넣으면 물건이 반 칸 어긋난 자리에 조용히 앉는다.
60
- * 지금은 손으로 쓴 컴포넌트들과 똑같이 — 자리의 **정체와 용량**만 선언하고, 앉는 높이는
61
- * `receivingSurfaceY` 가 정한다. 좌표 규약은 아키텍트에게 올려 두었다.
62
- */
63
- export declare function slotsFromAnchors(anchors: readonly FigureBlueprintAnchor[], scale: InstanceScale, base: {
64
- x: number;
65
- y: number;
66
- z: number;
67
- }): SlotDef[];
68
51
  /**
69
52
  * A V3 figure's places (`capabilities.bindings`, a seat or a grip) as the scene's `SlotDef`. What a place takes is
70
53
  * always named in V3, so `allowedTypes` is always written; how many it holds is its capacity.
71
54
  */
72
55
  export declare function slotsFromBindings(bindings: readonly V3BindingDeclaration[]): SlotDef[];
73
- /**
74
- * 청사진의 문을 씬의 `Port` 로. 자리와 달리 위치가 곧 뜻이므로 그대로 옮긴다.
75
- *
76
- * **관절에 달린 문은 그 관절을 따라간다**(ADR-0066 결정 4). 문의 자리는 부를 때마다 묻는
77
- * 값이지 세울 때 쥐어 두는 값이 아니다 — `posed` 가 지금 어디인지를 답하고, 없으면 청사진의
78
- * 휴지 자세다. 그래서 관절이 돌았다는 통지를 따로 낼 일이 없다.
79
- *
80
- * **한 부품이 자리와 문을 함께 맡을 수 있다.** AGV 의 상판이 그렇고, 그때 같은 이름이 자리
81
- * 목록과 문 목록에 함께 나온다. 씬의 `SlotDef.id` 와 `Port.id` 는 서로 다른 이름 공간이므로
82
- * 겹쳐도 문제가 없다.
83
- */
84
- export declare function portsFromAnchors(anchors: readonly FigureBlueprintAnchor[], role: 'port-in' | 'port-out', posed?: (anchor: FigureBlueprintAnchor) => {
85
- x: number;
86
- y: number;
87
- z: number;
88
- } | undefined): Port[];
89
56
  /**
90
57
  * 선언한 능력으로 클래스를 조립한다. 같은 조합이면 같은 클래스를 돌려준다.
91
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;AAEnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAGpF,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;AA4BF;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,qBAAqB,EAAE,EACzC,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GACxC,OAAO,EAAE,CAaX;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAEtF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,qBAAqB,EAAE,EACzC,IAAI,EAAE,SAAS,GAAG,UAAU,EAC5B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GACzF,IAAI,EAAE,CAIR;AAkFD;;;;;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,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAGpF,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,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAEtF;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"}
@@ -0,0 +1,5 @@
1
+ /** `figure-instance.ts` calls this. An application may put another class in its place. */
2
+ export declare function useFigureComponent(clazz: unknown): void;
3
+ /** Registers the component type for a figure, with its capability names and placement. */
4
+ export declare function registerFigureType(type: string, capabilities?: readonly string[], placement?: string): void;
5
+ //# sourceMappingURL=figure-component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figure-component.d.ts","sourceRoot":"","sources":["../../src/figure/figure-component.ts"],"names":[],"mappings":"AAcA,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAEvD;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,GAAE,SAAS,MAAM,EAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAE/G"}
@@ -3,7 +3,6 @@ import Shape from '../components/shape.js';
3
3
  import type { SceneRenderContext } from '../interfaces/rendering.js';
4
4
  import type { IRealObject } from '../interfaces/real-object.js';
5
5
  import type { ComponentNature } from '../interfaces/types.js';
6
- import { type InstanceScale } from './figure-sizing.js';
7
6
  declare const FigureInstance_base: {
8
7
  new (...args: any[]): {
9
8
  contains(x: number, y: number): boolean;
@@ -252,10 +251,8 @@ declare const FigureInstance_base: {
252
251
  } & typeof Shape;
253
252
  export declare class FigureInstance extends FigureInstance_base {
254
253
  /**
255
- * 이 타입을 그리는 것이 FigureInstance 임을 등록한다. `registerFigure()` 가 부른다.
256
- *
257
- * 청사진 등록과 컴포넌트 타입 등록이 늘 함께 일어나야, 도면이 `type` 만 적고도
258
- * 세워진다.
254
+ * Registers FigureInstance as what draws this type. `registerFigureV3()` calls it, so registering the asset and
255
+ * registering the component type always happen together and a board that names only `type` stands up.
259
256
  */
260
257
  static registerType(type: string, capabilities?: readonly string[], placement?: string): void;
261
258
  /**
@@ -265,65 +262,21 @@ export declare class FigureInstance extends FigureInstance_base {
265
262
  * `classFields` 로 보인다(`types/capability.ts`). 같은 낱말·같은 자리에 두어 그쪽이 읽을 수
266
263
  * 있게 한다(ADR-0045).
267
264
  *
268
- * 그리는 쪽이 쓰는 것은 이것이 아니라 `FigureRealObject.effectiveZPos` 다 — 그쪽은 청사진을
269
- * 직접 읽는다. 여기는 **바깥이 물어볼 수 있게** 내놓는 자리다.
265
+ * What draws uses `FigureV3RealObject.effectiveZPos`, which reads the asset itself; this is where **the outside can
266
+ * ask**.
270
267
  */
271
268
  static placement?: string;
272
- /**
273
- * 이 인스턴스가 청사진을 얼마로 늘려 놓고 있나.
274
- *
275
- * **한 벌이어야 한다.** 2D 가 칠하는 자리, 3D 가 세우는 자리, 자리(slot)의 칸 수가 다
276
- * 이 값을 본다. 갈리면 화면에 롤러가 여섯인데 실을 자리는 넷인 일이 생긴다.
277
- */
278
- get instanceScale(): InstanceScale;
279
269
  get hasTextProperty(): boolean;
280
270
  is3dish(): boolean;
281
271
  get nature(): ComponentNature;
282
272
  buildRealObject(): IRealObject | undefined;
283
- /** 이 인스턴스가 그리는 청사진. 등록이 지워졌으면 null 이다. */
284
- get figure(): import("./figure-registry.js").PreparedFigure | null;
285
273
  render(ctx: SceneRenderContext): void;
286
- /**
287
- * 높이 배율. `state.depth` 를 적었으면 그것이 이기고, 없으면 평면 두 축의 기하평균을
288
- * 쓴다 — 3D 쪽 `effectiveDepth` 와 같은 규칙이다. 여기만 다르면 `stretch` 가 두
289
- * 화면에서 다른 축으로 늘어난다.
290
- */
291
- private depthScale;
292
- /**
293
- * 부품 하나의 톱뷰 윤곽을 현재 path 에 그린다. `ox`·`oy` 는 캔버스에 놓인 원점이다.
294
- *
295
- * ## 회전을 반영한다
296
- *
297
- * 3D 는 도는데 2D 가 안 돌면 **같은 물건이 두 화면에서 다르게** 보인다. 위에서
298
- * 내려다보므로 축마다 뜻이 다르다.
299
- *
300
- * y 회전 평면 안에서 도는 것이다. 그대로 돌려 그린다 — 정확하다
301
- * x·z 회전 부품이 **기울어진다.** 발자국의 모양 자체가 달라져서 원기둥이 타원
302
- * 비슷한 것이 되고 상자는 육각형 그림자가 된다
303
- *
304
- * 기울어진 것은 **회전한 상자의 평면 경계**로 근사한다. 실제 그림자보다 조금 크게
305
- * 잡히지만, 안 돌린 채로 두면 「어디에 걸리는지」를 아예 못 보여 준다.
306
- */
307
- private tracePart;
308
- /**
309
- * 복제본 하나를 그린다. 자리는 이미 정해져 왔고, 여기서는 회전만 다룬다.
310
- *
311
- * `gx`·`gy` 는 **크기**에 쓰는 배율이다. 인스턴스 배율과 같을 수도 있고(`scale`),
312
- * 축마다 되돌려진 값일 수도 있다(`fixed`·`stretch`).
313
- */
314
- private traceOne;
315
- /** 부품의 평면 윤곽을 `cx`·`cy` 를 중심으로 그린다. 회전은 부르는 쪽이 이미 걸었다. */
316
- private traceShape;
317
- /**
318
- * 청사진을 못 찾았을 때. **빈 자리로 두지 않는다** — 아무것도 안 그리면 보는 사람은
319
- * 컴포넌트가 없는 것인지 청사진이 없는 것인지 알 수 없다. 자리와 타입 이름을 보인다.
320
- */
321
- private renderMissing;
274
+ /** The place the figure takes, so a 2D board shows where it stands. */
275
+ private renderPlace;
322
276
  /**
323
277
  * Shape 의 drawFill·drawStroke 를 타지 않는다.
324
278
  *
325
- * 부품마다 제 색으로 이미 칠했다. 그리고 인스턴스의 `fillStyle` 은 「청사진 색을
326
- * 전부 덮어라」는 뜻이 아니다 — 그렇게 읽으면 저작한 색이 통째로 사라진다.
279
+ * The instance's `fillStyle` does not mean "paint over the authored colours"; read that way, they would all vanish.
327
280
  */
328
281
  postrender(context: SceneRenderContext): void;
329
282
  }
@@ -1 +1 @@
1
- {"version":3,"file":"figure-instance.d.ts","sourceRoot":"","sources":["../../src/figure/figure-instance.ts"],"names":[],"mappings":"AAIA,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,EAAyD,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4E9G,qBAAa,cAAe,SAAQ,mBAAe;IACjD;;;;;OAKG;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;;;;;OAKG;IACH,IAAI,aAAa,IAAI,aAAa,CAUjC;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,OAAO,IAAI,OAAO;IAIlB,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,eAAe,IAAI,WAAW,GAAG,SAAS;IAM1C,0CAA0C;IAC1C,IAAI,MAAM,yDAET;IAED,MAAM,CAAC,GAAG,EAAE,kBAAkB;IAoC9B;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAQlB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,SAAS;IAuDjB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IA2ChB,0DAA0D;IAC1D,OAAO,CAAC,UAAU;IAgFlB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAiBrB;;;;;OAKG;IACM,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;CAGvD;AAMD,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"figure-instance.d.ts","sourceRoot":"","sources":["../../src/figure/figure-instance.ts"],"names":[],"mappings":"AAIA,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4B7D,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,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,eAAe,IAAI,WAAW,GAAG,SAAS;IAI1C,MAAM,CAAC,GAAG,EAAE,kBAAkB;IAK9B,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
- * 청사진은 `'#154473'` 이 아니라 `'palette.primary'` 를 담는다. 값을 구우면 테마를
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,kDAAkD;AAClD,eAAO,MAAM,eAAe,QAAsC,CAAA;AAElE,0BAA0B;AAC1B,wBAAgB,aAAa,IAAI,IAAI,CAKpC"}
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,iDAAiD;AACjD,eAAO,MAAM,eAAe,QAAsC,CAAA;AAElE,0BAA0B;AAC1B,wBAAgB,aAAa,IAAI,IAAI,CAKpC"}
@@ -1,31 +1,4 @@
1
1
  import * as THREE from 'three';
2
- /** 단면 하나를 만드는 데 필요한 것 전부. 청사진이든 컴포넌트 state 든 여기로 맞춰 온다. */
3
- export interface FigureProfile {
4
- /** `polygon` 이면 `path` 를 쓰고, 아니면 사각형이다. */
5
- polygon?: boolean;
6
- /** 평면도의 가로. */
7
- width: number;
8
- /** 평면도의 세로. */
9
- depth: number;
10
- /** 세워서 밀 두께. */
11
- height: number;
12
- round?: number;
13
- path?: readonly {
14
- x: number;
15
- y: number;
16
- }[];
17
- hollow?: {
18
- wall: number;
19
- floor?: number;
20
- };
21
- }
22
- /**
23
- * 세워서 민 형상 — **제 중심을 원점에 두고** 돌려준다.
24
- *
25
- * 속을 판 것은 바닥판 하나에 고리 하나를 **합쳐** 돌려준다. 부품 하나가 draw call
26
- * 하나라는 규약을 지켜야 한다.
27
- */
28
- export declare function profileGeometry(profile: FigureProfile): THREE.BufferGeometry | null;
29
2
  /**
30
3
  * 단면을 세워서 민다.
31
4
  *
@@ -36,39 +9,10 @@ export declare function profileGeometry(profile: FigureProfile): THREE.BufferGeo
36
9
  * 바닥과 벽을 따로 올려 포갠다.
37
10
  */
38
11
  export declare function pushed(shape: THREE.Shape, depth: number, lift: number): THREE.BufferGeometry;
39
- /** 바깥 테. **부품 중심을 원점으로** 만든다 — 자리는 부르는 쪽이 든다. */
40
- export declare function outlineOf(profile: FigureProfile): THREE.Shape | null;
41
- /**
42
- * 가운데를 원점에 둔 사각형 단면. 굴림이 있으면 모서리를 깎는다.
43
- *
44
- * 이름에 `rect` 만 두지 않는다 — `threed/top-outline.ts` 에 이미 `rectOutline` 이 있고
45
- * 그쪽은 톱뷰용 네 점이다. 같은 묶음에서 내보내면 어느 것인지 알 수 없다.
46
- *
47
- * 속을 판 것의 안쪽 테도 이것으로 만든다 — 같은 식으로 만들어야 바깥과 안쪽 모서리가
48
- * 같은 모양으로 따라온다.
49
- */
50
12
  /**
51
13
  * A rounded rectangle whose corners have two semi-axes (V3 `rounded-box@2`, shape-dimension contract §1): each
52
14
  * corner is the quadratic Bézier from the end of one edge to the start of the next with the corner as control
53
- * point, `roundX` along X and `roundZ` along Z. `roundedRect` is the equal case.
15
+ * point, `roundX` along X and `roundZ` along Z.
54
16
  */
55
17
  export declare function roundedRectXZ(width: number, depth: number, roundX: number, roundZ: number): THREE.Shape | null;
56
- export declare function roundedRect(width: number, depth: number, round: number): THREE.Shape | null;
57
- /**
58
- * 안쪽 테 — 바깥 테에서 벽 두께만큼 안으로 들어온 선.
59
- *
60
- * 사각형은 치수에서 양쪽 두께를 빼고 굴림도 그만큼 줄인다(0 아래로는 각진 모서리다).
61
- *
62
- * 다각형은 변마다 안쪽으로 밀어 이웃과 다시 만나게 한다. **볼록한 것만 된다** — 오목한
63
- * 자리에서는 그 교점이 도형 밖으로 나가 테가 제 몸을 가로지른다. 형식 검사가 그것을
64
- * 막으므로(`hollow-not-convex`) 여기서는 볼록하다고 보고 센다.
65
- */
66
- export declare function innerOutlineOf(profile: FigureProfile, wall: number): THREE.Vector2[] | null;
67
- /**
68
- * 2D 로 칠할 테들 — 바깥 하나에 안쪽이 있으면 하나 더.
69
- *
70
- * 톱뷰는 **위에서 내려다본 것**이라, 속을 판 것은 가운데가 뚫려 보여야 한다. 캔버스는
71
- * 한 path 안에 반대로 도는 고리를 함께 넣으면 그 부분을 빼고 칠한다(nonzero 규칙).
72
- */
73
- export declare function outlinesFor2D(profile: FigureProfile): THREE.Vector2[][] | null;
74
18
  //# sourceMappingURL=figure-shape.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"figure-shape.d.ts","sourceRoot":"","sources":["../../src/figure/figure-shape.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,eAAe;IACf,KAAK,EAAE,MAAM,CAAA;IACb,eAAe;IACf,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,SAAS;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC1C,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CA2BnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,cAAc,CAK5F;AAED,iDAAiD;AACjD,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAYpE;AAED;;;;;;;;GAQG;AACH;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CA0B9G;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CA4B3F;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CA+C3F;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,CAa9E"}
1
+ {"version":3,"file":"figure-shape.d.ts","sourceRoot":"","sources":["../../src/figure/figure-shape.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,cAAc,CAK5F;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CA0B9G"}
@@ -1,19 +1,15 @@
1
1
  /**
2
- * 저작한 Figure 를 things-scene 에서 다루는 부분.
2
+ * Authored figures in things-scene.
3
3
  *
4
- * 이 묶음을 읽으면 `registerFigure()` 가 쓸 수 있게 이어진다 — `figure-instance.ts` 가
5
- * 적재되며 컴포넌트 클래스를 registry 에 넣기 때문이다. 그래서 instance 를 먼저 읽는다.
4
+ * Reading this module wires `registerFigureV3()` up: `figure-instance.ts` hands its component class to the registry
5
+ * seam as it loads, so the instance is read first.
6
6
  */
7
7
  export * from './figure-instance.js';
8
- export * from './figure-part-component.js';
9
- export * from './figure-blueprint.js';
10
8
  export * from './figure-capability.js';
11
9
  export * from './figure-palette.js';
12
- export * from './figure-registry.js';
10
+ export * from './figure-component.js';
13
11
  export * from './v3/figure-v3-registry.js';
14
12
  export { acquireV3Geometry, releaseV3Geometry, buildV3Geometry } from './v3/figure-v3-geometry.js';
15
13
  export * from './v3/figure-v3-part-component.js';
16
- export * from './figure-real-object.js';
17
14
  export * from './figure-shape.js';
18
- export * from './figure-sizing.js';
19
15
  //# 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;AAKpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AAMrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AAMpC,cAAc,4BAA4B,CAAA;AAK1C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAClG,cAAc,kCAAkC,CAAA;AAChD,cAAc,yBAAyB,CAAA;AASvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/figure/index.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,cAAc,sBAAsB,CAAA;AAKpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AAErC,cAAc,4BAA4B,CAAA;AAK1C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAClG,cAAc,kCAAkC,CAAA;AAChD,cAAc,mBAAmB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"figure-v3-geometry.d.ts","sourceRoot":"","sources":["../../../src/figure/v3/figure-v3-geometry.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAiBrD,4GAA4G;AAC5G,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAyB,GAAG,KAAK,CAAC,cAAc,CAW3G;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAStE;AAED,iFAAiF;AACjF,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AAED,+GAA+G;AAC/G,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAyB,GAAG,KAAK,CAAC,cAAc,CA6DzG"}
1
+ {"version":3,"file":"figure-v3-geometry.d.ts","sourceRoot":"","sources":["../../../src/figure/v3/figure-v3-geometry.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAiBrD,4GAA4G;AAC5G,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAyB,GAAG,KAAK,CAAC,cAAc,CAW3G;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAStE;AAED,iFAAiF;AACjF,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AAED,+GAA+G;AAC/G,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAyB,GAAG,KAAK,CAAC,cAAc,CA6DzG"}
@@ -1 +1 @@
1
- {"version":3,"file":"figure-v3-part-component.d.ts","sourceRoot":"","sources":["../../../src/figure/v3/figure-v3-part-component.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,SAAS,MAAM,+BAA+B,CAAA;AACrD,OAAO,KAAK,MAAM,2BAA2B,CAAA;AAE7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAmCxD,sDAAsD;AACtD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACvD;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+CAA+C;IAC/C,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5C;AAOD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAA;CAAE,GAAG,IAAI,CAoBzF;AAED,qBAAa,sBAAuB,SAAQ,UAAU;IACpD,OAAO,CAAC,IAAI,CAAC,CAAY;IAEzB,KAAK;IAaL,KAAK;IAOI,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAU9D,8GAA8G;IAC9G,eAAe,IAAI,IAAI;IAKvB,OAAO,CAAC,QAAQ;CAqBjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,YAAa,SAAQ,iBAAe;IAC/C,MAAM,CAAC,YAAY,IAAI,IAAI;IAI3B,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,OAAO,IAAI,OAAO;IAIlB,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,eAAe,IAAI,WAAW,GAAG,SAAS;IAI1C,kEAAkE;IAClE,MAAM,CAAC,GAAG,EAAE,kBAAkB;CAO/B"}
1
+ {"version":3,"file":"figure-v3-part-component.d.ts","sourceRoot":"","sources":["../../../src/figure/v3/figure-v3-part-component.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,SAAS,MAAM,+BAA+B,CAAA;AACrD,OAAO,KAAK,MAAM,2BAA2B,CAAA;AAE7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAkCxD,sDAAsD;AACtD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACvD;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+CAA+C;IAC/C,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5C;AAOD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAA;CAAE,GAAG,IAAI,CAoBzF;AAED,qBAAa,sBAAuB,SAAQ,UAAU;IACpD,OAAO,CAAC,IAAI,CAAC,CAAY;IAEzB,KAAK;IAaL,KAAK;IAOI,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAU9D,8GAA8G;IAC9G,eAAe,IAAI,IAAI;IAKvB,OAAO,CAAC,QAAQ;CAqBjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,YAAa,SAAQ,iBAAe;IAC/C,MAAM,CAAC,YAAY,IAAI,IAAI;IAI3B,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,OAAO,IAAI,OAAO;IAIlB,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,eAAe,IAAI,WAAW,GAAG,SAAS;IAI1C,kEAAkE;IAClE,MAAM,CAAC,GAAG,EAAE,kBAAkB;CAO/B"}
@@ -24,7 +24,7 @@ export declare class FigureV3RealObject extends RealObject<THREE.Group> {
24
24
  get effectiveDepth(): number;
25
25
  /**
26
26
  * Where it stands when the board did not say: what the asset declares it is placed on (`occupancy.placement`). A
27
- * ceiling figure hangs with its top at the site's ceiling; a written `zPos` wins, as for V2 (ADR-0045).
27
+ * ceiling figure hangs with its top at the site's ceiling; a written `zPos` wins (ADR-0045).
28
28
  */
29
29
  get effectiveZPos(): number;
30
30
  updateDimension(): void;
@@ -54,7 +54,7 @@ export declare class FigureV3RealObject extends RealObject<THREE.Group> {
54
54
  tick(dt: number): void;
55
55
  private advance;
56
56
  /**
57
- * Where a thing held at one place hangs (ADR-0087; the V2 counterpart is `anchorAttachment`): the place's node, and
57
+ * Where a thing held at one place hangs (ADR-0087): the place's node, and
58
58
  * the offset that sets the thing against the place's face from outside, centred on it -- a box on a seat rests on
59
59
  * the face, a workpiece in a grip sits just past the gripper, not half inside it. The thing's size is its state:
60
60
  * width along x, depth along y (up), height along z.
@@ -71,4 +71,9 @@ export declare class FigureV3RealObject extends RealObject<THREE.Group> {
71
71
  } | undefined;
72
72
  clear(): THREE.Group;
73
73
  }
74
+ /**
75
+ * The zPos of a figure hung from the ceiling: the number that puts the top of its box at the ceiling, in the scene's
76
+ * coordinate mode (`zPos` means the bottom in floor mode, the centre in space mode, the top when inverted).
77
+ */
78
+ export declare function ceilingZPos(mode: 'floor' | 'space' | 'inverted', ceiling: number, depth: number): number;
74
79
  //# sourceMappingURL=figure-v3-real-object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"figure-v3-real-object.d.ts","sourceRoot":"","sources":["../../../src/figure/v3/figure-v3-real-object.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAG3D,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAI9E,qBAAa,kBAAmB,SAAQ,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;IAC7D,OAAO,CAAC,GAAG,CAA2B;IACtC,OAAO,CAAC,WAAW,CAAC,CAAa;IAEjC,IAAI,MAAM,IAAI,kBAAkB,GAAG,IAAI,CAEtC;cAEkB,mBAAmB,IAAI,KAAK,CAAC,KAAK;IAI5C,KAAK,IAAI,IAAI;IAatB,kGAAkG;IAClG,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGvC;IAED,oGAAoG;IACpG,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGvC;IAED,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIrB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAM9D,oHAAoH;IACpH,YAAY,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAO1D,IAAa,cAAc,IAAI,MAAM,CASpC;IAED;;;OAGG;IACH,IAAa,aAAa,IAAI,MAAM,CAKnC;IAEQ,eAAe,IAAI,IAAI;IAOhC;;;;;OAKG;IACH,OAAO,CAAC,IAAI;IAuBZ;;;OAGG;IACH,IAAI,UAAU,+CAEb;IAED,0HAA0H;IAC1H,gBAAgB,IAAI,IAAI;IAMxB,oHAAoH;IACpH,WAAW,IAAI,IAAI;IAMnB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,YAAY;IAUpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAgBtB,OAAO,CAAC,OAAO;IAIf;;;;;OAKG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;QAAC,aAAa,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,SAAS;IAa7J,KAAK,IAAI,KAAK,CAAC,KAAK;CAO9B"}
1
+ {"version":3,"file":"figure-v3-real-object.d.ts","sourceRoot":"","sources":["../../../src/figure/v3/figure-v3-real-object.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAG3D,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAG9E,qBAAa,kBAAmB,SAAQ,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;IAC7D,OAAO,CAAC,GAAG,CAA2B;IACtC,OAAO,CAAC,WAAW,CAAC,CAAa;IAEjC,IAAI,MAAM,IAAI,kBAAkB,GAAG,IAAI,CAEtC;cAEkB,mBAAmB,IAAI,KAAK,CAAC,KAAK;IAI5C,KAAK,IAAI,IAAI;IAatB,kGAAkG;IAClG,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGvC;IAED,oGAAoG;IACpG,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGvC;IAED,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIrB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAM9D,oHAAoH;IACpH,YAAY,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAO1D,IAAa,cAAc,IAAI,MAAM,CASpC;IAED;;;OAGG;IACH,IAAa,aAAa,IAAI,MAAM,CAKnC;IAEQ,eAAe,IAAI,IAAI;IAOhC;;;;;OAKG;IACH,OAAO,CAAC,IAAI;IAuBZ;;;OAGG;IACH,IAAI,UAAU,+CAEb;IAED,0HAA0H;IAC1H,gBAAgB,IAAI,IAAI;IAMxB,oHAAoH;IACpH,WAAW,IAAI,IAAI;IAMnB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,YAAY;IAUpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAgBtB,OAAO,CAAC,OAAO;IAIf;;;;;OAKG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;QAAC,aAAa,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,SAAS;IAa7J,KAAK,IAAI,KAAK,CAAC,KAAK;CAO9B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUxG"}
@@ -1 +1 @@
1
- {"version":3,"file":"figure-v3-registry.d.ts","sourceRoot":"","sources":["../../../src/figure/v3/figure-v3-registry.ts"],"names":[],"mappings":"AAaA,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAErE,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAE5E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,UAAU,CAAA;CACrB;AAID,6HAA6H;AAC7H,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAOjF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAEnE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
1
+ {"version":3,"file":"figure-v3-registry.d.ts","sourceRoot":"","sources":["../../../src/figure/v3/figure-v3-registry.ts"],"names":[],"mappings":"AAYA,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAErE,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAE5E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,UAAU,CAAA;CACrB;AAID,6HAA6H;AAC7H,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAOjF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAEnE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hatiolab/things-scene",
3
- "version": "10.1.50",
3
+ "version": "10.1.52",
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",
@@ -91,7 +91,7 @@
91
91
  },
92
92
  "homepage": "https://github.com/hatiolab/things-scene#readme",
93
93
  "dependencies": {
94
- "@hatiolab/figure-model": "^0.1.74",
94
+ "@hatiolab/figure-model": "^0.1.78",
95
95
  "@wizpanda/super-gif": "^0.0.6",
96
96
  "dompurify": "^3.3.1",
97
97
  "jsonata": "^1.8.6",