@hatiolab/things-scene 10.1.2 → 10.1.4

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.
@@ -60,9 +60,10 @@ export interface FigureBlueprintMember {
60
60
  geometryKey: string;
61
61
  transform: FigurePartTransform;
62
62
  sizing: FigureSizingRule;
63
+ /** `pitch` 는 **중심에서 다음 중심까지**다. 부품 크기와 무관하다. */
63
64
  repeat?: {
64
65
  axis: 'x' | 'y' | 'z';
65
- gap: number;
66
+ pitch: number;
66
67
  };
67
68
  shape?: FigurePartShape;
68
69
  triangles: number;
@@ -1 +1 @@
1
- {"version":3,"file":"figure-blueprint.d.ts","sourceRoot":"","sources":["../../src/figure/figure-blueprint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"figure-blueprint.d.ts","sourceRoot":"","sources":["../../src/figure/figure-blueprint.ts"],"names":[],"mappings":"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"}
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiF7D,qBAAa,cAAe,SAAQ,mBAAe;IACjD;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIvC,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,OAAO,IAAI,OAAO;IAIlB,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,eAAe,IAAI,WAAW,GAAG,SAAS;IAI1C,0CAA0C;IAC1C,IAAI,MAAM,yDAET;IAED,MAAM,CAAC,GAAG,EAAE,kBAAkB;IAoC9B;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAQlB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,SAAS;IAgDjB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IA2ChB,0DAA0D;IAC1D,OAAO,CAAC,UAAU;IAmDlB;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiF7D,qBAAa,cAAe,SAAQ,mBAAe;IACjD;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIvC,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,OAAO,IAAI,OAAO;IAIlB,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,eAAe,IAAI,WAAW,GAAG,SAAS;IAI1C,0CAA0C;IAC1C,IAAI,MAAM,yDAET;IAED,MAAM,CAAC,GAAG,EAAE,kBAAkB;IAoC9B;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAQlB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,SAAS;IAiDjB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IA2ChB,0DAA0D;IAC1D,OAAO,CAAC,UAAU;IAmDlB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAiBrB;;;;;OAKG;IACM,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;CAGvD;AAMD,eAAe,cAAc,CAAA"}
@@ -1,10 +1,13 @@
1
+ import * as THREE from 'three';
1
2
  import Component from '../components/component.js';
2
3
  import Shape from '../components/shape.js';
3
4
  import type { SceneRenderContext } from '../interfaces/rendering.js';
4
5
  import type { IRealObject } from '../interfaces/real-object.js';
5
- import type { ComponentNature } from '../interfaces/types.js';
6
+ import type { ComponentNature, Properties } from '../interfaces/types.js';
6
7
  import { RealObject } from '../threed/real-object.js';
7
8
  import { MATERIAL_PRESETS } from '../threed/material-3d.js';
9
+ import { type FigureAxis } from './figure-sizing.js';
10
+ import type { FigureSizingRule } from './figure-blueprint.js';
8
11
  /** 이 컴포넌트가 3D 로 세울 수 있는 도형. `PRIMITIVE_KINDS` 와 같은 집합이다. */
9
12
  export type FigurePartPrimitive = 'cube' | 'wall' | 'cylinder' | 'sphere' | 'rect' | 'polygon';
10
13
  /** 부품 컴포넌트가 갖는, 씬 공통 상태 밖의 값들. */
@@ -22,6 +25,17 @@ export interface FigurePartState {
22
25
  preset?: keyof typeof MATERIAL_PRESETS;
23
26
  flatShading?: boolean;
24
27
  transparent?: boolean;
28
+ /**
29
+ * 크기 반응. 저작 화면에서는 `repeat` 만 눈에 보인다.
30
+ *
31
+ * 나머지 셋은 인스턴스 배율이 1 일 때 하는 일이 없다. 저작 화면은 판이 곧 기준 상자라
32
+ * 늘 1 배다.
33
+ */
34
+ sizing?: FigureSizingRule;
35
+ repeat?: {
36
+ axis: FigureAxis;
37
+ pitch: number;
38
+ };
25
39
  }
26
40
  /**
27
41
  * 부품의 3D 표현.
@@ -31,7 +45,103 @@ export interface FigurePartState {
31
45
  * `polygon`)만 예외인데, 단위로 정규화하면 모서리 굴림 비율이 망가지기 때문이다.
32
46
  */
33
47
  export declare class FigurePartRealObject extends RealObject {
48
+ /** `repeat` 로 펼친 복제본들. 첫째가 저작한 것이다. */
49
+ private _copies;
34
50
  build(): void;
51
+ clear(): THREE.Object3D<THREE.Object3DEventMap>;
52
+ /**
53
+ * `repeat` 를 **저작 화면에서도 펼친다.**
54
+ *
55
+ * 저작자는 단위 하나를 그리고 런타임이 기준 상자를 채운다. 그런데 저작 화면이 하나만
56
+ * 보여 주면, 그린 것과 보드에 놓인 것이 다른 물건이 된다. 롤러 하나를 그렸는데 보드에서
57
+ * 여섯이 나오면 무엇을 그린 것인지 알 수 없다.
58
+ *
59
+ * 셈은 런타임과 **같은 함수**를 쓴다(`repeatPlan`). 여기서 따로 세면 저작 화면과 보드가
60
+ * 갈린다.
61
+ *
62
+ * 판이 곧 기준 상자다. 인스턴스 배율은 1 이다 — 저작 화면에는 인스턴스가 없다.
63
+ */
64
+ private applyRepeat;
65
+ /**
66
+ * 회전이 바뀌어도 줄을 다시 편다.
67
+ *
68
+ * 자리를 부모 회전으로 되돌려 적어 두었으므로, 회전이 바뀌면 그 값도 다시 잡아야 한다.
69
+ * 안 하면 돌린 각도만큼 줄이 어긋난 채로 남는다.
70
+ */
71
+ updateRotate(): void;
72
+ /**
73
+ * **이 컴포넌트가 새로 들인 값이 바뀌면 무엇을 고치나.**
74
+ *
75
+ * 밑바탕은 씬 공통 낱말만 안다 — 자리 · 치수 · 회전 · 배율 · 숨김 · 분할 수. 그런데
76
+ * 이 컴포넌트는 제 값을 일곱 더 들였고(`primitive` · `round` · `path` · `token` ·
77
+ * `preset` · `sizing` · `repeat`), 그것들이 바뀔 때 무엇을 고쳐야 하는지 아무 데도
78
+ * 적히지 않았다. 그래서 속성 편집기에서 도형을 바꾸거나 색을 바꾸거나 한 칸을 고쳐도
79
+ * 화면이 그대로였다. 값은 제대로 들어갔고 고칠 사람이 없었을 뿐이다.
80
+ *
81
+ * 고칠 거리가 셋이다.
82
+ *
83
+ * 형상이 달라진다 다시 세운다 — 배율로는 안 된다
84
+ * 재질만 달라진다 사본들의 재질만 바꿔 끼운다
85
+ * 줄만 달라진다 다시 편다
86
+ */
87
+ onchange(after: Properties, before: Properties): void;
88
+ /** 단면을 밀어 만든 것인가 — 평면 치수가 형상에 구워져 있다. */
89
+ private get isExtruded();
90
+ /** 재질만 갈아 끼운다. 형상은 그대로 두고, 사본들이 함께 쓴다. */
91
+ private applyMaterial;
92
+ /** 이 부품의 반복 계획. 판을 기준 상자로 삼고 배율은 1 로 본다. */
93
+ private repeatPlanNow;
94
+ /**
95
+ * 이 컴포넌트를 청사진 부품처럼 보이게 한 것.
96
+ *
97
+ * 한 칸이 중심에서 중심까지라서 개수는 회전과 무관하다. 그래도 회전을 채워 넘기는
98
+ * 것은, 이 모양이 청사진 부품과 같아야 `figure-sizing` 의 다른 셈에도 그대로 넘길 수
99
+ * 있기 때문이다. 씬은 라디안을 쓰고 이름이 뒤섞여 있다 — `rotationY` 가 형식의 z 로 간다.
100
+ */
101
+ private asMember;
102
+ /**
103
+ * 부모에 걸린 회전과 배율을 되돌리는 값.
104
+ *
105
+ * **`object3d` 에서 읽는다 — 그것이 부모의 실제 변환이다.**
106
+ *
107
+ * 한동안 여기서 상태를 다시 셈했다. 기즈모로 끄는 동안 `object3d` 에는 끌고 있는
108
+ * 중간값이 들어 있어서, 그것으로 나누면 사본이 튈 것이라고 보았다. 반대였다. 끄는
109
+ * 동안 부모를 실제로 움직이는 것이 그 중간값이므로, 되돌릴 것도 그 값이다. 상태로
110
+ * 셈하면 부모는 이미 돌아갔는데 사본은 옛 값으로 되돌려 **줄이 통째로 끌려간다.**
111
+ *
112
+ * 두 벌로 셈하던 규칙도 하나 사라졌다. 단면을 민 것(`rect`·`polygon`)은 평면 치수가
113
+ * 형상에 구워져 있어 평면 배율이 1 인데, `object3d.scale` 이 이미 1 이므로 여기서
114
+ * 따로 가릴 것이 없다. `state.scale` 이 걸려 있어도 마찬가지로 저절로 들어온다.
115
+ *
116
+ * 대신 **부모를 건드린 자리마다 다시 펴야 한다** — 그 자리가 다섯이고, 아래에서
117
+ * 전부 가로챈다.
118
+ */
119
+ private repeatUndo;
120
+ /**
121
+ * 배율이 바뀌어도 줄을 다시 편다.
122
+ *
123
+ * `setDimensionScale` 과 `state.scale` 이 둘 다 여기로 모인다.
124
+ */
125
+ updateScale(): void;
126
+ /**
127
+ * 기즈모가 상태를 되쓸 때도 줄을 다시 편다 — **옮기기 · 돌리기.**
128
+ *
129
+ * 기즈모는 `_suppressOnchange` 를 켠 채 상태를 되쓴다. `object3d` 를 이미 움직여
130
+ * 놓았으니 상태에서 또 반영하면 같은 일을 두 번 한다는 판단이고, 여느 컴포넌트에는
131
+ * 맞다. 그런데 사본의 자리는 부모 변환을 되돌린 값이라, 부모만 바뀌고 다시 펴지
132
+ * 않으면 사본이 옛 자리를 그대로 타고 간다 — 대표 롤러가 제자리에서 도는 대신
133
+ * **줄 전체가 컴포넌트 중심을 축으로 돈다.** 속성으로 고칠 때와 기즈모로 끌 때가
134
+ * 다르게 도는 것이 이것이었다.
135
+ */
136
+ syncFromObject3D(): void;
137
+ /**
138
+ * 기즈모가 상태를 되쓸 때도 줄을 다시 편다 — **크기.**
139
+ *
140
+ * 크기 기즈모는 `object3d.scale` 을 직접 끌고, 그 결과를 치수로 역산해 상태에만
141
+ * 적는다. 다시 펴지 않으면 사본이 옛 자리에 있는 채로 커진 배율을 받아 **개수가
142
+ * 아니라 간격이 늘어난다.**
143
+ */
144
+ applyDimensionFromGizmo(props: Record<string, number>): void;
35
145
  /** 단위 형상. 치수는 배율로 준다. */
36
146
  private unitGeometry;
37
147
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"figure-part-component.d.ts","sourceRoot":"","sources":["../../src/figure/figure-part-component.ts"],"names":[],"mappings":"AAMA,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;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAyC3D,4DAA4D;AAC5D,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAA;AAQ9F,kCAAkC;AAClC,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,mBAAmB,CAAA;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACjC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,OAAO,gBAAgB,CAAA;IACtC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAMD;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,UAAU;IAClD,KAAK;IAgBL,yBAAyB;IACzB,OAAO,CAAC,YAAY;IAapB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,YAAY;IA4CpB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAsBhB;;;;;OAKG;IACH,eAAe,IAAI,IAAI;CAWxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,eAAe;IAC7C,wEAAwE;IACxE,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,MAAM,CAAC,GAAG,EAAE,kBAAkB;IAU9B,4CAA4C;IAC5C,OAAO,CAAC,cAAc;CA2CvB"}
1
+ {"version":3,"file":"figure-part-component.d.ts","sourceRoot":"","sources":["../../src/figure/figure-part-component.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"figure-real-object.d.ts","sourceRoot":"","sources":["../../src/figure/figure-real-object.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAKrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,sBAAsB,CAAA;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AASlE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAuBzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAY/F;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAiCjG;AAmFD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CA0CnG;AA8DD,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,2CAA2C;IAC3C,OAAO,CAAC,WAAW,CAAgC;IACnD,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAkB;IAEhC,IAAI,MAAM,IAAI,cAAc,GAAG,IAAI,CAElC;IAED,KAAK;IA8BL;;;;;;;;OAQG;IACH,OAAO,CAAC,UAAU;IAsBlB;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAkCnB;;;;;;;;;OASG;IACH,IAAa,cAAc,IAAI,MAAM,CAepC;IAED;;;;;;;;;;;OAWG;IACH,eAAe,IAAI,IAAI;IAoBvB;;;;OAIG;IACM,UAAU,IAAI,UAAU,GAAG,IAAI;IAIxC,KAAK;CAMN"}
1
+ {"version":3,"file":"figure-real-object.d.ts","sourceRoot":"","sources":["../../src/figure/figure-real-object.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAKrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,sBAAsB,CAAA;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AASlE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAuBzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAY/F;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAiCjG;AAmFD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CA0CnG;AA8DD,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,2CAA2C;IAC3C,OAAO,CAAC,WAAW,CAAgC;IACnD,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAkB;IAEhC,IAAI,MAAM,IAAI,cAAc,GAAG,IAAI,CAElC;IAED,KAAK;IA8BL;;;;;;;;OAQG;IACH,OAAO,CAAC,UAAU;IAsBlB;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAsCnB;;;;;;;;;OASG;IACH,IAAa,cAAc,IAAI,MAAM,CAepC;IAED;;;;;;;;;;;OAWG;IACH,eAAe,IAAI,IAAI;IAoBvB;;;;OAIG;IACM,UAAU,IAAI,UAAU,GAAG,IAAI;IAIxC,KAAK;CAMN"}
@@ -72,17 +72,29 @@ export declare function sizingScale(member: FigureBlueprintMember, scale: Instan
72
72
  /**
73
73
  * `repeat` 를 몇 개로 펼치나.
74
74
  *
75
- * **`scale` 이었다면 차지했을 만큼을 개수로 채운다.** 늘리는 대신 늘어놓는 것이므로
76
- * 차지하는 공간은 같아야 한다.
75
+ * **기준 상자를 칸씩 채운다.** 저작자는 **단위 하나**를 그리고, 런타임이 그 축의
76
+ * 길이를 채운다. 3D 도구의 배열 변형이 "길이에 맞추기" 로 하는 일과 같다.
77
77
  *
78
- * = 부품의 그 축 크기 + 간격
79
- * 채울 길이 = 부품 크기 × 인스턴스 배율
80
- * 개수 = round((채울 길이 + 간격) ÷ 한 칸)
78
+ * 개수 = floor(기준 상자의 그 축 길이 × 인스턴스 배율 ÷ 한 칸)
81
79
  *
82
- * 저작한 크기(배율 1)에서 반드시 **1개**가 되는 것이 이 식의 요점이다. 저작자가 하나를
83
- * 그렸는데 열어 보니 여럿이면 무엇을 그린 것인지 알 수 없다.
80
+ * ## 칸은 **중심에서 다음 중심까지**다
81
+ *
82
+ * 부품 크기와 무관하다. 전에는 `부품 크기 + 틈` 으로 셌는데, 그러면 부품을 굵게 하거나
83
+ * 돌릴 때마다 줄 전체가 다시 깔린다. 롤러를 30° 기울였더니 축 방향 경계상자가 96 에서
84
+ * 343 으로 늘어 개수가 16 에서 6 으로 무너졌다. 기울어진 롤러 둘은 빗살처럼 나란히
85
+ * 놓이므로 그렇게 벌릴 이유가 없는데도 그랬다.
86
+ *
87
+ * 이제 기울여도 개수가 그대로다. **기울인 채로 바짝 붙여 까는 것**이 표현된다.
88
+ *
89
+ * ## 왜 부품 크기가 아니라 기준 상자를 채우나
90
+ *
91
+ * 전에는 "그 부품이 `scale` 이었다면 차지했을 만큼" 을 채웠다. 지름 96 짜리 롤러는
92
+ * 컨베이어를 3 배로 늘려도 288 밖에 안 되어 롤러가 한두 개 나온다. 2400 짜리 컨베이어에
93
+ * 롤러 하나는 컨베이어가 아니다.
94
+ *
95
+ * 롤러는 일정한 간격으로 전 구간에 깔린다. 길이가 두 배면 롤러도 두 배다.
84
96
  */
85
- export declare function repeatPlan(member: FigureBlueprintMember, scale: InstanceScale): {
97
+ export declare function repeatPlan(member: FigureBlueprintMember, scale: InstanceScale, base: FigureVec3): {
86
98
  axis: FigureAxis;
87
99
  count: number;
88
100
  pitch: number;
@@ -1 +1 @@
1
- {"version":3,"file":"figure-sizing.d.ts","sourceRoot":"","sources":["../../src/figure/figure-sizing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAExC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAEnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,qBAAqB,GAAG,UAAU,CAsBvE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,qBAAqB,GAAG,UAAU,CAKrE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,aAAa,GAAG,UAAU,CAkB3F;AAOD;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,aAAa,GACnB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAe3D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,MAAM,CAAA;AAE/B;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhF"}
1
+ {"version":3,"file":"figure-sizing.d.ts","sourceRoot":"","sources":["../../src/figure/figure-sizing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAExC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAEnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,qBAAqB,GAAG,UAAU,CAsBvE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,qBAAqB,GAAG,UAAU,CAKrE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,aAAa,GAAG,UAAU,CAkB3F;AAOD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,UAAU,GACf;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAa3D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,MAAM,CAAA;AAE/B;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhF"}
@@ -10,4 +10,5 @@ export * from './figure-blueprint.js';
10
10
  export * from './figure-palette.js';
11
11
  export * from './figure-registry.js';
12
12
  export * from './figure-real-object.js';
13
+ export * from './figure-sizing.js';
13
14
  //# 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;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA"}
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;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AAKvC,cAAc,oBAAoB,CAAA"}
@@ -65,6 +65,21 @@ export default class ModelLayer extends DualCanvasLayer implements ThreeDimensio
65
65
  get hasEnvironment(): boolean;
66
66
  get gizmoMode(): 'translate' | 'rotate' | 'scale' | undefined;
67
67
  setGizmoMode(mode: 'translate' | 'rotate' | 'scale'): void;
68
+ /**
69
+ * 3D 카메라를 모델 전체가 보이게 맞춘다.
70
+ *
71
+ * 처음 3D 로 설 때 카메라는 모델 크기를 보지 않는다. 저장된 시점이 있으면 그것을,
72
+ * 없으면 기본값을 쓴다. 보드는 사람이 열고 나서 돌려 보므로 그것으로 충분하다.
73
+ *
74
+ * 컴포넌트를 저작하는 화면은 다르다. 모델을 열자마자 **전체가 보여야** 한다. 가로로
75
+ * 긴 모델(컨베이어가 그렇다)을 열면 화면 밖으로 나가 한 조각만 보인다.
76
+ *
77
+ * 2D 쪽 `fit()` 은 3D 카메라를 움직이지 못한다. 카메라가 2D 뷰포트에서 만들어지는
78
+ * 것은 2D → 3D 로 전환할 때뿐이고, 처음 3D 로 서는 경우는 그 길을 타지 않는다.
79
+ *
80
+ * @param margin 모델 둘레에 두는 여백 비율. 1.15 면 15% 더 넓게 잡는다.
81
+ */
82
+ fitCameraToModel(margin?: number): void;
68
83
  /** 도움말 패널 열기/닫기 — 단축키 `H` 와 같은 동작. */
69
84
  toggleHelp(): void;
70
85
  /** 북마크 내비게이터 열기/닫기 — 단축키 `B`. 3D 에서만 뜻이 있다. */
@@ -119,6 +134,8 @@ export default class ModelLayer extends DualCanvasLayer implements ThreeDimensio
119
134
  * - 뷰어 + zoom-handler 없음: 독립 (각자 뷰, 연동 불필요)
120
135
  */
121
136
  private get _needsViewportSync();
137
+ /** 3D 가 서기 전에 들어온 카메라 맞춤 요청. 서는 순간 적용한다. */
138
+ private _pendingFitMargin?;
122
139
  private _2dScaleBeforeThreeD?;
123
140
  private _initialVisibleHeight?;
124
141
  private _activateThreeD;
@@ -1 +1 @@
1
- {"version":3,"file":"model-layer.d.ts","sourceRoot":"","sources":["../../src/layer/model-layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-layer.d.ts","sourceRoot":"","sources":["../../src/layer/model-layer.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.2",
3
+ "version": "10.1.4",
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",